Functions called further below but not shown in the disassembly listing yet
To have them listed, extend the Radare2 script with 'pdf @FuncName'.
Please report your findings about a function's purpose, and suggest
a proper name for it at the MD380Tools group.
- 0x800e018 (2 callers)
- 0x801ce20
- 0x801cf34
- 0x801cf9e
- 0x801d07c
- 0x80235f4 (3 callers)
- 0x80260b4
- 0x8026180
- 0x80262ec
- 0x80268ac
- 0x80273f6 (2 callers)
- 0x80274d2 (3 callers)
- 0x8027d46
- 0x8027e96
- 0x80281f2
- 0x8028236
- 0x8028d80
- 0x8028df6
- 0x8028e10
- 0x802939e (2 callers)
- 0x80294be
- 0x802ac5c
- 0x802ac68
- 0x802aec6
- 0x802af18
- 0x802b1e4
- 0x802b254
- 0x802b2c8
- 0x802b32c
- 0x802b446
- 0x802b558
- 0x802b590
- 0x802b5b0
- 0x802b640
- 0x802b664
- 0x802d17e
- 0x80340f4
- 0x8034118
- 0x804485a
- 0x804489e
- 0x80448d4
- 0x804bab8
- 0x804bd0c
- 0x804c384
- 0x804cd82 (3 callers)
- 0x804d698
- 0x804d6b2
- 0x804ee20
- 0x8054894
- 0x8054be4
- 0x805542c
- 0x8055480
- 0x80554d2
- 0x8055554
- 0x8059f80
- 0x805a000
- 0x805a1e0
- 0x805a200
- 0x805a3f8
- 0x805f1ac
- 0x8093eb0
c:\tools\md380tools_ohne_Git\annotations\d13.020
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
/VectorTable
0x0800c000 70f1 0120 4592 0f08 f13e 0908 f93e 0908 p.. E....>...>..
0x0800c000 0x2001f170 0x080f9245 0x08093ef1 0x08093ef9 p.. E....>...>..
0x0800c010 0x08093f01 0x08093f09 0x08093f11 0x00000000 .?...?...?......
0x0800c020 0x00000000 0x00000000 0x00000000 0x08093f19 .............?..
0x0800c030 0x08093f1b 0x00000000 0x08043e1f 0x08093f1d .?.......>...?..
0x0800c040 0x080fc5ad 0x080fc5b1 0x080fc5b5 0x08094239 ............9B..
0x0800c050 0x080fc5bd 0x080fc5c1 0x0809403f 0x08094023 ........?@..#@..
0x0800c060 0x08093f9d 0x08093f89 0x080fc5d5 0x080fc5d9 .?...?..........
0x0800c070 0x080fc5dd 0x0804e9a1 0x080fc5e5 0x080fc5e9 ................
0x0800c080 0x0804e9a9 0x080fc5f1 0x080fc5f5 0x080fc5f9 ................
0x0800c090 0x080fc5fd 0x080fc601 0x080fc605 0x080fc609 ................
0x0800c0a0 0x080fc60d 0x080fc611 0x080fc615 0x080fc619 ................
0x0800c0b0 0x08049d5f 0x08094109 0x0809408d 0x080fc629 _....A...@..)...
0x0800c0c0 0x080fc62d 0x080fc631 0x080fc635 0x080fc639 -...1...5...9...
0x0800c0d0 0x080fc63d 0x080fc641 0x080fc645 0x080fc649 =...A...E...I...
0x0800c0e0 0x080fc64d 0x080fc651 0x08093f3f 0x080fc659 M...Q...??..Y...
0x0800c0f0 0x08094229 0x080fc661 0x080fc665 0x080fc669 )B..a...e...i...
0x0800c100 0x080fc66d 0x080fc671 0x08094079 0x0804e999 m...q...y@......
0x0800c110 0x080fc67d 0x080fc681 0x08094139 0x080941e9 }.......9A...A..
0x0800c120 0x080fc68d 0x080fc691 0x080fc695 0x08094271 ............qB..
0x0800c130 0x080fc69d 0x080fc6a1 0x080fc6a5 0x080fc6a9 ................
0x0800c140 0x080fc6ad 0x080fc6b1 0x080fc6b5 0x08093f71 ............q?..
0x0800c150 0x080fc6bd 0x080fc6c1 0x080fc6c5 0x080fc6c9 ................
0x0800c160 0x080fc6cd 0x080fc6d1 0x080fc6d5 0x080fc6d9 ................
0x0800c170 0x080fc6dd 0x080fc6e1 0x080fc6e5 0x080fc6e9 ................
0x0800c180 0x080fc6ed 0x080fc6f1 ........
/ (fcn) Reset_Handler 8
| Reset_Handler ();
| 0x080f9244 0148 ldr r0, [0x080f924c] ; [0x80f924c:4]=0x8094359 SystemInit
| 0x080f9246 8047 blx r0
| 0x080f9248 0148 ldr r0, [0x080f9250] ; [0x80f9250:4]=0x80fafdd __main
\ 0x080f924a 0047 bx r0
| ;-- SystemInit:
/ (fcn) SystemInit 82
| Caller: OTG_FS_WKUP_IRQHandler
| SystemInit ();
| 0x08094358 ~ 80b5 push {r7, lr}
| 0x0809435a 4748 ldr r0, [0x0809447a] ; [0x8094478:4]=0xe000ed88
| 0x0809435c 0068 ldr r0, [r0] ; read E000ED88 = FPU.CPACR
| 0x0809435e 50f47000 orrs r0, r0, 0xf00000 ; allow full coprocessor access
| 0x08094362 4549 ldr r1, [0x0809447a] ; [0x8094478:4]=0xe000ed88
| 0x08094364 0860 str r0, [r1] ; write E000ED88 = FPU.CPACR
| 0x08094366 4548 ldr r0, [0x0809447e] ; [0x809447c:4]=0x40023800 io_RCC
| 0x08094368 0068 ldr r0, [r0]
| 0x0809436a 50f00100 orrs r0, r0, 1
| 0x0809436e 4349 ldr r1, [0x0809447e] ; [0x809447c:4]=0x40023800 io_RCC
| 0x08094370 0860 str r0, [r1]
| 0x08094372 4348 ldr r0, [0x08094482] ; [0x8094480:4]=0x40023808 io_RCC_CFGR
| 0x08094374 0021 movs r1, 0
| 0x08094376 0160 str r1, [r0]
| 0x08094378 4048 ldr r0, [0x0809447c] ; [0x809447c:4]=0x40023800 io_RCC
| 0x0809437a 0068 ldr r0, [r0]
| 0x0809437c 4149 ldr r1, [0x08094484] ; [0x8094484:4]=0xfef6ffff
| 0x0809437e 0840 ands r0, r1
| 0x08094380 3e49 ldr r1, [0x0809447c] ; [0x809447c:4]=0x40023800 io_RCC
| 0x08094382 0860 str r0, [r1]
| 0x08094384 4048 ldr r0, [0x08094488] ; [0x8094488:4]=0x40023804 io_RCC_PLLCFG
| 0x08094386 4149 ldr r1, [0x0809448e] ; [0x809448c:4]=0x24003010
| 0x08094388 0160 str r1, [r0]
| 0x0809438a 3c48 ldr r0, [0x0809447e] ; [0x809447c:4]=0x40023800 io_RCC
| 0x0809438c 0068 ldr r0, [r0]
| 0x0809438e 30f48020 bics r0, r0, 0x40000
| 0x08094392 3a49 ldr r1, [0x0809447e] ; [0x809447c:4]=0x40023800 io_RCC
| 0x08094394 0860 str r0, [r1]
| 0x08094396 3e48 ldr r0, [0x08094492] ; [0x8094490:4]=0x4002380c io_RCC_CIR
| 0x08094398 0021 movs r1, 0
| 0x0809439a 0160 str r1, [r0]
| 0x0809439c 00f005f8 bl RCC_Init
| 0x080943a0 3c48 ldr r0, [0x08094494] ; [0x8094494:4]=0xe000ed08 ; E000ED08 = SCB.VTOR
| 0x080943a2 5ff00061 movs.w r1, 0x8000000
| 0x080943a6 0160 str r1, [r0]
\ 0x080943a8 01bd pop {r0, pc}
/ (fcn) RCC_Init 202
| Caller: SystemInit
| RCC_Init ();
| 0x080943aa 82b0 sub sp, 8
| 0x080943ac 0020 movs r0, 0
| 0x080943ae 0190 str r0, [sp, 4]
| 0x080943b0 0020 movs r0, 0
| 0x080943b2 0090 str r0, [sp]
| 0x080943b4 3148 ldr r0, [0x0809447c] ; [0x809447c:4]=0x40023800 io_RCC
| 0x080943b6 0068 ldr r0, [r0]
| 0x080943b8 50f48030 orrs r0, r0, 0x10000 ; Set RCC_CR bit 16 = HSEON
| 0x080943bc 2f49 ldr r1, [0x0809447c] ; [0x809447c:4]=0x40023800 io_RCC
| 0x080943be 0860 str r0, [r1]
| .-> 0x080943c0 2e48 ldr r0, [0x0809447c] ; [0x809447c:4]=0x40023800 io_RCC
| | 0x080943c2 0068 ldr r0, [r0]
| | 0x080943c4 10f40030 ands r0, r0, 0x20000 ; Isolate RCC_CR bit 17 = HSE clock ready ?
| | 0x080943c8 0090 str r0, [sp]
| | 0x080943ca 0198 ldr r0, [sp, 4]
| | 0x080943cc 401c adds r0, r0, 1
| | 0x080943ce 0190 str r0, [sp, 4]
| | 0x080943d0 0098 ldr r0, [sp]
| | 0x080943d2 0028 cmp r0, 0
| ,==< 0x080943d4 03d1 bne 0x80943de
| || 0x080943d6 0198 ldr r0, [sp, 4]
| || 0x080943d8 b0f5206f cmp.w r0, 0xa00 ; 2560
| |`=< 0x080943dc f0d1 bne 0x80943c0
| `--> 0x080943de 2748 ldr r0, [0x0809447e] ; [0x809447c:4]=0x40023800 io_RCC
| 0x080943e0 0068 ldr r0, [r0]
| 0x080943e2 8003 lsls r0, r0, 0xe
| ,=< 0x080943e4 02d5 bpl 0x80943ec
| | 0x080943e6 0120 movs r0, 1 ; 1
| | 0x080943e8 0090 str r0, [sp]
| ,==< 0x080943ea 01e0 b 0x80943f0
| |`-> 0x080943ec 0020 movs r0, 0
| | 0x080943ee 0090 str r0, [sp]
| `--> 0x080943f0 0098 ldr r0, [sp]
| 0x080943f2 0128 cmp r0, 1 ; 1
| ,=< 0x080943f4 3cd1 bne 0x8094470
| | 0x080943f6 2848 ldr r0, [0x0809449a] ; [0x8094498:4]=0x40023840
| | 0x080943f8 0068 ldr r0, [r0] ; Read RCC_APB1ENR
| | 0x080943fa 50f08050 orrs r0, r0, 0x10000000 ; Set bit 24 = PWREN for APB1
| | 0x080943fe 2649 ldr r1, [0x0809449a] ; [0x8094498:4]=0x40023840
| | 0x08094400 0860 str r0, [r1] ; What a waste of code memory. Could have set R1 before.
| | 0x08094402 2648 ldr r0, [0x0809449e] ; [0x809449c:4]=0x40007000 io_PWR
| | 0x08094404 0068 ldr r0, [r0]
| | 0x08094406 50f48040 orrs r0, r0, 0x4000 ; PWR_CR bit 14 = voltage regulator control
| | 0x0809440a 2449 ldr r1, [0x0809449e] ; [0x809449c:4]=0x40007000 io_PWR
| | 0x0809440c 0860 str r0, [r1]
| | 0x0809440e 1c48 ldr r0, [0x08094482] ; [0x8094480:4]=0x40023808 io_RCC_CFGR
| | 0x08094410 1b49 ldr r1, [0x08094480] ; [0x8094480:4]=0x40023808 io_RCC_CFGR
| | 0x08094412 0968 ldr r1, [r1] ; Copy RCC clock config register to itself ?
| | 0x08094414 0160 str r1, [r0]
| | 0x08094416 1a48 ldr r0, [0x08094482] ; [0x8094480:4]=0x40023808 io_RCC_CFGR
| | 0x08094418 1949 ldr r1, [0x08094480] ; [0x8094480:4]=0x40023808 io_RCC_CFGR
| | 0x0809441a 0968 ldr r1, [r1]
| | 0x0809441c 0160 str r1, [r0]
| | 0x0809441e 1848 ldr r0, [0x08094482] ; [0x8094480:4]=0x40023808 io_RCC_CFGR
| | 0x08094420 0068 ldr r0, [r0]
| | 0x08094422 50f48050 orrs r0, r0, 0x1000
| | 0x08094426 1649 ldr r1, [0x08094482] ; [0x8094480:4]=0x40023808 io_RCC_CFGR
| | 0x08094428 0860 str r0, [r1]
| | 0x0809442a 1748 ldr r0, [0x0809448a] ; [0x8094488:4]=0x40023804 io_RCC_PLLCFG
| | 0x0809442c 1c49 ldr r1, [0x080944a0] ; [0x80944a0:4]=0x6414808
| | 0x0809442e 0160 str r1, [r0]
| | 0x08094430 1248 ldr r0, [0x0809447c] ; [0x809447c:4]=0x40023800 io_RCC
| | 0x08094432 0068 ldr r0, [r0]
| | 0x08094434 50f08070 orrs r0, r0, 0x1000000 ; RCC_CR bit 24 = 'PLL ON'
| | 0x08094438 1049 ldr r1, [0x0809447c] ; [0x809447c:4]=0x40023800 io_RCC
| | 0x0809443a 0860 str r0, [r1]
| | 0x0809443c 0f48 ldr r0, [0x0809447c] ; [0x809447c:4]=0x40023800 io_RCC
| | 0x0809443e 0068 ldr r0, [r0]
| | 0x08094440 8001 lsls r0, r0, 6 ; Check 'PLL Ready'-bit
| | 0x08094442 fbd5 bpl 0x809443c
| | 0x08094444 1748 ldr r0, [0x080944a4] ; [0x80944a4:4]=0x40023c00 io_FLASH
| | 0x08094446 40f20561 movw r1, 0x605 ; 1541
| | 0x0809444a 0160 str r1, [r0] ; Set FLASH_ACR (waitstates, etc)
| | 0x0809444c 0c48 ldr r0, [0x08094480] ; [0x8094480:4]=0x40023808 io_RCC_CFGR
| | 0x0809444e 0068 ldr r0, [r0]
| | 0x08094450 8008 lsrs r0, r0, 2
| | 0x08094452 8000 lsls r0, r0, 2 ; clear RCC_CFGR bits 31+30 to select SYSCLK for MCO2
| | 0x08094454 0a49 ldr r1, [0x08094480] ; [0x8094480:4]=0x40023808 io_RCC_CFGR
| | 0x08094456 0860 str r0, [r1]
| | 0x08094458 0948 ldr r0, [0x08094480] ; [0x8094480:4]=0x40023808 io_RCC_CFGR
| | 0x0809445a 0068 ldr r0, [r0]
| | 0x0809445c 50f00200 orrs r0, r0, 2 ; select PLL as system clock (?)
| | 0x08094460 0749 ldr r1, [0x08094480] ; [0x8094480:4]=0x40023808 io_RCC_CFGR
| | 0x08094462 0860 str r0, [r1]
| .--> 0x08094464 0648 ldr r0, [0x08094480] ; [0x8094480:4]=0x40023808 io_RCC_CFGR
| || 0x08094466 0068 ldr r0, [r0]
| || 0x08094468 10f00c00 ands r0, r0, 0xc
| || 0x0809446c 0828 cmp r0, 8 ; 8
| `==< 0x0809446e f9d1 bne 0x8094464
| `-> 0x08094470 02b0 add sp, 8
\ 0x08094472 7047 bx lr
| ;-- __main:
/ (fcn) __main 12
| __main ();
| 0x080fafdc ~ c046 mov r8, r8 ; 'jumped into' (no call) from Reset_Handler
| 0x080fafde c046 mov r8, r8
| 0x080fafe0 d5f716f8 bl FPU_Init
\ 0x080fafe4 fcf772ff bl _main2
/ (fcn) FPU_Init 26
| Caller: __main
| FPU_Init ();
| 0x080d0010 4ef68851 movw r1, 0xed88
| 0x080d0014 cef20001 movt r1, 0xe000 ; R1 = 0xE000ED88 = FPU.CPACR
| 0x080d0018 0868 ldr r0, [r1]
| 0x080d001a 40f47000 orr r0, r0, 0xf00000
| 0x080d001e 0860 str r0, [r1]
| 0x080d0020 4ff00070 mov.w r0, 0x2000000
| 0x080d0024 e1ee100a vmsr fpscr, r0
\ 0x080d0028 7047 bx lr
/ (fcn) _main2 22
| Caller: __main
| _main2 ();
| 0x080f7ecc 00f009f8 bl Return_ONE
| 0x080f7ed0 0028 cmp r0, 0
| ,=< 0x080f7ed2 01d0 beq 0x80f7ed8
| | 0x080f7ed4 a1f7b2fd bl _main2_init_sub2
| `-> 0x080f7ed8 0020 movs r0, 0
| 0x080f7eda a2f715f8 bl _main2_init_sub3
\ 0x080f7ede 00f002f8 bl _main3
/ (fcn) _main2_init_sub2 32
| Caller: _main2
| _main2_init_sub2 ();
| 0x08099a3c 10b5 push {r4, lr}
| 0x08099a3e 0749 ldr r1, [0x08099a5e] ; [0x8099a5c:4]=0x4d0
| 0x08099a40 7944 add r1, pc
| 0x08099a42 1831 adds r1, 0x18
| 0x08099a44 064c ldr r4, [0x08099a60] ; [0x8099a60:4]=0x500
| 0x08099a46 7c44 add r4, pc
| 0x08099a48 1634 adds r4, 0x16
| ,=< 0x08099a4a 04e0 b 0x8099a56
| .--> 0x08099a4c 081d adds r0, r1, 4
| || 0x08099a4e 0a68 ldr r2, [r1]
| || 0x08099a50 5118 adds r1, r2, r1
| || 0x08099a52 8847 blx r1
| || 0x08099a54 0146 mov r1, r0
| |`-> 0x08099a56 a142 cmp r1, r4
| `==< 0x08099a58 f8d1 bne 0x8099a4c
\ 0x08099a5a 10bd pop {r4, pc}
/ (fcn) _main2_init_sub3 34
| Caller: _main2
| _main2_init_sub3 ();
| 0x08099f08 80b5 push {r7, lr}
| 0x08099f0a 4ff44041 mov.w r1, 0xc000
| 0x08099f0e 5ff00060 movs.w r0, 0x8000000
| 0x08099f12 b7f734ff bl func_51d7e
| 0x08099f16 b4f7e3f9 bl func_4e2e0
| 0x08099f1a a9f7d9ff bl InitGlobalsAndStartRealTimeKernel
| 0x08099f1e acf7aff9 bl Create_Start_Task
| 0x08099f22 aaf77ff8 bl func_44024
| 0x08099f26 0020 movs r0, 0
\ 0x08099f28 02bd pop {r1, pc}
/ (fcn) _main3 16
| Caller: _main2
| _main3 ();
| ,=< 0x080f7ee6 00f001b8 b.w 0x80f7eec
| | 0x080f7eea 0100 movs r1, r0
| `-> 0x080f7eec 0746 mov r7, r0
| .-> 0x080f7eee 3846 mov r0, r7
| | 0x080f7ef0 9df78efc bl CalledForever
\ `=< 0x080f7ef4 fbe7 b 0x80f7eee
/ (fcn) Return_ONE 4
| Caller: _main2
| Return_ONE ();
| 0x080f7ee2 0120 movs r0, 1 ; 1
\ 0x080f7ee4 7047 bx lr
/ (fcn) CalledForever 16
| Caller: _main3
| CalledForever ();
| 0x08095810 c046 mov r8, r8 ; Possibly for 'unexpected return from main()'
| 0x08095812 c046 mov r8, r8
| 0x08095814 024a ldr r2, [0x08095820] ; [0x8095820:4]=0x20026
| .-> 0x08095816 1100 movs r1, r2
| | 0x08095818 1820 movs r0, 0x18 ; 24
| | 0x0809581a abbe bkpt 0xab
| `=< 0x0809581c fbe7 b 0x8095816
\ 0x0809581e 00bf nop
/ (fcn) InitGlobalsAndStartRealTimeKernel 44
| Caller: _main2_init_sub3
| InitGlobalsAndStartRealTimeKernel ();
| 0x08043ed0 80b5 push {r7, lr}
| 0x08043ed2 0af02ef9 bl ClearSomeHalfWordInRAM
| 0x08043ed6 00f0faf9 bl ClearSomeVariables
| 0x08043eda 00f00efa bl ClearSomeBlocksInRAM
| 0x08043ede 00f043fa bl Func4_of_10
| 0x08043ee2 00f0c4f9 bl Func5_of_10
| 0x08043ee6 04f0edf9 bl func_482c4
| 0x08043eea 00f020fa bl Create_uCOS_Idle_Task
| 0x08043eee 07f01bfc bl CreateTwoSemasAndTimerTask
| 0x08043ef2 0af022f9 bl DoNothing_only_BX_LR
| 0x08043ef6 0af005fa bl ManyStrangeSimpleMoves
\ 0x08043efa 01bd pop {r0, pc}
/ (fcn) WaitForInterruptInIdle 48
| Caller: OSIdleTaskHook
| WaitForInterruptInIdle ();
| 0x080323e6 dff89c02 ldr.w r0, [0x0803268a] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| 0x080323ea 0078 ldrb r0, [r0]
| 0x080323ec 0128 cmp r0, 1 ; 1
| ,=< 0x080323ee 11d1 bne 0x8032414 ; don't sleep
| | 0x080323f0 dff8f802 ldr.w r0, [0x080326f0] ; [0x80326f0:4]=0x2001e640 idle_control_struct
| | 0x080323f4 90f81201 ldrb.w r0, [r0, 0x112]
| | 0x080323f8 0128 cmp r0, 1 ; 1
| ,==< 0x080323fa 05d0 beq 0x8032408
| || 0x080323fc dff8ec02 ldr.w r0, [0x080326f0] ; [0x80326f0:4]=0x2001e640 idle_control_struct
| || 0x08032400 90f81201 ldrb.w r0, [r0, 0x112]
| || 0x08032404 0428 cmp r0, 4 ; 4
| ,===< 0x08032406 05d1 bne 0x8032414 ; don't sleep ...
| |`--> 0x08032408 dff8dc02 ldr.w r0, [0x080326ec] ; [0x80326ec:4]=0x200178b8
| | | 0x0803240c 0078 ldrb r0, [r0]
| | | 0x0803240e 0028 cmp r0, 0
| |,==< 0x08032410 00d1 bne 0x8032414
| ||| 0x08032412 30bf wfi ; sleep until interrupt to save power
\ ```-> 0x08032414 7047 bx lr
/ (fcn) CreateTwoSemasAndTimerTask 174
| Caller: InitGlobalsAndStartRealTimeKernel
| CreateTwoSemasAndTimerTask ();
| 0x0804b728 10b5 push {r4, lr}
| 0x0804b72a 82b0 sub sp, 8
| 0x0804b72c 4ff42071 mov.w r1, 0x280 ; 640
| 0x0804b730 8b48 ldr r0, [0x0804b960] ; [0x804b960:4]=0x2001bb00
| 0x0804b732 f8f748fe bl func_443c6
| 0x0804b736 4021 movs r1, 0x40 ; '@' ; 64
| 0x0804b738 8a48 ldr r0, [0x0804b964] ; [0x804b964:4]=0x2001ddf8
| 0x0804b73a f8f744fe bl func_443c6
| 0x0804b73e 0020 movs r0, 0
| ,=< 0x0804b740 13e0 b 0x804b76a
| .--> 0x0804b742 411c adds r1, r0, 1
| || 0x0804b744 80b2 uxth r0, r0
| || 0x0804b746 2822 movs r2, 0x28 ; '(' ; 40
| || 0x0804b748 854b ldr r3, [0x0804b960] ; [0x804b960:4]=0x2001bb00
| || 0x0804b74a 02fb0032 mla r2, r2, r0, r3
| || 0x0804b74e 89b2 uxth r1, r1
| || 0x0804b750 2823 movs r3, 0x28 ; '(' ; 40
| || 0x0804b752 834c ldr r4, [0x0804b962] ; [0x804b960:4]=0x2001bb00
| || 0x0804b754 03fb0141 mla r1, r3, r1, r4
| || 0x0804b758 6423 movs r3, 0x64 ; 'd' ; 100
| || 0x0804b75a 1370 strb r3, [r2]
| || 0x0804b75c 0023 movs r3, 0
| || 0x0804b75e 82f82530 strb.w r3, [r2, 0x25]
| || 0x0804b762 d160 str r1, [r2, 0xc]
| || 0x0804b764 77a1 adr r1, 0x1dc
| || 0x0804b766 1162 str r1, [r2, 0x20]
| || 0x0804b768 401c adds r0, r0, 1
| |`-> 0x0804b76a 80b2 uxth r0, r0
| | 0x0804b76c 0f28 cmp r0, 0xf ; 15
| `==< 0x0804b76e e8d3 blo 0x804b742
| 0x0804b770 80b2 uxth r0, r0
| 0x0804b772 2821 movs r1, 0x28 ; '(' ; 40
| 0x0804b774 7a4a ldr r2, [0x0804b960] ; [0x804b960:4]=0x2001bb00
| 0x0804b776 01fb0022 mla r2, r1, r0, r2
| 0x0804b77a 6420 movs r0, 0x64 ; 'd' ; 100
| 0x0804b77c 1070 strb r0, [r2]
| 0x0804b77e 0020 movs r0, 0
| 0x0804b780 82f82500 strb.w r0, [r2, 0x25]
| 0x0804b784 0020 movs r0, 0
| 0x0804b786 d060 str r0, [r2, 0xc]
| 0x0804b788 6ea0 adr r0, 0x1b8
| 0x0804b78a 1062 str r0, [r2, 0x20]
| 0x0804b78c 6f48 ldr r0, [0x0804b94c] ; [0x804b94c:4]=0x2001e728
| 0x0804b78e 0021 movs r1, 0
| 0x0804b790 0160 str r1, [r0]
| 0x0804b792 7148 ldr r0, [0x0804b95a] ; [0x804b958:4]=0x2001e84c
| 0x0804b794 0021 movs r1, 0
| 0x0804b796 0180 strh r1, [r0]
| 0x0804b798 7048 ldr r0, [0x0804b95c] ; [0x804b95c:4]=0x2001e84a
| 0x0804b79a 1021 movs r1, 0x10 ; 16
| 0x0804b79c 0180 strh r1, [r0]
| 0x0804b79e 6d48 ldr r0, [0x0804b956] ; [0x804b954:4]=0x2001e734
| 0x0804b7a0 6f49 ldr r1, [0x0804b960] ; [0x804b960:4]=0x2001bb00
| 0x0804b7a2 0160 str r1, [r0]
| 0x0804b7a4 0120 movs r0, 1 ; 1
| 0x0804b7a6 f3f7afff bl OSSemCreate
| 0x0804b7aa 6f49 ldr r1, [0x0804b96a] ; [0x804b968:4]=0x2001e72c
| 0x0804b7ac 0860 str r0, [r1]
| 0x0804b7ae 0020 movs r0, 0
| 0x0804b7b0 f3f7aaff bl OSSemCreate
| 0x0804b7b4 6649 ldr r1, [0x0804b950] ; [0x804b950:4]=0x2001e730
| 0x0804b7b6 0860 str r0, [r1]
| 0x0804b7b8 00aa add r2, sp, 0
| 0x0804b7ba 6c49 ldr r1, [0x0804b96e] ; [0x804b96c:4]=0x80f86a0 ASCII_Strings
| 0x0804b7bc 6a48 ldr r0, [0x0804b968] ; [0x804b968:4]=0x2001e72c
| 0x0804b7be 0068 ldr r0, [r0]
| 0x0804b7c0 f8f76afb bl func_43e98
| 0x0804b7c4 00aa add r2, sp, 0
| 0x0804b7c6 6a49 ldr r1, [0x0804b972] ; [0x804b970:4]=0x80f86b4
| 0x0804b7c8 6148 ldr r0, [0x0804b950] ; [0x804b950:4]=0x2001e730
| 0x0804b7ca 0068 ldr r0, [r0]
| 0x0804b7cc f8f764fb bl func_43e98
| 0x0804b7d0 00f001f8 bl Create_uCOS_Timer_Task
\ 0x0804b7d4 13bd pop {r0, r1, r4, pc}
/ (fcn) Create_uCOS_Timer_Task 58
| Caller: CreateTwoSemasAndTimerTask
| Create_uCOS_Timer_Task ();
| 0x0804b7d6 10b5 push {r4, lr}
| 0x0804b7d8 86b0 sub sp, 0x18
| 0x0804b7da 0320 movs r0, 3 ; 3
| 0x0804b7dc 0490 str r0, [sp, 0x10]
| 0x0804b7de 0020 movs r0, 0
| 0x0804b7e0 0390 str r0, [sp, 0xc]
| 0x0804b7e2 4ff48070 mov.w r0, 0x100 ; 256
| 0x0804b7e6 0290 str r0, [sp, 8]
| 0x0804b7e8 6248 ldr r0, [0x0804b974] ; [0x804b974:4]=0x20018e74
| 0x0804b7ea 0190 str r0, [sp, 4]
| 0x0804b7ec 4ff6fd70 movw r0, 0xfffd
| 0x0804b7f0 0090 str r0, [sp]
| 0x0804b7f2 3d23 movs r3, 0x3d ; '=' ; 61
| 0x0804b7f4 604a ldr r2, [0x0804b978] ; [0x804b978:4]=0x20019270
| 0x0804b7f6 0021 movs r1, 0
| 0x0804b7f8 0ff2cd00 addw r0, pc, 0xcd
| 0x0804b7fc 02f0c0fe bl OSTaskCreateExt
| 0x0804b800 0400 movs r4, r0
| 0x0804b802 05aa add r2, sp, 0x14
| 0x0804b804 5d49 ldr r1, [0x0804b97c] ; [0x804b97c:4]=0x80f8f64 s_uCOS2_Tmr_Task
| 0x0804b806 3d20 movs r0, 0x3d ; '=' ; 61
| 0x0804b808 02f020ff bl OSTaskNameSet
| 0x0804b80c 06b0 add sp, 0x18
\ 0x0804b80e 10bd pop {r4, pc}
/ (fcn) something_polling_kb_keypressed 64
| Caller: draw_botline_text
| something_polling_kb_keypressed ();
| 0x0804ed90 0120 movs r0, 1 ; 1
| 0x0804ed92 0121 movs r1, 1 ; 1
| 0x0804ed94 0122 movs r2, 1 ; 1
| 0x0804ed96 0843 orrs r0, r1
| 0x0804ed98 1043 orrs r0, r2
| 0x0804ed9a c0b2 uxtb r0, r0
| 0x0804ed9c 0028 cmp r0, 0
| ,=< 0x0804ed9e 0ed1 bne 0x804edbe
| | 0x0804eda0 dff8740b ldr.w r0, [0x0804f91c] ; [0x804f91c:4]=0x2001e884
| | 0x0804eda4 0078 ldrb r0, [r0]
| | 0x0804eda6 50f01000 orrs r0, r0, 0x10
| | 0x0804edaa dff86c1b ldr.w r1, [0x0804f91e] ; [0x804f91c:4]=0x2001e884
| | 0x0804edae 0870 strb r0, [r1]
| | 0x0804edb0 dff8700b ldr.w r0, [0x0804f928] ; [0x804f928:4]=0x2001e7b6
| | 0x0804edb4 dff8701b ldr.w r1, [0x0804f92c] ; [0x804f92c:4]=0x2001e5f8 kb_keypressed
| | 0x0804edb8 0988 ldrh r1, [r1]
| | 0x0804edba 0180 strh r1, [r0]
| ,==< 0x0804edbc 07e0 b 0x804edce
| |`-> 0x0804edbe dff8580b ldr.w r0, [0x0804f91e] ; [0x804f91c:4]=0x2001e884
| | 0x0804edc2 0078 ldrb r0, [r0]
| | 0x0804edc4 10f0ef00 ands r0, r0, 0xef
| | 0x0804edc8 dff84c1b ldr.w r1, [0x0804f91c] ; [0x804f91c:4]=0x2001e884
| | 0x0804edcc 0870 strb r0, [r1]
\ `--> 0x0804edce 7047 bx lr
/ (fcn) dummy_4edd0 2
| Caller: biglist_pollsubsys_maybe
| dummy_4edd0 ();
\ 0x0804edd0 7047 bx lr
/ (fcn) keypress_time_related_1 78
| Caller: draw_botline_text
| keypress_time_related_1 ();
| 0x0804edd2 0120 movs r0, 1 ; 1
| 0x0804edd4 0121 movs r1, 1 ; 1
| 0x0804edd6 0122 movs r2, 1 ; 1
| 0x0804edd8 0843 orrs r0, r1
| 0x0804edda 1043 orrs r0, r2
| 0x0804eddc c0b2 uxtb r0, r0
| 0x0804edde 0028 cmp r0, 0
| ,=< 0x0804ede0 15d1 bne 0x804ee0e
| | 0x0804ede2 dff8480b ldr.w r0, [0x0804f932] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| | 0x0804ede6 4078 ldrb r0, [r0, 1]
| | 0x0804ede8 c0f34000 ubfx r0, r0, 1, 1
| | 0x0804edec c007 lsls r0, r0, 0x1f
| ,==< 0x0804edee 07d4 bmi 0x804ee00
| || 0x0804edf0 dff8380b ldr.w r0, [0x0804f930] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| || 0x0804edf4 4078 ldrb r0, [r0, 1]
| || 0x0804edf6 50f00200 orrs r0, r0, 2
| || 0x0804edfa dff8301b ldr.w r1, [0x0804f932] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| || 0x0804edfe 4870 strb r0, [r1, 1]
| `--> 0x0804ee00 dff82c0b ldr.w r0, [0x0804f934] ; [0x804f934:4]=0x2001e7b8 kb_side_key_max_time
| | 0x0804ee04 dff82c1b ldr.w r1, [0x0804f938] ; [0x804f938:4]=0x20004acc md380_menu_depth
| | 0x0804ee08 0988 ldrh r1, [r1]
| | 0x0804ee0a 0180 strh r1, [r0]
| ,==< 0x0804ee0c 07e0 b 0x804ee1e
| |`-> 0x0804ee0e dff81c0b ldr.w r0, [0x0804f932] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| | 0x0804ee12 4078 ldrb r0, [r0, 1]
| | 0x0804ee14 10f0fd00 ands r0, r0, 0xfd
| | 0x0804ee18 dff8101b ldr.w r1, [0x0804f930] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| | 0x0804ee1c 4870 strb r0, [r1, 1]
\ `--> 0x0804ee1e 7047 bx lr
/ (fcn) something_setting_keypress_lower_button 74
| Caller: draw_botline_text
| something_setting_keypress_lower_button ();
| 0x0804f026 0120 movs r0, 1 ; 1
| 0x0804f028 0121 movs r1, 1 ; 1
| 0x0804f02a 0122 movs r2, 1 ; 1
| 0x0804f02c 0843 orrs r0, r1
| 0x0804f02e 1043 orrs r0, r2
| 0x0804f030 c0b2 uxtb r0, r0
| 0x0804f032 0028 cmp r0, 0
| ,=< 0x0804f034 13d1 bne 0x804f05e
| | 0x0804f036 dff8800b ldr.w r0, [0x0804fbbe] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| | 0x0804f03a 4078 ldrb r0, [r0, 1]
| | 0x0804f03c c007 lsls r0, r0, 0x1f
| ,==< 0x0804f03e 07d4 bmi 0x804f050
| || 0x0804f040 dff8740b ldr.w r0, [0x0804fbbc] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| || 0x0804f044 4078 ldrb r0, [r0, 1]
| || 0x0804f046 50f00100 orrs r0, r0, 1
| || 0x0804f04a dff86c1b ldr.w r1, [0x0804fbbe] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| || 0x0804f04e 4870 strb r0, [r1, 1]
| `--> 0x0804f050 dff8680b ldr.w r0, [0x0804fbc0] ; [0x804fbc0:4]=0x2001e88b
| | 0x0804f054 dff8dc18 ldr.w r1, [0x0804f938] ; [0x804f938:4]=0x20004acc md380_menu_depth
| | 0x0804f058 0988 ldrh r1, [r1]
| | 0x0804f05a 0180 strh r1, [r0]
| ,==< 0x0804f05c 07e0 b 0x804f06e
| |`-> 0x0804f05e dff8580b ldr.w r0, [0x0804fbbe] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| | 0x0804f062 4078 ldrb r0, [r0, 1]
| | 0x0804f064 10f0fe00 ands r0, r0, 0xfe
| | 0x0804f068 dff84c1b ldr.w r1, [0x0804fbbc] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| | 0x0804f06c 4870 strb r0, [r1, 1]
\ `--> 0x0804f06e 7047 bx lr
/ (fcn) more_setting_keypress_lower_button 78
| Caller: draw_botline_text
| more_setting_keypress_lower_button ();
| 0x0804f24e 0120 movs r0, 1 ; 1
| 0x0804f250 0121 movs r1, 1 ; 1
| 0x0804f252 0122 movs r2, 1 ; 1
| 0x0804f254 0843 orrs r0, r1
| 0x0804f256 1043 orrs r0, r2
| 0x0804f258 c0b2 uxtb r0, r0
| 0x0804f25a 0028 cmp r0, 0
| ,=< 0x0804f25c 15d1 bne 0x804f28a
| | 0x0804f25e dff85809 ldr.w r0, [0x0804fbbe] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| | 0x0804f262 4078 ldrb r0, [r0, 1]
| | 0x0804f264 c0f30010 ubfx r0, r0, 4, 1
| | 0x0804f268 c007 lsls r0, r0, 0x1f
| ,==< 0x0804f26a 07d4 bmi 0x804f27c
| || 0x0804f26c dff84809 ldr.w r0, [0x0804fbbc] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| || 0x0804f270 4078 ldrb r0, [r0, 1]
| || 0x0804f272 50f01000 orrs r0, r0, 0x10
| || 0x0804f276 dff84019 ldr.w r1, [0x0804fbbe] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| || 0x0804f27a 4870 strb r0, [r1, 1]
| `--> 0x0804f27c dff84809 ldr.w r0, [0x0804fbcc] ; [0x804fbcc:4]=0x2001e88c
| | 0x0804f280 dff8b016 ldr.w r1, [0x0804f938] ; [0x804f938:4]=0x20004acc md380_menu_depth
| | 0x0804f284 0988 ldrh r1, [r1]
| | 0x0804f286 0180 strh r1, [r0]
| ,==< 0x0804f288 07e0 b 0x804f29a
| |`-> 0x0804f28a dff82c09 ldr.w r0, [0x0804fbbe] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| | 0x0804f28e 4078 ldrb r0, [r0, 1]
| | 0x0804f290 10f0ef00 ands r0, r0, 0xef
| | 0x0804f294 dff82019 ldr.w r1, [0x0804fbbc] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| | 0x0804f298 4870 strb r0, [r1, 1]
\ `--> 0x0804f29a 7047 bx lr
/ (fcn) check_for_ptt_switch 106
| Caller: draw_botline_text
| check_for_ptt_switch ();
| 0x0804ebfc 38b5 push {r3, r4, r5, lr}
| 0x0804ebfe 4ff40061 mov.w r1, 0x800 ; 2048
| 0x0804ec02 dff8d40b ldr.w r0, [0x0804f7de] ; [0x804f7dc:4]=0x2140b538
| 0x0804ec06 dcf7f2fd bl GPIO_ReadInputDataBit
| 0x0804ec0a 0400 movs r4, r0
| 0x0804ec0c 4ff40061 mov.w r1, 0x800 ; 2048
| 0x0804ec10 dff8c40b ldr.w r0, [kb_handler_sub1] ; [0x804f7dc:4]=0x2140b538
| 0x0804ec14 dcf7ebfd bl GPIO_ReadInputDataBit
| 0x0804ec18 0500 movs r5, r0
| 0x0804ec1a 4ff40061 mov.w r1, 0x800 ; 2048
| 0x0804ec1e dff8b80b ldr.w r0, [0x0804f7de] ; [0x804f7dc:4]=0x2140b538
| 0x0804ec22 dcf7e4fd bl GPIO_ReadInputDataBit
| 0x0804ec26 55ea0401 orrs.w r1, r5, r4
| 0x0804ec2a 0843 orrs r0, r1
| 0x0804ec2c c0b2 uxtb r0, r0
| 0x0804ec2e 0028 cmp r0, 0
| ,=< 0x0804ec30 08d1 bne 0x804ec44
| | 0x0804ec32 dff8e40c ldr.w r0, [0x0804f91e] ; [0x804f91c:4]=0x2001e884
| | 0x0804ec36 0078 ldrb r0, [r0]
| | 0x0804ec38 50f00200 orrs r0, r0, 2
| | 0x0804ec3c dff8d81c ldr.w r1, [0x0804f91c] ; [0x804f91c:4]=0x2001e884
| | 0x0804ec40 0870 strb r0, [r1]
| ,==< 0x0804ec42 07e0 b 0x804ec54
| |`-> 0x0804ec44 dff8d00c ldr.w r0, [0x0804f91c] ; [0x804f91c:4]=0x2001e884
| | 0x0804ec48 0078 ldrb r0, [r0]
| | 0x0804ec4a 10f0fd00 ands r0, r0, 0xfd
| | 0x0804ec4e dff8c81c ldr.w r1, [0x0804f91e] ; [0x804f91c:4]=0x2001e884
| | 0x0804ec52 0870 strb r0, [r1]
| `--> 0x0804ec54 dff8c00c ldr.w r0, [0x0804f91c] ; [0x804f91c:4]=0x2001e884
| 0x0804ec58 0078 ldrb r0, [r0]
| 0x0804ec5a 10f0fb00 ands r0, r0, 0xfb
| 0x0804ec5e dff8b81c ldr.w r1, [0x0804f91e] ; [0x804f91c:4]=0x2001e884
| 0x0804ec62 0870 strb r0, [r1]
\ 0x0804ec64 31bd pop {r0, r4, r5, pc}
/ (fcn) aes_startup_check 324
| Caller: func_475b8
| aes_startup_check ();
| 0x0802256a 30b5 push {r4, r5, lr}
| 0x0802256c 8db0 sub sp, 0x34 ; '4'
| 0x0802256e 0024 movs r4, 0
| 0x08022570 dff8c00b ldr.w r0, [0x08023138] ; [0x8023138:4]=0x2001e4a4
| 0x08022574 0021 movs r1, 0
| 0x08022576 0170 strb r1, [r0]
| 0x08022578 dff89c0c ldr.w r0, [0x0802321c] ; [0x802321c:4]=0x2001def8 menu_pointer_maybe_channel_data
| 0x0802257c 0021 movs r1, 0
| 0x0802257e 0170 strb r1, [r0]
| 0x08022580 dff8b40b ldr.w r0, [0x0802313c] ; [0x802313c:4]=0x1fff7a10
| 0x08022584 0021 movs r1, 0
| 0x08022586 0160 str r1, [r0]
| 0x08022588 dff8ac0b ldr.w r0, [0x0802313c] ; [0x802313c:4]=0x1fff7a10
| 0x0802258c dff8ac1b ldr.w r1, [0x08023140] ; [0x8023140:4]=0x1fff7a14
| 0x08022590 0968 ldr r1, [r1]
| 0x08022592 4160 str r1, [r0, 4]
| 0x08022594 dff8a00b ldr.w r0, [0x0802313c] ; [0x802313c:4]=0x1fff7a10
| 0x08022598 dff8a41b ldr.w r1, [0x08023144] ; [0x8023144:4]=0x1fff7a18
| 0x0802259c 0968 ldr r1, [r1]
| 0x0802259e 8160 str r1, [r0, 8]
| 0x080225a0 dff8940b ldr.w r0, [0x0802313c] ; [0x802313c:4]=0x1fff7a10
| 0x080225a4 dff89c1b ldr.w r1, [0x08023148] ; [0x8023148:4]=0x1fff77f0
| 0x080225a8 0968 ldr r1, [r1]
| 0x080225aa c160 str r1, [r0, 0xc]
| 0x080225ac 0121 movs r1, 1 ; 1
| 0x080225ae 4ff48050 mov.w r0, 0x1000
| 0x080225b2 14f098fa bl func_36ae6
| 0x080225b6 14f02dfb bl func_36c14
| 0x080225ba 5ff0ff30 movs.w r0, -1 ; -1
| 0x080225be 14f02dfb bl func_36c1c
| 0x080225c2 0400 movs r4, r0
| 0x080225c4 0125 movs r5, 1 ; 1
| ,=< 0x080225c6 09e0 b 0x80225dc
| .--> 0x080225c8 adb2 uxth r5, r5
| || 0x080225ca dff86c0b ldr.w r0, [0x0802313e] ; [0x802313c:4]=0x1fff7a10
| || 0x080225ce 50f82540 ldr.w r4, [r0, r5, lsl 2]
| || 0x080225d2 2000 movs r0, r4
| || 0x080225d4 14f022fb bl func_36c1c
| || 0x080225d8 0400 movs r4, r0
| || 0x080225da 6d1c adds r5, r5, 1
| |`-> 0x080225dc adb2 uxth r5, r5
| | 0x080225de 042d cmp r5, 4 ; 4
| `==< 0x080225e0 f2d3 blo 0x80225c8
| 0x080225e2 dff8540b ldr.w r0, [0x0802313e] ; [0x802313c:4]=0x1fff7a10
| 0x080225e6 0460 str r4, [r0]
| 0x080225e8 0021 movs r1, 0
| 0x080225ea 4ff48050 mov.w r0, 0x1000
| 0x080225ee 14f07afa bl func_36ae6
| 0x080225f2 0d21 movs r1, 0xd ; 13
| 0x080225f4 c9b2 uxtb r1, r1
| 0x080225f6 dff8500b ldr.w r0, [0x0802314e] ; [0x802314c:4]=0xb289b580
| 0x080225fa 10eb0110 adds.w r0, r0, r1, lsl 4
| 0x080225fe 0025 movs r5, 0
| ,=< 0x08022600 05e0 b 0x802260e
| .--> 0x08022602 adb2 uxth r5, r5
| || 0x08022604 04aa add r2, sp, 0x10
| || 0x08022606 0378 ldrb r3, [r0]
| || 0x08022608 ab54 strb r3, [r5, r2]
| || 0x0802260a 401c adds r0, r0, 1
| || 0x0802260c 6d1c adds r5, r5, 1
| |`-> 0x0802260e adb2 uxth r5, r5
| | 0x08022610 102d cmp r5, 0x10 ; 16
| `==< 0x08022612 f6d3 blo 0x8022602
| 0x08022614 0025 movs r5, 0
| ,=< 0x08022616 0ce0 b 0x8022632
| .--> 0x08022618 c9b2 uxtb r1, r1
| || 0x0802261a 0801 lsls r0, r1, 4
| || 0x0802261c 10fa85f0 uxtah r0, r0, r5
| || 0x08022620 dff8802b ldr.w r2, [write_current_channel_info_to_spi_long] ; [0x80231a8:4]=0xb280b580
| || 0x08022624 8018 adds r0, r0, r2
| || 0x08022626 10f8100c ldrb r0, [r0, -0x10]
| || 0x0802262a adb2 uxth r5, r5
| || 0x0802262c 08aa add r2, sp, 0x20
| || 0x0802262e a854 strb r0, [r5, r2]
| || 0x08022630 6d1c adds r5, r5, 1
| |`-> 0x08022632 adb2 uxth r5, r5
| | 0x08022634 102d cmp r5, 0x10 ; 16
| `==< 0x08022636 efd3 blo 0x8022618
| 0x08022638 08a8 add r0, sp, 0x20
| 0x0802263a 14f0f9fa bl aes_36c30
| 0x0802263e 0025 movs r5, 0
| ,=< 0x08022640 07e0 b 0x8022652
| .--> 0x08022642 adb2 uxth r5, r5
| || 0x08022644 00a8 add r0, sp, 0
| || 0x08022646 adb2 uxth r5, r5
| || 0x08022648 dff8ec1a ldr.w r1, [0x0802313c] ; [0x802313c:4]=0x1fff7a10
| || 0x0802264c 695c ldrb r1, [r5, r1]
| || 0x0802264e 2954 strb r1, [r5, r0]
| || 0x08022650 6d1c adds r5, r5, 1
| |`-> 0x08022652 adb2 uxth r5, r5
| | 0x08022654 102d cmp r5, 0x10 ; 16
| `==< 0x08022656 f4d3 blo 0x8022642
| 0x08022658 00a8 add r0, sp, 0
| 0x0802265a 14f0edfa bl aes_cipher
| 0x0802265e 0025 movs r5, 0
| ,=< 0x08022660 00e0 b 0x8022664
| .--> 0x08022662 6d1c adds r5, r5, 1
| |`-> 0x08022664 adb2 uxth r5, r5
| | 0x08022666 102d cmp r5, 0x10 ; 16
| |,=< 0x08022668 0fd2 bhs 0x802268a
| || 0x0802266a adb2 uxth r5, r5
| || 0x0802266c 00a8 add r0, sp, 0
| || 0x0802266e 285c ldrb r0, [r5, r0]
| || 0x08022670 adb2 uxth r5, r5
| || 0x08022672 04a9 add r1, sp, 0x10
| || 0x08022674 695c ldrb r1, [r5, r1]
| || 0x08022676 8842 cmp r0, r1
| `==< 0x08022678 f3d0 beq 0x8022662
| | 0x0802267a dff8b80a ldr.w r0, [0x0802313a] ; [0x8023138:4]=0x2001e4a4
| | 0x0802267e 0121 movs r1, 1 ; 1
| | 0x08022680 0170 strb r1, [r0]
| | 0x08022682 dff8b00a ldr.w r0, [0x0802313a] ; [0x8023138:4]=0x2001e4a4
| | 0x08022686 0221 movs r1, 2 ; 2
| | 0x08022688 0170 strb r1, [r0]
| `-> 0x0802268a adb2 uxth r5, r5
| 0x0802268c 102d cmp r5, 0x10 ; 16
| ,=< 0x0802268e 08d1 bne 0x80226a2
| | 0x08022690 dff8a00a ldr.w r0, [0x08023138] ; [0x8023138:4]=0x2001e4a4
| | 0x08022694 0078 ldrb r0, [r0]
| | 0x08022696 0028 cmp r0, 0
| ,==< 0x08022698 03d1 bne 0x80226a2
| || 0x0802269a dff8980a ldr.w r0, [0x0802313a] ; [0x8023138:4]=0x2001e4a4
| || 0x0802269e 4221 movs r1, 0x42 ; 'B' ; 66
| || 0x080226a0 0170 strb r1, [r0]
| ``-> 0x080226a2 dff8740b ldr.w r0, [0x0802321e] ; [0x802321c:4]=0x2001def8 menu_pointer_maybe_channel_data
| 0x080226a6 0621 movs r1, 6 ; 6
| 0x080226a8 0170 strb r1, [r0]
| 0x080226aa 0db0 add sp, 0x34
\ 0x080226ac 30bd pop {r4, r5, pc}
/ (fcn) func_36c1c 10
| Caller: func_4ccbc aes_startup_check
| func_36c1c ();
| 0x08036c1c 0349 ldr r1, [0x08036c2c] ; [0x8036c2c:4]=0x40023000 io_CRC
| 0x08036c1e 0860 str r0, [r1]
| 0x08036c20 0248 ldr r0, [0x08036c2c] ; [0x8036c2c:4]=0x40023000 io_CRC
| 0x08036c22 0068 ldr r0, [r0]
\ 0x08036c24 7047 bx lr
/ (fcn) aes_36c30 8
| Caller: aes_startup_check c5000_iffreq_init
| aes_36c30 ();
| 0x08036c30 80b5 push {r7, lr}
| 0x08036c32 00f045f8 bl aes_loadkey
\ 0x08036c36 01bd pop {r0, pc}
/ (fcn) aes_cipher 137
| Caller: aes_startup_check c5000_iffreq_init
| aes_cipher ();
| 0x08036c38 30b5 push {r4, r5, lr}
| 0x08036c3a 85b0 sub sp, 0x14
| 0x08036c3c 0400 movs r4, r0
| 0x08036c3e 0020 movs r0, 0
| ,=< 0x08036c40 0ae0 b 0x8036c58
| .--> 0x08036c42 10eb8102 adds.w r2, r0, r1, lsl 2
| || 0x08036c46 125d ldrb r2, [r2, r4]
| || 0x08036c48 00ab add r3, sp, 0
| || 0x08036c4a 13eb8003 adds.w r3, r3, r0, lsl 2
| || 0x08036c4e ca54 strb r2, [r1, r3]
| || 0x08036c50 491c adds r1, r1, 1
| .---> 0x08036c52 0429 cmp r1, 4 ; 4
| |`==< 0x08036c54 f5db blt 0x8036c42
| | | 0x08036c56 401c adds r0, r0, 1
| | `-> 0x08036c58 0428 cmp r0, 4 ; 4
| | ,=< 0x08036c5a 01da bge 0x8036c60
| | | 0x08036c5c 0021 movs r1, 0
| `===< 0x08036c5e f8e7 b 0x8036c52
| `-> 0x08036c60 dff8d412 ldr.w r1, [0x08036f3c] ; [0x8036f3c:4]=0x80f9254
| 0x08036c64 00a8 add r0, sp, 0
| 0x08036c66 00f050f9 bl func_36f0a
| 0x08036c6a 0125 movs r5, 1 ; 1
| ,=< 0x08036c6c 12e0 b 0x8036c94
| .--> 0x08036c6e 00a8 add r0, sp, 0
| || 0x08036c70 00f0caf8 bl func_36e08
| || 0x08036c74 00a8 add r0, sp, 0
| || 0x08036c76 00f0dcf8 bl func_36e32
| || 0x08036c7a 0a2d cmp r5, 0xa ; 10
| ,===< 0x08036c7c 02d0 beq 0x8036c84
| ||| 0x08036c7e 00a8 add r0, sp, 0
| ||| 0x08036c80 00f0f9f8 bl func_36e76
| `---> 0x08036c84 dff8b002 ldr.w r0, [0x08036f3c] ; [0x8036f3c:4]=0x80f9254
| || 0x08036c88 10eb0511 adds.w r1, r0, r5, lsl 4
| || 0x08036c8c 00a8 add r0, sp, 0
| || 0x08036c8e 00f03cf9 bl func_36f0a
| || 0x08036c92 6d1c adds r5, r5, 1
| |`-> 0x08036c94 0b2d cmp r5, 0xb ; 11
| `==< 0x08036c96 eadb blt 0x8036c6e
| 0x08036c98 0020 movs r0, 0
| ,=< 0x08036c9a 0ae0 b 0x8036cb2
| .--> 0x08036c9c 10eb8102 adds.w r2, r0, r1, lsl 2
| || 0x08036ca0 00ab add r3, sp, 0
| || 0x08036ca2 13eb8003 adds.w r3, r3, r0, lsl 2
| || 0x08036ca6 cb5c ldrb r3, [r1, r3]
| || 0x08036ca8 1355 strb r3, [r2, r4]
| || 0x08036caa 491c adds r1, r1, 1
| .---> 0x08036cac 0429 cmp r1, 4 ; 4
| |`==< 0x08036cae f5db blt 0x8036c9c
| | | 0x08036cb0 401c adds r0, r0, 1
| | `-> 0x08036cb2 0428 cmp r0, 4 ; 4
| | ,=< 0x08036cb4 01da bge 0x8036cba
| | | 0x08036cb6 0021 movs r1, 0
| `===< 0x08036cb8 f8e7 b 0x8036cac
| `-> 0x08036cba 2000 movs r0, r4
| 0x08036cbc 05b0 add sp, 0x14
| 0x08036cbe 30bd pop {r4, r5, pc}
/ (fcn) aes_loadkey 236
| Caller: aes_36c30
| aes_loadkey ();
| 0x08036cc0 7f invalid
/ (fcn) Get_Welcome_Line1_from_spi_flash 18
| Caller: task_rtc_timer
| Get_Welcome_Line1_from_spi_flash ();
| 0x080226c0 80b5 push {r7, lr}
| 0x080226c2 1422 movs r2, 0x14 ; 20
| 0x080226c4 4ff40151 mov.w r1, 0x2040
| 0x080226c8 dff8cc0c ldr.w r0, [func_2339c] ; [0x802339c:4]=0x22c8b580
| 0x080226cc 0ef0d3fe bl md380_spiflash_read
\ 0x080226d0 01bd pop {r0, pc}
/ (fcn) Get_Welcome_Line2_from_spi_flash 18
| Caller: task_rtc_timer
| Get_Welcome_Line2_from_spi_flash ();
| 0x080226d2 80b5 push {r7, lr}
| 0x080226d4 1422 movs r2, 0x14 ; 20
| 0x080226d6 42f25401 movw r1, 0x2054
| 0x080226da dff8d40c ldr.w r0, [0x080233b6] ; [0x80233b4:4]=0x22c8b580
| 0x080226de 0ef0cafe bl md380_spiflash_read
\ 0x080226e2 01bd pop {r0, pc}
/ (fcn) rc_write_radio_config_to_flash 18
| Caller: func_2e918
| rc_write_radio_config_to_flash ();
| 0x080226f6 80b5 push {r7, lr}
| 0x080226f8 5022 movs r2, 0x50 ; 'P' ; 80
| 0x080226fa 4ff40251 mov.w r1, 0x2080
| 0x080226fe dff8c80c ldr.w r0, [0x080233ce] ; [0x80233cc:4]=0xb2c0b580
| 0x08022702 0ef02cff bl md380_spiflash_write
\ 0x08022706 01bd pop {r0, pc}
/ (fcn) channel_info_read_spi_init 156
| Caller: some_init func_2ea0c_beeps_and_uses_struct_channel_info2 Create_Menu_Entry_RX_QRG_4
| func_475b8 func_2e984_beeps_and_uses_msg_timer_500
| channel_info_read_spi_init ();
| 0x08022aa6 10b5 push {r4, lr}
| 0x08022aa8 0400 movs r4, r0
| 0x08022aaa a4b2 uxth r4, r4
| 0x08022aac 4020 movs r0, 0x40 ; '@' ; 64
| 0x08022aae dff88c1a ldr.w r1, [0x08023542] ; [0x8023540:4]=0x2001deb8 current_channel_info
| 0x08022ab2 00fb0411 mla r1, r0, r4, r1
| 0x08022ab6 4022 movs r2, 0x40 ; '@' ; 64
| 0x08022ab8 dff8840a ldr.w r0, [0x08023544] ; [0x8023544:4]=0x2001e73c
| 0x08022abc 0ef0dbfc bl md380_spiflash_read
| 0x08022ac0 dff87c0a ldr.w r0, [0x08023544] ; [0x8023544:4]=0x2001e73c
| 0x08022ac4 4069 ldr r0, [r0, 0x14]
| 0x08022ac6 dff8781a ldr.w r1, [0x08023546] ; [0x8023544:4]=0x2001e73c
| 0x08022aca 0969 ldr r1, [r1, 0x10]
| 0x08022acc 8842 cmp r0, r1
| ,=< 0x08022ace 07d2 bhs 0x8022ae0
| | 0x08022ad0 dff86c0a ldr.w r0, [0x08023544] ; [0x8023544:4]=0x2001e73c
| | 0x08022ad4 0069 ldr r0, [r0, 0x10]
| | 0x08022ad6 dff8681a ldr.w r1, [0x08023546] ; [0x8023544:4]=0x2001e73c
| | 0x08022ada 4969 ldr r1, [r1, 0x14]
| | 0x08022adc 401a subs r0, r0, r1
| ,==< 0x08022ade 06e0 b 0x8022aee
| |`-> 0x08022ae0 dff85c0a ldr.w r0, [0x08023544] ; [0x8023544:4]=0x2001e73c
| | 0x08022ae4 4069 ldr r0, [r0, 0x14]
| | 0x08022ae6 dff8581a ldr.w r1, [0x08023546] ; [0x8023544:4]=0x2001e73c
| | 0x08022aea 0969 ldr r1, [r1, 0x10]
| | 0x08022aec 401a subs r0, r0, r1
| `--> 0x08022aee b0f5805f cmp.w r0, 0x1000
| ,=< 0x08022af2 11d9 bls 0x8022b18
| | 0x08022af4 dff8480a ldr.w r0, [0x08023544] ; [0x8023544:4]=0x2001e73c
| | 0x08022af8 4078 ldrb r0, [r0, 1]
| | 0x08022afa c007 lsls r0, r0, 0x1f
| ,==< 0x08022afc 07d4 bmi 0x8022b0e
| || 0x08022afe dff8400a ldr.w r0, [0x08023546] ; [0x8023544:4]=0x2001e73c
| || 0x08022b02 c078 ldrb r0, [r0, 3]
| || 0x08022b04 50f02000 orrs r0, r0, 0x20
| || 0x08022b08 dff8341a ldr.w r1, [0x08023544] ; [0x8023544:4]=0x2001e73c
| || 0x08022b0c c870 strb r0, [r1, 3]
| `--> 0x08022b0e dff8c80a ldr.w r0, [0x080235de] ; [0x80235dc:4]=0x2001e898 simplex_or_repeater_flagword
| | 0x08022b12 0121 movs r1, 1 ; 1
| | 0x08022b14 0170 strb r1, [r0]
| ,==< 0x08022b16 0be0 b 0x8022b30
| |`-> 0x08022b18 dff8240a ldr.w r0, [0x08023544] ; [0x8023544:4]=0x2001e73c
| | 0x08022b1c c078 ldrb r0, [r0, 3]
| | 0x08022b1e 10f0df00 ands r0, r0, 0xdf
| | 0x08022b22 dff81c1a ldr.w r1, [0x08023546] ; [0x8023544:4]=0x2001e73c
| | 0x08022b26 c870 strb r0, [r1, 3]
| | 0x08022b28 dff8ac0a ldr.w r0, [0x080235dc] ; [0x80235dc:4]=0x2001e898 simplex_or_repeater_flagword
| | 0x08022b2c 0021 movs r1, 0
| | 0x08022b2e 0170 strb r1, [r0]
| `--> 0x08022b30 2000 movs r0, r4
| 0x08022b32 80b2 uxth r0, r0
| 0x08022b34 00f005f8 bl func_22b42
| 0x08022b38 2000 movs r0, r4
| 0x08022b3a 80b2 uxth r0, r0
| 0x08022b3c 00f0c3f8 bl func_22cc6_spiflash_rd_6
\ 0x08022b40 10bd pop {r4, pc}
/ (fcn) write_current_channel_info_to_spi 26
| Caller: func_2ea0c_beeps_and_uses_struct_channel_info2 Create_Menu_Entry_RX_QRG_4 func_2e984_beeps_and_uses_msg_timer_500
| write_current_channel_info_to_spi ();
| 0x08022cac 80b5 push {r7, lr}
| 0x08022cae 80b2 uxth r0, r0
| 0x08022cb0 4021 movs r1, 0x40 ; '@' ; 64
| 0x08022cb2 dff88828 ldr.w r2, [0x08023542] ; [0x8023540:4]=0x2001deb8 current_channel_info
| 0x08022cb6 01fb0021 mla r1, r1, r0, r2
| 0x08022cba 2022 movs r2, 0x20 ; 32
| 0x08022cbc dff88008 ldr.w r0, [0x08023544] ; [0x8023544:4]=0x2001e73c
| 0x08022cc0 0ef04dfc bl md380_spiflash_write
\ 0x08022cc4 01bd pop {r0, pc}
/ (fcn) write_current_channel_info_to_spi_long 26
| Caller: Create_Menu_Entry_RX_QRG_4
| write_current_channel_info_to_spi_long ();
| 0x080231a8 80b5 push {r7, lr}
| 0x080231aa 80b2 uxth r0, r0
| 0x080231ac 4021 movs r1, 0x40 ; '@' ; 64
| 0x080231ae dff88c23 ldr.w r2, [0x08023542] ; [0x8023540:4]=0x2001deb8 current_channel_info
| 0x080231b2 01fb0021 mla r1, r1, r0, r2
| 0x080231b6 4022 movs r2, 0x40 ; '@' ; 64
| 0x080231b8 dff82804 ldr.w r0, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| 0x080231bc 0ef0cff9 bl md380_spiflash_write
\ 0x080231c0 01bd pop {r0, pc}
/ (fcn) spiflash_read_3ff30_288 26
| spiflash_read_3ff30_288 ();
| 0x08022e88 80b5 push {r7, lr}
| 0x08022e8a c9b2 uxtb r1, r1
| 0x08022e8c 4ff49072 mov.w r2, 0x120 ; 288
| 0x08022e90 dff82838 ldr.w r3, [0x080236c0] ; [0x80236c0:4]=0x2001e57c zone_number_in_byte_3
| 0x08022e94 02fb0131 mla r1, r2, r1, r3
| 0x08022e98 4ff49072 mov.w r2, 0x120 ; 288
| 0x08022e9c 0ef0ebfa bl md380_spiflash_read
\ 0x08022ea0 01bd pop {r0, pc}
/ (fcn) spiflash_write_3ff30_288 26
| spiflash_write_3ff30_288 ();
| 0x08022ea2 80b5 push {r7, lr}
| 0x08022ea4 c9b2 uxtb r1, r1
| 0x08022ea6 4ff49072 mov.w r2, 0x120 ; 288
| 0x08022eaa dff81038 ldr.w r3, [0x080236c2] ; [0x80236c0:4]=0x2001e57c zone_number_in_byte_3
| 0x08022eae 02fb0131 mla r1, r2, r1, r3
| 0x08022eb2 4ff49072 mov.w r2, 0x120 ; 288
| 0x08022eb6 0ef052fb bl md380_spiflash_write
\ 0x08022eba 01bd pop {r0, pc}
/ (fcn) msg_process_sms 260
| Caller: ev5_rest
| msg_process_sms ();
| 0x0803dd0c 80b5 push {r7, lr}
| 0x0803dd0e 0020 movs r0, 0
| 0x0803dd10 fff7eefa bl func_3d2f0
| 0x0803dd14 c0b2 uxtb r0, r0
| 0x0803dd16 0128 cmp r0, 1 ; 1
| ,=< 0x0803dd18 6dd1 bne 0x803ddf6
| | 0x0803dd1a dff8a405 ldr.w r0, [0x0803e2c6] ; [0x803e2c4:4]=0x2001e8e5
| | 0x0803dd1e 0078 ldrb r0, [r0]
| | 0x0803dd20 10f07f00 ands r0, r0, 0x7f
| | 0x0803dd24 dff89815 ldr.w r1, [0x0803e2c4] ; [0x803e2c4:4]=0x2001e8e5
| | 0x0803dd28 0870 strb r0, [r1]
| | 0x0803dd2a dff89405 ldr.w r0, [0x0803e2c6] ; [0x803e2c4:4]=0x2001e8e5
| | 0x0803dd2e 4078 ldrb r0, [r0, 1]
| | 0x0803dd30 10f0fe00 ands r0, r0, 0xfe
| | 0x0803dd34 dff88815 ldr.w r1, [0x0803e2c4] ; [0x803e2c4:4]=0x2001e8e5
| | 0x0803dd38 4870 strb r0, [r1, 1]
| | 0x0803dd3a dff88805 ldr.w r0, [0x0803e2ca] ; [0x803e2c8:4]=0x2001e650 sema1_poi
| | 0x0803dd3e 0021 movs r1, 0
| | 0x0803dd40 0170 strb r1, [r0]
| | 0x0803dd42 dff88c05 ldr.w r0, [0x0803e2d6] ; [0x803e2d4:4]=0x2001e8a3
| | 0x0803dd46 8078 ldrb r0, [r0, 2]
| | 0x0803dd48 50f00400 orrs r0, r0, 4
| | 0x0803dd4c dff88015 ldr.w r1, [0x0803e2d4] ; [0x803e2d4:4]=0x2001e8a3
| | 0x0803dd50 8870 strb r0, [r1, 2]
| | 0x0803dd52 dff87405 ldr.w r0, [0x0803e2ce] ; [0x803e2cc:4]=0x2001e658 event5_mbox_poi
| | 0x0803dd56 0068 ldr r0, [r0]
| | 0x0803dd58 01f074fd bl OSSemPost
| | 0x0803dd5c 0a20 movs r0, 0xa ; 10
| | 0x0803dd5e f6f7a9f8 bl OSTimeDly
| | 0x0803dd62 dff86c05 ldr.w r0, [0x0803e2d6] ; [0x803e2d4:4]=0x2001e8a3
| | 0x0803dd66 4078 ldrb r0, [r0, 1]
| | 0x0803dd68 10f0bf00 ands r0, r0, 0xbf
| | 0x0803dd6c dff86015 ldr.w r1, [0x0803e2d4] ; [0x803e2d4:4]=0x2001e8a3
| | 0x0803dd70 4870 strb r0, [r1, 1]
| | 0x0803dd72 dff85c05 ldr.w r0, [0x0803e2d6] ; [0x803e2d4:4]=0x2001e8a3
| | 0x0803dd76 4078 ldrb r0, [r0, 1]
| | 0x0803dd78 10f0df00 ands r0, r0, 0xdf
| | 0x0803dd7c dff85015 ldr.w r1, [0x0803e2d4] ; [0x803e2d4:4]=0x2001e8a3
| | 0x0803dd80 4870 strb r0, [r1, 1]
| | 0x0803dd82 dff83005 ldr.w r0, [0x0803e2ba] ; [0x803e2b8:4]=0x2001de78 struct_channel_info2
| | 0x0803dd86 0068 ldr r0, [r0]
| | 0x0803dd88 01f05cfd bl OSSemPost
| | ;-- msg_process_sms2:
| | 0x0803dd8c dff84805 ldr.w r0, [0x0803e2dc] ; [0x803e2dc:4]=0x2001e5dc msg_dest_addr
| | 0x0803dd90 0068 ldr r0, [r0]
| | 0x0803dd92 0002 lsls r0, r0, 8
| | 0x0803dd94 000a lsrs r0, r0, 8
| | 0x0803dd96 dff84415 ldr.w r1, [0x0803e2e2] ; [0x803e2e0:4]=0x2001e898 simplex_or_repeater_flagword
| | 0x0803dd9a 0860 str r0, [r1]
| | 0x0803dd9c dff83805 ldr.w r0, [0x0803e2dc] ; [0x803e2dc:4]=0x2001e5dc msg_dest_addr
| | 0x0803dda0 c078 ldrb r0, [r0, 3]
| | 0x0803dda2 0001 lsls r0, r0, 4
| | 0x0803dda4 10f07f00 ands r0, r0, 0x7f
| | 0x0803dda8 50f00100 orrs r0, r0, 1
| | 0x0803ddac a749 ldr r1, [0x0803e04c] ; [0x803e04c:4]=0x2001e895 msg_sms_flags_shifted
| | 0x0803ddae 0870 strb r0, [r1]
| | 0x0803ddb0 dff82c05 ldr.w r0, [0x0803e2e4] ; [0x803e2e4:4]=0x2001cefc msg_sms_bdy
| | 0x0803ddb4 0078 ldrb r0, [r0]
| | 0x0803ddb6 0128 cmp r0, 1 ; 1
| ,==< 0x0803ddb8 04d1 bne 0x803ddc4
| || 0x0803ddba c321 movs r1, 0xc3 ; 195
| || 0x0803ddbc 4020 movs r0, 0x40 ; '@' ; 64
| || 0x0803ddbe 02f0e1f8 bl c5000_spi0_writereg
| ,===< 0x0803ddc2 03e0 b 0x803ddcc
| |`--> 0x0803ddc4 e321 movs r1, 0xe3 ; 227
| | | 0x0803ddc6 4020 movs r0, 0x40 ; '@' ; 64
| | | 0x0803ddc8 02f0dcf8 bl c5000_spi0_writereg
| `---> 0x0803ddcc 4ff49073 mov.w r3, 0x120 ; 288
| | 0x0803ddd0 dff81025 ldr.w r2, [0x0803e2e8] ; [0x803e2e8:4]=0x2001e8f5 msg_status_flag1
| | 0x0803ddd4 dff80405 ldr.w r0, [0x0803e2e0] ; [0x803e2e0:4]=0x2001e898 simplex_or_repeater_flagword
| | 0x0803ddd8 0168 ldr r1, [r0]
| | 0x0803ddda 9c48 ldr r0, [0x0803e04e] ; [0x803e04c:4]=0x2001e895 msg_sms_flags_shifted
| | 0x0803dddc 0078 ldrb r0, [r0]
| | 0x0803ddde 0ef03bfd bl msg_handle_types
| | 0x0803dde2 dff80405 ldr.w r0, [0x0803e2ee] ; [0x803e2ec:4]=0x2001e80e
| | 0x0803dde6 0521 movs r1, 5 ; 5
| | 0x0803dde8 0170 strb r1, [r0]
| | 0x0803ddea dff80005 ldr.w r0, [0x0803e2f2] ; [0x803e2f0:4]=0x2001e8f4 msg_last_event
| | 0x0803ddee 4ff41671 mov.w r1, 0x258 ; 600
| | 0x0803ddf2 0180 strh r1, [r0]
| ,==< 0x0803ddf4 0be0 b 0x803de0e
| |`-> 0x0803ddf6 c0b2 uxtb r0, r0
| | 0x0803ddf8 0028 cmp r0, 0
| |,=< 0x0803ddfa 04d1 bne 0x803de06
| || 0x0803ddfc dff8e804 ldr.w r0, [0x0803e2ec] ; [0x803e2ec:4]=0x2001e80e
| || 0x0803de00 0821 movs r1, 8 ; 8
| || 0x0803de02 0170 strb r1, [r0]
| ,===< 0x0803de04 03e0 b 0x803de0e
| ||`-> 0x0803de06 dff8e004 ldr.w r0, [0x0803e2ee] ; [0x803e2ec:4]=0x2001e80e
| || 0x0803de0a 0321 movs r1, 3 ; 3
| || 0x0803de0c 0170 strb r1, [r0]
\ ``--> 0x0803de0e 01bd pop {r0, pc}
/ (fcn) func_2318e 18
| Caller: Start
| func_2318e ();
| 0x0802318e 80b5 push {r7, lr}
| 0x08023190 0822 movs r2, 8 ; 8
| 0x08023192 42f2f001 movw r1, 0x20f0
| 0x08023196 dff87005 ldr.w r0, [0x0802370e] ; [0x802370c:4]=0x48bc4
| 0x0802319a 0ef06cf9 bl md380_spiflash_read
\ 0x0802319e 01bd pop {r0, pc}
/ (fcn) md380_spiflash_read 70
| Caller: func_22950_spiflash_rd_4 func_2318e func_23294 func_22a8c func_22f50_spiflash_rd_13
| func_115ec Get_Welcome_Line2_from_spi_flash read_40_from_2100_spi func_22ee0_spiflash_rd_12
| func_23690 func_2f58e func_25ff4 func_22f04_spiflash_rd_sms_hdr spiflash_rd_something_zone_depending
| spiflash_read_3ff30_288 func_22962_spiflash_rd_5 func_230ca_spiflash_rd_18 Get_Welcome_Line1_from_spi_flash
| func_226ae_spiflash_rd_2 md380_menu_channel_related_13314 func_23464 func_232e4
| func_231c2_spiflash_rd_22 func_23018_spiflash_rd_15 channel_info_read_spi_init func_22e1a_spiflash_rd_8
| func_23514 func_2366c func_23220 func_23358_spiflash_rd_d11c func_23414
| md380_spiflash_read_zone_struct_with_number_in_byte3_maybe func_23096_spiflash_rd_16 func_22b42
| func_230e8_spiflash_rd_19 func_2354c func_23634 func_226e4_spiflash_rd_3
| func_22fc8_spiflash_rd_sms_bdy func_22e4a_spiflash_rd_10 func_229fe func_2339c
| func_23644 spiflash_rd_zone_name_2__64byte func_22cc6_spiflash_rd_6 func_22fa4_spiflash_rd_14
| func_22e32_spiflash_rd_9 func_230b0_spiflash_rd_17 load_contact_spiflash md380_spiflash_write
| func_234d4
| md380_spiflash_read ();
| 0x08031476 70b5 push {r4, r5, r6, lr}
| 0x08031478 0400 movs r4, r0
| 0x0803147a 0d00 movs r5, r1
| 0x0803147c 1600 movs r6, r2
| 0x0803147e 00f054f8 bl md380_spiflash_enable
| 0x08031482 0320 movs r0, 3 ; 3
| 0x08031484 00f01af8 bl md380_spi_sendrecv
| 0x08031488 280c lsrs r0, r5, 0x10
| 0x0803148a c0b2 uxtb r0, r0
| 0x0803148c 00f016f8 bl md380_spi_sendrecv
| 0x08031490 280a lsrs r0, r5, 8
| 0x08031492 c0b2 uxtb r0, r0
| 0x08031494 00f012f8 bl md380_spi_sendrecv
| 0x08031498 2800 movs r0, r5
| 0x0803149a c0b2 uxtb r0, r0
| 0x0803149c 00f00ef8 bl md380_spi_sendrecv
| ,=< 0x080314a0 04e0 b 0x80314ac
| .--> 0x080314a2 a520 movs r0, 0xa5 ; 165
| || 0x080314a4 00f00af8 bl md380_spi_sendrecv
| || 0x080314a8 2070 strb r0, [r4]
| || 0x080314aa 641c adds r4, r4, 1
| |`-> 0x080314ac 3000 movs r0, r6
| | 0x080314ae 461e subs r6, r0, 1
| | 0x080314b0 80b2 uxth r0, r0
| | 0x080314b2 0028 cmp r0, 0
| `==< 0x080314b4 f5d1 bne 0x80314a2
| 0x080314b6 00f046f8 bl md380_spiflash_disable
\ 0x080314ba 70bd pop {r4, r5, r6, pc}
/ (fcn) md380_spiflash_write 704
| Caller: func_23526 write_current_channel_info_to_spi md380_spiflash_write_zone_struct_with_number_in_byte3_maybe
| spiflash_write_3ff30_288 func_23178_spiflash_wr_21 func_22f24_spiflash_wr_sms_hdr
| func_22fb6_spiflash_wr_14 func_2336a func_2293e_spiflash_wr_2 write_current_channel_info_to_spi_long
| func_234e6 func_23656 func_22d5e_spiflash_wr_3 func_2367e msg_flash_write
| func_2314c func_23162_spiflash_wr_20 func_233cc func_23380 rc_write_radio_config_to_flash
| func_234f8 func_233b4 func_2361c func_22ef2_spiflash_wr_12
| md380_spiflash_write ();
| 0x0803155e 2de9f84f push.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08031562 0600 movs r6, r0
| 0x08031564 0d00 movs r5, r1
| 0x08031566 9046 mov r8, r2
| 0x08031568 0027 movs r7, 0
| 0x0803156a 0024 movs r4, 0
| 0x0803156c 5ff00009 movs.w sb, 0
| 0x08031570 5ff0000a movs.w sl, 0
| 0x08031574 5ff0000b movs.w fp, 0
| 0x08031578 4ff48050 mov.w r0, 0x1000
| 0x0803157c b5fbf0f1 udiv r1, r5, r0
| 0x08031580 01fb1051 mls r1, r1, r0, r5
| 0x08031584 8946 mov sb, r1
| 0x08031586 d9f58050 rsbs.w r0, sb, 0x1000
| 0x0803158a 8246 mov sl, r0
| 0x0803158c 1ffa88f8 uxth.w r8, r8
| 0x08031590 4ff48050 mov.w r0, 0x1000
| 0x08031594 98fbf0f0 sdiv r0, r8, r0
| 0x08031598 0700 movs r7, r0
| 0x0803159a 1ffa88f8 uxth.w r8, r8
| 0x0803159e 4ff48050 mov.w r0, 0x1000
| 0x080315a2 98fbf0f1 sdiv r1, r8, r0
| 0x080315a6 01fb1081 mls r1, r1, r0, r8
| 0x080315aa 0c00 movs r4, r1
| 0x080315ac 1ffa89f9 uxth.w sb, sb
| 0x080315b0 b9f1000f cmp.w sb, 0
| ,=< 0x080315b4 4ed1 bne 0x8031654
| | 0x080315b6 ffb2 uxtb r7, r7
| | 0x080315b8 002f cmp r7, 0
| ,==< 0x080315ba 29d1 bne 0x8031610
| || 0x080315bc d8f58052 rsbs.w r2, r8, 0x1000
| || 0x080315c0 92b2 uxth r2, r2
| || 0x080315c2 15fa88f1 uxtah r1, r5, r8
| || 0x080315c6 dff86402 ldr.w r0, [0x08031832] ; [0x8031830:4]=0x4b510
| || 0x080315ca fff754ff bl md380_spiflash_read
| || 0x080315ce 2800 movs r0, r5
| || 0x080315d0 fff751fe bl md380_spiflash_sektor_erase4k
| || 0x080315d4 4246 mov r2, r8
| || 0x080315d6 92b2 uxth r2, r2
| || 0x080315d8 2900 movs r1, r5
| || 0x080315da 3000 movs r0, r6
| || 0x080315dc fff7a5fe bl F_1069_spiflash_multiple_spiflash_program_page
| || 0x080315e0 15fa88f5 uxtah r5, r5, r8
| || 0x080315e4 d8f58052 rsbs.w r2, r8, 0x1000
| || 0x080315e8 92b2 uxth r2, r2
| || 0x080315ea 2900 movs r1, r5
| || 0x080315ec dff83c02 ldr.w r0, [spiflash_Erase_Security_Registers_44h] ; [0x8031830:4]=0x4b510
| || 0x080315f0 fff79bfe bl F_1069_spiflash_multiple_spiflash_program_page
| ,===< 0x080315f4 11e1 b 0x803181a
| .----> 0x080315f6 2800 movs r0, r5
| |||| 0x080315f8 fff73dfe bl md380_spiflash_sektor_erase4k
| |||| 0x080315fc 4ff48052 mov.w r2, 0x1000
| |||| 0x08031600 2900 movs r1, r5
| |||| 0x08031602 3000 movs r0, r6
| |||| 0x08031604 fff791fe bl F_1069_spiflash_multiple_spiflash_program_page
| |||| 0x08031608 15f58055 adds.w r5, r5, 0x1000
| |||| 0x0803160c 16f58056 adds.w r6, r6, 0x1000
| ||`--> 0x08031610 3800 movs r0, r7
| || | 0x08031612 471e subs r7, r0, 1
| || | 0x08031614 c0b2 uxtb r0, r0
| || | 0x08031616 0028 cmp r0, 0
| `====< 0x08031618 edd1 bne 0x80315f6
| | | 0x0803161a d4f58052 rsbs.w r2, r4, 0x1000
| | | 0x0803161e 92b2 uxth r2, r2
| | | 0x08031620 15fa84f1 uxtah r1, r5, r4
| | | 0x08031624 dff80402 ldr.w r0, [spiflash_Erase_Security_Registers_44h] ; [0x8031830:4]=0x4b510
| | | 0x08031628 fff725ff bl md380_spiflash_read
| | | 0x0803162c 2800 movs r0, r5
| | | 0x0803162e fff722fe bl md380_spiflash_sektor_erase4k
| | | 0x08031632 2200 movs r2, r4
| | | 0x08031634 92b2 uxth r2, r2
| | | 0x08031636 2900 movs r1, r5
| | | 0x08031638 3000 movs r0, r6
| | | 0x0803163a fff776fe bl F_1069_spiflash_multiple_spiflash_program_page
| | | 0x0803163e 15fa84f5 uxtah r5, r5, r4
| | | 0x08031642 d4f58052 rsbs.w r2, r4, 0x1000
| | | 0x08031646 92b2 uxth r2, r2
| | | 0x08031648 2900 movs r1, r5
| | | 0x0803164a dff8e001 ldr.w r0, [0x08031832] ; [0x8031830:4]=0x4b510
| | | 0x0803164e fff76cfe bl F_1069_spiflash_multiple_spiflash_program_page
| |,==< 0x08031652 e2e0 b 0x803181a
| ||`-> 0x08031654 ffb2 uxtb r7, r7
| || 0x08031656 002f cmp r7, 0
| ||,=< 0x08031658 7bd1 bne 0x8031752
| ||| 0x0803165a 1ffa8afa uxth.w sl, sl
| ||| 0x0803165e a4b2 uxth r4, r4
| ||| 0x08031660 a245 cmp sl, r4
| ,====< 0x08031662 42d2 bhs 0x80316ea
| |||| 0x08031664 b4eb0a0b subs.w fp, r4, sl
| |||| 0x08031668 4a46 mov r2, sb
| |||| 0x0803166a 92b2 uxth r2, r2
| |||| 0x0803166c 1ffa89f9 uxth.w sb, sb
| |||| 0x08031670 b5eb0901 subs.w r1, r5, sb
| |||| 0x08031674 dff8b401 ldr.w r0, [spiflash_Erase_Security_Registers_44h] ; [0x8031830:4]=0x4b510
| |||| 0x08031678 fff7fdfe bl md380_spiflash_read
| |||| 0x0803167c 1ffa89f9 uxth.w sb, sb
| |||| 0x08031680 b5eb0900 subs.w r0, r5, sb
| |||| 0x08031684 fff7f7fd bl md380_spiflash_sektor_erase4k
| |||| 0x08031688 4a46 mov r2, sb
| |||| 0x0803168a 92b2 uxth r2, r2
| |||| 0x0803168c 1ffa89f9 uxth.w sb, sb
| |||| 0x08031690 b5eb0901 subs.w r1, r5, sb
| |||| 0x08031694 dff89401 ldr.w r0, [spiflash_Erase_Security_Registers_44h] ; [0x8031830:4]=0x4b510
| |||| 0x08031698 fff747fe bl F_1069_spiflash_multiple_spiflash_program_page
| |||| 0x0803169c 5246 mov r2, sl
| |||| 0x0803169e 92b2 uxth r2, r2
| |||| 0x080316a0 2900 movs r1, r5
| |||| 0x080316a2 3000 movs r0, r6
| |||| 0x080316a4 fff741fe bl F_1069_spiflash_multiple_spiflash_program_page
| |||| 0x080316a8 15fa8af5 uxtah r5, r5, sl
| |||| 0x080316ac 1ffa8afa uxth.w sl, sl
| |||| 0x080316b0 1aeb0606 adds.w r6, sl, r6
| |||| 0x080316b4 dbf58052 rsbs.w r2, fp, 0x1000
| |||| 0x080316b8 92b2 uxth r2, r2
| |||| 0x080316ba 15fa8bf1 uxtah r1, r5, fp
| |||| 0x080316be 5b48 ldr r0, [0x0803182e] ; [0x803182c:4]=0x10008da8
| |||| 0x080316c0 fff7d9fe bl md380_spiflash_read
| |||| 0x080316c4 2800 movs r0, r5
| |||| 0x080316c6 fff7d6fd bl md380_spiflash_sektor_erase4k
| |||| 0x080316ca 5a46 mov r2, fp
| |||| 0x080316cc 92b2 uxth r2, r2
| |||| 0x080316ce 2900 movs r1, r5
| |||| 0x080316d0 3000 movs r0, r6
| |||| 0x080316d2 fff72afe bl F_1069_spiflash_multiple_spiflash_program_page
| |||| 0x080316d6 15fa8bf5 uxtah r5, r5, fp
| |||| 0x080316da dbf58052 rsbs.w r2, fp, 0x1000
| |||| 0x080316de 92b2 uxth r2, r2
| |||| 0x080316e0 2900 movs r1, r5
| |||| 0x080316e2 5248 ldr r0, [0x0803182e] ; [0x803182c:4]=0x10008da8
| |||| 0x080316e4 fff721fe bl F_1069_spiflash_multiple_spiflash_program_page
| ,=====< 0x080316e8 97e0 b 0x803181a
| |`----> 0x080316ea baeb040b subs.w fp, sl, r4
| | ||| 0x080316ee 4ff48052 mov.w r2, 0x1000
| | ||| 0x080316f2 1ffa89f9 uxth.w sb, sb
| | ||| 0x080316f6 b5eb0901 subs.w r1, r5, sb
| | ||| 0x080316fa 4c48 ldr r0, [0x0803182e] ; [0x803182c:4]=0x10008da8
| | ||| 0x080316fc fff7bbfe bl md380_spiflash_read
| | ||| 0x08031700 1ffa89f9 uxth.w sb, sb
| | ||| 0x08031704 b5eb0900 subs.w r0, r5, sb
| | ||| 0x08031708 fff7b5fd bl md380_spiflash_sektor_erase4k
| | ||| 0x0803170c 4a46 mov r2, sb
| | ||| 0x0803170e 92b2 uxth r2, r2
| | ||| 0x08031710 1ffa89f9 uxth.w sb, sb
| | ||| 0x08031714 b5eb0901 subs.w r1, r5, sb
| | ||| 0x08031718 4448 ldr r0, [0x0803182c] ; [0x803182c:4]=0x10008da8
| | ||| 0x0803171a fff706fe bl F_1069_spiflash_multiple_spiflash_program_page
| | ||| 0x0803171e 2200 movs r2, r4
| | ||| 0x08031720 92b2 uxth r2, r2
| | ||| 0x08031722 2900 movs r1, r5
| | ||| 0x08031724 3000 movs r0, r6
| | ||| 0x08031726 fff700fe bl F_1069_spiflash_multiple_spiflash_program_page
| | ||| 0x0803172a 15fa84f5 uxtah r5, r5, r4
| | ||| 0x0803172e 1ffa8bfb uxth.w fp, fp
| | ||| 0x08031732 bbf1000f cmp.w fp, 0
| |,====< 0x08031736 70d0 beq 0x803181a
| ||||| 0x08031738 5a46 mov r2, fp
| ||||| 0x0803173a 92b2 uxth r2, r2
| ||||| 0x0803173c 2900 movs r1, r5
| ||||| 0x0803173e a4b2 uxth r4, r4
| ||||| 0x08031740 1ffa89f9 uxth.w sb, sb
| ||||| 0x08031744 3948 ldr r0, [0x0803182c] ; [0x803182c:4]=0x10008da8
| ||||| 0x08031746 19eb0000 adds.w r0, sb, r0
| ||||| 0x0803174a 2018 adds r0, r4, r0
| ||||| 0x0803174c fff7edfd bl F_1069_spiflash_multiple_spiflash_program_page
| ,======< 0x08031750 63e0 b 0x803181a
| |||||`-> 0x08031752 b8eb0a08 subs.w r8, r8, sl
| ||||| 0x08031756 1ffa88f8 uxth.w r8, r8
| ||||| 0x0803175a 4ff48050 mov.w r0, 0x1000
| ||||| 0x0803175e 98fbf0f7 sdiv r7, r8, r0
| ||||| 0x08031762 1ffa88f8 uxth.w r8, r8
| ||||| 0x08031766 4ff48050 mov.w r0, 0x1000
| ||||| 0x0803176a 98fbf0f4 sdiv r4, r8, r0
| ||||| 0x0803176e 04fb1084 mls r4, r4, r0, r8
| ||||| 0x08031772 4a46 mov r2, sb
| ||||| 0x08031774 92b2 uxth r2, r2
| ||||| 0x08031776 1ffa89f9 uxth.w sb, sb
| ||||| 0x0803177a b5eb0901 subs.w r1, r5, sb
| ||||| 0x0803177e 2b48 ldr r0, [0x0803182e] ; [0x803182c:4]=0x10008da8
| ||||| 0x08031780 fff779fe bl md380_spiflash_read
| ||||| 0x08031784 1ffa89f9 uxth.w sb, sb
| ||||| 0x08031788 b5eb0900 subs.w r0, r5, sb
| ||||| 0x0803178c fff773fd bl md380_spiflash_sektor_erase4k
| ||||| 0x08031790 4a46 mov r2, sb
| ||||| 0x08031792 92b2 uxth r2, r2
| ||||| 0x08031794 1ffa89f9 uxth.w sb, sb
| ||||| 0x08031798 b5eb0901 subs.w r1, r5, sb
| ||||| 0x0803179c 2348 ldr r0, [0x0803182c] ; [0x803182c:4]=0x10008da8
| ||||| 0x0803179e fff7c4fd bl F_1069_spiflash_multiple_spiflash_program_page
| ||||| 0x080317a2 5246 mov r2, sl
| ||||| 0x080317a4 92b2 uxth r2, r2
| ||||| 0x080317a6 2900 movs r1, r5
| ||||| 0x080317a8 3000 movs r0, r6
| ||||| 0x080317aa fff7befd bl F_1069_spiflash_multiple_spiflash_program_page
| ||||| 0x080317ae 15fa8af5 uxtah r5, r5, sl
| ||||| 0x080317b2 1ffa8afa uxth.w sl, sl
| ||||| 0x080317b6 1aeb0606 adds.w r6, sl, r6
| |||||,=< 0x080317ba 0ce0 b 0x80317d6
| .-------> 0x080317bc 2800 movs r0, r5
| ||||||| 0x080317be fff75afd bl md380_spiflash_sektor_erase4k
| ||||||| 0x080317c2 4ff48052 mov.w r2, 0x1000
| ||||||| 0x080317c6 2900 movs r1, r5
| ||||||| 0x080317c8 3000 movs r0, r6
| ||||||| 0x080317ca fff7aefd bl F_1069_spiflash_multiple_spiflash_program_page
| ||||||| 0x080317ce 15f58055 adds.w r5, r5, 0x1000
| ||||||| 0x080317d2 16f58056 adds.w r6, r6, 0x1000
| ||||||`-> 0x080317d6 3800 movs r0, r7
| |||||| 0x080317d8 471e subs r7, r0, 1
| |||||| 0x080317da c0b2 uxtb r0, r0
| |||||| 0x080317dc 0028 cmp r0, 0
| `=======< 0x080317de edd1 bne 0x80317bc
| ||||| 0x080317e0 a4b2 uxth r4, r4
| ||||| 0x080317e2 002c cmp r4, 0
| |||||,=< 0x080317e4 19d0 beq 0x803181a
| |||||| 0x080317e6 d4f58052 rsbs.w r2, r4, 0x1000
| |||||| 0x080317ea 92b2 uxth r2, r2
| |||||| 0x080317ec 15fa84f1 uxtah r1, r5, r4
| |||||| 0x080317f0 0e48 ldr r0, [0x0803182c] ; [0x803182c:4]=0x10008da8
| |||||| 0x080317f2 fff740fe bl md380_spiflash_read
| |||||| 0x080317f6 2800 movs r0, r5
| |||||| 0x080317f8 fff73dfd bl md380_spiflash_sektor_erase4k
| |||||| 0x080317fc 2200 movs r2, r4
| |||||| 0x080317fe 92b2 uxth r2, r2
| |||||| 0x08031800 2900 movs r1, r5
| |||||| 0x08031802 3000 movs r0, r6
| |||||| 0x08031804 fff791fd bl F_1069_spiflash_multiple_spiflash_program_page
| |||||| 0x08031808 15fa84f5 uxtah r5, r5, r4
| |||||| 0x0803180c d4f58052 rsbs.w r2, r4, 0x1000
| |||||| 0x08031810 92b2 uxth r2, r2
| |||||| 0x08031812 2900 movs r1, r5
| |||||| 0x08031814 0548 ldr r0, [0x0803182c] ; [0x803182c:4]=0x10008da8
| |||||| 0x08031816 fff788fd bl F_1069_spiflash_multiple_spiflash_program_page
\ ``````-> 0x0803181a bde8f18f pop.w {r0, r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) md380_spiflash_sektor_erase4k 52
| Caller: md380_spiflash_write
| md380_spiflash_sektor_erase4k ();
| 0x08031276 10b5 push {r4, lr}
| 0x08031278 0400 movs r4, r0
| 0x0803127a 00f03cf9 bl spiflash_write_enable
| 0x0803127e 00f054f9 bl md380_spiflash_enable
| 0x08031282 2020 movs r0, 0x20 ; 32
| 0x08031284 00f01af9 bl md380_spi_sendrecv
| 0x08031288 200c lsrs r0, r4, 0x10
| 0x0803128a c0b2 uxtb r0, r0
| 0x0803128c 00f016f9 bl md380_spi_sendrecv
| 0x08031290 200a lsrs r0, r4, 8
| 0x08031292 c0b2 uxtb r0, r0
| 0x08031294 00f012f9 bl md380_spi_sendrecv
| 0x08031298 2000 movs r0, r4
| 0x0803129a c0b2 uxtb r0, r0
| 0x0803129c 00f00ef9 bl md380_spi_sendrecv
| 0x080312a0 00f051f9 bl md380_spiflash_disable
| 0x080312a4 00f030f9 bl md380_spiflash_wait
\ 0x080312a8 10bd pop {r4, pc}
/ (fcn) md380_spiflash_block_erase64k 52
| Caller: func_2f8a0_erases_and_writes_flash
| md380_spiflash_block_erase64k ();
| 0x080312aa 10b5 push {r4, lr}
| 0x080312ac 0400 movs r4, r0
| 0x080312ae 00f022f9 bl spiflash_write_enable
| 0x080312b2 00f03af9 bl md380_spiflash_enable
| 0x080312b6 d820 movs r0, 0xd8 ; 216
| 0x080312b8 00f000f9 bl md380_spi_sendrecv
| 0x080312bc 200c lsrs r0, r4, 0x10
| 0x080312be c0b2 uxtb r0, r0
| 0x080312c0 00f0fcf8 bl md380_spi_sendrecv
| 0x080312c4 200a lsrs r0, r4, 8
| 0x080312c6 c0b2 uxtb r0, r0
| 0x080312c8 00f0f8f8 bl md380_spi_sendrecv
| 0x080312cc 2000 movs r0, r4
| 0x080312ce c0b2 uxtb r0, r0
| 0x080312d0 00f0f4f8 bl md380_spi_sendrecv
| 0x080312d4 00f037f9 bl md380_spiflash_disable
| 0x080312d8 00f016f9 bl md380_spiflash_wait
\ 0x080312dc 10bd pop {r4, pc}
/ (fcn) F_1069_spiflash_multiple_spiflash_program_page 332
| Caller: md380_spiflash_write
| F_1069_spiflash_multiple_spiflash_program_page ();
| 0x0803132a 2de9f843 push.w {r3, r4, r5, r6, r7, r8, sb, lr}
| 0x0803132e 0600 movs r6, r0
| 0x08031330 0d00 movs r5, r1
| 0x08031332 0027 movs r7, 0
| 0x08031334 0024 movs r4, 0
| 0x08031336 0020 movs r0, 0
| 0x08031338 5ff00008 movs.w r8, 0
| 0x0803133c 5ff00009 movs.w sb, 0
| 0x08031340 4ff48071 mov.w r1, 0x100 ; 256
| 0x08031344 b5fbf1f3 udiv r3, r5, r1
| 0x08031348 03fb1153 mls r3, r3, r1, r5
| 0x0803134c 1800 movs r0, r3
| 0x0803134e 4142 rsbs r1, r0, 0
| 0x08031350 8846 mov r8, r1
| 0x08031352 92b2 uxth r2, r2
| 0x08031354 4ff48071 mov.w r1, 0x100 ; 256
| 0x08031358 92fbf1f1 sdiv r1, r2, r1
| 0x0803135c 0f00 movs r7, r1
| 0x0803135e 92b2 uxth r2, r2
| 0x08031360 4ff48071 mov.w r1, 0x100 ; 256
| 0x08031364 92fbf1f3 sdiv r3, r2, r1
| 0x08031368 03fb1123 mls r3, r3, r1, r2
| 0x0803136c 1c00 movs r4, r3
| 0x0803136e c0b2 uxtb r0, r0
| 0x08031370 0028 cmp r0, 0
| ,=< 0x08031372 1fd1 bne 0x80313b4
| | 0x08031374 ffb2 uxtb r7, r7
| | 0x08031376 002f cmp r7, 0
| ,==< 0x08031378 0fd1 bne 0x803139a
| || 0x0803137a 92b2 uxth r2, r2
| || 0x0803137c 2900 movs r1, r5
| || 0x0803137e 3000 movs r0, r6
| || 0x08031380 fff7adff bl spiflash_program_page
| ,===< 0x08031384 75e0 b 0x8031472
| .----> 0x08031386 4ff48072 mov.w r2, 0x100 ; 256
| |||| 0x0803138a 2900 movs r1, r5
| |||| 0x0803138c 3000 movs r0, r6
| |||| 0x0803138e fff7a6ff bl spiflash_program_page
| |||| 0x08031392 15f58075 adds.w r5, r5, 0x100
| |||| 0x08031396 16f58076 adds.w r6, r6, 0x100
| ||`--> 0x0803139a 3800 movs r0, r7
| || | 0x0803139c 471e subs r7, r0, 1
| || | 0x0803139e c0b2 uxtb r0, r0
| || | 0x080313a0 0028 cmp r0, 0
| `====< 0x080313a2 f0d1 bne 0x8031386
| | | 0x080313a4 e4b2 uxtb r4, r4
| | | 0x080313a6 2200 movs r2, r4
| | | 0x080313a8 92b2 uxth r2, r2
| | | 0x080313aa 2900 movs r1, r5
| | | 0x080313ac 3000 movs r0, r6
| | | 0x080313ae fff796ff bl spiflash_program_page
| |,==< 0x080313b2 5ee0 b 0x8031472
| ||`-> 0x080313b4 ffb2 uxtb r7, r7
| || 0x080313b6 002f cmp r7, 0
| ||,=< 0x080313b8 23d1 bne 0x8031402
| ||| 0x080313ba 5ffa88f8 uxtb.w r8, r8
| ||| 0x080313be e4b2 uxtb r4, r4
| ||| 0x080313c0 a045 cmp r8, r4
| ,====< 0x080313c2 18d2 bhs 0x80313f6
| |||| 0x080313c4 b4eb0809 subs.w sb, r4, r8
| |||| 0x080313c8 5ffa88f8 uxtb.w r8, r8
| |||| 0x080313cc 4246 mov r2, r8
| |||| 0x080313ce 92b2 uxth r2, r2
| |||| 0x080313d0 2900 movs r1, r5
| |||| 0x080313d2 3000 movs r0, r6
| |||| 0x080313d4 fff783ff bl spiflash_program_page
| |||| 0x080313d8 55fa88f5 uxtab r5, r5, r8
| |||| 0x080313dc 5ffa88f8 uxtb.w r8, r8
| |||| 0x080313e0 18eb0606 adds.w r6, r8, r6
| |||| 0x080313e4 5ffa89f9 uxtb.w sb, sb
| |||| 0x080313e8 4a46 mov r2, sb
| |||| 0x080313ea 92b2 uxth r2, r2
| |||| 0x080313ec 2900 movs r1, r5
| |||| 0x080313ee 3000 movs r0, r6
| |||| 0x080313f0 fff775ff bl spiflash_program_page
| ,=====< 0x080313f4 3de0 b 0x8031472
| |`----> 0x080313f6 92b2 uxth r2, r2
| | ||| 0x080313f8 2900 movs r1, r5
| | ||| 0x080313fa 3000 movs r0, r6
| | ||| 0x080313fc fff76fff bl spiflash_program_page
| |,====< 0x08031400 37e0 b 0x8031472
| ||||`-> 0x08031402 5ffa88f8 uxtb.w r8, r8
| |||| 0x08031406 b2eb0802 subs.w r2, r2, r8
| |||| 0x0803140a 92b2 uxth r2, r2
| |||| 0x0803140c 4ff48070 mov.w r0, 0x100 ; 256
| |||| 0x08031410 92fbf0f7 sdiv r7, r2, r0
| |||| 0x08031414 92b2 uxth r2, r2
| |||| 0x08031416 4ff48070 mov.w r0, 0x100 ; 256
| |||| 0x0803141a 92fbf0f4 sdiv r4, r2, r0
| |||| 0x0803141e 04fb1024 mls r4, r4, r0, r2
| |||| 0x08031422 5ffa88f8 uxtb.w r8, r8
| |||| 0x08031426 4246 mov r2, r8
| |||| 0x08031428 92b2 uxth r2, r2
| |||| 0x0803142a 2900 movs r1, r5
| |||| 0x0803142c 3000 movs r0, r6
| |||| 0x0803142e fff756ff bl spiflash_program_page
| |||| 0x08031432 55fa88f5 uxtab r5, r5, r8
| |||| 0x08031436 5ffa88f8 uxtb.w r8, r8
| |||| 0x0803143a 18eb0606 adds.w r6, r8, r6
| ||||,=< 0x0803143e 09e0 b 0x8031454
| .------> 0x08031440 4ff48072 mov.w r2, 0x100 ; 256
| |||||| 0x08031444 2900 movs r1, r5
| |||||| 0x08031446 3000 movs r0, r6
| |||||| 0x08031448 fff749ff bl spiflash_program_page
| |||||| 0x0803144c 15f58075 adds.w r5, r5, 0x100
| |||||| 0x08031450 16f58076 adds.w r6, r6, 0x100
| |||||`-> 0x08031454 3800 movs r0, r7
| ||||| 0x08031456 471e subs r7, r0, 1
| ||||| 0x08031458 c0b2 uxtb r0, r0
| ||||| 0x0803145a 0028 cmp r0, 0
| `======< 0x0803145c f0d1 bne 0x8031440
| |||| 0x0803145e e4b2 uxtb r4, r4
| |||| 0x08031460 002c cmp r4, 0
| ||||,=< 0x08031462 06d0 beq 0x8031472
| ||||| 0x08031464 e4b2 uxtb r4, r4
| ||||| 0x08031466 2200 movs r2, r4
| ||||| 0x08031468 92b2 uxth r2, r2
| ||||| 0x0803146a 2900 movs r1, r5
| ||||| 0x0803146c 3000 movs r0, r6
| ||||| 0x0803146e fff736ff bl spiflash_program_page
\ `````-> 0x08031472 bde8f183 pop.w {r0, r4, r5, r6, r7, r8, sb, pc}
/ (fcn) md380_spi_sendrecv 58
| Caller: spiflash_Erase_Security_Registers_44h spiflash_program_page spiflash_write_enable
| md380_spiflash_read spiflash_Program_Security_Registers_42h md380_spiflash_sektor_erase4k
| md380_spiflash_block_erase64k md380_spiflash_wait md380_spiflash_security_registers_read
| md380_spi_sendrecv ();
| 0x080314bc 10b5 push {r4, lr}
| 0x080314be 0400 movs r4, r0
| .-> 0x080314c0 0221 movs r1, 2 ; 2
| | 0x080314c2 dff86003 ldr.w r0, [0x0803182a] ; [0x8031828:4]=0x2001e66c
| | 0x080314c6 13f0bef9 bl func_44846
| | 0x080314ca 0028 cmp r0, 0
| `=< 0x080314cc f8d0 beq 0x80314c0
| 0x080314ce e4b2 uxtb r4, r4
| 0x080314d0 2100 movs r1, r4
| 0x080314d2 89b2 uxth r1, r1
| 0x080314d4 dff84c03 ldr.w r0, [0x08031828] ; [0x8031828:4]=0x2001e66c
| 0x080314d8 13f091f9 bl func_447fe
| .-> 0x080314dc 0121 movs r1, 1 ; 1
| | 0x080314de dff84403 ldr.w r0, [0x0803182a] ; [0x8031828:4]=0x2001e66c
| | 0x080314e2 13f0b0f9 bl func_44846
| | 0x080314e6 0028 cmp r0, 0
| `=< 0x080314e8 f8d0 beq 0x80314dc
| 0x080314ea dff83803 ldr.w r0, [0x0803182a] ; [0x8031828:4]=0x2001e66c
| 0x080314ee 13f084f9 bl func_447fa
| 0x080314f2 c0b2 uxtb r0, r0
\ 0x080314f4 10bd pop {r4, pc}
/ (fcn) md380_spiflash_wait 34
| Caller: md380_spiflash_block_erase64k spiflash_Erase_Security_Registers_44h spiflash_program_page
| spiflash_Program_Security_Registers_42h md380_spiflash_sektor_erase4k
| md380_spiflash_wait ();
| 0x08031508 10b5 push {r4, lr}
| 0x0803150a 0024 movs r4, 0
| 0x0803150c 00f00df8 bl md380_spiflash_enable
| 0x08031510 0520 movs r0, 5 ; 5
| 0x08031512 fff7d3ff bl md380_spi_sendrecv
| .-> 0x08031516 a520 movs r0, 0xa5 ; 165
| | 0x08031518 fff7d0ff bl md380_spi_sendrecv
| | 0x0803151c 0400 movs r4, r0
| | 0x0803151e e4b2 uxtb r4, r4
| | 0x08031520 e007 lsls r0, r4, 0x1f
| `=< 0x08031522 f8d4 bmi 0x8031516
| 0x08031524 00f00ff8 bl md380_spiflash_disable
\ 0x08031528 10bd pop {r4, pc}
/ (fcn) md380_spiflash_enable 28
| Caller: spiflash_Erase_Security_Registers_44h spiflash_program_page spiflash_write_enable
| md380_spiflash_read spiflash_Program_Security_Registers_42h md380_spiflash_sektor_erase4k
| md380_spiflash_block_erase64k md380_spiflash_wait md380_spiflash_security_registers_read
| md380_spiflash_enable ();
| 0x0803152a 80b5 push {r7, lr}
| 0x0803152c 00aa add r2, sp, 0
| 0x0803152e 0021 movs r1, 0
| 0x08031530 dff8f402 ldr.w r0, [0x0803182c] ; [0x803182c:4]=0x10008da8
| 0x08031534 0068 ldr r0, [r0]
| 0x08031536 0ef00df9 bl OSSemPend
| 0x0803153a 8021 movs r1, 0x80 ; 128
| 0x0803153c dff8e002 ldr.w r0, [0x08031824] ; [0x8031824:4]=0x40013000 io_SPI1
| 0x08031540 faf765f9 bl GPIO_ResetBits
\ 0x08031544 01bd pop {r0, pc}
/ (fcn) md380_spiflash_disable 24
| Caller: spiflash_Erase_Security_Registers_44h spiflash_program_page spiflash_write_enable
| md380_spiflash_read spiflash_Program_Security_Registers_42h md380_spiflash_sektor_erase4k
| md380_spiflash_block_erase64k md380_spiflash_wait md380_spiflash_security_registers_read
| md380_spiflash_disable ();
| 0x08031546 80b5 push {r7, lr}
| 0x08031548 8021 movs r1, 0x80 ; 128
| 0x0803154a dff8d402 ldr.w r0, [0x08031826] ; [0x8031824:4]=0x40013000 io_SPI1
| 0x0803154e faf75cf9 bl GPIO_SetBits
| 0x08031552 dff8d402 ldr.w r0, [0x0803182e] ; [0x803182c:4]=0x10008da8
| 0x08031556 0068 ldr r0, [r0]
| 0x08031558 0ef074f9 bl OSSemPost
\ 0x0803155c 01bd pop {r0, pc}
/ (fcn) md380_spiflash_security_registers_read 78
| Caller: func_22532_spiflash_security_2 func_21958_spiflash_something
| md380_spiflash_security_registers_read ();
| 0x080318b0 70b5 push {r4, r5, r6, lr}
| 0x080318b2 0400 movs r4, r0
| 0x080318b4 0d00 movs r5, r1
| 0x080318b6 1600 movs r6, r2
| 0x080318b8 fff737fe bl md380_spiflash_enable
| 0x080318bc 4820 movs r0, 0x48 ; 'H' ; 72
| 0x080318be fff7fdfd bl md380_spi_sendrecv
| 0x080318c2 280c lsrs r0, r5, 0x10
| 0x080318c4 c0b2 uxtb r0, r0
| 0x080318c6 fff7f9fd bl md380_spi_sendrecv
| 0x080318ca 280a lsrs r0, r5, 8
| 0x080318cc c0b2 uxtb r0, r0
| 0x080318ce fff7f5fd bl md380_spi_sendrecv
| 0x080318d2 2800 movs r0, r5
| 0x080318d4 c0b2 uxtb r0, r0
| 0x080318d6 fff7f1fd bl md380_spi_sendrecv
| 0x080318da a520 movs r0, 0xa5 ; 165
| 0x080318dc fff7eefd bl md380_spi_sendrecv
| 0x080318e0 2070 strb r0, [r4]
| ,=< 0x080318e2 04e0 b 0x80318ee
| .--> 0x080318e4 a520 movs r0, 0xa5 ; 165
| || 0x080318e6 fff7e9fd bl md380_spi_sendrecv
| || 0x080318ea 2070 strb r0, [r4]
| || 0x080318ec 641c adds r4, r4, 1
| |`-> 0x080318ee 3000 movs r0, r6
| | 0x080318f0 461e subs r6, r0, 1
| | 0x080318f2 80b2 uxth r0, r0
| | 0x080318f4 0028 cmp r0, 0
| `==< 0x080318f6 f5d1 bne 0x80318e4
| 0x080318f8 fff725fe bl md380_spiflash_disable
\ 0x080318fc 70bd pop {r4, r5, r6, pc}
/ (fcn) spiflash_program_page 76
| Caller: F_1069_spiflash_multiple_spiflash_program_page
| spiflash_program_page ();
| 0x080312de 70b5 push {r4, r5, r6, lr}
| 0x080312e0 0400 movs r4, r0
| 0x080312e2 0d00 movs r5, r1
| 0x080312e4 1600 movs r6, r2
| 0x080312e6 00f006f9 bl spiflash_write_enable
| 0x080312ea 00f01ef9 bl md380_spiflash_enable
| 0x080312ee 0220 movs r0, 2 ; 2
| 0x080312f0 00f0e4f8 bl md380_spi_sendrecv
| 0x080312f4 280c lsrs r0, r5, 0x10
| 0x080312f6 c0b2 uxtb r0, r0
| 0x080312f8 00f0e0f8 bl md380_spi_sendrecv
| 0x080312fc 280a lsrs r0, r5, 8
| 0x080312fe c0b2 uxtb r0, r0
| 0x08031300 00f0dcf8 bl md380_spi_sendrecv
| 0x08031304 2800 movs r0, r5
| 0x08031306 c0b2 uxtb r0, r0
| 0x08031308 00f0d8f8 bl md380_spi_sendrecv
| ,=< 0x0803130c 03e0 b 0x8031316
| .--> 0x0803130e 2078 ldrb r0, [r4]
| || 0x08031310 00f0d4f8 bl md380_spi_sendrecv
| || 0x08031314 641c adds r4, r4, 1
| |`-> 0x08031316 3000 movs r0, r6
| | 0x08031318 461e subs r6, r0, 1
| | 0x0803131a 80b2 uxth r0, r0
| | 0x0803131c 0028 cmp r0, 0
| `==< 0x0803131e f6d1 bne 0x803130e
| 0x08031320 00f011f9 bl md380_spiflash_disable
| 0x08031324 00f0f0f8 bl md380_spiflash_wait
\ 0x08031328 70bd pop {r4, r5, r6, pc}
/ (fcn) spiflash_write_enable 18
| Caller: md380_spiflash_block_erase64k spiflash_Erase_Security_Registers_44h spiflash_program_page
| spiflash_Program_Security_Registers_42h md380_spiflash_sektor_erase4k
| spiflash_write_enable ();
| 0x080314f6 80b5 push {r7, lr}
| 0x080314f8 00f017f8 bl md380_spiflash_enable
| 0x080314fc 0620 movs r0, 6 ; 6
| 0x080314fe fff7ddff bl md380_spi_sendrecv
| 0x08031502 00f020f8 bl md380_spiflash_disable
\ 0x08031506 01bd pop {r0, pc}
/ (fcn) spiflash_Erase_Security_Registers_44h 52
| Caller: func_22502_spiflash_security func_22550_spiflash_security_3
| spiflash_Erase_Security_Registers_44h ();
| 0x08031830 10b5 push {r4, lr}
| 0x08031832 0400 movs r4, r0
| 0x08031834 fff75ffe bl spiflash_write_enable
| 0x08031838 fff777fe bl md380_spiflash_enable
| 0x0803183c 4420 movs r0, 0x44 ; 'D' ; 68
| 0x0803183e fff73dfe bl md380_spi_sendrecv
| 0x08031842 200c lsrs r0, r4, 0x10
| 0x08031844 c0b2 uxtb r0, r0
| 0x08031846 fff739fe bl md380_spi_sendrecv
| 0x0803184a 200a lsrs r0, r4, 8
| 0x0803184c c0b2 uxtb r0, r0
| 0x0803184e fff735fe bl md380_spi_sendrecv
| 0x08031852 2000 movs r0, r4
| 0x08031854 c0b2 uxtb r0, r0
| 0x08031856 fff731fe bl md380_spi_sendrecv
| 0x0803185a fff774fe bl md380_spiflash_disable
| 0x0803185e fff753fe bl md380_spiflash_wait
\ 0x08031862 10bd pop {r4, pc}
/ (fcn) spiflash_Program_Security_Registers_42h 76
| Caller: func_22502_spiflash_security func_22550_spiflash_security_3
| spiflash_Program_Security_Registers_42h ();
| 0x08031864 70b5 push {r4, r5, r6, lr}
| 0x08031866 0400 movs r4, r0
| 0x08031868 0d00 movs r5, r1
| 0x0803186a 1600 movs r6, r2
| 0x0803186c fff743fe bl spiflash_write_enable
| 0x08031870 fff75bfe bl md380_spiflash_enable
| 0x08031874 4220 movs r0, 0x42 ; 'B' ; 66
| 0x08031876 fff721fe bl md380_spi_sendrecv
| 0x0803187a 280c lsrs r0, r5, 0x10
| 0x0803187c c0b2 uxtb r0, r0
| 0x0803187e fff71dfe bl md380_spi_sendrecv
| 0x08031882 280a lsrs r0, r5, 8
| 0x08031884 c0b2 uxtb r0, r0
| 0x08031886 fff719fe bl md380_spi_sendrecv
| 0x0803188a 2800 movs r0, r5
| 0x0803188c c0b2 uxtb r0, r0
| 0x0803188e fff715fe bl md380_spi_sendrecv
| ,=< 0x08031892 03e0 b 0x803189c
| .--> 0x08031894 2078 ldrb r0, [r4]
| || 0x08031896 fff711fe bl md380_spi_sendrecv
| || 0x0803189a 641c adds r4, r4, 1
| |`-> 0x0803189c 3000 movs r0, r6
| | 0x0803189e 461e subs r6, r0, 1
| | 0x080318a0 80b2 uxth r0, r0
| | 0x080318a2 0028 cmp r0, 0
| `==< 0x080318a4 f6d1 bne 0x8031894
| 0x080318a6 fff74efe bl md380_spiflash_disable
| 0x080318aa fff72dfe bl md380_spiflash_wait
\ 0x080318ae 70bd pop {r4, r5, r6, pc}
/ (fcn) dummy_4fc28 2
| Caller: draw_botline_text
| dummy_4fc28 ();
\ 0x0804fc28 7047 bx lr
/ (fcn) dummy_4fc2c 2
| Caller: draw_botline_text
| dummy_4fc2c ();
\ 0x0804fc2c 7047 bx lr
;-- md380_f_4098:
/ (fcn) biglist_pollsubsys_maybe 152
| Caller: mainloop_entry
| biglist_pollsubsys_maybe ();
| 0x0804eb64 80b5 push {r7, lr}
| 0x0804eb66 dff8780d ldr.w r0, [0x0804f8e6] ; [0x804f8e4:4]=0xe0002100 LEA get_keycode_from_table ; get_keycode_from_table
| 0x0804eb6a 4078 ldrb r0, [r0, 1]
| 0x0804eb6c c007 lsls r0, r0, 0x1f
| ,=< 0x0804eb6e 06d5 bpl 0x804eb7e
| | 0x0804eb70 dff85c0c ldr.w r0, [0x0804f7d4] ; [0x804f7d4:4]=0x2001de78 struct_channel_info2
| | 0x0804eb74 4078 ldrb r0, [r0, 1]
| | 0x0804eb76 0621 movs r1, 6 ; 6
| | 0x0804eb78 0842 tst r0, r1
| ,==< 0x0804eb7a 07d1 bne 0x804eb8c
| ,===< 0x0804eb7c 0de0 b 0x804eb9a
| ||`-> 0x0804eb7e dff8500c ldr.w r0, [0x0804f7d6] ; [0x804f7d4:4]=0x2001de78 struct_channel_info2
| || 0x0804eb82 4078 ldrb r0, [r0, 1]
| || 0x0804eb84 c0f38000 ubfx r0, r0, 2, 1
| || 0x0804eb88 c007 lsls r0, r0, 0x1f
| ||,=< 0x0804eb8a 06d5 bpl 0x804eb9a
| |`--> 0x0804eb8c dff8440c ldr.w r0, [0x0804f7d8] ; [0x804f7d8:4]=0x40021000 io_GPIOE
| | | 0x0804eb90 0078 ldrb r0, [r0]
| | | 0x0804eb92 10f00300 ands r0, r0, 3
| | | 0x0804eb96 0228 cmp r0, 2 ; 2
| |,==< 0x0804eb98 0dd0 beq 0x804ebb6
| `-`-> 0x0804eb9a dff8340c ldr.w r0, [0x0804f7d6] ; [0x804f7d4:4]=0x2001de78 struct_channel_info2
| | 0x0804eb9e 4078 ldrb r0, [r0, 1]
| | 0x0804eba0 c0f3c000 ubfx r0, r0, 3, 1
| | 0x0804eba4 c007 lsls r0, r0, 0x1f
| |,=< 0x0804eba6 07d5 bpl 0x804ebb8
| || 0x0804eba8 dff8280c ldr.w r0, [0x0804f7d8] ; [0x804f7d8:4]=0x40021000 io_GPIOE
| || 0x0804ebac 0078 ldrb r0, [r0]
| || 0x0804ebae 10f00300 ands r0, r0, 3
| || 0x0804ebb2 0128 cmp r0, 1 ; 1
| ,===< 0x0804ebb4 00d1 bne 0x804ebb8
| ,=`--> 0x0804ebb6 20e0 b 0x804ebfa
| |`-`-> 0x0804ebb8 dff8580d ldr.w r0, [0x0804f918] ; [0x804f918:4]=0x2001e5ec base_for_longpress_struct
| | 0x0804ebbc 0078 ldrb r0, [r0]
| | 0x0804ebbe 0528 cmp r0, 5 ; 5
| | ,=< 0x0804ebc0 1bd0 beq 0x804ebfa
| | | 0x0804ebc2 00f050f8 bl md380_f_4102
| | | 0x0804ebc6 00f003f9 bl dummy_4edd0
| | | 0x0804ebca 00f088fd bl func_4f6de
| | | 0x0804ebce 00f05bfd bl dummy_4f688
| | | 0x0804ebd2 00f0bbfe bl kb_handler
| | | 0x0804ebd6 03f0a4f9 bl ConfigureLCDPort
| | | 0x0804ebda 00f049fa bl func_4f070
| | | 0x0804ebde 00f05dfb bl func_4f29c
| | | 0x0804ebe2 00f075fc bl func_4f4d0
| | | 0x0804ebe6 00f01bf9 bl 0x804ee20
| | | 0x0804ebea 01f01cf8 bl dummy_4fc26
| | | 0x0804ebee 01f01cf8 bl dummy_4fc2a
| | | 0x0804ebf2 01f01cf8 bl dummy_4fc2e
| | | 0x0804ebf6 01f01cf8 bl dummy_4fc32
\ `--`-> 0x0804ebfa 01bd pop {r0, pc}
/ (fcn) SomeLongDispatcher 2604
| SomeLongDispatcher ();
| 0x0803b8d8 82b0 sub sp, 8
| 0x0803b8da dff8280a ldr.w r0, [0x0803c30a] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| 0x0803b8de 0021 movs r1, 0
| 0x0803b8e0 0170 strb r1, [r0]
| 0x0803b8e2 dff8240a ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| 0x0803b8e6 0021 movs r1, 0
| 0x0803b8e8 0170 strb r1, [r0]
| ,=< 0x0803b8ea 01e0 b 0x803b8f0
| .--> 0x0803b8ec 01f062fb bl CalledFromLongDispatcher
| .....-`-> 0x0803b8f0 00aa add r2, sp, 0 ; entry point or giant endless loop ?
| |||||| 0x0803b8f2 0521 movs r1, 5 ; 5
| |||||| ;-- dispatch_event5_mbox:
| |||||| 0x0803b8f4 dff8140a ldr.w r0, [0x0803c310] ; [0x803c310:4]=0x2001e8f3 msg_0x2001e8f3
| |||||| 0x0803b8f8 0068 ldr r0, [r0]
| |||||| 0x0803b8fa f5f7c3fb bl md380_OSMboxPend
| |||||| 0x0803b8fe 0578 ldrb r5, [r0]
| |||||| 0x0803b900 9df80000 ldrb.w r0, [sp]
| |||||| 0x0803b904 0028 cmp r0, 0
| ||||||,=< 0x0803b906 40f02883 bne.w 0x803bf5a
| ||||||| 0x0803b90a edb2 uxtb r5, r5
| ||||||| 0x0803b90c 2800 movs r0, r5
| ||||||| 0x0803b90e 401e subs r0, r0, 1
| ========< 0x0803b910 22d0 beq 0x803b958
| ||||||| 0x0803b912 401e subs r0, r0, 1
| ========< 0x0803b914 34d0 beq 0x803b980
| ||||||| 0x0803b916 401e subs r0, r0, 1
| ========< 0x0803b918 35d0 beq 0x803b986
| ||||||| 0x0803b91a 401e subs r0, r0, 1
| ||||||| 0x0803b91c 0428 cmp r0, 4 ; 4
| ========< 0x0803b91e 41d9 bls 0x803b9a4
| ||||||| 0x0803b920 401f subs r0, r0, 5
| ========< 0x0803b922 77d0 beq 0x803ba14
| ||||||| 0x0803b924 801e subs r0, r0, 2
| ========< 0x0803b926 00f00083 beq.w 0x803bf2a
| ||||||| 0x0803b92a 401e subs r0, r0, 1
| ========< 0x0803b92c 00f09780 beq.w 0x803ba5e
| ||||||| 0x0803b930 401e subs r0, r0, 1
| ========< 0x0803b932 00f0d180 beq.w 0x803bad8
| ||||||| 0x0803b936 401e subs r0, r0, 1
| ========< 0x0803b938 00f0d880 beq.w 0x803baec
| ||||||| 0x0803b93c 401e subs r0, r0, 1
| ========< 0x0803b93e 00f0a281 beq.w 0x803bc86
| ||||||| 0x0803b942 c01e subs r0, r0, 3
| ========< 0x0803b944 00f0ff81 beq.w 0x803bd46
| ||||||| 0x0803b948 401e subs r0, r0, 1
| ========< 0x0803b94a 00f0a082 beq.w 0x803be8e
| ||||||| 0x0803b94e 401e subs r0, r0, 1
| ========< 0x0803b950 37d0 beq 0x803b9c2
| ||||||| 0x0803b952 401e subs r0, r0, 1
| ========< 0x0803b954 51d0 beq 0x803b9fa
| ========< 0x0803b956 00e3 b 0x803bf5a
| --------> ;-- ev5_1:
| --------> 0x0803b958 dff8a809 ldr.w r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803b95c 0570 strb r5, [r0]
| ||||||| 0x0803b95e dff8b009 ldr.w r0, [0x0803c316] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||||| 0x0803b962 0121 movs r1, 1 ; 1
| ||||||| 0x0803b964 0170 strb r1, [r0]
| ||||||| 0x0803b966 dff8a009 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803b96a 0121 movs r1, 1 ; 1
| ||||||| 0x0803b96c 0170 strb r1, [r0]
| ||||||| 0x0803b96e dff8a409 ldr.w r0, [0x0803c31a] ; [0x803c318:4]=0x2001deb8 current_channel_info
| ||||||| 0x0803b972 4078 ldrb r0, [r0, 1]
| ||||||| 0x0803b974 50f00400 orrs r0, r0, 4
| ||||||| 0x0803b978 dff89819 ldr.w r1, [0x0803c318] ; [0x803c318:4]=0x2001deb8 current_channel_info
| ||||||| 0x0803b97c 4870 strb r0, [r1, 1]
| ========< 0x0803b97e ece2 b 0x803bf5a
| --------> ;-- ev5_2:
| --------> 0x0803b980 01f0fbfd bl func_3d57a
| ========< 0x0803b984 e9e2 b 0x803bf5a
| --------> ;-- ev5_3:
| --------> 0x0803b986 0220 movs r0, 2 ; 2
| ||||||| 0x0803b988 f3f7c6fb bl func_2f118
| ||||||| 0x0803b98c dff88009 ldr.w r0, [0x0803c314] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||||| 0x0803b990 0221 movs r1, 2 ; 2
| ||||||| 0x0803b992 0170 strb r1, [r0]
| ||||||| 0x0803b994 dff86c09 ldr.w r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803b998 0570 strb r5, [r0]
| ||||||| 0x0803b99a dff86c09 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803b99e 0121 movs r1, 1 ; 1
| ||||||| 0x0803b9a0 0170 strb r1, [r0]
| ========< 0x0803b9a2 dae2 b 0x803bf5a
| --------> ;-- ev5_4_8:
| --------> 0x0803b9a4 0220 movs r0, 2 ; 2
| ||||||| 0x0803b9a6 f3f7b7fb bl func_2f118
| ||||||| 0x0803b9aa dff86409 ldr.w r0, [0x0803c316] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||||| 0x0803b9ae 0421 movs r1, 4 ; 4
| ||||||| 0x0803b9b0 0170 strb r1, [r0]
| ||||||| 0x0803b9b2 dff85009 ldr.w r0, [0x0803c30a] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803b9b6 0570 strb r5, [r0]
| ||||||| 0x0803b9b8 dff84c09 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803b9bc 0121 movs r1, 1 ; 1
| ||||||| 0x0803b9be 0170 strb r1, [r0]
| ========< 0x0803b9c0 cbe2 b 0x803bf5a
| --------> ;-- ev5_21:
| --------> 0x0803b9c2 0220 movs r0, 2 ; 2
| ||||||| 0x0803b9c4 f3f7a8fb bl func_2f118
| ||||||| 0x0803b9c8 dff84c09 ldr.w r0, [0x0803c31c] ; [0x803c31c:4]=0x2001e160
| ||||||| 0x0803b9cc 407b ldrb r0, [r0, 0xd]
| ||||||| 0x0803b9ce f3f74bfc bl func_2f268
| ||||||| 0x0803b9d2 dff84409 ldr.w r0, [0x0803c31e] ; [0x803c31c:4]=0x2001e160
| ||||||| 0x0803b9d6 0078 ldrb r0, [r0]
| ||||||| 0x0803b9d8 10f00300 ands r0, r0, 3
| ||||||| 0x0803b9dc 0228 cmp r0, 2 ; 2
| ========< 0x0803b9de 07d1 bne 0x803b9f0
| ||||||| 0x0803b9e0 dff82009 ldr.w r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803b9e4 0570 strb r5, [r0]
| ||||||| 0x0803b9e6 dff82009 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803b9ea 0121 movs r1, 1 ; 1
| ||||||| 0x0803b9ec 0170 strb r1, [r0]
| ========< 0x0803b9ee 03e0 b 0x803b9f8
| --------> 0x0803b9f0 dff81409 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803b9f4 0821 movs r1, 8 ; 8
| ||||||| 0x0803b9f6 0170 strb r1, [r0]
| ========< 0x0803b9f8 afe2 b 0x803bf5a
| --------> ;-- ev5_22:
| --------> 0x0803b9fa f6f709fa bl func_31e10
| ||||||| 0x0803b9fe 0220 movs r0, 2 ; 2
| ||||||| 0x0803ba00 f3f78afb bl func_2f118
| ||||||| 0x0803ba04 dff8fc08 ldr.w r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803ba08 0570 strb r5, [r0]
| ||||||| 0x0803ba0a dff8fc08 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803ba0e 0121 movs r1, 1 ; 1
| ||||||| 0x0803ba10 0170 strb r1, [r0]
| ========< 0x0803ba12 a2e2 b 0x803bf5a
| --------> ;-- ev5_12:
| --------> 0x0803ba14 dff80409 ldr.w r0, [0x0803c320] ; [0x803c320:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0803ba18 90f82000 ldrb.w r0, [r0, 0x20]
| ||||||| 0x0803ba1c c0f30110 ubfx r0, r0, 4, 2
| ||||||| 0x0803ba20 c0b2 uxtb r0, r0
| ||||||| 0x0803ba22 0228 cmp r0, 2 ; 2
| ========< 0x0803ba24 07d1 bne 0x803ba36
| ||||||| 0x0803ba26 dff8f408 ldr.w r0, [0x0803c322] ; [0x803c320:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0803ba2a 90f82100 ldrb.w r0, [r0, 0x21]
| ||||||| 0x0803ba2e dff8e018 ldr.w r1, [0x0803c316] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||||| 0x0803ba32 0870 strb r0, [r1]
| ========< 0x0803ba34 0be0 b 0x803ba4e
| --------> 0x0803ba36 dff8e408 ldr.w r0, [0x0803c322] ; [0x803c320:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0803ba3a 90f82100 ldrb.w r0, [r0, 0x21]
| ||||||| 0x0803ba3e dff8dc18 ldr.w r1, [0x0803c322] ; [0x803c320:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0803ba42 91f82210 ldrb.w r1, [r1, 0x22]
| ||||||| 0x0803ba46 0818 adds r0, r1, r0
| ||||||| 0x0803ba48 dff8c418 ldr.w r1, [0x0803c314] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||||| 0x0803ba4c 0870 strb r0, [r1]
| --------> 0x0803ba4e dff8b408 ldr.w r0, [0x0803c30a] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803ba52 0570 strb r5, [r0]
| ||||||| 0x0803ba54 dff8b008 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803ba58 0121 movs r1, 1 ; 1
| ||||||| 0x0803ba5a 0170 strb r1, [r0]
| ========< 0x0803ba5c 7de2 b 0x803bf5a
| --------> ;-- ev5_15:
| --------> 0x0803ba5e dff8a808 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803ba62 0078 ldrb r0, [r0]
| ||||||| 0x0803ba64 0328 cmp r0, 3 ; 3
| ========< 0x0803ba66 36d1 bne 0x803bad6
| ||||||| 0x0803ba68 dff89808 ldr.w r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803ba6c 0078 ldrb r0, [r0]
| ||||||| 0x0803ba6e 0128 cmp r0, 1 ; 1
| ========< 0x0803ba70 2dd1 bne 0x803bace
| ||||||| 0x0803ba72 dff8ac08 ldr.w r0, [0x0803c326] ; [0x803c324:4]=0x2001e600 q_struct_1
| ||||||| 0x0803ba76 0078 ldrb r0, [r0]
| ||||||| 0x0803ba78 c0f34000 ubfx r0, r0, 1, 1
| ||||||| 0x0803ba7c c007 lsls r0, r0, 0x1f
| ========< 0x0803ba7e 1cd4 bmi 0x803baba
| ||||||| 0x0803ba80 dff8a008 ldr.w r0, [0x0803c328] ; [0x803c328:4]=0x2001e892 gui_opmode3
| ||||||| 0x0803ba84 4078 ldrb r0, [r0, 1]
| ||||||| 0x0803ba86 c0f34000 ubfx r0, r0, 1, 1
| ||||||| 0x0803ba8a c007 lsls r0, r0, 0x1f
| ========< 0x0803ba8c 15d4 bmi 0x803baba
| ||||||| 0x0803ba8e dff89008 ldr.w r0, [0x0803c326] ; [0x803c324:4]=0x2001e600 q_struct_1
| ||||||| 0x0803ba92 c078 ldrb r0, [r0, 3]
| ||||||| 0x0803ba94 c0f3c000 ubfx r0, r0, 3, 1
| ||||||| 0x0803ba98 c007 lsls r0, r0, 0x1f
| ========< 0x0803ba9a 0ed4 bmi 0x803baba
| ||||||| 0x0803ba9c dff88808 ldr.w r0, [0x0803c32c] ; [0x803c32c:4]=0x2001e8e3
| ||||||| 0x0803baa0 0078 ldrb r0, [r0]
| ||||||| 0x0803baa2 0728 cmp r0, 7 ; 7
| ========< 0x0803baa4 09d0 beq 0x803baba
| ||||||| 0x0803baa6 dff88408 ldr.w r0, [0x0803c332] ; [0x803c330:4]=0xf8dfb084 LEA task_state_change ; task_state_change
| ||||||| 0x0803baaa 0078 ldrb r0, [r0]
| ||||||| 0x0803baac 0528 cmp r0, 5 ; 5
| ========< 0x0803baae 04d0 beq 0x803baba
| ||||||| 0x0803bab0 dff87808 ldr.w r0, [0x0803c330] ; [0x803c330:4]=0xf8dfb084 LEA task_state_change ; task_state_change
| ||||||| 0x0803bab4 0078 ldrb r0, [r0]
| ||||||| 0x0803bab6 0628 cmp r0, 6 ; 6
| ========< 0x0803bab8 04d1 bne 0x803bac4
| --------> 0x0803baba dff84c08 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803babe 0121 movs r1, 1 ; 1
| ||||||| 0x0803bac0 0170 strb r1, [r0]
| ========< 0x0803bac2 03e0 b 0x803bacc
| --------> 0x0803bac4 dff84008 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bac8 0721 movs r1, 7 ; 7
| ||||||| 0x0803baca 0170 strb r1, [r0]
| --------> 0x0803bacc 03e0 b 0x803bad6
| --------> 0x0803bace dff83808 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bad2 0121 movs r1, 1 ; 1
| ||||||| 0x0803bad4 0170 strb r1, [r0]
| --------> 0x0803bad6 40e2 b 0x803bf5a
| --------> ;-- ev5_16:
| --------> 0x0803bad8 dff82c08 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803badc 0078 ldrb r0, [r0]
| ||||||| 0x0803bade 0328 cmp r0, 3 ; 3
| ========< 0x0803bae0 03d1 bne 0x803baea
| ||||||| 0x0803bae2 dff82408 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bae6 0821 movs r1, 8 ; 8
| ||||||| 0x0803bae8 0170 strb r1, [r0]
| --------> 0x0803baea 36e2 b 0x803bf5a
| --------> ;-- ev5_17:
| --------> 0x0803baec dff81808 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803baf0 0078 ldrb r0, [r0]
| ||||||| 0x0803baf2 0428 cmp r0, 4 ; 4
| ========< 0x0803baf4 40f0c680 bne.w 0x803bc84
| ||||||| 0x0803baf8 dff80808 ldr.w r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803bafc 0078 ldrb r0, [r0]
| ||||||| 0x0803bafe 401e subs r0, r0, 1
| ========< 0x0803bb00 0bd0 beq 0x803bb1a
| ||||||| 0x0803bb02 801e subs r0, r0, 2
| ========< 0x0803bb04 39d0 beq 0x803bb7a
| ||||||| 0x0803bb06 401e subs r0, r0, 1
| ||||||| 0x0803bb08 0328 cmp r0, 3 ; 3
| ========< 0x0803bb0a 37d9 bls 0x803bb7c
| ||||||| 0x0803bb0c 001f subs r0, r0, 4
| ========< 0x0803bb0e 45d0 beq 0x803bb9c
| ||||||| 0x0803bb10 401e subs r0, r0, 1
| ========< 0x0803bb12 5bd0 beq 0x803bbcc
| ||||||| 0x0803bb14 401e subs r0, r0, 1
| ========< 0x0803bb16 30d0 beq 0x803bb7a
| ========< 0x0803bb18 b4e0 b 0x803bc84
| --------> 0x0803bb1a dff80408 ldr.w r0, [0x0803c326] ; [0x803c324:4]=0x2001e600 q_struct_1
| ||||||| 0x0803bb1e 0078 ldrb r0, [r0]
| ||||||| 0x0803bb20 c0f34000 ubfx r0, r0, 1, 1
| ||||||| 0x0803bb24 c007 lsls r0, r0, 0x1f
| ========< 0x0803bb26 1cd4 bmi 0x803bb62
| ||||||| 0x0803bb28 dff8f807 ldr.w r0, [0x0803c328] ; [0x803c328:4]=0x2001e892 gui_opmode3
| ||||||| 0x0803bb2c 4078 ldrb r0, [r0, 1]
| ||||||| 0x0803bb2e c0f34000 ubfx r0, r0, 1, 1
| ||||||| 0x0803bb32 c007 lsls r0, r0, 0x1f
| ========< 0x0803bb34 15d4 bmi 0x803bb62
| ||||||| 0x0803bb36 dff8e807 ldr.w r0, [0x0803c326] ; [0x803c324:4]=0x2001e600 q_struct_1
| ||||||| 0x0803bb3a c078 ldrb r0, [r0, 3]
| ||||||| 0x0803bb3c c0f3c000 ubfx r0, r0, 3, 1
| ||||||| 0x0803bb40 c007 lsls r0, r0, 0x1f
| ========< 0x0803bb42 0ed4 bmi 0x803bb62
| ||||||| 0x0803bb44 dff8e007 ldr.w r0, [0x0803c32c] ; [0x803c32c:4]=0x2001e8e3
| ||||||| 0x0803bb48 0078 ldrb r0, [r0]
| ||||||| 0x0803bb4a 0728 cmp r0, 7 ; 7
| ========< 0x0803bb4c 09d0 beq 0x803bb62
| ||||||| 0x0803bb4e dff8dc07 ldr.w r0, [0x0803c332] ; [0x803c330:4]=0xf8dfb084 LEA task_state_change ; task_state_change
| ||||||| 0x0803bb52 0078 ldrb r0, [r0]
| ||||||| 0x0803bb54 0528 cmp r0, 5 ; 5
| ========< 0x0803bb56 04d0 beq 0x803bb62
| ||||||| 0x0803bb58 dff8d007 ldr.w r0, [0x0803c330] ; [0x803c330:4]=0xf8dfb084 LEA task_state_change ; task_state_change
| ||||||| 0x0803bb5c 0078 ldrb r0, [r0]
| ||||||| 0x0803bb5e 0628 cmp r0, 6 ; 6
| ========< 0x0803bb60 06d1 bne 0x803bb70
| --------> 0x0803bb62 dff8a407 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bb66 0521 movs r1, 5 ; 5
| ||||||| 0x0803bb68 0170 strb r1, [r0]
| ||||||| 0x0803bb6a 01f023fa bl CalledFromLongDispatcher
| ========< 0x0803bb6e 03e0 b 0x803bb78
| --------> 0x0803bb70 dff89407 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bb74 0721 movs r1, 7 ; 7
| ||||||| 0x0803bb76 0170 strb r1, [r0]
| --------> 0x0803bb78 84e0 b 0x803bc84
| ========< 0x0803bb7a 83e0 b 0x803bc84
| --------> 0x0803bb7c dff88807 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bb80 0721 movs r1, 7 ; 7
| ||||||| 0x0803bb82 0170 strb r1, [r0]
| ||||||| 0x0803bb84 dff8cc0b ldr.w r0, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803bb88 0d21 movs r1, 0xd ; 13
| ||||||| 0x0803bb8a 0170 strb r1, [r0]
| ||||||| 0x0803bb8c dff8c41b ldr.w r1, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803bb90 dff8c40b ldr.w r0, [0x0803c75c] ; [0x803c75c:4]=0x2001e86e
| ||||||| 0x0803bb94 0068 ldr r0, [r0]
| ||||||| 0x0803bb96 f5f701fb bl md380_OSMboxPost
| ========< 0x0803bb9a 73e0 b 0x803bc84
| --------> 0x0803bb9c dff86807 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bba0 0721 movs r1, 7 ; 7
| ||||||| 0x0803bba2 0170 strb r1, [r0]
| ||||||| 0x0803bba4 dff8ac0b ldr.w r0, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803bba8 0d21 movs r1, 0xd ; 13
| ||||||| 0x0803bbaa 0170 strb r1, [r0]
| ||||||| 0x0803bbac dff8a41b ldr.w r1, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803bbb0 dff8a40b ldr.w r0, [0x0803c75c] ; [0x803c75c:4]=0x2001e86e
| ||||||| 0x0803bbb4 0068 ldr r0, [r0]
| ||||||| 0x0803bbb6 f5f7f1fa bl md380_OSMboxPost
| ||||||| 0x0803bbba dff85807 ldr.w r0, [0x0803c31a] ; [0x803c318:4]=0x2001deb8 current_channel_info
| ||||||| 0x0803bbbe 0078 ldrb r0, [r0]
| ||||||| 0x0803bbc0 50f08000 orrs r0, r0, 0x80
| ||||||| 0x0803bbc4 dff84c17 ldr.w r1, [0x0803c318] ; [0x803c318:4]=0x2001deb8 current_channel_info
| ||||||| 0x0803bbc8 0870 strb r0, [r1]
| ========< 0x0803bbca 5be0 b 0x803bc84
| --------> 0x0803bbcc dff88c0b ldr.w r0, [0x0803c760] ; [0x803c760:4]=0x2001e5f4
| ||||||| 0x0803bbd0 0078 ldrb r0, [r0]
| ||||||| 0x0803bbd2 401c adds r0, r0, 1
| ||||||| 0x0803bbd4 10f00f00 ands r0, r0, 0xf
| ||||||| 0x0803bbd8 dff8801b ldr.w r1, [0x0803c760] ; [0x803c760:4]=0x2001e5f4
| ||||||| 0x0803bbdc 0870 strb r0, [r1]
| ||||||| 0x0803bbde dff82807 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bbe2 0721 movs r1, 7 ; 7
| ||||||| 0x0803bbe4 0170 strb r1, [r0]
| ||||||| 0x0803bbe6 dff8780b ldr.w r0, [0x0803c766] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803bbea 4078 ldrb r0, [r0, 1]
| ||||||| 0x0803bbec c007 lsls r0, r0, 0x1f
| ========< 0x0803bbee 0ad4 bmi 0x803bc06
| ||||||| 0x0803bbf0 dff8600b ldr.w r0, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803bbf4 0d21 movs r1, 0xd ; 13
| ||||||| 0x0803bbf6 0170 strb r1, [r0]
| ||||||| 0x0803bbf8 dff8581b ldr.w r1, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803bbfc dff8580b ldr.w r0, [0x0803c75c] ; [0x803c75c:4]=0x2001e86e
| ||||||| 0x0803bc00 0068 ldr r0, [r0]
| ||||||| 0x0803bc02 f5f7cbfa bl md380_OSMboxPost
| --------> 0x0803bc06 dff81407 ldr.w r0, [0x0803c322] ; [0x803c320:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0803bc0a 90f82000 ldrb.w r0, [r0, 0x20]
| ||||||| 0x0803bc0e c0f30110 ubfx r0, r0, 4, 2
| ||||||| 0x0803bc12 c0b2 uxtb r0, r0
| ||||||| 0x0803bc14 0028 cmp r0, 0
| ========< 0x0803bc16 0ad1 bne 0x803bc2e
| ||||||| 0x0803bc18 fcf7cefb bl func_383b8
| ||||||| 0x0803bc1c dff8400b ldr.w r0, [0x0803c764] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803bc20 4078 ldrb r0, [r0, 1]
| ||||||| 0x0803bc22 10f0fe00 ands r0, r0, 0xfe
| ||||||| 0x0803bc26 dff8381b ldr.w r1, [0x0803c766] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803bc2a 4870 strb r0, [r1, 1]
| ========< 0x0803bc2c 29e0 b 0x803bc82
| --------> 0x0803bc2e dff8ec06 ldr.w r0, [0x0803c322] ; [0x803c320:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0803bc32 90f82000 ldrb.w r0, [r0, 0x20]
| ||||||| 0x0803bc36 c0f30110 ubfx r0, r0, 4, 2
| ||||||| 0x0803bc3a c0b2 uxtb r0, r0
| ||||||| 0x0803bc3c 0228 cmp r0, 2 ; 2
| ========< 0x0803bc3e 20d1 bne 0x803bc82
| ||||||| 0x0803bc40 dff8d806 ldr.w r0, [0x0803c320] ; [0x803c320:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0803bc44 90f82300 ldrb.w r0, [r0, 0x23]
| ||||||| 0x0803bc48 0028 cmp r0, 0
| ========< 0x0803bc4a 1ad0 beq 0x803bc82
| ||||||| 0x0803bc4c dff8140b ldr.w r0, [0x0803c768] ; [0x803c768:4]=0x2001e79e
| ||||||| 0x0803bc50 c088 ldrh r0, [r0, 6]
| ||||||| 0x0803bc52 dff8141b ldr.w r1, [0x0803c76e] ; [0x803c76c:4]=0x2001e1d0 msg_sms_hdr
| ||||||| 0x0803bc56 0880 strh r0, [r1]
| ||||||| 0x0803bc58 dff8100b ldr.w r0, [0x0803c770] ; [0x803c770:4]=0x2001e1ac contact
| ||||||| 0x0803bc5c dff8101b ldr.w r1, [0x0803c774] ; [0x803c774:4]=0x2001e8a9 event5_buffer
| ||||||| 0x0803bc60 0968 ldr r1, [r1]
| ||||||| 0x0803bc62 0160 str r1, [r0]
| ||||||| 0x0803bc64 dff8c406 ldr.w r0, [0x0803c330] ; [0x803c330:4]=0xf8dfb084 LEA task_state_change ; task_state_change
| ||||||| 0x0803bc68 0521 movs r1, 5 ; 5
| ||||||| 0x0803bc6a 0170 strb r1, [r0]
| ||||||| 0x0803bc6c dff8040b ldr.w r0, [0x0803c778] ; [0x803c778:4]=0x2001e638
| ||||||| 0x0803bc70 0121 movs r1, 1 ; 1
| ||||||| 0x0803bc72 0170 strb r1, [r0]
| ||||||| 0x0803bc74 dff8fc1a ldr.w r1, [0x0803c778] ; [0x803c778:4]=0x2001e638
| ||||||| 0x0803bc78 dff89006 ldr.w r0, [0x0803c310] ; [0x803c310:4]=0x2001e8f3 msg_0x2001e8f3
| ||||||| 0x0803bc7c 0068 ldr r0, [r0]
| ||||||| 0x0803bc7e f5f78dfa bl md380_OSMboxPost
| --------> 0x0803bc82 ffe7 b 0x803bc84
| --------> 0x0803bc84 69e1 b 0x803bf5a
| --------> ;-- ev5_18:
| --------> 0x0803bc86 dff88006 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bc8a 0078 ldrb r0, [r0]
| ||||||| 0x0803bc8c 0428 cmp r0, 4 ; 4
| ========< 0x0803bc8e 04d0 beq 0x803bc9a
| ||||||| 0x0803bc90 dff87406 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bc94 0078 ldrb r0, [r0]
| ||||||| 0x0803bc96 0528 cmp r0, 5 ; 5
| ========< 0x0803bc98 54d1 bne 0x803bd44
| --------> 0x0803bc9a dff87406 ldr.w r0, [0x0803c316] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||||| 0x0803bc9e 0078 ldrb r0, [r0]
| ||||||| 0x0803bca0 0028 cmp r0, 0
| ========< 0x0803bca2 26d0 beq 0x803bcf2
| ||||||| 0x0803bca4 dff85c06 ldr.w r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803bca8 0078 ldrb r0, [r0]
| ||||||| 0x0803bcaa 0928 cmp r0, 9 ; 9
| ========< 0x0803bcac 15d1 bne 0x803bcda
| ||||||| 0x0803bcae dff86c06 ldr.w r0, [0x0803c322] ; [0x803c320:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0803bcb2 90f82000 ldrb.w r0, [r0, 0x20]
| ||||||| 0x0803bcb6 c0f30110 ubfx r0, r0, 4, 2
| ||||||| 0x0803bcba c0b2 uxtb r0, r0
| ||||||| 0x0803bcbc 0228 cmp r0, 2 ; 2
| ========< 0x0803bcbe 0cd0 beq 0x803bcda
| ||||||| 0x0803bcc0 dff85806 ldr.w r0, [0x0803c320] ; [0x803c320:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0803bcc4 90f82200 ldrb.w r0, [r0, 0x22]
| ||||||| 0x0803bcc8 0f28 cmp r0, 0xf ; 15
| ========< 0x0803bcca 06d1 bne 0x803bcda
| ||||||| 0x0803bccc dff84006 ldr.w r0, [0x0803c314] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||||| 0x0803bcd0 dff83c16 ldr.w r1, [0x0803c314] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||||| 0x0803bcd4 0978 ldrb r1, [r1]
| ||||||| 0x0803bcd6 0170 strb r1, [r0]
| ========< 0x0803bcd8 06e0 b 0x803bce8
| --------> 0x0803bcda dff83406 ldr.w r0, [0x0803c316] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||||| 0x0803bcde 0078 ldrb r0, [r0]
| ||||||| 0x0803bce0 401e subs r0, r0, 1
| ||||||| 0x0803bce2 dff82c16 ldr.w r1, [0x0803c316] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||||| 0x0803bce6 0870 strb r0, [r1]
| --------> 0x0803bce8 dff81c06 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bcec 0221 movs r1, 2 ; 2
| ||||||| 0x0803bcee 0170 strb r1, [r0]
| ========< 0x0803bcf0 28e0 b 0x803bd44
| --------> 0x0803bcf2 dff81406 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bcf6 0821 movs r1, 8 ; 8
| ||||||| 0x0803bcf8 0170 strb r1, [r0]
| ||||||| 0x0803bcfa dff80806 ldr.w r0, [0x0803c30a] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803bcfe 0078 ldrb r0, [r0]
| ||||||| 0x0803bd00 0928 cmp r0, 9 ; 9
| ========< 0x0803bd02 1fd1 bne 0x803bd44
| ||||||| 0x0803bd04 dff81006 ldr.w r0, [0x0803c31c] ; [0x803c31c:4]=0x2001e160
| ||||||| 0x0803bd08 0078 ldrb r0, [r0]
| ||||||| 0x0803bd0a 0006 lsls r0, r0, 0x18
| ========< 0x0803bd0c 1ad5 bpl 0x803bd44
| ||||||| 0x0803bd0e dff8540a ldr.w r0, [0x0803c76a] ; [0x803c768:4]=0x2001e79e
| ||||||| 0x0803bd12 0078 ldrb r0, [r0]
| ||||||| 0x0803bd14 10f00300 ands r0, r0, 3
| ||||||| 0x0803bd18 0228 cmp r0, 2 ; 2
| ========< 0x0803bd1a 13d1 bne 0x803bd44
| ||||||| 0x0803bd1c dff8580a ldr.w r0, [0x0803c77c] ; [0x803c77c:4]=0x2001e814
| ||||||| 0x0803bd20 0021 movs r1, 0
| ||||||| 0x0803bd22 0160 str r1, [r0]
| ||||||| 0x0803bd24 dff8ec05 ldr.w r0, [0x0803c318] ; [0x803c318:4]=0x2001deb8 current_channel_info
| ||||||| 0x0803bd28 0078 ldrb r0, [r0]
| ||||||| 0x0803bd2a 10f0fd00 ands r0, r0, 0xfd
| ||||||| 0x0803bd2e dff8e415 ldr.w r1, [0x0803c31a] ; [0x803c318:4]=0x2001deb8 current_channel_info
| ||||||| 0x0803bd32 0870 strb r0, [r1]
| ||||||| 0x0803bd34 dff8dc05 ldr.w r0, [0x0803c318] ; [0x803c318:4]=0x2001deb8 current_channel_info
| ||||||| 0x0803bd38 0078 ldrb r0, [r0]
| ||||||| 0x0803bd3a 50f00100 orrs r0, r0, 1
| ||||||| 0x0803bd3e dff8d415 ldr.w r1, [0x0803c31a] ; [0x803c318:4]=0x2001deb8 current_channel_info
| ||||||| 0x0803bd42 0870 strb r0, [r1]
| --------> 0x0803bd44 09e1 b 0x803bf5a
| --------> ;-- ev5_19:
| --------> 0x0803bd46 dff8c005 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bd4a 0078 ldrb r0, [r0]
| ||||||| 0x0803bd4c 0528 cmp r0, 5 ; 5
| ========< 0x0803bd4e 40f09d80 bne.w 0x803be8c
| ||||||| 0x0803bd52 dff8b005 ldr.w r0, [0x0803c30a] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803bd56 0078 ldrb r0, [r0]
| ||||||| 0x0803bd58 0128 cmp r0, 1 ; 1
| ========< 0x0803bd5a 09d0 beq 0x803bd70
| ||||||| 0x0803bd5c 0328 cmp r0, 3 ; 3
| ========< 0x0803bd5e 0cd0 beq 0x803bd7a
| ||||||| 0x0803bd60 0a28 cmp r0, 0xa ; 10
| ========< 0x0803bd62 41d0 beq 0x803bde8
| ||||||| 0x0803bd64 1428 cmp r0, 0x14 ; 20
| ========< 0x0803bd66 59d0 beq 0x803be1c
| ||||||| 0x0803bd68 1528 cmp r0, 0x15 ; 21
| ========< 0x0803bd6a 00f08e80 beq.w 0x803be8a
| ========< 0x0803bd6e 8de0 b 0x803be8c
| --------> 0x0803bd70 dff89405 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bd74 0721 movs r1, 7 ; 7
| ||||||| 0x0803bd76 0170 strb r1, [r0]
| ========< 0x0803bd78 88e0 b 0x803be8c
| --------> 0x0803bd7a dff8000a ldr.w r0, [0x0803c782] ; [0x803c780:4]=0x2001e901
| ||||||| 0x0803bd7e 0088 ldrh r0, [r0]
| ||||||| 0x0803bd80 401c adds r0, r0, 1
| ||||||| 0x0803bd82 dff8f819 ldr.w r1, [0x0803c782] ; [0x803c780:4]=0x2001e901
| ||||||| 0x0803bd86 0880 strh r0, [r1]
| ||||||| 0x0803bd88 dff8f409 ldr.w r0, [0x0803c784] ; [0x803c784:4]=0x2001e86c
| ||||||| 0x0803bd8c 0078 ldrb r0, [r0]
| ||||||| 0x0803bd8e 0028 cmp r0, 0
| ========< 0x0803bd90 08d0 beq 0x803bda4
| ||||||| 0x0803bd92 dff8f009 ldr.w r0, [0x0803c78a] ; [0x803c788:4]=0x2001e902
| ||||||| 0x0803bd96 0078 ldrb r0, [r0]
| ||||||| 0x0803bd98 401c adds r0, r0, 1
| ||||||| 0x0803bd9a 10f00700 ands r0, r0, 7
| ||||||| 0x0803bd9e dff8e419 ldr.w r1, [0x0803c78a] ; [0x803c788:4]=0x2001e902
| ||||||| 0x0803bda2 0870 strb r0, [r1]
| --------> 0x0803bda4 dff8e009 ldr.w r0, [0x0803c78c] ; [0x803c78c:4]=0x2001e941
| ||||||| 0x0803bda8 0078 ldrb r0, [r0]
| ||||||| 0x0803bdaa 0028 cmp r0, 0
| ========< 0x0803bdac 06d0 beq 0x803bdbc
| ||||||| 0x0803bdae dff85805 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bdb2 0621 movs r1, 6 ; 6
| ||||||| 0x0803bdb4 0170 strb r1, [r0]
| ||||||| 0x0803bdb6 42f6e064 movw r4, 0x2ee0
| ========< 0x0803bdba 14e0 b 0x803bde6
| --------> 0x0803bdbc dff8cc09 ldr.w r0, [0x0803c790] ; [0x803c790:4]=0x2001e82e
| ||||||| 0x0803bdc0 0021 movs r1, 0
| ||||||| 0x0803bdc2 0170 strb r1, [r0]
| ||||||| 0x0803bdc4 fef73bf8 bl menu_39e3e
| ||||||| 0x0803bdc8 dff83c05 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bdcc 0721 movs r1, 7 ; 7
| ||||||| 0x0803bdce 0170 strb r1, [r0]
| ||||||| 0x0803bdd0 dff88009 ldr.w r0, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803bdd4 0d21 movs r1, 0xd ; 13
| ||||||| 0x0803bdd6 0170 strb r1, [r0]
| ||||||| 0x0803bdd8 dff87819 ldr.w r1, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803bddc dff87809 ldr.w r0, [0x0803c75c] ; [0x803c75c:4]=0x2001e86e
| ||||||| 0x0803bde0 0068 ldr r0, [r0]
| ||||||| 0x0803bde2 f5f7dbf9 bl md380_OSMboxPost
| ========< 0x0803bde6 51e0 b 0x803be8c
| --------> 0x0803bde8 dff89009 ldr.w r0, [0x0803c780] ; [0x803c780:4]=0x2001e901
| ||||||| 0x0803bdec 0088 ldrh r0, [r0]
| ||||||| 0x0803bdee 401c adds r0, r0, 1
| ||||||| 0x0803bdf0 dff88819 ldr.w r1, [0x0803c780] ; [0x803c780:4]=0x2001e901
| ||||||| 0x0803bdf4 0880 strh r0, [r1]
| ||||||| 0x0803bdf6 dff88809 ldr.w r0, [0x0803c786] ; [0x803c784:4]=0x2001e86c
| ||||||| 0x0803bdfa 0078 ldrb r0, [r0]
| ||||||| 0x0803bdfc 0028 cmp r0, 0
| ========< 0x0803bdfe 08d0 beq 0x803be12
| ||||||| 0x0803be00 dff88009 ldr.w r0, [0x0803c788] ; [0x803c788:4]=0x2001e902
| ||||||| 0x0803be04 0078 ldrb r0, [r0]
| ||||||| 0x0803be06 401c adds r0, r0, 1
| ||||||| 0x0803be08 10f00700 ands r0, r0, 7
| ||||||| 0x0803be0c dff87419 ldr.w r1, [0x0803c788] ; [0x803c788:4]=0x2001e902
| ||||||| 0x0803be10 0870 strb r0, [r1]
| --------> 0x0803be12 dff8f404 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803be16 0721 movs r1, 7 ; 7
| ||||||| 0x0803be18 0170 strb r1, [r0]
| ========< 0x0803be1a 37e0 b 0x803be8c
| --------> 0x0803be1c dff8e804 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803be20 0721 movs r1, 7 ; 7
| ||||||| 0x0803be22 0170 strb r1, [r0]
| ||||||| 0x0803be24 dff86809 ldr.w r0, [0x0803c794] ; [0x803c794:4]=0x2001e850 selected_channel
| ||||||| 0x0803be28 0088 ldrh r0, [r0]
| ||||||| 0x0803be2a e6f7d6fd bl func_229da
| ||||||| 0x0803be2e dff86409 ldr.w r0, [0x0803c79a] ; [0x803c798:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x0803be32 0088 ldrh r0, [r0]
| ||||||| 0x0803be34 e6f785fe bl func_22b42
| ||||||| 0x0803be38 f6f770f8 bl func_31f1c
| ||||||| 0x0803be3c dff82c09 ldr.w r0, [0x0803c770] ; [0x803c770:4]=0x2001e1ac contact
| ||||||| 0x0803be40 c078 ldrb r0, [r0, 3]
| ||||||| 0x0803be42 0001 lsls r0, r0, 4
| ||||||| 0x0803be44 10f07f00 ands r0, r0, 0x7f
| ||||||| 0x0803be48 dff84c19 ldr.w r1, [0x0803c79c] ; [0x803c79c:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0803be4c 0870 strb r0, [r1]
| ||||||| 0x0803be4e dff84c09 ldr.w r0, [0x0803c7a2] ; [0x803c7a0:4]=0x2001e6ec
| ||||||| 0x0803be52 0068 ldr r0, [r0]
| ||||||| 0x0803be54 0068 ldr r0, [r0]
| ||||||| 0x0803be56 dff84819 ldr.w r1, [0x0803c7a6] ; [0x803c7a4:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0803be5a 0968 ldr r1, [r1]
| ||||||| 0x0803be5c dff84429 ldr.w r2, [0x0803c7a8] ; [0x803c7a8:4]=0x2001e890 kb_keycode
| ||||||| 0x0803be60 12eb8101 adds.w r1, r2, r1, lsl 2
| ||||||| 0x0803be64 d1f88811 ldr.w r1, [r1, 0x188]
| ||||||| 0x0803be68 8842 cmp r0, r1
| ========< 0x0803be6a 0dd1 bne 0x803be88
| ||||||| 0x0803be6c dff8f008 ldr.w r0, [0x0803c764] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803be70 0078 ldrb r0, [r0]
| ||||||| 0x0803be72 c007 lsls r0, r0, 0x1f
| ========< 0x0803be74 08d5 bpl 0x803be88
| ||||||| 0x0803be76 dff83009 ldr.w r0, [0x0803c7ae] ; [0x803c7ac:4]=0x2001e6fc
| ||||||| 0x0803be7a ff21 movs r1, 0xff ; 255
| ||||||| 0x0803be7c 0170 strb r1, [r0]
| ||||||| 0x0803be7e dff82c09 ldr.w r0, [0x0803c7b2] ; [0x803c7b0:4]=0x2001e8f9
| ||||||| 0x0803be82 0068 ldr r0, [r0]
| ||||||| 0x0803be84 8068 ldr r0, [r0, 8]
| ||||||| 0x0803be86 8047 blx r0
| --------> 0x0803be88 00e0 b 0x803be8c
| ========< 0x0803be8a ffe7 b 0x803be8c
| --------> 0x0803be8c 65e0 b 0x803bf5a
| --------> ;-- ev5_20:
| --------> 0x0803be8e dff82009 ldr.w r0, [0x0803c7b6] ; [0x803c7b4:4]=0x2001e810
| ||||||| 0x0803be92 0078 ldrb r0, [r0]
| ||||||| 0x0803be94 0428 cmp r0, 4 ; 4
| ========< 0x0803be96 47d1 bne 0x803bf28
| ||||||| 0x0803be98 dff81809 ldr.w r0, [0x0803c7b8] ; [0x803c7b8:4]=0x20017eac
| ||||||| 0x0803be9c 0188 ldrh r1, [r0]
| ||||||| 0x0803be9e dff81809 ldr.w r0, [0x0803c7be] ; [0x803c7bc:4]=0x2001e816
| ||||||| 0x0803bea2 10f0d4fb bl func_4c64e
| ||||||| 0x0803bea6 dff86014 ldr.w r1, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803beaa 0978 ldrb r1, [r1]
| ||||||| 0x0803beac 0629 cmp r1, 6 ; 6
| ========< 0x0803beae 1cd1 bne 0x803beea
| ||||||| 0x0803beb0 c0b2 uxtb r0, r0
| ||||||| 0x0803beb2 bf28 cmp r0, 0xbf ; 191
| ========< 0x0803beb4 38d1 bne 0x803bf28
| ||||||| 0x0803beb6 dff80409 ldr.w r0, [0x0803c7c2] ; [0x803c7c0:4]=0x2001e818
| ||||||| 0x0803beba 0088 ldrh r0, [r0]
| ||||||| 0x0803bebc dff80019 ldr.w r1, [0x0803c7c4] ; [0x803c7c4:4]=0x2490b082
| ||||||| 0x0803bec0 0978 ldrb r1, [r1]
| ||||||| 0x0803bec2 11f01f01 ands r1, r1, 0x1f
| ||||||| 0x0803bec6 8842 cmp r0, r1
| ========< 0x0803bec8 2ed1 bne 0x803bf28
| ||||||| 0x0803beca dff83c04 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bece 0721 movs r1, 7 ; 7
| ||||||| 0x0803bed0 0170 strb r1, [r0]
| ||||||| 0x0803bed2 dff88008 ldr.w r0, [0x0803c75a] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803bed6 0d21 movs r1, 0xd ; 13
| ||||||| 0x0803bed8 0170 strb r1, [r0]
| ||||||| 0x0803beda dff87818 ldr.w r1, [0x0803c75a] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803bede dff87808 ldr.w r0, [0x0803c75e] ; [0x803c75c:4]=0x2001e86e
| ||||||| 0x0803bee2 0068 ldr r0, [r0]
| ||||||| 0x0803bee4 f5f75af9 bl md380_OSMboxPost
| ========< 0x0803bee8 1ee0 b 0x803bf28
| --------> 0x0803beea c0b2 uxtb r0, r0
| ||||||| 0x0803beec 0028 cmp r0, 0
| ========< 0x0803beee 1bd0 beq 0x803bf28
| ||||||| 0x0803bef0 dff8d41b ldr.w r1, [0x0803cacc] ; [0x803cacc:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x0803bef4 9022 movs r2, 0x90 ; 144
| ||||||| 0x0803bef6 0a70 strb r2, [r1]
| ||||||| 0x0803bef8 c0b2 uxtb r0, r0
| ||||||| 0x0803befa e028 cmp r0, 0xe0 ; 224
| ========< 0x0803befc 10d1 bne 0x803bf20
| ||||||| 0x0803befe dff81004 ldr.w r0, [0x0803c316] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||||| 0x0803bf02 0221 movs r1, 2 ; 2
| ||||||| 0x0803bf04 0170 strb r1, [r0]
| ||||||| 0x0803bf06 dff8fc03 ldr.w r0, [0x0803c30a] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803bf0a 0a21 movs r1, 0xa ; 10
| ||||||| 0x0803bf0c 0170 strb r1, [r0]
| ||||||| 0x0803bf0e dff8f803 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bf12 0121 movs r1, 1 ; 1
| ||||||| 0x0803bf14 0170 strb r1, [r0]
| ||||||| 0x0803bf16 4ff4fa70 mov.w r0, 0x1f4 ; 500
| ||||||| 0x0803bf1a f7f7cbff bl OSTimeDly
| ========< 0x0803bf1e 03e0 b 0x803bf28
| --------> 0x0803bf20 dff8e403 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bf24 0721 movs r1, 7 ; 7
| ||||||| 0x0803bf26 0170 strb r1, [r0]
| --------> 0x0803bf28 17e0 b 0x803bf5a
| --------> ;-- ev5_14:
| --------> 0x0803bf2a dff8dc03 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bf2e 0078 ldrb r0, [r0]
| ||||||| 0x0803bf30 401e subs r0, r0, 1
| ||||||| 0x0803bf32 c0b2 uxtb r0, r0
| ||||||| 0x0803bf34 0828 cmp r0, 8 ; 8
| ========< 0x0803bf36 0fd2 bhs 0x803bf58
| ||||||| 0x0803bf38 dff8c803 ldr.w r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803bf3c 0078 ldrb r0, [r0]
| ||||||| 0x0803bf3e 0128 cmp r0, 1 ; 1
| ========< 0x0803bf40 06d1 bne 0x803bf50
| ||||||| 0x0803bf42 01f01afb bl func_3d57a
| ||||||| 0x0803bf46 dff8c003 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bf4a 0721 movs r1, 7 ; 7
| ||||||| 0x0803bf4c 0170 strb r1, [r0]
| ========< 0x0803bf4e 03e0 b 0x803bf58
| --------> 0x0803bf50 dff8b403 ldr.w r0, [0x0803c30c] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803bf54 0721 movs r1, 7 ; 7
| ||||||| 0x0803bf56 0170 strb r1, [r0]
| --------> 0x0803bf58 ffe7 b 0x803bf5a
| ------`-> ;-- ev5_rest:
| ------`-> 0x0803bf5a dff8ac03 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| |||||| 0x0803bf5e 0078 ldrb r0, [r0]
| |||||| 0x0803bf60 401e subs r0, r0, 1
| |||||| 0x0803bf62 c0b2 uxtb r0, r0
| |||||| 0x0803bf64 0828 cmp r0, 8 ; 8
| ||||||,=< 0x0803bf66 04d2 bhs 0x803bf72
| ||||||| 0x0803bf68 dff8600b ldr.w r0, [0x0803cad0] ; [0x803cad0:4]=0x2001e8ac
| ||||||| 0x0803bf6c 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x0803bf70 0160 str r1, [r0]
| ||||||`-> 0x0803bf72 dff89403 ldr.w r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| |||||| 0x0803bf76 0078 ldrb r0, [r0]
| |||||| 0x0803bf78 0128 cmp r0, 1 ; 1
| ||||||,=< 0x0803bf7a 70d1 bne 0x803c05e
| ||||||| 0x0803bf7c dff8500b ldr.w r0, [0x0803cad4] ; [0x803cad4:4]=0x2001e8ad
| ||||||| 0x0803bf80 0221 movs r1, 2 ; 2
| ||||||| 0x0803bf82 0170 strb r1, [r0]
| ||||||| 0x0803bf84 dff84c0b ldr.w r0, [0x0803cad8] ; [0x803cad8:4]=0x40010400 io_TIM8
| ||||||| 0x0803bf88 0121 movs r1, 1 ; 1
| ||||||| 0x0803bf8a 0170 strb r1, [r0]
| ||||||| 0x0803bf8c dff87403 ldr.w r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0803bf90 0078 ldrb r0, [r0]
| ||||||| 0x0803bf92 401e subs r0, r0, 1
| |||||`==< 0x0803bf94 3ff4aaac beq.w 0x803b8ec
| ||||| | 0x0803bf98 801e subs r0, r0, 2
| |||||,==< 0x0803bf9a 0bd0 beq 0x803bfb4
| ||||||| 0x0803bf9c 401e subs r0, r0, 1
| ||||||| 0x0803bf9e 0428 cmp r0, 4 ; 4
| ========< 0x0803bfa0 2dd9 bls 0x803bffe
| ||||||| 0x0803bfa2 401f subs r0, r0, 5
| ========< 0x0803bfa4 2ed0 beq 0x803c004
| ||||||| 0x0803bfa6 401e subs r0, r0, 1
| ========< 0x0803bfa8 26d0 beq 0x803bff8
| ||||||| 0x0803bfaa 0a38 subs r0, 0xa
| ========< 0x0803bfac 50d0 beq 0x803c050
| ||||||| 0x0803bfae 401e subs r0, r0, 1
| ========< 0x0803bfb0 51d0 beq 0x803c056
| ========< 0x0803bfb2 53e0 b 0x803c05c
| |||||`--> 0x0803bfb4 dff80808 ldr.w r0, [0x0803c7c4] ; [0x803c7c4:4]=0x2490b082
| ||||| | 0x0803bfb8 0088 ldrh r0, [r0]
| ||||| | 0x0803bfba 0028 cmp r0, 0
| |||||,==< 0x0803bfbc 08d1 bne 0x803bfd0
| ||||||| 0x0803bfbe dff8180b ldr.w r0, [0x0803cade] ; [0x803cadc:4]=0x2001dadc md380_radio_config
| ||||||| 0x0803bfc2 07f071fd bl TIM_GetCounter
| ||||||| 0x0803bfc6 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0803bfca dff8f417 ldr.w r1, [0x0803c7c6] ; [0x803c7c4:4]=0x2490b082
| ||||||| 0x0803bfce 0880 strh r0, [r1]
| |||||`--> 0x0803bfd0 dff8ec07 ldr.w r0, [0x0803c7c4] ; [0x803c7c4:4]=0x2490b082
| ||||| | 0x0803bfd4 0088 ldrh r0, [r0]
| ||||| | 0x0803bfd6 1f28 cmp r0, 0x1f ; 31
| |||||,==< 0x0803bfd8 07d2 bhs 0x803bfea
| ||||||| 0x0803bfda dff8e407 ldr.w r0, [0x0803c7c6] ; [0x803c7c4:4]=0x2490b082
| ||||||| 0x0803bfde 0088 ldrh r0, [r0]
| ||||||| 0x0803bfe0 401c adds r0, r0, 1
| ||||||| 0x0803bfe2 dff8dc17 ldr.w r1, [0x0803c7c6] ; [0x803c7c4:4]=0x2490b082
| ||||||| 0x0803bfe6 0880 strh r0, [r1]
| ========< 0x0803bfe8 03e0 b 0x803bff2
| |||||`--> 0x0803bfea dff8d407 ldr.w r0, [0x0803c7c6] ; [0x803c7c4:4]=0x2490b082
| ||||| | 0x0803bfee 0121 movs r1, 1 ; 1
| ||||| | 0x0803bff0 0180 strh r1, [r0]
| --------> 0x0803bff2 01f08bfe bl msg_process_sms
| ========< 0x0803bff6 7be4 b 0x803b8f0
| --------> 0x0803bff8 01f0baff bl func_3df70
| ========< 0x0803bffc 78e4 b 0x803b8f0
| --------> 0x0803bffe 01f00dff bl func_3de1c
| ========< 0x0803c002 75e4 b 0x803b8f0
| --------> 0x0803c004 01f00aff bl func_3de1c
| ||||| | 0x0803c008 c448 ldr r0, [0x0803c31c] ; [0x803c31c:4]=0x2001e160
| ||||| | 0x0803c00a 90f82000 ldrb.w r0, [r0, 0x20]
| ||||| | 0x0803c00e 10f00300 ands r0, r0, 3
| ||||| | 0x0803c012 0128 cmp r0, 1 ; 1
| |||||,==< 0x0803c014 13d1 bne 0x803c03e
| ||||||| 0x0803c016 dff84807 ldr.w r0, [0x0803c766] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803c01a 4078 ldrb r0, [r0, 1]
| ||||||| 0x0803c01c 10f0fe00 ands r0, r0, 0xfe
| ||||||| 0x0803c020 dff83c17 ldr.w r1, [0x0803c764] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803c024 4870 strb r0, [r1, 1]
| ||||||| 0x0803c026 dff82c07 ldr.w r0, [0x0803c75a] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803c02a 0b21 movs r1, 0xb ; 11
| ||||||| 0x0803c02c 0170 strb r1, [r0]
| ||||||| 0x0803c02e dff82417 ldr.w r1, [0x0803c75a] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803c032 dff82407 ldr.w r0, [0x0803c75e] ; [0x803c75c:4]=0x2001e86e
| ||||||| 0x0803c036 0068 ldr r0, [r0]
| ||||||| 0x0803c038 f5f7b0f8 bl md380_OSMboxPost
| ========< 0x0803c03c 07e0 b 0x803c04e
| |||||`--> 0x0803c03e dff82007 ldr.w r0, [0x0803c766] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||| | 0x0803c042 4078 ldrb r0, [r0, 1]
| ||||| | 0x0803c044 50f00100 orrs r0, r0, 1
| ||||| | 0x0803c048 dff81417 ldr.w r1, [0x0803c764] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||| | 0x0803c04c 4870 strb r0, [r1, 1]
| ========< 0x0803c04e 4fe4 b 0x803b8f0
| --------> 0x0803c050 02f002f8 bl func_3e058
| ========< 0x0803c054 4ce4 b 0x803b8f0
| --------> 0x0803c056 02f0bef8 bl func_3e1d6
| ========< 0x0803c05a 49e4 b 0x803b8f0
| ========< 0x0803c05c 48e4 b 0x803b8f0
| ||||| `-> 0x0803c05e aa48 ldr r0, [0x0803c30a] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||| 0x0803c060 0078 ldrb r0, [r0]
| ||||| 0x0803c062 0228 cmp r0, 2 ; 2
| ||||| ,=< 0x0803c064 56d1 bne 0x803c114
| ||||| | 0x0803c066 dff8740a ldr.w r0, [0x0803cae2] ; [0x803cae0:4]=0xf8dfb580 LEA c5000_set_local_addr ; c5000_set_local_addr
| ||||| | 0x0803c06a 4078 ldrb r0, [r0, 1]
| ||||| | 0x0803c06c c007 lsls r0, r0, 0x1f
| |||||,==< 0x0803c06e 06d5 bpl 0x803c07e
| ||||||| 0x0803c070 dff8680a ldr.w r0, [c5000_set_local_addr] ; [0x803cae0:4]=0xf8dfb580 LEA c5000_set_local_addr ; c5000_set_local_addr
| ||||||| 0x0803c074 007a ldrb r0, [r0, 8]
| ||||||| 0x0803c076 dff8581a ldr.w r1, [0x0803cad6] ; [0x803cad4:4]=0x2001e8ad
| ||||||| 0x0803c07a 0870 strb r0, [r1]
| ========< 0x0803c07c 03e0 b 0x803c086
| |||||`--> 0x0803c07e dff8500a ldr.w r0, [0x0803cad6] ; [0x803cad4:4]=0x2001e8ad
| ||||| | 0x0803c082 0221 movs r1, 2 ; 2
| ||||| | 0x0803c084 0170 strb r1, [r0]
| --------> 0x0803c086 dff84c0a ldr.w r0, [0x0803cada] ; [0x803cad8:4]=0x40010400 io_TIM8
| ||||| | 0x0803c08a 0121 movs r1, 1 ; 1
| ||||| | 0x0803c08c 0170 strb r1, [r0]
| ||||| | 0x0803c08e 9d48 ldr r0, [0x0803c306] ; [0x803c304:4]=0x2001e8f4 msg_last_event
| ||||| | 0x0803c090 0078 ldrb r0, [r0]
| ||||| | 0x0803c092 401e subs r0, r0, 1
| |||||,==< 0x0803c094 09d0 beq 0x803c0aa
| ||||||| 0x0803c096 801e subs r0, r0, 2
| ========< 0x0803c098 0ad0 beq 0x803c0b0
| ||||||| 0x0803c09a 401e subs r0, r0, 1
| ||||||| 0x0803c09c 0428 cmp r0, 4 ; 4
| ========< 0x0803c09e 0dd9 bls 0x803c0bc
| ||||||| 0x0803c0a0 401f subs r0, r0, 5
| ========< 0x0803c0a2 0ed0 beq 0x803c0c2
| ||||||| 0x0803c0a4 401e subs r0, r0, 1
| ========< 0x0803c0a6 06d0 beq 0x803c0b6
| ========< 0x0803c0a8 32e0 b 0x803c110
| |||||`--> 0x0803c0aa 00f083ff bl CalledFromLongDispatcher
| ========< 0x0803c0ae 1fe4 b 0x803b8f0
| --------> 0x0803c0b0 01f02cfe bl msg_process_sms
| ========< 0x0803c0b4 1ce4 b 0x803b8f0
| --------> 0x0803c0b6 01f05bff bl func_3df70
| ========< 0x0803c0ba 19e4 b 0x803b8f0
| --------> 0x0803c0bc 01f0aefe bl func_3de1c
| ========< 0x0803c0c0 16e4 b 0x803b8f0
| --------> 0x0803c0c2 01f0abfe bl func_3de1c
| ||||| | 0x0803c0c6 9548 ldr r0, [0x0803c31e] ; [0x803c31c:4]=0x2001e160
| ||||| | 0x0803c0c8 90f82000 ldrb.w r0, [r0, 0x20]
| ||||| | 0x0803c0cc 10f00300 ands r0, r0, 3
| ||||| | 0x0803c0d0 0128 cmp r0, 1 ; 1
| |||||,==< 0x0803c0d2 13d1 bne 0x803c0fc
| ||||||| 0x0803c0d4 dff88806 ldr.w r0, [0x0803c764] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803c0d8 4078 ldrb r0, [r0, 1]
| ||||||| 0x0803c0da 10f0fe00 ands r0, r0, 0xfe
| ||||||| 0x0803c0de dff88016 ldr.w r1, [0x0803c766] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803c0e2 4870 strb r0, [r1, 1]
| ||||||| 0x0803c0e4 dff86c06 ldr.w r0, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803c0e8 0b21 movs r1, 0xb ; 11
| ||||||| 0x0803c0ea 0170 strb r1, [r0]
| ||||||| 0x0803c0ec dff86416 ldr.w r1, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803c0f0 dff86406 ldr.w r0, [0x0803c75c] ; [0x803c75c:4]=0x2001e86e
| ||||||| 0x0803c0f4 0068 ldr r0, [r0]
| ||||||| 0x0803c0f6 f5f751f8 bl md380_OSMboxPost
| ========< 0x0803c0fa 07e0 b 0x803c10c
| |||||`--> 0x0803c0fc dff86006 ldr.w r0, [0x0803c764] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||| | 0x0803c100 4078 ldrb r0, [r0, 1]
| ||||| | 0x0803c102 50f00100 orrs r0, r0, 1
| ||||| | 0x0803c106 dff85816 ldr.w r1, [0x0803c766] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||| | 0x0803c10a 4870 strb r0, [r1, 1]
| ========< 0x0803c10c fff7f0bb b.w 0x803b8f0
| ========< 0x0803c110 fff7eebb b.w 0x803b8f0
| ||||| `-> 0x0803c114 7c48 ldr r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||| 0x0803c116 0078 ldrb r0, [r0]
| ||||| 0x0803c118 0328 cmp r0, 3 ; 3
| ========< 0x0803c11a 3ff4e9ab beq.w 0x803b8f0
| ||||| 0x0803c11e 7a48 ldr r0, [0x0803c30a] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||| 0x0803c120 0078 ldrb r0, [r0]
| ||||| 0x0803c122 0428 cmp r0, 4 ; 4
| ========< 0x0803c124 3ff4e4ab beq.w 0x803b8f0
| ||||| 0x0803c128 7748 ldr r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||| 0x0803c12a 0078 ldrb r0, [r0]
| ||||| 0x0803c12c 0528 cmp r0, 5 ; 5
| ||||| ,=< 0x0803c12e 07d1 bne 0x803c140
| ||||| | 0x0803c130 7848 ldr r0, [0x0803c314] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||| | 0x0803c132 4078 ldrb r0, [r0, 1]
| ||||| | 0x0803c134 10f0fb00 ands r0, r0, 0xfb
| ||||| | 0x0803c138 7649 ldr r1, [0x0803c314] ; [0x803c314:4]=0x2001e604 q_status_4
| ||||| | 0x0803c13a 4870 strb r0, [r1, 1]
| ========< 0x0803c13c fff7d8bb b.w 0x803b8f0
| ||||| `-> 0x0803c140 7148 ldr r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||| 0x0803c142 0078 ldrb r0, [r0]
| ||||| 0x0803c144 0628 cmp r0, 6 ; 6
| ||||| ,=< 0x0803c146 0ad1 bne 0x803c15e
| ||||| | 0x0803c148 2000 movs r0, r4
| ||||| | 0x0803c14a 441e subs r4, r0, 1
| ||||| | 0x0803c14c 80b2 uxth r0, r0
| ||||| | 0x0803c14e 0028 cmp r0, 0
| `=======< 0x0803c150 7ff4ceab bne.w 0x803b8f0
| |||| | 0x0803c154 6c48 ldr r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| |||| | 0x0803c156 0821 movs r1, 8 ; 8
| |||| | 0x0803c158 0170 strb r1, [r0]
| `======< 0x0803c15a fff7c9bb b.w 0x803b8f0
| ||| `-> 0x0803c15e 6a48 ldr r0, [0x0803c30a] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||| 0x0803c160 0078 ldrb r0, [r0]
| ||| 0x0803c162 0828 cmp r0, 8 ; 8
| ||| ,=< 0x0803c164 40f0bb80 bne.w 0x803c2de
| ||| | 0x0803c168 6648 ldr r0, [0x0803c304] ; [0x803c304:4]=0x2001e8f4 msg_last_event
| ||| | 0x0803c16a 0078 ldrb r0, [r0]
| ||| | 0x0803c16c 0328 cmp r0, 3 ; 3
| |||,==< 0x0803c16e 04d0 beq 0x803c17a
| ||||| 0x0803c170 0928 cmp r0, 9 ; 9
| ,======< 0x0803c172 45d0 beq 0x803c200
| |||||| 0x0803c174 0a28 cmp r0, 0xa ; 10
| ,=======< 0x0803c176 2ad0 beq 0x803c1ce
| ========< 0x0803c178 98e0 b 0x803c2ac
| |||||`--> 0x0803c17a dff80006 ldr.w r0, [0x0803c782] ; [0x803c780:4]=0x2001e901
| ||||| | 0x0803c17e 0088 ldrh r0, [r0]
| ||||| | 0x0803c180 401c adds r0, r0, 1
| ||||| | 0x0803c182 dff8f815 ldr.w r1, [0x0803c782] ; [0x803c780:4]=0x2001e901
| ||||| | 0x0803c186 0880 strh r0, [r1]
| ||||| | 0x0803c188 dff8f405 ldr.w r0, [0x0803c784] ; [0x803c784:4]=0x2001e86c
| ||||| | 0x0803c18c 0078 ldrb r0, [r0]
| ||||| | 0x0803c18e 0028 cmp r0, 0
| |||||,==< 0x0803c190 08d0 beq 0x803c1a4
| ||||||| 0x0803c192 dff8f005 ldr.w r0, [0x0803c78a] ; [0x803c788:4]=0x2001e902
| ||||||| 0x0803c196 0078 ldrb r0, [r0]
| ||||||| 0x0803c198 401c adds r0, r0, 1
| ||||||| 0x0803c19a 10f00700 ands r0, r0, 7
| ||||||| 0x0803c19e dff8e415 ldr.w r1, [0x0803c78a] ; [0x803c788:4]=0x2001e902
| ||||||| 0x0803c1a2 0870 strb r0, [r1]
| |||||`--> 0x0803c1a4 dff8e405 ldr.w r0, [0x0803c790] ; [0x803c790:4]=0x2001e82e
| ||||| | 0x0803c1a8 0121 movs r1, 1 ; 1
| ||||| | 0x0803c1aa 0170 strb r1, [r0]
| ||||| | 0x0803c1ac fdf747fe bl menu_39e3e
| ||||| | 0x0803c1b0 5548 ldr r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| ||||| | 0x0803c1b2 0a21 movs r1, 0xa ; 10
| ||||| | 0x0803c1b4 0170 strb r1, [r0]
| ||||| | 0x0803c1b6 dff89c05 ldr.w r0, [0x0803c75a] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||| | 0x0803c1ba 0e21 movs r1, 0xe ; 14
| ||||| | 0x0803c1bc 0170 strb r1, [r0]
| ||||| | 0x0803c1be dff89415 ldr.w r1, [0x0803c75a] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||| | 0x0803c1c2 dff89405 ldr.w r0, [0x0803c75e] ; [0x803c75c:4]=0x2001e86e
| ||||| | 0x0803c1c6 0068 ldr r0, [r0]
| ||||| | 0x0803c1c8 f4f7e8ff bl md380_OSMboxPost
| |||||,==< 0x0803c1cc 7ce0 b 0x803c2c8
| `-------> 0x0803c1ce dff8ac05 ldr.w r0, [0x0803c782] ; [0x803c780:4]=0x2001e901
| |||||| 0x0803c1d2 0088 ldrh r0, [r0]
| |||||| 0x0803c1d4 401c adds r0, r0, 1
| |||||| 0x0803c1d6 dff8a415 ldr.w r1, [0x0803c782] ; [0x803c780:4]=0x2001e901
| |||||| 0x0803c1da 0880 strh r0, [r1]
| |||||| 0x0803c1dc dff8a005 ldr.w r0, [0x0803c784] ; [0x803c784:4]=0x2001e86c
| |||||| 0x0803c1e0 0078 ldrb r0, [r0]
| |||||| 0x0803c1e2 0028 cmp r0, 0
| ,=======< 0x0803c1e4 08d0 beq 0x803c1f8
| ||||||| 0x0803c1e6 dff89c05 ldr.w r0, [0x0803c78a] ; [0x803c788:4]=0x2001e902
| ||||||| 0x0803c1ea 0078 ldrb r0, [r0]
| ||||||| 0x0803c1ec 401c adds r0, r0, 1
| ||||||| 0x0803c1ee 10f00700 ands r0, r0, 7
| ||||||| 0x0803c1f2 dff89015 ldr.w r1, [0x0803c78a] ; [0x803c788:4]=0x2001e902
| ||||||| 0x0803c1f6 0870 strb r0, [r1]
| `-------> 0x0803c1f8 4348 ldr r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| |||||| 0x0803c1fa 0a21 movs r1, 0xa ; 10
| |||||| 0x0803c1fc 0170 strb r1, [r0]
| ,=======< 0x0803c1fe 63e0 b 0x803c2c8
| |`------> 0x0803c200 dff85805 ldr.w r0, [0x0803c760] ; [0x803c760:4]=0x2001e5f4
| | ||||| 0x0803c204 0078 ldrb r0, [r0]
| | ||||| 0x0803c206 401c adds r0, r0, 1
| | ||||| 0x0803c208 10f00f00 ands r0, r0, 0xf
| | ||||| 0x0803c20c dff84c15 ldr.w r1, [0x0803c760] ; [0x803c760:4]=0x2001e5f4
| | ||||| 0x0803c210 0870 strb r0, [r1]
| | ||||| 0x0803c212 dff84c05 ldr.w r0, [0x0803c766] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| | ||||| 0x0803c216 4078 ldrb r0, [r0, 1]
| | ||||| 0x0803c218 c007 lsls r0, r0, 0x1f
| |,======< 0x0803c21a 0ad4 bmi 0x803c232
| ||||||| 0x0803c21c dff83405 ldr.w r0, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803c220 0e21 movs r1, 0xe ; 14
| ||||||| 0x0803c222 0170 strb r1, [r0]
| ||||||| 0x0803c224 dff82c15 ldr.w r1, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803c228 dff82c05 ldr.w r0, [0x0803c75c] ; [0x803c75c:4]=0x2001e86e
| ||||||| 0x0803c22c 0068 ldr r0, [r0]
| ||||||| 0x0803c22e f4f7b5ff bl md380_OSMboxPost
| |`------> 0x0803c232 3548 ldr r0, [0x0803c30a] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| | ||||| 0x0803c234 0a21 movs r1, 0xa ; 10
| | ||||| 0x0803c236 0170 strb r1, [r0]
| | ||||| 0x0803c238 3848 ldr r0, [0x0803c31c] ; [0x803c31c:4]=0x2001e160
| | ||||| 0x0803c23a 90f82000 ldrb.w r0, [r0, 0x20]
| | ||||| 0x0803c23e c0f30110 ubfx r0, r0, 4, 2
| | ||||| 0x0803c242 c0b2 uxtb r0, r0
| | ||||| 0x0803c244 0028 cmp r0, 0
| |,======< 0x0803c246 0ad1 bne 0x803c25e
| ||||||| 0x0803c248 fcf7b6f8 bl func_383b8
| ||||||| 0x0803c24c dff81005 ldr.w r0, [0x0803c764] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803c250 4078 ldrb r0, [r0, 1]
| ||||||| 0x0803c252 10f0fe00 ands r0, r0, 0xfe
| ||||||| 0x0803c256 dff80815 ldr.w r1, [0x0803c766] ; [0x803c764:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803c25a 4870 strb r0, [r1, 1]
| ========< 0x0803c25c 25e0 b 0x803c2aa
| |`------> 0x0803c25e 2f48 ldr r0, [0x0803c31e] ; [0x803c31c:4]=0x2001e160
| | ||||| 0x0803c260 90f82000 ldrb.w r0, [r0, 0x20]
| | ||||| 0x0803c264 c0f30110 ubfx r0, r0, 4, 2
| | ||||| 0x0803c268 c0b2 uxtb r0, r0
| | ||||| 0x0803c26a 0228 cmp r0, 2 ; 2
| |,======< 0x0803c26c 1dd1 bne 0x803c2aa
| ||||||| 0x0803c26e 2b48 ldr r0, [0x0803c31e] ; [0x803c31c:4]=0x2001e160
| ||||||| 0x0803c270 90f82300 ldrb.w r0, [r0, 0x23]
| ||||||| 0x0803c274 0028 cmp r0, 0
| ========< 0x0803c276 18d0 beq 0x803c2aa
| ||||||| 0x0803c278 dff8e804 ldr.w r0, [0x0803c768] ; [0x803c768:4]=0x2001e79e
| ||||||| 0x0803c27c c088 ldrh r0, [r0, 6]
| ||||||| 0x0803c27e dff8e814 ldr.w r1, [0x0803c76e] ; [0x803c76c:4]=0x2001e1d0 msg_sms_hdr
| ||||||| 0x0803c282 0880 strh r0, [r1]
| ||||||| 0x0803c284 dff8e404 ldr.w r0, [0x0803c770] ; [0x803c770:4]=0x2001e1ac contact
| ||||||| 0x0803c288 dff8e414 ldr.w r1, [0x0803c774] ; [0x803c774:4]=0x2001e8a9 event5_buffer
| ||||||| 0x0803c28c 0968 ldr r1, [r1]
| ||||||| 0x0803c28e 0160 str r1, [r0]
| ||||||| 0x0803c290 2648 ldr r0, [0x0803c32c] ; [0x803c32c:4]=0x2001e8e3
| ||||||| 0x0803c292 0521 movs r1, 5 ; 5
| ||||||| 0x0803c294 0170 strb r1, [r0]
| ||||||| 0x0803c296 dff8dc04 ldr.w r0, [0x0803c77a] ; [0x803c778:4]=0x2001e638
| ||||||| 0x0803c29a 0121 movs r1, 1 ; 1
| ||||||| 0x0803c29c 0170 strb r1, [r0]
| ||||||| 0x0803c29e dff8d414 ldr.w r1, [0x0803c77a] ; [0x803c778:4]=0x2001e638
| ||||||| 0x0803c2a2 1a48 ldr r0, [0x0803c30e] ; [0x803c30c:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803c2a4 0068 ldr r0, [r0]
| ||||||| 0x0803c2a6 f4f779ff bl md380_OSMboxPost
| -`------> 0x0803c2aa 0de0 b 0x803c2c8
| --------> 0x0803c2ac dff8a404 ldr.w r0, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| | ||||| 0x0803c2b0 0e21 movs r1, 0xe ; 14
| | ||||| 0x0803c2b2 0170 strb r1, [r0]
| | ||||| 0x0803c2b4 dff89c14 ldr.w r1, [0x0803c758] ; [0x803c758:4]=0x2001e67c event2_mbox_poi_beep
| | ||||| 0x0803c2b8 dff89c04 ldr.w r0, [0x0803c75c] ; [0x803c75c:4]=0x2001e86e
| | ||||| 0x0803c2bc 0068 ldr r0, [r0]
| | ||||| 0x0803c2be f4f76dff bl md380_OSMboxPost
| | ||||| 0x0803c2c2 1148 ldr r0, [0x0803c30a] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| | ||||| 0x0803c2c4 0a21 movs r1, 0xa ; 10
| | ||||| 0x0803c2c6 0170 strb r1, [r0]
| `----`--> 0x0803c2c8 0e48 ldr r0, [0x0803c304] ; [0x803c304:4]=0x2001e8f4 msg_last_event
| ||| | 0x0803c2ca 0021 movs r1, 0
| ||| | 0x0803c2cc 0170 strb r1, [r0]
| ||| | 0x0803c2ce 1148 ldr r0, [0x0803c316] ; [0x803c314:4]=0x2001e604 q_status_4
| ||| | 0x0803c2d0 4078 ldrb r0, [r0, 1]
| ||| | 0x0803c2d2 10f0fb00 ands r0, r0, 0xfb
| ||| | 0x0803c2d6 0f49 ldr r1, [0x0803c316] ; [0x803c314:4]=0x2001e604 q_status_4
| ||| | 0x0803c2d8 4870 strb r0, [r1, 1]
| `=====< 0x0803c2da fff709bb b.w 0x803b8f0
| || `-> 0x0803c2de 0a48 ldr r0, [0x0803c30a] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| || 0x0803c2e0 0078 ldrb r0, [r0]
| || 0x0803c2e2 0728 cmp r0, 7 ; 7
| `====< 0x0803c2e4 7ff404ab bne.w 0x803b8f0
| | 0x0803c2e8 0748 ldr r0, [0x0803c308] ; [0x803c308:4]=0x2001e8f5 msg_status_flag1
| | 0x0803c2ea 0921 movs r1, 9 ; 9
| | 0x0803c2ec 0170 strb r1, [r0]
| | 0x0803c2ee 0548 ldr r0, [0x0803c306] ; [0x803c304:4]=0x2001e8f4 msg_last_event
| | 0x0803c2f0 0021 movs r1, 0
| | 0x0803c2f2 0170 strb r1, [r0]
| | 0x0803c2f4 0748 ldr r0, [0x0803c314] ; [0x803c314:4]=0x2001e604 q_status_4
| | 0x0803c2f6 4078 ldrb r0, [r0, 1]
| | 0x0803c2f8 10f0fb00 ands r0, r0, 0xfb
| | 0x0803c2fc 0549 ldr r1, [0x0803c314] ; [0x803c314:4]=0x2001e604 q_status_4
| | 0x0803c2fe 4870 strb r0, [r1, 1]
\ `===< 0x0803c300 fff7f6ba b.w 0x803b8f0
/ (fcn) CalledFromLongDispatcher 824
| Caller: ev5_17 ev5_rest SomeLongDispatcher
| CalledFromLongDispatcher ();
| 0x0803cfb4 80b5 push {r7, lr}
| 0x0803cfb6 dff83c0d ldr.w r0, [0x0803dcfa] ; [0x803dcf8:4]=0x2001e660 event4_mbox_poi
| 0x0803cfba 0078 ldrb r0, [r0]
| 0x0803cfbc 0528 cmp r0, 5 ; 5
| ,=< 0x0803cfbe 03d0 beq 0x803cfc8
| | 0x0803cfc0 0020 movs r0, 0
| | 0x0803cfc2 00f095f9 bl func_3d2f0
| ,==< 0x0803cfc6 00e0 b 0x803cfca
| |`-> 0x0803cfc8 0120 movs r0, 1 ; 1
| `--> 0x0803cfca c0b2 uxtb r0, r0
| 0x0803cfcc 0128 cmp r0, 1 ; 1
| ,=< 0x0803cfce 40f08081 bne.w 0x803d2d2
| | 0x0803cfd2 dff80c08 ldr.w r0, [0x0803d7e6] ; [0x803d7e4:4]=0x2001e8a8 beep_code_send
| | 0x0803cfd6 0078 ldrb r0, [r0]
| | 0x0803cfd8 10f07f00 ands r0, r0, 0x7f
| | 0x0803cfdc dff80018 ldr.w r1, [0x0803d7e4] ; [0x803d7e4:4]=0x2001e8a8 beep_code_send
| | 0x0803cfe0 0870 strb r0, [r1]
| | 0x0803cfe2 dff8fc07 ldr.w r0, [0x0803d7e6] ; [0x803d7e4:4]=0x2001e8a8 beep_code_send
| | 0x0803cfe6 4078 ldrb r0, [r0, 1]
| | 0x0803cfe8 10f0fe00 ands r0, r0, 0xfe
| | 0x0803cfec dff8f017 ldr.w r1, [0x0803d7e4] ; [0x803d7e4:4]=0x2001e8a8 beep_code_send
| | 0x0803cff0 4870 strb r0, [r1, 1]
| | 0x0803cff2 dff82c08 ldr.w r0, [0x0803d826] ; [0x803d824:4]=0x2001e650 sema1_poi
| | 0x0803cff6 0021 movs r1, 0
| | 0x0803cff8 0170 strb r1, [r0]
| | 0x0803cffa dff8e40b ldr.w r0, [0x0803dbe6] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| | 0x0803cffe 8078 ldrb r0, [r0, 2]
| | 0x0803d000 50f00400 orrs r0, r0, 4
| | 0x0803d004 dff8d81b ldr.w r1, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| | 0x0803d008 8870 strb r0, [r1, 2]
| | 0x0803d00a dff81808 ldr.w r0, [0x0803d82a] ; [0x803d828:4]=0x9d03b470
| | 0x0803d00e 0068 ldr r0, [r0]
| | 0x0803d010 02f018fc bl OSSemPost
| | 0x0803d014 dff8c80b ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| | 0x0803d018 4078 ldrb r0, [r0, 1]
| | 0x0803d01a 10f0bf00 ands r0, r0, 0xbf
| | 0x0803d01e dff8c01b ldr.w r1, [0x0803dbe6] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| | 0x0803d022 4870 strb r0, [r1, 1]
| | 0x0803d024 dff8b80b ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| | 0x0803d028 4078 ldrb r0, [r0, 1]
| | 0x0803d02a 10f0df00 ands r0, r0, 0xdf
| | 0x0803d02e dff8b01b ldr.w r1, [0x0803dbe6] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| | 0x0803d032 4870 strb r0, [r1, 1]
| | 0x0803d034 dff8bc07 ldr.w r0, [0x0803d7f8] ; [0x803d7f8:4]=0x2001e94b gui_opmode2
| | 0x0803d038 0068 ldr r0, [r0]
| | 0x0803d03a 02f003fc bl OSSemPost
| | 0x0803d03e 0a20 movs r0, 0xa ; 10
| | 0x0803d040 f6f738ff bl OSTimeDly
| | 0x0803d044 dff8ac0c ldr.w r0, [0x0803dcf8] ; [0x803dcf8:4]=0x2001e660 event4_mbox_poi
| | 0x0803d048 0078 ldrb r0, [r0]
| | 0x0803d04a 0528 cmp r0, 5 ; 5
| ,==< 0x0803d04c 00f0e080 beq.w 0x803d210
| || 0x0803d050 dff8a407 ldr.w r0, [0x0803d7fc] ; [0x803d7fc:4]=0x2001e658 event5_mbox_poi
| || 0x0803d054 0078 ldrb r0, [r0]
| || 0x0803d056 0428 cmp r0, 4 ; 4
| ,===< 0x0803d058 00f0da80 beq.w 0x803d210
| ||| 0x0803d05c dff8b007 ldr.w r0, [0x0803d814] ; [0x803d814:4]=0x2001cb54 msg_sms_hdr_prep
| ||| 0x0803d060 0068 ldr r0, [r0]
| ||| 0x0803d062 0002 lsls r0, r0, 8
| ||| 0x0803d064 000a lsrs r0, r0, 8
| ||| 0x0803d066 dff87c1b ldr.w r1, [0x0803dbea] ; [0x803dbe8:4]=0x2001e80e
| ||| 0x0803d06a 0860 str r0, [r1]
| ||| 0x0803d06c dff8a007 ldr.w r0, [0x0803d814] ; [0x803d814:4]=0x2001cb54 msg_sms_hdr_prep
| ||| 0x0803d070 c078 ldrb r0, [r0, 3]
| ||| 0x0803d072 0001 lsls r0, r0, 4
| ||| 0x0803d074 10f07f00 ands r0, r0, 0x7f
| ||| 0x0803d078 9c49 ldr r1, [0x0803d2ec] ; [0x803d2ec:4]=0x2001e895 msg_sms_flags_shifted
| ||| 0x0803d07a 0870 strb r0, [r1]
| ||| 0x0803d07c 9b48 ldr r0, [0x0803d2ec] ; [0x803d2ec:4]=0x2001e895 msg_sms_flags_shifted
| ||| 0x0803d07e 0078 ldrb r0, [r0]
| ||| 0x0803d080 0028 cmp r0, 0
| ,====< 0x0803d082 17d1 bne 0x803d0b4
| |||| 0x0803d084 e321 movs r1, 0xe3 ; 227
| |||| 0x0803d086 4020 movs r0, 0x40 ; '@' ; 64
| |||| 0x0803d088 02f07cff bl c5000_spi0_writereg
| |||| 0x0803d08c fff728fd bl c5000_set_local_addr
| |||| 0x0803d090 b221 movs r1, 0xb2 ; 178
| |||| 0x0803d092 0120 movs r0, 1 ; 1
| |||| 0x0803d094 02f076ff bl c5000_spi0_writereg
| |||| 0x0803d098 dff8580c ldr.w r0, [0x0803dcf8] ; [0x803dcf8:4]=0x2001e660 event4_mbox_poi
| |||| 0x0803d09c 0521 movs r1, 5 ; 5
| |||| 0x0803d09e 0170 strb r1, [r0]
| |||| 0x0803d0a0 dff8440b ldr.w r0, [0x0803dbec] ; [0x803dbec:4]=0x2001e94d gui_opmode1
| |||| 0x0803d0a4 4ff41671 mov.w r1, 0x258 ; 600
| |||| 0x0803d0a8 0180 strh r1, [r0]
| |||| 0x0803d0aa dff8400b ldr.w r0, [0x0803dbf2] ; [0x803dbf0:4]=0xf8dfb580
| |||| 0x0803d0ae 9121 movs r1, 0x91 ; 145
| |||| 0x0803d0b0 0170 strb r1, [r0]
| ,=====< 0x0803d0b2 1ae1 b 0x803d2ea
| |`----> 0x0803d0b4 8d48 ldr r0, [0x0803d2ec] ; [0x803d2ec:4]=0x2001e895 msg_sms_flags_shifted
| | ||| 0x0803d0b6 0078 ldrb r0, [r0]
| | ||| 0x0803d0b8 2028 cmp r0, 0x20 ; 32
| |,====< 0x0803d0ba 1fd1 bne 0x803d0fc
| ||||| 0x0803d0bc dff81c07 ldr.w r0, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||||| 0x0803d0c0 8078 ldrb r0, [r0, 2]
| ||||| 0x0803d0c2 c0f38010 ubfx r0, r0, 6, 1
| ||||| 0x0803d0c6 c007 lsls r0, r0, 0x1f
| ,======< 0x0803d0c8 18d5 bpl 0x803d0fc
| |||||| 0x0803d0ca dff8b80b ldr.w r0, [0x0803dc8a] ; [0x803dc88:4]=0x2001e8ab
| |||||| 0x0803d0ce 0078 ldrb r0, [r0]
| |||||| 0x0803d0d0 0728 cmp r0, 7 ; 7
| ,=======< 0x0803d0d2 13d0 beq 0x803d0fc
| ||||||| 0x0803d0d4 dff81c0c ldr.w r0, [0x0803dcf8] ; [0x803dcf8:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x0803d0d8 0421 movs r1, 4 ; 4
| ||||||| 0x0803d0da 0170 strb r1, [r0]
| ||||||| 0x0803d0dc dff8080b ldr.w r0, [0x0803dbec] ; [0x803dbec:4]=0x2001e94d gui_opmode1
| ||||||| 0x0803d0e0 4821 movs r1, 0x48 ; 'H' ; 72
| ||||||| 0x0803d0e2 0180 strh r1, [r0]
| ||||||| 0x0803d0e4 dff8a00b ldr.w r0, [0x0803dc8c] ; [0x803dc8c:4]=0x2001e898 simplex_or_repeater_flagword
| ||||||| 0x0803d0e8 1d21 movs r1, 0x1d ; 29
| ||||||| 0x0803d0ea 0170 strb r1, [r0]
| ||||||| 0x0803d0ec dff8981b ldr.w r1, [0x0803dc8c] ; [0x803dc8c:4]=0x2001e898 simplex_or_repeater_flagword
| ||||||| 0x0803d0f0 dff8040c ldr.w r0, [0x0803dcfc] ; [0x803dcfc:4]=0x2001e73c
| ||||||| 0x0803d0f4 0068 ldr r0, [r0]
| ||||||| 0x0803d0f6 f4f751f8 bl md380_OSMboxPost
| ========< 0x0803d0fa f6e0 b 0x803d2ea
| ``-`----> 0x0803d0fc dff88c0b ldr.w r0, [func_3dc90] ; [0x803dc90:4]=0xf8dfb580
| | ||| 0x0803d100 0078 ldrb r0, [r0]
| | ||| 0x0803d102 0128 cmp r0, 1 ; 1
| |,====< 0x0803d104 04d1 bne 0x803d110
| ||||| 0x0803d106 c321 movs r1, 0xc3 ; 195
| ||||| 0x0803d108 4020 movs r0, 0x40 ; '@' ; 64
| ||||| 0x0803d10a 02f03bff bl c5000_spi0_writereg
| ,======< 0x0803d10e 03e0 b 0x803d118
| ||`----> 0x0803d110 e321 movs r1, 0xe3 ; 227
| || ||| 0x0803d112 4020 movs r0, 0x40 ; '@' ; 64
| || ||| 0x0803d114 02f036ff bl c5000_spi0_writereg
| `------> 0x0803d118 fff7e2fc bl c5000_set_local_addr
| | ||| 0x0803d11c dff8d40b ldr.w r0, [0x0803dcf8] ; [0x803dcf8:4]=0x2001e660 event4_mbox_poi
| | ||| 0x0803d120 0521 movs r1, 5 ; 5
| | ||| 0x0803d122 0170 strb r1, [r0]
| | ||| 0x0803d124 dff8c00a ldr.w r0, [0x0803dbec] ; [0x803dbec:4]=0x2001e94d gui_opmode1
| | ||| 0x0803d128 4ff41671 mov.w r1, 0x258 ; 600
| | ||| 0x0803d12c 0180 strh r1, [r0]
| | ||| 0x0803d12e dff8bc0a ldr.w r0, [0x0803dbf2] ; [0x803dbf0:4]=0xf8dfb580
| | ||| 0x0803d132 9121 movs r1, 0x91 ; 145
| | ||| 0x0803d134 0170 strb r1, [r0]
| | ||| 0x0803d136 dff84c0b ldr.w r0, [0x0803dc8a] ; [0x803dc88:4]=0x2001e8ab
| | ||| 0x0803d13a 0078 ldrb r0, [r0]
| | ||| 0x0803d13c 0728 cmp r0, 7 ; 7
| |,====< 0x0803d13e 0bd1 bne 0x803d158
| ||||| 0x0803d140 dff8b80b ldr.w r0, [0x0803dd00] ; [0x803dd00:4]=0x2001e8b7
| ||||| 0x0803d144 4078 ldrb r0, [r0, 1]
| ||||| 0x0803d146 dff8b81b ldr.w r1, [0x0803dd06] ; [0x803dd04:4]=0x2001e8e3
| ||||| 0x0803d14a 0978 ldrb r1, [r1]
| ||||| 0x0803d14c 4843 muls r0, r1, r0
| ||||| 0x0803d14e 0a21 movs r1, 0xa ; 10
| ||||| 0x0803d150 4843 muls r0, r1, r0
| ||||| 0x0803d152 f7f759f8 bl func_34208
| ,======< 0x0803d156 19e0 b 0x803d18c
| ||`----> 0x0803d158 dff8280b ldr.w r0, [0x0803dc88] ; [0x803dc88:4]=0x2001e8ab
| || ||| 0x0803d15c 0078 ldrb r0, [r0]
| || ||| 0x0803d15e 0128 cmp r0, 1 ; 1
| ||,====< 0x0803d160 04d0 beq 0x803d16c
| |||||| 0x0803d162 dff8a00b ldr.w r0, [0x0803dd0a] ; [0x803dd08:4]=0x2001e160
| |||||| 0x0803d166 0078 ldrb r0, [r0]
| |||||| 0x0803d168 0528 cmp r0, 5 ; 5
| ,=======< 0x0803d16a 08d1 bne 0x803d17e
| |||`----> 0x0803d16c dff8980b ldr.w r0, [msg_process_sms] ; [0x803dd0c:4]=0x2000b580
| ||| ||| 0x0803d170 90f82300 ldrb.w r0, [r0, 0x23]
| ||| ||| 0x0803d174 0a21 movs r1, 0xa ; 10
| ||| ||| 0x0803d176 4843 muls r0, r1, r0
| ||| ||| 0x0803d178 f7f746f8 bl func_34208
| |||,====< 0x0803d17c 06e0 b 0x803d18c
| `-------> 0x0803d17e dff85c06 ldr.w r0, [0x0803d7e2] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| |||||| 0x0803d182 007a ldrb r0, [r0, 8]
| |||||| 0x0803d184 9621 movs r1, 0x96 ; 150
| |||||| 0x0803d186 4843 muls r0, r1, r0
| |||||| 0x0803d188 f7f73ef8 bl func_34208
| `-`----> 0x0803d18c dff84804 ldr.w r0, [0x0803d5dc] ; [0x803d5dc:4]=0x2001e6b8
| | ||| 0x0803d190 4078 ldrb r0, [r0, 1]
| | ||| 0x0803d192 c0b2 uxtb r0, r0
| | ||| 0x0803d194 8009 lsrs r0, r0, 6
| | ||| 0x0803d196 0128 cmp r0, 1 ; 1
| |,====< 0x0803d198 06d0 beq 0x803d1a8
| ||||| 0x0803d19a dff83c04 ldr.w r0, [0x0803d5de] ; [0x803d5dc:4]=0x2001e6b8
| ||||| 0x0803d19e 4078 ldrb r0, [r0, 1]
| ||||| 0x0803d1a0 c0b2 uxtb r0, r0
| ||||| 0x0803d1a2 8009 lsrs r0, r0, 6
| ||||| 0x0803d1a4 0328 cmp r0, 3 ; 3
| ,======< 0x0803d1a6 1ed1 bne 0x803d1e6
| ||`----> 0x0803d1a8 dff8580b ldr.w r0, [0x0803dd08] ; [0x803dd08:4]=0x2001e160
| || ||| 0x0803d1ac 0078 ldrb r0, [r0]
| || ||| 0x0803d1ae 0328 cmp r0, 3 ; 3
| ||,====< 0x0803d1b0 19d0 beq 0x803d1e6
| |||||| 0x0803d1b2 dff8500b ldr.w r0, [0x0803dd0a] ; [0x803dd08:4]=0x2001e160
| |||||| 0x0803d1b6 0078 ldrb r0, [r0]
| |||||| 0x0803d1b8 0428 cmp r0, 4 ; 4
| ,=======< 0x0803d1ba 14d0 beq 0x803d1e6
| ||||||| 0x0803d1bc dff8440b ldr.w r0, [0x0803dd08] ; [0x803dd08:4]=0x2001e160
| ||||||| 0x0803d1c0 0078 ldrb r0, [r0]
| ||||||| 0x0803d1c2 0628 cmp r0, 6 ; 6
| ========< 0x0803d1c4 0fd0 beq 0x803d1e6
| ||||||| 0x0803d1c6 dff8bc0a ldr.w r0, [0x0803dc8a] ; [0x803dc88:4]=0x2001e8ab
| ||||||| 0x0803d1ca 0078 ldrb r0, [r0]
| ||||||| 0x0803d1cc 0728 cmp r0, 7 ; 7
| ========< 0x0803d1ce 0ad0 beq 0x803d1e6
| ||||||| 0x0803d1d0 dff81006 ldr.w r0, [0x0803d7e8] ; [0x803d7e8:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803d1d4 1121 movs r1, 0x11 ; 17
| ||||||| 0x0803d1d6 0170 strb r1, [r0]
| ||||||| 0x0803d1d8 dff80816 ldr.w r1, [0x0803d7e8] ; [0x803d7e8:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803d1dc dff80806 ldr.w r0, [0x0803d7ec] ; [0x803d7ec:4]=0x2001e614
| ||||||| 0x0803d1e0 0068 ldr r0, [r0]
| ||||||| 0x0803d1e2 f3f7dbff bl md380_OSMboxPost
| ``-`----> 0x0803d1e6 dff81c0b ldr.w r0, [0x0803dd0a] ; [0x803dd08:4]=0x2001e160
| | ||| 0x0803d1ea 0078 ldrb r0, [r0]
| | ||| 0x0803d1ec 0628 cmp r0, 6 ; 6
| |,====< 0x0803d1ee 7cd1 bne 0x803d2ea
| ||||| 0x0803d1f0 4221 movs r1, 0x42 ; 'B' ; 66
| ||||| 0x0803d1f2 0e20 movs r0, 0xe ; 14
| ||||| 0x0803d1f4 02f0c6fe bl c5000_spi0_writereg
| ||||| 0x0803d1f8 dff8e805 ldr.w r0, [0x0803d7e8] ; [0x803d7e8:4]=0x2001e67c event2_mbox_poi_beep
| ||||| 0x0803d1fc 2921 movs r1, 0x29 ; ')' ; 41
| ||||| 0x0803d1fe 0170 strb r1, [r0]
| ||||| 0x0803d200 dff8e015 ldr.w r1, [0x0803d7e8] ; [0x803d7e8:4]=0x2001e67c event2_mbox_poi_beep
| ||||| 0x0803d204 dff8e005 ldr.w r0, [0x0803d7ec] ; [0x803d7ec:4]=0x2001e614
| ||||| 0x0803d208 0068 ldr r0, [r0]
| ||||| 0x0803d20a f3f7c7ff bl md380_OSMboxPost
| ,======< 0x0803d20e 6ce0 b 0x803d2ea
| |||``--> 0x0803d210 dff8780a ldr.w r0, [func_3dc90] ; [0x803dc90:4]=0xf8dfb580
| ||| | 0x0803d214 0078 ldrb r0, [r0]
| ||| | 0x0803d216 0128 cmp r0, 1 ; 1
| ||| ,==< 0x0803d218 04d1 bne 0x803d224
| ||| || 0x0803d21a c321 movs r1, 0xc3 ; 195
| ||| || 0x0803d21c 4020 movs r0, 0x40 ; '@' ; 64
| ||| || 0x0803d21e 02f0b1fe bl c5000_spi0_writereg
| |||,===< 0x0803d222 03e0 b 0x803d22c
| ||||`--> 0x0803d224 e321 movs r1, 0xe3 ; 227
| |||| | 0x0803d226 4020 movs r0, 0x40 ; '@' ; 64
| |||| | 0x0803d228 02f0acfe bl c5000_spi0_writereg
| |||`---> 0x0803d22c fff758fc bl c5000_set_local_addr
| ||| | 0x0803d230 dff8c00a ldr.w r0, [0x0803dcf8] ; [0x803dcf8:4]=0x2001e660 event4_mbox_poi
| ||| | 0x0803d234 0521 movs r1, 5 ; 5
| ||| | 0x0803d236 0170 strb r1, [r0]
| ||| | 0x0803d238 dff8ac09 ldr.w r0, [0x0803dbec] ; [0x803dbec:4]=0x2001e94d gui_opmode1
| ||| | 0x0803d23c 4ff41671 mov.w r1, 0x258 ; 600
| ||| | 0x0803d240 0180 strh r1, [r0]
| ||| | 0x0803d242 dff8a809 ldr.w r0, [0x0803dbf2] ; [0x803dbf0:4]=0xf8dfb580
| ||| | 0x0803d246 9121 movs r1, 0x91 ; 145
| ||| | 0x0803d248 0170 strb r1, [r0]
| ||| | 0x0803d24a dff89005 ldr.w r0, [0x0803d7e2] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||| | 0x0803d24e 007a ldrb r0, [r0, 8]
| ||| | 0x0803d250 9621 movs r1, 0x96 ; 150
| ||| | 0x0803d252 4843 muls r0, r1, r0
| ||| | 0x0803d254 f6f7d8ff bl func_34208
| ||| | 0x0803d258 dff87c03 ldr.w r0, [0x0803d5dc] ; [0x803d5dc:4]=0x2001e6b8
| ||| | 0x0803d25c 4078 ldrb r0, [r0, 1]
| ||| | 0x0803d25e c0b2 uxtb r0, r0
| ||| | 0x0803d260 8009 lsrs r0, r0, 6
| ||| | 0x0803d262 0128 cmp r0, 1 ; 1
| ||| ,==< 0x0803d264 06d0 beq 0x803d274
| ||| || 0x0803d266 dff87003 ldr.w r0, [0x0803d5de] ; [0x803d5dc:4]=0x2001e6b8
| ||| || 0x0803d26a 4078 ldrb r0, [r0, 1]
| ||| || 0x0803d26c c0b2 uxtb r0, r0
| ||| || 0x0803d26e 8009 lsrs r0, r0, 6
| ||| || 0x0803d270 0328 cmp r0, 3 ; 3
| |||,===< 0x0803d272 19d1 bne 0x803d2a8
| ||||`--> 0x0803d274 dff88c0a ldr.w r0, [0x0803dd08] ; [0x803dd08:4]=0x2001e160
| |||| | 0x0803d278 0078 ldrb r0, [r0]
| |||| | 0x0803d27a 0328 cmp r0, 3 ; 3
| ||||,==< 0x0803d27c 14d0 beq 0x803d2a8
| |||||| 0x0803d27e dff8840a ldr.w r0, [0x0803dd0a] ; [0x803dd08:4]=0x2001e160
| |||||| 0x0803d282 0078 ldrb r0, [r0]
| |||||| 0x0803d284 0428 cmp r0, 4 ; 4
| ,=======< 0x0803d286 0fd0 beq 0x803d2a8
| ||||||| 0x0803d288 dff8780a ldr.w r0, [0x0803dd08] ; [0x803dd08:4]=0x2001e160
| ||||||| 0x0803d28c 0078 ldrb r0, [r0]
| ||||||| 0x0803d28e 0628 cmp r0, 6 ; 6
| ========< 0x0803d290 0ad0 beq 0x803d2a8
| ||||||| 0x0803d292 dff85005 ldr.w r0, [0x0803d7ea] ; [0x803d7e8:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803d296 1121 movs r1, 0x11 ; 17
| ||||||| 0x0803d298 0170 strb r1, [r0]
| ||||||| 0x0803d29a dff84815 ldr.w r1, [0x0803d7ea] ; [0x803d7e8:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0803d29e dff84805 ldr.w r0, [0x0803d7ee] ; [0x803d7ec:4]=0x2001e614
| ||||||| 0x0803d2a2 0068 ldr r0, [r0]
| ||||||| 0x0803d2a4 f3f77aff bl md380_OSMboxPost
| `---``--> 0x0803d2a8 dff8580a ldr.w r0, [0x0803dd08] ; [0x803dd08:4]=0x2001e160
| ||| | 0x0803d2ac 0078 ldrb r0, [r0]
| ||| | 0x0803d2ae 0628 cmp r0, 6 ; 6
| ||| ,==< 0x0803d2b0 1bd1 bne 0x803d2ea
| ||| || 0x0803d2b2 4221 movs r1, 0x42 ; 'B' ; 66
| ||| || 0x0803d2b4 0e20 movs r0, 0xe ; 14
| ||| || 0x0803d2b6 02f065fe bl c5000_spi0_writereg
| ||| || 0x0803d2ba dff82805 ldr.w r0, [0x0803d7ea] ; [0x803d7e8:4]=0x2001e67c event2_mbox_poi_beep
| ||| || 0x0803d2be 2921 movs r1, 0x29 ; ')' ; 41
| ||| || 0x0803d2c0 0170 strb r1, [r0]
| ||| || 0x0803d2c2 dff82015 ldr.w r1, [0x0803d7ea] ; [0x803d7e8:4]=0x2001e67c event2_mbox_poi_beep
| ||| || 0x0803d2c6 dff82005 ldr.w r0, [0x0803d7ee] ; [0x803d7ec:4]=0x2001e614
| ||| || 0x0803d2ca 0068 ldr r0, [r0]
| ||| || 0x0803d2cc f3f766ff bl md380_OSMboxPost
| |||,===< 0x0803d2d0 0be0 b 0x803d2ea
| |||||`-> 0x0803d2d2 c0b2 uxtb r0, r0
| ||||| 0x0803d2d4 0028 cmp r0, 0
| |||||,=< 0x0803d2d6 04d1 bne 0x803d2e2
| |||||| 0x0803d2d8 dff8180a ldr.w r0, [0x0803dcf8] ; [0x803dcf8:4]=0x2001e660 event4_mbox_poi
| |||||| 0x0803d2dc 0821 movs r1, 8 ; 8
| |||||| 0x0803d2de 0170 strb r1, [r0]
| ,=======< 0x0803d2e0 03e0 b 0x803d2ea
| ||||||`-> 0x0803d2e2 dff8100a ldr.w r0, [0x0803dcfa] ; [0x803dcf8:4]=0x2001e660 event4_mbox_poi
| |||||| 0x0803d2e6 0321 movs r1, 3 ; 3
| |||||| 0x0803d2e8 0170 strb r1, [r0]
\ ``````--> 0x0803d2ea 01bd pop {r0, pc}
/ (fcn) CallsReadChannelSwitch 136
| Caller: Something_using_Channel_Number mainloop_entry
| CallsReadChannelSwitch ();
| 0x0804fd04 80b5 push {r7, lr}
| 0x0804fd06 2d48 ldr r0, [0x0804fdbe] ; [0x804fdbc:4]=0x2001e5f0 radio_status_1
| 0x0804fd08 4078 ldrb r0, [r0, 1]
| 0x0804fd0a c007 lsls r0, r0, 0x1f
| ,=< 0x0804fd0c 3dd4 bmi 0x804fd8a
| | 0x0804fd0e 2c48 ldr r0, [0x0804fdc2] ; [0x804fdc0:4]=0x2001e8f5 msg_status_flag1
| | 0x0804fd10 0078 ldrb r0, [r0]
| | 0x0804fd12 401e subs r0, r0, 1
| | 0x0804fd14 c0b2 uxtb r0, r0
| | 0x0804fd16 0828 cmp r0, 8 ; 8
| ,==< 0x0804fd18 04d2 bhs 0x804fd24
| || 0x0804fd1a 2a48 ldr r0, [0x0804fdc6] ; [0x804fdc4:4]=0x2001e895 msg_sms_flags_shifted
| || 0x0804fd1c 0078 ldrb r0, [r0]
| || 0x0804fd1e 0f21 movs r1, 0xf ; 15
| || 0x0804fd20 0842 tst r0, r1
| ,===< 0x0804fd22 32d0 beq 0x804fd8a
| |`--> 0x0804fd24 fff786ff bl Read_Channel_Switch_maybe
| | | 0x0804fd28 2749 ldr r1, [0x0804fdc8] ; [0x804fdc8:4]=0x2001e8c1 channel_num
| | | 0x0804fd2a 0978 ldrb r1, [r1]
| | | 0x0804fd2c c0b2 uxtb r0, r0
| | | 0x0804fd2e 8842 cmp r0, r1
| |,==< 0x0804fd30 03d1 bne 0x804fd3a
| ||| 0x0804fd32 2648 ldr r0, [0x0804fdce] ; [0x804fdcc:4]=0x2001e868
| ||| 0x0804fd34 0021 movs r1, 0
| ||| 0x0804fd36 0170 strb r1, [r0]
| ,====< 0x0804fd38 27e0 b 0x804fd8a
| ||`--> 0x0804fd3a 2549 ldr r1, [0x0804fdd2] ; [0x804fdd0:4]=0x2001e867
| || | 0x0804fd3c 0978 ldrb r1, [r1]
| || | 0x0804fd3e c0b2 uxtb r0, r0
| || | 0x0804fd40 8842 cmp r0, r1
| ||,==< 0x0804fd42 08d0 beq 0x804fd56
| |||| 0x0804fd44 2249 ldr r1, [0x0804fdd0] ; [0x804fdd0:4]=0x2001e867
| |||| 0x0804fd46 0870 strb r0, [r1]
| |||| 0x0804fd48 2048 ldr r0, [0x0804fdcc] ; [0x804fdcc:4]=0x2001e868
| |||| 0x0804fd4a 0021 movs r1, 0
| |||| 0x0804fd4c 0170 strb r1, [r0]
| |||| 0x0804fd4e 2148 ldr r0, [0x0804fdd6] ; [0x804fdd4:4]=0x2001e905
| |||| 0x0804fd50 0021 movs r1, 0
| |||| 0x0804fd52 0170 strb r1, [r0]
| ,=====< 0x0804fd54 19e0 b 0x804fd8a
| |||`--> 0x0804fd56 1d49 ldr r1, [0x0804fdce] ; [0x804fdcc:4]=0x2001e868
| ||| | 0x0804fd58 0978 ldrb r1, [r1]
| ||| | 0x0804fd5a 491c adds r1, r1, 1
| ||| | 0x0804fd5c 1b4a ldr r2, [0x0804fdcc] ; [0x804fdcc:4]=0x2001e868
| ||| | 0x0804fd5e 1170 strb r1, [r2]
| ||| | 0x0804fd60 1a49 ldr r1, [0x0804fdcc] ; [0x804fdcc:4]=0x2001e868
| ||| | 0x0804fd62 0978 ldrb r1, [r1]
| ||| | 0x0804fd64 0a29 cmp r1, 0xa ; 10
| |||,==< 0x0804fd66 10d3 blo 0x804fd8a
| ||||| 0x0804fd68 1849 ldr r1, [0x0804fdcc] ; [0x804fdcc:4]=0x2001e868
| ||||| 0x0804fd6a 0022 movs r2, 0
| ||||| 0x0804fd6c 0a70 strb r2, [r1]
| ||||| 0x0804fd6e 1649 ldr r1, [0x0804fdca] ; [0x804fdc8:4]=0x2001e8c1 channel_num
| ||||| 0x0804fd70 0870 strb r0, [r1]
| ||||| 0x0804fd72 1948 ldr r0, [0x0804fdda] ; [0x804fdd8:4]=0x2001e5ec base_for_longpress_struct
| ||||| 0x0804fd74 0078 ldrb r0, [r0]
| ||||| 0x0804fd76 50f00100 orrs r0, r0, 1
| ||||| 0x0804fd7a 1749 ldr r1, [0x0804fdda] ; [0x804fdd8:4]=0x2001e5ec base_for_longpress_struct
| ||||| 0x0804fd7c 0870 strb r0, [r1]
| ||||| 0x0804fd7e 0f48 ldr r0, [0x0804fdbe] ; [0x804fdbc:4]=0x2001e5f0 radio_status_1
| ||||| 0x0804fd80 0078 ldrb r0, [r0]
| ||||| 0x0804fd82 50f08000 orrs r0, r0, 0x80
| ||||| 0x0804fd86 0d49 ldr r1, [0x0804fdbe] ; [0x804fdbc:4]=0x2001e5f0 radio_status_1
| ||||| 0x0804fd88 0870 strb r0, [r1]
\ `````-> 0x0804fd8a 01bd pop {r0, pc}
/ (fcn) md380_f_4137 1908
| Caller: md380_f_4520
| md380_f_4137 ();
| 0x0802dfbc 10b5 push {r4, lr}
| 0x0802dfbe dff8600b ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| 0x0802dfc2 0078 ldrb r0, [r0]
| 0x0802dfc4 1128 cmp r0, 0x11 ; 17
| ,=< 0x0802dfc6 80f0b283 bhs.w 0x802e72e
| | 0x0802dfca dff8f00b ldr.w r0, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| | 0x0802dfce 0078 ldrb r0, [r0]
| | 0x0802dfd0 0028 cmp r0, 0
| ,==< 0x0802dfd2 40f06183 bne.w 0x802e698
| || 0x0802dfd6 dff84c0b ldr.w r0, [0x0802eb2a] ; [0x802eb28:4]=0x2001e892 gui_opmode3
| || 0x0802dfda 4078 ldrb r0, [r0, 1]
| || 0x0802dfdc c007 lsls r0, r0, 0x1f
| ,===< 0x0802dfde 40f1fa80 bpl.w 0x802e1d6
| ||| 0x0802dfe2 dff8380b ldr.w r0, [0x0802eb22] ; [0x802eb20:4]=0x2001e890 kb_keycode
| ||| 0x0802dfe6 0078 ldrb r0, [r0]
| ||| 0x0802dfe8 0128 cmp r0, 1 ; 1
| ,====< 0x0802dfea 05d0 beq 0x802dff8
| |||| 0x0802dfec dff82c0b ldr.w r0, [0x0802eb20] ; [0x802eb20:4]=0x2001e890 kb_keycode
| |||| 0x0802dff0 0078 ldrb r0, [r0]
| |||| 0x0802dff2 0228 cmp r0, 2 ; 2
| ,=====< 0x0802dff4 40f0ef80 bne.w 0x802e1d6
| |`----> 0x0802dff8 dff82c0b ldr.w r0, [0x0802eb2c] ; [0x802eb2c:4]=0x2001e8ed
| | ||| 0x0802dffc 0078 ldrb r0, [r0]
| | ||| 0x0802dffe 0228 cmp r0, 2 ; 2
| |,====< 0x0802e000 00f0e980 beq.w 0x802e1d6
| ||||| 0x0802e004 dff8240b ldr.w r0, [0x0802eb30] ; [0x802eb30:4]=0x2001e891 keycode_old
| ||||| 0x0802e008 0078 ldrb r0, [r0]
| ||||| 0x0802e00a 0328 cmp r0, 3 ; 3
| ,======< 0x0802e00c 06d1 bne 0x802e01c
| |||||| 0x0802e00e dff8a407 ldr.w r0, [0x0802e7ba] ; [0x802e7b8:4]=0x2001e5f4
| |||||| 0x0802e012 0078 ldrb r0, [r0]
| |||||| 0x0802e014 10f00300 ands r0, r0, 3
| |||||| 0x0802e018 0128 cmp r0, 1 ; 1
| ,=======< 0x0802e01a 07d0 beq 0x802e02c
| |`------> 0x0802e01c dff89407 ldr.w r0, [0x0802e7b8] ; [0x802e7b8:4]=0x2001e5f4
| | ||||| 0x0802e020 0078 ldrb r0, [r0]
| | ||||| 0x0802e022 10f00300 ands r0, r0, 3
| | ||||| 0x0802e026 0228 cmp r0, 2 ; 2
| |,======< 0x0802e028 40f08183 bne.w 0x802e72e
| `-------> 0x0802e02c dff8f00a ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e030 0078 ldrb r0, [r0]
| |||||| 0x0802e032 0a28 cmp r0, 0xa ; 10
| ,=======< 0x0802e034 42d2 bhs 0x802e0bc
| ||||||| 0x0802e036 dff8e80a ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e03a 0078 ldrb r0, [r0]
| ||||||| 0x0802e03c 10f13004 adds.w r4, r0, 0x30
| ||||||| 0x0802e040 dff8ec0a ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e044 dff8d81a ldr.w r1, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e048 0978 ldrb r1, [r1]
| ||||||| 0x0802e04a 0170 strb r1, [r0]
| --------> 0x0802e04c dff8700b ldr.w r0, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e050 2821 movs r1, 0x28 ; '(' ; 40
| ||||||| 0x0802e052 0170 strb r1, [r0]
| ||||||| 0x0802e054 dff8681b ldr.w r1, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e058 dff8580b ldr.w r0, [0x0802ebb8] ; [0x802ebb8:4]=0x2001e60c
| ||||||| 0x0802e05c 0068 ldr r0, [r0]
| ||||||| 0x0802e05e 03f09df8 bl md380_OSMboxPost
| ||||||| 0x0802e062 dff8600b ldr.w r0, [0x0802ebca] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e066 0078 ldrb r0, [r0]
| ||||||| 0x0802e068 dff85c1b ldr.w r1, [0x0802ebcc] ; [0x802ebcc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0802e06c 0978 ldrb r1, [r1]
| ||||||| 0x0802e06e 8842 cmp r0, r1
| ========< 0x0802e070 80f05d83 bhs.w 0x802e72e
| ||||||| 0x0802e074 dff83c07 ldr.w r0, [0x0802e7b8] ; [0x802e7b8:4]=0x2001e5f4
| ||||||| 0x0802e078 0078 ldrb r0, [r0]
| ||||||| 0x0802e07a 10f00300 ands r0, r0, 3
| ||||||| 0x0802e07e 0128 cmp r0, 1 ; 1
| ========< 0x0802e080 40f05583 bne.w 0x802e72e
| ||||||| 0x0802e084 f9f7f4f8 bl func_27270
| ||||||| 0x0802e088 dff8400b ldr.w r0, [0x0802ebd0] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e08c 0078 ldrb r0, [r0]
| ||||||| 0x0802e08e 401c adds r0, r0, 1
| ||||||| 0x0802e090 dff8381b ldr.w r1, [0x0802ebd0] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e094 0870 strb r0, [r1]
| ||||||| 0x0802e096 dff82c0b ldr.w r0, [0x0802ebca] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e09a 0078 ldrb r0, [r0]
| ||||||| 0x0802e09c 401c adds r0, r0, 1
| ||||||| 0x0802e09e dff8241b ldr.w r1, [0x0802ebca] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e0a2 0870 strb r0, [r1]
| ||||||| 0x0802e0a4 dff8240b ldr.w r0, [0x0802ebd0] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e0a8 0078 ldrb r0, [r0]
| ||||||| 0x0802e0aa dff8241b ldr.w r1, [0x0802ebd6] ; [0x802ebd4:4]=0xf8dfb580
| ||||||| 0x0802e0ae 0968 ldr r1, [r1]
| ||||||| 0x0802e0b0 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0802e0b4 20f8024c strh r4, [r0, -0x2]
| ||||||| ;-- kb_enter_alpha:
| ||||||| 0x0802e0b8 0020 movs r0, 0
| ========< 0x0802e0ba 4ce0 b 0x802e156
| `-------> 0x0802e0bc dff8600a ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e0c0 0078 ldrb r0, [r0]
| |||||| 0x0802e0c2 0e28 cmp r0, 0xe ; 14
| ,=======< 0x0802e0c4 05d1 bne 0x802e0d2
| ||||||| 0x0802e0c6 2a24 movs r4, 0x2a ; '*' ; 42
| ||||||| 0x0802e0c8 dff8640a ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e0cc 0e21 movs r1, 0xe ; 14
| ||||||| 0x0802e0ce 0170 strb r1, [r0]
| ========< 0x0802e0d0 bce7 b 0x802e04c
| `-------> 0x0802e0d2 dff84c0a ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e0d6 0078 ldrb r0, [r0]
| |||||| 0x0802e0d8 0f28 cmp r0, 0xf ; 15
| ,=======< 0x0802e0da 05d1 bne 0x802e0e8
| ||||||| 0x0802e0dc 2324 movs r4, 0x23 ; '#' ; 35
| ||||||| 0x0802e0de dff8500a ldr.w r0, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e0e2 0f21 movs r1, 0xf ; 15
| ||||||| 0x0802e0e4 0170 strb r1, [r0]
| ========< 0x0802e0e6 b1e7 b 0x802e04c
| `-------> 0x0802e0e8 dff8340a ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e0ec 0078 ldrb r0, [r0]
| |||||| 0x0802e0ee 0b28 cmp r0, 0xb ; 11
| ,=======< 0x0802e0f0 05d1 bne 0x802e0fe
| ||||||| 0x0802e0f2 4124 movs r4, 0x41 ; 'A' ; 65
| ||||||| 0x0802e0f4 dff8380a ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e0f8 0a21 movs r1, 0xa ; 10
| ||||||| 0x0802e0fa 0170 strb r1, [r0]
| ========< 0x0802e0fc a6e7 b 0x802e04c
| `-------> 0x0802e0fe dff8200a ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e102 0078 ldrb r0, [r0]
| |||||| 0x0802e104 0a28 cmp r0, 0xa ; 10
| ,=======< 0x0802e106 05d1 bne 0x802e114
| ||||||| 0x0802e108 4324 movs r4, 0x43 ; 'C' ; 67
| ||||||| 0x0802e10a dff8240a ldr.w r0, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e10e 0c21 movs r1, 0xc ; 12
| ||||||| 0x0802e110 0170 strb r1, [r0]
| ========< 0x0802e112 9be7 b 0x802e04c
| `-------> 0x0802e114 dff8080a ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e118 0078 ldrb r0, [r0]
| |||||| 0x0802e11a 0c28 cmp r0, 0xc ; 12
| ,=======< 0x0802e11c 05d1 bne 0x802e12a
| ||||||| 0x0802e11e 4224 movs r4, 0x42 ; 'B' ; 66
| ||||||| 0x0802e120 dff80c0a ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e124 0b21 movs r1, 0xb ; 11
| ||||||| 0x0802e126 0170 strb r1, [r0]
| ========< 0x0802e128 90e7 b 0x802e04c
| `-------> 0x0802e12a dff8f409 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e12e 0078 ldrb r0, [r0]
| |||||| 0x0802e130 0d28 cmp r0, 0xd ; 13
| ,=======< 0x0802e132 05d1 bne 0x802e140
| ||||||| 0x0802e134 4424 movs r4, 0x44 ; 'D' ; 68
| ||||||| 0x0802e136 dff8f809 ldr.w r0, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e13a 0d21 movs r1, 0xd ; 13
| ||||||| 0x0802e13c 0170 strb r1, [r0]
| ========< 0x0802e13e 85e7 b 0x802e04c
| `-------> 0x0802e140 f5e2 b 0x802e72e
| .-------> 0x0802e142 dff8881a ldr.w r1, [0x0802ebd2] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e146 0978 ldrb r1, [r1]
| ||||||| 0x0802e148 dff8842a ldr.w r2, [0x0802ebd4] ; [0x802ebd4:4]=0xf8dfb580
| ||||||| 0x0802e14c 1268 ldr r2, [r2]
| ||||||| 0x0802e14e 0023 movs r3, 0
| ||||||| 0x0802e150 22f81130 strh.w r3, [r2, r1, lsl 1]
| ||||||| 0x0802e154 401c adds r0, r0, 1
| --------> 0x0802e156 dff8741a ldr.w r1, [0x0802ebd2] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e15a 0978 ldrb r1, [r1]
| ||||||| 0x0802e15c d1f19001 rsbs.w r1, r1, 0x90
| ||||||| 0x0802e160 8842 cmp r0, r1
| `=======< 0x0802e162 eedb blt 0x802e142
| |||||| 0x0802e164 dff8140b ldr.w r0, [0x0802ec80] ; [0x802ec80:4]=0x2001e90b
| |||||| 0x0802e168 eff702f9 bl gfx_set_fg_color
| |||||| 0x0802e16c dff80c0b ldr.w r0, [0x0802ec80] ; [0x802ec80:4]=0x2001e90b
| |||||| 0x0802e170 eff7faf8 bl gfx_set_bg_color
| |||||| 0x0802e174 7ff07f40 mvns r0, 0xff000000
| |||||| 0x0802e178 eff7faf8 bl gfx_set_fg_color
| |||||| 0x0802e17c 7e23 movs r3, 0x7e ; '~' ; 126
| |||||| 0x0802e17e 9e22 movs r2, 0x9e ; 158
| |||||| 0x0802e180 6e21 movs r1, 0x6e ; 'n' ; 110
| |||||| 0x0802e182 0120 movs r0, 1 ; 1
| |||||| 0x0802e184 eff782fb bl gfx_blockfill
| |||||| 0x0802e188 1123 movs r3, 0x11 ; 17
| |||||| 0x0802e18a 9f22 movs r2, 0x9f ; 159
| |||||| 0x0802e18c 0d21 movs r1, 0xd ; 13
| |||||| 0x0802e18e 8d20 movs r0, 0x8d ; 141
| |||||| 0x0802e190 eff77cfb bl gfx_blockfill
| |||||| 0x0802e194 7ff07f40 mvns r0, 0xff000000
| |||||| 0x0802e198 eff7e6f8 bl gfx_set_bg_color
| |||||| 0x0802e19c 0020 movs r0, 0
| |||||| 0x0802e19e eff7e7f8 bl gfx_set_fg_color
| |||||| 0x0802e1a2 dff8dc0a ldr.w r0, [0x0802ec86] ; [0x802ec84:4]=0x2001e6ec
| |||||| 0x0802e1a6 0078 ldrb r0, [r0]
| |||||| 0x0802e1a8 0028 cmp r0, 0
| ,=======< 0x0802e1aa 05d1 bne 0x802e1b8
| ||||||| 0x0802e1ac dff79efd bl func_0dcec
| ||||||| 0x0802e1b0 dff8cc0a ldr.w r0, [0x0802ec84] ; [0x802ec84:4]=0x2001e6ec
| ||||||| 0x0802e1b4 0121 movs r1, 1 ; 1
| ||||||| 0x0802e1b6 0170 strb r1, [r0]
| `-------> 0x0802e1b8 dff8c80a ldr.w r0, [0x0802ec88] ; [0x802ec88:4]=0x20001704 md380_menu_ptr_to_80d032c
| |||||| 0x0802e1bc 0068 ldr r0, [r0]
| |||||| 0x0802e1be dff8c81a ldr.w r1, [0x0802ec8e] ; [0x802ec8c:4]=0x2001e700 menu_memory_poi
| |||||| 0x0802e1c2 11eb8000 adds.w r0, r1, r0, lsl 2
| |||||| 0x0802e1c6 806a ldr r0, [r0, 0x28]
| |||||| 0x0802e1c8 dff8c01a ldr.w r1, [0x0802ec90] ; [0x802ec90:4]=0x2001e94b gui_opmode2
| |||||| 0x0802e1cc 0968 ldr r1, [r1]
| |||||| 0x0802e1ce 0860 str r0, [r1]
| |||||| 0x0802e1d0 def70afb bl func_0c7e8
| ,=======< 0x0802e1d4 abe2 b 0x802e72e
| ||```---> 0x0802e1d6 dff85409 ldr.w r0, [0x0802eb32] ; [0x802eb30:4]=0x2001e891 keycode_old
| || || 0x0802e1da 0078 ldrb r0, [r0]
| || || 0x0802e1dc 0028 cmp r0, 0
| || ,===< 0x0802e1de 79d1 bne 0x802e2d4
| || ||| 0x0802e1e0 dff8d005 ldr.w r0, [0x0802e7b8] ; [0x802e7b8:4]=0x2001e5f4
| || ||| 0x0802e1e4 0078 ldrb r0, [r0]
| || ||| 0x0802e1e6 10f00300 ands r0, r0, 3
| || ||| 0x0802e1ea 0128 cmp r0, 1 ; 1
| || ,====< 0x0802e1ec 72d1 bne 0x802e2d4
| || |||| 0x0802e1ee dff8a00a ldr.w r0, [0x0802ec96] ; [0x802ec94:4]=0x2001e4b4
| || |||| 0x0802e1f2 0078 ldrb r0, [r0]
| || |||| 0x0802e1f4 0128 cmp r0, 1 ; 1
| ||,=====< 0x0802e1f6 6dd1 bne 0x802e2d4
| ||||||| 0x0802e1f8 dff82409 ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e1fc 0078 ldrb r0, [r0]
| ||||||| 0x0802e1fe 0f28 cmp r0, 0xf ; 15
| ========< 0x0802e200 68d1 bne 0x802e2d4
| ||||||| 0x0802e202 dff82409 ldr.w r0, [0x0802eb2e] ; [0x802eb2c:4]=0x2001e8ed
| ||||||| 0x0802e206 0078 ldrb r0, [r0]
| ||||||| 0x0802e208 0228 cmp r0, 2 ; 2
| ========< 0x0802e20a 63d0 beq 0x802e2d4
| ||||||| 0x0802e20c dff81c09 ldr.w r0, [0x0802eb30] ; [0x802eb30:4]=0x2001e891 keycode_old
| ||||||| 0x0802e210 0121 movs r1, 1 ; 1
| ||||||| 0x0802e212 0170 strb r1, [r0]
| ||||||| 0x0802e214 dff87c0a ldr.w r0, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e218 0021 movs r1, 0
| ||||||| 0x0802e21a 0170 strb r1, [r0]
| ||||||| 0x0802e21c dff8a809 ldr.w r0, [0x0802ebcc] ; [0x802ebcc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0802e220 9021 movs r1, 0x90 ; 144
| ||||||| 0x0802e222 0170 strb r1, [r0]
| ||||||| 0x0802e224 dff89c09 ldr.w r0, [0x0802ebc8] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e228 0021 movs r1, 0
| ||||||| 0x0802e22a 0170 strb r1, [r0]
| ||||||| 0x0802e22c dff89c09 ldr.w r0, [0x0802ebd0] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e230 0021 movs r1, 0
| ||||||| 0x0802e232 0170 strb r1, [r0]
| ||||||| 0x0802e234 f9f71cf8 bl func_27270
| ||||||| 0x0802e238 0020 movs r0, 0
| ========< 0x0802e23a 06e0 b 0x802e24a
| --------> 0x0802e23c dff89019 ldr.w r1, [0x0802ebd4] ; [0x802ebd4:4]=0xf8dfb580
| ||||||| 0x0802e240 0968 ldr r1, [r1]
| ||||||| 0x0802e242 0022 movs r2, 0
| ||||||| 0x0802e244 21f81020 strh.w r2, [r1, r0, lsl 1]
| ||||||| 0x0802e248 401c adds r0, r0, 1
| --------> 0x0802e24a 9028 cmp r0, 0x90 ; 144
| ========< 0x0802e24c f6db blt 0x802e23c
| ||||||| 0x0802e24e dff82c0a ldr.w r0, [0x0802ec82] ; [0x802ec80:4]=0x2001e90b
| ||||||| 0x0802e252 eff78df8 bl gfx_set_fg_color
| ||||||| 0x0802e256 dff8240a ldr.w r0, [0x0802ec82] ; [0x802ec80:4]=0x2001e90b
| ||||||| 0x0802e25a eff785f8 bl gfx_set_bg_color
| ||||||| 0x0802e25e 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0802e262 eff785f8 bl gfx_set_fg_color
| ||||||| 0x0802e266 7e23 movs r3, 0x7e ; '~' ; 126
| ||||||| 0x0802e268 9e22 movs r2, 0x9e ; 158
| ||||||| 0x0802e26a 6e21 movs r1, 0x6e ; 'n' ; 110
| ||||||| 0x0802e26c 0120 movs r0, 1 ; 1
| ||||||| 0x0802e26e eff70dfb bl gfx_blockfill
| ||||||| 0x0802e272 1123 movs r3, 0x11 ; 17
| ||||||| 0x0802e274 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0802e276 0d21 movs r1, 0xd ; 13
| ||||||| 0x0802e278 8d20 movs r0, 0x8d ; 141
| ||||||| 0x0802e27a eff707fb bl gfx_blockfill
| ||||||| 0x0802e27e 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0802e282 eff771f8 bl gfx_set_bg_color
| ||||||| 0x0802e286 0020 movs r0, 0
| ||||||| 0x0802e288 eff772f8 bl gfx_set_fg_color
| ||||||| 0x0802e28c dff72efd bl func_0dcec
| ||||||| 0x0802e290 dff8f009 ldr.w r0, [0x0802ec88] ; [0x802ec88:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0802e294 0068 ldr r0, [r0]
| ||||||| 0x0802e296 dff8f019 ldr.w r1, [0x0802ec8e] ; [0x802ec8c:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0802e29a 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||||| 0x0802e29e 806a ldr r0, [r0, 0x28]
| ||||||| 0x0802e2a0 dff8e819 ldr.w r1, [0x0802ec90] ; [0x802ec90:4]=0x2001e94b gui_opmode2
| ||||||| 0x0802e2a4 0968 ldr r1, [r1]
| ||||||| 0x0802e2a6 0860 str r0, [r1]
| ||||||| 0x0802e2a8 def79efa bl func_0c7e8
| ||||||| 0x0802e2ac dff85807 ldr.w r0, [func_2ea0c_beeps_and_uses_struct_channel_info2] ; [0x802ea0c:4]=0x4845b580
| ||||||| 0x0802e2b0 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802e2b2 c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x0802e2b6 c007 lsls r0, r0, 0x1f
| ========< 0x0802e2b8 40f13982 bpl.w 0x802e72e
| ||||||| 0x0802e2bc dff80009 ldr.w r0, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e2c0 2721 movs r1, 0x27 ; ''' ; 39
| ||||||| 0x0802e2c2 0170 strb r1, [r0]
| ||||||| 0x0802e2c4 dff8f818 ldr.w r1, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e2c8 dff8e808 ldr.w r0, [0x0802ebb8] ; [0x802ebb8:4]=0x2001e60c
| ||||||| 0x0802e2cc 0068 ldr r0, [r0]
| ||||||| 0x0802e2ce 02f065ff bl md380_OSMboxPost
| ========< 0x0802e2d2 2ce2 b 0x802e72e
| --```---> 0x0802e2d4 dff85408 ldr.w r0, [0x0802eb30] ; [0x802eb30:4]=0x2001e891 keycode_old
| || || 0x0802e2d8 0078 ldrb r0, [r0]
| || || 0x0802e2da 0128 cmp r0, 1 ; 1
| || ,===< 0x0802e2dc 40f00281 bne.w 0x802e4e4
| || ||| 0x0802e2e0 dff8d004 ldr.w r0, [0x0802e7b8] ; [0x802e7b8:4]=0x2001e5f4
| || ||| 0x0802e2e4 0078 ldrb r0, [r0]
| || ||| 0x0802e2e6 10f00300 ands r0, r0, 3
| || ||| 0x0802e2ea 0128 cmp r0, 1 ; 1
| || ,====< 0x0802e2ec 40f0fa80 bne.w 0x802e4e4
| || |||| 0x0802e2f0 dff83408 ldr.w r0, [0x0802eb2c] ; [0x802eb2c:4]=0x2001e8ed
| || |||| 0x0802e2f4 0078 ldrb r0, [r0]
| || |||| 0x0802e2f6 0228 cmp r0, 2 ; 2
| ||,=====< 0x0802e2f8 00f0f480 beq.w 0x802e4e4
| ||||||| 0x0802e2fc dff89409 ldr.w r0, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e300 0078 ldrb r0, [r0]
| ||||||| 0x0802e302 1e28 cmp r0, 0x1e ; 30
| ========< 0x0802e304 80f0da80 bhs.w 0x802e4bc
| ||||||| 0x0802e308 dff81408 ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e30c 0078 ldrb r0, [r0]
| ||||||| 0x0802e30e 0a28 cmp r0, 0xa ; 10
| ========< 0x0802e310 2ed2 bhs 0x802e370
| ||||||| 0x0802e312 dff80c08 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e316 0078 ldrb r0, [r0]
| ||||||| 0x0802e318 10f13004 adds.w r4, r0, 0x30
| ||||||| 0x0802e31c dff81008 ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e320 dff8fc17 ldr.w r1, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e324 0978 ldrb r1, [r1]
| ||||||| 0x0802e326 0170 strb r1, [r0]
| --------> 0x0802e328 dff86809 ldr.w r0, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e32c 0078 ldrb r0, [r0]
| ||||||| 0x0802e32e 0221 movs r1, 2 ; 2
| ||||||| 0x0802e330 90fbf1f2 sdiv r2, r0, r1
| ||||||| 0x0802e334 02fb1102 mls r2, r2, r1, r0
| ||||||| 0x0802e338 002a cmp r2, 0
| ========< 0x0802e33a 7ad0 beq 0x802e432
| ||||||| 0x0802e33c dff85409 ldr.w r0, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e340 0078 ldrb r0, [r0]
| ||||||| 0x0802e342 0221 movs r1, 2 ; 2
| ||||||| 0x0802e344 90fbf1f0 sdiv r0, r0, r1
| ||||||| 0x0802e348 dff84819 ldr.w r1, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e34c 4018 adds r0, r0, r1
| ||||||| 0x0802e34e dff84419 ldr.w r1, [0x0802ec9a] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e352 0978 ldrb r1, [r1]
| ||||||| 0x0802e354 0222 movs r2, 2 ; 2
| ||||||| 0x0802e356 91fbf2f1 sdiv r1, r1, r2
| ||||||| 0x0802e35a dff83829 ldr.w r2, [0x0802ec9a] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e35e 8918 adds r1, r1, r2
| ||||||| 0x0802e360 4978 ldrb r1, [r1, 1]
| ||||||| 0x0802e362 dff8cc27 ldr.w r2, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e366 1278 ldrb r2, [r2]
| ||||||| 0x0802e368 51ea0211 orrs.w r1, r1, r2, lsl 4
| ||||||| 0x0802e36c 4170 strb r1, [r0, 1]
| ========< 0x0802e36e 6de0 b 0x802e44c
| --------> 0x0802e370 dff8ac07 ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e374 0078 ldrb r0, [r0]
| ||||||| 0x0802e376 0e28 cmp r0, 0xe ; 14
| ========< 0x0802e378 05d1 bne 0x802e386
| ||||||| 0x0802e37a 2a24 movs r4, 0x2a ; '*' ; 42
| ||||||| 0x0802e37c dff8b007 ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e380 0e21 movs r1, 0xe ; 14
| ||||||| 0x0802e382 0170 strb r1, [r0]
| ========< 0x0802e384 d0e7 b 0x802e328
| --------> 0x0802e386 dff89807 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e38a 0078 ldrb r0, [r0]
| ||||||| 0x0802e38c 0f28 cmp r0, 0xf ; 15
| ========< 0x0802e38e 05d1 bne 0x802e39c
| ||||||| 0x0802e390 2324 movs r4, 0x23 ; '#' ; 35
| ||||||| 0x0802e392 dff89c07 ldr.w r0, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e396 0f21 movs r1, 0xf ; 15
| ||||||| 0x0802e398 0170 strb r1, [r0]
| ========< 0x0802e39a c5e7 b 0x802e328
| --------> 0x0802e39c dff88007 ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e3a0 0078 ldrb r0, [r0]
| ||||||| 0x0802e3a2 0b28 cmp r0, 0xb ; 11
| ========< 0x0802e3a4 05d1 bne 0x802e3b2
| ||||||| 0x0802e3a6 4124 movs r4, 0x41 ; 'A' ; 65
| ||||||| 0x0802e3a8 dff88407 ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e3ac 0a21 movs r1, 0xa ; 10
| ||||||| 0x0802e3ae 0170 strb r1, [r0]
| ========< 0x0802e3b0 bae7 b 0x802e328
| --------> 0x0802e3b2 dff86c07 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e3b6 0078 ldrb r0, [r0]
| ||||||| 0x0802e3b8 0a28 cmp r0, 0xa ; 10
| ========< 0x0802e3ba 05d1 bne 0x802e3c8
| ||||||| 0x0802e3bc 4324 movs r4, 0x43 ; 'C' ; 67
| ||||||| 0x0802e3be dff87007 ldr.w r0, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e3c2 0c21 movs r1, 0xc ; 12
| ||||||| 0x0802e3c4 0170 strb r1, [r0]
| ========< 0x0802e3c6 afe7 b 0x802e328
| --------> 0x0802e3c8 dff85407 ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e3cc 0078 ldrb r0, [r0]
| ||||||| 0x0802e3ce 0c28 cmp r0, 0xc ; 12
| ========< 0x0802e3d0 05d1 bne 0x802e3de
| ||||||| 0x0802e3d2 4224 movs r4, 0x42 ; 'B' ; 66
| ||||||| 0x0802e3d4 dff85807 ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e3d8 0b21 movs r1, 0xb ; 11
| ||||||| 0x0802e3da 0170 strb r1, [r0]
| ========< 0x0802e3dc a4e7 b 0x802e328
| --------> 0x0802e3de dff84007 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e3e2 0078 ldrb r0, [r0]
| ||||||| 0x0802e3e4 0d28 cmp r0, 0xd ; 13
| ========< 0x0802e3e6 05d1 bne 0x802e3f4
| ||||||| 0x0802e3e8 4424 movs r4, 0x44 ; 'D' ; 68
| ||||||| 0x0802e3ea dff84407 ldr.w r0, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e3ee 0d21 movs r1, 0xd ; 13
| ||||||| 0x0802e3f0 0170 strb r1, [r0]
| ========< 0x0802e3f2 99e7 b 0x802e328
| --------> 0x0802e3f4 dff82807 ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e3f8 0078 ldrb r0, [r0]
| ||||||| 0x0802e3fa 1028 cmp r0, 0x10 ; 16
| ========< 0x0802e3fc 18d1 bne 0x802e430
| ||||||| 0x0802e3fe dff80806 ldr.w r0, [0x0802ea0e] ; [0x802ea0c:4]=0x4845b580
| ||||||| 0x0802e402 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802e404 c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x0802e408 c007 lsls r0, r0, 0x1f
| ========< 0x0802e40a 0ad5 bpl 0x802e422
| ||||||| 0x0802e40c dff8b007 ldr.w r0, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e410 2721 movs r1, 0x27 ; ''' ; 39
| ||||||| 0x0802e412 0170 strb r1, [r0]
| ||||||| 0x0802e414 dff8a817 ldr.w r1, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e418 dff89807 ldr.w r0, [0x0802ebb8] ; [0x802ebb8:4]=0x2001e60c
| ||||||| 0x0802e41c 0068 ldr r0, [r0]
| ||||||| 0x0802e41e 02f0bdfe bl md380_OSMboxPost
| --------> 0x0802e422 dff80807 ldr.w r0, [0x0802eb32] ; [0x802eb30:4]=0x2001e891 keycode_old
| ||||||| 0x0802e426 0021 movs r1, 0
| ||||||| 0x0802e428 0170 strb r1, [r0]
| ||||||| 0x0802e42a e1f734fc bl return_to_mode_1_from10
| ========< 0x0802e42e 7ee1 b 0x802e72e
| --------> 0x0802e430 7de1 b 0x802e72e
| --------> 0x0802e432 dff86008 ldr.w r0, [0x0802ec9a] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e436 0078 ldrb r0, [r0]
| ||||||| 0x0802e438 0221 movs r1, 2 ; 2
| ||||||| 0x0802e43a 90fbf1f0 sdiv r0, r0, r1
| ||||||| 0x0802e43e dff85418 ldr.w r1, [0x0802ec9a] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e442 4018 adds r0, r0, r1
| ||||||| 0x0802e444 dff8e816 ldr.w r1, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e448 0978 ldrb r1, [r1]
| ||||||| 0x0802e44a 4170 strb r1, [r0, 1]
| --------> 0x0802e44c dff84408 ldr.w r0, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e450 0078 ldrb r0, [r0]
| ||||||| 0x0802e452 401c adds r0, r0, 1
| ||||||| 0x0802e454 dff83c18 ldr.w r1, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e458 0870 strb r0, [r1]
| ||||||| 0x0802e45a dff86407 ldr.w r0, [0x0802ebc6] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e45e 2821 movs r1, 0x28 ; '(' ; 40
| ||||||| 0x0802e460 0170 strb r1, [r0]
| ||||||| 0x0802e462 dff85c17 ldr.w r1, [0x0802ebc6] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e466 dff84c07 ldr.w r0, [0x0802ebba] ; [0x802ebb8:4]=0x2001e60c
| ||||||| 0x0802e46a 0068 ldr r0, [r0]
| ||||||| 0x0802e46c 02f096fe bl md380_OSMboxPost
| ||||||| 0x0802e470 dff85007 ldr.w r0, [0x0802ebc8] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e474 0078 ldrb r0, [r0]
| ||||||| 0x0802e476 dff85017 ldr.w r1, [0x0802ebce] ; [0x802ebcc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0802e47a 0978 ldrb r1, [r1]
| ||||||| 0x0802e47c 8842 cmp r0, r1
| ========< 0x0802e47e 80f05681 bhs.w 0x802e72e
| ||||||| 0x0802e482 f8f7f5fe bl func_27270
| ||||||| 0x0802e486 dff84407 ldr.w r0, [0x0802ebd2] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e48a 0078 ldrb r0, [r0]
| ||||||| 0x0802e48c 401c adds r0, r0, 1
| ||||||| 0x0802e48e dff83c17 ldr.w r1, [0x0802ebd2] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e492 0870 strb r0, [r1]
| ||||||| 0x0802e494 dff82c07 ldr.w r0, [0x0802ebc8] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e498 0078 ldrb r0, [r0]
| ||||||| 0x0802e49a 401c adds r0, r0, 1
| ||||||| 0x0802e49c dff82417 ldr.w r1, [0x0802ebc8] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e4a0 0870 strb r0, [r1]
| ||||||| 0x0802e4a2 dff82807 ldr.w r0, [0x0802ebd2] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e4a6 0078 ldrb r0, [r0]
| ||||||| 0x0802e4a8 dff82417 ldr.w r1, [0x0802ebd4] ; [0x802ebd4:4]=0xf8dfb580
| ||||||| 0x0802e4ac 0968 ldr r1, [r1]
| ||||||| 0x0802e4ae 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0802e4b2 20f8024c strh r4, [r0, -0x2]
| ||||||| 0x0802e4b6 def797f9 bl func_0c7e8
| ========< 0x0802e4ba 38e1 b 0x802e72e
| --------> 0x0802e4bc dff84805 ldr.w r0, [func_2ea0c_beeps_and_uses_struct_channel_info2] ; [0x802ea0c:4]=0x4845b580
| ||||||| 0x0802e4c0 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802e4c2 c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x0802e4c6 c007 lsls r0, r0, 0x1f
| ========< 0x0802e4c8 40f13181 bpl.w 0x802e72e
| ||||||| 0x0802e4cc dff8f006 ldr.w r0, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e4d0 2721 movs r1, 0x27 ; ''' ; 39
| ||||||| 0x0802e4d2 0170 strb r1, [r0]
| ||||||| 0x0802e4d4 dff8e816 ldr.w r1, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e4d8 dff8d806 ldr.w r0, [0x0802ebb8] ; [0x802ebb8:4]=0x2001e60c
| ||||||| 0x0802e4dc 0068 ldr r0, [r0]
| ||||||| 0x0802e4de 02f05dfe bl md380_OSMboxPost
| ========< 0x0802e4e2 24e1 b 0x802e72e
| ||```---> 0x0802e4e4 dff84406 ldr.w r0, [0x0802eb30] ; [0x802eb30:4]=0x2001e891 keycode_old
| || || 0x0802e4e8 0021 movs r1, 0
| || || 0x0802e4ea 0170 strb r1, [r0]
| || || 0x0802e4ec dff81805 ldr.w r0, [func_2ea0c_beeps_and_uses_struct_channel_info2] ; [0x802ea0c:4]=0x4845b580
| || || 0x0802e4f0 8078 ldrb r0, [r0, 2]
| || || 0x0802e4f2 c0f34010 ubfx r0, r0, 5, 1
| || || 0x0802e4f6 c007 lsls r0, r0, 0x1f
| || ,===< 0x0802e4f8 11d5 bpl 0x802e51e
| || ||| 0x0802e4fa dff8500a ldr.w r0, [0x0802ef52] ; [0x802ef50:4]=0x2001e6fc
| || ||| 0x0802e4fe 0078 ldrb r0, [r0]
| || ||| 0x0802e500 10f00300 ands r0, r0, 3
| || ||| 0x0802e504 0328 cmp r0, 3 ; 3
| || ,====< 0x0802e506 0ad0 beq 0x802e51e
| || |||| 0x0802e508 dff8b406 ldr.w r0, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| || |||| 0x0802e50c 2721 movs r1, 0x27 ; ''' ; 39
| || |||| 0x0802e50e 0170 strb r1, [r0]
| || |||| 0x0802e510 dff8ac16 ldr.w r1, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| || |||| 0x0802e514 dff89c06 ldr.w r0, [0x0802ebb8] ; [0x802ebb8:4]=0x2001e60c
| || |||| 0x0802e518 0068 ldr r0, [r0]
| || |||| 0x0802e51a 02f03ffe bl md380_OSMboxPost
| || ``---> 0x0802e51e dff80006 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| || || 0x0802e522 0078 ldrb r0, [r0]
| || || 0x0802e524 0a28 cmp r0, 0xa ; 10
| || ,===< 0x0802e526 72d0 beq 0x802e60e
| || ||| 0x0802e528 0b28 cmp r0, 0xb ; 11
| || ,====< 0x0802e52a 6ad0 beq 0x802e602
| || |||| 0x0802e52c 0c28 cmp r0, 0xc ; 12
| ||,=====< 0x0802e52e 6bd0 beq 0x802e608
| ||||||| 0x0802e530 0d28 cmp r0, 0xd ; 13
| ========< 0x0802e532 05d0 beq 0x802e540
| ||||||| 0x0802e534 1028 cmp r0, 0x10 ; 16
| ========< 0x0802e536 40f09a80 bne.w 0x802e66e
| ||||||| 0x0802e53a dff725fb bl func_0db88
| ========< 0x0802e53e f6e0 b 0x802e72e
| --------> 0x0802e540 dff80c0a ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e544 0068 ldr r0, [r0]
| ||||||| 0x0802e546 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e548 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0802e54c 0628 cmp r0, 6 ; 6
| ========< 0x0802e54e 06d1 bne 0x802e55e
| ||||||| 0x0802e550 e0f722fb bl menu_dispatcher
| ||||||| 0x0802e554 dff8fc09 ldr.w r0, [0x0802ef58] ; [0x802ef58:4]=0x20004ac9
| ||||||| 0x0802e558 0021 movs r1, 0
| ||||||| 0x0802e55a 0170 strb r1, [r0]
| ========< 0x0802e55c 50e0 b 0x802e600
| --------> 0x0802e55e dff82c07 ldr.w r0, [0x0802ec92] ; [0x802ec90:4]=0x2001e94b gui_opmode2
| ||||||| 0x0802e562 0068 ldr r0, [r0]
| ||||||| 0x0802e564 0068 ldr r0, [r0]
| ||||||| 0x0802e566 dff81c17 ldr.w r1, [0x0802ec8a] ; [0x802ec88:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0802e56a 0968 ldr r1, [r1]
| ||||||| 0x0802e56c dff81827 ldr.w r2, [0x0802ec8c] ; [0x802ec8c:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0802e570 12eb8101 adds.w r1, r2, r1, lsl 2
| ||||||| 0x0802e574 d1f87813 ldr.w r1, [r1, 0x378]
| ||||||| 0x0802e578 8842 cmp r0, r1
| ========< 0x0802e57a 0ed0 beq 0x802e59a
| ||||||| 0x0802e57c dff80c07 ldr.w r0, [0x0802ec90] ; [0x802ec90:4]=0x2001e94b gui_opmode2
| ||||||| 0x0802e580 0068 ldr r0, [r0]
| ||||||| 0x0802e582 0068 ldr r0, [r0]
| ||||||| 0x0802e584 dff8fc16 ldr.w r1, [0x0802ec88] ; [0x802ec88:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0802e588 0968 ldr r1, [r1]
| ||||||| 0x0802e58a dff8fc26 ldr.w r2, [0x0802ec8e] ; [0x802ec8c:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0802e58e 12eb8101 adds.w r1, r2, r1, lsl 2
| ||||||| 0x0802e592 d1f87c13 ldr.w r1, [r1, 0x37c]
| ||||||| 0x0802e596 8842 cmp r0, r1
| ========< 0x0802e598 02d1 bne 0x802e5a0
| --------> 0x0802e59a e1f785f8 bl menu_func_0f6a8
| ========< 0x0802e59e c6e0 b 0x802e72e
| --------> 0x0802e5a0 dff8ac09 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e5a4 0068 ldr r0, [r0]
| ||||||| 0x0802e5a6 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e5a8 1f21 movs r1, 0x1f ; 31
| ||||||| 0x0802e5aa 0842 tst r0, r1
| ========< 0x0802e5ac 07d0 beq 0x802e5be
| ||||||| 0x0802e5ae dff8a009 ldr.w r0, [0x0802ef56] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e5b2 0068 ldr r0, [r0]
| ||||||| 0x0802e5b4 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e5b6 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0802e5ba 0128 cmp r0, 1 ; 1
| ========< 0x0802e5bc 1ed1 bne 0x802e5fc
| --------> 0x0802e5be dff80406 ldr.w r0, [0x0802ebca] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e5c2 0078 ldrb r0, [r0]
| ||||||| 0x0802e5c4 0028 cmp r0, 0
| ========< 0x0802e5c6 04d1 bne 0x802e5d2
| ||||||| 0x0802e5c8 dff88c09 ldr.w r0, [0x0802ef5c] ; [0x802ef5c:4]=0x20004acc md380_menu_depth
| ||||||| 0x0802e5cc 0078 ldrb r0, [r0]
| ||||||| 0x0802e5ce 0328 cmp r0, 3 ; 3
| ========< 0x0802e5d0 14d1 bne 0x802e5fc
| --------> 0x0802e5d2 dff88809 ldr.w r0, [0x0802ef62] ; [0x802ef60:4]=0xf8dfb580
| ||||||| 0x0802e5d6 0078 ldrb r0, [r0]
| ||||||| 0x0802e5d8 1028 cmp r0, 0x10 ; 16
| ========< 0x0802e5da 0ed2 bhs 0x802e5fa
| ||||||| 0x0802e5dc dff87009 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e5e0 0068 ldr r0, [r0]
| ||||||| 0x0802e5e2 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e5e4 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0802e5e8 0328 cmp r0, 3 ; 3
| ========< 0x0802e5ea 04da bge 0x802e5f6
| ||||||| 0x0802e5ec dff86009 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e5f0 0068 ldr r0, [r0]
| ||||||| 0x0802e5f2 8068 ldr r0, [r0, 8]
| ||||||| 0x0802e5f4 8047 blx r0
| --------> 0x0802e5f6 def7f7f8 bl func_0c7e8
| --------> 0x0802e5fa 98e0 b 0x802e72e
| --------> 0x0802e5fc e1f754f8 bl menu_func_0f6a8
| --------> 0x0802e600 95e0 b 0x802e72e
| |||`----> 0x0802e602 e0f779fe bl menu_F_4144
| |||,====< 0x0802e606 92e0 b 0x802e72e
| ||`-----> 0x0802e608 e0f750ff bl menu_func_0f4ac
| ||,=====< 0x0802e60c 8fe0 b 0x802e72e
| ||||`---> 0x0802e60e dff84809 ldr.w r0, [0x0802ef5e] ; [0x802ef5c:4]=0x20004acc md380_menu_depth
| |||| || 0x0802e612 0078 ldrb r0, [r0]
| |||| || 0x0802e614 0328 cmp r0, 3 ; 3
| ||||,===< 0x0802e616 23d1 bne 0x802e660
| ||||||| 0x0802e618 dff83409 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e61c 0068 ldr r0, [r0]
| ||||||| 0x0802e61e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e620 1f21 movs r1, 0x1f ; 31
| ||||||| 0x0802e622 0842 tst r0, r1
| ========< 0x0802e624 07d0 beq 0x802e636
| ||||||| 0x0802e626 dff82809 ldr.w r0, [0x0802ef56] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e62a 0068 ldr r0, [r0]
| ||||||| 0x0802e62c 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e62e 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0802e632 0128 cmp r0, 1 ; 1
| ========< 0x0802e634 14d1 bne 0x802e660
| --------> 0x0802e636 dff82409 ldr.w r0, [0x0802ef62] ; [0x802ef60:4]=0xf8dfb580
| ||||||| 0x0802e63a 0078 ldrb r0, [r0]
| ||||||| 0x0802e63c 1028 cmp r0, 0x10 ; 16
| ========< 0x0802e63e 0ed2 bhs 0x802e65e
| ||||||| 0x0802e640 dff80c09 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e644 0068 ldr r0, [r0]
| ||||||| 0x0802e646 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e648 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0802e64c 0328 cmp r0, 3 ; 3
| ========< 0x0802e64e 04da bge 0x802e65a
| ||||||| 0x0802e650 dff8fc08 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e654 0068 ldr r0, [r0]
| ||||||| 0x0802e656 8068 ldr r0, [r0, 8]
| ||||||| 0x0802e658 8047 blx r0
| --------> 0x0802e65a def7c5f8 bl func_0c7e8
| --------> 0x0802e65e 66e0 b 0x802e72e
| ----`---> 0x0802e660 e0f79afa bl menu_dispatcher
| |||| || 0x0802e664 dff8ec08 ldr.w r0, [0x0802ef58] ; [0x802ef58:4]=0x20004ac9
| |||| || 0x0802e668 0021 movs r1, 0
| |||| || 0x0802e66a 0170 strb r1, [r0]
| ||||,===< 0x0802e66c 5fe0 b 0x802e72e
| --------> 0x0802e66e dff8ec08 ldr.w r0, [0x0802ef62] ; [0x802ef60:4]=0xf8dfb580
| ||||||| 0x0802e672 0078 ldrb r0, [r0]
| ||||||| 0x0802e674 1028 cmp r0, 0x10 ; 16
| ========< 0x0802e676 0ed2 bhs 0x802e696
| ||||||| 0x0802e678 dff8d408 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e67c 0068 ldr r0, [r0]
| ||||||| 0x0802e67e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e680 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0802e684 0328 cmp r0, 3 ; 3
| ========< 0x0802e686 04da bge 0x802e692
| ||||||| 0x0802e688 dff8c408 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e68c 0068 ldr r0, [r0]
| ||||||| 0x0802e68e 8068 ldr r0, [r0, 8]
| ||||||| 0x0802e690 8047 blx r0
| --------> 0x0802e692 def7a9f8 bl func_0c7e8
| --------> 0x0802e696 4ae0 b 0x802e72e
| |||||`--> 0x0802e698 dff86c03 ldr.w r0, [func_2ea0c_beeps_and_uses_struct_channel_info2] ; [0x802ea0c:4]=0x4845b580
| ||||| | 0x0802e69c 8078 ldrb r0, [r0, 2]
| ||||| | 0x0802e69e c0f34010 ubfx r0, r0, 5, 1
| ||||| | 0x0802e6a2 c007 lsls r0, r0, 0x1f
| |||||,==< 0x0802e6a4 11d5 bpl 0x802e6ca
| ||||||| 0x0802e6a6 dff8a408 ldr.w r0, [0x0802ef52] ; [0x802ef50:4]=0x2001e6fc
| ||||||| 0x0802e6aa 0078 ldrb r0, [r0]
| ||||||| 0x0802e6ac 10f00300 ands r0, r0, 3
| ||||||| 0x0802e6b0 0328 cmp r0, 3 ; 3
| ========< 0x0802e6b2 0ad0 beq 0x802e6ca
| ||||||| 0x0802e6b4 dff80805 ldr.w r0, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e6b8 2721 movs r1, 0x27 ; ''' ; 39
| ||||||| 0x0802e6ba 0170 strb r1, [r0]
| ||||||| 0x0802e6bc dff80015 ldr.w r1, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e6c0 dff8f004 ldr.w r0, [0x0802ebb8] ; [0x802ebb8:4]=0x2001e60c
| ||||||| 0x0802e6c4 0068 ldr r0, [r0]
| ||||||| 0x0802e6c6 02f069fd bl md380_OSMboxPost
| -----`--> 0x0802e6ca dff85404 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||| | 0x0802e6ce 0078 ldrb r0, [r0]
| ||||| | 0x0802e6d0 0a28 cmp r0, 0xa ; 10
| |||||,==< 0x0802e6d2 08d1 bne 0x802e6e6
| ||||||| 0x0802e6d4 edf7aafb bl menu_using_sms_and_edit_buf_1be2c
| ||||||| 0x0802e6d8 def786f8 bl func_0c7e8
| ||||||| 0x0802e6dc dff8fc0b ldr.w r0, [0x0802f2e0] ; [0x802f2e0:4]=0x2001e893
| ||||||| 0x0802e6e0 0121 movs r1, 1 ; 1
| ||||||| 0x0802e6e2 0170 strb r1, [r0]
| ========< 0x0802e6e4 23e0 b 0x802e72e
| |||||`--> 0x0802e6e6 dff83804 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||| | 0x0802e6ea 0078 ldrb r0, [r0]
| ||||| | 0x0802e6ec 0e28 cmp r0, 0xe ; 14
| |||||,==< 0x0802e6ee 16d1 bne 0x802e71e
| ||||||| 0x0802e6f0 dff8e80b ldr.w r0, [0x0802f2e0] ; [0x802f2e0:4]=0x2001e893
| ||||||| 0x0802e6f4 0078 ldrb r0, [r0]
| ||||||| 0x0802e6f6 0128 cmp r0, 1 ; 1
| ========< 0x0802e6f8 08d1 bne 0x802e70c
| ||||||| 0x0802e6fa edf72cfc bl func_1bf56
| ||||||| 0x0802e6fe def773f8 bl func_0c7e8
| ||||||| 0x0802e702 dff8b804 ldr.w r0, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| ||||||| 0x0802e706 0021 movs r1, 0
| ||||||| 0x0802e708 0170 strb r1, [r0]
| ========< 0x0802e70a 10e0 b 0x802e72e
| --------> 0x0802e70c edf78efb bl menu_using_sms_and_edit_buf_1be2c
| ||||||| 0x0802e710 def76af8 bl func_0c7e8
| ||||||| 0x0802e714 dff8c40b ldr.w r0, [0x0802f2e0] ; [0x802f2e0:4]=0x2001e893
| ||||||| 0x0802e718 0021 movs r1, 0
| ||||||| 0x0802e71a 0170 strb r1, [r0]
| ========< 0x0802e71c 07e0 b 0x802e72e
| |||||`--> 0x0802e71e edf785fb bl menu_using_sms_and_edit_buf_1be2c
| ||||| | 0x0802e722 def761f8 bl func_0c7e8
| ||||| | 0x0802e726 dff8b40b ldr.w r0, [0x0802f2e2] ; [0x802f2e0:4]=0x2001e893
| ||||| | 0x0802e72a 0021 movs r1, 0
| ||||| | 0x0802e72c 0170 strb r1, [r0]
\ `````-`-> 0x0802e72e 10bd pop {r4, pc}
/ (fcn) bp_sempost 36
| Caller: Beep_Process
| bp_sempost ();
| 0x0802f994 80b5 push {r7, lr}
| 0x0802f996 1048 ldr r0, [0x0802f9da] ; [0x802f9d8:4]=0x2001dadc md380_radio_config
| 0x0802f998 4078 ldrb r0, [r0, 1]
| 0x0802f99a c0f38000 ubfx r0, r0, 2, 1
| 0x0802f99e c007 lsls r0, r0, 0x1f
| ,=< 0x0802f9a0 09d5 bpl 0x802f9b6
| | 0x0802f9a2 0b48 ldr r0, [0x0802f9d2] ; [0x802f9d0:4]=0x2001e5f0 radio_status_1
| | 0x0802f9a4 4078 ldrb r0, [r0, 1]
| | 0x0802f9a6 50f08000 orrs r0, r0, 0x80
| | 0x0802f9aa 0949 ldr r1, [0x0802f9d2] ; [0x802f9d0:4]=0x2001e5f0 radio_status_1
| | 0x0802f9ac 4870 strb r0, [r1, 1]
| | 0x0802f9ae 0948 ldr r0, [0x0802f9d6] ; [0x802f9d4:4]=0x2001e648 sema_1e648
| | 0x0802f9b0 0068 ldr r0, [r0]
| | 0x0802f9b2 0ff047ff bl OSSemPost
\ `-> 0x0802f9b6 01bd pop {r0, pc}
/ (fcn) bp_sempost2 24
| Caller: Beep_Process
| bp_sempost2 ();
| 0x0802f9b8 80b5 push {r7, lr}
| 0x0802f9ba 0548 ldr r0, [0x0802f9d2] ; [0x802f9d0:4]=0x2001e5f0 radio_status_1
| 0x0802f9bc 4078 ldrb r0, [r0, 1]
| 0x0802f9be 10f07f00 ands r0, r0, 0x7f
| 0x0802f9c2 0349 ldr r1, [0x0802f9d2] ; [0x802f9d0:4]=0x2001e5f0 radio_status_1
| 0x0802f9c4 4870 strb r0, [r1, 1]
| 0x0802f9c6 0348 ldr r0, [0x0802f9d6] ; [0x802f9d4:4]=0x2001e648 sema_1e648
| 0x0802f9c8 0068 ldr r0, [r0]
| 0x0802f9ca 0ff03bff bl OSSemPost
\ 0x0802f9ce 01bd pop {r0, pc}
/ (fcn) Beep_Process 4056
| Beep_Process ();
| 0x0802f9dc 82b0 sub sp, 8
| 0x0802f9de 0024 movs r4, 0
| 0x0802f9e0 0025 movs r5, 0
| ,=< 0x0802f9e2 08e0 b 0x802f9f6
| .--> 0x0802f9e4 edb2 uxtb r5, r5
| || 0x0802f9e6 002d cmp r5, 0
| ,===< 0x0802f9e8 05d1 bne 0x802f9f6
| ||| 0x0802f9ea 01f0b5f8 bl bp_tone_off
| ||| 0x0802f9ee fff7e3ff bl bp_sempost2
| ||| 0x0802f9f2 0024 movs r4, 0
| ||| 0x0802f9f4 6d1c adds r5, r5, 1
| ....`-`-> 0x0802f9f6 00aa add r2, sp, 0
| |||| | 0x0802f9f8 6421 movs r1, 0x64 ; 'd' ; 100
| |||| | 0x0802f9fa dff8180e ldr.w r0, [0x0803081a] ; [0x8030818:4]=0x2001e812
| |||| | 0x0802f9fe 0068 ldr r0, [r0]
| |||| | 0x0802fa00 01f040fb bl md380_OSMboxPend
| |||| | 0x0802fa04 0078 ldrb r0, [r0]
| |||| | 0x0802fa06 9df80010 ldrb.w r1, [sp]
| |||| | 0x0802fa0a 0029 cmp r1, 0
| |||| |,=< 0x0802fa0c 05d1 bne 0x802fa1a
| |||| || 0x0802fa0e 0400 movs r4, r0
| |||| || 0x0802fa10 0025 movs r5, 0
| |||| || 0x0802fa12 dff8040e ldr.w r0, [0x0803081e] ; [0x803081c:4]=0x2001e5d0 msg_timer_500
| |||| || 0x0802fa16 0021 movs r1, 0
| |||| || 0x0802fa18 0180 strh r1, [r0]
| |||| |`-> 0x0802fa1a e4b2 uxtb r4, r4
| |||| | 0x0802fa1c 002c cmp r4, 0
| |||| |,=< 0x0802fa1e 04d0 beq 0x802fa2a
| |||| || 0x0802fa20 dff8f80d ldr.w r0, [0x08030820] ; [0x8030820:4]=0xf8b8f7ff
| |||| || 0x0802fa24 4ff4fa71 mov.w r1, 0x1f4 ; 500
| |||| || 0x0802fa28 0160 str r1, [r0]
| |||| |`-> 0x0802fa2a e4b2 uxtb r4, r4
| |||| | 0x0802fa2c 2000 movs r0, r4
| |||| | 0x0802fa2e 0028 cmp r0, 0
| |||| `==< 0x0802fa30 d8d0 beq 0x802f9e4
| |||| 0x0802fa32 0428 cmp r0, 4 ; 4
| |||| ,=< 0x0802fa34 63d0 beq 0x802fafe
| |||| | 0x0802fa36 0928 cmp r0, 9 ; 9 ; re issue 227
| |||| | 0x0802fa38 00f0f180 beq.w 0x802fc1e
| |||| | 0x0802fa3c 0a28 cmp r0, 0xa ; 10
| |||| ,==< 0x0802fa3e 00f0ad80 beq.w 0x802fb9c
| |||| || 0x0802fa42 0b28 cmp r0, 0xb ; 11
| ||||,===< 0x0802fa44 00f03082 beq.w 0x802fea8
| ||||||| 0x0802fa48 0c28 cmp r0, 0xc ; 12
| ========< 0x0802fa4a 00f07582 beq.w 0x802ff38
| ||||||| 0x0802fa4e 0d28 cmp r0, 0xd ; 13
| ========< 0x0802fa50 00f00281 beq.w 0x802fc58
| ||||||| 0x0802fa54 0e28 cmp r0, 0xe ; 14 ; no dmr sync tone
| ||||||| 0x0802fa56 00f02281 beq.w 0x802fc9e
| ||||||| 0x0802fa5a 0f28 cmp r0, 0xf ; 15
| ========< 0x0802fa5c 00f03881 beq.w 0x802fcd0
| ||||||| 0x0802fa60 1028 cmp r0, 0x10 ; 16
| ========< 0x0802fa62 00f04c81 beq.w 0x802fcfe
| ||||||| 0x0802fa66 1128 cmp r0, 0x11 ; 17 ; dmr sync
| ||||||| 0x0802fa68 00f07481 beq.w 0x802fd54
| ||||||| 0x0802fa6c 1228 cmp r0, 0x12 ; 18
| ========< 0x0802fa6e 00f0bd81 beq.w 0x802fdec
| ||||||| 0x0802fa72 1328 cmp r0, 0x13 ; 19
| ========< 0x0802fa74 00f0ed81 beq.w 0x802fe52
| ||||||| 0x0802fa78 1428 cmp r0, 0x14 ; 20
| ========< 0x0802fa7a 00f0f082 beq.w 0x803005e
| ||||||| 0x0802fa7e 1528 cmp r0, 0x15 ; 21
| ========< 0x0802fa80 00f03483 beq.w 0x80300ec
| ||||||| 0x0802fa84 1628 cmp r0, 0x16 ; 22
| ========< 0x0802fa86 00f04885 beq.w 0x803051a
| ||||||| 0x0802fa8a 1728 cmp r0, 0x17 ; 23
| ========< 0x0802fa8c 00f0bb85 beq.w 0x8030606
| ||||||| 0x0802fa90 1828 cmp r0, 0x18 ; 24
| ========< 0x0802fa92 00f02786 beq.w 0x80306e4
| ||||||| 0x0802fa96 1928 cmp r0, 0x19 ; 25
| ========< 0x0802fa98 00f06486 beq.w 0x8030764
| ||||||| 0x0802fa9c 1a28 cmp r0, 0x1a ; 26
| ========< 0x0802fa9e 00f06c83 beq.w 0x803017a
| ||||||| 0x0802faa2 1b28 cmp r0, 0x1b ; 27
| ========< 0x0802faa4 00f0ca83 beq.w 0x803023c
| ||||||| 0x0802faa8 1c28 cmp r0, 0x1c ; 28
| ========< 0x0802faaa 00f02884 beq.w 0x80302fe
| ||||||| 0x0802faae 1d28 cmp r0, 0x1d ; 29
| ========< 0x0802fab0 00f08684 beq.w 0x80303c0
| ||||||| 0x0802fab4 1e28 cmp r0, 0x1e ; 30
| ========< 0x0802fab6 00f0bf84 beq.w 0x8030438
| ||||||| 0x0802faba 1f28 cmp r0, 0x1f ; 31
| ========< 0x0802fabc 00f0f184 beq.w 0x80304a2
| ||||||| 0x0802fac0 2028 cmp r0, 0x20 ; 32
| ========< 0x0802fac2 00f09086 beq.w 0x80307e6
| ||||||| 0x0802fac6 2128 cmp r0, 0x21 ; '!' ; 33
| ========< 0x0802fac8 00f0aa86 beq.w 0x8030820
| ||||||| 0x0802facc 2228 cmp r0, 0x22 ; '"' ; 34
| ========< 0x0802face 00f0c786 beq.w 0x8030860
| ||||||| 0x0802fad2 2328 cmp r0, 0x23 ; '#' ; 35
| ========< 0x0802fad4 00f0ee86 beq.w 0x80308b4
| ||||||| 0x0802fad8 2428 cmp r0, 0x24 ; '$' ; 36 ; 0x24 end of rx (Roger beep)
| ||||||| 0x0802fada 00f08380 beq.w 0x802fbe4
| ||||||| 0x0802fade 2528 cmp r0, 0x25 ; '%' ; 37
| ========< 0x0802fae0 3bd0 beq 0x802fb5a
| ||||||| 0x0802fae2 2628 cmp r0, 0x26 ; '&' ; 38
| ========< 0x0802fae4 00f0fd81 beq.w 0x802fee2
| ||||||| 0x0802fae8 2728 cmp r0, 0x27 ; ''' ; 39
| ========< 0x0802faea 00f06981 beq.w 0x802fdc0
| ||||||| 0x0802faee 2828 cmp r0, 0x28 ; '(' ; 40
| ========< 0x0802faf0 00f01487 beq.w 0x803091c
| ||||||| 0x0802faf4 2928 cmp r0, 0x29 ; ')' ; 41
| ========< 0x0802faf6 00f04e87 beq.w 0x8030996
| ========< 0x0802fafa 00f059bf b.w 0x80309b0
| ||||||`-> 0x0802fafe fff749ff bl bp_sempost
| |||||| 0x0802fb02 dff8b00e ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||||| 0x0802fb06 0121 movs r1, 1 ; 1
| |||||| 0x0802fb08 0170 strb r1, [r0]
| |||||| 0x0802fb0a 00f0fdff bl bp_tone_on
| |||||| 0x0802fb0e dff8a40e ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||||| 0x0802fb12 0121 movs r1, 1 ; 1
| |||||| 0x0802fb14 0170 strb r1, [r0]
| |||||| 0x0802fb16 40f20731 movw r1, 0x307 ; 775
| |||||| 0x0802fb1a 40f28310 movw r0, 0x183 ; 387
| |||||| 0x0802fb1e 00f0e3ff bl bp_glisando
| |||||| 0x0802fb22 b420 movs r0, 0xb4 ; 180
| |||||| 0x0802fb24 04f0c6f9 bl OSTimeDly
| |||||| 0x0802fb28 40f2de31 movw r1, 0x3de ; 990
| |||||| 0x0802fb2c 40f28520 movw r0, 0x285 ; 645
| |||||| 0x0802fb30 00f0daff bl bp_glisando
| |||||| 0x0802fb34 b420 movs r0, 0xb4 ; 180
| |||||| 0x0802fb36 04f0bdf9 bl OSTimeDly
| |||||| 0x0802fb3a 40f20e61 movw r1, 0x60e ; 1550
| |||||| 0x0802fb3e 40f20940 movw r0, 0x409 ; 1033
| |||||| 0x0802fb42 00f0d1ff bl bp_glisando
| |||||| 0x0802fb46 b420 movs r0, 0xb4 ; 180
| |||||| 0x0802fb48 04f0b4f9 bl OSTimeDly
| |||||| 0x0802fb4c 01f004f8 bl bp_tone_off
| |||||| 0x0802fb50 fff732ff bl bp_sempost2
| |||||| 0x0802fb54 0024 movs r4, 0
| |||||| 0x0802fb56 0125 movs r5, 1 ; 1
| ========< 0x0802fb58 4de7 b 0x802f9f6
| --------> 0x0802fb5a fff71bff bl bp_sempost
| |||||| 0x0802fb5e dff8540e ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||||| 0x0802fb62 0121 movs r1, 1 ; 1
| |||||| 0x0802fb64 0170 strb r1, [r0]
| |||||| 0x0802fb66 40f20731 movw r1, 0x307 ; 775
| |||||| 0x0802fb6a 40f28310 movw r0, 0x183 ; 387
| |||||| 0x0802fb6e 00f0bbff bl bp_glisando
| |||||| 0x0802fb72 00f0c9ff bl bp_tone_on
| |||||| 0x0802fb76 6420 movs r0, 0x64 ; 'd' ; 100
| |||||| 0x0802fb78 04f09cf9 bl OSTimeDly
| |||||| 0x0802fb7c 40f20e61 movw r1, 0x60e ; 1550
| |||||| 0x0802fb80 40f20940 movw r0, 0x409 ; 1033
| |||||| 0x0802fb84 00f0b0ff bl bp_glisando
| |||||| 0x0802fb88 c820 movs r0, 0xc8 ; 200
| |||||| 0x0802fb8a 04f093f9 bl OSTimeDly
| |||||| 0x0802fb8e 00f0e3ff bl bp_tone_off
| |||||| 0x0802fb92 fff711ff bl bp_sempost2
| |||||| 0x0802fb96 0024 movs r4, 0
| |||||| 0x0802fb98 0125 movs r5, 1 ; 1
| ========< 0x0802fb9a 2ce7 b 0x802f9f6
| |||||`--> 0x0802fb9c fff7fafe bl bp_sempost
| ||||| 0x0802fba0 dff8100e ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| ||||| 0x0802fba4 0321 movs r1, 3 ; 3
| ||||| 0x0802fba6 0170 strb r1, [r0]
| ||||| 0x0802fba8 40f28520 movw r0, 0x285 ; 645
| ||||| 0x0802fbac 00f094ff bl bp_set_freq
| ||||| 0x0802fbb0 00f0aaff bl bp_tone_on
| ||||| 0x0802fbb4 6420 movs r0, 0x64 ; 'd' ; 100
| ||||| 0x0802fbb6 04f07df9 bl OSTimeDly
| ||||| 0x0802fbba 40f2ad30 movw r0, 0x3ad ; 941
| ||||| 0x0802fbbe 00f08bff bl bp_set_freq
| ||||| 0x0802fbc2 3220 movs r0, 0x32 ; '2' ; 50
| ||||| 0x0802fbc4 04f076f9 bl OSTimeDly
| ||||| 0x0802fbc8 40f28520 movw r0, 0x285 ; 645
| ||||| 0x0802fbcc 00f084ff bl bp_set_freq
| ||||| 0x0802fbd0 6420 movs r0, 0x64 ; 'd' ; 100
| ||||| 0x0802fbd2 04f06ff9 bl OSTimeDly
| ||||| 0x0802fbd6 00f0bfff bl bp_tone_off
| ||||| 0x0802fbda fff7edfe bl bp_sempost2
| ||||| 0x0802fbde 0024 movs r4, 0
| ||||| 0x0802fbe0 0125 movs r5, 1 ; 1
| ========< 0x0802fbe2 08e7 b 0x802f9f6
| ||||| 0x0802fbe4 fff7d6fe bl bp_sempost ; begin roger beep
| ||||| 0x0802fbe8 dff8c80d ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| ||||| 0x0802fbec 0321 movs r1, 3 ; 3
| ||||| 0x0802fbee 0170 strb r1, [r0]
| ||||| 0x0802fbf0 40f28520 movw r0, 0x285 ; 645
| ||||| 0x0802fbf4 00f070ff bl bp_set_freq
| ||||| 0x0802fbf8 00f086ff bl bp_tone_on
| ||||| 0x0802fbfc 6420 movs r0, 0x64 ; 'd' ; 100
| ||||| 0x0802fbfe 04f059f9 bl OSTimeDly
| ||||| 0x0802fc02 40f2ad30 movw r0, 0x3ad ; 941
| ||||| 0x0802fc06 00f067ff bl bp_set_freq
| ||||| 0x0802fc0a 3220 movs r0, 0x32 ; '2' ; 50
| ||||| 0x0802fc0c 04f052f9 bl OSTimeDly
| ||||| 0x0802fc10 00f0a2ff bl bp_tone_off
| ||||| 0x0802fc14 fff7d0fe bl bp_sempost2
| ||||| 0x0802fc18 0024 movs r4, 0
| ||||| 0x0802fc1a 0125 movs r5, 1 ; 1
| ========< 0x0802fc1c ebe6 b 0x802f9f6
| ||||| 0x0802fc1e fff7b9fe bl bp_sempost ; beep 9
| ||||| 0x0802fc22 dff8900d ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| ||||| 0x0802fc26 0321 movs r1, 3 ; 3
| ||||| 0x0802fc28 0170 strb r1, [r0]
| ||||| 0x0802fc2a 40f2ad30 movw r0, 0x3ad ; 941
| ||||| 0x0802fc2e 00f053ff bl bp_set_freq
| ||||| 0x0802fc32 00f069ff bl bp_tone_on
| ||||| 0x0802fc36 6420 movs r0, 0x64 ; 'd' ; 100
| ||||| 0x0802fc38 04f03cf9 bl OSTimeDly
| ||||| 0x0802fc3c 40f2b920 movw r0, 0x2b9 ; 697
| ||||| 0x0802fc40 00f04aff bl bp_set_freq
| ||||| 0x0802fc44 3220 movs r0, 0x32 ; '2' ; 50
| ||||| 0x0802fc46 04f035f9 bl OSTimeDly
| ||||| 0x0802fc4a 00f085ff bl bp_tone_off
| ||||| 0x0802fc4e fff7b3fe bl bp_sempost2
| ||||| 0x0802fc52 0024 movs r4, 0
| ||||| 0x0802fc54 0125 movs r5, 1 ; 1
| ========< 0x0802fc56 cee6 b 0x802f9f6
| --------> 0x0802fc58 fff79cfe bl bp_sempost
| ||||| 0x0802fc5c dff8540d ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| ||||| 0x0802fc60 0321 movs r1, 3 ; 3
| ||||| 0x0802fc62 0170 strb r1, [r0]
| ||||| 0x0802fc64 40f28520 movw r0, 0x285 ; 645
| ||||| 0x0802fc68 00f036ff bl bp_set_freq
| ||||| 0x0802fc6c 00f04cff bl bp_tone_on
| ||||| 0x0802fc70 6420 movs r0, 0x64 ; 'd' ; 100
| ||||| 0x0802fc72 04f01ff9 bl OSTimeDly
| ||||| 0x0802fc76 dff83c0d ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| ||||| 0x0802fc7a 0121 movs r1, 1 ; 1
| ||||| 0x0802fc7c 0170 strb r1, [r0]
| ||||| 0x0802fc7e 40f2b331 movw r1, 0x3b3 ; 947
| ||||| 0x0802fc82 40f28520 movw r0, 0x285 ; 645
| ||||| 0x0802fc86 00f02fff bl bp_glisando
| ||||| 0x0802fc8a 3220 movs r0, 0x32 ; '2' ; 50
| ||||| 0x0802fc8c 04f012f9 bl OSTimeDly
| ||||| 0x0802fc90 00f062ff bl bp_tone_off
| ||||| 0x0802fc94 fff790fe bl bp_sempost2
| ||||| 0x0802fc98 0024 movs r4, 0
| ||||| 0x0802fc9a 0125 movs r5, 1 ; 1
| ========< 0x0802fc9c abe6 b 0x802f9f6
| ||||| 0x0802fc9e fff779fe bl bp_sempost
| ||||| 0x0802fca2 dff8100d ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| ||||| 0x0802fca6 0121 movs r1, 1 ; 1
| ||||| 0x0802fca8 0170 strb r1, [r0]
| ||||| 0x0802fcaa 4ff42e71 mov.w r1, 0x2b8 ; 696
| ||||| 0x0802fcae 4ff4ae70 mov.w r0, 0x15c ; 348
| ||||| 0x0802fcb2 00f019ff bl bp_glisando
| ||||| 0x0802fcb6 00f027ff bl bp_tone_on
| ||||| 0x0802fcba 4ff41670 mov.w r0, 0x258 ; 600
| ||||| 0x0802fcbe 04f0f9f8 bl OSTimeDly
| ||||| 0x0802fcc2 00f049ff bl bp_tone_off
| ||||| 0x0802fcc6 fff777fe bl bp_sempost2
| ||||| 0x0802fcca 0024 movs r4, 0
| ||||| 0x0802fccc 0125 movs r5, 1 ; 1
| ========< 0x0802fcce 92e6 b 0x802f9f6
| --------> 0x0802fcd0 edb2 uxtb r5, r5
| ||||| 0x0802fcd2 002d cmp r5, 0
| ||||| ,=< 0x0802fcd4 12d1 bne 0x802fcfc
| ||||| | 0x0802fcd6 fff75dfe bl bp_sempost
| ||||| | 0x0802fcda dff8d80c ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| ||||| | 0x0802fcde 0121 movs r1, 1 ; 1
| ||||| | 0x0802fce0 0170 strb r1, [r0]
| ||||| | 0x0802fce2 4ff42e71 mov.w r1, 0x2b8 ; 696
| ||||| | 0x0802fce6 4ff4ae70 mov.w r0, 0x15c ; 348
| ||||| | 0x0802fcea 00f0fdfe bl bp_glisando
| ||||| | 0x0802fcee 00f00bff bl bp_tone_on
| ||||| | 0x0802fcf2 6420 movs r0, 0x64 ; 'd' ; 100
| ||||| | 0x0802fcf4 04f0def8 bl OSTimeDly
| ||||| | 0x0802fcf8 6d1c adds r5, r5, 1
| |||||,==< 0x0802fcfa ffe7 b 0x802fcfc
| =====``-> 0x0802fcfc 7be6 b 0x802f9f6
| --------> 0x0802fcfe fff749fe bl bp_sempost
| ||||| 0x0802fd02 dff8b00c ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| ||||| 0x0802fd06 0321 movs r1, 3 ; 3
| ||||| 0x0802fd08 0170 strb r1, [r0]
| ||||| 0x0802fd0a 4ff49460 mov.w r0, 0x4a0 ; 1184
| ||||| 0x0802fd0e 00f0e3fe bl bp_set_freq
| ||||| 0x0802fd12 00f0f9fe bl bp_tone_on
| ||||| 0x0802fd16 7820 movs r0, 0x78 ; 'x' ; 120
| ||||| 0x0802fd18 04f0ccf8 bl OSTimeDly
| ||||| 0x0802fd1c 4ff47d70 mov.w r0, 0x3f4 ; 1012
| ||||| 0x0802fd20 00f0dafe bl bp_set_freq
| ||||| 0x0802fd24 6420 movs r0, 0x64 ; 'd' ; 100
| ||||| 0x0802fd26 04f0c5f8 bl OSTimeDly
| ||||| 0x0802fd2a 40f2b330 movw r0, 0x3b3 ; 947
| ||||| 0x0802fd2e 00f0d3fe bl bp_set_freq
| ||||| 0x0802fd32 6420 movs r0, 0x64 ; 'd' ; 100
| ||||| 0x0802fd34 04f0bef8 bl OSTimeDly
| ||||| 0x0802fd38 40f23230 movw r0, 0x332 ; 818
| ||||| 0x0802fd3c 00f0ccfe bl bp_set_freq
| ||||| 0x0802fd40 6420 movs r0, 0x64 ; 'd' ; 100
| ||||| 0x0802fd42 04f0b7f8 bl OSTimeDly
| ||||| 0x0802fd46 00f007ff bl bp_tone_off
| ||||| 0x0802fd4a fff735fe bl bp_sempost2
| ||||| 0x0802fd4e 0024 movs r4, 0
| ||||| 0x0802fd50 0125 movs r5, 1 ; 1
| ========< 0x0802fd52 50e6 b 0x802f9f6
| ||||| 0x0802fd54 4021 movs r1, 0x40 ; '@' ; 64 ; begin dmr sync
| ||||| 0x0802fd56 0e20 movs r0, 0xe ; 14
| ||||| 0x0802fd58 10f014f9 bl c5000_spi0_writereg
| ||||| 0x0802fd5c fff71afe bl bp_sempost
| ||||| 0x0802fd60 dff8500c ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| ||||| 0x0802fd64 0321 movs r1, 3 ; 3
| ||||| 0x0802fd66 0170 strb r1, [r0]
| ||||| 0x0802fd68 40f24e60 movw r0, 0x64e ; 1614
| ||||| 0x0802fd6c 00f0b4fe bl bp_set_freq
| ||||| 0x0802fd70 00f0cafe bl bp_tone_on
| ||||| 0x0802fd74 3c20 movs r0, 0x3c ; '<' ; 60
| ||||| 0x0802fd76 04f09df8 bl OSTimeDly
| ||||| 0x0802fd7a 40f21f40 movw r0, 0x41f ; 1055
| ||||| 0x0802fd7e 00f0abfe bl bp_set_freq
| ||||| 0x0802fd82 2820 movs r0, 0x28 ; '(' ; 40
| ||||| 0x0802fd84 04f096f8 bl OSTimeDly
| ||||| 0x0802fd88 40f24e60 movw r0, 0x64e ; 1614
| ||||| 0x0802fd8c 00f0a4fe bl bp_set_freq
| ||||| 0x0802fd90 2820 movs r0, 0x28 ; '(' ; 40
| ||||| 0x0802fd92 04f08ff8 bl OSTimeDly
| ||||| 0x0802fd96 40f24c50 movw r0, 0x54c ; 1356
| ||||| 0x0802fd9a 00f09dfe bl bp_set_freq
| ||||| 0x0802fd9e 2820 movs r0, 0x28 ; '(' ; 40
| ||||| 0x0802fda0 04f088f8 bl OSTimeDly
| ||||| 0x0802fda4 00f0d8fe bl bp_tone_off
| ||||| 0x0802fda8 fff706fe bl bp_sempost2
| ||||| 0x0802fdac 0024 movs r4, 0
| ||||| 0x0802fdae 0125 movs r5, 1 ; 1
| ||||| 0x0802fdb0 2820 movs r0, 0x28 ; '(' ; 40
| ||||| 0x0802fdb2 04f07ff8 bl OSTimeDly
| ||||| 0x0802fdb6 4421 movs r1, 0x44 ; 'D' ; 68
| ||||| 0x0802fdb8 0e20 movs r0, 0xe ; 14
| ||||| 0x0802fdba 10f0e3f8 bl c5000_spi0_writereg
| ========< 0x0802fdbe 1ae6 b 0x802f9f6
| --------> 0x0802fdc0 fff7e8fd bl bp_sempost
| ||||| 0x0802fdc4 dff8ec0b ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| ||||| 0x0802fdc8 0321 movs r1, 3 ; 3
| ||||| 0x0802fdca 0170 strb r1, [r0]
| ||||| 0x0802fdcc 40f25b20 movw r0, 0x25b ; 603
| ||||| 0x0802fdd0 00f082fe bl bp_set_freq
| ||||| 0x0802fdd4 00f098fe bl bp_tone_on
| ||||| 0x0802fdd8 3c20 movs r0, 0x3c ; '<' ; 60
| ||||| 0x0802fdda 04f06bf8 bl OSTimeDly
| ||||| 0x0802fdde 00f0bbfe bl bp_tone_off
| ||||| 0x0802fde2 fff7e9fd bl bp_sempost2
| ||||| 0x0802fde6 0024 movs r4, 0
| ||||| 0x0802fde8 0125 movs r5, 1 ; 1
| ========< 0x0802fdea 04e6 b 0x802f9f6
| --------> 0x0802fdec fff7d2fd bl bp_sempost
| ||||| 0x0802fdf0 dff8c00b ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| ||||| 0x0802fdf4 0121 movs r1, 1 ; 1
| ||||| 0x0802fdf6 0170 strb r1, [r0]
| ||||| 0x0802fdf8 40f20e61 movw r1, 0x60e ; 1550
| ||||| 0x0802fdfc 40f20730 movw r0, 0x307 ; 775
| ||||| 0x0802fe00 00f072fe bl bp_glisando
| ||||| 0x0802fe04 00f080fe bl bp_tone_on
| ||||| 0x0802fe08 3c20 movs r0, 0x3c ; '<' ; 60
| ||||| 0x0802fe0a 04f053f8 bl OSTimeDly
| ||||| 0x0802fe0e 40f20941 movw r1, 0x409 ; 1033
| ||||| 0x0802fe12 4ff40170 mov.w r0, 0x204 ; 516
| ||||| 0x0802fe16 00f067fe bl bp_glisando
| ||||| 0x0802fe1a 2820 movs r0, 0x28 ; '(' ; 40
| ||||| 0x0802fe1c 04f04af8 bl OSTimeDly
| ||||| 0x0802fe20 40f20e61 movw r1, 0x60e ; 1550
| ||||| 0x0802fe24 40f20730 movw r0, 0x307 ; 775
| ||||| 0x0802fe28 00f05efe bl bp_glisando
| ||||| 0x0802fe2c 2820 movs r0, 0x28 ; '(' ; 40
| ||||| 0x0802fe2e 04f041f8 bl OSTimeDly
| ||||| 0x0802fe32 40f23751 movw r1, 0x537 ; 1335
| ||||| 0x0802fe36 40f28520 movw r0, 0x285 ; 645
| ||||| 0x0802fe3a 00f055fe bl bp_glisando
| ||||| 0x0802fe3e 2820 movs r0, 0x28 ; '(' ; 40
| ||||| 0x0802fe40 04f038f8 bl OSTimeDly
| ||||| 0x0802fe44 00f088fe bl bp_tone_off
| ||||| 0x0802fe48 fff7b6fd bl bp_sempost2
| ||||| 0x0802fe4c 0024 movs r4, 0
| ||||| 0x0802fe4e 0125 movs r5, 1 ; 1
| ========< 0x0802fe50 d1e5 b 0x802f9f6
| --------> 0x0802fe52 fff79ffd bl bp_sempost
| ||||| 0x0802fe56 dff85c0b ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| ||||| 0x0802fe5a 0321 movs r1, 3 ; 3
| ||||| 0x0802fe5c 0170 strb r1, [r0]
| ||||| 0x0802fe5e 4ff40170 mov.w r0, 0x204 ; 516
| ||||| 0x0802fe62 00f039fe bl bp_set_freq
| ||||| 0x0802fe66 00f04ffe bl bp_tone_on
| ||||| 0x0802fe6a 5a20 movs r0, 0x5a ; 'Z' ; 90
| ||||| 0x0802fe6c 04f022f8 bl OSTimeDly
| ||||| 0x0802fe70 40f20730 movw r0, 0x307 ; 775
| ||||| 0x0802fe74 00f030fe bl bp_set_freq
| ||||| 0x0802fe78 1e20 movs r0, 0x1e ; 30
| ||||| 0x0802fe7a 04f01bf8 bl OSTimeDly
| ||||| 0x0802fe7e 40f28520 movw r0, 0x285 ; 645
| ||||| 0x0802fe82 00f029fe bl bp_set_freq
| ||||| 0x0802fe86 1e20 movs r0, 0x1e ; 30
| ||||| 0x0802fe88 04f014f8 bl OSTimeDly
| ||||| 0x0802fe8c 40f20730 movw r0, 0x307 ; 775
| ||||| 0x0802fe90 00f022fe bl bp_set_freq
| ||||| 0x0802fe94 1e20 movs r0, 0x1e ; 30
| ||||| 0x0802fe96 04f00df8 bl OSTimeDly
| ||||| 0x0802fe9a 00f05dfe bl bp_tone_off
| ||||| 0x0802fe9e fff78bfd bl bp_sempost2
| ||||| 0x0802fea2 0024 movs r4, 0
| ||||| 0x0802fea4 0125 movs r5, 1 ; 1
| ========< 0x0802fea6 a6e5 b 0x802f9f6
| ||||`---> 0x0802fea8 fff774fd bl bp_sempost
| |||| 0x0802feac dff8040b ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| |||| 0x0802feb0 0321 movs r1, 3 ; 3
| |||| 0x0802feb2 0170 strb r1, [r0]
| |||| 0x0802feb4 40f69610 movw r0, 0x996 ; 2454
| |||| 0x0802feb8 00f00efe bl bp_set_freq
| |||| 0x0802febc 00f024fe bl bp_tone_on
| |||| 0x0802fec0 c820 movs r0, 0xc8 ; 200
| |||| 0x0802fec2 03f0f7ff bl OSTimeDly
| |||| 0x0802fec6 4ff4e260 mov.w r0, 0x710 ; 1808
| |||| 0x0802feca 00f005fe bl bp_set_freq
| |||| 0x0802fece c820 movs r0, 0xc8 ; 200
| |||| 0x0802fed0 03f0f0ff bl OSTimeDly
| |||| 0x0802fed4 00f040fe bl bp_tone_off
| |||| 0x0802fed8 fff76efd bl bp_sempost2
| |||| 0x0802fedc 0024 movs r4, 0
| |||| 0x0802fede 0125 movs r5, 1 ; 1
| ========< 0x0802fee0 89e5 b 0x802f9f6
| --------> 0x0802fee2 fff757fd bl bp_sempost
| |||| 0x0802fee6 dff8cc0a ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||| 0x0802feea 0321 movs r1, 3 ; 3
| |||| 0x0802feec 0170 strb r1, [r0]
| |||| 0x0802feee 40f69610 movw r0, 0x996 ; 2454
| |||| 0x0802fef2 00f0f1fd bl bp_set_freq
| |||| 0x0802fef6 00f007fe bl bp_tone_on
| |||| 0x0802fefa c820 movs r0, 0xc8 ; 200
| |||| 0x0802fefc 03f0daff bl OSTimeDly
| |||| 0x0802ff00 4ff4e260 mov.w r0, 0x710 ; 1808
| |||| 0x0802ff04 00f0e8fd bl bp_set_freq
| |||| 0x0802ff08 c820 movs r0, 0xc8 ; 200
| |||| 0x0802ff0a 03f0d3ff bl OSTimeDly
| |||| 0x0802ff0e 40f69610 movw r0, 0x996 ; 2454
| |||| 0x0802ff12 00f0e1fd bl bp_set_freq
| |||| 0x0802ff16 c820 movs r0, 0xc8 ; 200
| |||| 0x0802ff18 03f0ccff bl OSTimeDly
| |||| 0x0802ff1c 4ff4e260 mov.w r0, 0x710 ; 1808
| |||| 0x0802ff20 00f0dafd bl bp_set_freq
| |||| 0x0802ff24 c820 movs r0, 0xc8 ; 200
| |||| 0x0802ff26 03f0c5ff bl OSTimeDly
| |||| 0x0802ff2a 00f015fe bl bp_tone_off
| |||| 0x0802ff2e fff743fd bl bp_sempost2
| |||| 0x0802ff32 0024 movs r4, 0
| |||| 0x0802ff34 0125 movs r5, 1 ; 1
| ========< 0x0802ff36 5ee5 b 0x802f9f6
| --------> 0x0802ff38 edb2 uxtb r5, r5
| |||| 0x0802ff3a 002d cmp r5, 0
| |||| ,=< 0x0802ff3c 4cd1 bne 0x802ffd8
| |||| | 0x0802ff3e fff729fd bl bp_sempost
| |||| | 0x0802ff42 dff8700a ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||| | 0x0802ff46 0321 movs r1, 3 ; 3
| |||| | 0x0802ff48 0170 strb r1, [r0]
| |||| | 0x0802ff4a 40f69610 movw r0, 0x996 ; 2454
| |||| | 0x0802ff4e 00f0c3fd bl bp_set_freq
| |||| | 0x0802ff52 00f0d9fd bl bp_tone_on
| |||| | 0x0802ff56 c820 movs r0, 0xc8 ; 200
| |||| | 0x0802ff58 03f0acff bl OSTimeDly
| |||| | 0x0802ff5c 4ff4e260 mov.w r0, 0x710 ; 1808
| |||| | 0x0802ff60 00f0bafd bl bp_set_freq
| |||| | 0x0802ff64 c820 movs r0, 0xc8 ; 200
| |||| | 0x0802ff66 03f0a5ff bl OSTimeDly
| |||| | 0x0802ff6a 40f69610 movw r0, 0x996 ; 2454
| |||| | 0x0802ff6e 00f0b3fd bl bp_set_freq
| |||| | 0x0802ff72 c820 movs r0, 0xc8 ; 200
| |||| | 0x0802ff74 03f09eff bl OSTimeDly
| |||| | 0x0802ff78 4ff4e260 mov.w r0, 0x710 ; 1808
| |||| | 0x0802ff7c 00f0acfd bl bp_set_freq
| |||| | 0x0802ff80 c820 movs r0, 0xc8 ; 200
| |||| | 0x0802ff82 03f097ff bl OSTimeDly
| |||| | 0x0802ff86 40f69610 movw r0, 0x996 ; 2454
| |||| | 0x0802ff8a 00f0a5fd bl bp_set_freq
| |||| | 0x0802ff8e c820 movs r0, 0xc8 ; 200
| |||| | 0x0802ff90 03f090ff bl OSTimeDly
| |||| | 0x0802ff94 4ff4e260 mov.w r0, 0x710 ; 1808
| |||| | 0x0802ff98 00f09efd bl bp_set_freq
| |||| | 0x0802ff9c c820 movs r0, 0xc8 ; 200
| |||| | 0x0802ff9e 03f089ff bl OSTimeDly
| |||| | 0x0802ffa2 40f69610 movw r0, 0x996 ; 2454
| |||| | 0x0802ffa6 00f097fd bl bp_set_freq
| |||| | 0x0802ffaa c820 movs r0, 0xc8 ; 200
| |||| | 0x0802ffac 03f082ff bl OSTimeDly
| |||| | 0x0802ffb0 4ff4e260 mov.w r0, 0x710 ; 1808
| |||| | 0x0802ffb4 00f090fd bl bp_set_freq
| |||| | 0x0802ffb8 c820 movs r0, 0xc8 ; 200
| |||| | 0x0802ffba 03f07bff bl OSTimeDly
| |||| | 0x0802ffbe 00f0cbfd bl bp_tone_off
| |||| | 0x0802ffc2 fff7f9fc bl bp_sempost2
| |||| | 0x0802ffc6 0125 movs r5, 1 ; 1
| |||| | 0x0802ffc8 dff84c08 ldr.w r0, [0x0803081c] ; [0x803081c:4]=0x2001e5d0 msg_timer_500
| |||| | 0x0802ffcc 0088 ldrh r0, [r0]
| |||| | 0x0802ffce 2030 adds r0, 0x20
| |||| | 0x0802ffd0 dff84418 ldr.w r1, [0x0803081c] ; [0x803081c:4]=0x2001e5d0 msg_timer_500
| |||| | 0x0802ffd4 0880 strh r0, [r1]
| |||| ,==< 0x0802ffd6 13e0 b 0x8030000
| |||| |`-> 0x0802ffd8 edb2 uxtb r5, r5
| |||| | 0x0802ffda 0a2d cmp r5, 0xa ; 10
| |||| |,=< 0x0802ffdc 08d2 bhs 0x802fff0
| |||| || 0x0802ffde 6d1c adds r5, r5, 1
| |||| || 0x0802ffe0 dff83408 ldr.w r0, [0x0803081c] ; [0x803081c:4]=0x2001e5d0 msg_timer_500
| |||| || 0x0802ffe4 0088 ldrh r0, [r0]
| |||| || 0x0802ffe6 401c adds r0, r0, 1
| |||| || 0x0802ffe8 dff82c18 ldr.w r1, [0x0803081c] ; [0x803081c:4]=0x2001e5d0 msg_timer_500
| |||| || 0x0802ffec 0880 strh r0, [r1]
| ||||,===< 0x0802ffee 07e0 b 0x8030000
| ||||||`-> 0x0802fff0 0025 movs r5, 0
| |||||| 0x0802fff2 dff82408 ldr.w r0, [0x0803081e] ; [0x803081c:4]=0x2001e5d0 msg_timer_500
| |||||| 0x0802fff6 0088 ldrh r0, [r0]
| |||||| 0x0802fff8 401c adds r0, r0, 1
| |||||| 0x0802fffa dff81c18 ldr.w r1, [0x0803081e] ; [0x803081c:4]=0x2001e5d0 msg_timer_500
| |||||| 0x0802fffe 0880 strh r0, [r1]
| ||||``--> 0x08030000 dff81408 ldr.w r0, [0x0803081c] ; [0x803081c:4]=0x2001e5d0 msg_timer_500
| |||| 0x08030004 0088 ldrh r0, [r0]
| |||| 0x08030006 dff8081d ldr.w r1, [0x08030d16] ; [0x8030d14:4]=0x2001deb8 current_channel_info
| |||| 0x0803000a c97b ldrb r1, [r1, 0xf]
| |||| 0x0803000c 3222 movs r2, 0x32 ; '2' ; 50
| |||| 0x0803000e 5143 muls r1, r2, r1
| |||| 0x08030010 8842 cmp r0, r1
| |||| ,=< 0x08030012 23db blt 0x803005c
| |||| | 0x08030014 dff8f80c ldr.w r0, [0x08030d14] ; [0x8030d14:4]=0x2001deb8 current_channel_info
| |||| | 0x08030018 c07b ldrb r0, [r0, 0xf]
| |||| | 0x0803001a 0028 cmp r0, 0
| |||| ,==< 0x0803001c 1ed0 beq 0x803005c
| |||| || 0x0803001e 0024 movs r4, 0
| |||| || 0x08030020 0125 movs r5, 1 ; 1
| |||| || 0x08030022 dff8f00c ldr.w r0, [0x08030d1a] ; [0x8030d18:4]=0x2001de78 struct_channel_info2
| |||| || 0x08030026 0078 ldrb r0, [r0]
| |||| || 0x08030028 0006 lsls r0, r0, 0x18
| ||||,===< 0x0803002a 0fd5 bpl 0x803004c
| ||||||| 0x0803002c dff8e80c ldr.w r0, [0x08030d1c] ; [0x8030d1c:4]=0x2001e604 q_status_4
| ||||||| 0x08030030 0078 ldrb r0, [r0]
| ||||||| 0x08030032 10f00300 ands r0, r0, 3
| ||||||| 0x08030036 0228 cmp r0, 2 ; 2
| ========< 0x08030038 08d1 bne 0x803004c
| ||||||| 0x0803003a dff8e00c ldr.w r0, [0x08030d22] ; [0x8030d20:4]=0xf8dfb082
| ||||||| 0x0803003e 0078 ldrb r0, [r0]
| ||||||| 0x08030040 50f00100 orrs r0, r0, 1
| ||||||| 0x08030044 dff8d41c ldr.w r1, [0x08030d20] ; [0x8030d20:4]=0xf8dfb082
| ||||||| 0x08030048 0870 strb r0, [r1]
| ========< 0x0803004a 07e0 b 0x803005c
| ----`---> 0x0803004c dff8cc0c ldr.w r0, [0x08030d20] ; [0x8030d20:4]=0xf8dfb082
| |||| || 0x08030050 0078 ldrb r0, [r0]
| |||| || 0x08030052 10f0fe00 ands r0, r0, 0xfe
| |||| || 0x08030056 dff8c41c ldr.w r1, [0x08030d22] ; [0x8030d20:4]=0xf8dfb082
| |||| || 0x0803005a 0870 strb r0, [r1]
| =====``-> 0x0803005c cbe4 b 0x802f9f6
| --------> 0x0803005e fff799fc bl bp_sempost
| |||| 0x08030062 dff85009 ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||| 0x08030066 0321 movs r1, 3 ; 3
| |||| 0x08030068 0170 strb r1, [r0]
| |||| 0x0803006a 40f23440 movw r0, 0x434 ; 1076
| |||| 0x0803006e 00f033fd bl bp_set_freq
| |||| 0x08030072 00f049fd bl bp_tone_on
| |||| 0x08030076 7820 movs r0, 0x78 ; 'x' ; 120
| |||| 0x08030078 03f01cff bl OSTimeDly
| |||| 0x0803007c 00f06cfd bl bp_tone_off
| |||| 0x08030080 4620 movs r0, 0x46 ; 'F' ; 70
| |||| 0x08030082 03f017ff bl OSTimeDly
| |||| 0x08030086 40f23440 movw r0, 0x434 ; 1076
| |||| 0x0803008a 00f025fd bl bp_set_freq
| |||| 0x0803008e 00f03bfd bl bp_tone_on
| |||| 0x08030092 5020 movs r0, 0x50 ; 'P' ; 80
| |||| 0x08030094 03f00eff bl OSTimeDly
| |||| 0x08030098 40f64740 movw r0, 0xc47 ; 3143
| |||| 0x0803009c 00f01cfd bl bp_set_freq
| |||| 0x080300a0 4620 movs r0, 0x46 ; 'F' ; 70
| |||| 0x080300a2 03f007ff bl OSTimeDly
| |||| 0x080300a6 00f057fd bl bp_tone_off
| |||| 0x080300aa c820 movs r0, 0xc8 ; 200
| |||| 0x080300ac 03f002ff bl OSTimeDly
| |||| 0x080300b0 40f23440 movw r0, 0x434 ; 1076
| |||| 0x080300b4 00f010fd bl bp_set_freq
| |||| 0x080300b8 00f026fd bl bp_tone_on
| |||| 0x080300bc 5020 movs r0, 0x50 ; 'P' ; 80
| |||| 0x080300be 03f0f9fe bl OSTimeDly
| |||| 0x080300c2 40f23750 movw r0, 0x537 ; 1335
| |||| 0x080300c6 00f007fd bl bp_set_freq
| |||| 0x080300ca 3c20 movs r0, 0x3c ; '<' ; 60
| |||| 0x080300cc 03f0f2fe bl OSTimeDly
| |||| 0x080300d0 40f23960 movw r0, 0x639 ; 1593
| |||| 0x080300d4 00f000fd bl bp_set_freq
| |||| 0x080300d8 3c20 movs r0, 0x3c ; '<' ; 60
| |||| 0x080300da 03f0ebfe bl OSTimeDly
| |||| 0x080300de 00f03bfd bl bp_tone_off
| |||| 0x080300e2 fff769fc bl bp_sempost2
| |||| 0x080300e6 0024 movs r4, 0
| |||| 0x080300e8 0125 movs r5, 1 ; 1
| ========< 0x080300ea 84e4 b 0x802f9f6
| --------> 0x080300ec fff752fc bl bp_sempost
| |||| 0x080300f0 dff8c008 ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| |||| 0x080300f4 0321 movs r1, 3 ; 3
| |||| 0x080300f6 0170 strb r1, [r0]
| |||| 0x080300f8 40f23440 movw r0, 0x434 ; 1076
| |||| 0x080300fc 00f0ecfc bl bp_set_freq
| |||| 0x08030100 00f002fd bl bp_tone_on
| |||| 0x08030104 7820 movs r0, 0x78 ; 'x' ; 120
| |||| 0x08030106 03f0d5fe bl OSTimeDly
| |||| 0x0803010a 00f025fd bl bp_tone_off
| |||| 0x0803010e 4620 movs r0, 0x46 ; 'F' ; 70
| |||| 0x08030110 03f0d0fe bl OSTimeDly
| |||| 0x08030114 40f23440 movw r0, 0x434 ; 1076
| |||| 0x08030118 00f0defc bl bp_set_freq
| |||| 0x0803011c 00f0f4fc bl bp_tone_on
| |||| 0x08030120 5020 movs r0, 0x50 ; 'P' ; 80
| |||| 0x08030122 03f0c7fe bl OSTimeDly
| |||| 0x08030126 40f64740 movw r0, 0xc47 ; 3143
| |||| 0x0803012a 00f0d5fc bl bp_set_freq
| |||| 0x0803012e 4620 movs r0, 0x46 ; 'F' ; 70
| |||| 0x08030130 03f0c0fe bl OSTimeDly
| |||| 0x08030134 00f010fd bl bp_tone_off
| |||| 0x08030138 c820 movs r0, 0xc8 ; 200
| |||| 0x0803013a 03f0bbfe bl OSTimeDly
| |||| 0x0803013e 4ff47d70 mov.w r0, 0x3f4 ; 1012
| |||| 0x08030142 00f0c9fc bl bp_set_freq
| |||| 0x08030146 00f0dffc bl bp_tone_on
| |||| 0x0803014a 5020 movs r0, 0x50 ; 'P' ; 80
| |||| 0x0803014c 03f0b2fe bl OSTimeDly
| |||| 0x08030150 40f23230 movw r0, 0x332 ; 818
| |||| 0x08030154 00f0c0fc bl bp_set_freq
| |||| 0x08030158 3c20 movs r0, 0x3c ; '<' ; 60
| |||| 0x0803015a 03f0abfe bl OSTimeDly
| |||| 0x0803015e 4ff41c70 mov.w r0, 0x270 ; 624
| |||| 0x08030162 00f0b9fc bl bp_set_freq
| |||| 0x08030166 3c20 movs r0, 0x3c ; '<' ; 60
| |||| 0x08030168 03f0a4fe bl OSTimeDly
| |||| 0x0803016c 00f0f4fc bl bp_tone_off
| |||| 0x08030170 fff722fc bl bp_sempost2
| |||| 0x08030174 0024 movs r4, 0
| |||| 0x08030176 0125 movs r5, 1 ; 1
| ========< 0x08030178 3de4 b 0x802f9f6
| --------> 0x0803017a edb2 uxtb r5, r5
| |||| 0x0803017c 002d cmp r5, 0
| |||| ,=< 0x0803017e 55d1 bne 0x803022c
| |||| | 0x08030180 fff708fc bl bp_sempost
| |||| | 0x08030184 dff82c08 ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| |||| | 0x08030188 0121 movs r1, 1 ; 1
| |||| | 0x0803018a 0170 strb r1, [r0]
| |||| | 0x0803018c 40f64321 movw r1, 0xa43 ; 2627
| |||| | 0x08030190 4ff40170 mov.w r0, 0x204 ; 516
| |||| | 0x08030194 00f0a8fc bl bp_glisando
| |||| | 0x08030198 00f0b6fc bl bp_tone_on
| |||| | 0x0803019c 5020 movs r0, 0x50 ; 'P' ; 80
| |||| | 0x0803019e 03f089fe bl OSTimeDly
| |||| | 0x080301a2 40f20941 movw r1, 0x409 ; 1033
| |||| | 0x080301a6 4ff40170 mov.w r0, 0x204 ; 516
| |||| | 0x080301aa 00f09dfc bl bp_glisando
| |||| | 0x080301ae 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x080301b0 03f080fe bl OSTimeDly
| |||| | 0x080301b4 40f64321 movw r1, 0xa43 ; 2627
| |||| | 0x080301b8 4ff40170 mov.w r0, 0x204 ; 516
| |||| | 0x080301bc 00f094fc bl bp_glisando
| |||| | 0x080301c0 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x080301c2 03f077fe bl OSTimeDly
| |||| | 0x080301c6 40f20941 movw r1, 0x409 ; 1033
| |||| | 0x080301ca 4ff40170 mov.w r0, 0x204 ; 516
| |||| | 0x080301ce 00f08bfc bl bp_glisando
| |||| | 0x080301d2 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x080301d4 03f06efe bl OSTimeDly
| |||| | 0x080301d8 40f64321 movw r1, 0xa43 ; 2627
| |||| | 0x080301dc 4ff40170 mov.w r0, 0x204 ; 516
| |||| | 0x080301e0 00f082fc bl bp_glisando
| |||| | 0x080301e4 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x080301e6 03f065fe bl OSTimeDly
| |||| | 0x080301ea 40f20941 movw r1, 0x409 ; 1033
| |||| | 0x080301ee 4ff40170 mov.w r0, 0x204 ; 516
| |||| | 0x080301f2 00f079fc bl bp_glisando
| |||| | 0x080301f6 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x080301f8 03f05cfe bl OSTimeDly
| |||| | 0x080301fc 40f64321 movw r1, 0xa43 ; 2627
| |||| | 0x08030200 4ff40170 mov.w r0, 0x204 ; 516
| |||| | 0x08030204 00f070fc bl bp_glisando
| |||| | 0x08030208 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x0803020a 03f053fe bl OSTimeDly
| |||| | 0x0803020e 40f20941 movw r1, 0x409 ; 1033
| |||| | 0x08030212 4ff40170 mov.w r0, 0x204 ; 516
| |||| | 0x08030216 00f067fc bl bp_glisando
| |||| | 0x0803021a 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x0803021c 03f04afe bl OSTimeDly
| |||| | 0x08030220 00f09afc bl bp_tone_off
| |||| | 0x08030224 fff7c8fb bl bp_sempost2
| |||| | 0x08030228 0125 movs r5, 1 ; 1
| |||| ,==< 0x0803022a 05e0 b 0x8030238
| |||| |`-> 0x0803022c edb2 uxtb r5, r5
| |||| | 0x0803022e 0a2d cmp r5, 0xa ; 10
| |||| |,=< 0x08030230 01d2 bhs 0x8030236
| |||| || 0x08030232 6d1c adds r5, r5, 1
| ||||,===< 0x08030234 00e0 b 0x8030238
| ||||||`-> 0x08030236 0025 movs r5, 0
| ====``--> 0x08030238 fff7ddbb b.w 0x802f9f6
| --------> 0x0803023c edb2 uxtb r5, r5
| |||| 0x0803023e 002d cmp r5, 0
| |||| ,=< 0x08030240 55d1 bne 0x80302ee
| |||| | 0x08030242 fff7a7fb bl bp_sempost
| |||| | 0x08030246 dff86c07 ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||| | 0x0803024a 0121 movs r1, 1 ; 1
| |||| | 0x0803024c 0170 strb r1, [r0]
| |||| | 0x0803024e 40f61301 movw r1, 0x813 ; 2067
| |||| | 0x08030252 40f20940 movw r0, 0x409 ; 1033
| |||| | 0x08030256 00f047fc bl bp_glisando
| |||| | 0x0803025a 00f055fc bl bp_tone_on
| |||| | 0x0803025e 5020 movs r0, 0x50 ; 'P' ; 80
| |||| | 0x08030260 03f028fe bl OSTimeDly
| |||| | 0x08030264 40f29171 movw r1, 0x791 ; 1937
| |||| | 0x08030268 40f2de30 movw r0, 0x3de ; 990
| |||| | 0x0803026c 00f03cfc bl bp_glisando
| |||| | 0x08030270 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x08030272 03f01ffe bl OSTimeDly
| |||| | 0x08030276 40f61301 movw r1, 0x813 ; 2067
| |||| | 0x0803027a 40f20940 movw r0, 0x409 ; 1033
| |||| | 0x0803027e 00f033fc bl bp_glisando
| |||| | 0x08030282 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x08030284 03f016fe bl OSTimeDly
| |||| | 0x08030288 40f29171 movw r1, 0x791 ; 1937
| |||| | 0x0803028c 40f2de30 movw r0, 0x3de ; 990
| |||| | 0x08030290 00f02afc bl bp_glisando
| |||| | 0x08030294 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x08030296 03f00dfe bl OSTimeDly
| |||| | 0x0803029a 40f61301 movw r1, 0x813 ; 2067
| |||| | 0x0803029e 40f20940 movw r0, 0x409 ; 1033
| |||| | 0x080302a2 00f021fc bl bp_glisando
| |||| | 0x080302a6 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x080302a8 03f004fe bl OSTimeDly
| |||| | 0x080302ac 40f29171 movw r1, 0x791 ; 1937
| |||| | 0x080302b0 40f2de30 movw r0, 0x3de ; 990
| |||| | 0x080302b4 00f018fc bl bp_glisando
| |||| | 0x080302b8 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x080302ba 03f0fbfd bl OSTimeDly
| |||| | 0x080302be 40f61301 movw r1, 0x813 ; 2067
| |||| | 0x080302c2 40f20940 movw r0, 0x409 ; 1033
| |||| | 0x080302c6 00f00ffc bl bp_glisando
| |||| | 0x080302ca 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x080302cc 03f0f2fd bl OSTimeDly
| |||| | 0x080302d0 40f29171 movw r1, 0x791 ; 1937
| |||| | 0x080302d4 40f2de30 movw r0, 0x3de ; 990
| |||| | 0x080302d8 00f006fc bl bp_glisando
| |||| | 0x080302dc 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x080302de 03f0e9fd bl OSTimeDly
| |||| | 0x080302e2 00f039fc bl bp_tone_off
| |||| | 0x080302e6 fff767fb bl bp_sempost2
| |||| | 0x080302ea 0125 movs r5, 1 ; 1
| |||| ,==< 0x080302ec 05e0 b 0x80302fa
| |||| |`-> 0x080302ee edb2 uxtb r5, r5
| |||| | 0x080302f0 0a2d cmp r5, 0xa ; 10
| |||| |,=< 0x080302f2 01d2 bhs 0x80302f8
| |||| || 0x080302f4 6d1c adds r5, r5, 1
| ||||,===< 0x080302f6 00e0 b 0x80302fa
| ||||||`-> 0x080302f8 0025 movs r5, 0
| ====``--> 0x080302fa fff77cbb b.w 0x802f9f6
| --------> 0x080302fe edb2 uxtb r5, r5
| |||| 0x08030300 002d cmp r5, 0
| |||| ,=< 0x08030302 55d1 bne 0x80303b0
| |||| | 0x08030304 fff746fb bl bp_sempost
| |||| | 0x08030308 dff8a806 ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| |||| | 0x0803030c 0121 movs r1, 1 ; 1
| |||| | 0x0803030e 0170 strb r1, [r0]
| |||| | 0x08030310 40f20941 movw r1, 0x409 ; 1033
| |||| | 0x08030314 4ff40170 mov.w r0, 0x204 ; 516
| |||| | 0x08030318 00f0e6fb bl bp_glisando
| |||| | 0x0803031c 00f0f4fb bl bp_tone_on
| |||| | 0x08030320 5020 movs r0, 0x50 ; 'P' ; 80
| |||| | 0x08030322 03f0c7fd bl OSTimeDly
| |||| | 0x08030326 40f20b51 movw r1, 0x50b ; 1291
| |||| | 0x0803032a 40f28520 movw r0, 0x285 ; 645
| |||| | 0x0803032e 00f0dbfb bl bp_glisando
| |||| | 0x08030332 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x08030334 03f0befd bl OSTimeDly
| |||| | 0x08030338 40f20941 movw r1, 0x409 ; 1033
| |||| | 0x0803033c 4ff40170 mov.w r0, 0x204 ; 516
| |||| | 0x08030340 00f0d2fb bl bp_glisando
| |||| | 0x08030344 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x08030346 03f0b5fd bl OSTimeDly
| |||| | 0x0803034a 40f20b51 movw r1, 0x50b ; 1291
| |||| | 0x0803034e 40f28520 movw r0, 0x285 ; 645
| |||| | 0x08030352 00f0c9fb bl bp_glisando
| |||| | 0x08030356 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x08030358 03f0acfd bl OSTimeDly
| |||| | 0x0803035c 40f20941 movw r1, 0x409 ; 1033
| |||| | 0x08030360 4ff40170 mov.w r0, 0x204 ; 516
| |||| | 0x08030364 00f0c0fb bl bp_glisando
| |||| | 0x08030368 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x0803036a 03f0a3fd bl OSTimeDly
| |||| | 0x0803036e 40f20b51 movw r1, 0x50b ; 1291
| |||| | 0x08030372 40f28520 movw r0, 0x285 ; 645
| |||| | 0x08030376 00f0b7fb bl bp_glisando
| |||| | 0x0803037a 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x0803037c 03f09afd bl OSTimeDly
| |||| | 0x08030380 40f20941 movw r1, 0x409 ; 1033
| |||| | 0x08030384 4ff40170 mov.w r0, 0x204 ; 516
| |||| | 0x08030388 00f0aefb bl bp_glisando
| |||| | 0x0803038c 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x0803038e 03f091fd bl OSTimeDly
| |||| | 0x08030392 40f20b51 movw r1, 0x50b ; 1291
| |||| | 0x08030396 40f28520 movw r0, 0x285 ; 645
| |||| | 0x0803039a 00f0a5fb bl bp_glisando
| |||| | 0x0803039e 3c20 movs r0, 0x3c ; '<' ; 60
| |||| | 0x080303a0 03f088fd bl OSTimeDly
| |||| | 0x080303a4 00f0d8fb bl bp_tone_off
| |||| | 0x080303a8 fff706fb bl bp_sempost2
| |||| | 0x080303ac 0125 movs r5, 1 ; 1
| |||| ,==< 0x080303ae 05e0 b 0x80303bc
| |||| |`-> 0x080303b0 edb2 uxtb r5, r5
| |||| | 0x080303b2 0a2d cmp r5, 0xa ; 10
| |||| |,=< 0x080303b4 01d2 bhs 0x80303ba
| |||| || 0x080303b6 6d1c adds r5, r5, 1
| ||||,===< 0x080303b8 00e0 b 0x80303bc
| ||||||`-> 0x080303ba 0025 movs r5, 0
| ====``--> 0x080303bc fff71bbb b.w 0x802f9f6
| ------.-> 0x080303c0 edb2 uxtb r5, r5
| |||| | 0x080303c2 002d cmp r5, 0
| |||| ,==< 0x080303c4 30d1 bne 0x8030428
| |||| || 0x080303c6 fff7e5fa bl bp_sempost
| |||| || 0x080303ca dff8e805 ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||| || 0x080303ce 0321 movs r1, 3 ; 3
| |||| || 0x080303d0 0170 strb r1, [r0]
| |||| || 0x080303d2 40f23440 movw r0, 0x434 ; 1076
| |||| || 0x080303d6 00f07ffb bl bp_set_freq
| |||| || 0x080303da 00f095fb bl bp_tone_on
| |||| || 0x080303de 6420 movs r0, 0x64 ; 'd' ; 100
| |||| || 0x080303e0 03f068fd bl OSTimeDly
| |||| || 0x080303e4 40f2b540 movw r0, 0x4b5 ; 1205
| |||| || 0x080303e8 00f076fb bl bp_set_freq
| |||| || 0x080303ec 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x080303ee 03f061fd bl OSTimeDly
| |||| || 0x080303f2 40f23440 movw r0, 0x434 ; 1076
| |||| || 0x080303f6 00f06ffb bl bp_set_freq
| |||| || 0x080303fa 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x080303fc 03f05afd bl OSTimeDly
| |||| || 0x08030400 40f23750 movw r0, 0x537 ; 1335
| |||| || 0x08030404 00f068fb bl bp_set_freq
| |||| || 0x08030408 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x0803040a 03f053fd bl OSTimeDly
| |||| || 0x0803040e 40f23440 movw r0, 0x434 ; 1076
| |||| || 0x08030412 00f061fb bl bp_set_freq
| |||| || 0x08030416 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x08030418 03f04cfd bl OSTimeDly
| |||| || 0x0803041c 00f09cfb bl bp_tone_off
| |||| || 0x08030420 fff7cafa bl bp_sempost2
| |||| || 0x08030424 0125 movs r5, 1 ; 1
| ||||,===< 0x08030426 05e0 b 0x8030434
| |||||`--> 0x08030428 edb2 uxtb r5, r5
| ||||| | 0x0803042a 0a2d cmp r5, 0xa ; 10
| |||||,==< 0x0803042c 01d2 bhs 0x8030432
| ||||||| 0x0803042e 6d1c adds r5, r5, 1
| ========< 0x08030430 00e0 b 0x8030434
| |||||`--> 0x08030432 0025 movs r5, 0
| ====`---> 0x08030434 fff7dfba b.w 0x802f9f6
| --------> 0x08030438 edb2 uxtb r5, r5
| |||| | 0x0803043a 002d cmp r5, 0
| |||| ,==< 0x0803043c 29d1 bne 0x8030492
| |||| || 0x0803043e fff7a9fa bl bp_sempost
| |||| || 0x08030442 dff87005 ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||| || 0x08030446 0321 movs r1, 3 ; 3
| |||| || 0x08030448 0170 strb r1, [r0]
| |||| || 0x0803044a 40f20e60 movw r0, 0x60e ; 1550
| |||| || 0x0803044e 00f043fb bl bp_set_freq
| |||| || 0x08030452 00f059fb bl bp_tone_on
| |||| || 0x08030456 6420 movs r0, 0x64 ; 'd' ; 100
| |||| || 0x08030458 03f02cfd bl OSTimeDly
| |||| || 0x0803045c 40f2ba60 movw r0, 0x6ba ; 1722
| |||| || 0x08030460 00f03afb bl bp_set_freq
| |||| || 0x08030464 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x08030466 03f025fd bl OSTimeDly
| |||| || 0x0803046a 40f20e60 movw r0, 0x60e ; 1550
| |||| || 0x0803046e 00f033fb bl bp_set_freq
| |||| || 0x08030472 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x08030474 03f01efd bl OSTimeDly
| |||| || 0x08030478 40f23750 movw r0, 0x537 ; 1335
| |||| || 0x0803047c 00f02cfb bl bp_set_freq
| |||| || 0x08030480 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x08030482 03f017fd bl OSTimeDly
| |||| || 0x08030486 00f067fb bl bp_tone_off
| |||| || 0x0803048a fff795fa bl bp_sempost2
| |||| || 0x0803048e 0125 movs r5, 1 ; 1
| ||||,===< 0x08030490 05e0 b 0x803049e
| |||||`--> 0x08030492 edb2 uxtb r5, r5
| ||||| | 0x08030494 0a2d cmp r5, 0xa ; 10
| |||||,==< 0x08030496 01d2 bhs 0x803049c
| ||||||| 0x08030498 6d1c adds r5, r5, 1
| ========< 0x0803049a 00e0 b 0x803049e
| |||||`--> 0x0803049c 0025 movs r5, 0
| ====`---> 0x0803049e fff7aaba b.w 0x802f9f6
| --------> 0x080304a2 edb2 uxtb r5, r5
| |||| | 0x080304a4 002d cmp r5, 0
| |||| ,==< 0x080304a6 30d1 bne 0x803050a
| |||| || 0x080304a8 fff774fa bl bp_sempost
| |||| || 0x080304ac dff80405 ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| |||| || 0x080304b0 0321 movs r1, 3 ; 3
| |||| || 0x080304b2 0170 strb r1, [r0]
| |||| || 0x080304b4 40f20940 movw r0, 0x409 ; 1033
| |||| || 0x080304b8 00f00efb bl bp_set_freq
| |||| || 0x080304bc 00f024fb bl bp_tone_on
| |||| || 0x080304c0 6420 movs r0, 0x64 ; 'd' ; 100
| |||| || 0x080304c2 03f0f7fc bl OSTimeDly
| |||| || 0x080304c6 40f28a40 movw r0, 0x48a ; 1162
| |||| || 0x080304ca 00f005fb bl bp_set_freq
| |||| || 0x080304ce 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x080304d0 03f0f0fc bl OSTimeDly
| |||| || 0x080304d4 40f23750 movw r0, 0x537 ; 1335
| |||| || 0x080304d8 00f0fefa bl bp_set_freq
| |||| || 0x080304dc 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x080304de 03f0e9fc bl OSTimeDly
| |||| || 0x080304e2 40f28b40 movw r0, 0x48b ; 1163
| |||| || 0x080304e6 00f0f7fa bl bp_set_freq
| |||| || 0x080304ea 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x080304ec 03f0e2fc bl OSTimeDly
| |||| || 0x080304f0 40f20940 movw r0, 0x409 ; 1033
| |||| || 0x080304f4 00f0f0fa bl bp_set_freq
| |||| || 0x080304f8 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x080304fa 03f0dbfc bl OSTimeDly
| |||| || 0x080304fe 00f02bfb bl bp_tone_off
| |||| || 0x08030502 fff759fa bl bp_sempost2
| |||| || 0x08030506 0125 movs r5, 1 ; 1
| ||||,===< 0x08030508 05e0 b 0x8030516
| |||||`--> 0x0803050a edb2 uxtb r5, r5
| ||||| | 0x0803050c 0a2d cmp r5, 0xa ; 10
| |||||,==< 0x0803050e 01d2 bhs 0x8030514
| --------> 0x08030510 6d1c adds r5, r5, 1
| ========< 0x08030512 00e0 b 0x8030516
| |||||`--> 0x08030514 0025 movs r5, 0
| ====`---> 0x08030516 fff76eba b.w 0x802f9f6
| --------> 0x0803051a edb2 uxtb r5, r5
| |||| | 0x0803051c 002d cmp r5, 0
| |||| ,==< 0x0803051e 69d1 bne 0x80305f4
| |||| || 0x08030520 fff738fa bl bp_sempost
| |||| || 0x08030524 dff88c04 ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| |||| || 0x08030528 0321 movs r1, 3 ; 3
| |||| || 0x0803052a 0170 strb r1, [r0]
| |||| || 0x0803052c 40f2e350 movw r0, 0x5e3 ; 1507
| |||| || 0x08030530 00f0d2fa bl bp_set_freq
| |||| || 0x08030534 00f0e8fa bl bp_tone_on
| |||| || 0x08030538 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x0803053a 03f0bbfc bl OSTimeDly
| |||| || 0x0803053e dff87404 ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||| || 0x08030542 0121 movs r1, 1 ; 1
| |||| || 0x08030544 0170 strb r1, [r0]
| |||| || 0x08030546 40f6c631 movw r1, 0xbc6 ; 3014
| |||| || 0x0803054a 40f2bd70 movw r0, 0x7bd ; 1981
| |||| || 0x0803054e 00f0cbfa bl bp_glisando
| |||| || 0x08030552 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x08030554 03f0aefc bl OSTimeDly
| |||| || 0x08030558 dff85804 ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| |||| || 0x0803055c 0321 movs r1, 3 ; 3
| |||| || 0x0803055e 0170 strb r1, [r0]
| |||| || 0x08030560 40f2e350 movw r0, 0x5e3 ; 1507
| |||| || 0x08030564 00f0b8fa bl bp_set_freq
| |||| || 0x08030568 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x0803056a 03f0a3fc bl OSTimeDly
| |||| || 0x0803056e dff84404 ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||| || 0x08030572 0121 movs r1, 1 ; 1
| |||| || 0x08030574 0170 strb r1, [r0]
| |||| || 0x08030576 40f6c631 movw r1, 0xbc6 ; 3014
| |||| || 0x0803057a 40f2bd70 movw r0, 0x7bd ; 1981
| |||| || 0x0803057e 00f0b3fa bl bp_glisando
| |||| || 0x08030582 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x08030584 03f096fc bl OSTimeDly
| |||| || 0x08030588 dff82804 ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| |||| || 0x0803058c 0321 movs r1, 3 ; 3
| |||| || 0x0803058e 0170 strb r1, [r0]
| |||| || 0x08030590 40f2e350 movw r0, 0x5e3 ; 1507
| |||| || 0x08030594 00f0a0fa bl bp_set_freq
| |||| || 0x08030598 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x0803059a 03f08bfc bl OSTimeDly
| |||| || 0x0803059e dff81404 ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||| || 0x080305a2 0121 movs r1, 1 ; 1
| |||| || 0x080305a4 0170 strb r1, [r0]
| |||| || 0x080305a6 40f6c631 movw r1, 0xbc6 ; 3014
| |||| || 0x080305aa 40f2bd70 movw r0, 0x7bd ; 1981
| |||| || 0x080305ae 00f09bfa bl bp_glisando
| |||| || 0x080305b2 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x080305b4 03f07efc bl OSTimeDly
| |||| || 0x080305b8 dff8f803 ldr.w r0, [Timer8ToneGenerator] ; [0x80309b8:4]=0xf8dfb580
| |||| || 0x080305bc 0321 movs r1, 3 ; 3
| |||| || 0x080305be 0170 strb r1, [r0]
| |||| || 0x080305c0 40f2e350 movw r0, 0x5e3 ; 1507
| |||| || 0x080305c4 00f088fa bl bp_set_freq
| |||| || 0x080305c8 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x080305ca 03f073fc bl OSTimeDly
| |||| || 0x080305ce dff8e403 ldr.w r0, [0x080309ba] ; [0x80309b8:4]=0xf8dfb580
| |||| || 0x080305d2 0121 movs r1, 1 ; 1
| |||| || 0x080305d4 0170 strb r1, [r0]
| |||| || 0x080305d6 40f6c631 movw r1, 0xbc6 ; 3014
| |||| || 0x080305da 40f2bd70 movw r0, 0x7bd ; 1981
| |||| || 0x080305de 00f083fa bl bp_glisando
| |||| || 0x080305e2 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x080305e4 03f066fc bl OSTimeDly
| |||| || 0x080305e8 00f0b6fa bl bp_tone_off
| |||| || 0x080305ec fff7e4f9 bl bp_sempost2
| |||| || 0x080305f0 0125 movs r5, 1 ; 1
| ||||,===< 0x080305f2 06e0 b 0x8030602
| |||||`--> 0x080305f4 edb2 uxtb r5, r5
| ||||| | 0x080305f6 0a2d cmp r5, 0xa ; 10
| |||||,==< 0x080305f8 01d2 bhs 0x80305fe
| ||||||| 0x080305fa 6d1c adds r5, r5, 1
| ========< 0x080305fc 01e0 b 0x8030602
| |||||`--> 0x080305fe 0225 movs r5, 2 ; 2
| ||||| | 0x08030600 0024 movs r4, 0
| ====`---> 0x08030602 fff7f8b9 b.w 0x802f9f6
| --------> 0x08030606 edb2 uxtb r5, r5
| |||| | 0x08030608 002d cmp r5, 0
| |||| ,==< 0x0803060a 61d1 bne 0x80306d0
| |||| || 0x0803060c fff7c2f9 bl bp_sempost
| |||| || 0x08030610 e848 ldr r0, [0x080309b4] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| || 0x08030612 0321 movs r1, 3 ; 3
| |||| || 0x08030614 0170 strb r1, [r0]
| |||| || 0x08030616 40f6c110 movw r0, 0x9c1 ; 2497
| |||| || 0x0803061a 00f05dfa bl bp_set_freq
| |||| || 0x0803061e 00f073fa bl bp_tone_on
| |||| || 0x08030622 5020 movs r0, 0x50 ; 'P' ; 80
| |||| || 0x08030624 03f046fc bl OSTimeDly
| |||| || 0x08030628 e248 ldr r0, [0x080309b4] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| || 0x0803062a 0121 movs r1, 1 ; 1
| |||| || 0x0803062c 0170 strb r1, [r0]
| |||| || 0x0803062e 40f6c111 movw r1, 0x9c1 ; 2497
| |||| || 0x08030632 4ff4b760 mov.w r0, 0x5b8 ; 1464
| |||| || 0x08030636 00f057fa bl bp_glisando
| |||| || 0x0803063a 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x0803063c 03f03afc bl OSTimeDly
| |||| || 0x08030640 dc48 ldr r0, [0x080309b4] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| || 0x08030642 0321 movs r1, 3 ; 3
| |||| || 0x08030644 0170 strb r1, [r0]
| |||| || 0x08030646 40f6c110 movw r0, 0x9c1 ; 2497
| |||| || 0x0803064a 00f045fa bl bp_set_freq
| |||| || 0x0803064e 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x08030650 03f030fc bl OSTimeDly
| |||| || 0x08030654 d748 ldr r0, [0x080309b4] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| || 0x08030656 0121 movs r1, 1 ; 1
| |||| || 0x08030658 0170 strb r1, [r0]
| |||| || 0x0803065a 40f6c111 movw r1, 0x9c1 ; 2497
| |||| || 0x0803065e 4ff4b760 mov.w r0, 0x5b8 ; 1464
| |||| || 0x08030662 00f041fa bl bp_glisando
| |||| || 0x08030666 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x08030668 03f024fc bl OSTimeDly
| |||| || 0x0803066c d148 ldr r0, [0x080309b4] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| || 0x0803066e 0321 movs r1, 3 ; 3
| |||| || 0x08030670 0170 strb r1, [r0]
| |||| || 0x08030672 40f6c110 movw r0, 0x9c1 ; 2497
| |||| || 0x08030676 00f02ffa bl bp_set_freq
| |||| || 0x0803067a 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x0803067c 03f01afc bl OSTimeDly
| |||| || 0x08030680 cc48 ldr r0, [0x080309b4] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| || 0x08030682 0121 movs r1, 1 ; 1
| |||| || 0x08030684 0170 strb r1, [r0]
| |||| || 0x08030686 40f6c111 movw r1, 0x9c1 ; 2497
| |||| || 0x0803068a 4ff4b760 mov.w r0, 0x5b8 ; 1464
| |||| || 0x0803068e 00f02bfa bl bp_glisando
| |||| || 0x08030692 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x08030694 03f00efc bl OSTimeDly
| |||| || 0x08030698 c648 ldr r0, [0x080309b4] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| || 0x0803069a 0321 movs r1, 3 ; 3
| |||| || 0x0803069c 0170 strb r1, [r0]
| |||| || 0x0803069e 40f6c110 movw r0, 0x9c1 ; 2497
| |||| || 0x080306a2 00f019fa bl bp_set_freq
| |||| || 0x080306a6 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x080306a8 03f004fc bl OSTimeDly
| |||| || 0x080306ac c148 ldr r0, [0x080309b4] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| || 0x080306ae 0121 movs r1, 1 ; 1
| |||| || 0x080306b0 0170 strb r1, [r0]
| |||| || 0x080306b2 40f6c111 movw r1, 0x9c1 ; 2497
| |||| || 0x080306b6 4ff4b760 mov.w r0, 0x5b8 ; 1464
| |||| || 0x080306ba 00f015fa bl bp_glisando
| |||| || 0x080306be 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x080306c0 03f0f8fb bl OSTimeDly
| |||| || 0x080306c4 00f048fa bl bp_tone_off
| |||| || 0x080306c8 fff776f9 bl bp_sempost2
| |||| || 0x080306cc 0125 movs r5, 1 ; 1
| ||||,===< 0x080306ce 07e0 b 0x80306e0
| |||||`--> 0x080306d0 edb2 uxtb r5, r5
| ||||| | 0x080306d2 0a2d cmp r5, 0xa ; 10
| |||||,==< 0x080306d4 01d2 bhs 0x80306da
| ||||||| 0x080306d6 6d1c adds r5, r5, 1
| ========< 0x080306d8 02e0 b 0x80306e0
| |||||`--> 0x080306da 0225 movs r5, 2 ; 2
| ||||| | 0x080306dc 0020 movs r0, 0
| ||||| | 0x080306de 0500 movs r5, r0
| ====`---> 0x080306e0 fff789b9 b.w 0x802f9f6
| --------> 0x080306e4 edb2 uxtb r5, r5
| |||| | 0x080306e6 002d cmp r5, 0
| |||| ,==< 0x080306e8 34d1 bne 0x8030754
| |||| || 0x080306ea fff753f9 bl bp_sempost
| |||| || 0x080306ee b148 ldr r0, [0x080309b6] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| || 0x080306f0 0321 movs r1, 3 ; 3
| |||| || 0x080306f2 0170 strb r1, [r0]
| |||| || 0x080306f4 40f6c420 movw r0, 0xac4 ; 2756
| |||| || 0x080306f8 00f0eef9 bl bp_set_freq
| |||| || 0x080306fc 00f004fa bl bp_tone_on
| |||| || 0x08030700 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x08030702 03f0d7fb bl OSTimeDly
| |||| || 0x08030706 00f027fa bl bp_tone_off
| |||| || 0x0803070a 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x0803070c 03f0d2fb bl OSTimeDly
| |||| || 0x08030710 00f0faf9 bl bp_tone_on
| |||| || 0x08030714 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x08030716 03f0cdfb bl OSTimeDly
| |||| || 0x0803071a 00f01dfa bl bp_tone_off
| |||| || 0x0803071e 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x08030720 03f0c8fb bl OSTimeDly
| |||| || 0x08030724 00f0f0f9 bl bp_tone_on
| |||| || 0x08030728 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x0803072a 03f0c3fb bl OSTimeDly
| |||| || 0x0803072e 00f013fa bl bp_tone_off
| |||| || 0x08030732 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x08030734 03f0befb bl OSTimeDly
| |||| || 0x08030738 00f0e6f9 bl bp_tone_on
| |||| || 0x0803073c 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x0803073e 03f0b9fb bl OSTimeDly
| |||| || 0x08030742 00f009fa bl bp_tone_off
| |||| || 0x08030746 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x08030748 03f0b4fb bl OSTimeDly
| |||| || 0x0803074c fff734f9 bl bp_sempost2
| |||| || 0x08030750 0125 movs r5, 1 ; 1
| ||||,===< 0x08030752 05e0 b 0x8030760
| |||||`--> 0x08030754 edb2 uxtb r5, r5
| ||||| | 0x08030756 0a2d cmp r5, 0xa ; 10
| |||||,==< 0x08030758 01d2 bhs 0x803075e
| ||||||| 0x0803075a 6d1c adds r5, r5, 1
| ========< 0x0803075c 00e0 b 0x8030760
| |||||`--> 0x0803075e 0025 movs r5, 0
| ====`---> 0x08030760 fff749b9 b.w 0x802f9f6
| --------> 0x08030764 edb2 uxtb r5, r5
| |||| | 0x08030766 002d cmp r5, 0
| |||| ,==< 0x08030768 35d1 bne 0x80307d6
| |||| || 0x0803076a fff713f9 bl bp_sempost
| |||| || 0x0803076e 9148 ldr r0, [0x080309b6] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| || 0x08030770 0121 movs r1, 1 ; 1
| |||| || 0x08030772 0170 strb r1, [r0]
| |||| || 0x08030774 4ff40171 mov.w r1, 0x204 ; 516
| |||| || 0x08030778 d720 movs r0, 0xd7 ; 215
| |||| || 0x0803077a 00f0b5f9 bl bp_glisando
| |||| || 0x0803077e 00f0c3f9 bl bp_tone_on
| |||| || 0x08030782 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x08030784 03f096fb bl OSTimeDly
| |||| || 0x08030788 00f0e6f9 bl bp_tone_off
| |||| || 0x0803078c 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x0803078e 03f091fb bl OSTimeDly
| |||| || 0x08030792 00f0b9f9 bl bp_tone_on
| |||| || 0x08030796 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x08030798 03f08cfb bl OSTimeDly
| |||| || 0x0803079c 00f0dcf9 bl bp_tone_off
| |||| || 0x080307a0 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x080307a2 03f087fb bl OSTimeDly
| |||| || 0x080307a6 00f0aff9 bl bp_tone_on
| |||| || 0x080307aa 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x080307ac 03f082fb bl OSTimeDly
| |||| || 0x080307b0 00f0d2f9 bl bp_tone_off
| |||| || 0x080307b4 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x080307b6 03f07dfb bl OSTimeDly
| |||| || 0x080307ba 00f0a5f9 bl bp_tone_on
| |||| || 0x080307be 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x080307c0 03f078fb bl OSTimeDly
| |||| || 0x080307c4 00f0c8f9 bl bp_tone_off
| |||| || 0x080307c8 3c20 movs r0, 0x3c ; '<' ; 60
| |||| || 0x080307ca 03f073fb bl OSTimeDly
| |||| || 0x080307ce fff7f3f8 bl bp_sempost2
| |||| || 0x080307d2 0125 movs r5, 1 ; 1
| ||||,===< 0x080307d4 05e0 b 0x80307e2
| |||||`--> 0x080307d6 edb2 uxtb r5, r5
| ||||| | 0x080307d8 0a2d cmp r5, 0xa ; 10
| |||||,==< 0x080307da 01d2 bhs 0x80307e0
| ||||||| 0x080307dc 6d1c adds r5, r5, 1
| ========< 0x080307de 00e0 b 0x80307e2
| |||||`--> 0x080307e0 0025 movs r5, 0
| ====`---> 0x080307e2 fff708b9 b.w 0x802f9f6
| --------> 0x080307e6 fff7d5f8 bl bp_sempost
| |||| | 0x080307ea 7248 ldr r0, [0x080309b6] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| | 0x080307ec 0321 movs r1, 3 ; 3
| |||| | 0x080307ee 0170 strb r1, [r0]
| |||| | 0x080307f0 4ff49460 mov.w r0, 0x4a0 ; 1184
| |||| | 0x080307f4 00f070f9 bl bp_set_freq
| |||| | 0x080307f8 00f086f9 bl bp_tone_on
| |||| | 0x080307fc 7820 movs r0, 0x78 ; 'x' ; 120
| |||| | 0x080307fe 03f059fb bl OSTimeDly
| |||| | 0x08030802 00f0a9f9 bl bp_tone_off
| |||| | 0x08030806 fff7d7f8 bl bp_sempost2
| |||| | 0x0803080a 0024 movs r4, 0
| |||| | 0x0803080c 0125 movs r5, 1 ; 1
| ========< 0x0803080e fff7f2b8 b.w 0x802f9f6
| |||| | 0x08030812 00bf nop
| ========< 0x08030814 7ce6 b 0x8030510
| |||| | 0x08030816 0120 movs r0, 1 ; 1
| |||| | 0x08030818 12e80120 invalid
| |||| `=< 0x0803081c d0e5 b 0x80303c0
| |||| 0x0803081e 0120 movs r0, 1 ; 1
| --------> 0x08030820 fff7b8f8 bl bp_sempost
| |||| 0x08030824 6348 ldr r0, [0x080309b4] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| 0x08030826 0321 movs r1, 3 ; 3
| |||| 0x08030828 0170 strb r1, [r0]
| |||| 0x0803082a 4ff49460 mov.w r0, 0x4a0 ; 1184
| |||| 0x0803082e 00f053f9 bl bp_set_freq
| |||| 0x08030832 00f069f9 bl bp_tone_on
| |||| 0x08030836 7820 movs r0, 0x78 ; 'x' ; 120
| |||| 0x08030838 03f03cfb bl OSTimeDly
| |||| 0x0803083c 00f08cf9 bl bp_tone_off
| |||| 0x08030840 6420 movs r0, 0x64 ; 'd' ; 100
| |||| 0x08030842 03f037fb bl OSTimeDly
| |||| 0x08030846 00f05ff9 bl bp_tone_on
| |||| 0x0803084a 6420 movs r0, 0x64 ; 'd' ; 100
| |||| 0x0803084c 03f032fb bl OSTimeDly
| |||| 0x08030850 00f082f9 bl bp_tone_off
| |||| 0x08030854 fff7b0f8 bl bp_sempost2
| |||| 0x08030858 0024 movs r4, 0
| |||| 0x0803085a 0125 movs r5, 1 ; 1
| ========< 0x0803085c fff7cbb8 b.w 0x802f9f6
| --------> 0x08030860 fff798f8 bl bp_sempost
| |||| 0x08030864 5348 ldr r0, [0x080309b4] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| 0x08030866 0321 movs r1, 3 ; 3
| |||| 0x08030868 0170 strb r1, [r0]
| |||| 0x0803086a 4ff49460 mov.w r0, 0x4a0 ; 1184
| |||| 0x0803086e 00f033f9 bl bp_set_freq
| |||| 0x08030872 00f049f9 bl bp_tone_on
| |||| 0x08030876 7820 movs r0, 0x78 ; 'x' ; 120
| |||| 0x08030878 03f01cfb bl OSTimeDly
| |||| 0x0803087c 00f06cf9 bl bp_tone_off
| |||| 0x08030880 6420 movs r0, 0x64 ; 'd' ; 100
| |||| 0x08030882 03f017fb bl OSTimeDly
| |||| 0x08030886 00f03ff9 bl bp_tone_on
| |||| 0x0803088a 6420 movs r0, 0x64 ; 'd' ; 100
| |||| 0x0803088c 03f012fb bl OSTimeDly
| |||| 0x08030890 00f062f9 bl bp_tone_off
| |||| 0x08030894 6420 movs r0, 0x64 ; 'd' ; 100
| |||| 0x08030896 03f00dfb bl OSTimeDly
| |||| 0x0803089a 00f035f9 bl bp_tone_on
| |||| 0x0803089e 6420 movs r0, 0x64 ; 'd' ; 100
| |||| 0x080308a0 03f008fb bl OSTimeDly
| |||| 0x080308a4 00f058f9 bl bp_tone_off
| |||| 0x080308a8 fff786f8 bl bp_sempost2
| |||| 0x080308ac 0024 movs r4, 0
| |||| 0x080308ae 0125 movs r5, 1 ; 1
| ========< 0x080308b0 fff7a1b8 b.w 0x802f9f6
| --------> 0x080308b4 fff76ef8 bl bp_sempost
| |||| 0x080308b8 3e48 ldr r0, [0x080309b4] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| |||| 0x080308ba 0321 movs r1, 3 ; 3
| |||| 0x080308bc 0170 strb r1, [r0]
| |||| 0x080308be 4ff49460 mov.w r0, 0x4a0 ; 1184
| |||| 0x080308c2 00f009f9 bl bp_set_freq
| |||| 0x080308c6 00f01ff9 bl bp_tone_on
| |||| 0x080308ca 7820 movs r0, 0x78 ; 'x' ; 120
| |||| 0x080308cc 03f0f2fa bl OSTimeDly
| |||| 0x080308d0 00f042f9 bl bp_tone_off
| |||| 0x080308d4 6420 movs r0, 0x64 ; 'd' ; 100
| |||| 0x080308d6 03f0edfa bl OSTimeDly
| |||| 0x080308da 00f015f9 bl bp_tone_on
| |||| 0x080308de 6420 movs r0, 0x64 ; 'd' ; 100
| |||| 0x080308e0 03f0e8fa bl OSTimeDly
| |||| 0x080308e4 00f038f9 bl bp_tone_off
| |||| 0x080308e8 6420 movs r0, 0x64 ; 'd' ; 100
| |||| 0x080308ea 03f0e3fa bl OSTimeDly
| |||| 0x080308ee 00f00bf9 bl bp_tone_on
| |||| 0x080308f2 6420 movs r0, 0x64 ; 'd' ; 100
| |||| 0x080308f4 03f0defa bl OSTimeDly
| |||| 0x080308f8 00f02ef9 bl bp_tone_off
| |||| 0x080308fc 6420 movs r0, 0x64 ; 'd' ; 100
| |||| 0x080308fe 03f0d9fa bl OSTimeDly
| |||| 0x08030902 00f001f9 bl bp_tone_on
| |||| 0x08030906 6420 movs r0, 0x64 ; 'd' ; 100
| |||| 0x08030908 03f0d4fa bl OSTimeDly
| |||| 0x0803090c 00f024f9 bl bp_tone_off
| |||| 0x08030910 fff752f8 bl bp_sempost2
| |||| 0x08030914 0024 movs r4, 0
| |||| 0x08030916 0125 movs r5, 1 ; 1
| `=======< 0x08030918 fff76db8 b.w 0x802f9f6
| --------> 0x0803091c edb2 uxtb r5, r5
| ||| 0x0803091e 002d cmp r5, 0
| ||| ,=< 0x08030920 1bd1 bne 0x803095a
| ||| | 0x08030922 4221 movs r1, 0x42 ; 'B' ; 66
| ||| | 0x08030924 0e20 movs r0, 0xe ; 14
| ||| | 0x08030926 0ff02dfb bl c5000_spi0_writereg
| ||| | 0x0803092a a021 movs r1, 0xa0 ; 160
| ||| | 0x0803092c 0f20 movs r0, 0xf ; 15
| ||| | 0x0803092e 0ff029fb bl c5000_spi0_writereg
| ||| | 0x08030932 0a20 movs r0, 0xa ; 10
| ||| | 0x08030934 03f0befa bl OSTimeDly
| ||| | 0x08030938 fff72cf8 bl bp_sempost
| ||| | 0x0803093c 1d48 ldr r0, [0x080309b4] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| ||| | 0x0803093e 0221 movs r1, 2 ; 2
| ||| | 0x08030940 0170 strb r1, [r0]
| ||| | 0x08030942 dff89c06 ldr.w r0, [0x08030fe6] ; [0x8030fe4:4]=0x2001e5f8 kb_keypressed
| ||| | 0x08030946 0078 ldrb r0, [r0]
| ||| | 0x08030948 00f0acf8 bl F_293
| ||| | 0x0803094c 00f0dcf8 bl bp_tone_on
| ||| | 0x08030950 6420 movs r0, 0x64 ; 'd' ; 100
| ||| | 0x08030952 03f0affa bl OSTimeDly
| ||| | 0x08030956 0125 movs r5, 1 ; 1
| ||| ,==< 0x08030958 1be0 b 0x8030992
| ||| |`-> 0x0803095a dff88806 ldr.w r0, [0x08030fea] ; [0x8030fe8:4]=0x2001e100
| ||| | 0x0803095e 0078 ldrb r0, [r0]
| ||| | 0x08030960 c007 lsls r0, r0, 0x1f
| ||| |,=< 0x08030962 16d4 bmi 0x8030992
| ||| || 0x08030964 00f0f8f8 bl bp_tone_off
| ||| || 0x08030968 dff87c06 ldr.w r0, [0x08030fec] ; [0x8030fec:4]=0x2001e8a7 bp_2001e8a7
| ||| || 0x0803096c c078 ldrb r0, [r0, 3]
| ||| || 0x0803096e 0a21 movs r1, 0xa ; 10
| ||| || 0x08030970 4843 muls r0, r1, r0
| ||| || 0x08030972 03f09ffa bl OSTimeDly
| ||| || 0x08030976 fff71ff8 bl bp_sempost2
| ||| || 0x0803097a 0a20 movs r0, 0xa ; 10
| ||| || 0x0803097c 03f09afa bl OSTimeDly
| ||| || 0x08030980 4421 movs r1, 0x44 ; 'D' ; 68
| ||| || 0x08030982 0e20 movs r0, 0xe ; 14
| ||| || 0x08030984 0ff0fefa bl c5000_spi0_writereg
| ||| || 0x08030988 c821 movs r1, 0xc8 ; 200
| ||| || 0x0803098a 0f20 movs r0, 0xf ; 15
| ||| || 0x0803098c 0ff0fafa bl c5000_spi0_writereg
| ||| || 0x08030990 0024 movs r4, 0
| `===``-> 0x08030992 fff730b8 b.w 0x802f9f6
| --------> 0x08030996 fef7fdff bl bp_sempost
| || 0x0803099a 0648 ldr r0, [0x080309b6] ; [0x80309b4:4]=0x2001e8a7 bp_2001e8a7
| || 0x0803099c 0321 movs r1, 3 ; 3
| || 0x0803099e 0170 strb r1, [r0]
| || 0x080309a0 40f2d660 movw r0, 0x6d6 ; 1750
| || 0x080309a4 00f098f8 bl bp_set_freq
| || 0x080309a8 00f0aef8 bl bp_tone_on
| `=====< 0x080309ac fff723b8 b.w 0x802f9f6
\ ---`====< 0x080309b0 fff721b8 b.w 0x802f9f6
/ (fcn) Timer8ToneGenerator 236
| Caller: TIM8_UP_TIM13_IRQHandler
| Timer8ToneGenerator ();
| 0x080309b8 80b5 push {r7, lr}
| 0x080309ba dff83006 ldr.w r0, [0x08030ff2] ; [0x8030ff0:4]=0x2001e6c8
| 0x080309be 0078 ldrb r0, [r0]
| 0x080309c0 0128 cmp r0, 1 ; 1
| ,=< 0x080309c2 26d1 bne 0x8030a12
| | 0x080309c4 dff82806 ldr.w r0, [0x08030ff4] ; [0x8030ff4:4]=0x8095aa0
| | 0x080309c8 8078 ldrb r0, [r0, 2]
| | 0x080309ca dff82816 ldr.w r1, [0x08030ffa] ; [0x8030ff8:4]=0x2001e6cc
| | 0x080309ce 405c ldrb r0, [r0, r1]
| | 0x080309d0 dff82416 ldr.w r1, [0x08030ffc] ; [0x8030ffc:4]=0x40010400 io_TIM8
| | 0x080309d4 8978 ldrb r1, [r1, 2] ; [R1+2] = reserved bits in TIM8_CR1 ?
| | 0x080309d6 dff81c26 ldr.w r2, [0x08030ffa] ; [0x8030ff8:4]=0x2001e6cc
| | 0x080309da 895c ldrb r1, [r1, r2]
| | 0x080309dc 0918 adds r1, r1, r0
| | 0x080309de 89b2 uxth r1, r1
| | 0x080309e0 dff81806 ldr.w r0, [0x08031000] ; [0x8031000:4]=0x2001e6c0 bp_freq
| | 0x080309e4 13f09ff9 bl StoreR1_in_PtrR0plus0x3C
| | 0x080309e8 dff80406 ldr.w r0, [0x08030ff4] ; [0x8030ff4:4]=0x8095aa0
| | 0x080309ec 0068 ldr r0, [r0]
| | 0x080309ee dff81016 ldr.w r1, [0x08031006] ; [0x8031004:4]=0x2001e6c4 bp_freq2
| | 0x080309f2 0968 ldr r1, [r1]
| | 0x080309f4 0818 adds r0, r1, r0
| | 0x080309f6 dff8f815 ldr.w r1, [0x08030ff6] ; [0x8030ff4:4]=0x8095aa0
| | 0x080309fa 0860 str r0, [r1]
| | 0x080309fc dff8f805 ldr.w r0, [0x08030ffc] ; [0x8030ffc:4]=0x40010400 io_TIM8
| | 0x08030a00 0068 ldr r0, [r0]
| | 0x08030a02 dff80016 ldr.w r1, [0x0803100a] ; [0x8031008:4]=0x8095ba0
| | 0x08030a06 0968 ldr r1, [r1]
| | 0x08030a08 0818 adds r0, r1, r0
| | 0x08030a0a dff8ec15 ldr.w r1, [0x08030ffe] ; [0x8030ffc:4]=0x40010400 io_TIM8
| | 0x08030a0e 0860 str r0, [r1] ; write to TIM8_CR1
| | 0x08030a10 47e0 b 0x8030aa2
| `-> 0x08030a12 dff8d805 ldr.w r0, [0x08030ff2] ; [0x8030ff0:4]=0x2001e6c8
| 0x08030a16 0078 ldrb r0, [r0]
| 0x08030a18 0228 cmp r0, 2 ; 2
| ,=< 0x08030a1a 2dd1 bne 0x8030a78
| | 0x08030a1c dff8d005 ldr.w r0, [0x08030ff4] ; [0x8030ff4:4]=0x8095aa0
| | 0x08030a20 8078 ldrb r0, [r0, 2]
| | 0x08030a22 dff8d015 ldr.w r1, [0x08030ffa] ; [0x8030ff8:4]=0x2001e6cc
| | 0x08030a26 405c ldrb r0, [r0, r1]
| | 0x08030a28 2d21 movs r1, 0x2d ; '-' ; 45
| | 0x08030a2a dff8cc25 ldr.w r2, [0x08030ffe] ; [0x8030ffc:4]=0x40010400 io_TIM8
| | 0x08030a2e 9278 ldrb r2, [r2, 2]
| | 0x08030a30 dff8c035 ldr.w r3, [0x08030ff8] ; [0x8030ff8:4]=0x2001e6cc
| | 0x08030a34 d25c ldrb r2, [r2, r3]
| | 0x08030a36 3723 movs r3, 0x37 ; '7' ; 55
| | 0x08030a38 5a43 muls r2, r3, r2
| | 0x08030a3a 01fb0020 mla r0, r1, r0, r2
| | 0x08030a3e 6421 movs r1, 0x64 ; 'd' ; 100
| | 0x08030a40 90fbf1f1 sdiv r1, r0, r1
| | 0x08030a44 89b2 uxth r1, r1
| | 0x08030a46 dff8b405 ldr.w r0, [0x08031002] ; [0x8031000:4]=0x2001e6c0 bp_freq
| | 0x08030a4a 13f06cf9 bl StoreR1_in_PtrR0plus0x3C
| | 0x08030a4e dff8a005 ldr.w r0, [0x08030ff6] ; [0x8030ff4:4]=0x8095aa0
| | 0x08030a52 0068 ldr r0, [r0]
| | 0x08030a54 dff8a815 ldr.w r1, [0x08031004] ; [0x8031004:4]=0x2001e6c4 bp_freq2
| | 0x08030a58 0968 ldr r1, [r1]
| | 0x08030a5a 0818 adds r0, r1, r0
| | 0x08030a5c dff89015 ldr.w r1, [0x08030ff4] ; [0x8030ff4:4]=0x8095aa0
| | 0x08030a60 0860 str r0, [r1]
| | 0x08030a62 dff89405 ldr.w r0, [0x08030ffe] ; [0x8030ffc:4]=0x40010400 io_TIM8
| | 0x08030a66 0068 ldr r0, [r0]
| | 0x08030a68 dff89815 ldr.w r1, [0x08031008] ; [0x8031008:4]=0x8095ba0
| | 0x08030a6c 0968 ldr r1, [r1]
| | 0x08030a6e 0818 adds r0, r1, r0
| | 0x08030a70 dff88415 ldr.w r1, [0x08030ffc] ; [0x8030ffc:4]=0x40010400 io_TIM8
| | 0x08030a74 0860 str r0, [r1]
| ,==< 0x08030a76 14e0 b 0x8030aa2
| |`-> 0x08030a78 dff87405 ldr.w r0, [0x08030ff4] ; [0x8030ff4:4]=0x8095aa0
| | 0x08030a7c 8078 ldrb r0, [r0, 2]
| | 0x08030a7e dff88815 ldr.w r1, [0x0803100e] ; [0x803100c:4]=0x8097f40
| | 0x08030a82 415c ldrb r1, [r0, r1]
| | 0x08030a84 89b2 uxth r1, r1
| | 0x08030a86 dff87405 ldr.w r0, [0x08031002] ; [0x8031000:4]=0x2001e6c0 bp_freq
| | 0x08030a8a 13f04cf9 bl StoreR1_in_PtrR0plus0x3C
| | 0x08030a8e dff86005 ldr.w r0, [0x08030ff6] ; [0x8030ff4:4]=0x8095aa0
| | 0x08030a92 0068 ldr r0, [r0]
| | 0x08030a94 dff86815 ldr.w r1, [0x08031004] ; [0x8031004:4]=0x2001e6c4 bp_freq2
| | 0x08030a98 0968 ldr r1, [r1]
| | 0x08030a9a 0818 adds r0, r1, r0
| | 0x08030a9c dff85015 ldr.w r1, [0x08030ff4] ; [0x8030ff4:4]=0x8095aa0
| | 0x08030aa0 0860 str r0, [r1]
\ `--> 0x08030aa2 01bd pop {r0, pc}
/ (fcn) F_293 52
| Caller: Beep_Process
| F_293 ();
| 0x08030aa4 c0b2 uxtb r0, r0
| 0x08030aa6 4000 lsls r0, r0, 1
| 0x08030aa8 c0b2 uxtb r0, r0
| 0x08030aaa dff86015 ldr.w r1, [0x08031012] ; [0x8031010:4]=0x40020800 io_GPIOC
| 0x08030aae 31f81010 ldrh.w r1, [r1, r0, lsl 1]
| 0x08030ab2 40f2a942 movw r2, 0x4a9 ; 1193
| 0x08030ab6 5143 muls r1, r2, r1
| 0x08030ab8 dff84425 ldr.w r2, [0x08031004] ; [0x8031004:4]=0x2001e6c4 bp_freq2
| 0x08030abc 1160 str r1, [r2]
| 0x08030abe c0b2 uxtb r0, r0
| 0x08030ac0 dff84815 ldr.w r1, [0x08031010] ; [0x8031010:4]=0x40020800 io_GPIOC
| 0x08030ac4 11eb4000 adds.w r0, r1, r0, lsl 1
| 0x08030ac8 4088 ldrh r0, [r0, 2]
| 0x08030aca 40f2a941 movw r1, 0x4a9 ; 1193
| 0x08030ace 4843 muls r0, r1, r0
| 0x08030ad0 dff83015 ldr.w r1, [0x08031008] ; [0x8031008:4]=0x8095ba0
| 0x08030ad4 0860 str r0, [r1]
\ 0x08030ad6 7047 bx lr
/ (fcn) bp_set_freq 16
| Caller: Beep_Process
| bp_set_freq ();
| 0x08030ad8 80b2 uxth r0, r0
| 0x08030ada 40f2a941 movw r1, 0x4a9 ; 1193
| 0x08030ade 4843 muls r0, r1, r0
| 0x08030ae0 dff81c15 ldr.w r1, [0x08031004] ; [0x8031004:4]=0x2001e6c4 bp_freq2
| 0x08030ae4 0860 str r0, [r1]
\ 0x08030ae6 7047 bx lr
/ (fcn) bp_tone_off 72
| Caller: Beep_Process
| bp_tone_off ();
| 0x08030b58 00b5 push {lr}
| 0x08030b5a 83b0 sub sp, 0xc
| 0x08030b5c 4ff48070 mov.w r0, 0x100 ; 256
| 0x08030b60 0090 str r0, [sp]
| 0x08030b62 0220 movs r0, 2 ; 2
| 0x08030b64 8df80500 strb.w r0, [sp, 5]
| 0x08030b68 0120 movs r0, 1 ; 1
| 0x08030b6a 8df80400 strb.w r0, [sp, 4]
| 0x08030b6e 0020 movs r0, 0
| 0x08030b70 8df80600 strb.w r0, [sp, 6]
| 0x08030b74 0020 movs r0, 0
| 0x08030b76 8df80700 strb.w r0, [sp, 7]
| 0x08030b7a 00a9 add r1, sp, 0
| 0x08030b7c dff89004 ldr.w r0, [0x08031014] ; [0x8031014:4]=0x2001e5f0 radio_status_1
| 0x08030b80 faf7e2fd bl GPIO_Init
| 0x08030b84 0022 movs r2, 0
| 0x08030b86 4ff48071 mov.w r1, 0x100 ; 256
| 0x08030b8a dff88404 ldr.w r0, [0x08031016] ; [0x8031014:4]=0x2001e5f0 radio_status_1
| 0x08030b8e faf740fe bl GPIO_WriteBit
| 0x08030b92 0022 movs r2, 0
| 0x08030b94 0121 movs r1, 1 ; 1
| 0x08030b96 dff86404 ldr.w r0, [0x08031002] ; [0x8031000:4]=0x2001e6c0 bp_freq
| 0x08030b9a 13f0f3f8 bl TIM_ITConfig
\ 0x08030b9e 07bd pop {r0, r1, r2, pc}
/ (fcn) bp_tone_on 80
| Caller: Beep_Process
| bp_tone_on ();
| 0x08030b08 00b5 push {lr}
| 0x08030b0a 83b0 sub sp, 0xc
| 0x08030b0c 4ff48070 mov.w r0, 0x100 ; 256
| 0x08030b10 0090 str r0, [sp]
| 0x08030b12 0220 movs r0, 2 ; 2
| 0x08030b14 8df80500 strb.w r0, [sp, 5]
| 0x08030b18 0220 movs r0, 2 ; 2
| 0x08030b1a 8df80400 strb.w r0, [sp, 4]
| 0x08030b1e 0020 movs r0, 0
| 0x08030b20 8df80600 strb.w r0, [sp, 6]
| 0x08030b24 0020 movs r0, 0
| 0x08030b26 8df80700 strb.w r0, [sp, 7]
| 0x08030b2a 00a9 add r1, sp, 0
| 0x08030b2c dff8e004 ldr.w r0, [0x08031014] ; [0x8031014:4]=0x2001e5f0 radio_status_1
| 0x08030b30 faf70afe bl GPIO_Init
| 0x08030b34 0322 movs r2, 3 ; 3
| 0x08030b36 0821 movs r1, 8 ; 8
| 0x08030b38 dff8d404 ldr.w r0, [0x08031014] ; [0x8031014:4]=0x2001e5f0 radio_status_1
| 0x08030b3c faf770fe bl GPIO_PinAFConfig
| 0x08030b40 0121 movs r1, 1 ; 1
| 0x08030b42 dff8b804 ldr.w r0, [0x08031002] ; [0x8031000:4]=0x2001e6c0 bp_freq
| 0x08030b46 13f00cf9 bl func_43d62
| 0x08030b4a 0122 movs r2, 1 ; 1
| 0x08030b4c 0121 movs r1, 1 ; 1
| 0x08030b4e dff8ac04 ldr.w r0, [0x08031002] ; [0x8031000:4]=0x2001e6c0 bp_freq
| 0x08030b52 13f017f9 bl TIM_ITConfig
\ 0x08030b56 07bd pop {r0, r1, r2, pc}
/ (fcn) bp_glisando 32
| Caller: Beep_Process
| bp_glisando ();
| 0x08030ae8 80b2 uxth r0, r0
| 0x08030aea 40f2a942 movw r2, 0x4a9 ; 1193
| 0x08030aee 5043 muls r0, r2, r0
| 0x08030af0 dff80c25 ldr.w r2, [0x08031004] ; [0x8031004:4]=0x2001e6c4 bp_freq2
| 0x08030af4 1060 str r0, [r2]
| 0x08030af6 89b2 uxth r1, r1
| 0x08030af8 40f2a940 movw r0, 0x4a9 ; 1193
| 0x08030afc 00fb01f0 mul r0, r0, r1
| 0x08030b00 dff80015 ldr.w r1, [0x08031008] ; [0x8031008:4]=0x8095ba0
| 0x08030b04 0860 str r0, [r1]
\ 0x08030b06 7047 bx lr
/ (fcn) disp_something 624
| Caller: mainloop_entry
| disp_something ();
| 0x0800d69c 30b5 push {r4, r5, lr}
| 0x0800d69e 91b0 sub sp, 0x44 ; 'D'
| 0x0800d6a0 0c20 movs r0, 0xc ; 12
| 0x0800d6a2 dff8e41b ldr.w r1, [0x0800e28e] ; [0x800e28c:4]=0x2001dadc md380_radio_config
| 0x0800d6a6 0978 ldrb r1, [r1]
| 0x0800d6a8 0529 cmp r1, 5 ; 5
| ,=< 0x0800d6aa 40f06a81 bne.w 0x800d982
| | 0x0800d6ae dff8d40c ldr.w r0, [0x0800e38a] ; [0x800e388:4]=0x2001e948
| | 0x0800d6b2 0088 ldrh r0, [r0]
| | 0x0800d6b4 411c adds r1, r0, 1
| | 0x0800d6b6 dff8cc2c ldr.w r2, [0x0800e38a] ; [0x800e388:4]=0x2001e948
| | 0x0800d6ba 1180 strh r1, [r2]
| | 0x0800d6bc 80b2 uxth r0, r0
| | 0x0800d6be 6428 cmp r0, 0x64 ; 'd' ; 100
| ,==< 0x0800d6c0 c0f05e81 blo.w 0x800d980
| || 0x0800d6c4 dff8c40b ldr.w r0, [0x0800e290] ; [0x800e290:4]=0x2001e7f8 backlight_timer
| || 0x0800d6c8 407d ldrb r0, [r0, 0x15]
| || 0x0800d6ca 4ff4fa71 mov.w r1, 0x1f4 ; 500
| || 0x0800d6ce 10fb01f0 smulbb r0, r0, r1
| || 0x0800d6d2 dff8bc1b ldr.w r1, [0x0800e296] ; [0x800e294:4]=0x809a4c0 gfx_font_small
| || 0x0800d6d6 0880 strh r0, [r1]
| || 0x0800d6d8 dff8a404 ldr.w r0, [0x0800db84] ; [0x800db84:4]=0x2001e3e8
| || 0x0800d6dc c078 ldrb r0, [r0, 3]
| || 0x0800d6de 0028 cmp r0, 0
| ,===< 0x0800d6e0 00f01481 beq.w 0x800d90c
| ||| 0x0800d6e4 dff8ac0b ldr.w r0, [F_4284] ; [0x800e298:4]=0xb085b500
| ||| 0x0800d6e8 14f0c4f8 bl gfx_select_font
| ||| 0x0800d6ec 0024 movs r4, 0
| ,====< 0x0800d6ee 0ee0 b 0x800d70e
| .-----> 0x0800d6f0 9f23 movs r3, 0x9f ; 159
| ||||| 0x0800d6f2 e4b2 uxtb r4, r4
| ||||| 0x0800d6f4 0220 movs r0, 2 ; 2
| ||||| 0x0800d6f6 94fbf0f0 sdiv r0, r4, r0
| ||||| 0x0800d6fa 1421 movs r1, 0x14 ; 20
| ||||| 0x0800d6fc 4843 muls r0, r1, r0
| ||||| 0x0800d6fe 421d adds r2, r0, 5
| ||||| 0x0800d700 dff8840c ldr.w r0, [0x0800e38c] ; [0x800e38c:4]=0x2001ddb8
| ||||| 0x0800d704 0178 ldrb r1, [r0]
| ||||| 0x0800d706 00a8 add r0, sp, 0
| ||||| 0x0800d708 10f0fefa bl gfx_drawtext2
| .------> 0x0800d70c 641c adds r4, r4, 1
| ||`----> 0x0800d70e dff87c0c ldr.w r0, [0x0800e392] ; [0x800e390:4]=0x80cf780 gfx_font_norm
| || ||| 0x0800d712 0078 ldrb r0, [r0]
| || ||| 0x0800d714 e4b2 uxtb r4, r4
| || ||| 0x0800d716 8442 cmp r4, r0
| ||,====< 0x0800d718 02d2 bhs 0x800d720
| |||||| 0x0800d71a e4b2 uxtb r4, r4
| |||||| 0x0800d71c 0c2c cmp r4, 0xc ; 12
| ,=======< 0x0800d71e 51d3 blo 0x800d7c4
| |||`----> 0x0800d720 e4b2 uxtb r4, r4
| ||| ||| 0x0800d722 0c2c cmp r4, 0xc ; 12
| |||,====< 0x0800d724 36d2 bhs 0x800d794
| ||||||| 0x0800d726 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0800d72a 0ff021fe bl gfx_set_fg_color
| ||||||| 0x0800d72e e4b2 uxtb r4, r4
| ||||||| 0x0800d730 0220 movs r0, 2 ; 2
| ||||||| 0x0800d732 94fbf0f0 sdiv r0, r4, r0
| ||||||| 0x0800d736 1421 movs r1, 0x14 ; 20
| ||||||| 0x0800d738 4843 muls r0, r1, r0
| ||||||| 0x0800d73a 10f11503 adds.w r3, r0, 0x15
| ||||||| 0x0800d73e 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0800d740 e4b2 uxtb r4, r4
| ||||||| 0x0800d742 0220 movs r0, 2 ; 2
| ||||||| 0x0800d744 94fbf0f0 sdiv r0, r4, r0
| ||||||| 0x0800d748 1421 movs r1, 0x14 ; 20
| ||||||| 0x0800d74a 4843 muls r0, r1, r0
| ||||||| 0x0800d74c 411d adds r1, r0, 5
| ||||||| 0x0800d74e e4b2 uxtb r4, r4
| ||||||| 0x0800d750 0220 movs r0, 2 ; 2
| ||||||| 0x0800d752 94fbf0f5 sdiv r5, r4, r0
| ||||||| 0x0800d756 05fb1045 mls r5, r5, r0, r4
| ||||||| 0x0800d75a 5120 movs r0, 0x51 ; 'Q' ; 81
| ||||||| 0x0800d75c 00fb05f0 mul r0, r0, r5
| ||||||| 0x0800d760 801c adds r0, r0, 2
| ||||||| 0x0800d762 10f093f8 bl gfx_blockfill
| ||||||| 0x0800d766 6f23 movs r3, 0x6f ; 'o' ; 111
| ||||||| 0x0800d768 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0800d76a e4b2 uxtb r4, r4
| ||||||| 0x0800d76c 0220 movs r0, 2 ; 2
| ||||||| 0x0800d76e 94fbf0f0 sdiv r0, r4, r0
| ||||||| 0x0800d772 1421 movs r1, 0x14 ; 20
| ||||||| 0x0800d774 4843 muls r0, r1, r0
| ||||||| 0x0800d776 10f11601 adds.w r1, r0, 0x16
| ||||||| 0x0800d77a 0020 movs r0, 0
| ||||||| 0x0800d77c 10f086f8 bl gfx_blockfill
| ||||||| 0x0800d780 8023 movs r3, 0x80 ; 128
| ||||||| 0x0800d782 8c22 movs r2, 0x8c ; 140
| ||||||| 0x0800d784 7421 movs r1, 0x74 ; 't' ; 116
| ||||||| 0x0800d786 0020 movs r0, 0
| ||||||| 0x0800d788 10f080f8 bl gfx_blockfill
| ||||||| 0x0800d78c dff8880d ldr.w r0, [0x0800e51c] ; [0x800e51c:4]=32
| ||||||| 0x0800d790 0ff0eefd bl gfx_set_fg_color
| |||`----> 0x0800d794 00ad add r5, sp, 0
| ||| ||| 0x0800d796 2900 movs r1, r5
| ||| ||| 0x0800d798 dff8e403 ldr.w r0, [0x0800db84] ; [0x800db84:4]=0x2001e3e8
| ||| ||| 0x0800d79c c089 ldrh r0, [r0, 0xe]
| ||| ||| 0x0800d79e 19f01dff bl func_275dc
| ||| ||| 0x0800d7a2 c0b2 uxtb r0, r0
| ||| ||| 0x0800d7a4 15eb4005 adds.w r5, r5, r0, lsl 1
| ||| ||| 0x0800d7a8 0020 movs r0, 0
| ||| ||| 0x0800d7aa 2880 strh r0, [r5]
| ||| ||| 0x0800d7ac ad1c adds r5, r5, 2
| ||| ||| 0x0800d7ae 9f23 movs r3, 0x9f ; 159
| ||| ||| 0x0800d7b0 7422 movs r2, 0x74 ; 't' ; 116
| ||| ||| 0x0800d7b2 8c21 movs r1, 0x8c ; 140
| ||| ||| 0x0800d7b4 00a8 add r0, sp, 0
| ||| ||| 0x0800d7b6 10f0a7fa bl gfx_drawtext2
| ||| ||| 0x0800d7ba dff8d40b ldr.w r0, [0x0800e396] ; [0x800e394:4]=0x2001e6ec
| ||| ||| 0x0800d7be 14f059f8 bl gfx_select_font
| |||,====< 0x0800d7c2 d9e0 b 0x800d978
| `-------> 0x0800d7c4 dff8500d ldr.w r0, [0x0800e51c] ; [0x800e51c:4]=32
| |||||| 0x0800d7c8 0ff0d2fd bl gfx_set_fg_color
| |||||| 0x0800d7cc 1423 movs r3, 0x14 ; 20
| |||||| 0x0800d7ce e4b2 uxtb r4, r4
| |||||| 0x0800d7d0 0220 movs r0, 2 ; 2
| |||||| 0x0800d7d2 94fbf0f0 sdiv r0, r4, r0
| |||||| 0x0800d7d6 1421 movs r1, 0x14 ; 20
| |||||| 0x0800d7d8 4843 muls r0, r1, r0
| |||||| 0x0800d7da 421d adds r2, r0, 5
| |||||| 0x0800d7dc e4b2 uxtb r4, r4
| |||||| 0x0800d7de 0220 movs r0, 2 ; 2
| |||||| 0x0800d7e0 94fbf0f1 sdiv r1, r4, r0
| |||||| 0x0800d7e4 01fb1041 mls r1, r1, r0, r4
| |||||| 0x0800d7e8 5120 movs r0, 0x51 ; 'Q' ; 81
| |||||| 0x0800d7ea 00fb01f0 mul r0, r0, r1
| |||||| 0x0800d7ee 811c adds r1, r0, 2
| |||||| 0x0800d7f0 dff8a00b ldr.w r0, [convert_freq_to_str] ; [0x800e398:4]=0x41f0e92d
| |||||| 0x0800d7f4 0068 ldr r0, [r0]
| |||||| 0x0800d7f6 dff8285d ldr.w r5, [0x0800e526] ; [0x800e524:4]=0x20004acc md380_menu_depth
| |||||| 0x0800d7fa 15eb8000 adds.w r0, r5, r0, lsl 2
| |||||| 0x0800d7fe d0f8d003 ldr.w r0, [r0, 0x3d0]
| |||||| 0x0800d802 19f091ff bl gfx_drawtext6
| |||||| 0x0800d806 7ff07f40 mvns r0, 0xff000000
| |||||| 0x0800d80a 0ff0b1fd bl gfx_set_fg_color
| |||||| 0x0800d80e e4b2 uxtb r4, r4
| |||||| 0x0800d810 0220 movs r0, 2 ; 2
| |||||| 0x0800d812 94fbf0f0 sdiv r0, r4, r0
| |||||| 0x0800d816 1421 movs r1, 0x14 ; 20
| |||||| 0x0800d818 4843 muls r0, r1, r0
| |||||| 0x0800d81a 10f11803 adds.w r3, r0, 0x18
| |||||| 0x0800d81e 8c22 movs r2, 0x8c ; 140
| |||||| 0x0800d820 e4b2 uxtb r4, r4
| |||||| 0x0800d822 0220 movs r0, 2 ; 2
| |||||| 0x0800d824 94fbf0f0 sdiv r0, r4, r0
| |||||| 0x0800d828 1421 movs r1, 0x14 ; 20
| |||||| 0x0800d82a 4843 muls r0, r1, r0
| |||||| 0x0800d82c 10f11101 adds.w r1, r0, 0x11
| |||||| 0x0800d830 0020 movs r0, 0
| |||||| 0x0800d832 10f02bf8 bl gfx_blockfill
| |||||| 0x0800d836 dff8e00c ldr.w r0, [0x0800e51e] ; [0x800e51c:4]=32
| |||||| 0x0800d83a 0ff099fd bl gfx_set_fg_color
| |||||| 0x0800d83e 14f023f8 bl gfx_get_xpos
| |||||| 0x0800d842 dff8441b ldr.w r1, [0x0800e38e] ; [0x800e38c:4]=0x2001ddb8
| |||||| 0x0800d846 0870 strb r0, [r1]
| |||||| 0x0800d848 00ad add r5, sp, 0
| |||||| 0x0800d84a 2900 movs r1, r5
| |||||| 0x0800d84c e4b2 uxtb r4, r4
| |||||| 0x0800d84e dff83c0b ldr.w r0, [0x0800e392] ; [0x800e390:4]=0x80cf780 gfx_font_norm
| |||||| 0x0800d852 2018 adds r0, r4, r0
| |||||| 0x0800d854 4078 ldrb r0, [r0, 1]
| |||||| 0x0800d856 19f0c1fe bl func_275dc
| |||||| 0x0800d85a c0b2 uxtb r0, r0
| |||||| 0x0800d85c 15eb4005 adds.w r5, r5, r0, lsl 1
| |||||| 0x0800d860 0020 movs r0, 0
| |||||| 0x0800d862 2880 strh r0, [r5]
| |||||| 0x0800d864 ad1c adds r5, r5, 2
| |||||| 0x0800d866 1423 movs r3, 0x14 ; 20
| |||||| 0x0800d868 e4b2 uxtb r4, r4
| |||||| 0x0800d86a 0220 movs r0, 2 ; 2
| |||||| 0x0800d86c 94fbf0f0 sdiv r0, r4, r0
| |||||| 0x0800d870 1421 movs r1, 0x14 ; 20
| |||||| 0x0800d872 4843 muls r0, r1, r0
| |||||| 0x0800d874 421d adds r2, r0, 5
| |||||| 0x0800d876 dff8100b ldr.w r0, [0x0800e38e] ; [0x800e38c:4]=0x2001ddb8
| |||||| 0x0800d87a 0178 ldrb r1, [r0]
| |||||| 0x0800d87c 00a8 add r0, sp, 0
| |||||| 0x0800d87e 19f053ff bl gfx_drawtext6
| |||||| 0x0800d882 14f001f8 bl gfx_get_xpos
| |||||| 0x0800d886 dff8001b ldr.w r1, [0x0800e38e] ; [0x800e38c:4]=0x2001ddb8
| |||||| 0x0800d88a 0870 strb r0, [r1]
| |||||| 0x0800d88c e4b2 uxtb r4, r4
| |||||| 0x0800d88e 0220 movs r0, 2 ; 2
| |||||| 0x0800d890 94fbf0f0 sdiv r0, r4, r0
| |||||| 0x0800d894 1421 movs r1, 0x14 ; 20
| |||||| 0x0800d896 4843 muls r0, r1, r0
| |||||| 0x0800d898 421d adds r2, r0, 5
| |||||| 0x0800d89a 12b2 sxth r2, r2
| |||||| 0x0800d89c dff8e80a ldr.w r0, [0x0800e38c] ; [0x800e38c:4]=0x2001ddb8
| |||||| 0x0800d8a0 0178 ldrb r1, [r0]
| |||||| 0x0800d8a2 09b2 sxth r1, r1
| |||||| 0x0800d8a4 3a20 movs r0, 0x3a ; ':' ; 58
| |||||| 0x0800d8a6 14f04bf8 bl gfx_drawchar_pos
| |||||| 0x0800d8aa 13f0edff bl gfx_get_xpos
| |||||| 0x0800d8ae dff8d81a ldr.w r1, [0x0800e38e] ; [0x800e38c:4]=0x2001ddb8
| |||||| 0x0800d8b2 0870 strb r0, [r1]
| |||||| 0x0800d8b4 ff20 movs r0, 0xff ; 255
| |||||| 0x0800d8b6 0ff05bfd bl gfx_set_fg_color
| |||||| 0x0800d8ba 00a8 add r0, sp, 0
| |||||| 0x0800d8bc 0500 movs r5, r0
| |||||| 0x0800d8be 2900 movs r1, r5
| |||||| 0x0800d8c0 e4b2 uxtb r4, r4
| |||||| 0x0800d8c2 dff8c80a ldr.w r0, [0x0800e392] ; [0x800e390:4]=0x80cf780 gfx_font_norm
| |||||| 0x0800d8c6 2018 adds r0, r4, r0
| |||||| 0x0800d8c8 90f83200 ldrb.w r0, [r0, 0x32]
| |||||| 0x0800d8cc 19f086fe bl func_275dc
| |||||| 0x0800d8d0 c0b2 uxtb r0, r0
| |||||| 0x0800d8d2 15eb4005 adds.w r5, r5, r0, lsl 1
| |||||| 0x0800d8d6 0020 movs r0, 0
| |||||| 0x0800d8d8 2880 strh r0, [r5]
| |||||| 0x0800d8da ad1c adds r5, r5, 2
| |||||| 0x0800d8dc e4b2 uxtb r4, r4
| |||||| 0x0800d8de 0220 movs r0, 2 ; 2
| |||||| 0x0800d8e0 94fbf0f1 sdiv r1, r4, r0
| |||||| 0x0800d8e4 01fb1041 mls r1, r1, r0, r4
| |||||| 0x0800d8e8 0029 cmp r1, 0
| |`=====< 0x0800d8ea 7ff401af bne.w 0x800d6f0
| | |||| 0x0800d8ee 5223 movs r3, 0x52 ; 'R' ; 82
| | |||| 0x0800d8f0 e4b2 uxtb r4, r4
| | |||| 0x0800d8f2 0220 movs r0, 2 ; 2
| | |||| 0x0800d8f4 94fbf0f0 sdiv r0, r4, r0
| | |||| 0x0800d8f8 1421 movs r1, 0x14 ; 20
| | |||| 0x0800d8fa 4843 muls r0, r1, r0
| | |||| 0x0800d8fc 421d adds r2, r0, 5
| | |||| 0x0800d8fe dff8880a ldr.w r0, [0x0800e38e] ; [0x800e38c:4]=0x2001ddb8
| | |||| 0x0800d902 0178 ldrb r1, [r0]
| | |||| 0x0800d904 00a8 add r0, sp, 0
| | |||| 0x0800d906 10f0fff9 bl gfx_drawtext2
\ `======< 0x0800d90a ffe6 b 0x800d70c
/ (fcn) do_nothing_2 2
| Caller: mainloop_entry
| do_nothing_2 ();
\ 0x08036fbc 7047 bx lr
/ (fcn) f_4225 5454
| Caller: call_F_4225_2 call_F_4225_1
| f_4225 ();
| 0x0801fe5c 10b5 push {r4, lr}
| 0x0801fe5e 82b0 sub sp, 8
| 0x0801fe60 dff88c0d ldr.w r0, [0x08020bf4] ; [0x8020bf4:4]=0x2001e94b gui_opmode2
| 0x0801fe64 0078 ldrb r0, [r0]
| 0x0801fe66 0006 lsls r0, r0, 0x18
| ,=< 0x0801fe68 40f1e284 bpl.w 0x8020830
| | 0x0801fe6c dff8800d ldr.w r0, [0x08020bf4] ; [0x8020bf4:4]=0x2001e94b gui_opmode2
| | 0x0801fe70 0078 ldrb r0, [r0]
| | 0x0801fe72 10f07f00 ands r0, r0, 0x7f
| | 0x0801fe76 dff8781d ldr.w r1, [0x08020bf6] ; [0x8020bf4:4]=0x2001e94b gui_opmode2
| | 0x0801fe7a 0870 strb r0, [r1]
| | 0x0801fe7c dff8700d ldr.w r0, [0x08020bf4] ; [0x8020bf4:4]=0x2001e94b gui_opmode2
| | 0x0801fe80 0078 ldrb r0, [r0]
| | 0x0801fe82 1028 cmp r0, 0x10 ; 16
| ,==< 0x0801fe84 00f06b81 beq.w 0x802015e
| || 0x0801fe88 1128 cmp r0, 0x11 ; 17
| ,===< 0x0801fe8a 00f0d481 beq.w 0x8020236
| ||| 0x0801fe8e 1228 cmp r0, 0x12 ; 18
| ,====< 0x0801fe90 00f07182 beq.w 0x8020376
| |||| 0x0801fe94 1328 cmp r0, 0x13 ; 19
| ,=====< 0x0801fe96 00f0e982 beq.w 0x802046c
| ||||| 0x0801fe9a 1428 cmp r0, 0x14 ; 20
| ,======< 0x0801fe9c 00f0d980 beq.w 0x8020052
| |||||| 0x0801fea0 1528 cmp r0, 0x15 ; 21
| ,=======< 0x0801fea2 1dd0 beq 0x801fee0
| ||||||| 0x0801fea4 1628 cmp r0, 0x16 ; 22
| ========< 0x0801fea6 4ad0 beq 0x801ff3e
| ||||||| 0x0801fea8 1b28 cmp r0, 0x1b ; 27
| ========< 0x0801feaa 00f0b283 beq.w 0x8020612
| ||||||| 0x0801feae 1c28 cmp r0, 0x1c ; 28
| ========< 0x0801feb0 00f0ff83 beq.w 0x80206b2
| ||||||| 0x0801feb4 1d28 cmp r0, 0x1d ; 29
| ========< 0x0801feb6 00f01a84 beq.w 0x80206ee
| ||||||| 0x0801feba 1e28 cmp r0, 0x1e ; 30
| ========< 0x0801febc 67d0 beq 0x801ff8e
| ||||||| 0x0801febe 1f28 cmp r0, 0x1f ; 31
| ========< 0x0801fec0 00f0aa80 beq.w 0x8020018
| ||||||| 0x0801fec4 2028 cmp r0, 0x20 ; 32
| ========< 0x0801fec6 00f07584 beq.w 0x80207b4
| ||||||| 0x0801feca 2128 cmp r0, 0x21 ; '!' ; 33
| ========< 0x0801fecc 00f09f84 beq.w 0x802080e
| ||||||| 0x0801fed0 2328 cmp r0, 0x23 ; '#' ; 35
| ========< 0x0801fed2 00f07381 beq.w 0x80201bc
| ||||||| 0x0801fed6 2428 cmp r0, 0x24 ; '$' ; 36
| ========< 0x0801fed8 00f09981 beq.w 0x802020e
| ========< 0x0801fedc 00f0a6bc b.w 0x802082c
| `-------> ;-- update_scr_21:
| `-------> 0x0801fee0 dff8100d ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| |||||| 0x0801fee4 0078 ldrb r0, [r0]
| |||||| 0x0801fee6 0c28 cmp r0, 0xc ; 12
| ,=======< 0x0801fee8 27d0 beq 0x801ff3a
| ||||||| 0x0801feea dff8080d ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x0801feee 0078 ldrb r0, [r0]
| ||||||| 0x0801fef0 0028 cmp r0, 0
| ========< 0x0801fef2 22d0 beq 0x801ff3a
| ||||||| 0x0801fef4 dff8fc0c ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x0801fef8 0721 movs r1, 7 ; 7
| ||||||| 0x0801fefa 0170 strb r1, [r0]
| ||||||| 0x0801fefc dff8d00d ldr.w r0, [0x08020cd4] ; [0x8020cd4:4]=0x2001e604 q_status_4
| ||||||| 0x0801ff00 1521 movs r1, 0x15 ; 21
| ||||||| 0x0801ff02 0170 strb r1, [r0]
| ||||||| 0x0801ff04 dff8cc0d ldr.w r0, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x0801ff08 0078 ldrb r0, [r0]
| ||||||| 0x0801ff0a 50f00800 orrs r0, r0, 8
| ||||||| 0x0801ff0e dff8c41d ldr.w r1, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x0801ff12 0870 strb r0, [r1]
| ||||||| 0x0801ff14 ecf738f9 bl md380_create_main_menu_entry
| ||||||| 0x0801ff18 01f0f1fa bl func_214fe
| ||||||| 0x0801ff1c dff8b80d ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x0801ff20 c821 movs r1, 0xc8 ; 200
| ||||||| 0x0801ff22 0180 strh r1, [r0]
| ||||||| 0x0801ff24 dff8b40d ldr.w r0, [0x08020ce0] ; [0x8020ce0:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0801ff28 0c21 movs r1, 0xc ; 12
| ||||||| 0x0801ff2a 0170 strb r1, [r0]
| ||||||| 0x0801ff2c dff8ac1d ldr.w r1, [0x08020ce0] ; [0x8020ce0:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0801ff30 dff8ac0d ldr.w r0, [0x08020ce4] ; [0x8020ce4:4]=0x2001e8b7
| ||||||| 0x0801ff34 0068 ldr r0, [r0]
| ||||||| 0x0801ff36 11f031f9 bl md380_OSMboxPost
| `-------> 0x0801ff3a 01f035ba b.w 0x80213a8
| --------> ;-- update_scr_22:
| --------> 0x0801ff3e dff8b40c ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| |||||| 0x0801ff42 0078 ldrb r0, [r0]
| |||||| 0x0801ff44 0c28 cmp r0, 0xc ; 12
| ,=======< 0x0801ff46 20d0 beq 0x801ff8a
| ||||||| 0x0801ff48 dff8a80c ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x0801ff4c 0078 ldrb r0, [r0]
| ||||||| 0x0801ff4e 0028 cmp r0, 0
| ========< 0x0801ff50 1bd0 beq 0x801ff8a
| ||||||| 0x0801ff52 dff8900d ldr.w r0, [0x08020cea] ; [0x8020ce8:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x0801ff56 0078 ldrb r0, [r0]
| ||||||| 0x0801ff58 0028 cmp r0, 0
| ========< 0x0801ff5a 16d0 beq 0x801ff8a
| ||||||| 0x0801ff5c dff8880d ldr.w r0, [0x08020cec] ; [0x8020cec:4]=0x2001e1d0 msg_sms_hdr
| ||||||| 0x0801ff60 0068 ldr r0, [r0]
| ||||||| 0x0801ff62 50f00070 orrs r0, r0, 0x2000000
| ||||||| 0x0801ff66 dff8841d ldr.w r1, [0x08020cf2] ; [0x8020cf0:4]=0x2001e892 gui_opmode3
| ||||||| 0x0801ff6a 0860 str r0, [r1]
| ||||||| 0x0801ff6c dff8800d ldr.w r0, [0x08020cf4] ; [0x8020cf4:4]=0x2001e8a9 event5_buffer
| ||||||| 0x0801ff70 0721 movs r1, 7 ; 7
| ||||||| 0x0801ff72 0170 strb r1, [r0]
| ||||||| 0x0801ff74 dff87c0d ldr.w r0, [0x08020cf8] ; [0x8020cf8:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0801ff78 0121 movs r1, 1 ; 1
| ||||||| 0x0801ff7a 0170 strb r1, [r0]
| ||||||| 0x0801ff7c dff8741d ldr.w r1, [0x08020cf8] ; [0x8020cf8:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0801ff80 dff8740d ldr.w r0, [0x08020cfc] ; [0x8020cfc:4]=0x2001e57c zone_number_in_byte_3
| ||||||| 0x0801ff84 0068 ldr r0, [r0]
| ||||||| 0x0801ff86 11f009f9 bl md380_OSMboxPost
| `-------> 0x0801ff8a 01f00dba b.w 0x80213a8
| --------> ;-- update_scr_30:
| --------> 0x0801ff8e dff8640c ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| |||||| 0x0801ff92 0078 ldrb r0, [r0]
| |||||| 0x0801ff94 0c28 cmp r0, 0xc ; 12
| ,=======< 0x0801ff96 3dd0 beq 0x8020014
| ||||||| 0x0801ff98 dff8580c ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x0801ff9c 0021 movs r1, 0
| ||||||| 0x0801ff9e 0170 strb r1, [r0]
| ||||||| 0x0801ffa0 dff82c0d ldr.w r0, [0x08020cd4] ; [0x8020cd4:4]=0x2001e604 q_status_4
| ||||||| 0x0801ffa4 1e21 movs r1, 0x1e ; 30
| ||||||| 0x0801ffa6 0170 strb r1, [r0]
| ||||||| 0x0801ffa8 13f0e6fe bl gfx_write_pixel_2
| ||||||| 0x0801ffac dff8400d ldr.w r0, [0x08020cf4] ; [0x8020cf4:4]=0x2001e8a9 event5_buffer
| ||||||| 0x0801ffb0 0821 movs r1, 8 ; 8
| ||||||| 0x0801ffb2 0170 strb r1, [r0]
| ||||||| 0x0801ffb4 dff8440d ldr.w r0, [0x08020d00] ; [0x8020d00:4]=0x2001e958
| ||||||| 0x0801ffb8 4b21 movs r1, 0x4b ; 'K' ; 75
| ||||||| 0x0801ffba 0170 strb r1, [r0]
| ||||||| 0x0801ffbc dff83c0d ldr.w r0, [0x08020d00] ; [0x8020d00:4]=0x2001e958
| ||||||| 0x0801ffc0 dff83c1d ldr.w r1, [0x08020d04] ; [0x8020d04:4]=0x2001e893
| ||||||| 0x0801ffc4 0978 ldrb r1, [r1]
| ||||||| 0x0801ffc6 8170 strb r1, [r0, 2]
| ||||||| 0x0801ffc8 02f081ff bl md380_spiflash_write_zone_struct_with_number_in_byte3_maybe
| ||||||| 0x0801ffcc 11f0a6ff bl func_31f1c
| ||||||| 0x0801ffd0 dff8300d ldr.w r0, [0x08020d08] ; [0x8020d08:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x0801ffd4 0421 movs r1, 4 ; 4
| ||||||| 0x0801ffd6 0170 strb r1, [r0]
| ||||||| 0x0801ffd8 dff82c0d ldr.w r0, [0x08020d0c] ; [0x8020d0c:4]=0x2001e6ec
| ||||||| 0x0801ffdc 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x0801ffe0 0160 str r1, [r0]
| ||||||| 0x0801ffe2 eef763f8 bl F_786
| ||||||| 0x0801ffe6 0020 movs r0, 0
| ||||||| 0x0801ffe8 fdf7c2f9 bl gfx_set_fg_color
| ||||||| 0x0801ffec 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0801fff0 fdf7baf9 bl gfx_set_bg_color
| ||||||| 0x0801fff4 7f20 movs r0, 0x7f ; 127
| ||||||| 0x0801fff6 0090 str r0, [sp]
| ||||||| 0x0801fff8 9d23 movs r3, 0x9d ; 157
| ||||||| 0x0801fffa 0122 movs r2, 1 ; 1
| ||||||| 0x0801fffc 0221 movs r1, 2 ; 2
| ||||||| 0x0801fffe dff80c0d ldr.w r0, [0x08020d12] ; [0x8020d10:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x08020002 0068 ldr r0, [r0]
| ||||||| 0x08020004 dff8084d ldr.w r4, [0x08020d14] ; [0x8020d14:4]=0x40020800 io_GPIOC
| ||||||| 0x08020008 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0802000c d0f8ac03 ldr.w r0, [r0, 0x3ac]
| ||||||| 0x08020010 edf762ff bl gfx_drawtext10
| `-------> 0x08020014 01f0c8b9 b.w 0x80213a8
| --------> ;-- update_scr_31:
| --------> 0x08020018 dff8d80b ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| |||||| 0x0802001c 0078 ldrb r0, [r0]
| |||||| 0x0802001e 0028 cmp r0, 0
| ,=======< 0x08020020 15d1 bne 0x802004e
| ||||||| 0x08020022 dff8ac0c ldr.w r0, [0x08020cd6] ; [0x8020cd4:4]=0x2001e604 q_status_4
| ||||||| 0x08020026 1f21 movs r1, 0x1f ; 31
| ||||||| 0x08020028 0170 strb r1, [r0]
| ||||||| 0x0802002a dff8c40c ldr.w r0, [0x08020cf6] ; [0x8020cf4:4]=0x2001e8a9 event5_buffer
| ||||||| 0x0802002e 0021 movs r1, 0
| ||||||| 0x08020030 0170 strb r1, [r0]
| ||||||| 0x08020032 dff8c80c ldr.w r0, [0x08020d02] ; [0x8020d00:4]=0x2001e958
| ||||||| 0x08020036 ff21 movs r1, 0xff ; 255
| ||||||| 0x08020038 0170 strb r1, [r0]
| ||||||| 0x0802003a dff8c00c ldr.w r0, [0x08020d02] ; [0x8020d00:4]=0x2001e958
| ||||||| 0x0802003e dff8c01c ldr.w r1, [0x08020d06] ; [0x8020d04:4]=0x2001e893
| ||||||| 0x08020042 0978 ldrb r1, [r1]
| ||||||| 0x08020044 8170 strb r1, [r0, 2]
| ||||||| 0x08020046 02f042ff bl md380_spiflash_write_zone_struct_with_number_in_byte3_maybe
| ||||||| 0x0802004a fdf777fe bl gfx_1dd3c
| `-------> 0x0802004e 01f0abb9 b.w 0x80213a8
| `------> ;-- update_scr_20:
| `------> 0x08020052 4021 movs r1, 0x40 ; '@' ; 64
| ||||| 0x08020054 dff8bc0c ldr.w r0, [0x08020d18] ; [0x8020d18:4]=0x2001dadc md380_radio_config
| ||||| 0x08020058 0bf0d7fb bl GPIO_SetBits
| ||||| 0x0802005c dff8b80c ldr.w r0, [0x08020d1c] ; [0x8020d1c:4]=0x2001e7f8 backlight_timer
| ||||| 0x08020060 407d ldrb r0, [r0, 0x15]
| ||||| 0x08020062 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||| 0x08020066 10fb01f0 smulbb r0, r0, r1
| ||||| 0x0802006a dff8b01c ldr.w r1, [0x08020d22] ; [0x8020d20:4]=0x2001e6fc
| ||||| 0x0802006e 0880 strh r0, [r1]
| ||||| 0x08020070 dff8800b ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||||| 0x08020074 0078 ldrb r0, [r0]
| ||||| 0x08020076 0c28 cmp r0, 0xc ; 12
| ,======< 0x08020078 6fd0 beq 0x802015a
| |||||| 0x0802007a dff8780b ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| |||||| 0x0802007e 0078 ldrb r0, [r0]
| |||||| 0x08020080 0028 cmp r0, 0
| ,=======< 0x08020082 6ad0 beq 0x802015a
| ||||||| 0x08020084 dff86c0b ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x08020088 0621 movs r1, 6 ; 6
| ||||||| 0x0802008a 0170 strb r1, [r0]
| ||||||| 0x0802008c dff8400c ldr.w r0, [0x08020cd4] ; [0x8020cd4:4]=0x2001e604 q_status_4
| ||||||| 0x08020090 1421 movs r1, 0x14 ; 20
| ||||||| 0x08020092 0170 strb r1, [r0]
| ||||||| 0x08020094 01f09cf9 bl func_213d0
| ||||||| 0x08020098 dff8700c ldr.w r0, [0x08020d10] ; [0x8020d10:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0802009c 0068 ldr r0, [r0]
| ||||||| 0x0802009e dff8701c ldr.w r1, [0x08020d16] ; [0x8020d14:4]=0x40020800 io_GPIOC
| ||||||| 0x080200a2 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||||| 0x080200a6 d0f84401 ldr.w r0, [r0, 0x144]
| ||||||| 0x080200aa dff8741c ldr.w r1, [0x08020d26] ; [0x8020d24:4]=0x2001e822
| ||||||| 0x080200ae 0968 ldr r1, [r1]
| ||||||| 0x080200b0 0860 str r0, [r1]
| ||||||| 0x080200b2 dff8700c ldr.w r0, [0x08020d2a] ; [0x8020d28:4]=0xff1414
| ||||||| 0x080200b6 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x080200ba 0028 cmp r0, 0
| ========< 0x080200bc 23d1 bne 0x8020106
| ||||||| 0x080200be dff8680c ldr.w r0, [0x08020d2e] ; [0x8020d2c:4]=0x2001e700 menu_memory_poi
| ||||||| 0x080200c2 fdf755f9 bl gfx_set_fg_color
| ||||||| 0x080200c6 7e23 movs r3, 0x7e ; '~' ; 126
| ||||||| 0x080200c8 9e22 movs r2, 0x9e ; 158
| ||||||| 0x080200ca 6e21 movs r1, 0x6e ; 'n' ; 110
| ||||||| 0x080200cc 0120 movs r0, 1 ; 1
| ||||||| 0x080200ce fdf7ddfb bl gfx_blockfill
| ||||||| 0x080200d2 dff8540c ldr.w r0, [0x08020d2e] ; [0x8020d2c:4]=0x2001e700 menu_memory_poi
| ||||||| 0x080200d6 fdf747f9 bl gfx_set_bg_color
| ||||||| 0x080200da 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x080200de fdf747f9 bl gfx_set_fg_color
| ||||||| 0x080200e2 7e20 movs r0, 0x7e ; '~' ; 126
| ||||||| 0x080200e4 0090 str r0, [sp]
| ||||||| 0x080200e6 9e23 movs r3, 0x9e ; 158
| ||||||| 0x080200e8 6e22 movs r2, 0x6e ; 'n' ; 110
| ||||||| 0x080200ea 0121 movs r1, 1 ; 1
| ||||||| 0x080200ec dff8300c ldr.w r0, [0x08020d24] ; [0x8020d24:4]=0x2001e822
| ||||||| 0x080200f0 0068 ldr r0, [r0]
| ||||||| 0x080200f2 0068 ldr r0, [r0]
| ||||||| 0x080200f4 edf7f0fe bl gfx_drawtext10
| ||||||| 0x080200f8 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x080200fc fdf734f9 bl gfx_set_bg_color
| ||||||| 0x08020100 0020 movs r0, 0
| ||||||| 0x08020102 fdf735f9 bl gfx_set_fg_color
| --------> 0x08020106 eef7c7f8 bl F_4284
| ||||||| 0x0802010a dff8200c ldr.w r0, [0x08020d32] ; [0x8020d30:4]=0x2001cb58 selected_contact_name_wstring
| ||||||| 0x0802010e 0068 ldr r0, [r0]
| ||||||| 0x08020110 dff81c1c ldr.w r1, [0x08020d34] ; [0x8020d34:4]=0x388f8df
| ||||||| 0x08020114 0160 str r1, [r0]
| ||||||| 0x08020116 0020 movs r0, 0
| ||||||| 0x08020118 fdf72af9 bl gfx_set_fg_color
| ||||||| 0x0802011c dff80c0c ldr.w r0, [0x08020d30] ; [0x8020d30:4]=0x2001cb58 selected_contact_name_wstring
| ||||||| 0x08020120 0068 ldr r0, [r0]
| ||||||| 0x08020122 0168 ldr r1, [r0]
| ||||||| 0x08020124 dff8fc0b ldr.w r0, [0x08020d28] ; [0x8020d28:4]=0xff1414
| ||||||| 0x08020128 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0802012c 07f00bff bl func_26f46
| ||||||| 0x08020130 dff8d80b ldr.w r0, [0x08020d10] ; [0x8020d10:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x08020134 0068 ldr r0, [r0]
| ||||||| 0x08020136 dff8d81b ldr.w r1, [0x08020d16] ; [0x8020d14:4]=0x40020800 io_GPIOC
| ||||||| 0x0802013a 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||||| 0x0802013e d0f84811 ldr.w r1, [r0, 0x148]
| ||||||| 0x08020142 dff8f80d ldr.w r0, [0x08020f42] ; [0x8020f40:4]=0xf8dfb2e4
| ||||||| 0x08020146 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0802014a 07f0fcfe bl func_26f46
| ||||||| 0x0802014e fdf738f8 bl gfx_1d1c2
| ||||||| 0x08020152 dff8840b ldr.w r0, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x08020156 c821 movs r1, 0xc8 ; 200
| ||||||| 0x08020158 0180 strh r1, [r0]
| ``------> 0x0802015a 01f025b9 b.w 0x80213a8
| |||`--> ;-- update_scr_16:
| |||`--> 0x0802015e 4021 movs r1, 0x40 ; '@' ; 64
| ||| | 0x08020160 dff8b00b ldr.w r0, [0x08020d18] ; [0x8020d18:4]=0x2001dadc md380_radio_config
| ||| | 0x08020164 0bf051fb bl GPIO_SetBits
| ||| | 0x08020168 dff8ac0b ldr.w r0, [0x08020d1c] ; [0x8020d1c:4]=0x2001e7f8 backlight_timer
| ||| | 0x0802016c 407d ldrb r0, [r0, 0x15]
| ||| | 0x0802016e 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||| | 0x08020172 10fb01f0 smulbb r0, r0, r1
| ||| | 0x08020176 dff8a41b ldr.w r1, [0x08020d22] ; [0x8020d20:4]=0x2001e6fc
| ||| | 0x0802017a 0880 strh r0, [r1]
| ||| | 0x0802017c dff8740a ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||| | 0x08020180 0078 ldrb r0, [r0]
| ||| | 0x08020182 0c28 cmp r0, 0xc ; 12
| |||,==< 0x08020184 18d0 beq 0x80201b8
| ||||| 0x08020186 dff86c0a ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| ||||| 0x0802018a 0521 movs r1, 5 ; 5
| ||||| 0x0802018c 0170 strb r1, [r0]
| ||||| 0x0802018e dff8400b ldr.w r0, [0x08020cd6] ; [0x8020cd4:4]=0x2001e604 q_status_4
| ||||| 0x08020192 1021 movs r1, 0x10 ; 16
| ||||| 0x08020194 0170 strb r1, [r0]
| ||||| 0x08020196 05f0fbfa bl func_25790_menu_create_something
| ||||| 0x0802019a edf705fe bl func_0dda8
| ||||| 0x0802019e dff88c0b ldr.w r0, [0x08020d32] ; [0x8020d30:4]=0x2001cb58 selected_contact_name_wstring
| ||||| 0x080201a2 0068 ldr r0, [r0]
| ||||| 0x080201a4 dff8881b ldr.w r1, [0x08020d34] ; [0x8020d34:4]=0x388f8df
| ||||| 0x080201a8 0160 str r1, [r0]
| ||||| 0x080201aa ecf71dfb bl func_0c7e8
| ||||| 0x080201ae dff8280b ldr.w r0, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||| 0x080201b2 4ff47a71 mov.w r1, 0x3e8 ; 1000
| ||||| 0x080201b6 0180 strh r1, [r0]
| ,===`--> 0x080201b8 01f0f6b8 b.w 0x80213a8
| --------> ;-- update_scr_35:
| --------> 0x080201bc dff8340a ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| |||| | 0x080201c0 0078 ldrb r0, [r0]
| |||| | 0x080201c2 0c28 cmp r0, 0xc ; 12
| ||||,==< 0x080201c4 21d0 beq 0x802020a
| |||||| 0x080201c6 dff8280b ldr.w r0, [0x08020cf6] ; [0x8020cf4:4]=0x2001e8a9 event5_buffer
| |||||| 0x080201ca 0078 ldrb r0, [r0]
| |||||| 0x080201cc 0728 cmp r0, 7 ; 7
| ,=======< 0x080201ce 1cd0 beq 0x802020a
| ||||||| 0x080201d0 dff8000b ldr.w r0, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x080201d4 0078 ldrb r0, [r0]
| ||||||| 0x080201d6 0006 lsls r0, r0, 0x18
| ========< 0x080201d8 17d4 bmi 0x802020a
| ||||||| 0x080201da 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x080201dc dff8340b ldr.w r0, [0x08020d18] ; [0x8020d18:4]=0x2001dadc md380_radio_config
| ||||||| 0x080201e0 0bf013fb bl GPIO_SetBits
| ||||||| 0x080201e4 dff8300b ldr.w r0, [0x08020d1c] ; [0x8020d1c:4]=0x2001e7f8 backlight_timer
| ||||||| 0x080201e8 407d ldrb r0, [r0, 0x15]
| ||||||| 0x080201ea 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x080201ee 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x080201f2 dff8281b ldr.w r1, [0x08020d22] ; [0x8020d20:4]=0x2001e6fc
| ||||||| 0x080201f6 0880 strh r0, [r1]
| ||||||| 0x080201f8 dff8880d ldr.w r0, [0x08020f88] ; [0x8020f88:4]=0x2001e908
| ||||||| 0x080201fc 0078 ldrb r0, [r0]
| ||||||| 0x080201fe ff28 cmp r0, 0xff ; 255
| ========< 0x08020200 01d1 bne 0x8020206
| ||||||| 0x08020202 ebf7c1ff bl md380_create_main_menu_entry
| --------> 0x08020206 eef78ffa bl Volume_Menu
| `----`--> 0x0802020a 01f0cdb8 b.w 0x80213a8
| --------> ;-- update_scr_36:
| --------> 0x0802020e dff8780d ldr.w r0, [0x08020f8e] ; [0x8020f8c:4]=0x2001e81e
| |||| | 0x08020212 0021 movs r1, 0
| |||| | 0x08020214 0170 strb r1, [r0]
| |||| | 0x08020216 edf769fd bl func_0dcec
| |||| | 0x0802021a dff8100b ldr.w r0, [0x08020d32] ; [0x8020d30:4]=0x2001cb58 selected_contact_name_wstring
| |||| | 0x0802021e 0068 ldr r0, [r0]
| |||| | 0x08020220 4189 ldrh r1, [r0, 0xa]
| |||| | 0x08020222 dff8680d ldr.w r0, [0x08020f92] ; [0x8020f90:4]=0x2102b2e4
| |||| | 0x08020226 b0f90000 ldrsh.w r0, [r0]
| |||| | 0x0802022a 0af049fc bl func_2aac0
| |||| | 0x0802022e ecf7dbfa bl func_0c7e8
| ||||,==< 0x08020232 01f0b9b8 b.w 0x80213a8
| |||`---> ;-- update_scr_17:
| |||`---> 0x08020236 dff8fc0d ldr.w r0, [0x0802103a] ; [0x8021038:4]=0x2001e5f4
| ||| || 0x0802023a 0021 movs r1, 0
| ||| || 0x0802023c 0170 strb r1, [r0]
| ||| || 0x0802023e 4021 movs r1, 0x40 ; '@' ; 64
| ||| || 0x08020240 dff8d00a ldr.w r0, [0x08020d18] ; [0x8020d18:4]=0x2001dadc md380_radio_config
| ||| || 0x08020244 0bf0e1fa bl GPIO_SetBits
| ||| || 0x08020248 dff8cc0a ldr.w r0, [0x08020d1c] ; [0x8020d1c:4]=0x2001e7f8 backlight_timer
| ||| || 0x0802024c 407d ldrb r0, [r0, 0x15]
| ||| || 0x0802024e 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||| || 0x08020252 10fb01f0 smulbb r0, r0, r1
| ||| || 0x08020256 dff8c41a ldr.w r1, [0x08020d22] ; [0x8020d20:4]=0x2001e6fc
| ||| || 0x0802025a 0880 strh r0, [r1]
| ||| || 0x0802025c dff89409 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||| || 0x08020260 0078 ldrb r0, [r0]
| ||| || 0x08020262 0c28 cmp r0, 0xc ; 12
| |||,===< 0x08020264 00f08580 beq.w 0x8020372
| |||||| 0x08020268 dff8840a ldr.w r0, [0x08020cf4] ; [0x8020cf4:4]=0x2001e8a9 event5_buffer
| |||||| 0x0802026c 0078 ldrb r0, [r0]
| |||||| 0x0802026e 0728 cmp r0, 7 ; 7
| ,=======< 0x08020270 00f07f80 beq.w 0x8020372
| ||||||| 0x08020274 dff85c0a ldr.w r0, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020278 0078 ldrb r0, [r0]
| ||||||| 0x0802027a 0006 lsls r0, r0, 0x18
| ========< 0x0802027c 79d4 bmi 0x8020372
| ||||||| 0x0802027e dff8540a ldr.w r0, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020282 0078 ldrb r0, [r0]
| ||||||| 0x08020284 c0f38000 ubfx r0, r0, 2, 1
| ||||||| 0x08020288 c007 lsls r0, r0, 0x1f
| ========< 0x0802028a 0ed5 bpl 0x80202aa
| ||||||| 0x0802028c dff8480a ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x08020290 c821 movs r1, 0xc8 ; 200
| ||||||| 0x08020292 0180 strh r1, [r0]
| ||||||| 0x08020294 dff8380a ldr.w r0, [0x08020cd4] ; [0x8020cd4:4]=0x2001e604 q_status_4
| ||||||| 0x08020298 1121 movs r1, 0x11 ; 17
| ||||||| 0x0802029a 0170 strb r1, [r0]
| ||||||| 0x0802029c dff85409 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x080202a0 0221 movs r1, 2 ; 2
| ||||||| 0x080202a2 0170 strb r1, [r0]
| ||||||| 0x080202a4 01f02bf9 bl func_214fe
| ========< 0x080202a8 2ce0 b 0x8020304
| --------> 0x080202aa dff88c0d ldr.w r0, [0x0802103e] ; [0x802103c:4]=0x407ff07f
| ||||||| 0x080202ae 0078 ldrb r0, [r0]
| ||||||| 0x080202b0 c007 lsls r0, r0, 0x1f
| ========< 0x080202b2 12d4 bmi 0x80202da
| ||||||| 0x080202b4 dff8200a ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x080202b8 0521 movs r1, 5 ; 5
| ||||||| 0x080202ba 0180 strh r1, [r0]
| ||||||| 0x080202bc dff8100a ldr.w r0, [0x08020cd4] ; [0x8020cd4:4]=0x2001e604 q_status_4
| ||||||| 0x080202c0 1121 movs r1, 0x11 ; 17
| ||||||| 0x080202c2 0170 strb r1, [r0]
| ||||||| 0x080202c4 dff82c09 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x080202c8 0221 movs r1, 2 ; 2
| ||||||| 0x080202ca 0170 strb r1, [r0]
| ||||||| 0x080202cc ebf75cff bl md380_create_main_menu_entry
| ||||||| 0x080202d0 05f008fc bl F_4315
| ||||||| 0x080202d4 edf70afd bl func_0dcec
| ========< 0x080202d8 14e0 b 0x8020304
| --------> 0x080202da dff8dc0d ldr.w r0, [0x080210be] ; [0x80210bc:4]=0x2001e8ec
| ||||||| 0x080202de 0078 ldrb r0, [r0]
| ||||||| 0x080202e0 2028 cmp r0, 0x20 ; 32
| ========< 0x080202e2 0fd1 bne 0x8020304
| ||||||| 0x080202e4 dff8f009 ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x080202e8 0521 movs r1, 5 ; 5
| ||||||| 0x080202ea 0180 strh r1, [r0]
| ||||||| 0x080202ec dff8e009 ldr.w r0, [0x08020cd4] ; [0x8020cd4:4]=0x2001e604 q_status_4
| ||||||| 0x080202f0 1121 movs r1, 0x11 ; 17
| ||||||| 0x080202f2 0170 strb r1, [r0]
| ||||||| 0x080202f4 dff8fc08 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x080202f8 0221 movs r1, 2 ; 2
| ||||||| 0x080202fa 0170 strb r1, [r0]
| ||||||| 0x080202fc 05f0f2fb bl F_4315
| ||||||| 0x08020300 edf7f4fc bl func_0dcec
| --------> 0x08020304 dff8b40d ldr.w r0, [0x080210c0] ; [0x80210c0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08020308 0078 ldrb r0, [r0]
| ||||||| 0x0802030a 0528 cmp r0, 5 ; 5
| ========< 0x0802030c 05d1 bne 0x802031a
| ||||||| 0x0802030e f0f79ef8 bl func_1044e
| ||||||| 0x08020312 b420 movs r0, 0xb4 ; 180
| ||||||| 0x08020314 13f0cefd bl OSTimeDly
| ========< 0x08020318 09e0 b 0x802032e
| --------> 0x0802031a dff8a00d ldr.w r0, [0x080210c2] ; [0x80210c0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0802031e 0078 ldrb r0, [r0]
| ||||||| 0x08020320 401e subs r0, r0, 1
| ||||||| 0x08020322 c0b2 uxtb r0, r0
| ||||||| 0x08020324 0228 cmp r0, 2 ; 2
| ========< 0x08020326 02d2 bhs 0x802032e
| ||||||| 0x08020328 b420 movs r0, 0xb4 ; 180
| ||||||| 0x0802032a 13f0c3fd bl OSTimeDly
| --------> 0x0802032e 0020 movs r0, 0
| ||||||| 0x08020330 13f0dcfe bl func_340ec
| ||||||| 0x08020334 0020 movs r0, 0
| ||||||| 0x08020336 13f0b0fe bl func_3409a
| ||||||| 0x0802033a dff8b808 ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x0802033e 0078 ldrb r0, [r0]
| ||||||| 0x08020340 0228 cmp r0, 2 ; 2
| ========< 0x08020342 16d1 bne 0x8020372
| ||||||| 0x08020344 dff8780d ldr.w r0, [0x080210c4] ; [0x80210c4:4]=0x2001e600 q_struct_1
| ||||||| 0x08020348 c07f ldrb r0, [r0, 0x1f]
| ||||||| 0x0802034a 8007 lsls r0, r0, 0x1e
| ========< 0x0802034c 11d4 bmi 0x8020372
| ||||||| 0x0802034e dff8740d ldr.w r0, [0x080210ca] ; [0x80210c8:4]=0x2001e8ff
| ||||||| 0x08020352 4078 ldrb r0, [r0, 1]
| ||||||| 0x08020354 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08020358 dff8681d ldr.w r1, [0x080210c8] ; [0x80210c8:4]=0x2001e8ff
| ||||||| 0x0802035c 4870 strb r0, [r1, 1]
| ||||||| 0x0802035e 11f057fd bl func_31e10
| ||||||| 0x08020362 dff8540d ldr.w r0, [0x080210be] ; [0x80210bc:4]=0x2001e8ec
| ||||||| 0x08020366 0078 ldrb r0, [r0]
| ||||||| 0x08020368 c0f30110 ubfx r0, r0, 4, 2
| ||||||| 0x0802036c dff8581d ldr.w r1, [0x080210cc] ; [0x80210cc:4]=0x2001e898 simplex_or_repeater_flagword
| ||||||| 0x08020370 0870 strb r0, [r1]
| `---`---> 0x08020372 01f019b8 b.w 0x80213a8
| ||`----> ;-- update_scr_18:
| ||`----> 0x08020376 dff87c08 ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| || || 0x0802037a 0078 ldrb r0, [r0]
| || || 0x0802037c 0228 cmp r0, 2 ; 2
| || ,===< 0x0802037e 0dd1 bne 0x802039c
| || ||| 0x08020380 dff85409 ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| || ||| 0x08020384 0521 movs r1, 5 ; 5
| || ||| 0x08020386 0180 strh r1, [r0]
| || ||| 0x08020388 dff84409 ldr.w r0, [0x08020cd4] ; [0x8020cd4:4]=0x2001e604 q_status_4
| || ||| 0x0802038c 1221 movs r1, 0x12 ; 18
| || ||| 0x0802038e 0170 strb r1, [r0]
| || ||| 0x08020390 dff86008 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| || ||| 0x08020394 0421 movs r1, 4 ; 4
| || ||| 0x08020396 0170 strb r1, [r0]
| || ||| 0x08020398 05f062fd bl func_25e60
| || `---> 0x0802039c dff85408 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| || || 0x080203a0 0078 ldrb r0, [r0]
| || || 0x080203a2 0428 cmp r0, 4 ; 4
| || ,===< 0x080203a4 60d1 bne 0x8020468
| || ||| 0x080203a6 dff8240d ldr.w r0, [0x080210d2] ; [0x80210d0:4]=0x2001e905
| || ||| 0x080203aa 0078 ldrb r0, [r0]
| || ||| 0x080203ac 0128 cmp r0, 1 ; 1
| ||,====< 0x080203ae 05d1 bne 0x80203bc
| |||||| 0x080203b0 13f0f7fe bl func_341a2
| |||||| 0x080203b4 0420 movs r0, 4 ; 4
| |||||| 0x080203b6 13f0d5fe bl func_34164
| ,=======< 0x080203ba 22e0 b 0x8020402
| |||`----> 0x080203bc dff8f80c ldr.w r0, [0x080210bc] ; [0x80210bc:4]=0x2001e8ec
| ||| ||| 0x080203c0 0078 ldrb r0, [r0]
| ||| ||| 0x080203c2 2028 cmp r0, 0x20 ; 32
| |||,====< 0x080203c4 0ad1 bne 0x80203dc
| ||||||| 0x080203c6 dff85009 ldr.w r0, [0x08020d1e] ; [0x8020d1c:4]=0x2001e7f8 backlight_timer
| ||||||| 0x080203ca 807a ldrb r0, [r0, 0xa]
| ||||||| 0x080203cc 0a21 movs r1, 0xa ; 10
| ||||||| 0x080203ce 4843 muls r0, r1, r0
| ||||||| 0x080203d0 0a21 movs r1, 0xa ; 10
| ||||||| 0x080203d2 b0fbf1f0 udiv r0, r0, r1
| ||||||| 0x080203d6 13f0c5fe bl func_34164
| ========< 0x080203da 12e0 b 0x8020402
| |||`----> 0x080203dc dff8d80c ldr.w r0, [0x080210bc] ; [0x80210bc:4]=0x2001e8ec
| ||| ||| 0x080203e0 0078 ldrb r0, [r0]
| ||| ||| 0x080203e2 1028 cmp r0, 0x10 ; 16
| |||,====< 0x080203e4 0ad1 bne 0x80203fc
| ||||||| 0x080203e6 dff83009 ldr.w r0, [0x08020d1e] ; [0x8020d1c:4]=0x2001e7f8 backlight_timer
| ||||||| 0x080203ea 407a ldrb r0, [r0, 9]
| ||||||| 0x080203ec 0a21 movs r1, 0xa ; 10
| ||||||| 0x080203ee 4843 muls r0, r1, r0
| ||||||| 0x080203f0 0a21 movs r1, 0xa ; 10
| ||||||| 0x080203f2 b0fbf1f0 udiv r0, r0, r1
| ||||||| 0x080203f6 13f0b5fe bl func_34164
| ========< 0x080203fa 02e0 b 0x8020402
| |||`----> 0x080203fc 0220 movs r0, 2 ; 2
| ||| ||| 0x080203fe 13f0b1fe bl func_34164
| `-------> 0x08020402 dff8cc0c ldr.w r0, [0x080210d6] ; [0x80210d4:4]=0x2001e81c not_the_volume_knob
| || ||| 0x08020406 0078 ldrb r0, [r0]
| || ||| 0x08020408 0028 cmp r0, 0
| ||,====< 0x0802040a 2dd0 beq 0x8020468
| |||||| 0x0802040c dff8c40c ldr.w r0, [0x080210d8] ; [0x80210d8:4]=0x80f868c
| |||||| 0x08020410 b0f90000 ldrsh.w r0, [r0]
| |||||| 0x08020414 fcf7defa bl gfx_1c9d4
| |||||| 0x08020418 dff8b80c ldr.w r0, [0x080210d8] ; [0x80210d8:4]=0x80f868c
| |||||| 0x0802041c 0021 movs r1, 0
| |||||| 0x0802041e 0180 strh r1, [r0]
| |||||| 0x08020420 4622 movs r2, 0x46 ; 'F' ; 70
| |||||| 0x08020422 5f21 movs r1, 0x5f ; '_' ; 95
| |||||| 0x08020424 dff8b00c ldr.w r0, [0x080210dc] ; [0x80210dc:4]=0x6f8f8df
| |||||| 0x08020428 03f0e9f9 bl gfx_drawbmp
| |||||| 0x0802042c edf75efc bl func_0dcec
| |||||| 0x08020430 dff89c0c ldr.w r0, [0x080210d4] ; [0x80210d4:4]=0x2001e81c not_the_volume_knob
| |||||| 0x08020434 0021 movs r1, 0
| |||||| 0x08020436 0170 strb r1, [r0]
| |||||| 0x08020438 dff84c0b ldr.w r0, [0x08020f8c] ; [0x8020f8c:4]=0x2001e81e
| |||||| 0x0802043c 0021 movs r1, 0
| |||||| 0x0802043e 0170 strb r1, [r0]
| |||||| 0x08020440 dff8e008 ldr.w r0, [0x08020d28] ; [0x8020d28:4]=0xff1414
| |||||| 0x08020444 b0f90000 ldrsh.w r0, [r0]
| |||||| 0x08020448 fcf7c4fa bl gfx_1c9d4
| |||||| 0x0802044c dff8d408 ldr.w r0, [0x08020d28] ; [0x8020d28:4]=0xff1414
| |||||| 0x08020450 0021 movs r1, 0
| |||||| 0x08020452 0180 strh r1, [r0]
| |||||| 0x08020454 dff8e40a ldr.w r0, [0x08020f40] ; [0x8020f40:4]=0xf8dfb2e4
| |||||| 0x08020458 b0f90000 ldrsh.w r0, [r0]
| |||||| 0x0802045c fcf7bafa bl gfx_1c9d4
| |||||| 0x08020460 dff8d80a ldr.w r0, [0x08020f40] ; [0x8020f40:4]=0xf8dfb2e4
| |||||| 0x08020464 0021 movs r1, 0
| |||||| 0x08020466 0180 strh r1, [r0]
| ,==``---> 0x08020468 00f09ebf b.w 0x80213a8
| ||`-----> ;-- update_scr_19:
| ||`-----> 0x0802046c dff88407 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| || || 0x08020470 0078 ldrb r0, [r0]
| || || 0x08020472 0228 cmp r0, 2 ; 2
| || ,===< 0x08020474 05d0 beq 0x8020482
| || ||| 0x08020476 dff87c07 ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| || ||| 0x0802047a 0078 ldrb r0, [r0]
| || ||| 0x0802047c 0428 cmp r0, 4 ; 4
| || ,====< 0x0802047e 40f0c680 bne.w 0x802060e
| || |`---> 0x08020482 dff85008 ldr.w r0, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| || | || 0x08020486 0078 ldrb r0, [r0]
| || | || 0x08020488 10f0fb00 ands r0, r0, 0xfb
| || | || 0x0802048c dff84418 ldr.w r1, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| || | || 0x08020490 0870 strb r0, [r1]
| || | || 0x08020492 dff83c08 ldr.w r0, [0x08020cd6] ; [0x8020cd4:4]=0x2001e604 q_status_4
| || | || 0x08020496 1321 movs r1, 0x13 ; 19
| || | || 0x08020498 0170 strb r1, [r0]
| || | || 0x0802049a 13f082fe bl func_341a2
| || | || 0x0802049e dff8d40d ldr.w r0, [0x0802127a] ; [0x8021278:4]=0x2001dd74
| || | || 0x080204a2 0078 ldrb r0, [r0]
| || | || 0x080204a4 0128 cmp r0, 1 ; 1
| || |,===< 0x080204a6 25d1 bne 0x80204f4
| || |||| 0x080204a8 dff8cc0d ldr.w r0, [0x0802127c] ; [0x802127c:4]=0x2001e63c
| || |||| 0x080204ac dff8cc1d ldr.w r1, [0x08021280] ; [0x8021280:4]=0x554f8df
| || |||| 0x080204b0 0968 ldr r1, [r1]
| || |||| 0x080204b2 0160 str r1, [r0]
| || |||| 0x080204b4 15f036f8 bl func_35524
| || |||| 0x080204b8 dff83408 ldr.w r0, [0x08020cf4] ; [0x8020cf4:4]=0x2001e8a9 event5_buffer
| || |||| 0x080204bc 0078 ldrb r0, [r0]
| || |||| 0x080204be 0128 cmp r0, 1 ; 1
| ||,=====< 0x080204c0 33d0 beq 0x802052a
| ||||||| 0x080204c2 dff8fc0b ldr.w r0, [0x080210c6] ; [0x80210c4:4]=0x2001e600 q_struct_1
| ||||||| 0x080204c6 c07f ldrb r0, [r0, 0x1f]
| ||||||| 0x080204c8 8007 lsls r0, r0, 0x1e
| ========< 0x080204ca 2ed5 bpl 0x802052a
| ||||||| 0x080204cc 15f08afb bl func_35be4
| ||||||| 0x080204d0 edf70cfc bl func_0dcec
| ||||||| 0x080204d4 edf768fc bl func_0dda8
| ||||||| 0x080204d8 dff83008 ldr.w r0, [0x08020d10] ; [0x8020d10:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x080204dc 0068 ldr r0, [r0]
| ||||||| 0x080204de dff83018 ldr.w r1, [0x08020d16] ; [0x8020d14:4]=0x40020800 io_GPIOC
| ||||||| 0x080204e2 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||||| 0x080204e6 d0f84c02 ldr.w r0, [r0, 0x24c]
| ||||||| 0x080204ea dff84018 ldr.w r1, [0x08020d32] ; [0x8020d30:4]=0x2001cb58 selected_contact_name_wstring
| ||||||| 0x080204ee 0968 ldr r1, [r1]
| ||||||| 0x080204f0 0860 str r0, [r1]
| ========< 0x080204f2 1ae0 b 0x802052a
| ||||`---> 0x080204f4 dff87c0d ldr.w r0, [0x08021278] ; [0x8021278:4]=0x2001dd74
| |||| || 0x080204f8 0078 ldrb r0, [r0]
| |||| || 0x080204fa 0228 cmp r0, 2 ; 2
| ||||,===< 0x080204fc 08d1 bne 0x8020510
| ||||||| 0x080204fe dff8780d ldr.w r0, [0x0802127e] ; [0x802127c:4]=0x2001e63c
| ||||||| 0x08020502 dff8781d ldr.w r1, [0x08021282] ; [0x8021280:4]=0x554f8df
| ||||||| 0x08020506 0968 ldr r1, [r1]
| ||||||| 0x08020508 0160 str r1, [r0]
| ||||||| 0x0802050a 15f082fa bl func_35a12
| ========< 0x0802050e 0ce0 b 0x802052a
| ||||`---> 0x08020510 dff8600d ldr.w r0, [0x08021278] ; [0x8021278:4]=0x2001dd74
| |||| || 0x08020514 0078 ldrb r0, [r0]
| |||| || 0x08020516 0328 cmp r0, 3 ; 3
| ||||,===< 0x08020518 07d1 bne 0x802052a
| ||||||| 0x0802051a dff85c0d ldr.w r0, [0x0802127e] ; [0x802127c:4]=0x2001e63c
| ||||||| 0x0802051e dff85c1d ldr.w r1, [0x08021282] ; [0x8021280:4]=0x554f8df
| ||||||| 0x08020522 0968 ldr r1, [r1]
| ||||||| 0x08020524 0160 str r1, [r0]
| ||||||| 0x08020526 16f0a4f8 bl func_36672
| --`-`---> 0x0802052a dff8480d ldr.w r0, [0x0802127a] ; [0x8021278:4]=0x2001dd74
| || | || 0x0802052e 0021 movs r1, 0
| || | || 0x08020530 0170 strb r1, [r0]
| || | || 0x08020532 dff8a007 ldr.w r0, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| || | || 0x08020536 0078 ldrb r0, [r0]
| || | || 0x08020538 c0f3c000 ubfx r0, r0, 3, 1
| || | || 0x0802053c c007 lsls r0, r0, 0x1f
| || |,===< 0x0802053e 0ad5 bpl 0x8020556
| || |||| 0x08020540 dff8b006 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| || |||| 0x08020544 0721 movs r1, 7 ; 7
| || |||| 0x08020546 0170 strb r1, [r0]
| || |||| 0x08020548 00f0d9ff bl func_214fe
| || |||| 0x0802054c dff88807 ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| || |||| 0x08020550 c821 movs r1, 0xc8 ; 200
| || |||| 0x08020552 0180 strh r1, [r0]
| ||,=====< 0x08020554 5be0 b 0x802060e
| ||||`---> 0x08020556 dff82c0a ldr.w r0, [0x08020f8a] ; [0x8020f88:4]=0x2001e908
| |||| || 0x0802055a 0078 ldrb r0, [r0]
| |||| || 0x0802055c 1028 cmp r0, 0x10 ; 16
| ||||,===< 0x0802055e 16d3 blo 0x802058e
| ||||||| 0x08020560 dff89006 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x08020564 0121 movs r1, 1 ; 1
| ||||||| 0x08020566 0170 strb r1, [r0]
| ||||||| 0x08020568 dff8bc07 ldr.w r0, [0x08020d2c] ; [0x8020d2c:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0802056c fcf700ff bl gfx_set_fg_color
| ||||||| 0x08020570 7e23 movs r3, 0x7e ; '~' ; 126
| ||||||| 0x08020572 4422 movs r2, 0x44 ; 'D' ; 68
| ||||||| 0x08020574 6f21 movs r1, 0x6f ; 'o' ; 111
| ||||||| 0x08020576 0120 movs r0, 1 ; 1
| ||||||| 0x08020578 fdf788f9 bl gfx_blockfill
| ||||||| 0x0802057c 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x08020580 fcf7f6fe bl gfx_set_fg_color
| ||||||| 0x08020584 eff787fb bl return_to_mode_1_from10
| ||||||| 0x08020588 edf70efc bl func_0dda8
| ========< 0x0802058c 38e0 b 0x8020600
| ||||`---> 0x0802058e dff84007 ldr.w r0, [0x08020cd6] ; [0x8020cd4:4]=0x2001e604 q_status_4
| |||| || 0x08020592 1b21 movs r1, 0x1b ; 27
| |||| || 0x08020594 0170 strb r1, [r0]
| |||| || 0x08020596 dff85c06 ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| |||| || 0x0802059a 0a21 movs r1, 0xa ; 10
| |||| || 0x0802059c 0170 strb r1, [r0]
| |||| || 0x0802059e dff80c0e ldr.w r0, [0x080213b2] ; [0x80213b0:4]=0x2001e936
| |||| || 0x080205a2 0078 ldrb r0, [r0]
| |||| || 0x080205a4 6421 movs r1, 0x64 ; 'd' ; 100
| |||| || 0x080205a6 10fb01f0 smulbb r0, r0, r1
| |||| || 0x080205aa dff82c17 ldr.w r1, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| |||| || 0x080205ae 0880 strh r0, [r1]
| |||| || 0x080205b0 dff8f80d ldr.w r0, [0x080213b0] ; [0x80213b0:4]=0x2001e936
| |||| || 0x080205b4 0078 ldrb r0, [r0]
| |||| || 0x080205b6 ff28 cmp r0, 0xff ; 255
| ||||,===< 0x080205b8 04d0 beq 0x80205c4
| ||||||| 0x080205ba dff8f40d ldr.w r0, [0x080213b6] ; [0x80213b4:4]=0x20004ab2
| ||||||| 0x080205be 0078 ldrb r0, [r0]
| ||||||| 0x080205c0 0128 cmp r0, 1 ; 1
| ========< 0x080205c2 0fd1 bne 0x80205e4
| ||||`---> 0x080205c4 edf7f0fb bl func_0dda8
| |||| || 0x080205c8 dff86007 ldr.w r0, [0x08020d30] ; [0x8020d30:4]=0x2001cb58 selected_contact_name_wstring
| |||| || 0x080205cc 0068 ldr r0, [r0]
| |||| || 0x080205ce 4189 ldrh r1, [r0, 0xa]
| |||| || 0x080205d0 dff8b809 ldr.w r0, [0x08020f90] ; [0x8020f90:4]=0x2102b2e4
| |||| || 0x080205d4 b0f90000 ldrsh.w r0, [r0]
| |||| || 0x080205d8 0af072fa bl func_2aac0
| |||| || 0x080205dc ecf704f9 bl func_0c7e8
| ||||,===< 0x080205e0 00f0e2be b.w 0x80213a8
| --------> 0x080205e4 edf7e0fb bl func_0dda8
| ||||||| 0x080205e8 dff84007 ldr.w r0, [0x08020d30] ; [0x8020d30:4]=0x2001cb58 selected_contact_name_wstring
| ||||||| 0x080205ec 0068 ldr r0, [r0]
| ||||||| 0x080205ee 4189 ldrh r1, [r0, 0xa]
| ||||||| 0x080205f0 dff89809 ldr.w r0, [0x08020f90] ; [0x8020f90:4]=0x2102b2e4
| ||||||| 0x080205f4 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x080205f8 0af062fa bl func_2aac0
| ||||||| 0x080205fc ecf7f4f8 bl func_0c7e8
| --------> 0x08020600 dff8c80a ldr.w r0, [0x080210d0] ; [0x80210d0:4]=0x2001e905
| ||||||| 0x08020604 0078 ldrb r0, [r0]
| ||||||| 0x08020606 0128 cmp r0, 1 ; 1
| ========< 0x08020608 01d1 bne 0x802060e
| ||||||| 0x0802060a 0df093fb bl func_2dd34
| --``----> 0x0802060e 00f0cbbe b.w 0x80213a8
| --------> ;-- update_scr_27:
| --------> 0x08020612 dff8e005 ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| || ||| 0x08020616 0078 ldrb r0, [r0]
| || ||| 0x08020618 0c28 cmp r0, 0xc ; 12
| || ,====< 0x0802061a 48d0 beq 0x80206ae
| || |||| 0x0802061c dff8b006 ldr.w r0, [0x08020cd4] ; [0x8020cd4:4]=0x2001e604 q_status_4
| || |||| 0x08020620 1b21 movs r1, 0x1b ; 27
| || |||| 0x08020622 0170 strb r1, [r0]
| || |||| 0x08020624 dff8cc05 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| || |||| 0x08020628 0078 ldrb r0, [r0]
| || |||| 0x0802062a 0528 cmp r0, 5 ; 5
| ||,=====< 0x0802062c 05d1 bne 0x802063a
| ||||||| 0x0802062e dff8a806 ldr.w r0, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x08020632 4ff47a71 mov.w r1, 0x3e8 ; 1000
| ||||||| 0x08020636 0180 strh r1, [r0]
| ========< 0x08020638 39e0 b 0x80206ae
| ||`-----> 0x0802063a dff8b805 ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| || |||| 0x0802063e 0078 ldrb r0, [r0]
| || |||| 0x08020640 0628 cmp r0, 6 ; 6
| ||,=====< 0x08020642 34d0 beq 0x80206ae
| ||||||| 0x08020644 dff8ac05 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x08020648 0a21 movs r1, 0xa ; 10
| ||||||| 0x0802064a 0170 strb r1, [r0]
| ||||||| 0x0802064c dff8700d ldr.w r0, [0x080213c4] ; [0x80213c4:4]=0xff8032
| ||||||| 0x08020650 0078 ldrb r0, [r0]
| ||||||| 0x08020652 0028 cmp r0, 0
| ========< 0x08020654 0fd0 beq 0x8020676
| ||||||| 0x08020656 dff88006 ldr.w r0, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x0802065a 4ff47a71 mov.w r1, 0x3e8 ; 1000
| ||||||| 0x0802065e 0180 strh r1, [r0]
| ||||||| 0x08020660 dff8b406 ldr.w r0, [0x08020d1c] ; [0x8020d1c:4]=0x2001e7f8 backlight_timer
| ||||||| 0x08020664 807d ldrb r0, [r0, 0x16]
| ||||||| 0x08020666 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x0802066a 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x0802066e dff8441d ldr.w r1, [0x080213ba] ; [0x80213b8:4]=0x2001e5f0 radio_status_1
| ||||||| 0x08020672 0880 strh r0, [r1]
| ========< 0x08020674 1be0 b 0x80206ae
| --------> 0x08020676 dff8340d ldr.w r0, [0x080213b2] ; [0x80213b0:4]=0x2001e936
| ||||||| 0x0802067a 0078 ldrb r0, [r0]
| ||||||| 0x0802067c 0028 cmp r0, 0
| ========< 0x0802067e 03d1 bne 0x8020688
| ||||||| 0x08020680 dff8280d ldr.w r0, [0x080213b0] ; [0x80213b0:4]=0x2001e936
| ||||||| 0x08020684 ff21 movs r1, 0xff ; 255
| ||||||| 0x08020686 0170 strb r1, [r0]
| --------> 0x08020688 dff8200d ldr.w r0, [0x080213b0] ; [0x80213b0:4]=0x2001e936
| ||||||| 0x0802068c 0078 ldrb r0, [r0]
| ||||||| 0x0802068e 6421 movs r1, 0x64 ; 'd' ; 100
| ||||||| 0x08020690 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x08020694 dff84016 ldr.w r1, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x08020698 0880 strh r0, [r1]
| ||||||| 0x0802069a dff87c06 ldr.w r0, [0x08020d1e] ; [0x8020d1c:4]=0x2001e7f8 backlight_timer
| ||||||| 0x0802069e 807d ldrb r0, [r0, 0x16]
| ||||||| 0x080206a0 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x080206a4 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x080206a8 dff8081d ldr.w r1, [0x080213b8] ; [0x80213b8:4]=0x2001e5f0 radio_status_1
| ||||||| 0x080206ac 0880 strh r0, [r1]
| --``----> 0x080206ae 00f07bbe b.w 0x80213a8
| --------> ;-- update_scr_28:
| --------> 0x080206b2 dff84005 ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| || ||| 0x080206b6 0078 ldrb r0, [r0]
| || ||| 0x080206b8 0c28 cmp r0, 0xc ; 12
| || ,====< 0x080206ba 16d0 beq 0x80206ea
| || |||| 0x080206bc dff81006 ldr.w r0, [0x08020cd4] ; [0x8020cd4:4]=0x2001e604 q_status_4
| || |||| 0x080206c0 1c21 movs r1, 0x1c ; 28
| || |||| 0x080206c2 0170 strb r1, [r0]
| || |||| 0x080206c4 dff82c05 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| || |||| 0x080206c8 0121 movs r1, 1 ; 1
| || |||| 0x080206ca 0170 strb r1, [r0]
| || |||| 0x080206cc dff80806 ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| || |||| 0x080206d0 0a21 movs r1, 0xa ; 10
| || |||| 0x080206d2 0180 strh r1, [r0]
| || |||| 0x080206d4 dff8e00c ldr.w r0, [0x080213bc] ; [0x80213bc:4]=0x2001e7a4
| || |||| 0x080206d8 4078 ldrb r0, [r0, 1]
| || |||| 0x080206da c0f34000 ubfx r0, r0, 1, 1
| || |||| 0x080206de c007 lsls r0, r0, 0x1f
| ||,=====< 0x080206e0 03d5 bpl 0x80206ea
| ||||||| 0x080206e2 dff8dc0c ldr.w r0, [0x080213c6] ; [0x80213c4:4]=0xff8032
| ||||||| 0x080206e6 0021 movs r1, 0
| ||||||| 0x080206e8 0170 strb r1, [r0]
| ==``----> 0x080206ea 00f05dbe b.w 0x80213a8
| --------> ;-- update_scr_29:
| --------> 0x080206ee dff8e005 ldr.w r0, [0x08020cd6] ; [0x8020cd4:4]=0x2001e604 q_status_4
| || ||| 0x080206f2 1d21 movs r1, 0x1d ; 29
| || ||| 0x080206f4 0170 strb r1, [r0]
| || ||| 0x080206f6 dff8fc04 ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| || ||| 0x080206fa 0c21 movs r1, 0xc ; 12
| || ||| 0x080206fc 0170 strb r1, [r0]
| || ||| 0x080206fe 4021 movs r1, 0x40 ; '@' ; 64
| || ||| 0x08020700 dff81006 ldr.w r0, [0x08020d18] ; [0x8020d18:4]=0x2001dadc md380_radio_config
| || ||| 0x08020704 0bf081f8 bl GPIO_SetBits
| || ||| 0x08020708 dff80c06 ldr.w r0, [0x08020d1c] ; [0x8020d1c:4]=0x2001e7f8 backlight_timer
| || ||| 0x0802070c 407d ldrb r0, [r0, 0x15]
| || ||| 0x0802070e 4ff4fa71 mov.w r1, 0x1f4 ; 500
| || ||| 0x08020712 10fb01f0 smulbb r0, r0, r1
| || ||| 0x08020716 dff80416 ldr.w r1, [0x08020d22] ; [0x8020d20:4]=0x2001e6fc
| || ||| 0x0802071a 0880 strh r0, [r1]
| || ||| 0x0802071c dff8f805 ldr.w r0, [0x08020d1c] ; [0x8020d1c:4]=0x2001e7f8 backlight_timer
| || ||| 0x08020720 0078 ldrb r0, [r0]
| || ||| 0x08020722 10f0fb00 ands r0, r0, 0xfb
| || ||| 0x08020726 dff8f015 ldr.w r1, [0x08020d1e] ; [0x8020d1c:4]=0x2001e7f8 backlight_timer
| || ||| 0x0802072a 0870 strb r0, [r1]
| || ||| 0x0802072c dff88c0c ldr.w r0, [0x080213c0] ; [0x80213c0:4]=0x2001e8ed
| || ||| 0x08020730 0088 ldrh r0, [r0]
| || ||| 0x08020732 0128 cmp r0, 1 ; 1
| || ,====< 0x08020734 01d3 blo 0x802073a
| || |||| 0x08020736 0ff0dff8 bl func_2f8f8
| || `----> 0x0802073a 11f0a8fb bl func_31e8e
| || ||| 0x0802073e edf791fb bl func_0de64
| || ||| 0x08020742 dff8800c ldr.w r0, [0x080213ca] ; [0x80213c8:4]=0x2001e1d4
| || ||| 0x08020746 fcf713fe bl gfx_set_fg_color
| || ||| 0x0802074a 7e23 movs r3, 0x7e ; '~' ; 126
| || ||| 0x0802074c 9d22 movs r2, 0x9d ; 157
| || ||| 0x0802074e 6c21 movs r1, 0x6c ; 'l' ; 108
| || ||| 0x08020750 0220 movs r0, 2 ; 2
| || ||| 0x08020752 fdf79bf8 bl gfx_blockfill
| || ||| 0x08020756 0020 movs r0, 0
| || ||| 0x08020758 fcf70afe bl gfx_set_fg_color
| || ||| 0x0802075c dff8640c ldr.w r0, [0x080213c8] ; [0x80213c8:4]=0x2001e1d4
| || ||| 0x08020760 fcf702fe bl gfx_set_bg_color
| || ||| 0x08020764 4620 movs r0, 0x46 ; 'F' ; 70
| || ||| 0x08020766 0090 str r0, [sp]
| || ||| 0x08020768 a023 movs r3, 0xa0 ; 160
| || ||| 0x0802076a 3022 movs r2, 0x30 ; '0' ; 48
| || ||| 0x0802076c 0021 movs r1, 0
| || ||| 0x0802076e dff89c05 ldr.w r0, [0x08020d12] ; [0x8020d10:4]=0x20001704 md380_menu_ptr_to_80d032c
| || ||| 0x08020772 0068 ldr r0, [r0]
| || ||| 0x08020774 dff89845 ldr.w r4, [0x08020d14] ; [0x8020d14:4]=0x40020800 io_GPIOC
| || ||| 0x08020778 54f82000 ldr.w r0, [r4, r0, lsl 2]
| || ||| 0x0802077c edf7acfb bl gfx_drawtext10
| || ||| 0x08020780 5c20 movs r0, 0x5c ; '\' ; 92
| || ||| 0x08020782 0090 str r0, [sp]
| || ||| 0x08020784 a023 movs r3, 0xa0 ; 160
| || ||| 0x08020786 4622 movs r2, 0x46 ; 'F' ; 70
| || ||| 0x08020788 0021 movs r1, 0
| || ||| 0x0802078a dff88005 ldr.w r0, [0x08020d12] ; [0x8020d10:4]=0x20001704 md380_menu_ptr_to_80d032c
| || ||| 0x0802078e 0068 ldr r0, [r0]
| || ||| 0x08020790 dff87c45 ldr.w r4, [0x08020d14] ; [0x8020d14:4]=0x40020800 io_GPIOC
| || ||| 0x08020794 14eb8000 adds.w r0, r4, r0, lsl 2
| || ||| 0x08020798 4068 ldr r0, [r0, 4]
| || ||| 0x0802079a edf79dfb bl gfx_drawtext10
| || ||| 0x0802079e 7ff07f40 mvns r0, 0xff000000
| || ||| 0x080207a2 fcf7e1fd bl gfx_set_bg_color
| || ||| 0x080207a6 dff83005 ldr.w r0, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| || ||| 0x080207aa 4ff6ff71 movw r1, 0xffff
| || ||| 0x080207ae 0180 strh r1, [r0]
| || ,====< 0x080207b0 00f0fabd b.w 0x80213a8
| --------> ;-- update_scr_32:
| --------> 0x080207b4 dff81805 ldr.w r0, [0x08020cd4] ; [0x8020cd4:4]=0x2001e604 q_status_4
| || |||| 0x080207b8 2021 movs r1, 0x20 ; 32
| || |||| 0x080207ba 0170 strb r1, [r0]
| || |||| 0x080207bc dff83404 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| || |||| 0x080207c0 0d21 movs r1, 0xd ; 13
| || |||| 0x080207c2 0170 strb r1, [r0]
| || |||| 0x080207c4 edf74efb bl func_0de64
| || |||| 0x080207c8 dff8f80b ldr.w r0, [0x080213c8] ; [0x80213c8:4]=0x2001e1d4
| || |||| 0x080207cc fcf7ccfd bl gfx_set_bg_color
| || |||| 0x080207d0 1223 movs r3, 0x12 ; 18
| || |||| 0x080207d2 2d22 movs r2, 0x2d ; '-' ; 45
| || |||| 0x080207d4 1921 movs r1, 0x19 ; 25
| || |||| 0x080207d6 dff8f00b ldr.w r0, [0x080213ce] ; [0x80213cc:4]=0x2001e5ec base_for_longpress_struct
| || |||| 0x080207da 06f0a5ff bl gfx_drawtext6
| || |||| 0x080207de 1223 movs r3, 0x12 ; 18
| || |||| 0x080207e0 3c22 movs r2, 0x3c ; '<' ; 60
| || |||| 0x080207e2 1921 movs r1, 0x19 ; 25
| || |||| 0x080207e4 dff82405 ldr.w r0, [0x08020d10] ; [0x8020d10:4]=0x20001704 md380_menu_ptr_to_80d032c
| || |||| 0x080207e8 0068 ldr r0, [r0]
| || |||| 0x080207ea dff82445 ldr.w r4, [0x08020d16] ; [0x8020d14:4]=0x40020800 io_GPIOC
| || |||| 0x080207ee 14eb8000 adds.w r0, r4, r0, lsl 2
| || |||| 0x080207f2 8068 ldr r0, [r0, 8]
| || |||| 0x080207f4 06f098ff bl gfx_drawtext6
| ||.-----> 0x080207f8 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x080207fc fcf7b4fd bl gfx_set_bg_color
| ||||||| 0x08020800 dff8d404 ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x08020804 4ff49671 mov.w r1, 0x12c ; 300
| ||||||| 0x08020808 0180 strh r1, [r0]
| ========< 0x0802080a 00f0cdbd b.w 0x80213a8
| --------> ;-- update_scr_33:
| --------> 0x0802080e dff8c004 ldr.w r0, [0x08020cd6] ; [0x8020cd4:4]=0x2001e604 q_status_4
| ||||||| 0x08020812 2121 movs r1, 0x21 ; '!' ; 33
| ||||||| 0x08020814 0170 strb r1, [r0]
| ||||||| 0x08020816 dff8dc03 ldr.w r0, [0x08020bfa] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x0802081a 0e21 movs r1, 0xe ; 14
| ||||||| 0x0802081c 0170 strb r1, [r0]
| ||||||| 0x0802081e dff8b804 ldr.w r0, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x08020822 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08020826 0180 strh r1, [r0]
| ========< 0x08020828 00f0bebd b.w 0x80213a8
| ========< ;-- update_scr_other:
| ========< 0x0802082c 00f0bcbd b.w 0x80213a8
| ||||||`-> ;-- scr_mode_stable:
| ||||||`-> 0x08020830 dff8e404 ldr.w r0, [0x08020d1c] ; [0x8020d1c:4]=0x2001e7f8 backlight_timer
| |||||| 0x08020834 407d ldrb r0, [r0, 0x15]
| |||||| 0x08020836 0028 cmp r0, 0
| ||||||,=< 0x08020838 18d0 beq 0x802086c
| ||||||| 0x0802083a dff8e004 ldr.w r0, [0x08020d22] ; [0x8020d20:4]=0x2001e6fc
| ||||||| 0x0802083e 0088 ldrh r0, [r0]
| ||||||| 0x08020840 0028 cmp r0, 0
| ========< 0x08020842 13d0 beq 0x802086c
| ||||||| 0x08020844 dff8ac03 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| ||||||| 0x08020848 0078 ldrb r0, [r0]
| ||||||| 0x0802084a 0c28 cmp r0, 0xc ; 12
| ========< 0x0802084c 0ed0 beq 0x802086c
| ||||||| 0x0802084e dff8cc04 ldr.w r0, [0x08020d22] ; [0x8020d20:4]=0x2001e6fc
| ||||||| 0x08020852 0088 ldrh r0, [r0]
| ||||||| 0x08020854 401e subs r0, r0, 1
| ||||||| 0x08020856 dff8c414 ldr.w r1, [0x08020d22] ; [0x8020d20:4]=0x2001e6fc
| ||||||| 0x0802085a 0880 strh r0, [r1]
| ||||||| 0x0802085c 80b2 uxth r0, r0
| ||||||| 0x0802085e 0028 cmp r0, 0
| ========< 0x08020860 04d1 bne 0x802086c
| ||||||| 0x08020862 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x08020864 dff8ac04 ldr.w r0, [0x08020d18] ; [0x8020d18:4]=0x2001dadc md380_radio_config
| ||||||| 0x08020868 0af0d1ff bl GPIO_ResetBits
| ------`-> 0x0802086c dff88403 ldr.w r0, [0x08020bf8] ; [0x8020bf8:4]=0x780048e3
| |||||| 0x08020870 0078 ldrb r0, [r0]
| |||||| 0x08020872 0128 cmp r0, 1 ; 1
| ||||||,=< 0x08020874 0fd1 bne 0x8020896
| ||||||| 0x08020876 dff8400b ldr.w r0, [0x080213be] ; [0x80213bc:4]=0x2001e7a4
| ||||||| 0x0802087a 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802087c c0f34000 ubfx r0, r0, 1, 1
| ||||||| 0x08020880 c007 lsls r0, r0, 0x1f
| ========< 0x08020882 08d5 bpl 0x8020896
| ||||||| 0x08020884 dff8440b ldr.w r0, [func_213d0] ; [0x80213d0:4]=0xb084b510
| ||||||| 0x08020888 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802088a 10f0f700 ands r0, r0, 0xf7
| ||||||| 0x0802088e dff83c1b ldr.w r1, [0x080213d2] ; [0x80213d0:4]=0xb084b510
| ||||||| 0x08020892 8870 strb r0, [r1, 2]
| ========< 0x08020894 07e0 b 0x80208a6
| ------`-> 0x08020896 dff8340b ldr.w r0, [0x080213d2] ; [0x80213d0:4]=0xb084b510
| |||||| 0x0802089a 8078 ldrb r0, [r0, 2]
| |||||| 0x0802089c 50f00800 orrs r0, r0, 8
| |||||| 0x080208a0 dff8281b ldr.w r1, [func_213d0] ; [0x80213d0:4]=0xb084b510
| ||||||.-> 0x080208a4 8870 strb r0, [r1, 2]
| --------> 0x080208a6 d348 ldr r0, [0x08020bf6] ; [0x8020bf4:4]=0x2001e94b gui_opmode2
| ||||||| 0x080208a8 0078 ldrb r0, [r0]
| ||||||| 0x080208aa 0128 cmp r0, 1 ; 1
| --------> 0x080208ac 00f05e81 beq.w 0x8020b6c
| ||||||| 0x080208b0 0228 cmp r0, 2 ; 2
| ========< 0x080208b2 00f00b85 beq.w 0x80212cc
| ||||||| 0x080208b6 0428 cmp r0, 4 ; 4
| ========< 0x080208b8 00f00885 beq.w 0x80212cc
| ||||||| 0x080208bc 0528 cmp r0, 5 ; 5
| ========< 0x080208be 00f0b980 beq.w 0x8020a34
| ||||||| 0x080208c2 0628 cmp r0, 6 ; 6
| ========< 0x080208c4 25d0 beq 0x8020912
| ||||||| 0x080208c6 0728 cmp r0, 7 ; 7
| ========< 0x080208c8 07d0 beq 0x80208da
| ||||||| 0x080208ca 0a28 cmp r0, 0xa ; 10
| ========< 0x080208cc 00f0ca80 beq.w 0x8020a64
| ||||||| 0x080208d0 0d28 cmp r0, 0xd ; 13
| ========< 0x080208d2 00f05485 beq.w 0x802137e
| ========< 0x080208d6 00f067bd b.w 0x80213a8
| --------> 0x080208da dff8fc03 ldr.w r0, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x080208de 0088 ldrh r0, [r0]
| --------> 0x080208e0 401e subs r0, r0, 1
| ||||||| 0x080208e2 dff8f413 ldr.w r1, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x080208e6 0880 strh r0, [r1]
| ||||||| 0x080208e8 dff8ec03 ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x080208ec 0088 ldrh r0, [r0]
| ||||||| 0x080208ee 0028 cmp r0, 0
| ========< 0x080208f0 06d1 bne 0x8020900
| ||||||| 0x080208f2 dff8e403 ldr.w r0, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x080208f6 c821 movs r1, 0xc8 ; 200
| ||||||| 0x080208f8 0180 strh r1, [r0]
| ||||||| 0x080208fa 00f000fe bl func_214fe
| ========< 0x080208fe 06e0 b 0x802090e
| --------> 0x08020900 dff8d403 ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x08020904 0088 ldrh r0, [r0]
| ||||||| 0x08020906 6428 cmp r0, 0x64 ; 'd' ; 100
| ========< 0x08020908 01d1 bne 0x802090e
| ||||||| 0x0802090a 00f077fe bl func_215fc
| --------> 0x0802090e 00f04bbd b.w 0x80213a8
| --------> 0x08020912 dff8c403 ldr.w r0, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x08020916 0088 ldrh r0, [r0]
| ||||||| 0x08020918 401e subs r0, r0, 1
| ||||||| 0x0802091a dff8bc13 ldr.w r1, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x0802091e 0880 strh r0, [r1]
| ||||||| 0x08020920 dff8b403 ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x08020924 0088 ldrh r0, [r0]
| ||||||| 0x08020926 0028 cmp r0, 0
| ========< 0x08020928 0cd1 bne 0x8020944
| ||||||| 0x0802092a dff8ac03 ldr.w r0, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x0802092e c821 movs r1, 0xc8 ; 200
| ||||||| 0x08020930 0180 strh r1, [r0]
| ||||||| 0x08020932 dff8f803 ldr.w r0, [0x08020d32] ; [0x8020d30:4]=0x2001cb58 selected_contact_name_wstring
| ||||||| 0x08020936 0068 ldr r0, [r0]
| ||||||| 0x08020938 dff8f413 ldr.w r1, [0x08020d34] ; [0x8020d34:4]=0x388f8df
| ||||||| 0x0802093c 0160 str r1, [r0]
| ||||||| 0x0802093e ebf753ff bl func_0c7e8
| ========< 0x08020942 13e0 b 0x802096c
| --------> 0x08020944 dff89003 ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x08020948 0088 ldrh r0, [r0]
| ||||||| 0x0802094a 6428 cmp r0, 0x64 ; 'd' ; 100
| ========< 0x0802094c 0ed1 bne 0x802096c
| ||||||| 0x0802094e dff8bc03 ldr.w r0, [0x08020d12] ; [0x8020d10:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x08020952 0068 ldr r0, [r0]
| ||||||| 0x08020954 dff8b813 ldr.w r1, [0x08020d14] ; [0x8020d14:4]=0x40020800 io_GPIOC
| ||||||| 0x08020958 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||||| 0x0802095c d0f84801 ldr.w r0, [r0, 0x148]
| ||||||| 0x08020960 dff8c813 ldr.w r1, [0x08020d30] ; [0x8020d30:4]=0x2001cb58 selected_contact_name_wstring
| ||||||| 0x08020964 0968 ldr r1, [r1]
| ||||||| 0x08020966 0860 str r0, [r1]
| ||||||| 0x08020968 ebf73eff bl func_0c7e8
| --------> 0x0802096c dff86803 ldr.w r0, [0x08020cdc] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x08020970 0088 ldrh r0, [r0]
| ||||||| 0x08020972 0028 cmp r0, 0
| ========< 0x08020974 32d1 bne 0x80209dc
| ||||||| 0x08020976 dff86003 ldr.w r0, [0x08020cde] ; [0x8020cdc:4]=0x2001e8a8 beep_code_send
| ||||||| 0x0802097a c821 movs r1, 0xc8 ; 200
| ||||||| 0x0802097c 0180 strh r1, [r0]
| ||||||| 0x0802097e dff8ac03 ldr.w r0, [0x08020d32] ; [0x8020d30:4]=0x2001cb58 selected_contact_name_wstring
| ||||||| 0x08020982 0068 ldr r0, [r0]
| ||||||| 0x08020984 dff8a813 ldr.w r1, [0x08020d34] ; [0x8020d34:4]=0x388f8df
| ||||||| 0x08020988 0160 str r1, [r0]
| ||||||| 0x0802098a 0020 movs r0, 0
| ||||||| 0x0802098c fcf7f0fc bl gfx_set_fg_color
| ||||||| 0x08020990 dff89803 ldr.w r0, [0x08020d30] ; [0x8020d30:4]=0x2001cb58 selected_contact_name_wstring
| ||||||| 0x08020994 0068 ldr r0, [r0]
| ||||||| 0x08020996 0168 ldr r1, [r0]
| ||||||| 0x08020998 dff88803 ldr.w r0, [0x08020d28] ; [0x8020d28:4]=0xff1414
| ||||||| 0x0802099c b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x080209a0 07f0d1fa bl func_26f46
| ||||||| 0x080209a4 fcf70dfc bl gfx_1d1c2
| ||||||| 0x080209a8 dff87c03 ldr.w r0, [0x08020d2c] ; [0x8020d2c:4]=0x2001e700 menu_memory_poi
| --------> 0x080209ac fcf7dcfc bl gfx_set_bg_color
| ||||||| 0x080209b0 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x080209b4 fcf7dcfc bl gfx_set_fg_color
| ||||||| 0x080209b8 7e20 movs r0, 0x7e ; '~' ; 126
| ||||||| 0x080209ba 0090 str r0, [sp]
| ||||||| 0x080209bc 9e23 movs r3, 0x9e ; 158
| ||||||| 0x080209be 6e22 movs r2, 0x6e ; 'n' ; 110
| ||||||| 0x080209c0 0021 movs r1, 0
| ||||||| 0x080209c2 d748 ldr r0, [0x08020d22] ; [0x8020d20:4]=0x2001e6fc
| ||||||| 0x080209c4 0068 ldr r0, [r0]
| ||||||| 0x080209c6 0068 ldr r0, [r0]
| ||||||| 0x080209c8 edf786fa bl gfx_drawtext10
| ||||||| 0x080209cc 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x080209d0 fcf7cafc bl gfx_set_bg_color
| ||||||| 0x080209d4 0020 movs r0, 0
| ||||||| 0x080209d6 fcf7cbfc bl gfx_set_fg_color
| ========< 0x080209da 29e0 b 0x8020a30
| --------> 0x080209dc be48 ldr r0, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x080209de 0088 ldrh r0, [r0]
| ||||||| 0x080209e0 6428 cmp r0, 0x64 ; 'd' ; 100
| ========< 0x080209e2 25d1 bne 0x8020a30
| ||||||| 0x080209e4 0020 movs r0, 0
| ||||||| 0x080209e6 fcf7c3fc bl gfx_set_fg_color
| ||||||| 0x080209ea d048 ldr r0, [0x08020d2e] ; [0x8020d2c:4]=0x2001e700 menu_memory_poi
| ||||||| 0x080209ec 0068 ldr r0, [r0]
| ||||||| 0x080209ee 0168 ldr r1, [r0]
| ||||||| 0x080209f0 dff84805 ldr.w r0, [0x08020f40] ; [0x8020f40:4]=0xf8dfb2e4
| ||||||| 0x080209f4 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x080209f8 07f0a5fa bl func_26f46
| ||||||| 0x080209fc fcf7e1fb bl gfx_1d1c2
| ||||||| 0x08020a00 c948 ldr r0, [0x08020d28] ; [0x8020d28:4]=0xff1414
| ||||||| 0x08020a02 fcf7b1fc bl gfx_set_bg_color
| ||||||| 0x08020a06 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x08020a0a fcf7b1fc bl gfx_set_fg_color
| ||||||| 0x08020a0e 8020 movs r0, 0x80 ; 128
| ||||||| 0x08020a10 0090 str r0, [sp]
| ||||||| 0x08020a12 a023 movs r3, 0xa0 ; 160
| ||||||| 0x08020a14 6e22 movs r2, 0x6e ; 'n' ; 110
| ||||||| 0x08020a16 0021 movs r1, 0
| ||||||| 0x08020a18 c148 ldr r0, [0x08020d20] ; [0x8020d20:4]=0x2001e6fc
| ||||||| 0x08020a1a 0068 ldr r0, [r0]
| ||||||| 0x08020a1c 0068 ldr r0, [r0]
| ||||||| 0x08020a1e edf75bfa bl gfx_drawtext10
| ||||||| 0x08020a22 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x08020a26 fcf79ffc bl gfx_set_bg_color
| ||||||| 0x08020a2a 0020 movs r0, 0
| ||||||| 0x08020a2c fcf7a0fc bl gfx_set_fg_color
| --------> 0x08020a30 00f0babc b.w 0x80213a8
| --------> 0x08020a34 dff87809 ldr.w r0, [0x080213b4] ; [0x80213b4:4]=0x20004ab2
| ||||||| 0x08020a38 0078 ldrb r0, [r0]
| ||||||| 0x08020a3a 0028 cmp r0, 0
| ========< 0x08020a3c 40f0b484 bne.w 0x80213a8
| ||||||| 0x08020a40 a548 ldr r0, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020a42 0088 ldrh r0, [r0]
| ||||||| 0x08020a44 411e subs r1, r0, 1
| ||||||| 0x08020a46 a44a ldr r2, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020a48 1180 strh r1, [r2]
| ||||||| 0x08020a4a 80b2 uxth r0, r0
| ||||||| 0x08020a4c 0028 cmp r0, 0
| ========< 0x08020a4e 07d1 bne 0x8020a60
| ||||||| 0x08020a50 6848 ldr r0, [0x08020bf4] ; [0x8020bf4:4]=0x2001e94b gui_opmode2
| ||||||| 0x08020a52 0121 movs r1, 1 ; 1
| ||||||| 0x08020a54 0170 strb r1, [r0]
| ||||||| 0x08020a56 a048 ldr r0, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020a58 0521 movs r1, 5 ; 5
| ||||||| 0x08020a5a 0180 strh r1, [r0]
| ||||||| 0x08020a5c eff71bf9 bl return_to_mode_1_from10
| --------> 0x08020a60 00f0a2bc b.w 0x80213a8
| --------> 0x08020a64 dff8180c ldr.w r0, [0x08021684] ; [0x8021684:4]=0x2001e846
| ||||||| 0x08020a68 0078 ldrb r0, [r0]
| ||||||| 0x08020a6a 0728 cmp r0, 7 ; 7
| ========< 0x08020a6c 1cd1 bne 0x8020aa8
| ||||||| 0x08020a6e dff85006 ldr.w r0, [0x080210c6] ; [0x80210c4:4]=0x2001e600 q_struct_1
| ||||||| 0x08020a72 0078 ldrb r0, [r0]
| ||||||| 0x08020a74 10f00300 ands r0, r0, 3
| ||||||| 0x08020a78 0128 cmp r0, 1 ; 1
| ========< 0x08020a7a 10d1 bne 0x8020a9e
| ||||||| 0x08020a7c 9648 ldr r0, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020a7e 0088 ldrh r0, [r0]
| ||||||| 0x08020a80 411e subs r1, r0, 1
| ||||||| 0x08020a82 954a ldr r2, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020a84 1180 strh r1, [r2]
| ||||||| 0x08020a86 80b2 uxth r0, r0
| ||||||| 0x08020a88 0028 cmp r0, 0
| ========< 0x08020a8a 6dd1 bne 0x8020b68
| ||||||| 0x08020a8c 5948 ldr r0, [0x08020bf4] ; [0x8020bf4:4]=0x2001e94b gui_opmode2
| ||||||| 0x08020a8e 0121 movs r1, 1 ; 1
| ||||||| 0x08020a90 0170 strb r1, [r0]
| ||||||| 0x08020a92 9148 ldr r0, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020a94 0521 movs r1, 5 ; 5
| ||||||| 0x08020a96 0180 strh r1, [r0]
| ||||||| 0x08020a98 eff7fdf8 bl return_to_mode_1_from10
| ========< 0x08020a9c 64e0 b 0x8020b68
| --------> 0x08020a9e 8e48 ldr r0, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020aa0 4ff47a71 mov.w r1, 0x3e8 ; 1000
| ||||||| 0x08020aa4 0180 strh r1, [r0]
| ========< 0x08020aa6 5fe0 b 0x8020b68
| --------> 0x08020aa8 9b48 ldr r0, [0x08020d18] ; [0x8020d18:4]=0x2001dadc md380_radio_config
| ||||||| 0x08020aaa 4078 ldrb r0, [r0, 1]
| ||||||| 0x08020aac c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x08020ab0 c007 lsls r0, r0, 0x1f
| ========< 0x08020ab2 04d4 bmi 0x8020abe
| ||||||| 0x08020ab4 8e48 ldr r0, [0x08020cf0] ; [0x8020cf0:4]=0x2001e892 gui_opmode3
| ||||||| 0x08020ab6 0078 ldrb r0, [r0]
| ||||||| 0x08020ab8 0428 cmp r0, 4 ; 4
| ========< 0x08020aba 00f07584 beq.w 0x80213a8
| --------> 0x08020abe 8c48 ldr r0, [0x08020cf2] ; [0x8020cf0:4]=0x2001e892 gui_opmode3
| ||||||| 0x08020ac0 0078 ldrb r0, [r0]
| ||||||| 0x08020ac2 0528 cmp r0, 5 ; 5
| ========< 0x08020ac4 00f07084 beq.w 0x80213a8
| ||||||| 0x08020ac8 dff8b80b ldr.w r0, [0x08021688] ; [0x8021688:4]=0x2001e93b
| ||||||| 0x08020acc 0088 ldrh r0, [r0]
| ||||||| 0x08020ace 0a30 adds r0, 0xa
| ||||||| 0x08020ad0 dff8b01b ldr.w r1, [0x08021688] ; [0x8021688:4]=0x2001e93b
| ||||||| 0x08020ad4 0880 strh r0, [r1]
| ||||||| 0x08020ad6 dff8ac0b ldr.w r0, [0x0802168a] ; [0x8021688:4]=0x2001e93b
| ||||||| 0x08020ada 0088 ldrh r0, [r0]
| ||||||| 0x08020adc b0f57a7f cmp.w r0, 0x3e8 ; 1000
| ========< 0x08020ae0 16d1 bne 0x8020b10
| ||||||| 0x08020ae2 dff8a00b ldr.w r0, [0x0802168a] ; [0x8021688:4]=0x2001e93b
| ||||||| 0x08020ae6 0021 movs r1, 0
| --------> 0x08020ae8 0180 strh r1, [r0]
| ||||||| 0x08020aea dff89c0b ldr.w r0, [0x0802168e] ; [0x802168c:4]=0x2001e93c
| ||||||| 0x08020aee 0078 ldrb r0, [r0]
| ||||||| 0x08020af0 0128 cmp r0, 1 ; 1
| ========< 0x08020af2 04d1 bne 0x8020afe
| ||||||| 0x08020af4 f7f7a4ff bl func_18a40
| ||||||| 0x08020af8 ebf776fe bl func_0c7e8
| ========< 0x08020afc 08e0 b 0x8020b10
| --------> 0x08020afe dff88c0b ldr.w r0, [0x08021692] ; [0x8021690:4]=0x2001e930
| ||||||| 0x08020b02 0078 ldrb r0, [r0]
| ||||||| 0x08020b04 0128 cmp r0, 1 ; 1
| ========< 0x08020b06 03d1 bne 0x8020b10
| ||||||| 0x08020b08 f7f7ccff bl func_18aa4_GetDateAndConv2String
| ||||||| 0x08020b0c ebf76cfe bl func_0c7e8
| --------> 0x08020b10 dff89808 ldr.w r0, [0x080213b0] ; [0x80213b0:4]=0x2001e936
| ||||||| 0x08020b14 0078 ldrb r0, [r0]
| ||||||| 0x08020b16 ff28 cmp r0, 0xff ; 255
| ========< 0x08020b18 04d0 beq 0x8020b24
| ||||||| 0x08020b1a dff89408 ldr.w r0, [0x080213b6] ; [0x80213b4:4]=0x20004ab2
| ||||||| 0x08020b1e 0078 ldrb r0, [r0]
| ||||||| 0x08020b20 0128 cmp r0, 1 ; 1
| ========< 0x08020b22 01d1 bne 0x8020b28
| --------> 0x08020b24 00f040bc b.w 0x80213a8
| --------> 0x08020b28 6b48 ldr r0, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020b2a 0088 ldrh r0, [r0]
| ||||||| 0x08020b2c 411e subs r1, r0, 1
| ||||||| 0x08020b2e 6a4a ldr r2, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| --------> 0x08020b30 1180 strh r1, [r2]
| ||||||| 0x08020b32 80b2 uxth r0, r0
| ||||||| 0x08020b34 0028 cmp r0, 0
| ========< 0x08020b36 07d1 bne 0x8020b48
| ||||||| 0x08020b38 2e48 ldr r0, [0x08020bf4] ; [0x8020bf4:4]=0x2001e94b gui_opmode2
| ||||||| 0x08020b3a 0121 movs r1, 1 ; 1
| ||||||| 0x08020b3c 0170 strb r1, [r0]
| ||||||| 0x08020b3e 6648 ldr r0, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020b40 0521 movs r1, 5 ; 5
| ||||||| 0x08020b42 0180 strh r1, [r0]
| ||||||| 0x08020b44 eff7a7f8 bl return_to_mode_1_from10
| --------> 0x08020b48 7348 ldr r0, [0x08020d18] ; [0x8020d18:4]=0x2001dadc md380_radio_config
| ||||||| 0x08020b4a 807d ldrb r0, [r0, 0x16]
| ||||||| 0x08020b4c ff28 cmp r0, 0xff ; 255
| ========< 0x08020b4e 0bd0 beq 0x8020b68
| ||||||| 0x08020b50 dff86008 ldr.w r0, [0x080213b8] ; [0x80213b8:4]=0x2001e5f0 radio_status_1
| ||||||| 0x08020b54 0088 ldrh r0, [r0]
| ||||||| 0x08020b56 411e subs r1, r0, 1
| ||||||| 0x08020b58 dff85828 ldr.w r2, [0x080213b8] ; [0x80213b8:4]=0x2001e5f0 radio_status_1
| ||||||| 0x08020b5c 1180 strh r1, [r2]
| ||||||| 0x08020b5e 80b2 uxth r0, r0
| ||||||| 0x08020b60 0028 cmp r0, 0
| ========< 0x08020b62 01d1 bne 0x8020b68
| ||||||| 0x08020b64 f9f77cff bl menu_func_1aa60
| --------> 0x08020b68 00f01ebc b.w 0x80213a8
| --------> 0x08020b6c 6048 ldr r0, [0x08020cf0] ; [0x8020cf0:4]=0x2001e892 gui_opmode3
| ||||||| 0x08020b6e 0078 ldrb r0, [r0]
| ||||||| 0x08020b70 0128 cmp r0, 1 ; 1
| ========< 0x08020b72 1ad1 bne 0x8020baa
| ||||||| 0x08020b74 6448 ldr r0, [0x08020d08] ; [0x8020d08:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08020b76 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x08020b7a 0160 str r1, [r0]
| ||||||| 0x08020b7c 5648 ldr r0, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020b7e 0088 ldrh r0, [r0]
| ||||||| 0x08020b80 401e subs r0, r0, 1
| ||||||| 0x08020b82 5549 ldr r1, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020b84 0880 strh r0, [r1]
| ||||||| 0x08020b86 5448 ldr r0, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020b88 0088 ldrh r0, [r0]
| ||||||| 0x08020b8a 0028 cmp r0, 0
| ========< 0x08020b8c 05d1 bne 0x8020b9a
| ||||||| 0x08020b8e 5248 ldr r0, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020b90 c821 movs r1, 0xc8 ; 200
| ||||||| 0x08020b92 0180 strh r1, [r0]
| ||||||| 0x08020b94 00f0fffc bl func_21596_draw_something
| ========< 0x08020b98 05e0 b 0x8020ba6
| --------> 0x08020b9a 4f48 ldr r0, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020b9c 0088 ldrh r0, [r0]
| ||||||| 0x08020b9e 6428 cmp r0, 0x64 ; 'd' ; 100
| ========< 0x08020ba0 01d1 bne 0x8020ba6
| ||||||| 0x08020ba2 00f00efd bl func_215c2
| --------> 0x08020ba6 00f0ffbb b.w 0x80213a8
| --------> 0x08020baa edf77ffa bl F_786
| ||||||| 0x08020bae dff82405 ldr.w r0, [0x080210da] ; [0x80210d8:4]=0x80f868c
| ||||||| 0x08020bb2 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x08020bb6 fbf70dff bl gfx_1c9d4
| ||||||| 0x08020bba dff81805 ldr.w r0, [0x080210da] ; [0x80210d8:4]=0x80f868c
| ||||||| 0x08020bbe 0021 movs r1, 0
| ||||||| 0x08020bc0 0180 strh r1, [r0]
| ||||||| 0x08020bc2 5548 ldr r0, [0x08020d1a] ; [0x8020d18:4]=0x2001dadc md380_radio_config
| ||||||| 0x08020bc4 807d ldrb r0, [r0, 0x16]
| ||||||| 0x08020bc6 ff28 cmp r0, 0xff ; 255
| ========< 0x08020bc8 16d0 beq 0x8020bf8
| ||||||| 0x08020bca dff8c40a ldr.w r0, [0x08021696] ; [0x8021694:4]=0x4871b510
| ||||||| 0x08020bce 0078 ldrb r0, [r0]
| ||||||| 0x08020bd0 0128 cmp r0, 1 ; 1
| ========< 0x08020bd2 11d0 beq 0x8020bf8
| ||||||| 0x08020bd4 dff8dc07 ldr.w r0, [0x080213b8] ; [0x80213b8:4]=0x2001e5f0 radio_status_1
| ||||||| 0x08020bd8 0088 ldrh r0, [r0]
| ||||||| 0x08020bda 411e subs r1, r0, 1
| ||||||| 0x08020bdc dff8d427 ldr.w r2, [0x080213b8] ; [0x80213b8:4]=0x2001e5f0 radio_status_1
| ||||||| 0x08020be0 1180 strh r1, [r2]
| ||||||| 0x08020be2 80b2 uxth r0, r0
| ||||||| 0x08020be4 0028 cmp r0, 0
| ========< 0x08020be6 07d1 bne 0x8020bf8
| ||||||| 0x08020be8 f9f73aff bl menu_func_1aa60
| ========< 0x08020bec dce3 b 0x80213a8
| ||||||| 0x08020bee 00bf nop
| ||||||| 0x08020bf0 4de90120 strd r2, r0, [sp, -0x4]
| ||||||| 0x08020bf4 4be90120 strd r2, r0, [fp, -0x4]
| --------> 0x08020bf8 e348 ldr r0, [0x08020f88] ; [0x8020f88:4]=0x2001e908
| ||||||| 0x08020bfa 0078 ldrb r0, [r0]
| ||||||| 0x08020bfc 0028 cmp r0, 0
| ========< 0x08020bfe 40f0d383 bne.w 0x80213a8
| ||||||| 0x08020c02 dff8bc04 ldr.w r0, [0x080210c6] ; [0x80210c4:4]=0x2001e600 q_struct_1
| ||||||| 0x08020c06 0078 ldrb r0, [r0]
| ||||||| 0x08020c08 10f00300 ands r0, r0, 3
| ||||||| 0x08020c0c 0328 cmp r0, 3 ; 3
| ========< 0x08020c0e 0ed1 bne 0x8020c2e
| ||||||| 0x08020c10 3148 ldr r0, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020c12 0088 ldrh r0, [r0]
| ||||||| 0x08020c14 411e subs r1, r0, 1
| ||||||| 0x08020c16 304a ldr r2, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020c18 1180 strh r1, [r2]
| ||||||| 0x08020c1a 80b2 uxth r0, r0
| ||||||| 0x08020c1c 0028 cmp r0, 0
| ========< 0x08020c1e 06d1 bne 0x8020c2e
| ||||||| 0x08020c20 2d48 ldr r0, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020c22 0a21 movs r1, 0xa ; 10
| --------> 0x08020c24 0180 strh r1, [r0]
| ||||||| 0x08020c26 edf778f9 bl draw_datetime_row
| ||||||| 0x08020c2a 00f033fd bl draw_statusline_more
| --------> 0x08020c2e dff89004 ldr.w r0, [0x080210c6] ; [0x80210c4:4]=0x2001e600 q_struct_1
| ||||||| 0x08020c32 0078 ldrb r0, [r0]
| ||||||| 0x08020c34 10f00300 ands r0, r0, 3
| ||||||| 0x08020c38 0228 cmp r0, 2 ; 2
| ========< 0x08020c3a 7bd1 bne 0x8020d34
| ||||||| 0x08020c3c 2648 ldr r0, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020c3e 0088 ldrh r0, [r0]
| ||||||| 0x08020c40 411e subs r1, r0, 1
| ||||||| 0x08020c42 254a ldr r2, [0x08020cda] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020c44 1180 strh r1, [r2]
| ||||||| 0x08020c46 80b2 uxth r0, r0
| ||||||| 0x08020c48 0028 cmp r0, 0
| ========< 0x08020c4a 40f03e83 bne.w 0x80212ca
| ||||||| 0x08020c4e dff86c0b ldr.w r0, [0x080217c2] ; [0x80217c0:4]=0x2001e4c4
| ||||||| 0x08020c52 0078 ldrb r0, [r0]
| ||||||| 0x08020c54 0028 cmp r0, 0
| ========< 0x08020c56 05d0 beq 0x8020c64
| ||||||| 0x08020c58 00f01cfd bl draw_statusline_more
| ||||||| 0x08020c5c dff85c0b ldr.w r0, [0x080217c0] ; [0x80217c0:4]=0x2001e4c4
| ||||||| 0x08020c60 0021 movs r1, 0
| ||||||| 0x08020c62 0170 strb r1, [r0]
| --------> 0x08020c64 1c48 ldr r0, [0x08020cd8] ; [0x8020cd8:4]=0x2001e844
| ||||||| 0x08020c66 0a21 movs r1, 0xa ; 10
| ||||||| 0x08020c68 0180 strh r1, [r0]
| ||||||| 0x08020c6a 00f013fd bl draw_statusline_more
| ||||||| 0x08020c6e edf754f9 bl draw_datetime_row
| ||||||| 0x08020c72 edf761fc bl draw_zone_channel
| ||||||| 0x08020c76 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||||| 0x08020c78 9f22 movs r2, 0x9f ; 159
| ||||||| 0x08020c7a 1021 movs r1, 0x10 ; 16
| ||||||| 0x08020c7c 9e20 movs r0, 0x9e ; 158
| ||||||| 0x08020c7e fcf705fe bl gfx_blockfill
| ||||||| 0x08020c82 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||||| 0x08020c84 0122 movs r2, 1 ; 1
| ||||||| 0x08020c86 1021 movs r1, 0x10 ; 16
| ||||||| 0x08020c88 0020 movs r0, 0
| ||||||| 0x08020c8a fcf7fffd bl gfx_blockfill
| ||||||| 0x08020c8e 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||||| 0x08020c90 9f22 movs r2, 0x9f ; 159
| ||||||| 0x08020c92 6c21 movs r1, 0x6c ; 'l' ; 108
| ||||||| 0x08020c94 0020 movs r0, 0
| ||||||| 0x08020c96 fcf7f9fd bl gfx_blockfill
| ||||||| 0x08020c9a 7f23 movs r3, 0x7f ; 127
| ||||||| 0x08020c9c 0022 movs r2, 0
| ||||||| 0x08020c9e 6e21 movs r1, 0x6e ; 'n' ; 110
| ||||||| 0x08020ca0 0020 movs r0, 0
| ||||||| 0x08020ca2 fcf7f3fd bl gfx_blockfill
| ||||||| 0x08020ca6 7f23 movs r3, 0x7f ; 127
| ||||||| 0x08020ca8 9f22 movs r2, 0x9f ; 159
| ||||||| 0x08020caa 6e21 movs r1, 0x6e ; 'n' ; 110
| ||||||| 0x08020cac 9f20 movs r0, 0x9f ; 159
| ||||||| 0x08020cae fcf7edfd bl gfx_blockfill
| ||||||| 0x08020cb2 7f23 movs r3, 0x7f ; 127
| ||||||| 0x08020cb4 9f22 movs r2, 0x9f ; 159
| ||||||| 0x08020cb6 7f21 movs r1, 0x7f ; 127
| ||||||| 0x08020cb8 0020 movs r0, 0
| ||||||| 0x08020cba fcf7e7fd bl gfx_blockfill
| ||||||| 0x08020cbe 0020 movs r0, 0
| ||||||| 0x08020cc0 fcf756fb bl gfx_set_fg_color
| ||||||| 0x08020cc4 7ff07f40 mvns r0, 0xff000000
| --------> 0x08020cc8 fcf74efb bl gfx_set_bg_color
| ========< 0x08020ccc fde2 b 0x80212ca
| ||||||| 0x08020cce 00bf nop
| ||||||| 0x08020cd0 4ce90120 strd r2, r0, [ip, -0x4]
| ========< 0x08020cd4 04e6 b 0x80208e0
| ||||||| 0x08020cd6 0120 movs r0, 1 ; 1
| ||||||| 0x08020cd8 44e80120 strex r0, r2, [r4, 4]
| ||||||| 0x08020cdc a8e80120 invalid
| ========< 0x08020ce0 7ce6 b 0x80209dc
| ||||||| 0x08020ce2 0120 movs r0, 1 ; 1
| ||||||| 0x08020ce4 b7e80120 ldm.w r7!, {r0, sp}
| ||||||`=< 0x08020ce8 dce5 b 0x80208a4
| |||||| 0x08020cea 0120 movs r0, 1 ; 1
| ||||||,=< 0x08020cec d0e1 b 0x8021090
| ||||||| 0x08020cee 0120 movs r0, 1 ; 1
| ||||||| 0x08020cf0 92e80120 ldm.w r2, {r0, sp}
| ||||||| 0x08020cf4 a9e80120 invalid
| ========< 0x08020cf8 58e6 b 0x80209ac
| ||||||| 0x08020cfa 0120 movs r0, 1 ; 1
| ||`=====< 0x08020cfc 7ce5 b 0x80207f8
| || |||| 0x08020cfe 0120 movs r0, 1 ; 1
| || |||| 0x08020d00 58e90120 ldrd r2, r0, [r8, -0x4]
| || |||| 0x08020d04 93e80120 ldm.w r3, {r0, sp}
| ========< 0x08020d08 d0e5 b 0x80208ac
| || |||| 0x08020d0a 0120 movs r0, 1 ; 1
| ========< 0x08020d0c ece6 b 0x8020ae8
| || |||| 0x08020d0e 0120 movs r0, 1 ; 1
| ||.-----> 0x08020d10 0417 asrs r4, r0, 0x1c
| ||||||| 0x08020d12 0020 movs r0, 0
| ||||||| 0x08020d14 0008 lsrs r0, r0, 0x20
| ||||||| 0x08020d16 0240 ands r2, r0
| ========< 0x08020d18 dcda bge 0x8020cd4
| ||||||| 0x08020d1a 0120 movs r0, 1 ; 1
| ||`=====< 0x08020d1c f8e7 b 0x8020d10
| || |||| 0x08020d1e 0120 movs r0, 1 ; 1
| ========< 0x08020d20 fce6 b 0x8020b1c
| || |||| 0x08020d22 0120 movs r0, 1 ; 1
| || |||| 0x08020d24 22e80120 invalid
| || |||| 0x08020d28 1414 asrs r4, r2, 0x10
| || |||| 0x08020d2a ff00 lsls r7, r7, 3
| ========< 0x08020d2c 00e7 b 0x8020b30
| || |||| 0x08020d2e 0120 movs r0, 1 ; 1
| || |||| 0x08020d30 58cb ldm r3, {r3, r4, r6}
| || |||| 0x08020d32 0120 movs r0, 1 ; 1
| --------> 0x08020d34 dff88803 ldr.w r0, [0x080210c4] ; [0x80210c4:4]=0x2001e600 q_struct_1
| || |||| 0x08020d38 0078 ldrb r0, [r0]
| || |||| 0x08020d3a 10f00300 ands r0, r0, 3
| || |||| 0x08020d3e 0128 cmp r0, 1 ; 1
| ||,=====< 0x08020d40 40f0c382 bne.w 0x80212ca
| ||||||| 0x08020d44 de48 ldr r0, [0x080210c0] ; [0x80210c0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08020d46 c078 ldrb r0, [r0, 3]
| ||||||| 0x08020d48 0006 lsls r0, r0, 0x18
| ========< 0x08020d4a 00f1bc80 bmi.w 0x8020ec6
| ||||||| 0x08020d4e dd48 ldr r0, [0x080210c6] ; [0x80210c4:4]=0x2001e600 q_struct_1
| ||||||| 0x08020d50 0078 ldrb r0, [r0]
| ||||||| 0x08020d52 0006 lsls r0, r0, 0x18
| ========< 0x08020d54 40f1b780 bpl.w 0x8020ec6
| ||||||| 0x08020d58 dff8640a ldr.w r0, [0x080217c4] ; [0x80217c4:4]=0x2001e844
| ||||||| 0x08020d5c 0078 ldrb r0, [r0]
| ||||||| 0x08020d5e 0028 cmp r0, 0
| ========< 0x08020d60 00f0b180 beq.w 0x8020ec6
| ||||||| 0x08020d64 dff85c0a ldr.w r0, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08020d68 0088 ldrh r0, [r0]
| ||||||| 0x08020d6a 0b28 cmp r0, 0xb ; 11
| ========< 0x08020d6c 03d3 blo 0x8020d76
| ||||||| 0x08020d6e dff8540a ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08020d72 0a21 movs r1, 0xa ; 10
| ||||||| 0x08020d74 0180 strh r1, [r0]
| --------> 0x08020d76 dff84c0a ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08020d7a 0088 ldrh r0, [r0]
| ||||||| 0x08020d7c 411e subs r1, r0, 1
| ||||||| 0x08020d7e dff8442a ldr.w r2, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08020d82 1180 strh r1, [r2]
| ||||||| 0x08020d84 80b2 uxth r0, r0
| ||||||| 0x08020d86 0028 cmp r0, 0
| ========< 0x08020d88 40f09f82 bne.w 0x80212ca
| ||||||| 0x08020d8c dff8340a ldr.w r0, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08020d90 1421 movs r1, 0x14 ; 20
| ||||||| 0x08020d92 0180 strh r1, [r0]
| ||||||| 0x08020d94 00f07efc bl draw_statusline_more
| ||||||| 0x08020d98 dff8240a ldr.w r0, [0x080217c4] ; [0x80217c4:4]=0x2001e844
| ||||||| 0x08020d9c 0078 ldrb r0, [r0]
| ||||||| 0x08020d9e 1f28 cmp r0, 0x1f ; 31
| ========< 0x08020da0 01d3 blo 0x8020da6
| ||||||| 0x08020da2 1e20 movs r0, 0x1e ; 30
| ========< 0x08020da4 02e0 b 0x8020dac
| --------> 0x08020da6 dff8180a ldr.w r0, [0x080217c6] ; [0x80217c4:4]=0x2001e844
| ||||||| 0x08020daa 0078 ldrb r0, [r0]
| --------> 0x08020dac 0024 movs r4, 0
| ========< 0x08020dae 09e0 b 0x8020dc4
| --------> 0x08020db0 e4b2 uxtb r4, r4
| ||||||| 0x08020db2 dff8142a ldr.w r2, [0x080217ce] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08020db6 12eb4402 adds.w r2, r2, r4, lsl 1
| ||||||| 0x08020dba c9b2 uxtb r1, r1
| ||||||| 0x08020dbc 3031 adds r1, 0x30
| ||||||| 0x08020dbe a2f84610 strh.w r1, [r2, 0x46]
| --------> 0x08020dc2 641c adds r4, r4, 1
| --------> 0x08020dc4 e4b2 uxtb r4, r4
| ||||||| 0x08020dc6 c0b2 uxtb r0, r0
| ||||||| 0x08020dc8 8442 cmp r4, r0
| ========< 0x08020dca 64d2 bhs 0x8020e96
| ||||||| 0x08020dcc e4b2 uxtb r4, r4
| ||||||| 0x08020dce 0221 movs r1, 2 ; 2
| ||||||| 0x08020dd0 94fbf1f2 sdiv r2, r4, r1
| ||||||| 0x08020dd4 02fb1142 mls r2, r2, r1, r4
| ||||||| 0x08020dd8 002a cmp r2, 0
| ========< 0x08020dda 0ad0 beq 0x8020df2
| ||||||| 0x08020ddc e4b2 uxtb r4, r4
| ||||||| 0x08020dde 0221 movs r1, 2 ; 2
| ||||||| 0x08020de0 94fbf1f1 sdiv r1, r4, r1
| ||||||| 0x08020de4 dff8d829 ldr.w r2, [0x080217c4] ; [0x80217c4:4]=0x2001e844
| ||||||| 0x08020de8 8918 adds r1, r1, r2
| ||||||| 0x08020dea 4978 ldrb r1, [r1, 1]
| ||||||| 0x08020dec c9b2 uxtb r1, r1
| ||||||| 0x08020dee 0909 lsrs r1, r1, 4
| ========< 0x08020df0 09e0 b 0x8020e06
| --------> 0x08020df2 e4b2 uxtb r4, r4
| ||||||| 0x08020df4 0221 movs r1, 2 ; 2
| ||||||| 0x08020df6 94fbf1f1 sdiv r1, r4, r1
| ||||||| 0x08020dfa dff8c429 ldr.w r2, [0x080217c6] ; [0x80217c4:4]=0x2001e844
| ||||||| 0x08020dfe 8918 adds r1, r1, r2
| ||||||| 0x08020e00 4978 ldrb r1, [r1, 1]
| ||||||| 0x08020e02 11f00f01 ands r1, r1, 0xf
| --------> 0x08020e06 c9b2 uxtb r1, r1
| ||||||| 0x08020e08 0a29 cmp r1, 0xa ; 10
| ========< 0x08020e0a 08d1 bne 0x8020e1e
| ||||||| 0x08020e0c e4b2 uxtb r4, r4
| ||||||| 0x08020e0e dff8b819 ldr.w r1, [0x080217ce] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08020e12 11eb4401 adds.w r1, r1, r4, lsl 1
| ||||||| 0x08020e16 4122 movs r2, 0x41 ; 'A' ; 65
| ||||||| 0x08020e18 a1f84620 strh.w r2, [r1, 0x46]
| ========< 0x08020e1c d1e7 b 0x8020dc2
| --------> 0x08020e1e c9b2 uxtb r1, r1
| ||||||| 0x08020e20 0b29 cmp r1, 0xb ; 11
| ========< 0x08020e22 08d1 bne 0x8020e36
| ||||||| 0x08020e24 e4b2 uxtb r4, r4
| ||||||| 0x08020e26 dff8a019 ldr.w r1, [0x080217ce] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08020e2a 11eb4401 adds.w r1, r1, r4, lsl 1
| ||||||| 0x08020e2e 4222 movs r2, 0x42 ; 'B' ; 66
| ||||||| 0x08020e30 a1f84620 strh.w r2, [r1, 0x46]
| ========< 0x08020e34 c5e7 b 0x8020dc2
| --------> 0x08020e36 c9b2 uxtb r1, r1
| ||||||| 0x08020e38 0c29 cmp r1, 0xc ; 12
| ========< 0x08020e3a 08d1 bne 0x8020e4e
| ||||||| 0x08020e3c e4b2 uxtb r4, r4
| ||||||| 0x08020e3e dff88819 ldr.w r1, [0x080217ce] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08020e42 11eb4401 adds.w r1, r1, r4, lsl 1
| ||||||| 0x08020e46 4322 movs r2, 0x43 ; 'C' ; 67
| ||||||| 0x08020e48 a1f84620 strh.w r2, [r1, 0x46]
| ========< 0x08020e4c b9e7 b 0x8020dc2
| --------> 0x08020e4e c9b2 uxtb r1, r1
| ||||||| 0x08020e50 0d29 cmp r1, 0xd ; 13
| ========< 0x08020e52 08d1 bne 0x8020e66
| ||||||| 0x08020e54 e4b2 uxtb r4, r4
| ||||||| 0x08020e56 dff87019 ldr.w r1, [0x080217ce] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08020e5a 11eb4401 adds.w r1, r1, r4, lsl 1
| ||||||| 0x08020e5e 4422 movs r2, 0x44 ; 'D' ; 68
| ||||||| 0x08020e60 a1f84620 strh.w r2, [r1, 0x46]
| ========< 0x08020e64 ade7 b 0x8020dc2
| --------> 0x08020e66 c9b2 uxtb r1, r1
| ||||||| 0x08020e68 0e29 cmp r1, 0xe ; 14
| ========< 0x08020e6a 08d1 bne 0x8020e7e
| ||||||| 0x08020e6c e4b2 uxtb r4, r4
| ||||||| 0x08020e6e dff85819 ldr.w r1, [0x080217ce] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08020e72 11eb4401 adds.w r1, r1, r4, lsl 1
| ||||||| 0x08020e76 2a22 movs r2, 0x2a ; '*' ; 42
| ||||||| 0x08020e78 a1f84620 strh.w r2, [r1, 0x46]
| ========< 0x08020e7c a1e7 b 0x8020dc2
| --------> 0x08020e7e c9b2 uxtb r1, r1
| ||||||| 0x08020e80 0f29 cmp r1, 0xf ; 15
| ========< 0x08020e82 95d1 bne 0x8020db0
| ||||||| 0x08020e84 e4b2 uxtb r4, r4
| ||||||| 0x08020e86 dff84019 ldr.w r1, [0x080217ce] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08020e8a 11eb4401 adds.w r1, r1, r4, lsl 1
| ||||||| 0x08020e8e 2322 movs r2, 0x23 ; '#' ; 35
| ||||||| 0x08020e90 a1f84620 strh.w r2, [r1, 0x46]
| ========< 0x08020e94 95e7 b 0x8020dc2
| --------> 0x08020e96 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x08020e98 dff83009 ldr.w r0, [0x080217d0] ; [0x80217d0:4]=0x2001dadc md380_radio_config
| ||||||| 0x08020e9c 0af0b5fc bl GPIO_SetBits
| ||||||| 0x08020ea0 dff82c09 ldr.w r0, [0x080217d4] ; [0x80217d4:4]=0x2001e7f8 backlight_timer
| ||||||| 0x08020ea4 407d ldrb r0, [r0, 0x15]
| ||||||| 0x08020ea6 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x08020eaa 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x08020eae dff82419 ldr.w r1, [0x080217da] ; [0x80217d8:4]=0x2001e604 q_status_4
| ||||||| 0x08020eb2 0880 strh r0, [r1]
| ||||||| 0x08020eb4 dff82009 ldr.w r0, [0x080217dc] ; [0x80217dc:4]=0x2001e4d4
| ||||||| 0x08020eb8 0078 ldrb r0, [r0]
| ||||||| 0x08020eba 50f04000 orrs r0, r0, 0x40
| ||||||| 0x08020ebe dff81819 ldr.w r1, [0x080217de] ; [0x80217dc:4]=0x2001e4d4
| ||||||| 0x08020ec2 0870 strb r0, [r1]
| ========< 0x08020ec4 01e2 b 0x80212ca
| --------> 0x08020ec6 7e48 ldr r0, [0x080210c2] ; [0x80210c0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08020ec8 c078 ldrb r0, [r0, 3]
| ||||||| 0x08020eca 0006 lsls r0, r0, 0x18
| ========< 0x08020ecc 00f10681 bmi.w 0x80210dc
| ||||||| 0x08020ed0 dff80409 ldr.w r0, [0x080217dc] ; [0x80217dc:4]=0x2001e4d4
| ||||||| 0x08020ed4 0078 ldrb r0, [r0]
| ||||||| 0x08020ed6 c0f38010 ubfx r0, r0, 6, 1
| ||||||| 0x08020eda c007 lsls r0, r0, 0x1f
| ========< 0x08020edc 40f1fe80 bpl.w 0x80210dc
| ||||||| 0x08020ee0 dff8f408 ldr.w r0, [0x080217dc] ; [0x80217dc:4]=0x2001e4d4
| ||||||| 0x08020ee4 0078 ldrb r0, [r0]
| ||||||| 0x08020ee6 c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x08020eea c007 lsls r0, r0, 0x1f
| ========< 0x08020eec 40f1ed81 bpl.w 0x80212ca
| ||||||| 0x08020ef0 dff8d008 ldr.w r0, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08020ef4 0088 ldrh r0, [r0]
| ||||||| 0x08020ef6 0b28 cmp r0, 0xb ; 11
| --------> 0x08020ef8 03d3 blo 0x8020f02
| ||||||| 0x08020efa dff8c808 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08020efe 0a21 movs r1, 0xa ; 10
| ||||||| 0x08020f00 0180 strh r1, [r0]
| --------> 0x08020f02 dff8c008 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08020f06 0088 ldrh r0, [r0]
| ||||||| 0x08020f08 411e subs r1, r0, 1
| ||||||| 0x08020f0a dff8b828 ldr.w r2, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08020f0e 1180 strh r1, [r2]
| ||||||| 0x08020f10 80b2 uxth r0, r0
| ||||||| 0x08020f12 0028 cmp r0, 0
| ========< 0x08020f14 40f0d981 bne.w 0x80212ca
| ||||||| 0x08020f18 dff8a808 ldr.w r0, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08020f1c 1421 movs r1, 0x14 ; 20
| ||||||| 0x08020f1e 0180 strh r1, [r0]
| ||||||| 0x08020f20 00f0b8fb bl draw_statusline_more
| ||||||| 0x08020f24 dff8b408 ldr.w r0, [0x080217e0] ; [0x80217e0:4]=0x2001cb9a md380_menu_edit_buf
| ||||||| 0x08020f28 0078 ldrb r0, [r0]
| ||||||| 0x08020f2a 1f28 cmp r0, 0x1f ; 31
| ========< 0x08020f2c 01d3 blo 0x8020f32
| ||||||| 0x08020f2e 1e20 movs r0, 0x1e ; 30
| ========< 0x08020f30 02e0 b 0x8020f38
| --------> 0x08020f32 dff8a808 ldr.w r0, [0x080217e2] ; [0x80217e0:4]=0x2001cb9a md380_menu_edit_buf
| ||||||| 0x08020f36 0078 ldrb r0, [r0]
| --------> 0x08020f38 0024 movs r4, 0
| ========< 0x08020f3a 0be0 b 0x8020f54
| ||||||| 0x08020f3c 24e80120 invalid
| --------> 0x08020f40 e4b2 uxtb r4, r4
| ||||||| 0x08020f42 dff88428 ldr.w r2, [0x080217ce] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08020f46 12eb4402 adds.w r2, r2, r4, lsl 1
| ||||||| 0x08020f4a c9b2 uxtb r1, r1
| ||||||| 0x08020f4c 3031 adds r1, 0x30
| ||||||| 0x08020f4e a2f84610 strh.w r1, [r2, 0x46]
| --------> 0x08020f52 641c adds r4, r4, 1
| --------> 0x08020f54 e4b2 uxtb r4, r4
| ||||||| 0x08020f56 c0b2 uxtb r0, r0
| ||||||| 0x08020f58 8442 cmp r4, r0
| ========< 0x08020f5a 6fd2 bhs 0x802103c
| ||||||| 0x08020f5c e4b2 uxtb r4, r4
| ||||||| 0x08020f5e 0221 movs r1, 2 ; 2
| ||||||| 0x08020f60 94fbf1f2 sdiv r2, r4, r1
| ||||||| 0x08020f64 02fb1142 mls r2, r2, r1, r4
| ||||||| 0x08020f68 002a cmp r2, 0
| ========< 0x08020f6a 11d0 beq 0x8020f90
| ||||||| 0x08020f6c e4b2 uxtb r4, r4
| ||||||| 0x08020f6e 0221 movs r1, 2 ; 2
| ||||||| 0x08020f70 94fbf1f1 sdiv r1, r4, r1
| ||||||| 0x08020f74 dff84828 ldr.w r2, [0x080217c4] ; [0x80217c4:4]=0x2001e844
| ||||||| 0x08020f78 8918 adds r1, r1, r2
| ||||||| 0x08020f7a 4978 ldrb r1, [r1, 1]
| ||||||| 0x08020f7c c9b2 uxtb r1, r1
| ||||||| 0x08020f7e 0909 lsrs r1, r1, 4
| ========< 0x08020f80 10e0 b 0x8020fa4
| ||||||| 0x08020f82 00bf nop
| ||||||| 0x08020f84 cc4a ldr r2, [0x080212b8] ; [0x80212b8:4]=0x210a050c
| ||||||| 0x08020f86 0020 movs r0, 0
| ||||||| 0x08020f88 08e90120 invalid
| ||||||| 0x08020f8c 1ee80120 invalid
| --------> 0x08020f90 e4b2 uxtb r4, r4
| ||||||| 0x08020f92 0221 movs r1, 2 ; 2
| ||||||| 0x08020f94 94fbf1f1 sdiv r1, r4, r1
| ||||||| 0x08020f98 dff82428 ldr.w r2, [0x080217c4] ; [0x80217c4:4]=0x2001e844
| ||||||| 0x08020f9c 8918 adds r1, r1, r2
| ||||||| 0x08020f9e 4978 ldrb r1, [r1, 1]
| ||||||| 0x08020fa0 11f00f01 ands r1, r1, 0xf
| --------> 0x08020fa4 c9b2 uxtb r1, r1
| ||||||| 0x08020fa6 0a29 cmp r1, 0xa ; 10
| ========< 0x08020fa8 08d1 bne 0x8020fbc
| ||||||| 0x08020faa e4b2 uxtb r4, r4
| ||||||| 0x08020fac dff81818 ldr.w r1, [0x080217cc] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08020fb0 11eb4401 adds.w r1, r1, r4, lsl 1
| ||||||| 0x08020fb4 4122 movs r2, 0x41 ; 'A' ; 65
| ||||||| 0x08020fb6 a1f84620 strh.w r2, [r1, 0x46]
| ========< 0x08020fba cae7 b 0x8020f52
| --------> 0x08020fbc c9b2 uxtb r1, r1
| ||||||| 0x08020fbe 0b29 cmp r1, 0xb ; 11
| ========< 0x08020fc0 08d1 bne 0x8020fd4
| ||||||| 0x08020fc2 e4b2 uxtb r4, r4
| ||||||| 0x08020fc4 dff80018 ldr.w r1, [0x080217cc] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08020fc8 11eb4401 adds.w r1, r1, r4, lsl 1
| ||||||| 0x08020fcc 4222 movs r2, 0x42 ; 'B' ; 66
| ||||||| 0x08020fce a1f84620 strh.w r2, [r1, 0x46]
| ========< 0x08020fd2 bee7 b 0x8020f52
| --------> 0x08020fd4 c9b2 uxtb r1, r1
| ||||||| 0x08020fd6 0c29 cmp r1, 0xc ; 12
| ========< 0x08020fd8 08d1 bne 0x8020fec
| ||||||| 0x08020fda e4b2 uxtb r4, r4
| ||||||| 0x08020fdc dff8e817 ldr.w r1, [0x080217cc] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08020fe0 11eb4401 adds.w r1, r1, r4, lsl 1
| ||||||| 0x08020fe4 4322 movs r2, 0x43 ; 'C' ; 67
| ||||||| 0x08020fe6 a1f84620 strh.w r2, [r1, 0x46]
| ========< 0x08020fea b2e7 b 0x8020f52
| --------> 0x08020fec c9b2 uxtb r1, r1
| ||||||| 0x08020fee 0d29 cmp r1, 0xd ; 13
| ========< 0x08020ff0 08d1 bne 0x8021004
| ||||||| 0x08020ff2 e4b2 uxtb r4, r4
| ||||||| 0x08020ff4 dff8d017 ldr.w r1, [0x080217cc] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08020ff8 11eb4401 adds.w r1, r1, r4, lsl 1
| ||||||| 0x08020ffc 4422 movs r2, 0x44 ; 'D' ; 68
| ||||||| 0x08020ffe a1f84620 strh.w r2, [r1, 0x46]
| ========< 0x08021002 a6e7 b 0x8020f52
| --------> 0x08021004 c9b2 uxtb r1, r1
| ||||||| 0x08021006 0e29 cmp r1, 0xe ; 14
| ========< 0x08021008 08d1 bne 0x802101c
| ||||||| 0x0802100a e4b2 uxtb r4, r4
| ||||||| 0x0802100c dff8b817 ldr.w r1, [0x080217cc] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08021010 11eb4401 adds.w r1, r1, r4, lsl 1
| ||||||| 0x08021014 2a22 movs r2, 0x2a ; '*' ; 42
| ||||||| 0x08021016 a1f84620 strh.w r2, [r1, 0x46]
| ========< 0x0802101a 9ae7 b 0x8020f52
| --------> 0x0802101c c9b2 uxtb r1, r1
| ||||||| 0x0802101e 0f29 cmp r1, 0xf ; 15
| ========< 0x08021020 8ed1 bne 0x8020f40
| ||||||| 0x08021022 e4b2 uxtb r4, r4
| ||||||| 0x08021024 dff8a017 ldr.w r1, [0x080217cc] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08021028 11eb4401 adds.w r1, r1, r4, lsl 1
| ||||||| 0x0802102c 2322 movs r2, 0x23 ; '#' ; 35
| ||||||| 0x0802102e a1f84620 strh.w r2, [r1, 0x46]
| ========< 0x08021032 8ee7 b 0x8020f52
| ||||||| 0x08021034 0de90120 invalid
| ========< 0x08021038 f4e5 b 0x8020c24
| ||||||| 0x0802103a 0120 movs r0, 1 ; 1
| --------> 0x0802103c 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x08021040 fcf796f9 bl gfx_set_fg_color
| ||||||| 0x08021044 7e23 movs r3, 0x7e ; '~' ; 126
| ||||||| 0x08021046 9e22 movs r2, 0x9e ; 158
| ||||||| 0x08021048 1121 movs r1, 0x11 ; 17
| ||||||| 0x0802104a 0120 movs r0, 1 ; 1
| ||||||| 0x0802104c fcf71efc bl gfx_blockfill
| ||||||| 0x08021050 0020 movs r0, 0
| ||||||| 0x08021052 fcf78df9 bl gfx_set_fg_color
| ||||||| 0x08021056 dff86407 ldr.w r0, [0x080217c2] ; [0x80217c0:4]=0x2001e4c4
| ||||||| 0x0802105a 0121 movs r1, 1 ; 1
| ||||||| 0x0802105c 0170 strb r1, [r0]
| ||||||| 0x0802105e e4b2 uxtb r4, r4
| ||||||| 0x08021060 dff86407 ldr.w r0, [0x080217cc] ; [0x80217cc:4]=0x40020800 io_GPIOC
| ||||||| 0x08021064 10eb4400 adds.w r0, r0, r4, lsl 1
| ||||||| 0x08021068 0021 movs r1, 0
| ||||||| 0x0802106a a0f84610 strh.w r1, [r0, 0x46]
| ||||||| 0x0802106e dff87047 ldr.w r4, [0x080217e6] ; [0x80217e4:4]=0x2001e600 q_struct_1
| ||||||| 0x08021072 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x08021076 fcf777f9 bl gfx_set_bg_color
| ||||||| 0x0802107a ff23 movs r3, 0xff ; 255
| ||||||| 0x0802107c 1722 movs r2, 0x17 ; 23
| ||||||| 0x0802107e 0321 movs r1, 3 ; 3
| ||||||| 0x08021080 2000 movs r0, r4
| ||||||| 0x08021082 fcf781fc bl gfx_1d988
| ||||||| 0x08021086 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x08021088 dff84007 ldr.w r0, [0x080217d0] ; [0x80217d0:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802108c 0af0bdfb bl GPIO_SetBits
| ||||||`-> 0x08021090 dff83c07 ldr.w r0, [0x080217d4] ; [0x80217d4:4]=0x2001e7f8 backlight_timer
| |||||| 0x08021094 407d ldrb r0, [r0, 0x15]
| |||||| 0x08021096 4ff4fa71 mov.w r1, 0x1f4 ; 500
| |||||| 0x0802109a 10fb01f0 smulbb r0, r0, r1
| |||||| 0x0802109e dff83417 ldr.w r1, [0x080217da] ; [0x80217d8:4]=0x2001e604 q_status_4
| |||||| 0x080210a2 0880 strh r0, [r1]
| |||||| 0x080210a4 dff83007 ldr.w r0, [0x080217dc] ; [0x80217dc:4]=0x2001e4d4
| |||||| 0x080210a8 0078 ldrb r0, [r0]
| |||||| 0x080210aa 10f0bf00 ands r0, r0, 0xbf
| |||||| 0x080210ae dff82817 ldr.w r1, [0x080217de] ; [0x80217dc:4]=0x2001e4d4
| |||||| 0x080210b2 0870 strb r0, [r1]
| ||||||,=< 0x080210b4 09e1 b 0x80212ca
| ||||||| 0x080210b6 00bf nop
| ||||||| 0x080210b8 95e80120 ldm.w r5, {r0, sp}
| ||||||| 0x080210bc ece80120 strd r2, r0, [ip], 4
| ||||||| 0x080210c0 78de udf 0x78
| ||||||| 0x080210c2 0120 movs r0, 1 ; 1
| ========< 0x080210c4 00e6 b 0x8020cc8
| ||||||| 0x080210c6 0120 movs r0, 1 ; 1
| ||||||| 0x080210c8 ffe80120 ldrd r2, r0, [pc], 4
| ||||||| 0x080210cc 98e80120 ldm.w r8, {r0, sp}
| ||||||| 0x080210d0 05e90120 invalid
| ||||||| 0x080210d4 1ce80120 invalid
| ||||||| 0x080210d8 8c86 strh r4, [r1, 0x34]
| ||||||| 0x080210da 0f08 lsrs r7, r1, 0x20
| --------> 0x080210dc dff8f806 ldr.w r0, [0x080217dc] ; [0x80217dc:4]=0x2001e4d4
| ||||||| 0x080210e0 0078 ldrb r0, [r0]
| ||||||| 0x080210e2 c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x080210e6 c007 lsls r0, r0, 0x1f
| ========< 0x080210e8 00f18580 bmi.w 0x80211f6
| ||||||| 0x080210ec dff8ec06 ldr.w r0, [0x080217e0] ; [0x80217e0:4]=0x2001cb9a md380_menu_edit_buf
| ||||||| 0x080210f0 0078 ldrb r0, [r0]
| ||||||| 0x080210f2 0128 cmp r0, 1 ; 1
| ========< 0x080210f4 07d3 blo 0x8021106
| ||||||| 0x080210f6 ebf747f8 bl md380_create_main_menu_entry
| ||||||| 0x080210fa 0cf07dfb bl display_idle_screen
| ||||||| 0x080210fe dff8dc06 ldr.w r0, [0x080217e2] ; [0x80217e0:4]=0x2001cb9a md380_menu_edit_buf
| ||||||| 0x08021102 0021 movs r1, 0
| ||||||| 0x08021104 0170 strb r1, [r0]
| --------> 0x08021106 dff8dc06 ldr.w r0, [0x080217ea] ; [0x80217e8:4]=0x2001e95a
| ||||||| 0x0802110a 0078 ldrb r0, [r0]
| ||||||| 0x0802110c 0006 lsls r0, r0, 0x18
| ========< 0x0802110e 28d5 bpl 0x8021162
| ||||||| 0x08021110 dff8b006 ldr.w r0, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08021114 0088 ldrh r0, [r0]
| ||||||| 0x08021116 411e subs r1, r0, 1
| ||||||| 0x08021118 dff8a826 ldr.w r2, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x0802111c 1180 strh r1, [r2]
| ||||||| 0x0802111e 80b2 uxth r0, r0
| ||||||| 0x08021120 0028 cmp r0, 0
| ========< 0x08021122 40f0d280 bne.w 0x80212ca
| ||||||| 0x08021126 dff89c06 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x0802112a 41f27071 movw r1, 0x1770
| ||||||| 0x0802112e 0180 strh r1, [r0]
| ||||||| 0x08021130 a448 ldr r0, [0x080213c4] ; [0x80213c4:4]=0xff8032
| ||||||| 0x08021132 fcf71df9 bl gfx_set_fg_color
| ||||||| 0x08021136 6b23 movs r3, 0x6b ; 'k' ; 107
| ||||||| 0x08021138 9d22 movs r2, 0x9d ; 157
| ||||||| 0x0802113a 6021 movs r1, 0x60 ; '`' ; 96
| ||||||| 0x0802113c 5f20 movs r0, 0x5f ; '_' ; 95
| ||||||| 0x0802113e fcf7a5fb bl gfx_blockfill
| ||||||| 0x08021142 0020 movs r0, 0
| ||||||| 0x08021144 fcf714f9 bl gfx_set_fg_color
| ||||||| 0x08021148 00f0a4fa bl draw_statusline_more
| ||||||| 0x0802114c dff89806 ldr.w r0, [0x080217ec] ; [0x80217ec:4]=0x2001e95d
| ||||||| 0x08021150 0021 movs r1, 0
| ||||||| 0x08021152 0170 strb r1, [r0]
| ||||||| 0x08021154 dff89406 ldr.w r0, [0x080217f0] ; [0x80217f0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08021158 0021 movs r1, 0
| ||||||| 0x0802115a 0170 strb r1, [r0]
| ||||||| 0x0802115c edf7ecf9 bl draw_zone_channel
| ========< 0x08021160 b3e0 b 0x80212ca
| --------> 0x08021162 dff86006 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08021166 0088 ldrh r0, [r0]
| ||||||| 0x08021168 0b28 cmp r0, 0xb ; 11
| ========< 0x0802116a 03d3 blo 0x8021174
| ||||||| 0x0802116c dff85406 ldr.w r0, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08021170 0a21 movs r1, 0xa ; 10
| ||||||| 0x08021172 0180 strh r1, [r0]
| --------> 0x08021174 dff84c06 ldr.w r0, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08021178 0088 ldrh r0, [r0]
| ||||||| 0x0802117a 411e subs r1, r0, 1
| ||||||| 0x0802117c dff84426 ldr.w r2, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08021180 1180 strh r1, [r2]
| ||||||| 0x08021182 80b2 uxth r0, r0
| ||||||| 0x08021184 0028 cmp r0, 0
| ========< 0x08021186 40f0a080 bne.w 0x80212ca
| ||||||| 0x0802118a dff83806 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x0802118e 0a21 movs r1, 0xa ; 10
| ||||||| 0x08021190 0180 strh r1, [r0]
| ||||||| 0x08021192 00f07ffa bl draw_statusline_more
| ||||||| 0x08021196 ecf7c0fe bl draw_datetime_row
| ||||||| 0x0802119a edf7cdf9 bl draw_zone_channel
| ||||||| 0x0802119e 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||||| 0x080211a0 0122 movs r2, 1 ; 1
| ||||||| 0x080211a2 1021 movs r1, 0x10 ; 16
| ||||||| 0x080211a4 0020 movs r0, 0
| ||||||| 0x080211a6 fcf771fb bl gfx_blockfill
| ||||||| 0x080211aa 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||||| 0x080211ac 9f22 movs r2, 0x9f ; 159
| ||||||| 0x080211ae 1021 movs r1, 0x10 ; 16
| ||||||| 0x080211b0 9e20 movs r0, 0x9e ; 158
| ||||||| 0x080211b2 fcf76bfb bl gfx_blockfill
| ||||||| 0x080211b6 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||||| 0x080211b8 9f22 movs r2, 0x9f ; 159
| ||||||| 0x080211ba 6c21 movs r1, 0x6c ; 'l' ; 108
| ||||||| 0x080211bc 0020 movs r0, 0
| ||||||| 0x080211be fcf765fb bl gfx_blockfill
| ||||||| 0x080211c2 7f23 movs r3, 0x7f ; 127
| ||||||| 0x080211c4 0022 movs r2, 0
| ||||||| 0x080211c6 6e21 movs r1, 0x6e ; 'n' ; 110
| ||||||| 0x080211c8 0020 movs r0, 0
| ||||||| 0x080211ca fcf75ffb bl gfx_blockfill
| ||||||| 0x080211ce 7f23 movs r3, 0x7f ; 127
| ||||||| 0x080211d0 9f22 movs r2, 0x9f ; 159
| ||||||| 0x080211d2 6e21 movs r1, 0x6e ; 'n' ; 110
| ||||||| 0x080211d4 9f20 movs r0, 0x9f ; 159
| ||||||| 0x080211d6 fcf759fb bl gfx_blockfill
| ||||||| 0x080211da 7f23 movs r3, 0x7f ; 127
| ||||||| 0x080211dc 9f22 movs r2, 0x9f ; 159
| ||||||| 0x080211de 7f21 movs r1, 0x7f ; 127
| ||||||| 0x080211e0 0020 movs r0, 0
| ||||||| 0x080211e2 fcf753fb bl gfx_blockfill
| ||||||| 0x080211e6 0020 movs r0, 0
| ||||||| 0x080211e8 fcf7c2f8 bl gfx_set_fg_color
| ||||||| 0x080211ec 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x080211f0 fcf7baf8 bl gfx_set_bg_color
| ========< 0x080211f4 69e0 b 0x80212ca
| --------> 0x080211f6 dff8e005 ldr.w r0, [0x080217de] ; [0x80217dc:4]=0x2001e4d4
| ||||||| 0x080211fa 0078 ldrb r0, [r0]
| ||||||| 0x080211fc c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x08021200 c007 lsls r0, r0, 0x1f
| ========< 0x08021202 3dd5 bpl 0x8021280
| ||||||| 0x08021204 dff8dc05 ldr.w r0, [0x080217e8] ; [0x80217e8:4]=0x2001e95a
| ||||||| 0x08021208 0078 ldrb r0, [r0]
| ||||||| 0x0802120a 0006 lsls r0, r0, 0x18
| ========< 0x0802120c 38d5 bpl 0x8021280
| ||||||| 0x0802120e dff8e005 ldr.w r0, [0x080217f6] ; [0x80217f4:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08021212 c078 ldrb r0, [r0, 3]
| ||||||| 0x08021214 0006 lsls r0, r0, 0x18
| ========< 0x08021216 33d5 bpl 0x8021280
| ||||||| 0x08021218 dff8a005 ldr.w r0, [0x080217c0] ; [0x80217c0:4]=0x2001e4c4
| ||||||| 0x0802121c 0078 ldrb r0, [r0]
| ||||||| 0x0802121e 0028 cmp r0, 0
| ========< 0x08021220 2ed1 bne 0x8021280
| ||||||| 0x08021222 dff8a005 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08021226 0088 ldrh r0, [r0]
| ||||||| 0x08021228 411e subs r1, r0, 1
| ||||||| 0x0802122a dff89825 ldr.w r2, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x0802122e 1180 strh r1, [r2]
| ||||||| 0x08021230 80b2 uxth r0, r0
| ||||||| 0x08021232 0028 cmp r0, 0
| ========< 0x08021234 49d1 bne 0x80212ca
| ||||||| 0x08021236 dff88c05 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x0802123a 41f27071 movw r1, 0x1770
| ||||||| 0x0802123e 0180 strh r1, [r0]
| ||||||| 0x08021240 6048 ldr r0, [0x080213c4] ; [0x80213c4:4]=0xff8032
| ||||||| 0x08021242 fcf795f8 bl gfx_set_fg_color
| ||||||| 0x08021246 6b23 movs r3, 0x6b ; 'k' ; 107
| ||||||| 0x08021248 9d22 movs r2, 0x9d ; 157
| ||||||| 0x0802124a 6021 movs r1, 0x60 ; '`' ; 96
| ||||||| 0x0802124c 5f20 movs r0, 0x5f ; '_' ; 95
| ||||||| 0x0802124e fcf71dfb bl gfx_blockfill
| ||||||| 0x08021252 0020 movs r0, 0
| ||||||| 0x08021254 fcf78cf8 bl gfx_set_fg_color
| ||||||| 0x08021258 00f01cfa bl draw_statusline_more
| ||||||| 0x0802125c dff88805 ldr.w r0, [0x080217ec] ; [0x80217ec:4]=0x2001e95d
| ||||||| 0x08021260 0021 movs r1, 0
| ||||||| 0x08021262 0170 strb r1, [r0]
| ||||||| 0x08021264 dff88405 ldr.w r0, [0x080217f0] ; [0x80217f0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08021268 0021 movs r1, 0
| ||||||| 0x0802126a 0170 strb r1, [r0]
| ||||||| 0x0802126c edf764f9 bl draw_zone_channel
| ========< 0x08021270 2be0 b 0x80212ca
| ||||||| 0x08021272 00bf nop
| ||||||| 0x08021274 e8e80120 strd r2, r0, [r8], 4
| ========< 0x08021278 74dd ble 0x8021364
| ||||||| 0x0802127a 0120 movs r0, 1 ; 1
| ========< 0x0802127c 3ce6 b 0x8020ef8
| ||||||| 0x0802127e 0120 movs r0, 1 ; 1
| --------> 0x08021280 dff85405 ldr.w r0, [0x080217dc] ; [0x80217dc:4]=0x2001e4d4
| ||||||| 0x08021284 0078 ldrb r0, [r0]
| ||||||| 0x08021286 c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x0802128a c007 lsls r0, r0, 0x1f
| ========< 0x0802128c 1dd5 bpl 0x80212ca
| ||||||| 0x0802128e dff86005 ldr.w r0, [0x080217f6] ; [0x80217f4:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08021292 c078 ldrb r0, [r0, 3]
| ||||||| 0x08021294 0006 lsls r0, r0, 0x18
| ========< 0x08021296 18d5 bpl 0x80212ca
| ||||||| 0x08021298 dff82005 ldr.w r0, [0x080217c0] ; [0x80217c0:4]=0x2001e4c4
| ||||||| 0x0802129c 0078 ldrb r0, [r0]
| ||||||| 0x0802129e 0028 cmp r0, 0
| ========< 0x080212a0 13d1 bne 0x80212ca
| ||||||| 0x080212a2 dff82005 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x080212a6 0088 ldrh r0, [r0]
| ||||||| 0x080212a8 411e subs r1, r0, 1
| ||||||| 0x080212aa dff81825 ldr.w r2, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x080212ae 1180 strh r1, [r2]
| ||||||| 0x080212b0 80b2 uxth r0, r0
| ||||||| 0x080212b2 0028 cmp r0, 0
| ========< 0x080212b4 09d1 bne 0x80212ca
| ||||||| 0x080212b6 dff80c05 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x080212ba 0a21 movs r1, 0xa ; 10
| ||||||| 0x080212bc 0180 strh r1, [r0]
| ||||||| 0x080212be 00f0e9f9 bl draw_statusline_more
| ||||||| 0x080212c2 edf739f9 bl draw_zone_channel
| ||||||| 0x080212c6 ecf728fe bl draw_datetime_row
| --`---`-> 0x080212ca 6de0 b 0x80213a8
| --------> 0x080212cc dff82405 ldr.w r0, [0x080217f8] ; [0x80217f8:4]=0x2001e908
| || ||| 0x080212d0 4ff4fa71 mov.w r1, 0x1f4 ; 500
| || ||| 0x080212d4 0160 str r1, [r0]
| || ||| 0x080212d6 dff80005 ldr.w r0, [0x080217de] ; [0x80217dc:4]=0x2001e4d4
| || ||| 0x080212da 0078 ldrb r0, [r0]
| || ||| 0x080212dc c0f38000 ubfx r0, r0, 2, 1
| || ||| 0x080212e0 c007 lsls r0, r0, 0x1f
| || |||,=< 0x080212e2 1ad5 bpl 0x802131a
| || |||| 0x080212e4 dff8dc04 ldr.w r0, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| || |||| 0x080212e8 0088 ldrh r0, [r0]
| || |||| 0x080212ea 401e subs r0, r0, 1
| || |||| 0x080212ec dff8d414 ldr.w r1, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| || |||| 0x080212f0 0880 strh r0, [r1]
| || |||| 0x080212f2 dff8d004 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| || |||| 0x080212f6 0088 ldrh r0, [r0]
| || |||| 0x080212f8 0028 cmp r0, 0
| ||,=====< 0x080212fa 06d1 bne 0x802130a
| ||||||| 0x080212fc dff8c404 ldr.w r0, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08021300 c821 movs r1, 0xc8 ; 200
| ||||||| 0x08021302 0180 strh r1, [r0]
| ||||||| 0x08021304 00f0fbf8 bl func_214fe
| ========< 0x08021308 38e0 b 0x802137c
| ||`-----> 0x0802130a dff8b804 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| || |||| 0x0802130e 0088 ldrh r0, [r0]
| || |||| 0x08021310 6428 cmp r0, 0x64 ; 'd' ; 100
| ||,=====< 0x08021312 33d1 bne 0x802137c
| ||||||| 0x08021314 00f097f9 bl func_21646
| ========< 0x08021318 30e0 b 0x802137c
| ||||||`-> 0x0802131a dff86403 ldr.w r0, [0x08021686] ; [0x8021684:4]=0x2001e846
| |||||| 0x0802131e 0078 ldrb r0, [r0]
| |||||| 0x08021320 0728 cmp r0, 7 ; 7
| ||||||,=< 0x08021322 2bd0 beq 0x802137c
| ||||||| 0x08021324 dff89c04 ldr.w r0, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08021328 0088 ldrh r0, [r0]
| ||||||| 0x0802132a 411e subs r1, r0, 1
| ||||||| 0x0802132c dff89424 ldr.w r2, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x08021330 1180 strh r1, [r2]
| ||||||| 0x08021332 80b2 uxth r0, r0
| ||||||| 0x08021334 0028 cmp r0, 0
| ========< 0x08021336 21d1 bne 0x802137c
| ||||||| 0x08021338 dff88804 ldr.w r0, [0x080217c8] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| ||||||| 0x0802133c 0521 movs r1, 5 ; 5
| ||||||| 0x0802133e 0180 strh r1, [r0]
| ||||||| 0x08021340 dff8b404 ldr.w r0, [0x080217fc] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| ||||||| 0x08021344 0078 ldrb r0, [r0]
| ||||||| 0x08021346 0028 cmp r0, 0
| ========< 0x08021348 18d1 bne 0x802137c
| ||||||| 0x0802134a dff8b004 ldr.w r0, [0x08021802] ; [0x8021800:4]=0x20002438
| ||||||| 0x0802134e 0078 ldrb r0, [r0]
| ||||||| 0x08021350 0028 cmp r0, 0
| ========< 0x08021352 0dd0 beq 0x8021370
| ||||||| 0x08021354 0022 movs r2, 0
| ||||||| 0x08021356 0021 movs r1, 0
| ||||||| 0x08021358 dff8a004 ldr.w r0, [0x08021800] ; [0x8021800:4]=0x20002438
| ||||||| 0x0802135c 0078 ldrb r0, [r0]
| ||||||| 0x0802135e 1423 movs r3, 0x14 ; 20
| ||||||| 0x08021360 dff89c44 ldr.w r4, [0x08021804] ; [0x8021804:4]=0x2001e94b gui_opmode2
| --------> 0x08021364 03fb0040 mla r0, r3, r0, r4
| ||||||| 0x08021368 1438 subs r0, 0x14
| ||||||| 0x0802136a 02f048fa bl gfx_drawbmp
| ========< 0x0802136e 05e0 b 0x802137c
| --------> 0x08021370 0022 movs r2, 0
| ||||||| 0x08021372 0021 movs r1, 0
| ||||||| 0x08021374 dff88804 ldr.w r0, [0x08021804] ; [0x8021804:4]=0x2001e94b gui_opmode2
| ||||||| 0x08021378 02f041fa bl gfx_drawbmp
| --`---`-> 0x0802137c 14e0 b 0x80213a8
| --------> 0x0802137e dff84404 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| || ||| 0x08021382 0088 ldrh r0, [r0]
| || ||| 0x08021384 411e subs r1, r0, 1
| || ||| 0x08021386 dff83c24 ldr.w r2, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| || ||| 0x0802138a 1180 strh r1, [r2]
| || ||| 0x0802138c 80b2 uxth r0, r0
| || ||| 0x0802138e 0028 cmp r0, 0
| || |||,=< 0x08021390 09d1 bne 0x80213a6
| || |||| 0x08021392 dff87004 ldr.w r0, [0x0802180a] ; [0x8021808:4]=0x2001e5dc msg_dest_addr
| || |||| 0x08021396 0121 movs r1, 1 ; 1
| || |||| 0x08021398 0170 strb r1, [r0]
| || |||| 0x0802139a dff82804 ldr.w r0, [0x080217ca] ; [0x80217c8:4]=0x2001cb54 msg_sms_hdr_prep
| || |||| 0x0802139e 0521 movs r1, 5 ; 5
| || |||| 0x080213a0 0180 strh r1, [r0]
| || |||| 0x080213a2 eef778fc bl return_to_mode_1_from10
| ||,===`-> 0x080213a6 ffe7 b 0x80213a8
\ ``````--> 0x080213a8 13bd pop {r0, r1, r4, pc}
/ (fcn) draw_statusline 244
| Caller: draw_statusline_more
| draw_statusline ();
| 0x08033dac f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x08033dae 0400 movs r4, r0
| 0x08033db0 1122 movs r2, 0x11 ; 17
| 0x08033db2 1021 movs r1, 0x10 ; 16
| 0x08033db4 0120 movs r0, 1 ; 1
| 0x08033db6 03f000f9 bl do_nothing_1
| 0x08033dba 1b22 movs r2, 0x1b ; 27
| 0x08033dbc 1a21 movs r1, 0x1a ; 26
| 0x08033dbe 0120 movs r0, 1 ; 1
| 0x08033dc0 03f0fbf8 bl do_nothing_1
| 0x08033dc4 2422 movs r2, 0x24 ; '$' ; 36
| 0x08033dc6 2221 movs r1, 0x22 ; '"' ; 34
| 0x08033dc8 0120 movs r0, 1 ; 1
| 0x08033dca 03f0f6f8 bl do_nothing_1
| 0x08033dce 3122 movs r2, 0x31 ; '1' ; 49
| 0x08033dd0 3121 movs r1, 0x31 ; '1' ; 49
| 0x08033dd2 0120 movs r0, 1 ; 1
| 0x08033dd4 03f0f1f8 bl do_nothing_1
| 0x08033dd8 3c22 movs r2, 0x3c ; '<' ; 60
| 0x08033dda 3c21 movs r1, 0x3c ; '<' ; 60
| 0x08033ddc 0120 movs r0, 1 ; 1
| 0x08033dde 03f0ecf8 bl do_nothing_1
| 0x08033de2 4a22 movs r2, 0x4a ; 'J' ; 74
| 0x08033de4 4821 movs r1, 0x48 ; 'H' ; 72
| 0x08033de6 0120 movs r0, 1 ; 1
| 0x08033de8 03f0e7f8 bl do_nothing_1
| 0x08033dec 5a22 movs r2, 0x5a ; 'Z' ; 90
| 0x08033dee 5821 movs r1, 0x58 ; 'X' ; 88
| 0x08033df0 0120 movs r0, 1 ; 1
| 0x08033df2 03f0e2f8 bl do_nothing_1
| 0x08033df6 6922 movs r2, 0x69 ; 'i' ; 105
| 0x08033df8 6821 movs r1, 0x68 ; 'h' ; 104
| 0x08033dfa 0120 movs r0, 1 ; 1
| 0x08033dfc 03f0ddf8 bl do_nothing_1
| 0x08033e00 7722 movs r2, 0x77 ; 'w' ; 119
| 0x08033e02 7521 movs r1, 0x75 ; 'u' ; 117
| 0x08033e04 0120 movs r0, 1 ; 1
| 0x08033e06 03f0d8f8 bl do_nothing_1
| 0x08033e0a 7f22 movs r2, 0x7f ; 127
| 0x08033e0c 7f21 movs r1, 0x7f ; 127
| 0x08033e0e 0120 movs r0, 1 ; 1
| 0x08033e10 03f0d3f8 bl do_nothing_1
| 0x08033e14 0025 movs r5, 0
| ,=< 0x08033e16 05e0 b 0x8033e24
| .--> 0x08033e18 0022 movs r2, 0
| || 0x08033e1a 0021 movs r1, 0
| || 0x08033e1c 2248 ldr r0, [0x08033ea8] ; [0x8033ea8:4]=0x20002438
| || 0x08033e1e eff7eefc bl gfx_drawbmp
| ...---> 0x08033e22 6d1c adds r5, r5, 1
| ||||`-> 0x08033e24 edb2 uxtb r5, r5
| |||| 0x08033e26 0a2d cmp r5, 0xa ; 10
| ||||,=< 0x08033e28 39d2 bhs 0x8033e9e
| ||||| 0x08033e2a edb2 uxtb r5, r5
| ||||| 0x08033e2c 285d ldrb r0, [r5, r4]
| ||||| 0x08033e2e edb2 uxtb r5, r5
| ||||| 0x08033e30 1e49 ldr r1, [0x08033eac] ; [0x8033eac:4]=0x809a480
| ||||| 0x08033e32 6e5c ldrb r6, [r5, r1]
| ||||| 0x08033e34 edb2 uxtb r5, r5
| ||||| 0x08033e36 1d49 ldr r1, [0x08033eae] ; [0x8033eac:4]=0x809a480
| ||||| 0x08033e38 6918 adds r1, r5, r1
| ||||| 0x08033e3a 8b7a ldrb r3, [r1, 0xa]
| ||||| 0x08033e3c edb2 uxtb r5, r5
| ||||| 0x08033e3e 1b49 ldr r1, [0x08033eae] ; [0x8033eac:4]=0x809a480
| ||||| 0x08033e40 6918 adds r1, r5, r1
| ||||| 0x08033e42 0f7d ldrb r7, [r1, 0x14]
| ||||| 0x08033e44 1a49 ldr r1, [0x08033eb0] ; [0x8033eb0:4]=0x2001de78 struct_channel_info2
| ||||| 0x08033e46 0978 ldrb r1, [r1]
| ||||| 0x08033e48 11f00301 ands r1, r1, 3
| ||||| 0x08033e4c 0329 cmp r1, 3 ; 3
| `=====< 0x08033e4e e8d0 beq 0x8033e22
| |||| 0x08033e50 411e subs r1, r0, 1
| |||| 0x08033e52 c9b2 uxtb r1, r1
| |||| 0x08033e54 0529 cmp r1, 5 ; 5
| ,=====< 0x08033e56 0dd2 bhs 0x8033e74
| ||||| 0x08033e58 0022 movs r2, 0
| ||||| 0x08033e5a ffb2 uxtb r7, r7
| ||||| 0x08033e5c 3900 movs r1, r7
| ||||| 0x08033e5e c0b2 uxtb r0, r0
| ||||| 0x08033e60 50fa83f0 uxtab r0, r0, r3
| ||||| 0x08033e64 1423 movs r3, 0x14 ; 20
| ||||| 0x08033e66 104e ldr r6, [0x08033eaa] ; [0x8033ea8:4]=0x20002438
| ||||| 0x08033e68 03fb0060 mla r0, r3, r0, r6
| ||||| 0x08033e6c 1438 subs r0, 0x14
| ||||| 0x08033e6e eff7c6fc bl gfx_drawbmp
| |`====< 0x08033e72 d6e7 b 0x8033e22
| `-----> 0x08033e74 ffb2 uxtb r7, r7
| ||| 0x08033e76 002f cmp r7, 0
| |`==< 0x08033e78 ced0 beq 0x8033e18
| | | 0x08033e7a 7ff07f40 mvns r0, 0xff000000
| | | 0x08033e7e e9f777fa bl gfx_set_fg_color
| | | 0x08033e82 0f23 movs r3, 0xf ; 15
| | | 0x08033e84 f6b2 uxtb r6, r6
| | | 0x08033e86 56fa87f0 uxtab r0, r6, r7
| | | 0x08033e8a 421e subs r2, r0, 1
| | | 0x08033e8c 0021 movs r1, 0
| | | 0x08033e8e ffb2 uxtb r7, r7
| | | 0x08033e90 3800 movs r0, r7
| | | 0x08033e92 e9f7fbfc bl gfx_blockfill
| | | 0x08033e96 0020 movs r0, 0
| | | 0x08033e98 e9f76afa bl gfx_set_fg_color
| `===< 0x08033e9c c1e7 b 0x8033e22
\ `-> 0x08033e9e f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) do_nothing_1 2
| Caller: func_25e60 draw_statusline
| do_nothing_1 ();
\ 0x08036fba 7047 bx lr
/ (fcn) draw_statusline_more 294
| Caller: scr_mode_stable func_0de64 display_idle_screen display_unprog_screen func_0c7e8
| F_4284 F_4315
| draw_statusline_more ();
| 0x08021694 10b5 push {r4, lr}
| 0x08021696 7148 ldr r0, [0x0802185e] ; [0x802185c:4]=0x2001e8e0
| 0x08021698 0078 ldrb r0, [r0]
| 0x0802169a 0028 cmp r0, 0
| ,=< 0x0802169c 03d0 beq 0x80216a6
| | 0x0802169e 5748 ldr r0, [0x080217fe] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| | 0x080216a0 0121 movs r1, 1 ; 1
| | 0x080216a2 4170 strb r1, [r0, 1]
| ,==< 0x080216a4 02e0 b 0x80216ac
| |`-> 0x080216a6 5548 ldr r0, [0x080217fe] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| | 0x080216a8 0021 movs r1, 0
| | 0x080216aa 4170 strb r1, [r0, 1]
| `--> 0x080216ac 6c48 ldr r0, [0x08021860] ; [0x8021860:4]=0x2001deb8 current_channel_info
| 0x080216ae 0079 ldrb r0, [r0, 4]
| 0x080216b0 c0f34010 ubfx r0, r0, 5, 1
| 0x080216b4 c007 lsls r0, r0, 0x1f
| ,=< 0x080216b6 03d5 bpl 0x80216c0
| | 0x080216b8 5048 ldr r0, [0x080217fc] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| | 0x080216ba 0221 movs r1, 2 ; 2
| | 0x080216bc 8170 strb r1, [r0, 2]
| ,==< 0x080216be 02e0 b 0x80216c6
| |`-> 0x080216c0 4e48 ldr r0, [0x080217fc] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| | 0x080216c2 0121 movs r1, 1 ; 1
| | 0x080216c4 8170 strb r1, [r0, 2]
| `--> 0x080216c6 4248 ldr r0, [0x080217d2] ; [0x80217d0:4]=0x2001dadc md380_radio_config
| 0x080216c8 4078 ldrb r0, [r0, 1]
| 0x080216ca c0f38000 ubfx r0, r0, 2, 1
| 0x080216ce c007 lsls r0, r0, 0x1f
| ,=< 0x080216d0 03d5 bpl 0x80216da
| | 0x080216d2 4a48 ldr r0, [0x080217fe] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| | 0x080216d4 0021 movs r1, 0
| | 0x080216d6 c170 strb r1, [r0, 3]
| ,==< 0x080216d8 02e0 b 0x80216e0
| |`-> 0x080216da 4848 ldr r0, [0x080217fe] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| | 0x080216dc 0121 movs r1, 1 ; 1
| | 0x080216de c170 strb r1, [r0, 3]
| `--> 0x080216e0 4648 ldr r0, [0x080217fc] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| 0x080216e2 0021 movs r1, 0
| 0x080216e4 0171 strb r1, [r0, 4]
| 0x080216e6 5f48 ldr r0, [0x08021866] ; [0x8021864:4]=0x2001e892 gui_opmode3
| 0x080216e8 0078 ldrb r0, [r0]
| 0x080216ea 0228 cmp r0, 2 ; 2
| ,=< 0x080216ec 03d1 bne 0x80216f6
| | 0x080216ee 4348 ldr r0, [0x080217fe] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| | 0x080216f0 0121 movs r1, 1 ; 1
| | 0x080216f2 4171 strb r1, [r0, 5]
| ,==< 0x080216f4 02e0 b 0x80216fc
| |`-> 0x080216f6 4148 ldr r0, [0x080217fe] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| | 0x080216f8 0021 movs r1, 0
| | 0x080216fa 4171 strb r1, [r0, 5]
| `--> 0x080216fc 5848 ldr r0, [0x08021860] ; [0x8021860:4]=0x2001deb8 current_channel_info
| 0x080216fe 0078 ldrb r0, [r0]
| 0x08021700 10f00300 ands r0, r0, 3
| 0x08021704 0228 cmp r0, 2 ; 2
| ,=< 0x08021706 13d1 bne 0x8021730
| | 0x08021708 5748 ldr r0, [0x08021868] ; [0x8021868:4]=0x2001e91a
| | 0x0802170a 0078 ldrb r0, [r0]
| | 0x0802170c 3228 cmp r0, 0x32 ; '2' ; 50
| ,==< 0x0802170e 03d1 bne 0x8021718
| || 0x08021710 3a48 ldr r0, [0x080217fc] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| || 0x08021712 0221 movs r1, 2 ; 2
| || 0x08021714 8171 strb r1, [r0, 6]
| ,===< 0x08021716 0ee0 b 0x8021736
| |`--> 0x08021718 5448 ldr r0, [0x0802186c] ; [0x802186c:4]=0x2001e882
| | | 0x0802171a 0078 ldrb r0, [r0]
| | | 0x0802171c 0128 cmp r0, 1 ; 1
| |,==< 0x0802171e 03d1 bne 0x8021728
| ||| 0x08021720 3648 ldr r0, [0x080217fc] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| ||| 0x08021722 0121 movs r1, 1 ; 1
| ||| 0x08021724 8171 strb r1, [r0, 6]
| ,====< 0x08021726 06e0 b 0x8021736
| ||`--> 0x08021728 3448 ldr r0, [0x080217fc] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| || | 0x0802172a 0021 movs r1, 0
| || | 0x0802172c 8171 strb r1, [r0, 6]
| ||,==< 0x0802172e 02e0 b 0x8021736
| |||`-> 0x08021730 3248 ldr r0, [0x080217fc] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| ||| 0x08021732 0021 movs r1, 0
| ||| 0x08021734 8171 strb r1, [r0, 6]
| ```--> 0x08021736 4a48 ldr r0, [0x08021862] ; [0x8021860:4]=0x2001deb8 current_channel_info
| 0x08021738 0078 ldrb r0, [r0]
| 0x0802173a 10f00300 ands r0, r0, 3
| 0x0802173e 0228 cmp r0, 2 ; 2
| ,=< 0x08021740 0ed1 bne 0x8021760
| | 0x08021742 4748 ldr r0, [0x08021862] ; [0x8021860:4]=0x2001deb8 current_channel_info
| | 0x08021744 8078 ldrb r0, [r0, 2]
| | 0x08021746 c0f30110 ubfx r0, r0, 4, 2
| | 0x0802174a c0b2 uxtb r0, r0
| | 0x0802174c 0028 cmp r0, 0
| ,==< 0x0802174e 03d0 beq 0x8021758
| || 0x08021750 2a48 ldr r0, [0x080217fc] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| || 0x08021752 0221 movs r1, 2 ; 2
| || 0x08021754 c171 strb r1, [r0, 7]
| ,===< 0x08021756 06e0 b 0x8021766
| |`--> 0x08021758 2848 ldr r0, [0x080217fc] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| | | 0x0802175a 0121 movs r1, 1 ; 1
| | | 0x0802175c c171 strb r1, [r0, 7]
| |,==< 0x0802175e 02e0 b 0x8021766
| ||`-> 0x08021760 2648 ldr r0, [0x080217fc] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| || 0x08021762 0021 movs r1, 0
| || 0x08021764 c171 strb r1, [r0, 7]
| ``--> 0x08021766 3e48 ldr r0, [0x08021862] ; [0x8021860:4]=0x2001deb8 current_channel_info
| 0x08021768 c078 ldrb r0, [r0, 3]
| 0x0802176a c0f34010 ubfx r0, r0, 5, 1
| 0x0802176e c007 lsls r0, r0, 0x1f
| ,=< 0x08021770 03d5 bpl 0x802177a
| | 0x08021772 2248 ldr r0, [0x080217fe] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| | 0x08021774 0021 movs r1, 0
| | 0x08021776 0172 strb r1, [r0, 8]
| ,==< 0x08021778 02e0 b 0x8021780
| |`-> 0x0802177a 2048 ldr r0, [0x080217fe] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| | 0x0802177c 0121 movs r1, 1 ; 1
| | 0x0802177e 0172 strb r1, [r0, 8]
| `--> 0x08021780 1e48 ldr r0, [0x080217fc] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| 0x08021782 12f013fb bl draw_statusline
| 0x08021786 3a48 ldr r0, [0x08021872] ; [0x8021870:4]=0x2001e894
| 0x08021788 0078 ldrb r0, [r0]
| 0x0802178a 0728 cmp r0, 7 ; 7
| ,=< 0x0802178c 14d0 beq 0x80217b8
| | 0x0802178e 1b48 ldr r0, [0x080217fe] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| | 0x08021790 0078 ldrb r0, [r0]
| | 0x08021792 0028 cmp r0, 0
| ,==< 0x08021794 0bd0 beq 0x80217ae
| || 0x08021796 0022 movs r2, 0
| || 0x08021798 0021 movs r1, 0
| || 0x0802179a 1848 ldr r0, [0x080217fe] ; [0x80217fc:4]=0x2001e534 smeter_rssi
| || 0x0802179c 0078 ldrb r0, [r0]
| || 0x0802179e 1423 movs r3, 0x14 ; 20
| || 0x080217a0 174c ldr r4, [0x08021800] ; [0x8021800:4]=0x20002438
| || 0x080217a2 03fb0040 mla r0, r3, r0, r4
| || 0x080217a6 1438 subs r0, 0x14
| || 0x080217a8 02f029f8 bl gfx_drawbmp
| ,===< 0x080217ac 04e0 b 0x80217b8
| |`--> 0x080217ae 0022 movs r2, 0
| | | 0x080217b0 0021 movs r1, 0
| | | 0x080217b2 1348 ldr r0, [0x08021802] ; [0x8021800:4]=0x20002438
| | | 0x080217b4 02f023f8 bl gfx_drawbmp
\ `-`-> 0x080217b8 10bd pop {r4, pc}
/ (fcn) gui_control 4
| Caller: md380_f_4520
| gui_control ();
| 0x0802d1b2 10b5 push {r4, lr}
\ 0x0802d1b4 0400 movs r4, r0
/ (fcn) SomethingWithGPIOC_and_Backlight_Timer 394
| Caller: Start
| SomethingWithGPIOC_and_Backlight_Timer ();
| 0x0803d5e4 80b5 push {r7, lr}
| 0x0803d5e6 7d48 ldr r0, [0x0803d7de] ; [0x803d7dc:4]=0x2001de78 struct_channel_info2
| 0x0803d5e8 0078 ldrb r0, [r0]
| 0x0803d5ea 10f00300 ands r0, r0, 3
| 0x0803d5ee 0128 cmp r0, 1 ; 1
| ,=< 0x0803d5f0 40f0ba80 bne.w 0x803d768
| | 0x0803d5f4 dff8e805 ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| | 0x0803d5f8 4078 ldrb r0, [r0, 1]
| | 0x0803d5fa c0f34000 ubfx r0, r0, 1, 1
| | 0x0803d5fe c007 lsls r0, r0, 0x1f
| ,==< 0x0803d600 40f1b280 bpl.w 0x803d768
| || 0x0803d604 7648 ldr r0, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| || 0x0803d606 0078 ldrb r0, [r0]
| || 0x0803d608 c007 lsls r0, r0, 0x1f
| ,===< 0x0803d60a 02d5 bpl 0x803d612
| ||| 0x0803d60c 0ff03cfc bl func_4ce88
| ,====< 0x0803d610 01e0 b 0x803d616
| |`---> 0x0803d612 0ff078fc bl func_4cf06_uses_ADC2_and_TIM3
| `----> 0x0803d616 dff86c06 ldr.w r0, [0x0803dc8a] ; [0x803dc88:4]=0x2001e8ab
| || 0x0803d61a 0078 ldrb r0, [r0]
| || 0x0803d61c 801f subs r0, r0, 6
| || 0x0803d61e c0b2 uxtb r0, r0
| || 0x0803d620 4a28 cmp r0, 0x4a ; 'J' ; 74
| ,===< 0x0803d622 c0f0a380 blo.w 0x803d76c
| ||| 0x0803d626 6e48 ldr r0, [0x0803d7e2] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||| 0x0803d628 0078 ldrb r0, [r0]
| ||| 0x0803d62a c007 lsls r0, r0, 0x1f
| ,====< 0x0803d62c 2ed5 bpl 0x803d68c
| |||| 0x0803d62e 6b48 ldr r0, [0x0803d7de] ; [0x803d7dc:4]=0x2001de78 struct_channel_info2
| |||| 0x0803d630 008b ldrh r0, [r0, 0x18]
| |||| 0x0803d632 4ff6ff71 movw r1, 0xffff
| |||| 0x0803d636 8842 cmp r0, r1
| ,=====< 0x0803d638 28d1 bne 0x803d68c
| ||||| 0x0803d63a 6948 ldr r0, [0x0803d7e2] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||||| 0x0803d63c 0078 ldrb r0, [r0]
| ||||| 0x0803d63e 50f08000 orrs r0, r0, 0x80
| ||||| 0x0803d642 6749 ldr r1, [0x0803d7e2] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||||| 0x0803d644 0870 strb r0, [r1]
| ||||| 0x0803d646 dff89805 ldr.w r0, [0x0803dbe6] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||||| 0x0803d64a 4078 ldrb r0, [r0, 1]
| ||||| 0x0803d64c c0f34010 ubfx r0, r0, 5, 1
| ||||| 0x0803d650 c007 lsls r0, r0, 0x1f
| ,======< 0x0803d652 00f18b80 bmi.w 0x803d76c
| |||||| 0x0803d656 4021 movs r1, 0x40 ; '@' ; 64
| |||||| 0x0803d658 5e48 ldr r0, [0x0803d7d4] ; [0x803d7d4:4]=0x40020800 io_GPIOC
| |||||| 0x0803d65a eef7d6f8 bl GPIO_SetBits
| |||||| 0x0803d65e dff8f009 ldr.w r0, [0x0803e056] ; [0x803e054:4]=0x2001e8e0
| |||||| 0x0803d662 407d ldrb r0, [r0, 0x15]
| |||||| 0x0803d664 4ff4fa71 mov.w r1, 0x1f4 ; 500
| |||||| 0x0803d668 10fb01f0 smulbb r0, r0, r1
| |||||| 0x0803d66c 5a49 ldr r1, [0x0803d7d8] ; [0x803d7d8:4]=0x2001e7f8 backlight_timer
| |||||| 0x0803d66e 0880 strh r0, [r1]
| |||||| 0x0803d670 dff86c05 ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| |||||| 0x0803d674 4078 ldrb r0, [r0, 1]
| |||||| 0x0803d676 50f02000 orrs r0, r0, 0x20
| |||||| 0x0803d67a dff86415 ldr.w r1, [0x0803dbe6] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| |||||| 0x0803d67e 4870 strb r0, [r1, 1]
| |||||| 0x0803d680 dff8300c ldr.w r0, [0x0803e2b8] ; [0x803e2b8:4]=0x2001de78 struct_channel_info2
| |||||| 0x0803d684 0068 ldr r0, [r0]
| |||||| 0x0803d686 02f0ddf8 bl OSSemPost
| ,=======< 0x0803d68a 6fe0 b 0x803d76c
| ||``----> 0x0803d68c 5448 ldr r0, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| || ||| 0x0803d68e 0078 ldrb r0, [r0]
| || ||| 0x0803d690 c007 lsls r0, r0, 0x1f
| || ,====< 0x0803d692 0bd5 bpl 0x803d6ac
| || |||| 0x0803d694 5148 ldr r0, [0x0803d7dc] ; [0x803d7dc:4]=0x2001de78 struct_channel_info2
| || |||| 0x0803d696 008b ldrh r0, [r0, 0x18]
| || |||| 0x0803d698 4ff6ff71 movw r1, 0xffff
| || |||| 0x0803d69c 8842 cmp r0, r1
| ||,=====< 0x0803d69e 05d0 beq 0x803d6ac
| ||||||| 0x0803d6a0 5248 ldr r0, [0x0803d7ec] ; [0x803d7ec:4]=0x2001e614
| ||||||| 0x0803d6a2 0078 ldrb r0, [r0]
| ||||||| 0x0803d6a4 c0f3c000 ubfx r0, r0, 3, 1
| ||||||| 0x0803d6a8 c007 lsls r0, r0, 0x1f
| ========< 0x0803d6aa 0dd4 bmi 0x803d6c8
| ||``----> 0x0803d6ac dff8a409 ldr.w r0, [func_3e058] ; [0x803e058:4]=0x4895b580
| || ||| 0x0803d6b0 0078 ldrb r0, [r0]
| || ||| 0x0803d6b2 0128 cmp r0, 1 ; 1
| || ,====< 0x0803d6b4 08d0 beq 0x803d6c8
| || |||| 0x0803d6b6 4a48 ldr r0, [0x0803d7e2] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| || |||| 0x0803d6b8 0078 ldrb r0, [r0]
| || |||| 0x0803d6ba c007 lsls r0, r0, 0x1f
| ||,=====< 0x0803d6bc 2cd5 bpl 0x803d718
| ||||||| 0x0803d6be dff89409 ldr.w r0, [0x0803e05a] ; [0x803e058:4]=0x4895b580
| ||||||| 0x0803d6c2 0078 ldrb r0, [r0]
| ||||||| 0x0803d6c4 0228 cmp r0, 2 ; 2
| ========< 0x0803d6c6 27d1 bne 0x803d718
| ---`----> 0x0803d6c8 4548 ldr r0, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||| ||| 0x0803d6ca 0078 ldrb r0, [r0]
| ||| ||| 0x0803d6cc 50f08000 orrs r0, r0, 0x80
| ||| ||| 0x0803d6d0 4349 ldr r1, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||| ||| 0x0803d6d2 0870 strb r0, [r1]
| ||| ||| 0x0803d6d4 dff80805 ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||| ||| 0x0803d6d8 4078 ldrb r0, [r0, 1]
| ||| ||| 0x0803d6da c0f34010 ubfx r0, r0, 5, 1
| ||| ||| 0x0803d6de c007 lsls r0, r0, 0x1f
| |||,====< 0x0803d6e0 44d4 bmi 0x803d76c
| ||||||| 0x0803d6e2 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0803d6e4 3b48 ldr r0, [0x0803d7d4] ; [0x803d7d4:4]=0x40020800 io_GPIOC
| ||||||| 0x0803d6e6 eef790f8 bl GPIO_SetBits
| ||||||| 0x0803d6ea dff86409 ldr.w r0, [0x0803e056] ; [0x803e054:4]=0x2001e8e0
| ||||||| 0x0803d6ee 407d ldrb r0, [r0, 0x15]
| ||||||| 0x0803d6f0 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x0803d6f4 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x0803d6f8 3749 ldr r1, [0x0803d7d8] ; [0x803d7d8:4]=0x2001e7f8 backlight_timer
| ||||||| 0x0803d6fa 0880 strh r0, [r1]
| ||||||| 0x0803d6fc dff8e004 ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x0803d700 4078 ldrb r0, [r0, 1]
| ||||||| 0x0803d702 50f02000 orrs r0, r0, 0x20
| ||||||| 0x0803d706 dff8d814 ldr.w r1, [0x0803dbe6] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x0803d70a 4870 strb r0, [r1, 1]
| ||||||| 0x0803d70c dff8a40b ldr.w r0, [0x0803e2b8] ; [0x803e2b8:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803d710 0068 ldr r0, [r0]
| ||||||| 0x0803d712 02f097f8 bl OSSemPost
| ========< 0x0803d716 29e0 b 0x803d76c
| --`-----> 0x0803d718 3148 ldr r0, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| || |||| 0x0803d71a 0078 ldrb r0, [r0]
| || |||| 0x0803d71c 10f07f00 ands r0, r0, 0x7f
| || |||| 0x0803d720 2f49 ldr r1, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| || |||| 0x0803d722 0870 strb r0, [r1]
| || |||| 0x0803d724 dff8b804 ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| || |||| 0x0803d728 4078 ldrb r0, [r0, 1]
| || |||| 0x0803d72a c0f34010 ubfx r0, r0, 5, 1
| || |||| 0x0803d72e c007 lsls r0, r0, 0x1f
| ||,=====< 0x0803d730 1cd5 bpl 0x803d76c
| ||||||| 0x0803d732 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0803d734 2748 ldr r0, [0x0803d7d4] ; [0x803d7d4:4]=0x40020800 io_GPIOC
| ||||||| 0x0803d736 eef768f8 bl GPIO_SetBits
| ||||||| 0x0803d73a dff81409 ldr.w r0, [0x0803e056] ; [0x803e054:4]=0x2001e8e0
| ||||||| 0x0803d73e 407d ldrb r0, [r0, 0x15]
| ||||||| 0x0803d740 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x0803d744 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x0803d748 2349 ldr r1, [0x0803d7d8] ; [0x803d7d8:4]=0x2001e7f8 backlight_timer
| ||||||| 0x0803d74a 0880 strh r0, [r1]
| ||||||| 0x0803d74c dff89004 ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x0803d750 4078 ldrb r0, [r0, 1]
| ||||||| 0x0803d752 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x0803d756 dff88814 ldr.w r1, [0x0803dbe6] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x0803d75a 4870 strb r0, [r1, 1]
| ||||||| 0x0803d75c dff8540b ldr.w r0, [0x0803e2b8] ; [0x803e2b8:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803d760 0068 ldr r0, [r0]
| ||||||| 0x0803d762 02f06ff8 bl OSSemPost
| ========< 0x0803d766 01e0 b 0x803d76c
| |||||``-> 0x0803d768 0ff0cdfb bl func_4cf06_uses_ADC2_and_TIM3
\ `````---> 0x0803d76c 01bd pop {r0, pc}
/ (fcn) FuncWithAwfulLongSwitch 834
| Caller: Start
| FuncWithAwfulLongSwitch ();
| 0x08045954 00b5 push {lr}
| 0x08045956 83b0 sub sp, 0xc
| 0x08045958 dff84807 ldr.w r0, [func_460a8] ; [0x80460a8:4]=0xe0062000
| 0x0804595c 0079 ldrb r0, [r0, 4]
| 0x0804595e fb28 cmp r0, 0xfb ; 251
| ,=< 0x08045960 03d3 blo 0x804596a
| | 0x08045962 6420 movs r0, 0x64 ; 'd' ; 100
| | 0x08045964 8df80000 strb.w r0, [sp]
| ,==< 0x08045968 04e0 b 0x8045974
| |`-> 0x0804596a dff83807 ldr.w r0, [0x080460aa] ; [0x80460a8:4]=0xe0062000
| | 0x0804596e 0079 ldrb r0, [r0, 4]
| | 0x08045970 8df80000 strb.w r0, [sp]
| `--> 0x08045974 dff82c07 ldr.w r0, [func_460a8] ; [0x80460a8:4]=0xe0062000
| 0x08045978 4079 ldrb r0, [r0, 5]
| 0x0804597a ff28 cmp r0, 0xff ; 255
| ,=< 0x0804597c 03d3 blo 0x8045986
| | 0x0804597e 8c20 movs r0, 0x8c ; 140
| | 0x08045980 8df80400 strb.w r0, [sp, 4]
| ,==< 0x08045984 04e0 b 0x8045990
| |`-> 0x08045986 dff81c07 ldr.w r0, [0x080460aa] ; [0x80460a8:4]=0xe0062000
| | 0x0804598a 4079 ldrb r0, [r0, 5]
| | 0x0804598c 8df80400 strb.w r0, [sp, 4]
| `--> 0x08045990 9df80400 ldrb.w r0, [sp, 4]
| 0x08045994 9df80010 ldrb.w r1, [sp]
| 0x08045998 51fa80f0 uxtab r0, r1, r0
| 0x0804599c 0221 movs r1, 2 ; 2
| 0x0804599e 90fbf1f0 sdiv r0, r0, r1
| 0x080459a2 8df80200 strb.w r0, [sp, 2]
| 0x080459a6 9df80200 ldrb.w r0, [sp, 2]
| 0x080459aa 9df80010 ldrb.w r1, [sp]
| 0x080459ae 51fa80f0 uxtab r0, r1, r0
| 0x080459b2 0221 movs r1, 2 ; 2
| 0x080459b4 90fbf1f0 sdiv r0, r0, r1
| 0x080459b8 8df80100 strb.w r0, [sp, 1]
| 0x080459bc 9df80400 ldrb.w r0, [sp, 4]
| 0x080459c0 9df80210 ldrb.w r1, [sp, 2]
| 0x080459c4 51fa80f0 uxtab r0, r1, r0
| 0x080459c8 0221 movs r1, 2 ; 2
| 0x080459ca 90fbf1f0 sdiv r0, r0, r1
| 0x080459ce 8df80300 strb.w r0, [sp, 3]
| 0x080459d2 dff85008 ldr.w r0, [0x0804622a] ; [0x8046228:4]=0x2001e861
| 0x080459d6 0078 ldrb r0, [r0]
| 0x080459d8 0328 cmp r0, 3 ; 3
| ,=< 0x080459da 14d0 beq 0x8045a06
| | 0x080459dc dff84408 ldr.w r0, [0x08046228] ; [0x8046228:4]=0x2001e861
| | 0x080459e0 0078 ldrb r0, [r0]
| | 0x080459e2 0428 cmp r0, 4 ; 4
| ,==< 0x080459e4 0fd0 beq 0x8045a06
| || 0x080459e6 dff83c08 ldr.w r0, [0x0804622a] ; [0x8046228:4]=0x2001e861
| || 0x080459ea 0078 ldrb r0, [r0]
| || 0x080459ec 0628 cmp r0, 6 ; 6
| ,===< 0x080459ee 0ad0 beq 0x8045a06
| ||| 0x080459f0 dff83008 ldr.w r0, [0x08046228] ; [0x8046228:4]=0x2001e861
| ||| 0x080459f4 0078 ldrb r0, [r0]
| ||| 0x080459f6 0728 cmp r0, 7 ; 7
| ,====< 0x080459f8 05d0 beq 0x8045a06
| |||| 0x080459fa dff82808 ldr.w r0, [0x0804622a] ; [0x8046228:4]=0x2001e861
| |||| 0x080459fe 0078 ldrb r0, [r0]
| |||| 0x08045a00 0828 cmp r0, 8 ; 8
| ,=====< 0x08045a02 40f04781 bne.w 0x8045c94
| |````-> 0x08045a06 fff713ff bl func_45830
| | 0x08045a0a dff8dc06 ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| | 0x08045a0e 0078 ldrb r0, [r0]
| | 0x08045a10 0528 cmp r0, 5 ; 5
| | ,=< 0x08045a12 1fd1 bne 0x8045a54
| | | 0x08045a14 dff80808 ldr.w r0, [0x08046224] ; [0x8046224:4]=0x2001e893
| | | 0x08045a18 0078 ldrb r0, [r0]
| | | 0x08045a1a 9df80410 ldrb.w r1, [sp, 4]
| | | 0x08045a1e 8842 cmp r0, r1
| | ,==< 0x08045a20 04d3 blo 0x8045a2c
| | || 0x08045a22 dff80408 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| | || 0x08045a26 0021 movs r1, 0
| | || 0x08045a28 0170 strb r1, [r0]
| | ,===< 0x08045a2a 33e1 b 0x8045c94
| | |`--> 0x08045a2c dff8f807 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| | | | 0x08045a30 0078 ldrb r0, [r0]
| | | | 0x08045a32 411c adds r1, r0, 1
| | | | 0x08045a34 dff8f027 ldr.w r2, [0x0804622c] ; [0x804622c:4]=0x2001e862
| | | | 0x08045a38 1170 strb r1, [r2]
| | | | 0x08045a3a c0b2 uxtb r0, r0
| | | | 0x08045a3c 0528 cmp r0, 5 ; 5
| | |,==< 0x08045a3e c0f02981 blo.w 0x8045c94
| | ||| 0x08045a42 dff8a406 ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| | ||| 0x08045a46 0421 movs r1, 4 ; 4
| | ||| 0x08045a48 0170 strb r1, [r0]
| | ||| 0x08045a4a dff8dc07 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| | ||| 0x08045a4e 0021 movs r1, 0
| | ||| 0x08045a50 0170 strb r1, [r0]
| |,====< 0x08045a52 1fe1 b 0x8045c94
| ||||`-> 0x08045a54 dff89006 ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| |||| 0x08045a58 0078 ldrb r0, [r0]
| |||| 0x08045a5a 0428 cmp r0, 4 ; 4
| ||||,=< 0x08045a5c 3ad1 bne 0x8045ad4
| ||||| 0x08045a5e dff8c007 ldr.w r0, [0x08046226] ; [0x8046224:4]=0x2001e893
| ||||| 0x08045a62 0078 ldrb r0, [r0]
| ||||| 0x08045a64 9df80310 ldrb.w r1, [sp, 3]
| ||||| 0x08045a68 8842 cmp r0, r1
| ,======< 0x08045a6a 1fd3 blo 0x8045aac
| |||||| 0x08045a6c dff8b007 ldr.w r0, [0x08046224] ; [0x8046224:4]=0x2001e893
| |||||| 0x08045a70 0078 ldrb r0, [r0]
| |||||| 0x08045a72 9df80410 ldrb.w r1, [sp, 4]
| |||||| 0x08045a76 8842 cmp r0, r1
| ,=======< 0x08045a78 13d3 blo 0x8045aa2
| ||||||| 0x08045a7a dff8ac07 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045a7e 0078 ldrb r0, [r0]
| ||||||| 0x08045a80 411c adds r1, r0, 1
| ||||||| 0x08045a82 dff8a427 ldr.w r2, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045a86 1170 strb r1, [r2]
| ||||||| 0x08045a88 c0b2 uxtb r0, r0
| ||||||| 0x08045a8a 0528 cmp r0, 5 ; 5
| ========< 0x08045a8c c0f00281 blo.w 0x8045c94
| ||||||| 0x08045a90 dff85406 ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x08045a94 0521 movs r1, 5 ; 5
| ||||||| 0x08045a96 0170 strb r1, [r0]
| ||||||| 0x08045a98 dff88c07 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045a9c 0021 movs r1, 0
| ||||||| 0x08045a9e 0170 strb r1, [r0]
| ========< 0x08045aa0 f8e0 b 0x8045c94
| `-------> 0x08045aa2 dff88407 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| |||||| 0x08045aa6 0021 movs r1, 0
| |||||| 0x08045aa8 0170 strb r1, [r0]
| ,=======< 0x08045aaa f3e0 b 0x8045c94
| |`------> 0x08045aac dff87807 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| | ||||| 0x08045ab0 0078 ldrb r0, [r0]
| | ||||| 0x08045ab2 411c adds r1, r0, 1
| | ||||| 0x08045ab4 dff87027 ldr.w r2, [0x0804622c] ; [0x804622c:4]=0x2001e862
| | ||||| 0x08045ab8 1170 strb r1, [r2]
| | ||||| 0x08045aba c0b2 uxtb r0, r0
| | ||||| 0x08045abc 0528 cmp r0, 5 ; 5
| |,======< 0x08045abe c0f0e980 blo.w 0x8045c94
| ||||||| 0x08045ac2 dff82406 ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x08045ac6 0321 movs r1, 3 ; 3
| ||||||| 0x08045ac8 0170 strb r1, [r0]
| ||||||| 0x08045aca dff85c07 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045ace 0021 movs r1, 0
| ||||||| 0x08045ad0 0170 strb r1, [r0]
| ========< 0x08045ad2 dfe0 b 0x8045c94
| ||||||`-> 0x08045ad4 dff81006 ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| |||||| 0x08045ad8 0078 ldrb r0, [r0]
| |||||| 0x08045ada 0328 cmp r0, 3 ; 3
| ||||||,=< 0x08045adc 3ad1 bne 0x8045b54
| ||||||| 0x08045ade dff84007 ldr.w r0, [0x08046226] ; [0x8046224:4]=0x2001e893
| ||||||| 0x08045ae2 0078 ldrb r0, [r0]
| ||||||| 0x08045ae4 9df80210 ldrb.w r1, [sp, 2]
| ||||||| 0x08045ae8 8842 cmp r0, r1
| ========< 0x08045aea 1fd3 blo 0x8045b2c
| ||||||| 0x08045aec dff83007 ldr.w r0, [0x08046224] ; [0x8046224:4]=0x2001e893
| ||||||| 0x08045af0 0078 ldrb r0, [r0]
| ||||||| 0x08045af2 9df80310 ldrb.w r1, [sp, 3]
| ||||||| 0x08045af6 8842 cmp r0, r1
| ========< 0x08045af8 13d3 blo 0x8045b22
| ||||||| 0x08045afa dff82c07 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045afe 0078 ldrb r0, [r0]
| ||||||| 0x08045b00 411c adds r1, r0, 1
| ||||||| 0x08045b02 dff82427 ldr.w r2, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045b06 1170 strb r1, [r2]
| ||||||| 0x08045b08 c0b2 uxtb r0, r0
| ||||||| 0x08045b0a 0528 cmp r0, 5 ; 5
| ========< 0x08045b0c c0f0c280 blo.w 0x8045c94
| ||||||| 0x08045b10 dff8d405 ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x08045b14 0421 movs r1, 4 ; 4
| ||||||| 0x08045b16 0170 strb r1, [r0]
| ||||||| 0x08045b18 dff80c07 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045b1c 0021 movs r1, 0
| ||||||| 0x08045b1e 0170 strb r1, [r0]
| ========< 0x08045b20 b8e0 b 0x8045c94
| --------> 0x08045b22 dff80407 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045b26 0021 movs r1, 0
| ||||||| 0x08045b28 0170 strb r1, [r0]
| ========< 0x08045b2a b3e0 b 0x8045c94
| --------> 0x08045b2c dff8f806 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045b30 0078 ldrb r0, [r0]
| ||||||| 0x08045b32 411c adds r1, r0, 1
| ||||||| 0x08045b34 dff8f026 ldr.w r2, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045b38 1170 strb r1, [r2]
| ||||||| 0x08045b3a c0b2 uxtb r0, r0
| ||||||| 0x08045b3c 0528 cmp r0, 5 ; 5
| ========< 0x08045b3e c0f0a980 blo.w 0x8045c94
| ||||||| 0x08045b42 dff8a405 ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x08045b46 0221 movs r1, 2 ; 2
| ||||||| 0x08045b48 0170 strb r1, [r0]
| ||||||| 0x08045b4a dff8dc06 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045b4e 0021 movs r1, 0
| ||||||| 0x08045b50 0170 strb r1, [r0]
| ========< 0x08045b52 9fe0 b 0x8045c94
| ||||||`-> 0x08045b54 dff89005 ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| |||||| 0x08045b58 0078 ldrb r0, [r0]
| |||||| 0x08045b5a 0228 cmp r0, 2 ; 2
| ||||||,=< 0x08045b5c 39d1 bne 0x8045bd2
| ||||||| 0x08045b5e dff8c006 ldr.w r0, [0x08046226] ; [0x8046224:4]=0x2001e893
| ||||||| 0x08045b62 0078 ldrb r0, [r0]
| ||||||| 0x08045b64 9df80110 ldrb.w r1, [sp, 1]
| ||||||| 0x08045b68 8842 cmp r0, r1
| ========< 0x08045b6a 1fd3 blo 0x8045bac
| ||||||| 0x08045b6c dff8b006 ldr.w r0, [0x08046224] ; [0x8046224:4]=0x2001e893
| ||||||| 0x08045b70 0078 ldrb r0, [r0]
| ||||||| 0x08045b72 9df80210 ldrb.w r1, [sp, 2]
| ||||||| 0x08045b76 8842 cmp r0, r1
| ========< 0x08045b78 13d3 blo 0x8045ba2
| ||||||| 0x08045b7a dff8ac06 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045b7e 0078 ldrb r0, [r0]
| ||||||| 0x08045b80 411c adds r1, r0, 1
| ||||||| 0x08045b82 dff8a426 ldr.w r2, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045b86 1170 strb r1, [r2]
| ||||||| 0x08045b88 c0b2 uxtb r0, r0
| ||||||| 0x08045b8a 0528 cmp r0, 5 ; 5
| ========< 0x08045b8c c0f08280 blo.w 0x8045c94
| ||||||| 0x08045b90 dff85405 ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x08045b94 0321 movs r1, 3 ; 3
| ||||||| 0x08045b96 0170 strb r1, [r0]
| ||||||| 0x08045b98 dff88c06 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045b9c 0021 movs r1, 0
| ||||||| 0x08045b9e 0170 strb r1, [r0]
| ========< 0x08045ba0 78e0 b 0x8045c94
| --------> 0x08045ba2 dff88406 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045ba6 0021 movs r1, 0
| ||||||| 0x08045ba8 0170 strb r1, [r0]
| ========< 0x08045baa 73e0 b 0x8045c94
| --------> 0x08045bac dff87806 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045bb0 0078 ldrb r0, [r0]
| ||||||| 0x08045bb2 411c adds r1, r0, 1
| ||||||| 0x08045bb4 dff87026 ldr.w r2, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045bb8 1170 strb r1, [r2]
| ||||||| 0x08045bba c0b2 uxtb r0, r0
| ||||||| 0x08045bbc 0528 cmp r0, 5 ; 5
| ========< 0x08045bbe 69d3 blo 0x8045c94
| ||||||| 0x08045bc0 dff82405 ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x08045bc4 0121 movs r1, 1 ; 1
| ||||||| 0x08045bc6 0170 strb r1, [r0]
| ||||||| 0x08045bc8 dff85c06 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045bcc 0021 movs r1, 0
| ||||||| 0x08045bce 0170 strb r1, [r0]
| ========< 0x08045bd0 60e0 b 0x8045c94
| ||||||`-> 0x08045bd2 dff81405 ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| |||||| 0x08045bd6 0078 ldrb r0, [r0]
| |||||| 0x08045bd8 0128 cmp r0, 1 ; 1
| ||||||,=< 0x08045bda 38d1 bne 0x8045c4e
| ||||||| 0x08045bdc dff84006 ldr.w r0, [0x08046224] ; [0x8046224:4]=0x2001e893
| ||||||| 0x08045be0 0078 ldrb r0, [r0]
| ||||||| 0x08045be2 9df80010 ldrb.w r1, [sp]
| ||||||| 0x08045be6 8842 cmp r0, r1
| ========< 0x08045be8 1ed3 blo 0x8045c28
| ||||||| 0x08045bea dff83406 ldr.w r0, [0x08046226] ; [0x8046224:4]=0x2001e893
| ||||||| 0x08045bee 0078 ldrb r0, [r0]
| ||||||| 0x08045bf0 9df80110 ldrb.w r1, [sp, 1]
| ||||||| 0x08045bf4 8842 cmp r0, r1
| ========< 0x08045bf6 12d3 blo 0x8045c1e
| ||||||| 0x08045bf8 dff82c06 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045bfc 0078 ldrb r0, [r0]
| ||||||| 0x08045bfe 411c adds r1, r0, 1
| ||||||| 0x08045c00 dff82426 ldr.w r2, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045c04 1170 strb r1, [r2]
| ||||||| 0x08045c06 c0b2 uxtb r0, r0
| ||||||| 0x08045c08 0528 cmp r0, 5 ; 5
| ========< 0x08045c0a 43d3 blo 0x8045c94
| ||||||| 0x08045c0c dff8d804 ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x08045c10 0221 movs r1, 2 ; 2
| ||||||| 0x08045c12 0170 strb r1, [r0]
| ||||||| 0x08045c14 dff81006 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045c18 0021 movs r1, 0
| ||||||| 0x08045c1a 0170 strb r1, [r0]
| ========< 0x08045c1c 3ae0 b 0x8045c94
| --------> 0x08045c1e dff80806 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045c22 0021 movs r1, 0
| ||||||| 0x08045c24 0170 strb r1, [r0]
| ========< 0x08045c26 35e0 b 0x8045c94
| --------> 0x08045c28 dff8fc05 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045c2c 0078 ldrb r0, [r0]
| ||||||| 0x08045c2e 411c adds r1, r0, 1
| ||||||| 0x08045c30 dff8f425 ldr.w r2, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045c34 1170 strb r1, [r2]
| ||||||| 0x08045c36 c0b2 uxtb r0, r0
| ||||||| 0x08045c38 0528 cmp r0, 5 ; 5
| ========< 0x08045c3a 2bd3 blo 0x8045c94
| ||||||| 0x08045c3c dff8a804 ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x08045c40 0021 movs r1, 0
| ||||||| 0x08045c42 0170 strb r1, [r0]
| ||||||| 0x08045c44 dff8e005 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045c48 0021 movs r1, 0
| ||||||| 0x08045c4a 0170 strb r1, [r0]
| ========< 0x08045c4c 22e0 b 0x8045c94
| ||||||`-> 0x08045c4e dff89804 ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| |||||| 0x08045c52 0078 ldrb r0, [r0]
| |||||| 0x08045c54 0028 cmp r0, 0
| ||||||,=< 0x08045c56 1dd1 bne 0x8045c94
| ||||||| 0x08045c58 dff8c405 ldr.w r0, [0x08046224] ; [0x8046224:4]=0x2001e893
| ||||||| 0x08045c5c 0078 ldrb r0, [r0]
| ||||||| 0x08045c5e 9df80010 ldrb.w r1, [sp]
| ||||||| 0x08045c62 8842 cmp r0, r1
| ========< 0x08045c64 12d3 blo 0x8045c8c
| ||||||| 0x08045c66 dff8c005 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045c6a 0078 ldrb r0, [r0]
| ||||||| 0x08045c6c 411c adds r1, r0, 1
| ||||||| 0x08045c6e dff8b825 ldr.w r2, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045c72 1170 strb r1, [r2]
| ||||||| 0x08045c74 c0b2 uxtb r0, r0
| ||||||| 0x08045c76 0528 cmp r0, 5 ; 5
| ========< 0x08045c78 0cd3 blo 0x8045c94
| ||||||| 0x08045c7a dff86c04 ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x08045c7e 0121 movs r1, 1 ; 1
| ||||||| 0x08045c80 0170 strb r1, [r0]
| ||||||| 0x08045c82 dff8a405 ldr.w r0, [0x0804622e] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045c86 0021 movs r1, 0
| ||||||| 0x08045c88 0170 strb r1, [r0]
| ========< 0x08045c8a 03e0 b 0x8045c94
| --------> 0x08045c8c dff89805 ldr.w r0, [0x0804622c] ; [0x804622c:4]=0x2001e862
| ||||||| 0x08045c90 0021 movs r1, 0
| ||||||| 0x08045c92 0170 strb r1, [r0]
\ ```````-> 0x08045c94 07bd pop {r0, r1, r2, pc}
/ (fcn) SomethingWithLongpressSettingRadioStatus1 694
| Caller: Start
| SomethingWithLongpressSettingRadioStatus1 ();
| 0x08045d94 00b5 push {lr}
| 0x08045d96 87b0 sub sp, 0x1c
| 0x08045d98 c248 ldr r0, [0x080460a4] ; [0x80460a4:4]=0x2001c380
| 0x08045d9a 0078 ldrb r0, [r0]
| 0x08045d9c fb28 cmp r0, 0xfb ; 251
| ,=< 0x08045d9e 04d3 blo 0x8045daa
| | 0x08045da0 4ff4f870 mov.w r0, 0x1f0 ; 496
| | 0x08045da4 adf80000 strh.w r0, [sp]
| ,==< 0x08045da8 06e0 b 0x8045db8
| |`-> 0x08045daa be48 ldr r0, [0x080460a6] ; [0x80460a4:4]=0x2001c380
| | 0x08045dac 0078 ldrb r0, [r0]
| | 0x08045dae 4021 movs r1, 0x40 ; '@' ; 64
| | 0x08045db0 10fb01f0 smulbb r0, r0, r1
| | 0x08045db4 adf80000 strh.w r0, [sp]
| `--> 0x08045db8 ba48 ldr r0, [0x080460a4] ; [0x80460a4:4]=0x2001c380
| 0x08045dba 4078 ldrb r0, [r0, 1]
| 0x08045dbc ff28 cmp r0, 0xff ; 255
| ,=< 0x08045dbe 04d3 blo 0x8045dca
| | 0x08045dc0 41f61a40 movw r0, 0x1c1a
| | 0x08045dc4 adf81400 strh.w r0, [sp, 0x14]
| ,==< 0x08045dc8 06e0 b 0x8045dd8
| |`-> 0x08045dca b648 ldr r0, [0x080460a6] ; [0x80460a4:4]=0x2001c380
| | 0x08045dcc 4078 ldrb r0, [r0, 1]
| | 0x08045dce 4021 movs r1, 0x40 ; '@' ; 64
| | 0x08045dd0 10fb01f0 smulbb r0, r0, r1
| | 0x08045dd4 adf81400 strh.w r0, [sp, 0x14]
| `--> 0x08045dd8 bdf81400 ldrh.w r0, [sp, 0x14]
| 0x08045ddc bdf80010 ldrh.w r1, [sp]
| 0x08045de0 401a subs r0, r0, r1
| 0x08045de2 4000 lsls r0, r0, 1
| 0x08045de4 4021 movs r1, 0x40 ; '@' ; 64
| 0x08045de6 90fbf1f0 sdiv r0, r0, r1
| 0x08045dea bdf80010 ldrh.w r1, [sp]
| 0x08045dee 0818 adds r0, r1, r0
| 0x08045df0 adf80200 strh.w r0, [sp, 2]
| 0x08045df4 bdf81400 ldrh.w r0, [sp, 0x14]
| 0x08045df8 bdf80010 ldrh.w r1, [sp]
| 0x08045dfc 401a subs r0, r0, r1
| 0x08045dfe 0321 movs r1, 3 ; 3
| 0x08045e00 4843 muls r0, r1, r0
| 0x08045e02 4021 movs r1, 0x40 ; '@' ; 64
| 0x08045e04 90fbf1f0 sdiv r0, r0, r1
| 0x08045e08 bdf80210 ldrh.w r1, [sp, 2]
| 0x08045e0c 0818 adds r0, r1, r0
| 0x08045e0e adf80400 strh.w r0, [sp, 4]
| 0x08045e12 bdf81400 ldrh.w r0, [sp, 0x14]
| 0x08045e16 bdf80010 ldrh.w r1, [sp]
| 0x08045e1a 401a subs r0, r0, r1
| 0x08045e1c 0521 movs r1, 5 ; 5
| 0x08045e1e 4843 muls r0, r1, r0
| 0x08045e20 4021 movs r1, 0x40 ; '@' ; 64
| 0x08045e22 90fbf1f0 sdiv r0, r0, r1
| 0x08045e26 bdf80410 ldrh.w r1, [sp, 4]
| 0x08045e2a 0818 adds r0, r1, r0
| 0x08045e2c adf80600 strh.w r0, [sp, 6]
| 0x08045e30 bdf81400 ldrh.w r0, [sp, 0x14]
| 0x08045e34 bdf80010 ldrh.w r1, [sp]
| 0x08045e38 401a subs r0, r0, r1
| 0x08045e3a 0621 movs r1, 6 ; 6
| 0x08045e3c 4843 muls r0, r1, r0
| 0x08045e3e 4021 movs r1, 0x40 ; '@' ; 64
| 0x08045e40 90fbf1f0 sdiv r0, r0, r1
| 0x08045e44 bdf80610 ldrh.w r1, [sp, 6]
| 0x08045e48 0818 adds r0, r1, r0
| 0x08045e4a adf80800 strh.w r0, [sp, 8]
| 0x08045e4e bdf81400 ldrh.w r0, [sp, 0x14]
| 0x08045e52 bdf80010 ldrh.w r1, [sp]
| 0x08045e56 401a subs r0, r0, r1
| 0x08045e58 c000 lsls r0, r0, 3
| 0x08045e5a 4021 movs r1, 0x40 ; '@' ; 64
| 0x08045e5c 90fbf1f0 sdiv r0, r0, r1
| 0x08045e60 bdf80810 ldrh.w r1, [sp, 8]
| 0x08045e64 0818 adds r0, r1, r0
| 0x08045e66 adf80a00 strh.w r0, [sp, 0xa]
| 0x08045e6a bdf81400 ldrh.w r0, [sp, 0x14]
| 0x08045e6e bdf80010 ldrh.w r1, [sp]
| 0x08045e72 401a subs r0, r0, r1
| 0x08045e74 c000 lsls r0, r0, 3
| 0x08045e76 4021 movs r1, 0x40 ; '@' ; 64
| 0x08045e78 90fbf1f0 sdiv r0, r0, r1
| 0x08045e7c bdf80a10 ldrh.w r1, [sp, 0xa]
| 0x08045e80 0818 adds r0, r1, r0
| 0x08045e82 adf80c00 strh.w r0, [sp, 0xc]
| 0x08045e86 bdf81400 ldrh.w r0, [sp, 0x14]
| 0x08045e8a bdf80010 ldrh.w r1, [sp]
| 0x08045e8e 401a subs r0, r0, r1
| 0x08045e90 c000 lsls r0, r0, 3
| 0x08045e92 4021 movs r1, 0x40 ; '@' ; 64
| 0x08045e94 90fbf1f0 sdiv r0, r0, r1
| 0x08045e98 bdf80c10 ldrh.w r1, [sp, 0xc]
| 0x08045e9c 0818 adds r0, r1, r0
| 0x08045e9e adf80e00 strh.w r0, [sp, 0xe]
| 0x08045ea2 bdf81400 ldrh.w r0, [sp, 0x14]
| 0x08045ea6 bdf80010 ldrh.w r1, [sp]
| 0x08045eaa 401a subs r0, r0, r1
| 0x08045eac c000 lsls r0, r0, 3
| 0x08045eae 4021 movs r1, 0x40 ; '@' ; 64
| 0x08045eb0 90fbf1f0 sdiv r0, r0, r1
| 0x08045eb4 bdf80e10 ldrh.w r1, [sp, 0xe]
| 0x08045eb8 0818 adds r0, r1, r0
| 0x08045eba adf81000 strh.w r0, [sp, 0x10]
| 0x08045ebe bdf81400 ldrh.w r0, [sp, 0x14]
| 0x08045ec2 bdf80010 ldrh.w r1, [sp]
| 0x08045ec6 401a subs r0, r0, r1
| 0x08045ec8 c000 lsls r0, r0, 3
| 0x08045eca 4021 movs r1, 0x40 ; '@' ; 64
| 0x08045ecc 90fbf1f0 sdiv r0, r0, r1
| 0x08045ed0 bdf81010 ldrh.w r1, [sp, 0x10]
| 0x08045ed4 0818 adds r0, r1, r0
| 0x08045ed6 adf81200 strh.w r0, [sp, 0x12]
| 0x08045eda fff7dffe bl CalledFromLongpressThing
| 0x08045ede dff86403 ldr.w r0, [0x0804624a] ; [0x8046248:4]=0x2001de78 struct_channel_info2
| 0x08045ee2 0078 ldrb r0, [r0]
| 0x08045ee4 0006 lsls r0, r0, 0x18
| ,=< 0x08045ee6 00f1ae80 bmi.w 0x8046046
| | 0x08045eea dff85c03 ldr.w r0, [0x0804624e] ; [0x804624c:4]=0x2001e5ec base_for_longpress_struct
| | 0x08045eee 0079 ldrb r0, [r0, 4]
| | 0x08045ef0 c0f30010 ubfx r0, r0, 4, 1
| | 0x08045ef4 c007 lsls r0, r0, 0x1f
| ,==< 0x08045ef6 05d5 bpl 0x8045f04
| || 0x08045ef8 dff84803 ldr.w r0, [0x08046248] ; [0x8046248:4]=0x2001de78 struct_channel_info2
| || 0x08045efc 4078 ldrb r0, [r0, 1]
| || 0x08045efe e021 movs r1, 0xe0 ; 224
| || 0x08045f00 0842 tst r0, r1
| ,===< 0x08045f02 2ad0 beq 0x8045f5a
| |`--> 0x08045f04 dff83403 ldr.w r0, [0x08046240] ; [0x8046240:4]=0x2001e8e2
| | | 0x08045f08 4078 ldrb r0, [r0, 1]
| | | 0x08045f0a c0f34000 ubfx r0, r0, 1, 1
| | | 0x08045f0e c007 lsls r0, r0, 0x1f
| |,==< 0x08045f10 1fd5 bpl 0x8045f52
| ||| 0x08045f12 dff82403 ldr.w r0, [0x0804623e] ; [0x804623c:4]=0x2001e600 q_struct_1
| ||| 0x08045f16 0088 ldrh r0, [r0]
| ||| 0x08045f18 401c adds r0, r0, 1
| ||| 0x08045f1a dff81c13 ldr.w r1, [0x0804623e] ; [0x804623c:4]=0x2001e600 q_struct_1
| ||| 0x08045f1e 0880 strh r0, [r1]
| ||| 0x08045f20 80b2 uxth r0, r0
| ||| 0x08045f22 c828 cmp r0, 0xc8 ; 200
| ,====< 0x08045f24 15d3 blo 0x8045f52
| |||| 0x08045f26 dff81403 ldr.w r0, [0x08046242] ; [0x8046240:4]=0x2001e8e2
| |||| 0x08045f2a 4078 ldrb r0, [r0, 1]
| |||| 0x08045f2c 10f0fd00 ands r0, r0, 0xfd
| |||| 0x08045f30 c249 ldr r1, [0x0804623c] ; [0x804623c:4]=0x2001e600 q_struct_1
| |||| 0x08045f32 4870 strb r0, [r1, 1]
| |||| 0x08045f34 c048 ldr r0, [0x08046238] ; [0x8046238:4]=0x2001e798
| |||| 0x08045f36 0021 movs r1, 0
| |||| 0x08045f38 0180 strh r1, [r0]
| |||| 0x08045f3a c448 ldr r0, [0x0804624e] ; [0x804624c:4]=0x2001e5ec base_for_longpress_struct
| |||| 0x08045f3c 8078 ldrb r0, [r0, 2]
| |||| 0x08045f3e 50f04000 orrs r0, r0, 0x40
| |||| 0x08045f42 c249 ldr r1, [0x0804624e] ; [0x804624c:4]=0x2001e5ec base_for_longpress_struct
| |||| 0x08045f44 8870 strb r0, [r1, 2]
| |||| 0x08045f46 bf48 ldr r0, [0x08046246] ; [0x8046244:4]=0x2001e5f0 radio_status_1
| |||| 0x08045f48 0078 ldrb r0, [r0]
| |||| 0x08045f4a 50f08000 orrs r0, r0, 0x80
| |||| 0x08045f4e bd49 ldr r1, [0x08046246] ; [0x8046244:4]=0x2001e5f0 radio_status_1
| |||| 0x08045f50 0870 strb r0, [r1]
| `-`--> 0x08045f52 bb48 ldr r0, [0x08046242] ; [0x8046240:4]=0x2001e8e2
| | | 0x08045f54 0021 movs r1, 0
| | | 0x08045f56 0170 strb r1, [r0]
| |,==< 0x08045f58 75e0 b 0x8046046
| `---> 0x08045f5a b948 ldr r0, [0x08046242] ; [0x8046240:4]=0x2001e8e2
| || 0x08045f5c 0078 ldrb r0, [r0]
| || 0x08045f5e c928 cmp r0, 0xc9 ; 201
| ,===< 0x08045f60 05d2 bhs 0x8045f6e
| ||| 0x08045f62 b748 ldr r0, [0x08046242] ; [0x8046240:4]=0x2001e8e2
| ||| 0x08045f64 0078 ldrb r0, [r0]
| ||| 0x08045f66 401c adds r0, r0, 1
| ||| 0x08045f68 b549 ldr r1, [0x08046240] ; [0x8046240:4]=0x2001e8e2
| ||| 0x08045f6a 0870 strb r0, [r1]
| ,====< 0x08045f6c 6be0 b 0x8046046
| |`---> 0x08045f6e a648 ldr r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| | || 0x08045f70 c07a ldrb r0, [r0, 0xb]
| | || 0x08045f72 401e subs r0, r0, 1
| | || 0x08045f74 c0b2 uxtb r0, r0
| | || 0x08045f76 0a28 cmp r0, 0xa ; 10
| |,===< 0x08045f78 0cd2 bhs 0x8045f94
| |||| 0x08045f7a a348 ldr r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| |||| 0x08045f7c c07a ldrb r0, [r0, 0xb]
| |||| 0x08045f7e 00a9 add r1, sp, 0
| |||| 0x08045f80 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| |||| 0x08045f84 a049 ldr r1, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| |||| 0x08045f86 c97a ldrb r1, [r1, 0xb]
| |||| 0x08045f88 00aa add r2, sp, 0
| |||| 0x08045f8a 12eb4101 adds.w r1, r2, r1, lsl 1
| |||| 0x08045f8e 31f8021c ldrh r1, [r1, -0x2]
| ,=====< 0x08045f92 03e0 b 0x8045f9c
| ||`---> 0x08045f94 bdf80600 ldrh.w r0, [sp, 6]
| || || 0x08045f98 bdf80410 ldrh.w r1, [sp, 4]
| `-----> 0x08045f9c a74a ldr r2, [0x0804623c] ; [0x804623c:4]=0x2001e600 q_struct_1
| | || 0x08045f9e 5278 ldrb r2, [r2, 1]
| | || 0x08045fa0 c2f34002 ubfx r2, r2, 1, 1
| | || 0x08045fa4 d207 lsls r2, r2, 0x1f
| |,===< 0x08045fa6 27d4 bmi 0x8045ff8
| |||| 0x08045fa8 a149 ldr r1, [0x08046230] ; [0x8046230:4]=0x2001e796
| |||| 0x08045faa 0988 ldrh r1, [r1]
| |||| 0x08045fac 80b2 uxth r0, r0
| |||| 0x08045fae 8142 cmp r1, r0
| ,=====< 0x08045fb0 1ed3 blo 0x8045ff0
| ||||| 0x08045fb2 a148 ldr r0, [0x0804623a] ; [0x8046238:4]=0x2001e798
| ||||| 0x08045fb4 0088 ldrh r0, [r0]
| ||||| 0x08045fb6 401c adds r0, r0, 1
| ||||| 0x08045fb8 9f49 ldr r1, [0x08046238] ; [0x8046238:4]=0x2001e798
| ||||| 0x08045fba 0880 strh r0, [r1]
| ||||| 0x08045fbc 9e48 ldr r0, [0x08046238] ; [0x8046238:4]=0x2001e798
| ||||| 0x08045fbe 0088 ldrh r0, [r0]
| ||||| 0x08045fc0 0428 cmp r0, 4 ; 4
| ,======< 0x08045fc2 40d3 blo 0x8046046
| |||||| 0x08045fc4 9d48 ldr r0, [0x0804623c] ; [0x804623c:4]=0x2001e600 q_struct_1
| |||||| 0x08045fc6 4078 ldrb r0, [r0, 1]
| |||||| 0x08045fc8 50f00200 orrs r0, r0, 2
| |||||| 0x08045fcc 9b49 ldr r1, [0x0804623c] ; [0x804623c:4]=0x2001e600 q_struct_1
| |||||| 0x08045fce 4870 strb r0, [r1, 1]
| |||||| 0x08045fd0 9948 ldr r0, [0x08046238] ; [0x8046238:4]=0x2001e798
| |||||| 0x08045fd2 0021 movs r1, 0
| |||||| 0x08045fd4 0180 strh r1, [r0]
| |||||| 0x08045fd6 9d48 ldr r0, [0x0804624e] ; [0x804624c:4]=0x2001e5ec base_for_longpress_struct
| |||||| 0x08045fd8 8078 ldrb r0, [r0, 2]
| |||||| 0x08045fda 50f02000 orrs r0, r0, 0x20
| |||||| 0x08045fde 9b49 ldr r1, [0x0804624e] ; [0x804624c:4]=0x2001e5ec base_for_longpress_struct
| |||||| 0x08045fe0 8870 strb r0, [r1, 2]
| |||||| 0x08045fe2 9848 ldr r0, [0x08046246] ; [0x8046244:4]=0x2001e5f0 radio_status_1
| |||||| 0x08045fe4 0078 ldrb r0, [r0]
| |||||| 0x08045fe6 50f08000 orrs r0, r0, 0x80
| |||||| 0x08045fea 9649 ldr r1, [0x08046246] ; [0x8046244:4]=0x2001e5f0 radio_status_1
| |||||| 0x08045fec 0870 strb r0, [r1]
| ,=======< 0x08045fee 2ae0 b 0x8046046
| ||`-----> 0x08045ff0 9148 ldr r0, [0x08046238] ; [0x8046238:4]=0x2001e798
| || |||| 0x08045ff2 0021 movs r1, 0
| || |||| 0x08045ff4 0180 strh r1, [r0]
| ||,=====< 0x08045ff6 26e0 b 0x8046046
| ||||`---> 0x08045ff8 8d48 ldr r0, [0x08046230] ; [0x8046230:4]=0x2001e796
| |||| || 0x08045ffa 0088 ldrh r0, [r0]
| |||| || 0x08045ffc 89b2 uxth r1, r1
| |||| || 0x08045ffe 8842 cmp r0, r1
| ||||,===< 0x08046000 03d3 blo 0x804600a
| ||||||| 0x08046002 8d48 ldr r0, [0x0804623a] ; [0x8046238:4]=0x2001e798
| ||||||| 0x08046004 0021 movs r1, 0
| ||||||| 0x08046006 0180 strh r1, [r0]
| ========< 0x08046008 1de0 b 0x8046046
| ||||`---> 0x0804600a 8b48 ldr r0, [0x0804623a] ; [0x8046238:4]=0x2001e798
| |||| || 0x0804600c 0088 ldrh r0, [r0]
| |||| || 0x0804600e 401c adds r0, r0, 1
| |||| || 0x08046010 8949 ldr r1, [0x08046238] ; [0x8046238:4]=0x2001e798
| |||| || 0x08046012 0880 strh r0, [r1]
| |||| || 0x08046014 80b2 uxth r0, r0
| |||| || 0x08046016 b0f52f7f cmp.w r0, 0x2bc ; 700
| ||||,===< 0x0804601a 14d3 blo 0x8046046
| ||||||| 0x0804601c 8748 ldr r0, [0x0804623c] ; [0x804623c:4]=0x2001e600 q_struct_1
| ||||||| 0x0804601e 4078 ldrb r0, [r0, 1]
| ||||||| 0x08046020 10f0fd00 ands r0, r0, 0xfd
| ||||||| 0x08046024 8549 ldr r1, [0x0804623c] ; [0x804623c:4]=0x2001e600 q_struct_1
| ||||||| 0x08046026 4870 strb r0, [r1, 1]
| ||||||| 0x08046028 8348 ldr r0, [0x08046238] ; [0x8046238:4]=0x2001e798
| ||||||| 0x0804602a 0021 movs r1, 0
| ||||||| 0x0804602c 0180 strh r1, [r0]
| ||||||| 0x0804602e 8748 ldr r0, [0x0804624e] ; [0x804624c:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x08046030 8078 ldrb r0, [r0, 2]
| ||||||| 0x08046032 50f04000 orrs r0, r0, 0x40
| ||||||| 0x08046036 8549 ldr r1, [0x0804624e] ; [0x804624c:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x08046038 8870 strb r0, [r1, 2]
| ||||||| 0x0804603a 8248 ldr r0, [0x08046246] ; [0x8046244:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0804603c 0078 ldrb r0, [r0]
| ||||||| 0x0804603e 50f08000 orrs r0, r0, 0x80
| ||||||| 0x08046042 8049 ldr r1, [0x08046246] ; [0x8046244:4]=0x2001e5f0 radio_status_1
| ||||||| 0x08046044 0870 strb r0, [r1]
| ```````-> 0x08046046 07b0 add sp, 0x1c
\ 0x08046048 00bd pop {pc}
/ (fcn) SomethingWithGPIOC_and_Backlight_Timer 394
| Caller: Start
| SomethingWithGPIOC_and_Backlight_Timer ();
| 0x0803d5e4 80b5 push {r7, lr}
| 0x0803d5e6 7d48 ldr r0, [0x0803d7de] ; [0x803d7dc:4]=0x2001de78 struct_channel_info2
| 0x0803d5e8 0078 ldrb r0, [r0]
| 0x0803d5ea 10f00300 ands r0, r0, 3
| 0x0803d5ee 0128 cmp r0, 1 ; 1
| ,=< 0x0803d5f0 40f0ba80 bne.w 0x803d768
| | 0x0803d5f4 dff8e805 ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| | 0x0803d5f8 4078 ldrb r0, [r0, 1]
| | 0x0803d5fa c0f34000 ubfx r0, r0, 1, 1
| | 0x0803d5fe c007 lsls r0, r0, 0x1f
| ,==< 0x0803d600 40f1b280 bpl.w 0x803d768
| || 0x0803d604 7648 ldr r0, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| || 0x0803d606 0078 ldrb r0, [r0]
| || 0x0803d608 c007 lsls r0, r0, 0x1f
| ,===< 0x0803d60a 02d5 bpl 0x803d612
| ||| 0x0803d60c 0ff03cfc bl func_4ce88
| ,====< 0x0803d610 01e0 b 0x803d616
| |`---> 0x0803d612 0ff078fc bl func_4cf06_uses_ADC2_and_TIM3
| `----> 0x0803d616 dff86c06 ldr.w r0, [0x0803dc8a] ; [0x803dc88:4]=0x2001e8ab
| || 0x0803d61a 0078 ldrb r0, [r0]
| || 0x0803d61c 801f subs r0, r0, 6
| || 0x0803d61e c0b2 uxtb r0, r0
| || 0x0803d620 4a28 cmp r0, 0x4a ; 'J' ; 74
| ,===< 0x0803d622 c0f0a380 blo.w 0x803d76c
| ||| 0x0803d626 6e48 ldr r0, [0x0803d7e2] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||| 0x0803d628 0078 ldrb r0, [r0]
| ||| 0x0803d62a c007 lsls r0, r0, 0x1f
| ,====< 0x0803d62c 2ed5 bpl 0x803d68c
| |||| 0x0803d62e 6b48 ldr r0, [0x0803d7de] ; [0x803d7dc:4]=0x2001de78 struct_channel_info2
| |||| 0x0803d630 008b ldrh r0, [r0, 0x18]
| |||| 0x0803d632 4ff6ff71 movw r1, 0xffff
| |||| 0x0803d636 8842 cmp r0, r1
| ,=====< 0x0803d638 28d1 bne 0x803d68c
| ||||| 0x0803d63a 6948 ldr r0, [0x0803d7e2] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||||| 0x0803d63c 0078 ldrb r0, [r0]
| ||||| 0x0803d63e 50f08000 orrs r0, r0, 0x80
| ||||| 0x0803d642 6749 ldr r1, [0x0803d7e2] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||||| 0x0803d644 0870 strb r0, [r1]
| ||||| 0x0803d646 dff89805 ldr.w r0, [0x0803dbe6] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||||| 0x0803d64a 4078 ldrb r0, [r0, 1]
| ||||| 0x0803d64c c0f34010 ubfx r0, r0, 5, 1
| ||||| 0x0803d650 c007 lsls r0, r0, 0x1f
| ,======< 0x0803d652 00f18b80 bmi.w 0x803d76c
| |||||| 0x0803d656 4021 movs r1, 0x40 ; '@' ; 64
| |||||| 0x0803d658 5e48 ldr r0, [0x0803d7d4] ; [0x803d7d4:4]=0x40020800 io_GPIOC
| |||||| 0x0803d65a eef7d6f8 bl GPIO_SetBits
| |||||| 0x0803d65e dff8f009 ldr.w r0, [0x0803e056] ; [0x803e054:4]=0x2001e8e0
| |||||| 0x0803d662 407d ldrb r0, [r0, 0x15]
| |||||| 0x0803d664 4ff4fa71 mov.w r1, 0x1f4 ; 500
| |||||| 0x0803d668 10fb01f0 smulbb r0, r0, r1
| |||||| 0x0803d66c 5a49 ldr r1, [0x0803d7d8] ; [0x803d7d8:4]=0x2001e7f8 backlight_timer
| |||||| 0x0803d66e 0880 strh r0, [r1]
| |||||| 0x0803d670 dff86c05 ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| |||||| 0x0803d674 4078 ldrb r0, [r0, 1]
| |||||| 0x0803d676 50f02000 orrs r0, r0, 0x20
| |||||| 0x0803d67a dff86415 ldr.w r1, [0x0803dbe6] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| |||||| 0x0803d67e 4870 strb r0, [r1, 1]
| |||||| 0x0803d680 dff8300c ldr.w r0, [0x0803e2b8] ; [0x803e2b8:4]=0x2001de78 struct_channel_info2
| |||||| 0x0803d684 0068 ldr r0, [r0]
| |||||| 0x0803d686 02f0ddf8 bl OSSemPost
| ,=======< 0x0803d68a 6fe0 b 0x803d76c
| ||``----> 0x0803d68c 5448 ldr r0, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| || ||| 0x0803d68e 0078 ldrb r0, [r0]
| || ||| 0x0803d690 c007 lsls r0, r0, 0x1f
| || ,====< 0x0803d692 0bd5 bpl 0x803d6ac
| || |||| 0x0803d694 5148 ldr r0, [0x0803d7dc] ; [0x803d7dc:4]=0x2001de78 struct_channel_info2
| || |||| 0x0803d696 008b ldrh r0, [r0, 0x18]
| || |||| 0x0803d698 4ff6ff71 movw r1, 0xffff
| || |||| 0x0803d69c 8842 cmp r0, r1
| ||,=====< 0x0803d69e 05d0 beq 0x803d6ac
| ||||||| 0x0803d6a0 5248 ldr r0, [0x0803d7ec] ; [0x803d7ec:4]=0x2001e614
| ||||||| 0x0803d6a2 0078 ldrb r0, [r0]
| ||||||| 0x0803d6a4 c0f3c000 ubfx r0, r0, 3, 1
| ||||||| 0x0803d6a8 c007 lsls r0, r0, 0x1f
| ========< 0x0803d6aa 0dd4 bmi 0x803d6c8
| ||``----> 0x0803d6ac dff8a409 ldr.w r0, [func_3e058] ; [0x803e058:4]=0x4895b580
| || ||| 0x0803d6b0 0078 ldrb r0, [r0]
| || ||| 0x0803d6b2 0128 cmp r0, 1 ; 1
| || ,====< 0x0803d6b4 08d0 beq 0x803d6c8
| || |||| 0x0803d6b6 4a48 ldr r0, [0x0803d7e2] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| || |||| 0x0803d6b8 0078 ldrb r0, [r0]
| || |||| 0x0803d6ba c007 lsls r0, r0, 0x1f
| ||,=====< 0x0803d6bc 2cd5 bpl 0x803d718
| ||||||| 0x0803d6be dff89409 ldr.w r0, [0x0803e05a] ; [0x803e058:4]=0x4895b580
| ||||||| 0x0803d6c2 0078 ldrb r0, [r0]
| ||||||| 0x0803d6c4 0228 cmp r0, 2 ; 2
| ========< 0x0803d6c6 27d1 bne 0x803d718
| ---`----> 0x0803d6c8 4548 ldr r0, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||| ||| 0x0803d6ca 0078 ldrb r0, [r0]
| ||| ||| 0x0803d6cc 50f08000 orrs r0, r0, 0x80
| ||| ||| 0x0803d6d0 4349 ldr r1, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||| ||| 0x0803d6d2 0870 strb r0, [r1]
| ||| ||| 0x0803d6d4 dff80805 ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||| ||| 0x0803d6d8 4078 ldrb r0, [r0, 1]
| ||| ||| 0x0803d6da c0f34010 ubfx r0, r0, 5, 1
| ||| ||| 0x0803d6de c007 lsls r0, r0, 0x1f
| |||,====< 0x0803d6e0 44d4 bmi 0x803d76c
| ||||||| 0x0803d6e2 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0803d6e4 3b48 ldr r0, [0x0803d7d4] ; [0x803d7d4:4]=0x40020800 io_GPIOC
| ||||||| 0x0803d6e6 eef790f8 bl GPIO_SetBits
| ||||||| 0x0803d6ea dff86409 ldr.w r0, [0x0803e056] ; [0x803e054:4]=0x2001e8e0
| ||||||| 0x0803d6ee 407d ldrb r0, [r0, 0x15]
| ||||||| 0x0803d6f0 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x0803d6f4 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x0803d6f8 3749 ldr r1, [0x0803d7d8] ; [0x803d7d8:4]=0x2001e7f8 backlight_timer
| ||||||| 0x0803d6fa 0880 strh r0, [r1]
| ||||||| 0x0803d6fc dff8e004 ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x0803d700 4078 ldrb r0, [r0, 1]
| ||||||| 0x0803d702 50f02000 orrs r0, r0, 0x20
| ||||||| 0x0803d706 dff8d814 ldr.w r1, [0x0803dbe6] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x0803d70a 4870 strb r0, [r1, 1]
| ||||||| 0x0803d70c dff8a40b ldr.w r0, [0x0803e2b8] ; [0x803e2b8:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803d710 0068 ldr r0, [r0]
| ||||||| 0x0803d712 02f097f8 bl OSSemPost
| ========< 0x0803d716 29e0 b 0x803d76c
| --`-----> 0x0803d718 3148 ldr r0, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| || |||| 0x0803d71a 0078 ldrb r0, [r0]
| || |||| 0x0803d71c 10f07f00 ands r0, r0, 0x7f
| || |||| 0x0803d720 2f49 ldr r1, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| || |||| 0x0803d722 0870 strb r0, [r1]
| || |||| 0x0803d724 dff8b804 ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| || |||| 0x0803d728 4078 ldrb r0, [r0, 1]
| || |||| 0x0803d72a c0f34010 ubfx r0, r0, 5, 1
| || |||| 0x0803d72e c007 lsls r0, r0, 0x1f
| ||,=====< 0x0803d730 1cd5 bpl 0x803d76c
| ||||||| 0x0803d732 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0803d734 2748 ldr r0, [0x0803d7d4] ; [0x803d7d4:4]=0x40020800 io_GPIOC
| ||||||| 0x0803d736 eef768f8 bl GPIO_SetBits
| ||||||| 0x0803d73a dff81409 ldr.w r0, [0x0803e056] ; [0x803e054:4]=0x2001e8e0
| ||||||| 0x0803d73e 407d ldrb r0, [r0, 0x15]
| ||||||| 0x0803d740 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x0803d744 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x0803d748 2349 ldr r1, [0x0803d7d8] ; [0x803d7d8:4]=0x2001e7f8 backlight_timer
| ||||||| 0x0803d74a 0880 strh r0, [r1]
| ||||||| 0x0803d74c dff89004 ldr.w r0, [0x0803dbe4] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x0803d750 4078 ldrb r0, [r0, 1]
| ||||||| 0x0803d752 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x0803d756 dff88814 ldr.w r1, [0x0803dbe6] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x0803d75a 4870 strb r0, [r1, 1]
| ||||||| 0x0803d75c dff8540b ldr.w r0, [0x0803e2b8] ; [0x803e2b8:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803d760 0068 ldr r0, [r0]
| ||||||| 0x0803d762 02f06ff8 bl OSSemPost
| ========< 0x0803d766 01e0 b 0x803d76c
| |||||``-> 0x0803d768 0ff0cdfb bl func_4cf06_uses_ADC2_and_TIM3
\ `````---> 0x0803d76c 01bd pop {r0, pc}
/ (fcn) SomethingWithRadioStatus_4d1b8 742
| Caller: Start
| SomethingWithRadioStatus_4d1b8 ();
| 0x0804d1b8 10b5 push {r4, lr}
| 0x0804d1ba dff81003 ldr.w r0, [0x0804d4d2] ; [0x804d4d0:4]=0x2001c180
| 0x0804d1be 0078 ldrb r0, [r0]
| 0x0804d1c0 3028 cmp r0, 0x30 ; '0' ; 48
| ,=< 0x0804d1c2 80f06b81 bhs.w 0x804d49c
| | 0x0804d1c6 dff83803 ldr.w r0, [0x0804d506] ; [0x804d504:4]=0x2001e5f0 radio_status_1
| | 0x0804d1ca 0078 ldrb r0, [r0]
| | 0x0804d1cc 10f00300 ands r0, r0, 3
| | 0x0804d1d0 0128 cmp r0, 1 ; 1
| ,==< 0x0804d1d2 40f05481 bne.w 0x804d47e
| || 0x0804d1d6 dff82c03 ldr.w r0, [0x0804d50a] ; [0x804d508:4]=0x2001e85a
| || 0x0804d1da 4078 ldrb r0, [r0, 1]
| || 0x0804d1dc c0f34000 ubfx r0, r0, 1, 1
| || 0x0804d1e0 c007 lsls r0, r0, 0x1f
| ,===< 0x0804d1e2 40f14c81 bpl.w 0x804d47e
| ||| 0x0804d1e6 ae48 ldr r0, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| ||| 0x0804d1e8 0078 ldrb r0, [r0]
| ||| 0x0804d1ea c0f3c000 ubfx r0, r0, 3, 1
| ||| 0x0804d1ee c007 lsls r0, r0, 0x1f
| ,====< 0x0804d1f0 41d5 bpl 0x804d276
| |||| 0x0804d1f2 ab48 ldr r0, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| |||| 0x0804d1f4 0078 ldrb r0, [r0]
| |||| 0x0804d1f6 10f0f700 ands r0, r0, 0xf7
| |||| 0x0804d1fa a949 ldr r1, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| |||| 0x0804d1fc 0870 strb r0, [r1]
| |||| 0x0804d1fe a848 ldr r0, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| |||| 0x0804d200 0078 ldrb r0, [r0]
| |||| 0x0804d202 10f0bf00 ands r0, r0, 0xbf
| |||| 0x0804d206 a649 ldr r1, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| |||| 0x0804d208 0870 strb r0, [r1]
| |||| 0x0804d20a aa48 ldr r0, [0x0804d4b6] ; [0x804d4b4:4]=0x2001e4c4
| |||| 0x0804d20c 0078 ldrb r0, [r0]
| |||| 0x0804d20e 1e28 cmp r0, 0x1e ; 30
| ,=====< 0x0804d210 27d2 bhs 0x804d262
| ||||| 0x0804d212 a848 ldr r0, [0x0804d4b6] ; [0x804d4b4:4]=0x2001e4c4
| ||||| 0x0804d214 0078 ldrb r0, [r0]
| ||||| 0x0804d216 0221 movs r1, 2 ; 2
| ||||| 0x0804d218 90fbf1f2 sdiv r2, r0, r1
| ||||| 0x0804d21c 02fb1102 mls r2, r2, r1, r0
| ||||| 0x0804d220 002a cmp r2, 0
| ,======< 0x0804d222 14d0 beq 0x804d24e
| |||||| 0x0804d224 a348 ldr r0, [0x0804d4b4] ; [0x804d4b4:4]=0x2001e4c4
| |||||| 0x0804d226 0078 ldrb r0, [r0]
| |||||| 0x0804d228 0221 movs r1, 2 ; 2
| |||||| 0x0804d22a 90fbf1f0 sdiv r0, r0, r1
| |||||| 0x0804d22e a149 ldr r1, [0x0804d4b6] ; [0x804d4b4:4]=0x2001e4c4
| |||||| 0x0804d230 4018 adds r0, r0, r1
| |||||| 0x0804d232 a049 ldr r1, [0x0804d4b6] ; [0x804d4b4:4]=0x2001e4c4
| |||||| 0x0804d234 0978 ldrb r1, [r1]
| |||||| 0x0804d236 0222 movs r2, 2 ; 2
| |||||| 0x0804d238 91fbf2f1 sdiv r1, r1, r2
| |||||| 0x0804d23c 9d4a ldr r2, [0x0804d4b4] ; [0x804d4b4:4]=0x2001e4c4
| |||||| 0x0804d23e 8918 adds r1, r1, r2
| |||||| 0x0804d240 4978 ldrb r1, [r1, 1]
| |||||| 0x0804d242 a14a ldr r2, [0x0804d4ca] ; [0x804d4c8:4]=0x2001e8db
| |||||| 0x0804d244 1278 ldrb r2, [r2]
| |||||| 0x0804d246 51ea0211 orrs.w r1, r1, r2, lsl 4
| |||||| 0x0804d24a 4170 strb r1, [r0, 1]
| ,=======< 0x0804d24c 09e0 b 0x804d262
| |`------> 0x0804d24e 9948 ldr r0, [0x0804d4b6] ; [0x804d4b4:4]=0x2001e4c4
| | ||||| 0x0804d250 0078 ldrb r0, [r0]
| | ||||| 0x0804d252 0221 movs r1, 2 ; 2
| | ||||| 0x0804d254 90fbf1f0 sdiv r0, r0, r1
| | ||||| 0x0804d258 9649 ldr r1, [0x0804d4b4] ; [0x804d4b4:4]=0x2001e4c4
| | ||||| 0x0804d25a 4018 adds r0, r0, r1
| | ||||| 0x0804d25c 9a49 ldr r1, [0x0804d4c8] ; [0x804d4c8:4]=0x2001e8db
| | ||||| 0x0804d25e 0978 ldrb r1, [r1]
| | ||||| 0x0804d260 4170 strb r1, [r0, 1]
| `-`-----> 0x0804d262 9448 ldr r0, [0x0804d4b6] ; [0x804d4b4:4]=0x2001e4c4
| |||| 0x0804d264 0078 ldrb r0, [r0]
| |||| 0x0804d266 ff28 cmp r0, 0xff ; 255
| ,=====< 0x0804d268 3cd2 bhs 0x804d2e4
| ||||| 0x0804d26a 9248 ldr r0, [0x0804d4b6] ; [0x804d4b4:4]=0x2001e4c4
| ||||| 0x0804d26c 0078 ldrb r0, [r0]
| ||||| 0x0804d26e 401c adds r0, r0, 1
| ||||| 0x0804d270 9049 ldr r1, [0x0804d4b4] ; [0x804d4b4:4]=0x2001e4c4
| ||||| 0x0804d272 0870 strb r0, [r1]
| ,======< 0x0804d274 36e0 b 0x804d2e4
| ||`----> 0x0804d276 8a48 ldr r0, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| || ||| 0x0804d278 0078 ldrb r0, [r0]
| || ||| 0x0804d27a c0f30010 ubfx r0, r0, 4, 1
| || ||| 0x0804d27e c007 lsls r0, r0, 0x1f
| ||,====< 0x0804d280 12d5 bpl 0x804d2a8
| |||||| 0x0804d282 8748 ldr r0, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| |||||| 0x0804d284 0078 ldrb r0, [r0]
| |||||| 0x0804d286 10f0ef00 ands r0, r0, 0xef
| |||||| 0x0804d28a 8549 ldr r1, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| |||||| 0x0804d28c 0870 strb r0, [r1]
| |||||| 0x0804d28e 9e48 ldr r0, [0x0804d50a] ; [0x804d508:4]=0x2001e85a
| |||||| 0x0804d290 0021 movs r1, 0
| |||||| 0x0804d292 0180 strh r1, [r0]
| |||||| 0x0804d294 8248 ldr r0, [0x0804d4a0] ; [0x804d4a0:4]=0x2001e5f4
| |||||| 0x0804d296 0078 ldrb r0, [r0]
| |||||| 0x0804d298 50f04000 orrs r0, r0, 0x40
| |||||| 0x0804d29c 8049 ldr r1, [0x0804d4a0] ; [0x804d4a0:4]=0x2001e5f4
| |||||| 0x0804d29e 0870 strb r0, [r1]
| |||||| 0x0804d2a0 9a48 ldr r0, [0x0804d50c] ; [0x804d50c:4]=0x2001e844
| |||||| 0x0804d2a2 0a21 movs r1, 0xa ; 10
| |||||| 0x0804d2a4 0180 strh r1, [r0]
| ,=======< 0x0804d2a6 1de0 b 0x804d2e4
| |||`----> 0x0804d2a8 7d48 ldr r0, [0x0804d4a0] ; [0x804d4a0:4]=0x2001e5f4
| ||| ||| 0x0804d2aa 0078 ldrb r0, [r0]
| ||| ||| 0x0804d2ac c0f38010 ubfx r0, r0, 6, 1
| ||| ||| 0x0804d2b0 c007 lsls r0, r0, 0x1f
| |||,====< 0x0804d2b2 17d5 bpl 0x804d2e4
| ||||||| 0x0804d2b4 9448 ldr r0, [0x0804d508] ; [0x804d508:4]=0x2001e85a
| ||||||| 0x0804d2b6 0088 ldrh r0, [r0]
| ||||||| 0x0804d2b8 401c adds r0, r0, 1
| ||||||| 0x0804d2ba 9349 ldr r1, [0x0804d50a] ; [0x804d508:4]=0x2001e85a
| ||||||| 0x0804d2bc 0880 strh r0, [r1]
| ||||||| 0x0804d2be 9449 ldr r1, [0x0804d512] ; [0x804d510:4]=0x2001e130
| ||||||| 0x0804d2c0 8979 ldrb r1, [r1, 6]
| ||||||| 0x0804d2c2 6422 movs r2, 0x64 ; 'd' ; 100
| ||||||| 0x0804d2c4 5143 muls r1, r2, r1
| ||||||| 0x0804d2c6 0322 movs r2, 3 ; 3
| ||||||| 0x0804d2c8 91fbf2f1 sdiv r1, r1, r2
| ||||||| 0x0804d2cc 80b2 uxth r0, r0
| ||||||| 0x0804d2ce 8842 cmp r0, r1
| ========< 0x0804d2d0 08db blt 0x804d2e4
| ||||||| 0x0804d2d2 7348 ldr r0, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| ||||||| 0x0804d2d4 0078 ldrb r0, [r0]
| ||||||| 0x0804d2d6 50f02000 orrs r0, r0, 0x20
| ||||||| 0x0804d2da 7149 ldr r1, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| ||||||| 0x0804d2dc 0870 strb r0, [r1]
| ||||||| 0x0804d2de 8a48 ldr r0, [0x0804d50a] ; [0x804d508:4]=0x2001e85a
| ||||||| 0x0804d2e0 0021 movs r1, 0
| ||||||| 0x0804d2e2 0180 strh r1, [r0]
| ````----> 0x0804d2e4 6e48 ldr r0, [0x0804d4a0] ; [0x804d4a0:4]=0x2001e5f4
| ||| 0x0804d2e6 0078 ldrb r0, [r0]
| ||| 0x0804d2e8 c0f34010 ubfx r0, r0, 5, 1
| ||| 0x0804d2ec c007 lsls r0, r0, 0x1f
| ,====< 0x0804d2ee 40f19980 bpl.w 0x804d424
| |||| 0x0804d2f2 6b48 ldr r0, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| |||| 0x0804d2f4 0078 ldrb r0, [r0]
| |||| 0x0804d2f6 10f0df00 ands r0, r0, 0xdf
| |||| 0x0804d2fa 6949 ldr r1, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| |||| 0x0804d2fc 0870 strb r0, [r1]
| |||| 0x0804d2fe 6848 ldr r0, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| |||| 0x0804d300 0078 ldrb r0, [r0]
| |||| 0x0804d302 10f0bf00 ands r0, r0, 0xbf
| |||| 0x0804d306 6649 ldr r1, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| |||| 0x0804d308 0870 strb r0, [r1]
| |||| 0x0804d30a 8248 ldr r0, [0x0804d516] ; [0x804d514:4]=0x2001e4d4
| |||| 0x0804d30c 6949 ldr r1, [0x0804d4b4] ; [0x804d4b4:4]=0x2001e4c4
| |||| 0x0804d30e 0978 ldrb r1, [r1]
| |||| 0x0804d310 0170 strb r1, [r0]
| |||| 0x0804d312 0020 movs r0, 0
| ,=====< 0x0804d314 08e0 b 0x804d328
| .------> 0x0804d316 c0b2 uxtb r0, r0
| |||||| 0x0804d318 7e49 ldr r1, [0x0804d514] ; [0x804d514:4]=0x2001e4d4
| |||||| 0x0804d31a 4118 adds r1, r0, r1
| |||||| 0x0804d31c c0b2 uxtb r0, r0
| |||||| 0x0804d31e 654a ldr r2, [0x0804d4b6] ; [0x804d4b4:4]=0x2001e4c4
| |||||| 0x0804d320 8218 adds r2, r0, r2
| |||||| 0x0804d322 5278 ldrb r2, [r2, 1]
| |||||| 0x0804d324 4a70 strb r2, [r1, 1]
| |||||| 0x0804d326 401c adds r0, r0, 1
| |`-----> 0x0804d328 c0b2 uxtb r0, r0
| | |||| 0x0804d32a 0f28 cmp r0, 0xf ; 15
| `======< 0x0804d32c f3d3 blo 0x804d316
| |||| 0x0804d32e 7a48 ldr r0, [0x0804d51a] ; [0x804d518:4]=0x2001e604 q_status_4
| |||| 0x0804d330 0078 ldrb r0, [r0]
| |||| 0x0804d332 50f02000 orrs r0, r0, 0x20
| |||| 0x0804d336 7849 ldr r1, [0x0804d51a] ; [0x804d518:4]=0x2001e604 q_status_4
| |||| 0x0804d338 0870 strb r0, [r1]
| |||| 0x0804d33a 7848 ldr r0, [0x0804d51e] ; [0x804d51c:4]=0x2001e748
| |||| 0x0804d33c 0021 movs r1, 0
| |||| 0x0804d33e 0160 str r1, [r0]
| |||| 0x0804d340 5c48 ldr r0, [0x0804d4b4] ; [0x804d4b4:4]=0x2001e4c4
| |||| 0x0804d342 0078 ldrb r0, [r0]
| |||| 0x0804d344 401e subs r0, r0, 1
| |||| 0x0804d346 c0b2 uxtb r0, r0
| |||| 0x0804d348 1e28 cmp r0, 0x1e ; 30
| ,=====< 0x0804d34a 68d2 bhs 0x804d41e
| ||||| 0x0804d34c 0024 movs r4, 0
| ,======< 0x0804d34e 00e0 b 0x804d352
| .-------> 0x0804d350 641c adds r4, r4, 1
| |`------> 0x0804d352 e4b2 uxtb r4, r4
| | ||||| 0x0804d354 082c cmp r4, 8 ; 8
| |,======< 0x0804d356 62d2 bhs 0x804d41e
| ||||||| 0x0804d358 6948 ldr r0, [0x0804d500] ; [0x804d500:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0804d35a 807b ldrb r0, [r0, 0xe]
| ||||||| 0x0804d35c 0121 movs r1, 1 ; 1
| ||||||| 0x0804d35e a140 lsls r1, r4
| ||||||| 0x0804d360 0842 tst r0, r1
| ========< 0x0804d362 f5d0 beq 0x804d350
| ||||||| 0x0804d364 601c adds r0, r4, 1
| ||||||| 0x0804d366 c0b2 uxtb r0, r0
| ||||||| 0x0804d368 d5f7befe bl func_230e8_spiflash_rd_19
| ||||||| 0x0804d36c 6c48 ldr r0, [0x0804d520] ; [0x804d520:4]=0x2001e380
| ||||||| 0x0804d36e 0078 ldrb r0, [r0]
| ||||||| 0x0804d370 5049 ldr r1, [0x0804d4b4] ; [0x804d4b4:4]=0x2001e4c4
| ||||||| 0x0804d372 0978 ldrb r1, [r1]
| ||||||| 0x0804d374 8842 cmp r0, r1
| ========< 0x0804d376 ebd1 bne 0x804d350
| ||||||| 0x0804d378 0020 movs r0, 0
| ========< 0x0804d37a 00e0 b 0x804d37e
| --------> 0x0804d37c 401c adds r0, r0, 1
| --------> 0x0804d37e 6849 ldr r1, [0x0804d522] ; [0x804d520:4]=0x2001e380
| ||||||| 0x0804d380 0978 ldrb r1, [r1]
| ||||||| 0x0804d382 c0b2 uxtb r0, r0
| ||||||| 0x0804d384 8842 cmp r0, r1
| ========< 0x0804d386 30d2 bhs 0x804d3ea
| ||||||| 0x0804d388 c0b2 uxtb r0, r0
| ||||||| 0x0804d38a 0221 movs r1, 2 ; 2
| ||||||| 0x0804d38c 90fbf1f2 sdiv r2, r0, r1
| ||||||| 0x0804d390 02fb1102 mls r2, r2, r1, r0
| ||||||| 0x0804d394 002a cmp r2, 0
| ========< 0x0804d396 14d0 beq 0x804d3c2
| ||||||| 0x0804d398 c0b2 uxtb r0, r0
| ||||||| 0x0804d39a 0221 movs r1, 2 ; 2
| ||||||| 0x0804d39c 90fbf1f1 sdiv r1, r0, r1
| ||||||| 0x0804d3a0 444a ldr r2, [0x0804d4b4] ; [0x804d4b4:4]=0x2001e4c4
| ||||||| 0x0804d3a2 8918 adds r1, r1, r2
| ||||||| 0x0804d3a4 4978 ldrb r1, [r1, 1]
| ||||||| 0x0804d3a6 11f0f001 ands r1, r1, 0xf0
| ||||||| 0x0804d3aa c0b2 uxtb r0, r0
| ||||||| 0x0804d3ac 0222 movs r2, 2 ; 2
| ||||||| 0x0804d3ae 90fbf2f2 sdiv r2, r0, r2
| ||||||| 0x0804d3b2 5b4b ldr r3, [0x0804d522] ; [0x804d520:4]=0x2001e380
| ||||||| 0x0804d3b4 d218 adds r2, r2, r3
| ||||||| 0x0804d3b6 5278 ldrb r2, [r2, 1]
| ||||||| 0x0804d3b8 12f0f002 ands r2, r2, 0xf0
| ||||||| 0x0804d3bc 9142 cmp r1, r2
| ========< 0x0804d3be ddd0 beq 0x804d37c
| ========< 0x0804d3c0 13e0 b 0x804d3ea
| --------> 0x0804d3c2 c0b2 uxtb r0, r0
| ||||||| 0x0804d3c4 0221 movs r1, 2 ; 2
| ||||||| 0x0804d3c6 90fbf1f1 sdiv r1, r0, r1
| ||||||| 0x0804d3ca 3a4a ldr r2, [0x0804d4b6] ; [0x804d4b4:4]=0x2001e4c4
| ||||||| 0x0804d3cc 8918 adds r1, r1, r2
| ||||||| 0x0804d3ce 4978 ldrb r1, [r1, 1]
| ||||||| 0x0804d3d0 11f00f01 ands r1, r1, 0xf
| ||||||| 0x0804d3d4 c0b2 uxtb r0, r0
| ||||||| 0x0804d3d6 0222 movs r2, 2 ; 2
| ||||||| 0x0804d3d8 90fbf2f2 sdiv r2, r0, r2
| ||||||| 0x0804d3dc 504b ldr r3, [0x0804d520] ; [0x804d520:4]=0x2001e380
| ||||||| 0x0804d3de d218 adds r2, r2, r3
| ||||||| 0x0804d3e0 5278 ldrb r2, [r2, 1]
| ||||||| 0x0804d3e2 12f00f02 ands r2, r2, 0xf
| ||||||| 0x0804d3e6 9142 cmp r1, r2
| ========< 0x0804d3e8 c8d0 beq 0x804d37c
| --------> 0x0804d3ea 4d49 ldr r1, [0x0804d522] ; [0x804d520:4]=0x2001e380
| ||||||| 0x0804d3ec 0978 ldrb r1, [r1]
| ||||||| 0x0804d3ee c0b2 uxtb r0, r0
| ||||||| 0x0804d3f0 8842 cmp r0, r1
| `=======< 0x0804d3f2 add1 bne 0x804d350
| |||||| 0x0804d3f4 4a48 ldr r0, [0x0804d520] ; [0x804d520:4]=0x2001e380
| |||||| 0x0804d3f6 007c ldrb r0, [r0, 0x10]
| |||||| 0x0804d3f8 0128 cmp r0, 1 ; 1
| ,=======< 0x0804d3fa 06d0 beq 0x804d40a
| ========< 0x0804d3fc 0fd3 blo 0x804d41e
| ||||||| 0x0804d3fe 0328 cmp r0, 3 ; 3
| ========< 0x0804d400 08d0 beq 0x804d414
| ========< 0x0804d402 06d3 blo 0x804d412
| ||||||| 0x0804d404 0428 cmp r0, 4 ; 4
| ========< 0x0804d406 09d0 beq 0x804d41c
| ========< 0x0804d408 09e0 b 0x804d41e
| `-------> 0x0804d40a 4648 ldr r0, [0x0804d526] ; [0x804d524:4]=0x2001e94d gui_opmode1
| |||||| 0x0804d40c 9e21 movs r1, 0x9e ; 158
| |||||| 0x0804d40e 0170 strb r1, [r0]
| ,=======< 0x0804d410 05e0 b 0x804d41e
| --------> 0x0804d412 04e0 b 0x804d41e
| --------> 0x0804d414 4348 ldr r0, [0x0804d524] ; [0x804d524:4]=0x2001e94d gui_opmode1
| ||||||| 0x0804d416 9f21 movs r1, 0x9f ; 159
| ||||||| 0x0804d418 0170 strb r1, [r0]
| ========< 0x0804d41a 00e0 b 0x804d41e
| ========< 0x0804d41c ffe7 b 0x804d41e
| ```-----> 0x0804d41e 2548 ldr r0, [0x0804d4b6] ; [0x804d4b4:4]=0x2001e4c4
| |||| 0x0804d420 0021 movs r1, 0
| |||| 0x0804d422 0170 strb r1, [r0]
| `----> 0x0804d424 3c48 ldr r0, [0x0804d518] ; [0x804d518:4]=0x2001e604 q_status_4
| ||| 0x0804d426 0078 ldrb r0, [r0]
| ||| 0x0804d428 c0f34010 ubfx r0, r0, 5, 1
| ||| 0x0804d42c c007 lsls r0, r0, 0x1f
| ,====< 0x0804d42e 35d5 bpl 0x804d49c
| |||| 0x0804d430 3d48 ldr r0, [0x0804d528] ; [0x804d528:4]=0x2001e600 q_struct_1
| |||| 0x0804d432 0078 ldrb r0, [r0]
| |||| 0x0804d434 0006 lsls r0, r0, 0x18
| ,=====< 0x0804d436 03d5 bpl 0x804d440
| ||||| 0x0804d438 3848 ldr r0, [0x0804d51c] ; [0x804d51c:4]=0x2001e748
| ||||| 0x0804d43a 0021 movs r1, 0
| ||||| 0x0804d43c 0160 str r1, [r0]
| ,======< 0x0804d43e 2de0 b 0x804d49c
| |`-----> 0x0804d440 3648 ldr r0, [0x0804d51c] ; [0x804d51c:4]=0x2001e748
| | |||| 0x0804d442 0068 ldr r0, [r0]
| | |||| 0x0804d444 401c adds r0, r0, 1
| | |||| 0x0804d446 3549 ldr r1, [0x0804d51e] ; [0x804d51c:4]=0x2001e748
| | |||| 0x0804d448 0860 str r0, [r1]
| | |||| 0x0804d44a 3149 ldr r1, [0x0804d512] ; [0x804d510:4]=0x2001e130
| | |||| 0x0804d44c c979 ldrb r1, [r1, 7]
| | |||| 0x0804d44e 4ff47a72 mov.w r2, 0x3e8 ; 1000
| | |||| 0x0804d452 5143 muls r1, r2, r1
| | |||| 0x0804d454 0322 movs r2, 3 ; 3
| | |||| 0x0804d456 b1fbf2f1 udiv r1, r1, r2
| | |||| 0x0804d45a 8842 cmp r0, r1
| |,=====< 0x0804d45c 1ed3 blo 0x804d49c
| |||||| 0x0804d45e 2e48 ldr r0, [0x0804d51a] ; [0x804d518:4]=0x2001e604 q_status_4
| |||||| 0x0804d460 0078 ldrb r0, [r0]
| |||||| 0x0804d462 10f0df00 ands r0, r0, 0xdf
| |||||| 0x0804d466 2c49 ldr r1, [0x0804d51a] ; [0x804d518:4]=0x2001e604 q_status_4
| |||||| 0x0804d468 0870 strb r0, [r1]
| |||||| 0x0804d46a 2b48 ldr r0, [0x0804d51a] ; [0x804d518:4]=0x2001e604 q_status_4
| |||||| 0x0804d46c 0078 ldrb r0, [r0]
| |||||| 0x0804d46e 10f0bf00 ands r0, r0, 0xbf
| |||||| 0x0804d472 2949 ldr r1, [0x0804d51a] ; [0x804d518:4]=0x2001e604 q_status_4
| |||||| 0x0804d474 0870 strb r0, [r1]
| |||||| 0x0804d476 2948 ldr r0, [0x0804d51e] ; [0x804d51c:4]=0x2001e748
| |||||| 0x0804d478 0021 movs r1, 0
| |||||| 0x0804d47a 0160 str r1, [r0]
| ,=======< 0x0804d47c 0ee0 b 0x804d49c
| ||||``--> 0x0804d47e 2648 ldr r0, [0x0804d51a] ; [0x804d518:4]=0x2001e604 q_status_4
| |||| | 0x0804d480 0078 ldrb r0, [r0]
| |||| | 0x0804d482 10f0df00 ands r0, r0, 0xdf
| |||| | 0x0804d486 2449 ldr r1, [0x0804d51a] ; [0x804d518:4]=0x2001e604 q_status_4
| |||| | 0x0804d488 0870 strb r0, [r1]
| |||| | 0x0804d48a 2348 ldr r0, [0x0804d51a] ; [0x804d518:4]=0x2001e604 q_status_4
| |||| | 0x0804d48c 0078 ldrb r0, [r0]
| |||| | 0x0804d48e 10f0bf00 ands r0, r0, 0xbf
| |||| | 0x0804d492 2149 ldr r1, [0x0804d51a] ; [0x804d518:4]=0x2001e604 q_status_4
| |||| | 0x0804d494 0870 strb r0, [r1]
| |||| | 0x0804d496 2148 ldr r0, [0x0804d51e] ; [0x804d51c:4]=0x2001e748
| |||| | 0x0804d498 0021 movs r1, 0
| |||| | 0x0804d49a 0160 str r1, [r0]
\ ````--`-> 0x0804d49c 10bd pop {r4, pc}
/ (fcn) adc_related_4d52c 76
| Caller: adc3_init adc1_adc2_and_dma2s3_init
| adc_related_4d52c ();
| 0x0804d52c 30b4 push {r4, r5}
| 0x0804d52e 0023 movs r3, 0
| 0x0804d530 0022 movs r2, 0
| 0x0804d532 4468 ldr r4, [r0, 4] ; [in] R0=ADC base addr, R0+4= ADC_CR1
| 0x0804d534 2300 movs r3, r4
| 0x0804d536 654c ldr r4, [0x0804d6ce] ; [0x804d6cc:4]=0xfcfffeff
| 0x0804d538 2340 ands r3, r4
| 0x0804d53a 0c79 ldrb r4, [r1, 4]
| 0x0804d53c 0d68 ldr r5, [r1]
| 0x0804d53e 55ea0424 orrs.w r4, r5, r4, lsl 8
| 0x0804d542 2343 orrs r3, r4
| 0x0804d544 4360 str r3, [r0, 4]
| 0x0804d546 8368 ldr r3, [r0, 8] ; R0+8 = ADC control register 2
| 0x0804d548 614c ldr r4, [0x0804d6d0] ; [0x804d6d0:4]=0xc0fff7fd
| 0x0804d54a 2340 ands r3, r4
| 0x0804d54c 0c69 ldr r4, [r1, 0x10]
| 0x0804d54e cd68 ldr r5, [r1, 0xc]
| 0x0804d550 2c43 orrs r4, r5
| 0x0804d552 8d68 ldr r5, [r1, 8]
| 0x0804d554 2c43 orrs r4, r5
| 0x0804d556 4d79 ldrb r5, [r1, 5]
| 0x0804d558 54ea4504 orrs.w r4, r4, r5, lsl 1
| 0x0804d55c 2343 orrs r3, r4
| 0x0804d55e 8360 str r3, [r0, 8]
| 0x0804d560 c36a ldr r3, [r0, 0x2c] ; R0+0x2c = ADC regular channel seq reg #1
| 0x0804d562 33f47003 bics r3, r3, 0xf00000
| 0x0804d566 097d ldrb r1, [r1, 0x14]
| 0x0804d568 491e subs r1, r1, 1
| 0x0804d56a 0a43 orrs r2, r1
| 0x0804d56c d2b2 uxtb r2, r2
| 0x0804d56e 53ea0253 orrs.w r3, r3, r2, lsl 20
| 0x0804d572 c362 str r3, [r0, 0x2c]
| 0x0804d574 30bc pop {r4, r5}
\ 0x0804d576 7047 bx lr
/ (fcn) adc_related_4d578 34
| Caller: adc3_init adc1_adc2_and_dma2s3_init
| adc_related_4d578 ();
| 0x0804d578 0021 movs r1, 0
| 0x0804d57a 564a ldr r2, [0x0804d6d6] ; [0x804d6d4:4]=0x40012304 io_ADC_COMMON_CR
| 0x0804d57c 1268 ldr r2, [r2]
| 0x0804d57e 1100 movs r1, r2
| 0x0804d580 554a ldr r2, [0x0804d6d8] ; [0x804d6d8:4]=0xfffc30e0
| 0x0804d582 1140 ands r1, r2
| 0x0804d584 0268 ldr r2, [r0]
| 0x0804d586 4368 ldr r3, [r0, 4]
| 0x0804d588 1a43 orrs r2, r3
| 0x0804d58a 8368 ldr r3, [r0, 8]
| 0x0804d58c 1a43 orrs r2, r3
| 0x0804d58e c068 ldr r0, [r0, 0xc]
| 0x0804d590 1043 orrs r0, r2
| 0x0804d592 0143 orrs r1, r0
| 0x0804d594 4f48 ldr r0, [0x0804d6d4] ; [0x804d6d4:4]=0x40012304 io_ADC_COMMON_CR
| 0x0804d596 0160 str r1, [r0]
\ 0x0804d598 7047 bx lr
/ (fcn) adc_enable_disable 26
| Caller: func_4cf06_uses_ADC2_and_TIM3 adc3_init func_4ce88 adc1_adc2_and_dma2s3_init
| adc_enable_disable ();
| 0x0804d59a c9b2 uxtb r1, r1
| 0x0804d59c 0029 cmp r1, 0
| ,=< 0x0804d59e 04d0 beq 0x804d5aa
| | 0x0804d5a0 8168 ldr r1, [r0, 8] ; [in] R0=base address of an ADC(!), but sometimes a TIMER (???)
| | 0x0804d5a2 51f00101 orrs r1, r1, 1 ; R0+8 = ADC_CR2, bit0 = "enable conversion"
| | 0x0804d5a6 8160 str r1, [r0, 8]
| ,==< 0x0804d5a8 03e0 b 0x804d5b2
| |`-> 0x0804d5aa 8168 ldr r1, [r0, 8]
| | 0x0804d5ac 4908 lsrs r1, r1, 1
| | 0x0804d5ae 4900 lsls r1, r1, 1 ; funny way to clear bit 0, i.e. "disable conversion"
| | 0x0804d5b0 8160 str r1, [r0, 8]
\ `--> 0x0804d5b2 7047 bx lr
/ (fcn) adc_related_4d5b4 212
| Caller: adc3_init adc1_adc2_and_dma2s3_init
| adc_related_4d5b4 ();
| 0x0804d5b4 f0b4 push {r4, r5, r6, r7} ; [in] R0=ADC base addr
| 0x0804d5b6 0024 movs r4, 0
| 0x0804d5b8 0025 movs r5, 0
| 0x0804d5ba c9b2 uxtb r1, r1
| 0x0804d5bc 0a29 cmp r1, 0xa ; 10
| ,=< 0x0804d5be 13d3 blo 0x804d5e8
| | 0x0804d5c0 c468 ldr r4, [r0, 0xc] ; R0+0xC = ADC sample time register #1
| | 0x0804d5c2 0725 movs r5, 7 ; 7
| | 0x0804d5c4 b1f10a06 subs.w r6, r1, 0xa
| | 0x0804d5c8 0327 movs r7, 3 ; 3
| | 0x0804d5ca 16fb07f6 smulbb r6, r6, r7
| | 0x0804d5ce b540 lsls r5, r6
| | 0x0804d5d0 ac43 bics r4, r5
| | 0x0804d5d2 dbb2 uxtb r3, r3
| | 0x0804d5d4 b1f10a05 subs.w r5, r1, 0xa
| | 0x0804d5d8 0326 movs r6, 3 ; 3
| | 0x0804d5da 15fb06f5 smulbb r5, r5, r6
| | 0x0804d5de 13fa05f5 lsls.w r5, r3, r5
| | 0x0804d5e2 2c43 orrs r4, r5
| | 0x0804d5e4 c460 str r4, [r0, 0xc]
| ,==< 0x0804d5e6 0ee0 b 0x804d606
| |`-> 0x0804d5e8 0469 ldr r4, [r0, 0x10] ; R0+0x10 = ADC sample time register #2
| | 0x0804d5ea 0725 movs r5, 7 ; 7
| | 0x0804d5ec 0326 movs r6, 3 ; 3
| | 0x0804d5ee 11fb06f6 smulbb r6, r1, r6
| | 0x0804d5f2 b540 lsls r5, r6
| | 0x0804d5f4 ac43 bics r4, r5
| | 0x0804d5f6 dbb2 uxtb r3, r3
| | 0x0804d5f8 0325 movs r5, 3 ; 3
| | 0x0804d5fa 11fb05f5 smulbb r5, r1, r5
| | 0x0804d5fe 13fa05f5 lsls.w r5, r3, r5
| | 0x0804d602 2c43 orrs r4, r5
| | 0x0804d604 0461 str r4, [r0, 0x10]
| `--> 0x0804d606 d2b2 uxtb r2, r2
| 0x0804d608 072a cmp r2, 7 ; 7
| ,=< 0x0804d60a 12d2 bhs 0x804d632
| | 0x0804d60c 446b ldr r4, [r0, 0x34] ; R0+0x34 = ADC regular channel seq reg #3
| | 0x0804d60e 1f23 movs r3, 0x1f ; 31
| | 0x0804d610 551e subs r5, r2, 1
| | 0x0804d612 0526 movs r6, 5 ; 5
| | 0x0804d614 15fb06f5 smulbb r5, r5, r6
| | 0x0804d618 13fa05f5 lsls.w r5, r3, r5
| | 0x0804d61c ac43 bics r4, r5
| | 0x0804d61e c9b2 uxtb r1, r1
| | 0x0804d620 521e subs r2, r2, 1
| | 0x0804d622 0523 movs r3, 5 ; 5
| | 0x0804d624 12fb03f2 smulbb r2, r2, r3
| | 0x0804d628 11fa02f5 lsls.w r5, r1, r2
| | 0x0804d62c 2c43 orrs r4, r5
| | 0x0804d62e 4463 str r4, [r0, 0x34]
| ,==< 0x0804d630 28e0 b 0x804d684
| |`-> 0x0804d632 d2b2 uxtb r2, r2
| | 0x0804d634 0d2a cmp r2, 0xd ; 13
| |,=< 0x0804d636 12d2 bhs 0x804d65e
| || 0x0804d638 046b ldr r4, [r0, 0x30] ; R0+0x30 = ADC regular channel seq reg #2
| || 0x0804d63a 1f23 movs r3, 0x1f ; 31
| || 0x0804d63c d51f subs r5, r2, 7
| || 0x0804d63e 0526 movs r6, 5 ; 5
| || 0x0804d640 15fb06f5 smulbb r5, r5, r6
| || 0x0804d644 13fa05f5 lsls.w r5, r3, r5
| || 0x0804d648 ac43 bics r4, r5
| || 0x0804d64a c9b2 uxtb r1, r1
| || 0x0804d64c d21f subs r2, r2, 7
| || 0x0804d64e 0523 movs r3, 5 ; 5
| || 0x0804d650 12fb03f2 smulbb r2, r2, r3
| || 0x0804d654 11fa02f5 lsls.w r5, r1, r2
| || 0x0804d658 2c43 orrs r4, r5
| || 0x0804d65a 0463 str r4, [r0, 0x30]
| ,===< 0x0804d65c 12e0 b 0x804d684
| ||`-> 0x0804d65e c46a ldr r4, [r0, 0x2c] ; R0+0x2c = ADC regular channel seq reg #1
| || 0x0804d660 1f23 movs r3, 0x1f ; 31
| || 0x0804d662 b2f10d05 subs.w r5, r2, 0xd
| || 0x0804d666 0526 movs r6, 5 ; 5
| || 0x0804d668 15fb06f5 smulbb r5, r5, r6
| || 0x0804d66c 13fa05f5 lsls.w r5, r3, r5
| || 0x0804d670 ac43 bics r4, r5
| || 0x0804d672 c9b2 uxtb r1, r1
| || 0x0804d674 0d3a subs r2, 0xd
| || 0x0804d676 0523 movs r3, 5 ; 5
| || 0x0804d678 12fb03f2 smulbb r2, r2, r3
| || 0x0804d67c 11fa02f5 lsls.w r5, r1, r2
| || 0x0804d680 2c43 orrs r4, r5
| || 0x0804d682 c462 str r4, [r0, 0x2c]
| ``--> 0x0804d684 f0bc pop {r4, r5, r6, r7}
\ 0x0804d686 7047 bx lr
/ (fcn) adc_StartConv 10
| Caller: TimerIRQ_Sub11 Start adc3_init adc1_adc2_and_dma2s3_init
| adc_StartConv ();
| 0x0804d688 8168 ldr r1, [r0, 8]
| 0x0804d68a 51f08041 orrs r1, r1, 0x40000000
| 0x0804d68e 8160 str r1, [r0, 8]
\ 0x0804d690 7047 bx lr
/ (fcn) adc_ReadDataRegister 6
| adc_ReadDataRegister ();
| 0x0804d692 c06c ldr r0, [r0, 0x4c]
| 0x0804d694 80b2 uxth r0, r0
\ 0x0804d696 7047 bx lr
/ (fcn) func_4d6de 20
| func_4d6de ();
| 0x0804d6de 0068 ldr r0, [r0]
| 0x0804d6e0 c9b2 uxtb r1, r1
| 0x0804d6e2 0842 tst r0, r1
| ,=< 0x0804d6e4 01d0 beq 0x804d6ea
| | 0x0804d6e6 0122 movs r2, 1 ; 1
| ,==< 0x0804d6e8 00e0 b 0x804d6ec
| |`-> 0x0804d6ea 0022 movs r2, 0
| `--> 0x0804d6ec 1000 movs r0, r2
| 0x0804d6ee c0b2 uxtb r0, r0
\ 0x0804d6f0 7047 bx lr
/ (fcn) func_4d6f4 532
| func_4d6f4 ();
| 0x0804d6f4 38b5 push {r3, r4, r5, lr}
| 0x0804d6f6 0400 movs r4, r0
| 0x0804d6f8 00f03ff9 bl func_4d97a
| 0x0804d6fc 2000 movs r0, r4
| 0x0804d6fe 80b2 uxth r0, r0
| 0x0804d700 d9f756fe bl func_273b0
| 0x0804d704 dff80414 ldr.w r1, [0x0804db10] ; [0x804db10:4]=0x2001e7ce
| 0x0804d708 80b2 uxth r0, r0
| 0x0804d70a 10f13202 adds.w r2, r0, 0x32
| 0x0804d70e 6423 movs r3, 0x64 ; 'd' ; 100
| 0x0804d710 92fbf3f2 sdiv r2, r2, r3
| 0x0804d714 80b2 uxth r0, r0
| 0x0804d716 4300 lsls r3, r0, 1
| 0x0804d718 3233 adds r3, 0x32
| 0x0804d71a 6424 movs r4, 0x64 ; 'd' ; 100
| 0x0804d71c 93fbf4f3 sdiv r3, r3, r4
| 0x0804d720 92b2 uxth r2, r2
| 0x0804d722 12fa80f4 uxtah r4, r2, r0
| 0x0804d726 b1fbf4f4 udiv r4, r1, r4
| 0x0804d72a dff8e453 ldr.w r5, [0x0804db16] ; [0x804db14:4]=0x2001e7d0
| 0x0804d72e 2c80 strh r4, [r5]
| 0x0804d730 9bb2 uxth r3, r3
| 0x0804d732 13fa80f4 uxtah r4, r3, r0
| 0x0804d736 b1fbf4f4 udiv r4, r1, r4
| 0x0804d73a dff8d853 ldr.w r5, [0x0804db1a] ; [0x804db18:4]=0x2001e7d6
| 0x0804d73e 2c80 strh r4, [r5]
| 0x0804d740 80b2 uxth r0, r0
| 0x0804d742 92b2 uxth r2, r2
| 0x0804d744 821a subs r2, r0, r2
| 0x0804d746 b1fbf2f2 udiv r2, r1, r2
| 0x0804d74a dff8cc43 ldr.w r4, [0x0804db1e] ; [0x804db1c:4]=0x2001e7d8
| 0x0804d74e 2280 strh r2, [r4]
| 0x0804d750 80b2 uxth r0, r0
| 0x0804d752 9bb2 uxth r3, r3
| 0x0804d754 c21a subs r2, r0, r3
| 0x0804d756 b1fbf2f2 udiv r2, r1, r2
| 0x0804d75a dff8c033 ldr.w r3, [0x0804db22] ; [0x804db20:4]=0x2001e7ee
| 0x0804d75e 1a80 strh r2, [r3]
| 0x0804d760 80b2 uxth r0, r0
| 0x0804d762 b1fbf0f1 udiv r1, r1, r0
| 0x0804d766 dff8b823 ldr.w r2, [0x0804db26] ; [0x804db24:4]=0x2001e7da
| 0x0804d76a 1180 strh r1, [r2]
| 0x0804d76c dff8b013 ldr.w r1, [0x0804db24] ; [0x804db24:4]=0x2001e7da
| 0x0804d770 0988 ldrh r1, [r1]
| 0x0804d772 dff8ac23 ldr.w r2, [0x0804db26] ; [0x804db24:4]=0x2001e7da
| 0x0804d776 1288 ldrh r2, [r2]
| 0x0804d778 0323 movs r3, 3 ; 3
| 0x0804d77a 5a43 muls r2, r3, r2
| 0x0804d77c 0823 movs r3, 8 ; 8
| 0x0804d77e 92fbf3f2 sdiv r2, r2, r3
| 0x0804d782 0423 movs r3, 4 ; 4
| 0x0804d784 92fbf3f2 sdiv r2, r2, r3
| 0x0804d788 5118 adds r1, r2, r1
| 0x0804d78a dff89823 ldr.w r2, [0x0804db2a] ; [0x804db28:4]=0x2001e7d2
| 0x0804d78e 1180 strh r1, [r2]
| 0x0804d790 dff88c13 ldr.w r1, [0x0804db24] ; [0x804db24:4]=0x2001e7da
| 0x0804d794 0988 ldrh r1, [r1]
| 0x0804d796 dff88823 ldr.w r2, [0x0804db26] ; [0x804db24:4]=0x2001e7da
| 0x0804d79a 1288 ldrh r2, [r2]
| 0x0804d79c 0823 movs r3, 8 ; 8
| 0x0804d79e 92fbf3f2 sdiv r2, r2, r3
| 0x0804d7a2 0423 movs r3, 4 ; 4
| 0x0804d7a4 92fbf3f2 sdiv r2, r2, r3
| 0x0804d7a8 5118 adds r1, r2, r1
| 0x0804d7aa dff87c23 ldr.w r2, [0x0804db2e] ; [0x804db2c:4]=0x2001e7dc
| 0x0804d7ae 1180 strh r1, [r2]
| 0x0804d7b0 dff86c13 ldr.w r1, [0x0804db24] ; [0x804db24:4]=0x2001e7da
| 0x0804d7b4 0988 ldrh r1, [r1]
| 0x0804d7b6 dff86823 ldr.w r2, [0x0804db26] ; [0x804db24:4]=0x2001e7da
| 0x0804d7ba 1288 ldrh r2, [r2]
| 0x0804d7bc 0823 movs r3, 8 ; 8
| 0x0804d7be 92fbf3f2 sdiv r2, r2, r3
| 0x0804d7c2 0423 movs r3, 4 ; 4
| 0x0804d7c4 92fbf3f2 sdiv r2, r2, r3
| 0x0804d7c8 891a subs r1, r1, r2
| 0x0804d7ca dff86023 ldr.w r2, [0x0804db32] ; [0x804db30:4]=0x2001e7d4
| 0x0804d7ce 1180 strh r1, [r2]
| 0x0804d7d0 dff84c13 ldr.w r1, [0x0804db24] ; [0x804db24:4]=0x2001e7da
| 0x0804d7d4 0988 ldrh r1, [r1]
| 0x0804d7d6 dff84823 ldr.w r2, [0x0804db26] ; [0x804db24:4]=0x2001e7da
| 0x0804d7da 1288 ldrh r2, [r2]
| 0x0804d7dc 0323 movs r3, 3 ; 3
| 0x0804d7de 5a43 muls r2, r3, r2
| 0x0804d7e0 0823 movs r3, 8 ; 8
| 0x0804d7e2 92fbf3f2 sdiv r2, r2, r3
| 0x0804d7e6 0423 movs r3, 4 ; 4
| 0x0804d7e8 92fbf3f2 sdiv r2, r2, r3
| 0x0804d7ec 891a subs r1, r1, r2
| 0x0804d7ee dff84023 ldr.w r2, [0x0804db36] ; [0x804db34:4]=0x2001e7e8
| 0x0804d7f2 1180 strh r1, [r2]
| 0x0804d7f4 dff83013 ldr.w r1, [0x0804db2c] ; [0x804db2c:4]=0x2001e7dc
| 0x0804d7f8 0988 ldrh r1, [r1]
| 0x0804d7fa 891e subs r1, r1, 2
| 0x0804d7fc dff82823 ldr.w r2, [0x0804db2c] ; [0x804db2c:4]=0x2001e7dc
| 0x0804d800 1180 strh r1, [r2]
| 0x0804d802 dff82c13 ldr.w r1, [0x0804db36] ; [0x804db34:4]=0x2001e7e8
| 0x0804d806 0988 ldrh r1, [r1]
| 0x0804d808 891e subs r1, r1, 2
| 0x0804d80a dff82423 ldr.w r2, [0x0804db36] ; [0x804db34:4]=0x2001e7e8
| 0x0804d80e 1180 strh r1, [r2]
| 0x0804d810 dff80813 ldr.w r1, [0x0804db20] ; [0x804db20:4]=0x2001e7ee
| 0x0804d814 0988 ldrh r1, [r1]
| 0x0804d816 0822 movs r2, 8 ; 8
| 0x0804d818 91fbf2f1 sdiv r1, r1, r2
| 0x0804d81c dff81423 ldr.w r2, [0x0804db38] ; [0x804db38:4]=0x2001e7e6
| 0x0804d820 1180 strh r1, [r2]
| 0x0804d822 bc49 ldr r1, [0x0804db16] ; [0x804db14:4]=0x2001e7d0
| 0x0804d824 0988 ldrh r1, [r1]
| 0x0804d826 0822 movs r2, 8 ; 8
| 0x0804d828 91fbf2f1 sdiv r1, r1, r2
| 0x0804d82c dff80823 ldr.w r2, [0x0804db3c] ; [0x804db3c:4]=0x2001e8d2
| 0x0804d830 1180 strh r1, [r2]
| 0x0804d832 c049 ldr r1, [0x0804db36] ; [0x804db34:4]=0x2001e7e8
| 0x0804d834 0988 ldrh r1, [r1]
| 0x0804d836 8029 cmp r1, 0x80 ; 128
| ,=< 0x0804d838 03d3 blo 0x804d842
| | 0x0804d83a c049 ldr r1, [0x0804db3e] ; [0x804db3c:4]=0x2001e8d2
| | 0x0804d83c 4022 movs r2, 0x40 ; '@' ; 64
| | 0x0804d83e 0a70 strb r2, [r1]
| ,==< 0x0804d840 05e0 b 0x804d84e
| |`-> 0x0804d842 bc49 ldr r1, [0x0804db36] ; [0x804db34:4]=0x2001e7e8
| | 0x0804d844 0988 ldrh r1, [r1]
| | 0x0804d846 89b2 uxth r1, r1
| | 0x0804d848 4908 lsrs r1, r1, 1
| | 0x0804d84a bc4a ldr r2, [0x0804db3e] ; [0x804db3c:4]=0x2001e8d2
| | 0x0804d84c 1170 strb r1, [r2]
| `--> 0x0804d84e 80b2 uxth r0, r0
| 0x0804d850 b0f5fa6f cmp.w r0, 0x7d0 ; 2000
| ,=< 0x0804d854 03d3 blo 0x804d85e
| | 0x0804d856 ba49 ldr r1, [0x0804db42] ; [0x804db40:4]=0x2001e8d4
| | 0x0804d858 0322 movs r2, 3 ; 3
| | 0x0804d85a 0a70 strb r2, [r1]
| ,==< 0x0804d85c 0ae0 b 0x804d874
| |`-> 0x0804d85e 80b2 uxth r0, r0
| | 0x0804d860 b0f57a7f cmp.w r0, 0x3e8 ; 1000
| |,=< 0x0804d864 03d3 blo 0x804d86e
| || 0x0804d866 b649 ldr r1, [0x0804db42] ; [0x804db40:4]=0x2001e8d4
| || 0x0804d868 0522 movs r2, 5 ; 5
| || 0x0804d86a 0a70 strb r2, [r1]
| ,===< 0x0804d86c 02e0 b 0x804d874
| ||`-> 0x0804d86e b449 ldr r1, [0x0804db42] ; [0x804db40:4]=0x2001e8d4
| || 0x0804d870 0922 movs r2, 9 ; 9
| || 0x0804d872 0a70 strb r2, [r1]
| ``--> 0x0804d874 80b2 uxth r0, r0
| 0x0804d876 6421 movs r1, 0x64 ; 'd' ; 100
| 0x0804d878 90fbf1f0 sdiv r0, r0, r1
| 0x0804d87c 10f01f00 ands r0, r0, 0x1f
| 0x0804d880 c0b2 uxtb r0, r0
| 0x0804d882 b049 ldr r1, [0x0804db46] ; [0x804db44:4]=0x8099f60
| 0x0804d884 415c ldrb r1, [r0, r1]
| 0x0804d886 c9b2 uxtb r1, r1
| 0x0804d888 0909 lsrs r1, r1, 4
| 0x0804d88a af4a ldr r2, [0x0804db4a] ; [0x804db48:4]=0x2001e8d3
| 0x0804d88c 1170 strb r1, [r2]
| 0x0804d88e c0b2 uxtb r0, r0
| 0x0804d890 ac49 ldr r1, [0x0804db44] ; [0x804db44:4]=0x8099f60
| 0x0804d892 405c ldrb r0, [r0, r1]
| 0x0804d894 10f00f00 ands r0, r0, 0xf
| 0x0804d898 a849 ldr r1, [0x0804db3c] ; [0x804db3c:4]=0x2001e8d2
| 0x0804d89a 0978 ldrb r1, [r1]
| 0x0804d89c c0b2 uxtb r0, r0
| 0x0804d89e 00fb01f0 mul r0, r0, r1
| 0x0804d8a2 aa49 ldr r1, [0x0804db4e] ; [0x804db4c:4]=0x2001e628
| 0x0804d8a4 0860 str r0, [r1]
| 0x0804d8a6 a348 ldr r0, [0x0804db36] ; [0x804db34:4]=0x2001e7e8
| 0x0804d8a8 0088 ldrh r0, [r0]
| 0x0804d8aa 0321 movs r1, 3 ; 3
| 0x0804d8ac 4843 muls r0, r1, r0
| 0x0804d8ae 401c adds r0, r0, 1
| 0x0804d8b0 a749 ldr r1, [0x0804db50] ; [0x804db50:4]=0x2001e7ea
| 0x0804d8b2 0880 strh r0, [r1]
| 0x0804d8b4 a048 ldr r0, [0x0804db38] ; [0x804db38:4]=0x2001e7e6
| 0x0804d8b6 0088 ldrh r0, [r0]
| 0x0804d8b8 0321 movs r1, 3 ; 3
| 0x0804d8ba 10fb01f0 smulbb r0, r0, r1
| 0x0804d8be a549 ldr r1, [0x0804db56] ; [0x804db54:4]=0x2001e7ec
| 0x0804d8c0 0880 strh r0, [r1]
| 0x0804d8c2 9448 ldr r0, [0x0804db16] ; [0x804db14:4]=0x2001e7d0
| 0x0804d8c4 0088 ldrh r0, [r0]
| 0x0804d8c6 9c49 ldr r1, [0x0804db3a] ; [0x804db38:4]=0x2001e7e6
| 0x0804d8c8 0988 ldrh r1, [r1]
| 0x0804d8ca b0eb8100 subs.w r0, r0, r1, lsl 2
| 0x0804d8ce a249 ldr r1, [0x0804db5a] ; [0x804db58:4]=0x2001e7e2
| 0x0804d8d0 0880 strh r0, [r1]
| 0x0804d8d2 9248 ldr r0, [0x0804db1e] ; [0x804db1c:4]=0x2001e7d8
| 0x0804d8d4 0088 ldrh r0, [r0]
| 0x0804d8d6 9749 ldr r1, [0x0804db36] ; [0x804db34:4]=0x2001e7e8
| 0x0804d8d8 0988 ldrh r1, [r1]
| 0x0804d8da b0eb8100 subs.w r0, r0, r1, lsl 2
| 0x0804d8de 9f49 ldr r1, [0x0804db5e] ; [0x804db5c:4]=0x2001e7e4
| 0x0804d8e0 0880 strh r0, [r1]
| 0x0804d8e2 9f48 ldr r0, [0x0804db62] ; [0x804db60:4]=0x2001e610
| 0x0804d8e4 0078 ldrb r0, [r0]
| 0x0804d8e6 10f0df00 ands r0, r0, 0xdf
| 0x0804d8ea 9d49 ldr r1, [0x0804db62] ; [0x804db60:4]=0x2001e610
| 0x0804d8ec 0870 strb r0, [r1]
| 0x0804d8ee 9c48 ldr r0, [0x0804db62] ; [0x804db60:4]=0x2001e610
| 0x0804d8f0 0078 ldrb r0, [r0]
| 0x0804d8f2 10f0bf00 ands r0, r0, 0xbf
| 0x0804d8f6 9a49 ldr r1, [0x0804db62] ; [0x804db60:4]=0x2001e610
| 0x0804d8f8 0870 strb r0, [r1]
| 0x0804d8fa 9a48 ldr r0, [0x0804db66] ; [0x804db64:4]=0x2001e614
| 0x0804d8fc 0078 ldrb r0, [r0]
| 0x0804d8fe 10f0f700 ands r0, r0, 0xf7
| 0x0804d902 9849 ldr r1, [0x0804db66] ; [0x804db64:4]=0x2001e614
| 0x0804d904 0870 strb r0, [r1]
\ 0x0804d906 31bd pop {r0, r4, r5, pc}
/ (fcn) func_4d908 98
| func_4d908 ();
| 0x0804d908 10b5 push {r4, lr}
| 0x0804d90a 0400 movs r4, r0
| 0x0804d90c 00f035f8 bl func_4d97a
| 0x0804d910 2000 movs r0, r4
| 0x0804d912 80b2 uxth r0, r0
| 0x0804d914 f1f7c4fd bl SomeBitFiddling
| 0x0804d918 9349 ldr r1, [0x0804db68] ; [0x804db68:4]=0x2001e5d4
| 0x0804d91a 0860 str r0, [r1]
| 0x0804d91c 9348 ldr r0, [0x0804db6c] ; [0x804db6c:4]=0x2001e7c6
| 0x0804d91e 0088 ldrh r0, [r0]
| 0x0804d920 42f20101 movw r1, 0x2001
| 0x0804d924 8842 cmp r0, r1
| ,=< 0x0804d926 01d2 bhs 0x804d92c
| | 0x0804d928 00f01ff8 bl func_4d96a
| `-> 0x0804d92c 8c48 ldr r0, [0x0804db60] ; [0x804db60:4]=0x2001e610
| 0x0804d92e 0078 ldrb r0, [r0]
| 0x0804d930 10f0df00 ands r0, r0, 0xdf
| 0x0804d934 8a49 ldr r1, [0x0804db60] ; [0x804db60:4]=0x2001e610
| 0x0804d936 0870 strb r0, [r1]
| 0x0804d938 8948 ldr r0, [0x0804db60] ; [0x804db60:4]=0x2001e610
| 0x0804d93a 0078 ldrb r0, [r0]
| 0x0804d93c 10f07f00 ands r0, r0, 0x7f
| 0x0804d940 8749 ldr r1, [0x0804db60] ; [0x804db60:4]=0x2001e610
| 0x0804d942 0870 strb r0, [r1]
| 0x0804d944 8748 ldr r0, [0x0804db64] ; [0x804db64:4]=0x2001e614
| 0x0804d946 0078 ldrb r0, [r0]
| 0x0804d948 10f0f700 ands r0, r0, 0xf7
| 0x0804d94c 8549 ldr r1, [0x0804db64] ; [0x804db64:4]=0x2001e614
| 0x0804d94e 0870 strb r0, [r1]
| 0x0804d950 8448 ldr r0, [0x0804db64] ; [0x804db64:4]=0x2001e614
| 0x0804d952 0078 ldrb r0, [r0]
| 0x0804d954 10f0fd00 ands r0, r0, 0xfd
| 0x0804d958 8249 ldr r1, [0x0804db64] ; [0x804db64:4]=0x2001e614
| 0x0804d95a 0870 strb r0, [r1]
| 0x0804d95c 8148 ldr r0, [0x0804db64] ; [0x804db64:4]=0x2001e614
| 0x0804d95e 0078 ldrb r0, [r0]
| 0x0804d960 10f0fb00 ands r0, r0, 0xfb
| 0x0804d964 7f49 ldr r1, [0x0804db64] ; [0x804db64:4]=0x2001e614
| 0x0804d966 0870 strb r0, [r1]
\ 0x0804d968 10bd pop {r4, pc}
/ (fcn) func_4d96a 16
| Caller: func_4d908 func_3f32e
| func_4d96a ();
| 0x0804d96a 7f48 ldr r0, [0x0804db6a] ; [0x804db68:4]=0x2001e5d4
| 0x0804d96c 0068 ldr r0, [r0]
| 0x0804d96e c043 mvns r0, r0
| 0x0804d970 4002 lsls r0, r0, 9
| 0x0804d972 400a lsrs r0, r0, 9
| 0x0804d974 7c49 ldr r1, [0x0804db68] ; [0x804db68:4]=0x2001e5d4
| 0x0804d976 0860 str r0, [r1]
\ 0x0804d978 7047 bx lr
/ (fcn) func_4d97a 402
| Caller: func_4d908 func_4d6f4
| func_4d97a ();
| 0x0804d97a 0020 movs r0, 0
| ,=< 0x0804d97c 05e0 b 0x804d98a
| .--> 0x0804d97e c0b2 uxtb r0, r0
| || 0x0804d980 7b49 ldr r1, [0x0804db70] ; [0x804db70:4]=0x2001e474
| || 0x0804d982 0022 movs r2, 0
| || 0x0804d984 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x0804d988 401c adds r0, r0, 1
| |`-> 0x0804d98a c0b2 uxtb r0, r0
| | 0x0804d98c 0828 cmp r0, 8 ; 8
| `==< 0x0804d98e f6d3 blo 0x804d97e
| 0x0804d990 0020 movs r0, 0
| ,=< 0x0804d992 0ae0 b 0x804d9aa
| .--> 0x0804d994 c0b2 uxtb r0, r0
| || 0x0804d996 7749 ldr r1, [0x0804db76] ; [0x804db74:4]=0x2001e27c
| || 0x0804d998 0022 movs r2, 0
| || 0x0804d99a 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x0804d99e c0b2 uxtb r0, r0
| || 0x0804d9a0 7549 ldr r1, [0x0804db78] ; [0x804db78:4]=0x2001e29c
| || 0x0804d9a2 0022 movs r2, 0
| || 0x0804d9a4 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x0804d9a8 401c adds r0, r0, 1
| |`-> 0x0804d9aa c0b2 uxtb r0, r0
| | 0x0804d9ac 1028 cmp r0, 0x10 ; 16
| `==< 0x0804d9ae f1d3 blo 0x804d994
| 0x0804d9b0 0020 movs r0, 0
| ,=< 0x0804d9b2 05e0 b 0x804d9c0
| .--> 0x0804d9b4 c0b2 uxtb r0, r0
| || 0x0804d9b6 7149 ldr r1, [0x0804db7e] ; [0x804db7c:4]=0x2001d7d0
| || 0x0804d9b8 0022 movs r2, 0
| || 0x0804d9ba 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x0804d9be 401c adds r0, r0, 1
| |`-> 0x0804d9c0 c0b2 uxtb r0, r0
| | 0x0804d9c2 4028 cmp r0, 0x40 ; '@' ; 64
| `==< 0x0804d9c4 f6d3 blo 0x804d9b4
| 0x0804d9c6 6e48 ldr r0, [0x0804db82] ; [0x804db80:4]=0x2001e618
| 0x0804d9c8 0021 movs r1, 0
| 0x0804d9ca 0160 str r1, [r0]
| 0x0804d9cc 6d48 ldr r0, [0x0804db84] ; [0x804db84:4]=0x2001e61c
| 0x0804d9ce 0021 movs r1, 0
| 0x0804d9d0 0160 str r1, [r0]
| 0x0804d9d2 6d48 ldr r0, [0x0804db8a] ; [0x804db88:4]=0x2001e620
| 0x0804d9d4 0021 movs r1, 0
| 0x0804d9d6 0160 str r1, [r0]
| 0x0804d9d8 6c48 ldr r0, [0x0804db8c] ; [0x804db8c:4]=0x2001e624
| 0x0804d9da 0021 movs r1, 0
| 0x0804d9dc 0160 str r1, [r0]
| 0x0804d9de 5b48 ldr r0, [0x0804db4e] ; [0x804db4c:4]=0x2001e628
| 0x0804d9e0 0021 movs r1, 0
| 0x0804d9e2 0160 str r1, [r0]
| 0x0804d9e4 6a48 ldr r0, [0x0804db90] ; [0x804db90:4]=0x2001e62c
| 0x0804d9e6 0021 movs r1, 0
| 0x0804d9e8 0160 str r1, [r0]
| 0x0804d9ea 6a48 ldr r0, [0x0804db96] ; [0x804db94:4]=0x2001e630
| 0x0804d9ec 0021 movs r1, 0
| 0x0804d9ee 0160 str r1, [r0]
| 0x0804d9f0 6948 ldr r0, [0x0804db98] ; [0x804db98:4]=0x2001e634
| 0x0804d9f2 0021 movs r1, 0
| 0x0804d9f4 0160 str r1, [r0]
| 0x0804d9f6 6948 ldr r0, [0x0804db9e] ; [0x804db9c:4]=0x2001e7ca
| 0x0804d9f8 0021 movs r1, 0
| 0x0804d9fa 0180 strh r1, [r0]
| 0x0804d9fc 6848 ldr r0, [0x0804dba0] ; [0x804dba0:4]=0x2001e7cc
| 0x0804d9fe 0021 movs r1, 0
| 0x0804da00 0180 strh r1, [r0]
| 0x0804da02 4348 ldr r0, [0x0804db12] ; [0x804db10:4]=0x2001e7ce
| 0x0804da04 0021 movs r1, 0
| 0x0804da06 0180 strh r1, [r0]
| 0x0804da08 4248 ldr r0, [0x0804db14] ; [0x804db14:4]=0x2001e7d0
| 0x0804da0a 0021 movs r1, 0
| 0x0804da0c 0180 strh r1, [r0]
| 0x0804da0e 4648 ldr r0, [0x0804db2a] ; [0x804db28:4]=0x2001e7d2
| 0x0804da10 0021 movs r1, 0
| 0x0804da12 0180 strh r1, [r0]
| 0x0804da14 4648 ldr r0, [0x0804db30] ; [0x804db30:4]=0x2001e7d4
| 0x0804da16 0021 movs r1, 0
| 0x0804da18 0180 strh r1, [r0]
| 0x0804da1a 3f48 ldr r0, [0x0804db1a] ; [0x804db18:4]=0x2001e7d6
| 0x0804da1c 0021 movs r1, 0
| 0x0804da1e 0180 strh r1, [r0]
| 0x0804da20 3e48 ldr r0, [0x0804db1c] ; [0x804db1c:4]=0x2001e7d8
| 0x0804da22 0021 movs r1, 0
| 0x0804da24 0180 strh r1, [r0]
| 0x0804da26 3f48 ldr r0, [0x0804db26] ; [0x804db24:4]=0x2001e7da
| 0x0804da28 0021 movs r1, 0
| 0x0804da2a 0180 strh r1, [r0]
| 0x0804da2c 3f48 ldr r0, [0x0804db2c] ; [0x804db2c:4]=0x2001e7dc
| 0x0804da2e 0021 movs r1, 0
| 0x0804da30 0180 strh r1, [r0]
| 0x0804da32 5c48 ldr r0, [0x0804dba6] ; [0x804dba4:4]=0x2001e7de
| 0x0804da34 0021 movs r1, 0
| 0x0804da36 0180 strh r1, [r0]
| 0x0804da38 5b48 ldr r0, [0x0804dba8] ; [0x804dba8:4]=0x2001e7e0
| 0x0804da3a 0021 movs r1, 0
| 0x0804da3c 0180 strh r1, [r0]
| 0x0804da3e 4648 ldr r0, [0x0804db5a] ; [0x804db58:4]=0x2001e7e2
| 0x0804da40 0021 movs r1, 0
| 0x0804da42 0180 strh r1, [r0]
| 0x0804da44 4548 ldr r0, [0x0804db5c] ; [0x804db5c:4]=0x2001e7e4
| 0x0804da46 0021 movs r1, 0
| 0x0804da48 0180 strh r1, [r0]
| 0x0804da4a 3b48 ldr r0, [0x0804db3a] ; [0x804db38:4]=0x2001e7e6
| 0x0804da4c 0021 movs r1, 0
| 0x0804da4e 0180 strh r1, [r0]
| 0x0804da50 3848 ldr r0, [0x0804db34] ; [0x804db34:4]=0x2001e7e8
| 0x0804da52 0021 movs r1, 0
| 0x0804da54 0180 strh r1, [r0]
| 0x0804da56 3e48 ldr r0, [0x0804db52] ; [0x804db50:4]=0x2001e7ea
| 0x0804da58 0021 movs r1, 0
| 0x0804da5a 0180 strh r1, [r0]
| 0x0804da5c 3d48 ldr r0, [0x0804db54] ; [0x804db54:4]=0x2001e7ec
| 0x0804da5e 0021 movs r1, 0
| 0x0804da60 0180 strh r1, [r0]
| 0x0804da62 2f48 ldr r0, [0x0804db22] ; [0x804db20:4]=0x2001e7ee
| 0x0804da64 0021 movs r1, 0
| 0x0804da66 0180 strh r1, [r0]
| 0x0804da68 5048 ldr r0, [0x0804dbac] ; [0x804dbac:4]=0x2001e7f0
| 0x0804da6a 0021 movs r1, 0
| 0x0804da6c 0180 strh r1, [r0]
| 0x0804da6e 5048 ldr r0, [0x0804dbb2] ; [0x804dbb0:4]=0x2001e7f2
| 0x0804da70 0021 movs r1, 0
| 0x0804da72 0180 strh r1, [r0]
| 0x0804da74 4f48 ldr r0, [0x0804dbb4] ; [0x804dbb4:4]=0x2001e8c2
| 0x0804da76 0021 movs r1, 0
| 0x0804da78 0170 strb r1, [r0]
| 0x0804da7a 4f48 ldr r0, [0x0804dbba] ; [0x804dbb8:4]=0x2001e8c3
| 0x0804da7c 0021 movs r1, 0
| 0x0804da7e 0170 strb r1, [r0]
| 0x0804da80 4e48 ldr r0, [0x0804dbbc] ; [0x804dbbc:4]=0x2001e8c4
| 0x0804da82 0021 movs r1, 0
| 0x0804da84 0170 strb r1, [r0]
| 0x0804da86 4e48 ldr r0, [0x0804dbc2] ; [0x804dbc0:4]=0x2001e8c5
| 0x0804da88 0021 movs r1, 0
| 0x0804da8a 0170 strb r1, [r0]
| 0x0804da8c 4d48 ldr r0, [0x0804dbc4] ; [0x804dbc4:4]=0x2001e8c6
| 0x0804da8e 0021 movs r1, 0
| 0x0804da90 0170 strb r1, [r0]
| 0x0804da92 4d48 ldr r0, [0x0804dbca] ; [0x804dbc8:4]=0x2001e8c7
| 0x0804da94 0021 movs r1, 0
| 0x0804da96 0170 strb r1, [r0]
| 0x0804da98 4c48 ldr r0, [0x0804dbcc] ; [0x804dbcc:4]=0x2001e8c8
| 0x0804da9a 0021 movs r1, 0
| 0x0804da9c 0170 strb r1, [r0]
| 0x0804da9e 4c48 ldr r0, [0x0804dbd2] ; [0x804dbd0:4]=0x2001e8c9
| 0x0804daa0 0021 movs r1, 0
| 0x0804daa2 0170 strb r1, [r0]
| 0x0804daa4 4b48 ldr r0, [0x0804dbd4] ; [0x804dbd4:4]=0x2001e8ca
| 0x0804daa6 0021 movs r1, 0
| 0x0804daa8 0170 strb r1, [r0]
| 0x0804daaa 4b48 ldr r0, [0x0804dbda] ; [0x804dbd8:4]=0x2001e8cb
| 0x0804daac 0021 movs r1, 0
| 0x0804daae 0170 strb r1, [r0]
| 0x0804dab0 4a48 ldr r0, [0x0804dbdc] ; [0x804dbdc:4]=0x2001e8cc
| 0x0804dab2 0021 movs r1, 0
| 0x0804dab4 0170 strb r1, [r0]
| 0x0804dab6 4a48 ldr r0, [0x0804dbe2] ; [0x804dbe0:4]=0x2001e8cd
| 0x0804dab8 0021 movs r1, 0
| 0x0804daba 0170 strb r1, [r0]
| 0x0804dabc 4948 ldr r0, [0x0804dbe4] ; [0x804dbe4:4]=0x2001e8ce
| 0x0804dabe 0021 movs r1, 0
| 0x0804dac0 0170 strb r1, [r0]
| 0x0804dac2 4948 ldr r0, [0x0804dbea] ; [0x804dbe8:4]=0x2001e8cf
| 0x0804dac4 0021 movs r1, 0
| 0x0804dac6 0170 strb r1, [r0]
| 0x0804dac8 4848 ldr r0, [0x0804dbec] ; [0x804dbec:4]=0x2001e8d0
| 0x0804daca 0021 movs r1, 0
| 0x0804dacc 0170 strb r1, [r0]
| 0x0804dace 4848 ldr r0, [0x0804dbf2] ; [0x804dbf0:4]=0x2001e8d1
| 0x0804dad0 0021 movs r1, 0
| 0x0804dad2 0170 strb r1, [r0]
| 0x0804dad4 1948 ldr r0, [0x0804db3c] ; [0x804db3c:4]=0x2001e8d2
| 0x0804dad6 0021 movs r1, 0
| 0x0804dad8 0170 strb r1, [r0]
| 0x0804dada 1b48 ldr r0, [0x0804db4a] ; [0x804db48:4]=0x2001e8d3
| 0x0804dadc 0021 movs r1, 0
| 0x0804dade 0170 strb r1, [r0]
| 0x0804dae0 1748 ldr r0, [0x0804db40] ; [0x804db40:4]=0x2001e8d4
| 0x0804dae2 0021 movs r1, 0
| 0x0804dae4 0170 strb r1, [r0]
| 0x0804dae6 4348 ldr r0, [0x0804dbf6] ; [0x804dbf4:4]=0x2001e8d5
| 0x0804dae8 0021 movs r1, 0
| 0x0804daea 0170 strb r1, [r0]
| 0x0804daec 4248 ldr r0, [0x0804dbf8] ; [0x804dbf8:4]=0x2001e8d6
| 0x0804daee 0021 movs r1, 0
| 0x0804daf0 0170 strb r1, [r0]
| 0x0804daf2 4248 ldr r0, [0x0804dbfe] ; [0x804dbfc:4]=0x2001e8d7
| 0x0804daf4 0021 movs r1, 0
| 0x0804daf6 0170 strb r1, [r0]
| 0x0804daf8 4148 ldr r0, [0x0804dc00] ; [0x804dc00:4]=0x2001e8d8
| 0x0804dafa 0021 movs r1, 0
| 0x0804dafc 0170 strb r1, [r0]
| 0x0804dafe 4148 ldr r0, [0x0804dc06] ; [0x804dc04:4]=0x2001e8d9
| 0x0804db00 0021 movs r1, 0
| 0x0804db02 0170 strb r1, [r0]
| 0x0804db04 4048 ldr r0, [0x0804dc08] ; [0x804dc08:4]=0x2001e8da
| 0x0804db06 0021 movs r1, 0
| 0x0804db08 0170 strb r1, [r0]
\ 0x0804db0a 7047 bx lr
/ (fcn) func_4dc0c_more_bitbang_io 120
| Caller: init_a_lot_gfx_and_lcd
| func_4dc0c_more_bitbang_io ();
| 0x0804dc0c 00b5 push {lr}
| 0x0804dc0e 83b0 sub sp, 0xc
| 0x0804dc10 0121 movs r1, 1 ; 1
| 0x0804dc12 1020 movs r0, 0x10 ; 16
| 0x0804dc14 e8f767ff bl func_36ae6
| 0x0804dc18 0220 movs r0, 2 ; 2
| 0x0804dc1a 8df80500 strb.w r0, [sp, 5]
| 0x0804dc1e 0120 movs r0, 1 ; 1
| 0x0804dc20 8df80400 strb.w r0, [sp, 4]
| 0x0804dc24 0020 movs r0, 0
| 0x0804dc26 8df80600 strb.w r0, [sp, 6]
| 0x0804dc2a 0020 movs r0, 0
| 0x0804dc2c 8df80700 strb.w r0, [sp, 7]
| 0x0804dc30 2420 movs r0, 0x24 ; '$' ; 36
| 0x0804dc32 0090 str r0, [sp]
| 0x0804dc34 00a9 add r1, sp, 0
| 0x0804dc36 4b48 ldr r0, [0x0804dd66] ; [0x804dd64:4]=0x40021000 io_GPIOE
| 0x0804dc38 ddf786fd bl GPIO_Init
| 0x0804dc3c 4ff40050 mov.w r0, 0x2000
| 0x0804dc40 0090 str r0, [sp]
| 0x0804dc42 00a9 add r1, sp, 0
| 0x0804dc44 4848 ldr r0, [0x0804dd68] ; [0x804dd68:4]=0x40020800 io_GPIOC
| 0x0804dc46 ddf77ffd bl GPIO_Init
| 0x0804dc4a 0220 movs r0, 2 ; 2
| 0x0804dc4c 8df80500 strb.w r0, [sp, 5]
| 0x0804dc50 0020 movs r0, 0
| 0x0804dc52 8df80400 strb.w r0, [sp, 4]
| 0x0804dc56 0020 movs r0, 0
| 0x0804dc58 8df80700 strb.w r0, [sp, 7]
| 0x0804dc5c 0820 movs r0, 8 ; 8
| 0x0804dc5e 0090 str r0, [sp]
| 0x0804dc60 00a9 add r1, sp, 0
| 0x0804dc62 4048 ldr r0, [0x0804dd66] ; [0x804dd64:4]=0x40021000 io_GPIOE
| 0x0804dc64 ddf770fd bl GPIO_Init ; clear PC13 = 'B_SHIFT' ?
| 0x0804dc68 4ff40051 mov.w r1, 0x2000
| 0x0804dc6c 3e48 ldr r0, [0x0804dd68] ; [0x804dd68:4]=0x40020800 io_GPIOC
| 0x0804dc6e ddf7cefd bl GPIO_ResetBits
| 0x0804dc72 0421 movs r1, 4 ; 4
| 0x0804dc74 3b48 ldr r0, [0x0804dd64] ; [0x804dd64:4]=0x40021000 io_GPIOE
| 0x0804dc76 ddf7c8fd bl GPIO_SetBits ; set PE2 = 'DMR_CS' ?
| 0x0804dc7a 2021 movs r1, 0x20 ; 32
| 0x0804dc7c 3948 ldr r0, [0x0804dd64] ; [0x804dd64:4]=0x40021000 io_GPIOE
| 0x0804dc7e ddf7c6fd bl GPIO_ResetBits ; clear PE5 = 'DMR_SDI' or 'PLL_DAT' ?
\ 0x0804dc82 07bd pop {r0, r1, r2, pc}
/ (fcn) some_bitband_io 114
| Caller: SPI0_ReadReg_Sub1 some_bitband_io_range
| some_bitband_io ();
| 0x0804dc84 70b5 push {r4, r5, r6, lr}
| 0x0804dc86 0400 movs r4, r0
| 0x0804dc88 4ff40051 mov.w r1, 0x2000
| 0x0804dc8c 3648 ldr r0, [0x0804dd68] ; [0x804dd68:4]=0x40020800 io_GPIOC
| 0x0804dc8e ddf7befd bl GPIO_ResetBits
| 0x0804dc92 0026 movs r6, 0
| 0x0804dc94 0025 movs r5, 0
| ,=< 0x0804dc96 04e0 b 0x804dca2
| .--> 0x0804dc98 401c adds r0, r0, 1
| .---> 0x0804dc9a c0b2 uxtb r0, r0
| ||| 0x0804dc9c 0128 cmp r0, 1 ; 1
| |`==< 0x0804dc9e fbd3 blo 0x804dc98
| | | 0x0804dca0 6d1c adds r5, r5, 1
| | `-> 0x0804dca2 edb2 uxtb r5, r5
| | 0x0804dca4 082d cmp r5, 8 ; 8
| | ,=< 0x0804dca6 23d2 bhs 0x804dcf0
| | | 0x0804dca8 4ff40051 mov.w r1, 0x2000
| | | 0x0804dcac 2e48 ldr r0, [0x0804dd68] ; [0x804dd68:4]=0x40020800 io_GPIOC
| | | 0x0804dcae ddf7acfd bl GPIO_SetBits
| | | 0x0804dcb2 2006 lsls r0, r4, 0x18
| |,==< 0x0804dcb4 04d5 bpl 0x804dcc0
| ||| 0x0804dcb6 2021 movs r1, 0x20 ; 32
| ||| 0x0804dcb8 2a48 ldr r0, [0x0804dd64] ; [0x804dd64:4]=0x40021000 io_GPIOE
| ||| 0x0804dcba ddf7a6fd bl GPIO_SetBits ; set PE5 = 'DMR_SDI' or 'PLL_DAT' ?
| ||| 0x0804dcbe 03e0 b 0x804dcc8
| |`--> 0x0804dcc0 2021 movs r1, 0x20 ; 32
| | | 0x0804dcc2 2848 ldr r0, [0x0804dd66] ; [0x804dd64:4]=0x40021000 io_GPIOE
| | | 0x0804dcc4 ddf7a3fd bl GPIO_ResetBits
| | | 0x0804dcc8 6400 lsls r4, r4, 1
| | | 0x0804dcca 7600 lsls r6, r6, 1
| | | 0x0804dccc 0020 movs r0, 0
| |,==< 0x0804dcce 00e0 b 0x804dcd2
| .----> 0x0804dcd0 401c adds r0, r0, 1
| ||`--> 0x0804dcd2 c0b2 uxtb r0, r0
| || | 0x0804dcd4 0228 cmp r0, 2 ; 2
| `====< 0x0804dcd6 fbd3 blo 0x804dcd0
| | | 0x0804dcd8 4ff40051 mov.w r1, 0x2000
| | | 0x0804dcdc 2248 ldr r0, [0x0804dd68] ; [0x804dd68:4]=0x40020800 io_GPIOC
| | | 0x0804dcde ddf796fd bl GPIO_ResetBits ; clear PC13 = 'B_SHIFT' ?
| | | 0x0804dce2 0821 movs r1, 8 ; 8
| | | 0x0804dce4 1f48 ldr r0, [0x0804dd64] ; [0x804dd64:4]=0x40021000 io_GPIOE
| | | 0x0804dce6 ddf782fd bl GPIO_ReadInputDataBit ; test PE3 ??
| | | 0x0804dcea 0643 orrs r6, r0
| | | 0x0804dcec 0020 movs r0, 0
| `===< 0x0804dcee d4e7 b 0x804dc9a
| `-> 0x0804dcf0 3000 movs r0, r6
| 0x0804dcf2 c0b2 uxtb r0, r0
\ 0x0804dcf4 70bd pop {r4, r5, r6, pc}
/ (fcn) some_bitband_io_range 28
| Caller: c5000_spi0_writereg_1 c5000_spi0_readreg c5000_spi0_writereg c5000_spi0_readreg_maybe
| some_bitband_io_range ();
| 0x0804dcf6 38b5 push {r3, r4, r5, lr}
| 0x0804dcf8 0400 movs r4, r0
| 0x0804dcfa 0d00 movs r5, r1
| ,=< 0x0804dcfc 03e0 b 0x804dd06
| .--> 0x0804dcfe 2078 ldrb r0, [r4]
| || 0x0804dd00 fff7c0ff bl some_bitband_io
| || 0x0804dd04 641c adds r4, r4, 1
| |`-> 0x0804dd06 2800 movs r0, r5
| | 0x0804dd08 451e subs r5, r0, 1
| | 0x0804dd0a 80b2 uxth r0, r0
| | 0x0804dd0c 0028 cmp r0, 0
| `==< 0x0804dd0e f6d1 bne 0x804dcfe
\ 0x0804dd10 31bd pop {r0, r4, r5, pc}
/ (fcn) SPI0_ReadReg_Sub1 36
| Caller: c5000_spi0_readreg
| SPI0_ReadReg_Sub1 ();
| 0x0804dd12 38b5 push {r3, r4, r5, lr}
| 0x0804dd14 0400 movs r4, r0
| 0x0804dd16 0d00 movs r5, r1
| 0x0804dd18 adb2 uxth r5, r5
| 0x0804dd1a 002d cmp r5, 0
| ,=< 0x0804dd1c 05d1 bne 0x804dd2a
| ,==< 0x0804dd1e 09e0 b 0x804dd34
| .---> 0x0804dd20 a520 movs r0, 0xa5 ; 165
| ||| 0x0804dd22 fff7afff bl some_bitband_io
| ||| 0x0804dd26 2070 strb r0, [r4]
| ||| 0x0804dd28 641c adds r4, r4, 1
| ||`-> 0x0804dd2a 2800 movs r0, r5
| || 0x0804dd2c 451e subs r5, r0, 1
| || 0x0804dd2e 80b2 uxth r0, r0
| || 0x0804dd30 0028 cmp r0, 0
| `===< 0x0804dd32 f5d1 bne 0x804dd20
\ `--> 0x0804dd34 31bd pop {r0, r4, r5, pc}
/ (fcn) some_func_pend 24
| Caller: c5000_spi0_writereg_1 c5000_spi0_readreg c5000_spi0_writereg c5000_spi0_readreg_maybe
| some_func_pend ();
| 0x0804dd36 80b5 push {r7, lr}
| 0x0804dd38 00aa add r2, sp, 0
| 0x0804dd3a 0021 movs r1, 0
| 0x0804dd3c 0b48 ldr r0, [0x0804dd6c] ; [0x804dd6c:4]=0x2001e670 sema2_poi
| 0x0804dd3e 0068 ldr r0, [r0]
| 0x0804dd40 f1f708fd bl OSSemPend
| 0x0804dd44 0421 movs r1, 4 ; 4
| 0x0804dd46 0748 ldr r0, [0x0804dd66] ; [0x804dd64:4]=0x40021000 io_GPIOE
| 0x0804dd48 ddf761fd bl GPIO_ResetBits ; clear PE2 = 'DMR_CS' ?
\ 0x0804dd4c 01bd pop {r0, pc}
/ (fcn) some_func_post 20
| Caller: c5000_spi0_writereg_1 c5000_spi0_readreg c5000_spi0_writereg c5000_spi0_readreg_maybe
| some_func_post ();
| 0x0804dd4e 80b5 push {r7, lr}
| 0x0804dd50 0421 movs r1, 4 ; 4
| 0x0804dd52 0448 ldr r0, [0x0804dd66] ; [0x804dd64:4]=0x40021000 io_GPIOE
| 0x0804dd54 ddf759fd bl GPIO_SetBits ; set PE2 = 'DMR_CS' ?
| 0x0804dd58 0448 ldr r0, [0x0804dd6c] ; [0x804dd6c:4]=0x2001e670 sema2_poi
| 0x0804dd5a 0068 ldr r0, [r0]
| 0x0804dd5c f1f772fd bl OSSemPost
\ 0x0804dd60 01bd pop {r0, pc}
/ (fcn) dmr_handle_data 430
| dmr_handle_data ();
| 0x0804dd70 10b5 push {r4, lr}
| 0x0804dd72 6b4a ldr r2, [0x0804df22] ; [0x804df20:4]=0x2001e895 msg_sms_flags_shifted
| 0x0804dd74 1278 ldrb r2, [r2]
| 0x0804dd76 12f00f02 ands r2, r2, 0xf
| 0x0804dd7a 012a cmp r2, 1 ; 1
| ,=< 0x0804dd7c 77d0 beq 0x804de6e
| | 0x0804dd7e 6949 ldr r1, [0x0804df26] ; [0x804df24:4]=0x2001e8ff
| | 0x0804dd80 0978 ldrb r1, [r1]
| | 0x0804dd82 2029 cmp r1, 0x20 ; 32
| ,==< 0x0804dd84 72d1 bne 0x804de6c
| || 0x0804dd86 8178 ldrb r1, [r0, 2]
| || 0x0804dd88 c9b2 uxtb r1, r1
| || 0x0804dd8a c909 lsrs r1, r1, 7
| || 0x0804dd8c 664a ldr r2, [0x0804df28] ; [0x804df28:4]=0x2001e3e8
| || 0x0804dd8e 1170 strb r1, [r2]
| || 0x0804dd90 8178 ldrb r1, [r0, 2]
| || 0x0804dd92 c1f38011 ubfx r1, r1, 6, 1
| || 0x0804dd96 644a ldr r2, [0x0804df2a] ; [0x804df28:4]=0x2001e3e8
| || 0x0804dd98 5170 strb r1, [r2, 1]
| || 0x0804dd9a 8178 ldrb r1, [r0, 2]
| || 0x0804dd9c c1f34011 ubfx r1, r1, 5, 1
| || 0x0804dda0 614a ldr r2, [0x0804df28] ; [0x804df28:4]=0x2001e3e8
| || 0x0804dda2 9170 strb r1, [r2, 2]
| || 0x0804dda4 8178 ldrb r1, [r0, 2]
| || 0x0804dda6 c1f30011 ubfx r1, r1, 4, 1
| || 0x0804ddaa 5f4a ldr r2, [0x0804df2a] ; [0x804df28:4]=0x2001e3e8
| || 0x0804ddac d170 strb r1, [r2, 3]
| || 0x0804ddae 8178 ldrb r1, [r0, 2]
| || 0x0804ddb0 11f00f01 ands r1, r1, 0xf
| || 0x0804ddb4 c278 ldrb r2, [r0, 3]
| || 0x0804ddb6 d2b2 uxtb r2, r2
| || 0x0804ddb8 5209 lsrs r2, r2, 5
| || 0x0804ddba 52eac101 orrs.w r1, r2, r1, lsl 3
| || 0x0804ddbe 5a4a ldr r2, [0x0804df2a] ; [0x804df28:4]=0x2001e3e8
| || 0x0804ddc0 1171 strb r1, [r2, 4]
| || 0x0804ddc2 c178 ldrb r1, [r0, 3]
| || 0x0804ddc4 11f01f01 ands r1, r1, 0x1f
| || 0x0804ddc8 0279 ldrb r2, [r0, 4]
| || 0x0804ddca d2b2 uxtb r2, r2
| || 0x0804ddcc 9209 lsrs r2, r2, 6
| || 0x0804ddce 52ea8101 orrs.w r1, r2, r1, lsl 2
| || 0x0804ddd2 554a ldr r2, [0x0804df2a] ; [0x804df28:4]=0x2001e3e8
| || 0x0804ddd4 5171 strb r1, [r2, 5]
| || 0x0804ddd6 0179 ldrb r1, [r0, 4]
| || 0x0804ddd8 11f03f01 ands r1, r1, 0x3f
| || 0x0804dddc 524a ldr r2, [0x0804df28] ; [0x804df28:4]=0x2001e3e8
| || 0x0804ddde 9171 strb r1, [r2, 6]
| || 0x0804dde0 4179 ldrb r1, [r0, 5]
| || 0x0804dde2 8279 ldrb r2, [r0, 6]
| || 0x0804dde4 d2b2 uxtb r2, r2
| || 0x0804dde6 9208 lsrs r2, r2, 2
| || 0x0804dde8 d2b2 uxtb r2, r2
| || 0x0804ddea 52ea8111 orrs.w r1, r2, r1, lsl 6
| || 0x0804ddee 4e4a ldr r2, [0x0804df2a] ; [0x804df28:4]=0x2001e3e8
| || 0x0804ddf0 1181 strh r1, [r2, 8]
| || 0x0804ddf2 8179 ldrb r1, [r0, 6]
| || 0x0804ddf4 c279 ldrb r2, [r0, 7]
| || 0x0804ddf6 d2b2 uxtb r2, r2
| || 0x0804ddf8 9208 lsrs r2, r2, 2
| || 0x0804ddfa 52ea8111 orrs.w r1, r2, r1, lsl 6
| || 0x0804ddfe 4a4a ldr r2, [0x0804df2a] ; [0x804df28:4]=0x2001e3e8
| || 0x0804de00 9172 strb r1, [r2, 0xa]
| || 0x0804de02 c179 ldrb r1, [r0, 7]
| || 0x0804de04 11f00301 ands r1, r1, 3
| || 0x0804de08 027a ldrb r2, [r0, 8]
| || 0x0804de0a d2b2 uxtb r2, r2
| || 0x0804de0c 1209 lsrs r2, r2, 4
| || 0x0804de0e 52ea0111 orrs.w r1, r2, r1, lsl 4
| || 0x0804de12 454a ldr r2, [0x0804df2a] ; [0x804df28:4]=0x2001e3e8
| || 0x0804de14 d172 strb r1, [r2, 0xb]
| || 0x0804de16 017a ldrb r1, [r0, 8]
| || 0x0804de18 11f00f01 ands r1, r1, 0xf
| || 0x0804de1c 427a ldrb r2, [r0, 9]
| || 0x0804de1e 9200 lsls r2, r2, 2
| || 0x0804de20 52ea8121 orrs.w r1, r2, r1, lsl 10
| || 0x0804de24 807a ldrb r0, [r0, 0xa]
| || 0x0804de26 c0b2 uxtb r0, r0
| || 0x0804de28 8009 lsrs r0, r0, 6
| || 0x0804de2a c0b2 uxtb r0, r0
| || 0x0804de2c 0843 orrs r0, r1
| || 0x0804de2e 3e49 ldr r1, [0x0804df2a] ; [0x804df28:4]=0x2001e3e8
| || 0x0804de30 8881 strh r0, [r1, 0xc]
| || 0x0804de32 3d48 ldr r0, [0x0804df2a] ; [0x804df28:4]=0x2001e3e8
| || 0x0804de34 0021 movs r1, 0
| || 0x0804de36 c181 strh r1, [r0, 0xe]
| || 0x0804de38 3b48 ldr r0, [0x0804df28] ; [0x804df28:4]=0x2001e3e8
| || 0x0804de3a 0021 movs r1, 0
| || 0x0804de3c 0182 strh r1, [r0, 0x10]
| || 0x0804de3e 3b48 ldr r0, [0x0804df2e] ; [0x804df2c:4]=0x2001e700 menu_memory_poi
| || 0x0804de40 0068 ldr r0, [r0]
| || 0x0804de42 0068 ldr r0, [r0]
| || 0x0804de44 3a49 ldr r1, [0x0804df30] ; [0x804df30:4]=0x2001e6ec
| || 0x0804de46 0968 ldr r1, [r1]
| || 0x0804de48 3a4a ldr r2, [0x0804df34] ; [0x804df34:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0804de4a 12eb8101 adds.w r1, r2, r1, lsl 2
| || 0x0804de4e d1f8c813 ldr.w r1, [r1, 0x3c8]
| || 0x0804de52 8842 cmp r0, r1
| ,===< 0x0804de54 0ad1 bne 0x804de6c
| ||| 0x0804de56 3848 ldr r0, [0x0804df3a] ; [0x804df38:4]=0x2001e8f5 msg_status_flag1
| ||| 0x0804de58 0721 movs r1, 7 ; 7
| ||| 0x0804de5a 0170 strb r1, [r0]
| ||| 0x0804de5c 3748 ldr r0, [0x0804df3c] ; [0x804df3c:4]=0x2001e8a8 beep_code_send
| ||| 0x0804de5e 0d21 movs r1, 0xd ; 13
| ||| 0x0804de60 0170 strb r1, [r0]
| ||| 0x0804de62 3649 ldr r1, [0x0804df3e] ; [0x804df3c:4]=0x2001e8a8 beep_code_send
| ||| 0x0804de64 3648 ldr r0, [0x0804df40] ; [0x804df40:4]=0x2001e67c event2_mbox_poi_beep
| ||| 0x0804de66 0068 ldr r0, [r0]
| ||| 0x0804de68 e3f798f9 bl md380_OSMboxPost
| ,``--> 0x0804de6c 56e0 b 0x804df1c
| | `-> 0x0804de6e 354a ldr r2, [0x0804df46] ; [0x804df44:4]=0x2001e8f8
| | 0x0804de70 1278 ldrb r2, [r2]
| | 0x0804de72 002a cmp r2, 0
| | ,=< 0x0804de74 02d0 beq 0x804de7c
| | | 0x0804de76 001d adds r0, r0, 4
| | | 0x0804de78 891e subs r1, r1, 2
| | ,==< 0x0804de7a 00e0 b 0x804de7e
| | |`-> 0x0804de7c 801c adds r0, r0, 2
| | `--> 0x0804de7e 0022 movs r2, 0
| | ,=< 0x0804de80 17e0 b 0x804deb2
| | .--> 0x0804de82 314b ldr r3, [0x0804df4a] ; [0x804df48:4]=0x200049f8
| | || 0x0804de84 1b68 ldr r3, [r3]
| | || 0x0804de86 0478 ldrb r4, [r0]
| | || 0x0804de88 1c70 strb r4, [r3]
| | || 0x0804de8a 2f4b ldr r3, [0x0804df4a] ; [0x804df48:4]=0x200049f8
| | || 0x0804de8c 1b68 ldr r3, [r3]
| | || 0x0804de8e 2f4c ldr r4, [0x0804df4e] ; [0x804df4c:4]=0x20017eac
| | || 0x0804de90 1b1b subs r3, r3, r4
| | || 0x0804de92 40f2e454 movw r4, 0x5e4 ; 1508
| | || 0x0804de96 a342 cmp r3, r4
| |,===< 0x0804de98 04da bge 0x804dea4
| |||| 0x0804de9a 2b4b ldr r3, [0x0804df4a] ; [0x804df48:4]=0x200049f8
| |||| 0x0804de9c 1b68 ldr r3, [r3]
| |||| 0x0804de9e 5b1c adds r3, r3, 1
| |||| 0x0804dea0 294c ldr r4, [0x0804df48] ; [0x804df48:4]=0x200049f8
| |||| 0x0804dea2 2360 str r3, [r4]
| |`---> 0x0804dea4 401c adds r0, r0, 1
| | || 0x0804dea6 2a4b ldr r3, [0x0804df52] ; [0x804df50:4]=0x2001e810
| | || 0x0804dea8 1b88 ldrh r3, [r3]
| | || 0x0804deaa 5b1c adds r3, r3, 1
| | || 0x0804deac 284c ldr r4, [0x0804df50] ; [0x804df50:4]=0x2001e810
| | || 0x0804deae 2380 strh r3, [r4]
| | || 0x0804deb0 521c adds r2, r2, 1
| | |`-> 0x0804deb2 d2b2 uxtb r2, r2
| | | 0x0804deb4 c9b2 uxtb r1, r1
| | | 0x0804deb6 8a42 cmp r2, r1
| | `==< 0x0804deb8 e3d3 blo 0x804de82
| | 0x0804deba 2648 ldr r0, [0x0804df56] ; [0x804df54:4]=0x2001e8f6
| | 0x0804debc 0078 ldrb r0, [r0]
| | 0x0804debe 401e subs r0, r0, 1
| | 0x0804dec0 2449 ldr r1, [0x0804df54] ; [0x804df54:4]=0x2001e8f6
| | 0x0804dec2 0870 strb r0, [r1]
| | 0x0804dec4 2348 ldr r0, [0x0804df54] ; [0x804df54:4]=0x2001e8f6
| | 0x0804dec6 0078 ldrb r0, [r0]
| | 0x0804dec8 0028 cmp r0, 0
| | ,=< 0x0804deca 27d1 bne 0x804df1c
| | | 0x0804decc 1e48 ldr r0, [0x0804df48] ; [0x804df48:4]=0x200049f8
| | | 0x0804dece 0068 ldr r0, [r0]
| | | 0x0804ded0 10f8040c ldrb r0, [r0, -0x4]
| | | 0x0804ded4 2049 ldr r1, [0x0804df58] ; [0x804df58:4]=0x2001e6bc
| | | 0x0804ded6 0870 strb r0, [r1]
| | | 0x0804ded8 1f48 ldr r0, [0x0804df58] ; [0x804df58:4]=0x2001e6bc
| | | 0x0804deda 1b49 ldr r1, [0x0804df4a] ; [0x804df48:4]=0x200049f8
| | | 0x0804dedc 0968 ldr r1, [r1]
| | | 0x0804dede 11f8031c ldrb r1, [r1, -0x3]
| | | 0x0804dee2 4170 strb r1, [r0, 1]
| | | 0x0804dee4 1c48 ldr r0, [0x0804df58] ; [0x804df58:4]=0x2001e6bc
| | | 0x0804dee6 1849 ldr r1, [0x0804df4a] ; [0x804df48:4]=0x200049f8
| | | 0x0804dee8 0968 ldr r1, [r1]
| | | 0x0804deea 11f8021c ldrb r1, [r1, -0x2]
| | | 0x0804deee 8170 strb r1, [r0, 2]
| | | 0x0804def0 1948 ldr r0, [0x0804df58] ; [0x804df58:4]=0x2001e6bc
| | | 0x0804def2 1549 ldr r1, [0x0804df4a] ; [0x804df48:4]=0x200049f8
| | | 0x0804def4 0968 ldr r1, [r1]
| | | 0x0804def6 11f8011c ldrb r1, [r1, -0x1]
| | | 0x0804defa c170 strb r1, [r0, 3]
| | | 0x0804defc 1448 ldr r0, [0x0804df50] ; [0x804df50:4]=0x2001e810
| | | 0x0804defe 0088 ldrh r0, [r0]
| | | 0x0804df00 1649 ldr r1, [0x0804df5c] ; [0x804df5c:4]=0x2001e8f7
| | | 0x0804df02 0978 ldrb r1, [r1]
| | | 0x0804df04 401a subs r0, r0, r1
| | | 0x0804df06 001f subs r0, r0, 4
| | | 0x0804df08 1149 ldr r1, [0x0804df50] ; [0x804df50:4]=0x2001e810
| | | 0x0804df0a 0880 strh r0, [r1]
| | | 0x0804df0c 1448 ldr r0, [0x0804df60] ; [0x804df60:4]=0x2001e8ab
| | | ;-- phone_ringing:
| | | 0x0804df0e 1c21 movs r1, 0x1c ; 28
| | | 0x0804df10 0170 strb r1, [r0]
| | | 0x0804df12 1349 ldr r1, [0x0804df62] ; [0x804df60:4]=0x2001e8ab
| | | 0x0804df14 1348 ldr r0, [0x0804df64] ; [0x804df64:4]=0x2001e660 event4_mbox_poi
| | | 0x0804df16 0068 ldr r0, [r0]
| | | 0x0804df18 e3f740f9 bl md380_OSMboxPost
\ `--`-> 0x0804df1c 10bd pop {r4, pc}
/ (fcn) func_4df68 86
| func_4df68 ();
| 0x0804df68 10b4 push {r4}
| 0x0804df6a d2b2 uxtb r2, r2
| 0x0804df6c 12f00704 ands r4, r2, 7
| 0x0804df70 022c cmp r4, 2 ; 2
| ,=< 0x0804df72 05d0 beq 0x804df80
| | 0x0804df74 d2b2 uxtb r2, r2
| | 0x0804df76 042a cmp r2, 4 ; 4
| ,==< 0x0804df78 02d0 beq 0x804df80
| || 0x0804df7a d2b2 uxtb r2, r2
| || 0x0804df7c 052a cmp r2, 5 ; 5
| ,===< 0x0804df7e 02d1 bne 0x804df86
| |``-> 0x0804df80 0022 movs r2, 0
| | 0x0804df82 1a70 strb r2, [r3]
| | ,=< 0x0804df84 01e0 b 0x804df8a
| `---> 0x0804df86 8022 movs r2, 0x80 ; 128
| | 0x0804df88 1a70 strb r2, [r3]
| `-> 0x0804df8a 524a ldr r2, [0x0804e0d6] ; [0x804e0d4:4]=0x2001e898 simplex_or_repeater_flagword
| 0x0804df8c 1278 ldrb r2, [r2]
| 0x0804df8e 012a cmp r2, 1 ; 1
| ,=< 0x0804df90 03d1 bne 0x804df9a
| | 0x0804df92 1a78 ldrb r2, [r3]
| | 0x0804df94 52f00d02 orrs r2, r2, 0xd
| | 0x0804df98 1a70 strb r2, [r3]
| `-> 0x0804df9a 0522 movs r2, 5 ; 5
| 0x0804df9c 5a70 strb r2, [r3, 1]
| 0x0804df9e 0a0c lsrs r2, r1, 0x10
| 0x0804dfa0 9a70 strb r2, [r3, 2]
| 0x0804dfa2 0a0a lsrs r2, r1, 8
| 0x0804dfa4 da70 strb r2, [r3, 3]
| 0x0804dfa6 1971 strb r1, [r3, 4]
| 0x0804dfa8 010c lsrs r1, r0, 0x10
| 0x0804dfaa 5971 strb r1, [r3, 5]
| 0x0804dfac 010a lsrs r1, r0, 8
| 0x0804dfae 9971 strb r1, [r3, 6]
| 0x0804dfb0 d871 strb r0, [r3, 7]
| 0x0804dfb2 0020 movs r0, 0
| 0x0804dfb4 1872 strb r0, [r3, 8]
| 0x0804dfb6 1a20 movs r0, 0x1a ; 26
| 0x0804dfb8 5872 strb r0, [r3, 9]
| 0x0804dfba 10bc pop {r4}
\ 0x0804dfbc 7047 bx lr
/ (fcn) func_4dfbe 86
| func_4dfbe ();
| 0x0804dfbe 10b4 push {r4}
| 0x0804dfc0 d2b2 uxtb r2, r2
| 0x0804dfc2 12f00704 ands r4, r2, 7
| 0x0804dfc6 022c cmp r4, 2 ; 2
| ,=< 0x0804dfc8 05d0 beq 0x804dfd6
| | 0x0804dfca d2b2 uxtb r2, r2
| | 0x0804dfcc 042a cmp r2, 4 ; 4
| ,==< 0x0804dfce 02d0 beq 0x804dfd6
| || 0x0804dfd0 d2b2 uxtb r2, r2
| || 0x0804dfd2 052a cmp r2, 5 ; 5
| ,===< 0x0804dfd4 02d1 bne 0x804dfdc
| |``-> 0x0804dfd6 0022 movs r2, 0
| | 0x0804dfd8 1a70 strb r2, [r3]
| | ,=< 0x0804dfda 01e0 b 0x804dfe0
| `---> 0x0804dfdc 8022 movs r2, 0x80 ; 128
| | 0x0804dfde 1a70 strb r2, [r3]
| `-> 0x0804dfe0 3c4a ldr r2, [0x0804e0d4] ; [0x804e0d4:4]=0x2001e898 simplex_or_repeater_flagword
| 0x0804dfe2 1278 ldrb r2, [r2]
| 0x0804dfe4 012a cmp r2, 1 ; 1
| ,=< 0x0804dfe6 03d1 bne 0x804dff0
| | 0x0804dfe8 1a78 ldrb r2, [r3]
| | 0x0804dfea 52f00d02 orrs r2, r2, 0xd
| | 0x0804dfee 1a70 strb r2, [r3]
| `-> 0x0804dff0 0522 movs r2, 5 ; 5
| 0x0804dff2 5a70 strb r2, [r3, 1]
| 0x0804dff4 0a0c lsrs r2, r1, 0x10
| 0x0804dff6 9a70 strb r2, [r3, 2]
| 0x0804dff8 0a0a lsrs r2, r1, 8
| 0x0804dffa da70 strb r2, [r3, 3]
| 0x0804dffc 1971 strb r1, [r3, 4]
| 0x0804dffe 010c lsrs r1, r0, 0x10
| 0x0804e000 5971 strb r1, [r3, 5]
| 0x0804e002 010a lsrs r1, r0, 8
| 0x0804e004 9971 strb r1, [r3, 6]
| 0x0804e006 d871 strb r0, [r3, 7]
| 0x0804e008 0020 movs r0, 0
| 0x0804e00a 1872 strb r0, [r3, 8]
| 0x0804e00c 1b20 movs r0, 0x1b ; 27
| 0x0804e00e 5872 strb r0, [r3, 9]
| 0x0804e010 10bc pop {r4}
\ 0x0804e012 7047 bx lr
/ (fcn) func_4e014 192
| func_4e014 ();
| 0x0804e014 3049 ldr r1, [0x0804e0d8] ; [0x804e0d8:4]=0x2001e8bc
| 0x0804e016 7022 movs r2, 0x70 ; 'p' ; 112
| 0x0804e018 0a70 strb r2, [r1]
| 0x0804e01a 3049 ldr r1, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e01c 0978 ldrb r1, [r1]
| 0x0804e01e 2f4a ldr r2, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e020 5278 ldrb r2, [r2, 1]
| 0x0804e022 12f00102 ands r2, r2, 1
| 0x0804e026 9201 lsls r2, r2, 6
| 0x0804e028 52eac111 orrs.w r1, r2, r1, lsl 7
| 0x0804e02c 2b4a ldr r2, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e02e 9278 ldrb r2, [r2, 2]
| 0x0804e030 12f00102 ands r2, r2, 1
| 0x0804e034 51ea4211 orrs.w r1, r1, r2, lsl 5
| 0x0804e038 284a ldr r2, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e03a d278 ldrb r2, [r2, 3]
| 0x0804e03c 12f00102 ands r2, r2, 1
| 0x0804e040 51ea0211 orrs.w r1, r1, r2, lsl 4
| 0x0804e044 254a ldr r2, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e046 1279 ldrb r2, [r2, 4]
| 0x0804e048 d2b2 uxtb r2, r2
| 0x0804e04a 51ea1211 orrs.w r1, r1, r2, lsr 4
| 0x0804e04e 0170 strb r1, [r0]
| 0x0804e050 2249 ldr r1, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e052 0979 ldrb r1, [r1, 4]
| 0x0804e054 11f00e01 ands r1, r1, 0xe
| 0x0804e058 204a ldr r2, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e05a 5279 ldrb r2, [r2, 5]
| 0x0804e05c c2f38402 ubfx r2, r2, 2, 5
| 0x0804e060 52ea0111 orrs.w r1, r2, r1, lsl 4
| 0x0804e064 4170 strb r1, [r0, 1]
| 0x0804e066 1d49 ldr r1, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e068 4979 ldrb r1, [r1, 5]
| 0x0804e06a 1c4a ldr r2, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e06c 9279 ldrb r2, [r2, 6]
| 0x0804e06e 12f03f02 ands r2, r2, 0x3f
| 0x0804e072 52ea8111 orrs.w r1, r2, r1, lsl 6
| 0x0804e076 8170 strb r1, [r0, 2]
| 0x0804e078 1849 ldr r1, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e07a 0989 ldrh r1, [r1, 8]
| 0x0804e07c 89b2 uxth r1, r1
| 0x0804e07e 8909 lsrs r1, r1, 6
| 0x0804e080 c170 strb r1, [r0, 3]
| 0x0804e082 1649 ldr r1, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e084 0989 ldrh r1, [r1, 8]
| 0x0804e086 154a ldr r2, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e088 927a ldrb r2, [r2, 0xa]
| 0x0804e08a d2b2 uxtb r2, r2
| 0x0804e08c 9209 lsrs r2, r2, 6
| 0x0804e08e 52ea8101 orrs.w r1, r2, r1, lsl 2
| 0x0804e092 0171 strb r1, [r0, 4]
| 0x0804e094 1149 ldr r1, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e096 897a ldrb r1, [r1, 0xa]
| 0x0804e098 104a ldr r2, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e09a d27a ldrb r2, [r2, 0xb]
| 0x0804e09c c2f30112 ubfx r2, r2, 4, 2
| 0x0804e0a0 52ea8101 orrs.w r1, r2, r1, lsl 2
| 0x0804e0a4 4171 strb r1, [r0, 5]
| 0x0804e0a6 0d49 ldr r1, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e0a8 c97a ldrb r1, [r1, 0xb]
| 0x0804e0aa 0c4a ldr r2, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e0ac 9289 ldrh r2, [r2, 0xc]
| 0x0804e0ae 9212 asrs r2, r2, 0xa
| 0x0804e0b0 12f00f02 ands r2, r2, 0xf
| 0x0804e0b4 52ea0111 orrs.w r1, r2, r1, lsl 4
| 0x0804e0b8 8171 strb r1, [r0, 6]
| 0x0804e0ba 0849 ldr r1, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e0bc 8989 ldrh r1, [r1, 0xc]
| 0x0804e0be 89b2 uxth r1, r1
| 0x0804e0c0 8908 lsrs r1, r1, 2
| 0x0804e0c2 c171 strb r1, [r0, 7]
| 0x0804e0c4 0549 ldr r1, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e0c6 8989 ldrh r1, [r1, 0xc]
| 0x0804e0c8 8901 lsls r1, r1, 6
| 0x0804e0ca 0172 strb r1, [r0, 8]
| 0x0804e0cc 0349 ldr r1, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e0ce 098a ldrh r1, [r1, 0x10]
| 0x0804e0d0 4172 strb r1, [r0, 9]
\ 0x0804e0d2 7047 bx lr
/ (fcn) func_4e014 192
| func_4e014 ();
| 0x0804e014 3049 ldr r1, [0x0804e0d8] ; [0x804e0d8:4]=0x2001e8bc
| 0x0804e016 7022 movs r2, 0x70 ; 'p' ; 112
| 0x0804e018 0a70 strb r2, [r1]
| 0x0804e01a 3049 ldr r1, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e01c 0978 ldrb r1, [r1]
| 0x0804e01e 2f4a ldr r2, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e020 5278 ldrb r2, [r2, 1]
| 0x0804e022 12f00102 ands r2, r2, 1
| 0x0804e026 9201 lsls r2, r2, 6
| 0x0804e028 52eac111 orrs.w r1, r2, r1, lsl 7
| 0x0804e02c 2b4a ldr r2, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e02e 9278 ldrb r2, [r2, 2]
| 0x0804e030 12f00102 ands r2, r2, 1
| 0x0804e034 51ea4211 orrs.w r1, r1, r2, lsl 5
| 0x0804e038 284a ldr r2, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e03a d278 ldrb r2, [r2, 3]
| 0x0804e03c 12f00102 ands r2, r2, 1
| 0x0804e040 51ea0211 orrs.w r1, r1, r2, lsl 4
| 0x0804e044 254a ldr r2, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e046 1279 ldrb r2, [r2, 4]
| 0x0804e048 d2b2 uxtb r2, r2
| 0x0804e04a 51ea1211 orrs.w r1, r1, r2, lsr 4
| 0x0804e04e 0170 strb r1, [r0]
| 0x0804e050 2249 ldr r1, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e052 0979 ldrb r1, [r1, 4]
| 0x0804e054 11f00e01 ands r1, r1, 0xe
| 0x0804e058 204a ldr r2, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e05a 5279 ldrb r2, [r2, 5]
| 0x0804e05c c2f38402 ubfx r2, r2, 2, 5
| 0x0804e060 52ea0111 orrs.w r1, r2, r1, lsl 4
| 0x0804e064 4170 strb r1, [r0, 1]
| 0x0804e066 1d49 ldr r1, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e068 4979 ldrb r1, [r1, 5]
| 0x0804e06a 1c4a ldr r2, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e06c 9279 ldrb r2, [r2, 6]
| 0x0804e06e 12f03f02 ands r2, r2, 0x3f
| 0x0804e072 52ea8111 orrs.w r1, r2, r1, lsl 6
| 0x0804e076 8170 strb r1, [r0, 2]
| 0x0804e078 1849 ldr r1, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e07a 0989 ldrh r1, [r1, 8]
| 0x0804e07c 89b2 uxth r1, r1
| 0x0804e07e 8909 lsrs r1, r1, 6
| 0x0804e080 c170 strb r1, [r0, 3]
| 0x0804e082 1649 ldr r1, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e084 0989 ldrh r1, [r1, 8]
| 0x0804e086 154a ldr r2, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e088 927a ldrb r2, [r2, 0xa]
| 0x0804e08a d2b2 uxtb r2, r2
| 0x0804e08c 9209 lsrs r2, r2, 6
| 0x0804e08e 52ea8101 orrs.w r1, r2, r1, lsl 2
| 0x0804e092 0171 strb r1, [r0, 4]
| 0x0804e094 1149 ldr r1, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e096 897a ldrb r1, [r1, 0xa]
| 0x0804e098 104a ldr r2, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e09a d27a ldrb r2, [r2, 0xb]
| 0x0804e09c c2f30112 ubfx r2, r2, 4, 2
| 0x0804e0a0 52ea8101 orrs.w r1, r2, r1, lsl 2
| 0x0804e0a4 4171 strb r1, [r0, 5]
| 0x0804e0a6 0d49 ldr r1, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e0a8 c97a ldrb r1, [r1, 0xb]
| 0x0804e0aa 0c4a ldr r2, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e0ac 9289 ldrh r2, [r2, 0xc]
| 0x0804e0ae 9212 asrs r2, r2, 0xa
| 0x0804e0b0 12f00f02 ands r2, r2, 0xf
| 0x0804e0b4 52ea0111 orrs.w r1, r2, r1, lsl 4
| 0x0804e0b8 8171 strb r1, [r0, 6]
| 0x0804e0ba 0849 ldr r1, [0x0804e0de] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e0bc 8989 ldrh r1, [r1, 0xc]
| 0x0804e0be 89b2 uxth r1, r1
| 0x0804e0c0 8908 lsrs r1, r1, 2
| 0x0804e0c2 c171 strb r1, [r0, 7]
| 0x0804e0c4 0549 ldr r1, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e0c6 8989 ldrh r1, [r1, 0xc]
| 0x0804e0c8 8901 lsls r1, r1, 6
| 0x0804e0ca 0172 strb r1, [r0, 8]
| 0x0804e0cc 0349 ldr r1, [0x0804e0dc] ; [0x804e0dc:4]=0x2001e3d4
| 0x0804e0ce 098a ldrh r1, [r1, 0x10]
| 0x0804e0d0 4172 strb r1, [r0, 9]
\ 0x0804e0d2 7047 bx lr
/ (fcn) func_4e0e0 34
| Caller: func_4e102
| func_4e0e0 ();
| 0x0804e0e0 40b2 sxtb r0, r0
| 0x0804e0e2 0028 cmp r0, 0
| ,=< 0x0804e0e4 08d5 bpl 0x804e0f8
| | 0x0804e0e6 40b2 sxtb r0, r0
| | 0x0804e0e8 10f00f00 ands r0, r0, 0xf
| | 0x0804e0ec 764a ldr r2, [0x0804e2c8] ; [0x804e2c8:4]=0xe000ed18
| | 0x0804e0ee 8018 adds r0, r0, r2
| | 0x0804e0f0 0901 lsls r1, r1, 4
| | 0x0804e0f2 00f8041c strb r1, [r0, -0x4]
| ,==< 0x0804e0f6 03e0 b 0x804e100
| |`-> 0x0804e0f8 40b2 sxtb r0, r0
| | 0x0804e0fa 744a ldr r2, [0x0804e2ce] ; [0x804e2cc:4]=0xe000e400
| | 0x0804e0fc 0901 lsls r1, r1, 4
| | 0x0804e0fe 8154 strb r1, [r0, r2]
\ `--> 0x0804e100 7047 bx lr
/ (fcn) func_4e102 48
| Caller: func_4e2e0
| func_4e102 ();
| 0x0804e102 80b5 push {r7, lr}
| 0x0804e104 b0f1807f cmp.w r0, 0x1000000
| ,=< 0x0804e108 01d3 blo 0x804e10e
| | 0x0804e10a 0120 movs r0, 1 ; 1
| ,==< 0x0804e10c 10e0 b 0x804e130
| |`-> 0x0804e10e 0002 lsls r0, r0, 8
| | 0x0804e110 000a lsrs r0, r0, 8
| | 0x0804e112 401e subs r0, r0, 1
| | 0x0804e114 6e49 ldr r1, [0x0804e2d0] ; [0x804e2d0:4]=0xe000e014
| | 0x0804e116 0860 str r0, [r1]
| | 0x0804e118 0f21 movs r1, 0xf ; 15
| | 0x0804e11a 5ff0ff30 movs.w r0, -1 ; -1
| | 0x0804e11e fff7dfff bl func_4e0e0
| | 0x0804e122 6c48 ldr r0, [0x0804e2d6] ; [0x804e2d4:4]=0xe000e018
| | 0x0804e124 0021 movs r1, 0
| | 0x0804e126 0160 str r1, [r0]
| | 0x0804e128 6b48 ldr r0, [0x0804e2d8] ; [0x804e2d8:4]=0xe000e010
| | 0x0804e12a 0721 movs r1, 7 ; 7
| | 0x0804e12c 0160 str r1, [r0]
| | 0x0804e12e 0020 movs r0, 0
\ `--> 0x0804e130 02bd pop {r1, pc}
/ (fcn) ClearSomeHalfWordInRAM 8
| Caller: InitGlobalsAndStartRealTimeKernel
| ClearSomeHalfWordInRAM ();
| 0x0804e132 6a48 ldr r0, [0x0804e2de] ; [0x804e2dc:4]=0x2001e84e
| 0x0804e134 0021 movs r1, 0
| 0x0804e136 0180 strh r1, [r0]
\ 0x0804e138 7047 bx lr
/ (fcn) DoNothing_only_BX_LR 2
| Caller: InitGlobalsAndStartRealTimeKernel
| DoNothing_only_BX_LR ();
\ 0x0804e13a 7047 bx lr
/ (fcn) func_4e13c 8
| Caller: func_44478
| func_4e13c ();
| 0x0804e13c 80b5 push {r7, lr}
| 0x0804e13e 00f0ddf8 bl func_4e2fc_BX_LR_only
\ 0x0804e142 01bd pop {r0, pc}
/ (fcn) OSIdleTaskHook 8
| Caller: OS_IdleTask
| OSIdleTaskHook ();
| 0x0804e144 80b5 push {r7, lr}
| 0x0804e146 e4f74ef9 bl WaitForInterruptInIdle
\ 0x0804e14a 01bd pop {r0, pc}
/ (fcn) func_4e14c 324
| Caller: OSTaskCreateExt func_4e4cc
| func_4e14c ();
| 0x0804e14c 121f subs r2, r2, 4
| 0x0804e14e 4ff48053 mov.w r3, 0x1000
| 0x0804e152 1360 str r3, [r2]
| 0x0804e154 121f subs r2, r2, 4
| 0x0804e156 1523 movs r3, 0x15 ; 21
| 0x0804e158 1360 str r3, [r2]
| 0x0804e15a 121f subs r2, r2, 4
| 0x0804e15c 1423 movs r3, 0x14 ; 20
| 0x0804e15e 1360 str r3, [r2]
| 0x0804e160 121f subs r2, r2, 4
| 0x0804e162 1323 movs r3, 0x13 ; 19
| 0x0804e164 1360 str r3, [r2]
| 0x0804e166 121f subs r2, r2, 4
| 0x0804e168 1223 movs r3, 0x12 ; 18
| 0x0804e16a 1360 str r3, [r2]
| 0x0804e16c 121f subs r2, r2, 4
| 0x0804e16e 1123 movs r3, 0x11 ; 17
| 0x0804e170 1360 str r3, [r2]
| 0x0804e172 121f subs r2, r2, 4
| 0x0804e174 1023 movs r3, 0x10 ; 16
| 0x0804e176 1360 str r3, [r2]
| 0x0804e178 121f subs r2, r2, 4
| 0x0804e17a 0923 movs r3, 9 ; 9
| 0x0804e17c 1360 str r3, [r2]
| 0x0804e17e 121f subs r2, r2, 4
| 0x0804e180 0823 movs r3, 8 ; 8
| 0x0804e182 1360 str r3, [r2]
| 0x0804e184 121f subs r2, r2, 4
| 0x0804e186 0723 movs r3, 7 ; 7
| 0x0804e188 1360 str r3, [r2]
| 0x0804e18a 121f subs r2, r2, 4
| 0x0804e18c 0623 movs r3, 6 ; 6
| 0x0804e18e 1360 str r3, [r2]
| 0x0804e190 121f subs r2, r2, 4
| 0x0804e192 0523 movs r3, 5 ; 5
| 0x0804e194 1360 str r3, [r2]
| 0x0804e196 121f subs r2, r2, 4
| 0x0804e198 0423 movs r3, 4 ; 4
| 0x0804e19a 1360 str r3, [r2]
| 0x0804e19c 121f subs r2, r2, 4
| 0x0804e19e 0323 movs r3, 3 ; 3
| 0x0804e1a0 1360 str r3, [r2]
| 0x0804e1a2 121f subs r2, r2, 4
| 0x0804e1a4 0223 movs r3, 2 ; 2
| 0x0804e1a6 1360 str r3, [r2]
| 0x0804e1a8 121f subs r2, r2, 4
| 0x0804e1aa 0123 movs r3, 1 ; 1
| 0x0804e1ac 1360 str r3, [r2]
| 0x0804e1ae 121f subs r2, r2, 4
| 0x0804e1b0 0023 movs r3, 0
| 0x0804e1b2 1360 str r3, [r2]
| 0x0804e1b4 121f subs r2, r2, 4
| 0x0804e1b6 5ff08073 movs.w r3, 0x1000000
| 0x0804e1ba 1360 str r3, [r2]
| 0x0804e1bc 121f subs r2, r2, 4
| 0x0804e1be 1060 str r0, [r2]
| 0x0804e1c0 121f subs r2, r2, 4
| 0x0804e1c2 7ff00100 mvns r0, 1
| 0x0804e1c6 1060 str r0, [r2]
| 0x0804e1c8 121f subs r2, r2, 4
| 0x0804e1ca 5ff01230 movs.w r0, 0x12121212
| 0x0804e1ce 1060 str r0, [r2]
| 0x0804e1d0 121f subs r2, r2, 4
| 0x0804e1d2 5ff00330 movs.w r0, 0x3030303
| 0x0804e1d6 1060 str r0, [r2]
| 0x0804e1d8 121f subs r2, r2, 4
| 0x0804e1da 5ff00230 movs.w r0, 0x2020202
| 0x0804e1de 1060 str r0, [r2]
| 0x0804e1e0 121f subs r2, r2, 4
| 0x0804e1e2 5ff00130 movs.w r0, 0x1010101
| 0x0804e1e6 1060 str r0, [r2]
| 0x0804e1e8 121f subs r2, r2, 4
| 0x0804e1ea 1160 str r1, [r2]
| 0x0804e1ec 121f subs r2, r2, 4
| 0x0804e1ee 3120 movs r0, 0x31 ; '1' ; 49
| 0x0804e1f0 1060 str r0, [r2]
| 0x0804e1f2 121f subs r2, r2, 4
| 0x0804e1f4 3020 movs r0, 0x30 ; '0' ; 48
| 0x0804e1f6 1060 str r0, [r2]
| 0x0804e1f8 121f subs r2, r2, 4
| 0x0804e1fa 2920 movs r0, 0x29 ; ')' ; 41
| 0x0804e1fc 1060 str r0, [r2]
| 0x0804e1fe 121f subs r2, r2, 4
| 0x0804e200 2820 movs r0, 0x28 ; '(' ; 40
| 0x0804e202 1060 str r0, [r2]
| 0x0804e204 121f subs r2, r2, 4
| 0x0804e206 2720 movs r0, 0x27 ; ''' ; 39
| 0x0804e208 1060 str r0, [r2]
| 0x0804e20a 121f subs r2, r2, 4
| 0x0804e20c 2620 movs r0, 0x26 ; '&' ; 38
| 0x0804e20e 1060 str r0, [r2]
| 0x0804e210 121f subs r2, r2, 4
| 0x0804e212 2520 movs r0, 0x25 ; '%' ; 37
| 0x0804e214 1060 str r0, [r2]
| 0x0804e216 121f subs r2, r2, 4
| 0x0804e218 2420 movs r0, 0x24 ; '$' ; 36
| 0x0804e21a 1060 str r0, [r2]
| 0x0804e21c 121f subs r2, r2, 4
| 0x0804e21e 2320 movs r0, 0x23 ; '#' ; 35
| 0x0804e220 1060 str r0, [r2]
| 0x0804e222 121f subs r2, r2, 4
| 0x0804e224 2220 movs r0, 0x22 ; '"' ; 34
| 0x0804e226 1060 str r0, [r2]
| 0x0804e228 121f subs r2, r2, 4
| 0x0804e22a 2120 movs r0, 0x21 ; '!' ; 33
| 0x0804e22c 1060 str r0, [r2]
| 0x0804e22e 121f subs r2, r2, 4
| 0x0804e230 2020 movs r0, 0x20 ; 32
| 0x0804e232 1060 str r0, [r2]
| 0x0804e234 121f subs r2, r2, 4
| 0x0804e236 1920 movs r0, 0x19 ; 25
| 0x0804e238 1060 str r0, [r2]
| 0x0804e23a 121f subs r2, r2, 4
| 0x0804e23c 1820 movs r0, 0x18 ; 24
| 0x0804e23e 1060 str r0, [r2]
| 0x0804e240 121f subs r2, r2, 4
| 0x0804e242 1720 movs r0, 0x17 ; 23
| 0x0804e244 1060 str r0, [r2]
| 0x0804e246 121f subs r2, r2, 4
| 0x0804e248 1620 movs r0, 0x16 ; 22
| 0x0804e24a 1060 str r0, [r2]
| 0x0804e24c 121f subs r2, r2, 4
| 0x0804e24e 5ff01130 movs.w r0, 0x11111111
| 0x0804e252 1060 str r0, [r2]
| 0x0804e254 121f subs r2, r2, 4
| 0x0804e256 5ff01030 movs.w r0, 0x10101010
| 0x0804e25a 1060 str r0, [r2]
| 0x0804e25c 121f subs r2, r2, 4
| 0x0804e25e 5ff00930 movs.w r0, 0x9090909
| 0x0804e262 1060 str r0, [r2]
| 0x0804e264 121f subs r2, r2, 4
| 0x0804e266 5ff00830 movs.w r0, 0x8080808
| 0x0804e26a 1060 str r0, [r2]
| 0x0804e26c 121f subs r2, r2, 4
| 0x0804e26e 5ff00730 movs.w r0, 0x7070707
| 0x0804e272 1060 str r0, [r2]
| 0x0804e274 121f subs r2, r2, 4
| 0x0804e276 5ff00630 movs.w r0, 0x6060606
| 0x0804e27a 1060 str r0, [r2]
| 0x0804e27c 121f subs r2, r2, 4
| 0x0804e27e 5ff00530 movs.w r0, 0x5050505
| 0x0804e282 1060 str r0, [r2]
| 0x0804e284 121f subs r2, r2, 4
| 0x0804e286 5ff00430 movs.w r0, 0x4040404
| 0x0804e28a 1060 str r0, [r2]
| 0x0804e28c 1000 movs r0, r2
\ 0x0804e28e 7047 bx lr
/ (fcn) func_4e290 8
| func_4e290 ();
| 0x0804e290 80b5 push {r7, lr}
| 0x0804e292 00f034f8 bl func_4e2fe_BX_LR_only
\ 0x0804e296 01bd pop {r0, pc}
/ (fcn) func_4e298 8
| Caller: func_44478
| func_4e298 ();
| 0x0804e298 80b5 push {r7, lr}
| 0x0804e29a 00f031f8 bl func_4e300_BX_LR_only
\ 0x0804e29e 01bd pop {r0, pc}
/ (fcn) SysTick_Sub2 36
| Caller: SysTick_Sub1
| SysTick_Sub2 ();
| 0x0804e2a0 80b5 push {r7, lr}
| 0x0804e2a2 00f02ef8 bl func_4e302_BX_LR_only
| 0x0804e2a6 0d48 ldr r0, [0x0804e2de] ; [0x804e2dc:4]=0x2001e84e
| 0x0804e2a8 0088 ldrh r0, [r0]
| 0x0804e2aa 401c adds r0, r0, 1
| 0x0804e2ac 0b49 ldr r1, [0x0804e2dc] ; [0x804e2dc:4]=0x2001e84e
| 0x0804e2ae 0880 strh r0, [r1]
| 0x0804e2b0 0a48 ldr r0, [0x0804e2dc] ; [0x804e2dc:4]=0x2001e84e
| 0x0804e2b2 0088 ldrh r0, [r0]
| 0x0804e2b4 6428 cmp r0, 0x64 ; 'd' ; 100
| ,=< 0x0804e2b6 04d3 blo 0x804e2c2
| | 0x0804e2b8 0848 ldr r0, [0x0804e2dc] ; [0x804e2dc:4]=0x2001e84e
| | 0x0804e2ba 0021 movs r1, 0
| | 0x0804e2bc 0180 strh r1, [r0]
| | 0x0804e2be fdf712fa bl func_4b6e6_posts_something
\ `-> 0x0804e2c2 01bd pop {r0, pc}
/ (fcn) func_4e2e0 28
| Caller: _main2_init_sub3
| func_4e2e0 ();
| 0x0804e2e0 00b5 push {lr}
| 0x0804e2e2 85b0 sub sp, 0x14
| 0x0804e2e4 00a8 add r0, sp, 0
| 0x0804e2e6 e8f76efb bl func_369c6
| 0x0804e2ea 0198 ldr r0, [sp, 4]
| 0x0804e2ec 4ff47a71 mov.w r1, 0x3e8 ; 1000
| 0x0804e2f0 b0fbf1f0 udiv r0, r0, r1
| 0x0804e2f4 fff705ff bl func_4e102
| 0x0804e2f8 05b0 add sp, 0x14
\ 0x0804e2fa 00bd pop {pc}
/ (fcn) func_4e2fc_BX_LR_only 2
| Caller: func_4e13c
| func_4e2fc_BX_LR_only ();
\ 0x0804e2fc 7047 bx lr
/ (fcn) func_4e2fe_BX_LR_only 2
| Caller: func_4e290
| func_4e2fe_BX_LR_only ();
\ 0x0804e2fe 7047 bx lr
/ (fcn) func_4e300_BX_LR_only 2
| Caller: func_4e298
| func_4e300_BX_LR_only ();
\ 0x0804e300 7047 bx lr
/ (fcn) func_4e302_BX_LR_only 2
| Caller: SysTick_Sub2
| func_4e302_BX_LR_only ();
\ 0x0804e302 7047 bx lr
/ (fcn) ManyStrangeSimpleMoves 228
| Caller: InitGlobalsAndStartRealTimeKernel
| ManyStrangeSimpleMoves ();
| 0x0804e304 3848 ldr r0, [0x0804e3e8] ; [0x804e3e8:4]=0x804c382
| 0x0804e306 3949 ldr r1, [0x0804e3ee] ; [0x804e3ec:4]=0x80fc584
| 0x0804e308 0800 movs r0, r1 ; maybe just a dummy to suppress linker warnings
| 0x0804e30a 3949 ldr r1, [0x0804e3f2] ; [0x804e3f0:4]=0x804ce2a
| 0x0804e30c 0800 movs r0, r1
| 0x0804e30e 3949 ldr r1, [0x0804e3f6] ; [0x804e3f4:4]=0x804d6f2
| 0x0804e310 0800 movs r0, r1
| 0x0804e312 3949 ldr r1, [0x0804e3fa] ; [0x804e3f8:4]=0x804c3ea
| 0x0804e314 0800 movs r0, r1
| 0x0804e316 3949 ldr r1, [0x0804e3fe] ; [0x804e3fc:4]=0x8051d0a
| 0x0804e318 0800 movs r0, r1
| 0x0804e31a 3949 ldr r1, [0x0804e402] ; [0x804e400:4]=0x8052282
| 0x0804e31c 0800 movs r0, r1
| 0x0804e31e 3949 ldr r1, [0x0804e406] ; [0x804e404:4]=0x80530a6
| 0x0804e320 0800 movs r0, r1
| 0x0804e322 3949 ldr r1, [0x0804e40a] ; [0x804e408:4]=0x8053a96
| 0x0804e324 0800 movs r0, r1
| 0x0804e326 3949 ldr r1, [0x0804e40e] ; [0x804e40c:4]=0x80544c6
| 0x0804e328 0800 movs r0, r1
| 0x0804e32a 3949 ldr r1, [0x0804e412] ; [0x804e410:4]=0x805470e
| 0x0804e32c 0800 movs r0, r1
| 0x0804e32e 3949 ldr r1, [0x0804e416] ; [0x804e414:4]=0x80553d6
| 0x0804e330 0800 movs r0, r1
| 0x0804e332 3949 ldr r1, [0x0804e41a] ; [0x804e418:4]=0x80553da
| 0x0804e334 0800 movs r0, r1
| 0x0804e336 3949 ldr r1, [0x0804e41e] ; [0x804e41c:4]=0x805542a
| 0x0804e338 0800 movs r0, r1
| 0x0804e33a 3949 ldr r1, [0x0804e422] ; [0x804e420:4]=0x8055a2a
| 0x0804e33c 0800 movs r0, r1
| 0x0804e33e 3949 ldr r1, [0x0804e426] ; [0x804e424:4]=0x80594b6
| 0x0804e340 0800 movs r0, r1
| 0x0804e342 3949 ldr r1, [0x0804e42a] ; [0x804e428:4]=0x80633d2
| 0x0804e344 0800 movs r0, r1
| 0x0804e346 3949 ldr r1, [0x0804e42e] ; [0x804e42c:4]=0x80633f6
| 0x0804e348 0800 movs r0, r1
| 0x0804e34a 3949 ldr r1, [0x0804e432] ; [0x804e430:4]=0x80930fe
| 0x0804e34c 0800 movs r0, r1
| 0x0804e34e 3949 ldr r1, [0x0804e436] ; [0x804e434:4]=0x8095986
| 0x0804e350 0800 movs r0, r1
| 0x0804e352 3949 ldr r1, [0x0804e43a] ; [0x804e438:4]=0x8095a9e
| 0x0804e354 0800 movs r0, r1
| 0x0804e356 3949 ldr r1, [0x0804e43e] ; [0x804e43c:4]=0x809690e
| 0x0804e358 0800 movs r0, r1
| 0x0804e35a 3949 ldr r1, [0x0804e442] ; [0x804e440:4]=0x8096b16
| 0x0804e35c 0800 movs r0, r1
| 0x0804e35e 3949 ldr r1, [0x0804e446] ; [0x804e444:4]=0x809707e
| 0x0804e360 0800 movs r0, r1
| 0x0804e362 3949 ldr r1, [0x0804e44a] ; [0x804e448:4]=0x8097ad6
| 0x0804e364 0800 movs r0, r1
| 0x0804e366 3949 ldr r1, [0x0804e44e] ; [0x804e44c:4]=0x8099f2a
| 0x0804e368 0800 movs r0, r1
| 0x0804e36a 3949 ldr r1, [0x0804e452] ; [0x804e450:4]=0x80d002a
| 0x0804e36c 0800 movs r0, r1
| 0x0804e36e 3949 ldr r1, [0x0804e456] ; [0x804e454:4]=0x80f7eea
| 0x0804e370 0800 movs r0, r1
| 0x0804e372 3949 ldr r1, [0x0804e45a] ; [0x804e458:4]=0x80f7ef6
| 0x0804e374 0800 movs r0, r1
| 0x0804e376 3949 ldr r1, [0x0804e45e] ; [0x804e45c:4]=0x80fbdde
| 0x0804e378 0800 movs r0, r1
| 0x0804e37a 3949 ldr r1, [0x0804e462] ; [0x804e460:4]=0x80fc6f4
| 0x0804e37c 0800 movs r0, r1
| 0x0804e37e 3949 ldr r1, [0x0804e466] ; [0x804e464:4]=0x80fc6f6
| 0x0804e380 0800 movs r0, r1
| 0x0804e382 3949 ldr r1, [0x0804e46a] ; [0x804e468:4]=0x80fc6f8
| 0x0804e384 0800 movs r0, r1
| 0x0804e386 3949 ldr r1, [0x0804e46e] ; [0x804e46c:4]=0x80fc6fa
| 0x0804e388 0800 movs r0, r1
| 0x0804e38a 3949 ldr r1, [0x0804e472] ; [0x804e470:4]=0x80fc6fc
| 0x0804e38c 0800 movs r0, r1
| 0x0804e38e 3949 ldr r1, [0x0804e476] ; [0x804e474:4]=0x80fc6fe
| 0x0804e390 0800 movs r0, r1
| 0x0804e392 3949 ldr r1, [0x0804e47a] ; [0x804e478:4]=0x80fc700
| 0x0804e394 0800 movs r0, r1
| 0x0804e396 3949 ldr r1, [0x0804e47e] ; [0x804e47c:4]=0x80fc702
| 0x0804e398 0800 movs r0, r1
| 0x0804e39a 3949 ldr r1, [0x0804e482] ; [0x804e480:4]=0x80fc704
| 0x0804e39c 0800 movs r0, r1
| 0x0804e39e 3949 ldr r1, [0x0804e486] ; [0x804e484:4]=0x80fc706
| 0x0804e3a0 0800 movs r0, r1
| 0x0804e3a2 3949 ldr r1, [0x0804e48a] ; [0x804e488:4]=0x80fc708
| 0x0804e3a4 0800 movs r0, r1
| 0x0804e3a6 3949 ldr r1, [0x0804e48e] ; [0x804e48c:4]=0x80fc70a
| 0x0804e3a8 0800 movs r0, r1
| 0x0804e3aa 3949 ldr r1, [0x0804e492] ; [0x804e490:4]=0x80fc70c
| 0x0804e3ac 0800 movs r0, r1
| 0x0804e3ae 3949 ldr r1, [0x0804e496] ; [0x804e494:4]=0x80fc70e
| 0x0804e3b0 0800 movs r0, r1
| 0x0804e3b2 3949 ldr r1, [0x0804e49a] ; [0x804e498:4]=0x2001bb00
| 0x0804e3b4 0800 movs r0, r1
| 0x0804e3b6 3949 ldr r1, [0x0804e49e] ; [0x804e49c:4]=0x2001ddf8
| 0x0804e3b8 0800 movs r0, r1
| 0x0804e3ba 3949 ldr r1, [0x0804e4a2] ; [0x804e4a0:4]=0x80fc712
| 0x0804e3bc 0800 movs r0, r1
| 0x0804e3be 3949 ldr r1, [0x0804e4a6] ; [0x804e4a4:4]=0x80fc714
| 0x0804e3c0 0800 movs r0, r1
| 0x0804e3c2 3949 ldr r1, [0x0804e4aa] ; [0x804e4a8:4]=0x80fc716
| 0x0804e3c4 0800 movs r0, r1
| 0x0804e3c6 3949 ldr r1, [0x0804e4ae] ; [0x804e4ac:4]=0x80fc718
| 0x0804e3c8 0800 movs r0, r1
| 0x0804e3ca 3949 ldr r1, [0x0804e4b2] ; [0x804e4b0:4]=0x80fc71a
| 0x0804e3cc 0800 movs r0, r1
| 0x0804e3ce 3949 ldr r1, [0x0804e4b6] ; [0x804e4b4:4]=0x80fc71c
| 0x0804e3d0 0800 movs r0, r1
| 0x0804e3d2 3949 ldr r1, [0x0804e4ba] ; [0x804e4b8:4]=0x80fc71e
| 0x0804e3d4 0800 movs r0, r1
| 0x0804e3d6 3949 ldr r1, [0x0804e4be] ; [0x804e4bc:4]=0x80fc720
| 0x0804e3d8 0800 movs r0, r1
| 0x0804e3da 3949 ldr r1, [0x0804e4c2] ; [0x804e4c0:4]=0x80fc722
| 0x0804e3dc 0800 movs r0, r1
| 0x0804e3de 3949 ldr r1, [0x0804e4c6] ; [0x804e4c4:4]=0x80fc710
| 0x0804e3e0 0800 movs r0, r1
| 0x0804e3e2 3949 ldr r1, [0x0804e4ca] ; [0x804e4c8:4]=0x80fc724
| 0x0804e3e4 0800 movs r0, r1
\ 0x0804e3e6 7047 bx lr
/ (fcn) func_4e4cc 180
| Caller: Start_2_more_tasks__init_vocoder_tasks__Q
| func_4e4cc ();
| 0x0804e4cc 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x0804e4d0 84b0 sub sp, 0x10
| 0x0804e4d2 0600 movs r6, r0
| 0x0804e4d4 0f00 movs r7, r1
| 0x0804e4d6 9046 mov r8, r2
| 0x0804e4d8 1c00 movs r4, r3
| 0x0804e4da 0025 movs r5, 0
| 0x0804e4dc f5f782fc bl OS_ENTER_CRITICAL
| 0x0804e4e0 0500 movs r5, r0
| 0x0804e4e2 dff8d001 ldr.w r0, [0x0804e6ba] ; [0x804e6b8:4]=0x2200b410
| 0x0804e4e6 0078 ldrb r0, [r0]
| 0x0804e4e8 0028 cmp r0, 0
| ,=< 0x0804e4ea 04d0 beq 0x804e4f6
| | 0x0804e4ec 2800 movs r0, r5
| | 0x0804e4ee f5f77dfc bl OS_EXIT_CRITICAL
| | 0x0804e4f2 3c20 movs r0, 0x3c ; '<' ; 60
| ,==< 0x0804e4f4 41e0 b 0x804e57a
| |`-> 0x0804e4f6 e4b2 uxtb r4, r4
| | 0x0804e4f8 dff8ac01 ldr.w r0, [0x0804e6ac] ; [0x804e6ac:4]=0x2001e714
| | 0x0804e4fc 50f82400 ldr.w r0, [r0, r4, lsl 2]
| | 0x0804e500 0028 cmp r0, 0
| |,=< 0x0804e502 36d1 bne 0x804e572
| || 0x0804e504 e4b2 uxtb r4, r4
| || 0x0804e506 dff8a001 ldr.w r0, [0x0804e6ae] ; [0x804e6ac:4]=0x2001e714
| || 0x0804e50a 0121 movs r1, 1 ; 1
| || 0x0804e50c 40f82410 str.w r1, [r0, r4, lsl 2]
| || 0x0804e510 2800 movs r0, r5
| || 0x0804e512 f5f76bfc bl OS_EXIT_CRITICAL
| || 0x0804e516 0023 movs r3, 0
| || 0x0804e518 4246 mov r2, r8
| || 0x0804e51a 3900 movs r1, r7
| || 0x0804e51c 3000 movs r0, r6
| || 0x0804e51e fff715fe bl func_4e14c
| || 0x0804e522 0021 movs r1, 0
| || 0x0804e524 0291 str r1, [sp, 8]
| || 0x0804e526 0021 movs r1, 0
| || 0x0804e528 0191 str r1, [sp, 4]
| || 0x0804e52a 0021 movs r1, 0
| || 0x0804e52c 0091 str r1, [sp]
| || 0x0804e52e 0023 movs r3, 0
| || 0x0804e530 0022 movs r2, 0
| || 0x0804e532 0100 movs r1, r0
| || 0x0804e534 2000 movs r0, r4
| || 0x0804e536 c0b2 uxtb r0, r0
| || 0x0804e538 f5f79eff bl func_44478
| || 0x0804e53c 0600 movs r6, r0
| || 0x0804e53e f6b2 uxtb r6, r6
| || 0x0804e540 002e cmp r6, 0
| ,===< 0x0804e542 07d1 bne 0x804e554
| ||| 0x0804e544 dff86801 ldr.w r0, [0x0804e6b4] ; [0x804e6b4:4]=0x2001e951
| ||| 0x0804e548 0078 ldrb r0, [r0]
| ||| 0x0804e54a 0128 cmp r0, 1 ; 1
| ,====< 0x0804e54c 0ed1 bne 0x804e56c
| |||| 0x0804e54e f5f743ff bl func_443d8
| ,=====< 0x0804e552 0be0 b 0x804e56c
| ||`---> 0x0804e554 f5f746fc bl OS_ENTER_CRITICAL
| || || 0x0804e558 0500 movs r5, r0
| || || 0x0804e55a e4b2 uxtb r4, r4
| || || 0x0804e55c dff84801 ldr.w r0, [0x0804e6ac] ; [0x804e6ac:4]=0x2001e714
| || || 0x0804e560 0021 movs r1, 0
| || || 0x0804e562 40f82410 str.w r1, [r0, r4, lsl 2]
| || || 0x0804e566 2800 movs r0, r5
| || || 0x0804e568 f5f740fc bl OS_EXIT_CRITICAL
| ``----> 0x0804e56c 3000 movs r0, r6
| || 0x0804e56e c0b2 uxtb r0, r0
| ,===< 0x0804e570 03e0 b 0x804e57a
| ||`-> 0x0804e572 2800 movs r0, r5
| || 0x0804e574 f5f73afc bl OS_EXIT_CRITICAL
| || 0x0804e578 2820 movs r0, 0x28 ; '(' ; 40
| ``--> 0x0804e57a 04b0 add sp, 0x10
\ 0x0804e57c bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) func_4e6b8 86
| Caller: func_4915c adc1_adc2_and_dma2s3_init
| func_4e6b8 ();
| 0x0804e6b8 10b4 push {r4}
| 0x0804e6ba 0022 movs r2, 0
| 0x0804e6bc 0368 ldr r3, [r0]
| 0x0804e6be 1a00 movs r2, r3
| 0x0804e6c0 474b ldr r3, [0x0804e7e0] ; [0x804e7e0:4]=0xf01c803f
| 0x0804e6c2 1a40 ands r2, r3
| 0x0804e6c4 0b68 ldr r3, [r1]
| 0x0804e6c6 cc68 ldr r4, [r1, 0xc]
| 0x0804e6c8 2343 orrs r3, r4
| 0x0804e6ca 4c69 ldr r4, [r1, 0x14]
| 0x0804e6cc 2343 orrs r3, r4
| 0x0804e6ce 8c69 ldr r4, [r1, 0x18]
| 0x0804e6d0 2343 orrs r3, r4
| 0x0804e6d2 cc69 ldr r4, [r1, 0x1c]
| 0x0804e6d4 2343 orrs r3, r4
| 0x0804e6d6 0c6a ldr r4, [r1, 0x20]
| 0x0804e6d8 2343 orrs r3, r4
| 0x0804e6da 4c6a ldr r4, [r1, 0x24]
| 0x0804e6dc 2343 orrs r3, r4
| 0x0804e6de 8c6a ldr r4, [r1, 0x28]
| 0x0804e6e0 2343 orrs r3, r4
| 0x0804e6e2 4c6b ldr r4, [r1, 0x34]
| 0x0804e6e4 2343 orrs r3, r4
| 0x0804e6e6 8c6b ldr r4, [r1, 0x38]
| 0x0804e6e8 2343 orrs r3, r4
| 0x0804e6ea 1a43 orrs r2, r3
| 0x0804e6ec 0260 str r2, [r0]
| 0x0804e6ee 4269 ldr r2, [r0, 0x14]
| 0x0804e6f0 d208 lsrs r2, r2, 3
| 0x0804e6f2 d200 lsls r2, r2, 3
| 0x0804e6f4 cb6a ldr r3, [r1, 0x2c]
| 0x0804e6f6 0c6b ldr r4, [r1, 0x30]
| 0x0804e6f8 2343 orrs r3, r4
| 0x0804e6fa 1a43 orrs r2, r3
| 0x0804e6fc 4261 str r2, [r0, 0x14]
| 0x0804e6fe 0a69 ldr r2, [r1, 0x10]
| 0x0804e700 4260 str r2, [r0, 4]
| 0x0804e702 4a68 ldr r2, [r1, 4]
| 0x0804e704 8260 str r2, [r0, 8]
| 0x0804e706 8968 ldr r1, [r1, 8]
| 0x0804e708 c160 str r1, [r0, 0xc]
| 0x0804e70a 10bc pop {r4}
\ 0x0804e70c 7047 bx lr
/ (fcn) func_4e70e 26
| Caller: func_497d2 func_49810 adc1_adc2_and_dma2s3_init
| func_4e70e ();
| 0x0804e70e c9b2 uxtb r1, r1
| 0x0804e710 0029 cmp r1, 0
| ,=< 0x0804e712 04d0 beq 0x804e71e
| | 0x0804e714 0168 ldr r1, [r0]
| | 0x0804e716 51f00101 orrs r1, r1, 1
| | 0x0804e71a 0160 str r1, [r0]
| ,==< 0x0804e71c 03e0 b 0x804e726
| |`-> 0x0804e71e 0168 ldr r1, [r0]
| | 0x0804e720 4908 lsrs r1, r1, 1
| | 0x0804e722 4900 lsls r1, r1, 1
| | 0x0804e724 0160 str r1, [r0]
\ `--> 0x0804e726 7047 bx lr
/ (fcn) func_4e728 64
| Caller: func_4915c adc1_adc2_and_dma2s3_init
| func_4e728 ();
| 0x0804e728 0b06 lsls r3, r1, 0x18
| ,=< 0x0804e72a 0bd5 bpl 0x804e744
| | 0x0804e72c d2b2 uxtb r2, r2
| | 0x0804e72e 002a cmp r2, 0
| ,==< 0x0804e730 04d0 beq 0x804e73c
| || 0x0804e732 4369 ldr r3, [r0, 0x14]
| || 0x0804e734 53f08003 orrs r3, r3, 0x80
| || 0x0804e738 4361 str r3, [r0, 0x14]
| ,===< 0x0804e73a 03e0 b 0x804e744
| |`--> 0x0804e73c 4369 ldr r3, [r0, 0x14]
| | | 0x0804e73e 33f08003 bics r3, r3, 0x80
| | | 0x0804e742 4361 str r3, [r0, 0x14]
| `-`-> 0x0804e744 8029 cmp r1, 0x80 ; 128
| ,=< 0x0804e746 0ed0 beq 0x804e766
| | 0x0804e748 d2b2 uxtb r2, r2
| | 0x0804e74a 002a cmp r2, 0
| ,==< 0x0804e74c 05d0 beq 0x804e75a
| || 0x0804e74e 0268 ldr r2, [r0]
| || 0x0804e750 11f01e01 ands r1, r1, 0x1e
| || 0x0804e754 1143 orrs r1, r2
| || 0x0804e756 0160 str r1, [r0]
| ,===< 0x0804e758 05e0 b 0x804e766
| |`--> 0x0804e75a 0268 ldr r2, [r0]
| | | 0x0804e75c 11f01e01 ands r1, r1, 0x1e
| | | 0x0804e760 32ea0101 bics.w r1, r2, r1
| | | 0x0804e764 0160 str r1, [r0]
\ `-`-> 0x0804e766 7047 bx lr
/ (fcn) func_4e7f4 14
| Caller: Start
| func_4e7f4 ();
| 0x0804e7f4 0349 ldr r1, [0x0804e804] ; [0x804e804:4]=0x2001e804
| 0x0804e7f6 0988 ldrh r1, [r1]
| 0x0804e7f8 024a ldr r2, [0x0804e804] ; [0x804e804:4]=0x2001e804
| 0x0804e7fa 1080 strh r0, [r2]
| 0x0804e7fc 0800 movs r0, r1
| 0x0804e7fe 80b2 uxth r0, r0
\ 0x0804e800 7047 bx lr
/ (fcn) func_4e808 20
| Caller: Start
| func_4e808 ();
| 0x0804e808 80b5 push {r7, lr}
| 0x0804e80a 0448 ldr r0, [0x0804e81e] ; [0x804e81c:4]=0x20004940
| 0x0804e80c 0090 str r0, [sp]
| 0x0804e80e 044b ldr r3, [0x0804e822] ; [0x804e820:4]=0x20004668
| 0x0804e810 044a ldr r2, [0x0804e824] ; [0x804e824:4]=0x20004924
| 0x0804e812 0121 movs r1, 1 ; 1
| 0x0804e814 0448 ldr r0, [0x0804e828] ; [0x804e828:4]=0x200178b8
| 0x0804e816 06f073fc bl usb_setcallbacks
\ 0x0804e81a 01bd pop {r0, pc}
/ (fcn) func_4e82c_uses_SPI2_3_DMA_and_I2C 298
| Caller: Start
| func_4e82c_uses_SPI2_3_DMA_and_I2C ();
| 0x0804e82c 80b5 push {r7, lr}
| 0x0804e82e 4a48 ldr r0, [0x0804e95a] ; [0x804e958:4]=0x20004ad5
| 0x0804e830 0821 movs r1, 8 ; 8
| 0x0804e832 0170 strb r1, [r0]
| 0x0804e834 4948 ldr r0, [0x0804e95c] ; [0x804e95c:4]=0x20004ad6
| 0x0804e836 0921 movs r1, 9 ; 9
| 0x0804e838 0170 strb r1, [r0]
| 0x0804e83a 4948 ldr r0, [0x0804e962] ; [0x804e960:4]=0x40003c0c io_SPI3_DR
| 0x0804e83c faf704fc bl func_49048
| 0x0804e840 4848 ldr r0, [0x0804e964] ; [0x804e964:4]=0x4000400c io_I2S3_DR
| 0x0804e842 faf705fc bl func_49050
| 0x0804e846 3320 movs r0, 0x33 ; '3' ; 51
| 0x0804e848 faf706fc bl func_49058
| 0x0804e84c 4ff40042 mov.w r2, 0x8000
| 0x0804e850 5ff04021 movs.w r1, 0x40004000 ; io_I2S3ext
| 0x0804e854 4448 ldr r0, [0x0804e968] ; [0x804e968:4]=0x40003c00 io_SPI3
| 0x0804e856 faf703fc bl func_49060
| 0x0804e85a 0620 movs r0, 6 ; 6
| 0x0804e85c 0090 str r0, [sp]
| 0x0804e85e 0f23 movs r3, 0xf ; 15
| 0x0804e860 0122 movs r2, 1 ; 1
| 0x0804e862 4249 ldr r1, [0x0804e96e] ; [0x804e96c:4]=0x40020000 io_GPIOA
| 0x0804e864 4ff40040 mov.w r0, 0x8000
| 0x0804e868 faf704fc bl func_49074
| 0x0804e86c 0620 movs r0, 6 ; 6
| 0x0804e86e 0090 str r0, [sp]
| 0x0804e870 0a23 movs r3, 0xa ; 10
| 0x0804e872 0422 movs r2, 4 ; 4
| 0x0804e874 3e49 ldr r1, [0x0804e970] ; [0x804e970:4]=0x40020800 io_GPIOC
| 0x0804e876 4ff48060 mov.w r0, 0x400 ; 1024
| 0x0804e87a faf70efc bl func_4909a
| 0x0804e87e 0520 movs r0, 5 ; 5
| 0x0804e880 0090 str r0, [sp]
| 0x0804e882 0b23 movs r3, 0xb ; 11
| 0x0804e884 0422 movs r2, 4 ; 4
| 0x0804e886 3a49 ldr r1, [0x0804e972] ; [0x804e970:4]=0x40020800 io_GPIOC
| 0x0804e888 4ff40060 mov.w r0, 0x800 ; 2048
| 0x0804e88c faf718fc bl func_490c0
| 0x0804e890 0620 movs r0, 6 ; 6
| 0x0804e892 0090 str r0, [sp]
| 0x0804e894 0c23 movs r3, 0xc ; 12
| 0x0804e896 0422 movs r2, 4 ; 4
| 0x0804e898 3549 ldr r1, [0x0804e970] ; [0x804e970:4]=0x40020800 io_GPIOC
| 0x0804e89a 4ff48050 mov.w r0, 0x1000
| 0x0804e89e faf722fc bl func_490e6
| 0x0804e8a2 5ff40010 movs.w r0, 0x200000
| 0x0804e8a6 faf731fc bl func_4910c
| 0x0804e8aa 3249 ldr r1, [0x0804e976] ; [0x804e974:4]=0x40026088 io_DMA1_S5CR
| 0x0804e8ac 5ff08060 movs.w r0, 0x4000000
| 0x0804e8b0 faf730fc bl func_49114
| 0x0804e8b4 3049 ldr r1, [0x0804e978] ; [0x804e978:4]=0x40026040 io_DMA1_S2CR
| 0x0804e8b6 0020 movs r0, 0
| 0x0804e8b8 faf733fc bl func_49122
| 0x0804e8bc 1020 movs r0, 0x10 ; 16
| 0x0804e8be faf737fc bl func_49130
| 0x0804e8c2 0d20 movs r0, 0xd ; 13
| 0x0804e8c4 faf738fc bl func_49138
| 0x0804e8c8 2c49 ldr r1, [0x0804e97c] ; [0x804e97c:4]=0x20008800
| 0x0804e8ca 2d48 ldr r0, [0x0804e982] ; [0x804e980:4]=0x20004400
| 0x0804e8cc faf738fc bl func_49140
| 0x0804e8d0 2c49 ldr r1, [0x0804e984] ; [0x804e984:4]=0x10208000
| 0x0804e8d2 2d48 ldr r0, [0x0804e98a] ; [0x804e988:4]=0x10104000
| 0x0804e8d4 faf73bfc bl func_4914e
| 0x0804e8d8 5ff40011 movs.w r1, 0x200000
| 0x0804e8dc 2b48 ldr r0, [0x0804e98c] ; [0x804e98c:4]=0x40005400 io_I2C1
| 0x0804e8de faf7d1f8 bl func_48a84
| 0x0804e8e2 0420 movs r0, 4 ; 4
| 0x0804e8e4 0090 str r0, [sp]
| 0x0804e8e6 0623 movs r3, 6 ; 6
| 0x0804e8e8 0222 movs r2, 2 ; 2
| 0x0804e8ea 2949 ldr r1, [0x0804e992] ; [0x804e990:4]=0x40020400 io_GPIOB
| 0x0804e8ec 4020 movs r0, 0x40 ; '@' ; 64
| 0x0804e8ee faf7d0f8 bl func_48a92
| 0x0804e8f2 0420 movs r0, 4 ; 4
| 0x0804e8f4 0090 str r0, [sp]
| 0x0804e8f6 0723 movs r3, 7 ; 7
| 0x0804e8f8 0222 movs r2, 2 ; 2
| 0x0804e8fa 2549 ldr r1, [0x0804e992] ; [0x804e990:4]=0x40020400 io_GPIOB
| 0x0804e8fc 8020 movs r0, 0x80 ; 128
| 0x0804e8fe faf7dbf8 bl func_48ab8
| 0x0804e902 4ff48041 mov.w r1, 0x4000
| 0x0804e906 2348 ldr r0, [0x0804e996] ; [0x804e994:4]=0x40003800 io_SPI2
| 0x0804e908 fbf732f8 bl func_49970
| 0x0804e90c 0222 movs r2, 2 ; 2
| 0x0804e90e 2049 ldr r1, [0x0804e992] ; [0x804e990:4]=0x40020400 io_GPIOB
| 0x0804e910 4ff48050 mov.w r0, 0x1000
| 0x0804e914 fbf731f8 bl func_4997a
| 0x0804e918 0520 movs r0, 5 ; 5
| 0x0804e91a 0090 str r0, [sp]
| 0x0804e91c 0d23 movs r3, 0xd ; 13
| 0x0804e91e 0222 movs r2, 2 ; 2
| 0x0804e920 1b49 ldr r1, [0x0804e990] ; [0x804e990:4]=0x40020400 io_GPIOB
| 0x0804e922 4ff40050 mov.w r0, 0x2000
| 0x0804e926 fbf72ff8 bl func_49988
| 0x0804e92a 0520 movs r0, 5 ; 5
| 0x0804e92c 0090 str r0, [sp]
| 0x0804e92e 0e23 movs r3, 0xe ; 14
| 0x0804e930 0222 movs r2, 2 ; 2
| 0x0804e932 1749 ldr r1, [0x0804e992] ; [0x804e990:4]=0x40020400 io_GPIOB
| 0x0804e934 4ff48040 mov.w r0, 0x4000
| 0x0804e938 fbf734f8 bl func_499a4
| 0x0804e93c 0520 movs r0, 5 ; 5
| 0x0804e93e 0090 str r0, [sp]
| 0x0804e940 0f23 movs r3, 0xf ; 15
| 0x0804e942 0222 movs r2, 2 ; 2
| 0x0804e944 1249 ldr r1, [0x0804e990] ; [0x804e990:4]=0x40020400 io_GPIOB
| 0x0804e946 4ff40040 mov.w r0, 0x8000
| 0x0804e94a fbf739f8 bl func_499c0
| 0x0804e94e 2020 movs r0, 0x20 ; 32
| 0x0804e950 fbf744f8 bl func_499dc
\ 0x0804e954 01bd pop {r0, pc}
/ (fcn) func_4e9b0 32
| Caller: Start func_95824
| func_4e9b0 ();
| 0x0804e9b0 dff87401 ldr.w r0, [0x0804eb2c] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| 0x0804e9b4 0068 ldr r0, [r0]
| 0x0804e9b6 0028 cmp r0, 0
| ,=< 0x0804e9b8 09d5 bpl 0x804e9ce
| | 0x0804e9ba dff87001 ldr.w r0, [0x0804eb32] ; [0x804eb30:4]=0x45670123
| | 0x0804e9be dff87011 ldr.w r1, [0x0804eb36] ; [0x804eb34:4]=0xcdef89ab
| | 0x0804e9c2 0160 str r1, [r0]
| | 0x0804e9c4 dff86401 ldr.w r0, [0x0804eb30] ; [0x804eb30:4]=0x45670123
| | 0x0804e9c8 dff86811 ldr.w r1, [0x0804eb38] ; [0x804eb38:4]=0x40023c0c io_FLASH_STATUS
| | 0x0804e9cc 0160 str r1, [r0]
\ `-> 0x0804e9ce 7047 bx lr
/ (fcn) func_4e9d0 18
| Caller: func_9582e
| func_4e9d0 ();
| 0x0804e9d0 dff85401 ldr.w r0, [0x0804eb2c] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| 0x0804e9d4 0068 ldr r0, [r0]
| 0x0804e9d6 50f00040 orrs r0, r0, 0x80000000
| 0x0804e9da dff84c11 ldr.w r1, [0x0804eb2e] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| 0x0804e9de 0860 str r0, [r1]
\ 0x0804e9e0 7047 bx lr
/ (fcn) func_4e9e2 176
| Caller: func_95838
| func_4e9e2 ();
| 0x0804e9e2 38b5 push {r3, r4, r5, lr}
| 0x0804e9e4 0400 movs r4, r0
| 0x0804e9e6 0025 movs r5, 0
| 0x0804e9e8 0820 movs r0, 8 ; 8
| 0x0804e9ea c9b2 uxtb r1, r1
| 0x0804e9ec 0029 cmp r1, 0
| ,=< 0x0804e9ee 01d1 bne 0x804e9f4
| | 0x0804e9f0 0025 movs r5, 0
| ,==< 0x0804e9f2 0de0 b 0x804ea10
| |`-> 0x0804e9f4 c9b2 uxtb r1, r1
| | 0x0804e9f6 0129 cmp r1, 1 ; 1
| |,=< 0x0804e9f8 02d1 bne 0x804ea00
| || 0x0804e9fa 4ff48075 mov.w r5, 0x100 ; 256
| ,===< 0x0804e9fe 07e0 b 0x804ea10
| ||`-> 0x0804ea00 c9b2 uxtb r1, r1
| || 0x0804ea02 0229 cmp r1, 2 ; 2
| ||,=< 0x0804ea04 02d1 bne 0x804ea0c
| ||| 0x0804ea06 4ff40075 mov.w r5, 0x200 ; 512
| ,====< 0x0804ea0a 01e0 b 0x804ea10
| |||`-> 0x0804ea0c 4ff44075 mov.w r5, 0x300 ; 768
| ```--> 0x0804ea10 00f094f8 bl func_4eb3c
| 0x0804ea14 c0b2 uxtb r0, r0
| 0x0804ea16 0828 cmp r0, 8 ; 8
| ,=< 0x0804ea18 39d1 bne 0x804ea8e
| | 0x0804ea1a dff80c01 ldr.w r0, [0x0804eb2e] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea1e 0068 ldr r0, [r0]
| | 0x0804ea20 30f44070 bics r0, r0, 0x300
| | 0x0804ea24 dff80011 ldr.w r1, [0x0804eb2c] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea28 0860 str r0, [r1]
| | 0x0804ea2a dff8fc00 ldr.w r0, [0x0804eb2e] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea2e 0068 ldr r0, [r0]
| | 0x0804ea30 2843 orrs r0, r5
| | 0x0804ea32 dff8f410 ldr.w r1, [0x0804eb2e] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea36 0860 str r0, [r1]
| | 0x0804ea38 dff8ec00 ldr.w r0, [0x0804eb2c] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea3c 0068 ldr r0, [r0]
| | 0x0804ea3e 30f0f800 bics r0, r0, 0xf8
| | 0x0804ea42 dff8e410 ldr.w r1, [0x0804eb2e] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea46 0860 str r0, [r1]
| | 0x0804ea48 dff8dc00 ldr.w r0, [0x0804eb2c] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea4c 0068 ldr r0, [r0]
| | 0x0804ea4e 54f00201 orrs r1, r4, 2
| | 0x0804ea52 0843 orrs r0, r1
| | 0x0804ea54 dff8d010 ldr.w r1, [0x0804eb2c] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea58 0860 str r0, [r1]
| | 0x0804ea5a dff8cc00 ldr.w r0, [0x0804eb2e] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea5e 0068 ldr r0, [r0]
| | 0x0804ea60 50f48030 orrs r0, r0, 0x10000
| | 0x0804ea64 dff8c010 ldr.w r1, [0x0804eb2c] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea68 0860 str r0, [r1]
| | 0x0804ea6a 00f067f8 bl func_4eb3c
| | 0x0804ea6e dff8b810 ldr.w r1, [0x0804eb2e] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea72 0968 ldr r1, [r1]
| | 0x0804ea74 31f00201 bics r1, r1, 2
| | 0x0804ea78 dff8ac20 ldr.w r2, [0x0804eb2c] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea7c 1160 str r1, [r2]
| | 0x0804ea7e dff8a810 ldr.w r1, [0x0804eb2e] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea82 0968 ldr r1, [r1]
| | 0x0804ea84 31f0f801 bics r1, r1, 0xf8
| | 0x0804ea88 dff89c20 ldr.w r2, [0x0804eb2c] ; [0x804eb2c:4]=0x40023c04 io_FLASH_KEY
| | 0x0804ea8c 1160 str r1, [r2]
| `-> 0x0804ea8e c0b2 uxtb r0, r0
\ 0x0804ea90 32bd pop {r1, r4, r5, pc}
/ (fcn) func_4ea92 82
| Caller: usb_dnld_handle
| func_4ea92 ();
| 0x0804ea92 70b5 push {r4, r5, r6, lr}
| 0x0804ea94 0400 movs r4, r0
| 0x0804ea96 0d00 movs r5, r1
| 0x0804ea98 0826 movs r6, 8 ; 8
| 0x0804ea9a 00f04ff8 bl func_4eb3c
| 0x0804ea9e 0600 movs r6, r0
| 0x0804eaa0 f6b2 uxtb r6, r6
| 0x0804eaa2 082e cmp r6, 8 ; 8
| ,=< 0x0804eaa4 1bd1 bne 0x804eade
| | 0x0804eaa6 2048 ldr r0, [0x0804eb2a] ; [0x804eb28:4]=0x40023c10 io_FLASH_CTRL
| | 0x0804eaa8 0068 ldr r0, [r0]
| | 0x0804eaaa 30f44070 bics r0, r0, 0x300
| | 0x0804eaae 1e49 ldr r1, [0x0804eb2a] ; [0x804eb28:4]=0x40023c10 io_FLASH_CTRL
| | 0x0804eab0 0860 str r0, [r1]
| | 0x0804eab2 1d48 ldr r0, [0x0804eb2a] ; [0x804eb28:4]=0x40023c10 io_FLASH_CTRL
| | 0x0804eab4 0068 ldr r0, [r0]
| | 0x0804eab6 50f40070 orrs r0, r0, 0x200
| | 0x0804eaba 1b49 ldr r1, [0x0804eb2a] ; [0x804eb28:4]=0x40023c10 io_FLASH_CTRL
| | 0x0804eabc 0860 str r0, [r1]
| | 0x0804eabe 1a48 ldr r0, [0x0804eb2a] ; [0x804eb28:4]=0x40023c10 io_FLASH_CTRL
| | 0x0804eac0 0068 ldr r0, [r0]
| | 0x0804eac2 50f00100 orrs r0, r0, 1
| | 0x0804eac6 1849 ldr r1, [0x0804eb2a] ; [0x804eb28:4]=0x40023c10 io_FLASH_CTRL
| | 0x0804eac8 0860 str r0, [r1]
| | 0x0804eaca 2560 str r5, [r4]
| | 0x0804eacc 00f036f8 bl func_4eb3c
| | 0x0804ead0 0600 movs r6, r0
| | 0x0804ead2 1548 ldr r0, [0x0804eb2a] ; [0x804eb28:4]=0x40023c10 io_FLASH_CTRL
| | 0x0804ead4 0068 ldr r0, [r0]
| | 0x0804ead6 4008 lsrs r0, r0, 1
| | 0x0804ead8 4000 lsls r0, r0, 1
| | 0x0804eada 1349 ldr r1, [0x0804eb2a] ; [0x804eb28:4]=0x40023c10 io_FLASH_CTRL
| | 0x0804eadc 0860 str r0, [r1]
| `-> 0x0804eade 3000 movs r0, r6
| 0x0804eae0 c0b2 uxtb r0, r0
\ 0x0804eae2 70bd pop {r4, r5, r6, pc}
/ (fcn) func_4eae4 6
| Caller: Start
| func_4eae4 ();
| 0x0804eae4 1449 ldr r1, [0x0804eb38] ; [0x804eb38:4]=0x40023c0c io_FLASH_STATUS
| 0x0804eae6 0860 str r0, [r1]
\ 0x0804eae8 7047 bx lr
/ (fcn) func_4eaea 58
| Caller: func_4eb3c
| func_4eaea ();
| 0x0804eaea 0820 movs r0, 8 ; 8
| 0x0804eaec 1249 ldr r1, [0x0804eb38] ; [0x804eb38:4]=0x40023c0c io_FLASH_STATUS
| 0x0804eaee 0968 ldr r1, [r1]
| 0x0804eaf0 c903 lsls r1, r1, 0xf
| ,=< 0x0804eaf2 01d5 bpl 0x804eaf8
| | 0x0804eaf4 0120 movs r0, 1 ; 1
| ,==< 0x0804eaf6 13e0 b 0x804eb20
| |`-> 0x0804eaf8 0f48 ldr r0, [0x0804eb38] ; [0x804eb38:4]=0x40023c0c io_FLASH_STATUS
| | 0x0804eafa 0068 ldr r0, [r0]
| | 0x0804eafc c006 lsls r0, r0, 0x1b
| |,=< 0x0804eafe 01d5 bpl 0x804eb04
| || 0x0804eb00 0520 movs r0, 5 ; 5
| ,===< 0x0804eb02 0de0 b 0x804eb20
| ||`-> 0x0804eb04 0c48 ldr r0, [0x0804eb38] ; [0x804eb38:4]=0x40023c0c io_FLASH_STATUS
| || 0x0804eb06 0068 ldr r0, [r0]
| || 0x0804eb08 10f0ef0f tst.w r0, 0xef ; 239
| ||,=< 0x0804eb0c 01d0 beq 0x804eb12
| ||| 0x0804eb0e 0620 movs r0, 6 ; 6
| ,====< 0x0804eb10 06e0 b 0x804eb20
| |||`-> 0x0804eb12 0948 ldr r0, [0x0804eb3a] ; [0x804eb38:4]=0x40023c0c io_FLASH_STATUS
| ||| 0x0804eb14 0068 ldr r0, [r0]
| ||| 0x0804eb16 8007 lsls r0, r0, 0x1e
| |||,=< 0x0804eb18 01d5 bpl 0x804eb1e
| |||| 0x0804eb1a 0720 movs r0, 7 ; 7
| ,=====< 0x0804eb1c 00e0 b 0x804eb20
| ||||`-> 0x0804eb1e 0820 movs r0, 8 ; 8
| ````--> 0x0804eb20 c0b2 uxtb r0, r0
\ 0x0804eb22 7047 bx lr
/ (fcn) func_4eb3c 40
| Caller: func_4e9e2 func_4ea92
| func_4eb3c ();
| 0x0804eb3c 80b5 push {r7, lr}
| 0x0804eb3e 0820 movs r0, 8 ; 8
| 0x0804eb40 8df80000 strb.w r0, [sp]
| 0x0804eb44 fff7d1ff bl func_4eaea
| 0x0804eb48 8df80000 strb.w r0, [sp]
| ,=< 0x0804eb4c 03e0 b 0x804eb56
| .--> 0x0804eb4e fff7ccff bl func_4eaea
| || 0x0804eb52 8df80000 strb.w r0, [sp]
| |`-> 0x0804eb56 9df80000 ldrb.w r0, [sp]
| | 0x0804eb5a 0128 cmp r0, 1 ; 1
| `==< 0x0804eb5c f7d0 beq 0x804eb4e
| 0x0804eb5e 9df80000 ldrb.w r0, [sp]
\ 0x0804eb62 02bd pop {r1, pc}
/ (fcn) gfx_write_pixel_2 52
| Caller: Start DrawSomethingThenBitBangIO update_scr_30 draw_botline_text
| gfx_write_pixel_2 ();
| 0x08033d78 38b5 push {r3, r4, r5, lr}
| 0x08033d7a 0024 movs r4, 0
| ,=< 0x08033d7c 11e0 b 0x8033da2
| .--> 0x08033d7e 4021 movs r1, 0x40 ; '@' ; 64
| || 0x08033d80 4848 ldr r0, [0x08033ea4] ; [0x8033ea4:4]=0x40020c00 io_GPIOD
| || 0x08033d82 f7f744fd bl GPIO_ResetBits
| || 0x08033d86 7ff07f42 mvns r2, 0xff000000
| || 0x08033d8a 2900 movs r1, r5
| || 0x08033d8c 2000 movs r0, r4
| || 0x08033d8e fff7cbfc bl gfx_write_pixel_to_framebuffer
| || 0x08033d92 4021 movs r1, 0x40 ; '@' ; 64
| || 0x08033d94 4348 ldr r0, [0x08033ea4] ; [0x8033ea4:4]=0x40020c00 io_GPIOD
| || 0x08033d96 f7f738fd bl GPIO_SetBits
| || 0x08033d9a 6d1c adds r5, r5, 1
| .---> 0x08033d9c 802d cmp r5, 0x80 ; 128
| |`==< 0x08033d9e eedb blt 0x8033d7e
| | | 0x08033da0 641c adds r4, r4, 1
| | `-> 0x08033da2 a02c cmp r4, 0xa0 ; 160
| | ,=< 0x08033da4 01da bge 0x8033daa
| | | 0x08033da6 0025 movs r5, 0
| `===< 0x08033da8 f8e7 b 0x8033d9c
\ `-> 0x08033daa 31bd pop {r0, r4, r5, pc}
/ (fcn) SomethingWithGPIOC_TIM7_Status 92
| Caller: Start c5000_wr_60_4 c5000_some3
| SomethingWithGPIOC_TIM7_Status ();
| 0x0803f626 00b5 push {lr}
| 0x0803f628 83b0 sub sp, 0xc
| 0x0803f62a 8020 movs r0, 0x80 ; 128
| 0x0803f62c 0090 str r0, [sp]
| 0x0803f62e 0220 movs r0, 2 ; 2
| 0x0803f630 8df80500 strb.w r0, [sp, 5]
| 0x0803f634 0120 movs r0, 1 ; 1
| 0x0803f636 8df80400 strb.w r0, [sp, 4]
| 0x0803f63a 0120 movs r0, 1 ; 1
| 0x0803f63c 8df80600 strb.w r0, [sp, 6]
| 0x0803f640 0020 movs r0, 0
| 0x0803f642 8df80700 strb.w r0, [sp, 7]
| 0x0803f646 00a9 add r1, sp, 0
| 0x0803f648 1d48 ldr r0, [0x0803f6c0] ; [0x803f6c0:4]=0x40020800 io_GPIOC
| 0x0803f64a ecf77df8 bl GPIO_Init
| 0x0803f64e 8021 movs r1, 0x80 ; 128
| 0x0803f650 1b48 ldr r0, [0x0803f6c0] ; [0x803f6c0:4]=0x40020800 io_GPIOC
| 0x0803f652 ecf7daf8 bl GPIO_SetBits
| 0x0803f656 0022 movs r2, 0
| 0x0803f658 0121 movs r1, 1 ; 1
| 0x0803f65a 1a48 ldr r0, [0x0803f6c6] ; [0x803f6c4:4]=0x40001400 io_TIM7
| 0x0803f65c 04f092fb bl TIM_ITConfig
| 0x0803f660 0021 movs r1, 0
| 0x0803f662 1848 ldr r0, [0x0803f6c6] ; [0x803f6c4:4]=0x40001400 io_TIM7
| 0x0803f664 04f030fa bl TIM_EnableOrDisableCounter
| 0x0803f668 1048 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f66a 0078 ldrb r0, [r0]
| 0x0803f66c 10f0fb00 ands r0, r0, 0xfb
| 0x0803f670 0e49 ldr r1, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f672 0870 strb r0, [r1]
| 0x0803f674 0d48 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f676 0078 ldrb r0, [r0]
| 0x0803f678 10f0fd00 ands r0, r0, 0xfd
| 0x0803f67c 0b49 ldr r1, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f67e 0870 strb r0, [r1]
\ 0x0803f680 07bd pop {r0, r1, r2, pc}
/ (fcn) CalledFromLongpressThing 110
| Caller: SomethingWithLongpressSettingRadioStatus1
| CalledFromLongpressThing ();
| 0x08045c9c dff88c05 ldr.w r0, [0x08046230] ; [0x8046230:4]=0x2001e796
| 0x08045ca0 0078 ldrb r0, [r0]
| 0x08045ca2 0428 cmp r0, 4 ; 4
| ,=< 0x08045ca4 03d3 blo 0x8045cae
| | 0x08045ca6 dff88405 ldr.w r0, [0x08046232] ; [0x8046230:4]=0x2001e796
| | 0x08045caa 0021 movs r1, 0
| | 0x08045cac 0170 strb r1, [r0]
| `-> 0x08045cae dff88005 ldr.w r0, [0x08046236] ; [0x8046234:4]=0x2001e454
| 0x08045cb2 0088 ldrh r0, [r0]
| 0x08045cb4 dff87415 ldr.w r1, [0x08046230] ; [0x8046230:4]=0x2001e796
| 0x08045cb8 0978 ldrb r1, [r1]
| 0x08045cba dff87825 ldr.w r2, [0x0804623a] ; [0x8046238:4]=0x2001e798
| 0x08045cbe 32f81110 ldrh.w r1, [r2, r1, lsl 1]
| 0x08045cc2 401a subs r0, r0, r1
| 0x08045cc4 dff86815 ldr.w r1, [0x08046234] ; [0x8046234:4]=0x2001e454
| 0x08045cc8 0880 strh r0, [r1]
| 0x08045cca dff86005 ldr.w r0, [0x08046232] ; [0x8046230:4]=0x2001e796
| 0x08045cce 0078 ldrb r0, [r0]
| 0x08045cd0 dff86015 ldr.w r1, [0x08046238] ; [0x8046238:4]=0x2001e798
| 0x08045cd4 dff83c25 ldr.w r2, [0x08046218] ; [0x8046218:4]=0x2001dfb8
| 0x08045cd8 d288 ldrh r2, [r2, 6]
| 0x08045cda 21f81020 strh.w r2, [r1, r0, lsl 1]
| 0x08045cde dff85005 ldr.w r0, [0x08046236] ; [0x8046234:4]=0x2001e454
| 0x08045ce2 0088 ldrh r0, [r0]
| 0x08045ce4 dff84415 ldr.w r1, [0x08046230] ; [0x8046230:4]=0x2001e796
| 0x08045ce8 0978 ldrb r1, [r1]
| 0x08045cea dff84825 ldr.w r2, [0x0804623a] ; [0x8046238:4]=0x2001e798
| 0x08045cee 32f81110 ldrh.w r1, [r2, r1, lsl 1]
| 0x08045cf2 0818 adds r0, r1, r0
| 0x08045cf4 dff83815 ldr.w r1, [0x08046234] ; [0x8046234:4]=0x2001e454
| 0x08045cf8 0880 strh r0, [r1]
| 0x08045cfa dff83005 ldr.w r0, [0x08046232] ; [0x8046230:4]=0x2001e796
| 0x08045cfe 0078 ldrb r0, [r0]
| 0x08045d00 401c adds r0, r0, 1
| 0x08045d02 dff82815 ldr.w r1, [0x08046232] ; [0x8046230:4]=0x2001e796
| 0x08045d06 0870 strb r0, [r1]
\ 0x08045d08 7047 bx lr
/ (fcn) func_44618 64
| Caller: func_499e2
| func_44618 ();
| 0x08044618 10b4 push {r4}
| 0x0804461a 0022 movs r2, 0
| 0x0804461c 0388 ldrh r3, [r0]
| 0x0804461e 1a00 movs r2, r3
| 0x08044620 12f44152 ands r2, r2, 0x3040
| 0x08044624 0b88 ldrh r3, [r1]
| 0x08044626 4c88 ldrh r4, [r1, 2]
| 0x08044628 2343 orrs r3, r4
| 0x0804462a 8c88 ldrh r4, [r1, 4]
| 0x0804462c 2343 orrs r3, r4
| 0x0804462e cc88 ldrh r4, [r1, 6]
| 0x08044630 2343 orrs r3, r4
| 0x08044632 0c89 ldrh r4, [r1, 8]
| 0x08044634 2343 orrs r3, r4
| 0x08044636 4c89 ldrh r4, [r1, 0xa]
| 0x08044638 2343 orrs r3, r4
| 0x0804463a 8c89 ldrh r4, [r1, 0xc]
| 0x0804463c 2343 orrs r3, r4
| 0x0804463e cc89 ldrh r4, [r1, 0xe]
| 0x08044640 2343 orrs r3, r4
| 0x08044642 1a43 orrs r2, r3
| 0x08044644 0280 strh r2, [r0]
| 0x08044646 828b ldrh r2, [r0, 0x1c]
| 0x08044648 4ff2ff73 movw r3, 0xf7ff
| 0x0804464c 1a40 ands r2, r3
| 0x0804464e 8283 strh r2, [r0, 0x1c]
| 0x08044650 098a ldrh r1, [r1, 0x10]
| 0x08044652 0182 strh r1, [r0, 0x10]
| 0x08044654 10bc pop {r4}
\ 0x08044656 7047 bx lr
/ (fcn) SomethingWith_RCC_and_PLL_I2C 256
| Caller: func_4915c
| SomethingWith_RCC_and_PLL_I2C ();
| 0x08044658 2de9f047 push.w {r4, r5, r6, r7, r8, sb, sl, lr}
| 0x0804465c 0022 movs r2, 0
| 0x0804465e 0223 movs r3, 2 ; 2
| 0x08044660 0024 movs r4, 0
| 0x08044662 0125 movs r5, 1 ; 1
| 0x08044664 0026 movs r6, 0
| 0x08044666 0027 movs r7, 0
| 0x08044668 5ff0000c movs.w ip, 0
| 0x0804466c 5ff0000e movs.w lr, 0
| 0x08044670 5ff00008 movs.w r8, 0
| 0x08044674 b0f81c90 ldrh.w sb, [r0, 0x1c]
| 0x08044678 4ff2400a movw sl, 0xf040
| 0x0804467c 1aea0909 ands.w sb, sl, sb
| 0x08044680 a0f81c90 strh.w sb, [r0, 0x1c]
| 0x08044684 5ff00209 movs.w sb, 2 ; 2
| 0x08044688 a0f82090 strh.w sb, [r0, 0x20]
| 0x0804468c b0f81c90 ldrh.w sb, [r0, 0x1c]
| 0x08044690 4a46 mov r2, sb
| 0x08044692 d1f80890 ldr.w sb, [r1, 8]
| 0x08044696 b9f1020f cmp.w sb, 2 ; 2
| ,=< 0x0804469a 02d1 bne 0x80446a2
| | 0x0804469c 0024 movs r4, 0
| | 0x0804469e 0223 movs r3, 2 ; 2
| ,==< 0x080446a0 43e0 b 0x804472a
| |`-> 0x080446a2 8b88 ldrh r3, [r1, 4]
| | 0x080446a4 002b cmp r3, 0
| |,=< 0x080446a6 01d1 bne 0x80446ac
| || 0x080446a8 0125 movs r5, 1 ; 1
| ,===< 0x080446aa 00e0 b 0x80446ae
| ||`-> 0x080446ac 0225 movs r5, 2 ; 2
| `---> 0x080446ae 2b4b ldr r3, [0x0804475e] ; [0x804475c:4]=0x40023808 io_RCC_CFGR
| | 0x080446b0 1b68 ldr r3, [r3]
| | 0x080446b2 1b02 lsls r3, r3, 8
| |,=< 0x080446b4 05d5 bpl 0x80446c2
| || 0x080446b6 294b ldr r3, [0x0804475e] ; [0x804475c:4]=0x40023808 io_RCC_CFGR
| || 0x080446b8 1b68 ldr r3, [r3]
| || 0x080446ba 33f40003 bics r3, r3, 0x800000
| || 0x080446be 274c ldr r4, [0x0804475e] ; [0x804475c:4]=0x40023808 io_RCC_CFGR
| || 0x080446c0 2360 str r3, [r4]
| |`-> 0x080446c2 274b ldr r3, [0x08044762] ; [0x8044760:4]=0x40023884 io_RCC_PLL_I2S
| | 0x080446c4 1b68 ldr r3, [r3]
| | 0x080446c6 c3f3881e ubfx lr, r3, 6, 9
| | 0x080446ca 254b ldr r3, [0x08044762] ; [0x8044760:4]=0x40023884 io_RCC_PLL_I2S
| | 0x080446cc 1b68 ldr r3, [r3]
| | 0x080446ce c3f30278 ubfx r8, r3, 0x1c, 3
| | 0x080446d2 244b ldr r3, [0x08044766] ; [0x8044764:4]=0x40023804 io_RCC_PLLCFG
| | 0x080446d4 1b68 ldr r3, [r3]
| | 0x080446d6 13f03f0c ands ip, r3, 0x3f
| | 0x080446da 234b ldr r3, [0x0804476a] ; [0x8044768:4]=0xb71b00
| | 0x080446dc b3fbfcf3 udiv r3, r3, ip
| | 0x080446e0 0efb03f3 mul r3, lr, r3
| | 0x080446e4 b3fbf8f7 udiv r7, r3, r8
| | 0x080446e8 cb88 ldrh r3, [r1, 6]
| | 0x080446ea b3f5007f cmp.w r3, 0x200 ; 512
| |,=< 0x080446ee 08d1 bne 0x8044702
| || 0x080446f0 3b0a lsrs r3, r7, 8
| || 0x080446f2 0a24 movs r4, 0xa ; 10
| || 0x080446f4 6343 muls r3, r4, r3
| || 0x080446f6 8c68 ldr r4, [r1, 8]
| || 0x080446f8 b3fbf4f3 udiv r3, r3, r4
| || 0x080446fc 5e1d adds r6, r3, 5
| || 0x080446fe b6b2 uxth r6, r6
| ,===< 0x08044700 0ae0 b 0x8044718
| ||`-> 0x08044702 adb2 uxth r5, r5
| || 0x08044704 6b01 lsls r3, r5, 5
| || 0x08044706 b7fbf3f3 udiv r3, r7, r3
| || 0x0804470a 0a24 movs r4, 0xa ; 10
| || 0x0804470c 6343 muls r3, r4, r3
| || 0x0804470e 8c68 ldr r4, [r1, 8]
| || 0x08044710 b3fbf4f3 udiv r3, r3, r4
| || 0x08044714 5e1d adds r6, r3, 5
| || 0x08044716 b6b2 uxth r6, r6
| `---> 0x08044718 0a23 movs r3, 0xa ; 10
| | 0x0804471a b6fbf3f6 udiv r6, r6, r3
| | 0x0804471e 16f00104 ands r4, r6, 1
| | 0x08044722 a4b2 uxth r4, r4
| | 0x08044724 331b subs r3, r6, r4
| | 0x08044726 5b08 lsrs r3, r3, 1
| | 0x08044728 2402 lsls r4, r4, 8
| `--> 0x0804472a 9d1e subs r5, r3, 2
| 0x0804472c adb2 uxth r5, r5
| 0x0804472e fe2d cmp r5, 0xfe ; 254
| ,=< 0x08044730 01d3 blo 0x8044736
| | 0x08044732 0223 movs r3, 2 ; 2
| | 0x08044734 0024 movs r4, 0
| `-> 0x08044736 cd88 ldrh r5, [r1, 6]
| 0x08044738 2c43 orrs r4, r5
| 0x0804473a 2343 orrs r3, r4
| 0x0804473c 0384 strh r3, [r0, 0x20]
| 0x0804473e 0b88 ldrh r3, [r1]
| 0x08044740 4c88 ldrh r4, [r1, 2]
| 0x08044742 8d88 ldrh r5, [r1, 4]
| 0x08044744 8989 ldrh r1, [r1, 0xc]
| 0x08044746 2943 orrs r1, r5
| 0x08044748 2143 orrs r1, r4
| 0x0804474a 1943 orrs r1, r3
| 0x0804474c 51f40061 orrs r1, r1, 0x800
| 0x08044750 0a43 orrs r2, r1
| 0x08044752 8283 strh r2, [r0, 0x1c]
\ 0x08044754 bde8f087 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}
/ (fcn) func_4476c 28
| Caller: func_499e2
| func_4476c ();
| 0x0804476c c9b2 uxtb r1, r1
| 0x0804476e 0029 cmp r1, 0
| ,=< 0x08044770 04d0 beq 0x804477c
| | 0x08044772 0188 ldrh r1, [r0]
| | 0x08044774 51f04001 orrs r1, r1, 0x40
| | 0x08044778 0180 strh r1, [r0]
| ,==< 0x0804477a 04e0 b 0x8044786
| |`-> 0x0804477c 0188 ldrh r1, [r0]
| | 0x0804477e 4ff6bf72 movw r2, 0xffbf
| | 0x08044782 1140 ands r1, r2
| | 0x08044784 0180 strh r1, [r0]
\ `--> 0x08044786 7047 bx lr
/ (fcn) func_447fa 4
| Caller: md380_spi_sendrecv
| func_447fa ();
| 0x080447fa 8089 ldrh r0, [r0, 0xc]
\ 0x080447fc 7047 bx lr
/ (fcn) func_447fe 4
| Caller: md380_spi_sendrecv
| func_447fe ();
| 0x080447fe 8181 strh r1, [r0, 0xc]
\ 0x08044800 7047 bx lr
/ (fcn) func_44802 24
| Caller: func_4915c
| func_44802 ();
| 0x08044802 d2b2 uxtb r2, r2
| 0x08044804 002a cmp r2, 0
| ,=< 0x08044806 03d0 beq 0x8044810
| | 0x08044808 8288 ldrh r2, [r0, 4]
| | 0x0804480a 1143 orrs r1, r2
| | 0x0804480c 8180 strh r1, [r0, 4]
| ,==< 0x0804480e 03e0 b 0x8044818
| |`-> 0x08044810 8288 ldrh r2, [r0, 4]
| | 0x08044812 32ea0101 bics.w r1, r2, r1
| | 0x08044816 8180 strh r1, [r0, 4]
\ `--> 0x08044818 7047 bx lr
/ (fcn) func_4481a 44
| Caller: func_4915c
| func_4481a ();
| 0x0804481a 10b4 push {r4}
| 0x0804481c 0023 movs r3, 0
| 0x0804481e 0024 movs r4, 0
| 0x08044820 c9b2 uxtb r1, r1
| 0x08044822 0909 lsrs r1, r1, 4
| 0x08044824 c9b2 uxtb r1, r1
| 0x08044826 0b00 movs r3, r1
| 0x08044828 0121 movs r1, 1 ; 1
| 0x0804482a 9940 lsls r1, r3
| 0x0804482c 0c00 movs r4, r1
| 0x0804482e d2b2 uxtb r2, r2
| 0x08044830 002a cmp r2, 0
| ,=< 0x08044832 03d0 beq 0x804483c
| | 0x08044834 8188 ldrh r1, [r0, 4]
| | 0x08044836 2143 orrs r1, r4
| | 0x08044838 8180 strh r1, [r0, 4]
| ,==< 0x0804483a 02e0 b 0x8044842
| |`-> 0x0804483c 8188 ldrh r1, [r0, 4]
| | 0x0804483e a143 bics r1, r4
| | 0x08044840 8180 strh r1, [r0, 4]
| `--> 0x08044842 10bc pop {r4}
\ 0x08044844 7047 bx lr
/ (fcn) func_44846 204
| Caller: md380_spi_sendrecv
| func_44846 ();
| 0x08044846 0022 movs r2, 0
| 0x08044848 0089 ldrh r0, [r0, 8]
| 0x0804484a 0842 tst r0, r1
| ,=< 0x0804484c 01d0 beq 0x8044852
| | 0x0804484e 0122 movs r2, 1 ; 1
| ,==< 0x08044850 00e0 b 0x8044854
| |`-> 0x08044852 0022 movs r2, 0
| `--> 0x08044854 1000 movs r0, r2
| 0x08044856 c0b2 uxtb r0, r0
| 0x08044858 7047 bx lr
| 0x0804485a f0b4 push {r4, r5, r6, r7} ; in: R0='SPIx' (SPI or I2S base addr)
| 0x0804485c 0a00 movs r2, r1 ; in: R1='SPI_I2S_IT' (0x58 from SPI3_IRQHandler)
| 0x0804485e 0021 movs r1, 0
| 0x08044860 0024 movs r4, 0
| 0x08044862 0025 movs r5, 0
| 0x08044864 0023 movs r3, 0
| 0x08044866 0126 movs r6, 1 ; 1
| 0x08044868 12f00f07 ands r7, r2, 0xf ; 'itpos = 0x01 SHL (SPI_I2S_IT & 0x0F)'
| 0x0804486c be40 lsls r6, r7
| 0x0804486e 3400 movs r4, r6
| 0x08044870 d2b2 uxtb r2, r2
| 0x08044872 1209 lsrs r2, r2, 4 ; 'itmask = SPI_I2S_IT SHR 4'
| 0x08044874 d2b2 uxtb r2, r2
| 0x08044876 1500 movs r5, r2
| 0x08044878 0122 movs r2, 1 ; 1
| 0x0804487a 12fa05f5 lsls.w r5, r2, r5 ; 'itmask = 0x01 SHL itmask'
| 0x0804487e 8288 ldrh r2, [r0, 4] ; [R0+4] = SPI Control Register 2
| 0x08044880 2a40 ands r2, r5 ; 'enablestatus = (SPIx.CR2 & itmask)'
| 0x08044882 1300 movs r3, r2
| 0x08044884 0089 ldrh r0, [r0, 8] ; [R0+8] = SPI Status Register
| 0x08044886 2042 tst r0, r4
| ,=< 0x08044888 04d0 beq 0x8044894
| | 0x0804488a 9bb2 uxth r3, r3
| | 0x0804488c 002b cmp r3, 0
| ,==< 0x0804488e 01d0 beq 0x8044894
| || 0x08044890 0121 movs r1, 1 ; 1
| ,===< 0x08044892 00e0 b 0x8044896
| |``-> 0x08044894 0021 movs r1, 0
| `---> 0x08044896 0800 movs r0, r1
| 0x08044898 c0b2 uxtb r0, r0
| 0x0804489a f0bc pop {r4, r5, r6, r7}
| 0x0804489c 7047 bx lr ; return: R0: 0=interrupt flag RESET, 1=SET
| 0x0804489e 0022 movs r2, 0 ; in: R1=SPI_I2S_IT, which bit to clear
| 0x080448a0 0123 movs r3, 1 ; 1
| 0x080448a2 11f00f01 ands r1, r1, 0xf
| 0x080448a6 13fa01f1 lsls.w r1, r3, r1 ; 'itpos = 0x01 SHL (SPI_I2S_IT & 0x0F)'
| 0x080448aa 0a00 movs r2, r1
| 0x080448ac 92b2 uxth r2, r2
| 0x080448ae d143 mvns r1, r2 ; 'SPIx.SR = BITNOT itpos'
| 0x080448b0 0181 strh r1, [r0, 8] ; [R0+8] = SPI Status Register
| 0x080448b2 7047 bx lr
| 0x080448b4 80b5 push {r7, lr}
| 0x080448b6 0028 cmp r0, 0
| ,=< 0x080448b8 01d1 bne 0x80448be
| | 0x080448ba 0548 ldr r0, [0x080448d2] ; [0x80448d0:4]=0x2001da1c gfx_info
| | 0x080448bc 8069 ldr r0, [r0, 0x18]
| `-> 0x080448be 027f ldrb r2, [r0, 0x1c]
| 0x080448c0 8a70 strb r2, [r1, 2]
| 0x080448c2 827f ldrb r2, [r0, 0x1e]
| 0x080448c4 0a71 strb r2, [r1, 4]
| 0x080448c6 427f ldrb r2, [r0, 0x1d]
| 0x080448c8 ca70 strb r2, [r1, 3]
| 0x080448ca 8268 ldr r2, [r0, 8]
| 0x080448cc 9047 blx r2
| 0x080448ce 01bd pop {r0, pc}
| ,=< 0x080448d0 1cda bge 0x804490c
| | 0x080448d2 0120 movs r0, 1 ; 1
| | 0x080448d4 80b5 push {r7, lr}
| | 0x080448d6 0100 movs r1, r0
| | 0x080448d8 0020 movs r0, 0
| | 0x080448da 09b2 sxth r1, r1
| | 0x080448dc 0029 cmp r1, 0
| ,==< 0x080448de 06d0 beq 0x80448ee
| || 0x080448e0 0800 movs r0, r1
| || 0x080448e2 00b2 sxth r0, r0
| || 0x080448e4 eef7bef8 bl gfx_draw_sub_32a64
| || 0x080448e8 007f ldrb r0, [r0, 0x1c]
| || 0x080448ea 10f00100 ands r0, r0, 1
| `--> 0x080448ee 02bd pop {r1, pc}
| | 0x080448f0 e0b5 push {r5, r6, r7, lr}
| | 0x080448f2 0200 movs r2, r0
| | 0x080448f4 0020 movs r0, 0
| | 0x080448f6 12b2 sxth r2, r2
| | 0x080448f8 002a cmp r2, 0
| ,==< 0x080448fa 09d0 beq 0x8044910
| || 0x080448fc 0020 movs r0, 0
| || 0x080448fe 0290 str r0, [sp, 8]
| || 0x08044900 2020 movs r0, 0x20 ; 32
| || 0x08044902 0090 str r0, [sp]
| || 0x08044904 00a9 add r1, sp, 0
| || 0x08044906 1000 movs r0, r2
| || 0x08044908 00b2 sxth r0, r0
| || 0x0804490a d7f725ff bl gfx_1c758
| | 0x0804490e 0298 ldr r0, [sp, 8]
\ `--> 0x08044910 0ebd pop {r1, r2, r3, pc}
/ (fcn) func_44912 14
| Caller: func_37792
| func_44912 ();
| 0x08044912 e0b5 push {r5, r6, r7, lr}
| 0x08044914 00b2 sxth r0, r0
| 0x08044916 0028 cmp r0, 0
| ,=< 0x08044918 07d0 beq 0x804492a
| | 0x0804491a 2221 movs r1, 0x22 ; '"' ; 34
| | 0x0804491c 0091 str r1, [sp]
\ | 0x0804491e 00a9 add r1, sp, 0
/ (fcn) func_44930 32
| Caller: DrawSomethingThenBitBangIO
| func_44930 ();
| 0x08044930 bff34f8f dsb sy
| 0x08044934 dff8140b ldr.w r0, [0x08045450] ; [0x8045450:4]=0x5fa0004
| 0x08044938 0068 ldr r0, [r0]
| 0x0804493a 10f4e060 ands r0, r0, 0x700
| 0x0804493e dff8101b ldr.w r1, [0x08045456] ; [0x8045454:4]=0x4001204c io_ADC1_DATA
| 0x08044942 0843 orrs r0, r1
| 0x08044944 dff8041b ldr.w r1, [0x08045450] ; [0x8045450:4]=0x5fa0004
| 0x08044948 0860 str r0, [r1]
| 0x0804494a bff34f8f dsb sy
\ `-> 0x0804494e fee7 b 0x804494e
/ (fcn) adc1_adc2_and_dma2s3_init 536
| Caller: init_more_and_start_watchdog
| adc1_adc2_and_dma2s3_init ();
| 0x08044950 00b5 push {lr}
| 0x08044952 99b0 sub sp, 0x64 ; 'd'
| 0x08044954 0121 movs r1, 1 ; 1
| 0x08044956 5ff48000 movs.w r0, 0x400000
| 0x0804495a f2f7c4f8 bl func_36ae6
| 0x0804495e 0121 movs r1, 1 ; 1
| 0x08044960 4ff48070 mov.w r0, 0x100 ; 256
| 0x08044964 f2f7fff8 bl func_36b66
| 0x08044968 0121 movs r1, 1 ; 1
| 0x0804496a 4ff40070 mov.w r0, 0x200 ; 512
| 0x0804496e f2f7faf8 bl func_36b66
| 0x08044972 0020 movs r0, 0
| 0x08044974 0a90 str r0, [sp, 0x28]
| 0x08044976 dff8dc0a ldr.w r0, [0x0804545a] ; [0x8045458:4]=0x2001e51c adc1_6channel_dma_buffer
| 0x0804497a 0b90 str r0, [sp, 0x2c]
| 0x0804497c dff8d80a ldr.w r0, [0x0804545c] ; [0x804545c:4]=0x40026410 io_DMA2_S0CR
| 0x08044980 0c90 str r0, [sp, 0x30]
| 0x08044982 0020 movs r0, 0
| 0x08044984 0d90 str r0, [sp, 0x34]
| 0x08044986 0620 movs r0, 6 ; 6
| 0x08044988 0e90 str r0, [sp, 0x38]
| 0x0804498a 0020 movs r0, 0
| 0x0804498c 0f90 str r0, [sp, 0x3c]
| 0x0804498e 4ff48060 mov.w r0, 0x400 ; 1024
| 0x08044992 1090 str r0, [sp, 0x40]
| 0x08044994 4ff40060 mov.w r0, 0x800 ; 2048
| 0x08044998 1190 str r0, [sp, 0x44]
| 0x0804499a 4ff40050 mov.w r0, 0x2000
| 0x0804499e 1290 str r0, [sp, 0x48]
| 0x080449a0 4ff48070 mov.w r0, 0x100 ; 256
| 0x080449a4 1390 str r0, [sp, 0x4c]
| 0x080449a6 0020 movs r0, 0
| 0x080449a8 1490 str r0, [sp, 0x50]
| 0x080449aa 0420 movs r0, 4 ; 4
| 0x080449ac 1590 str r0, [sp, 0x54]
| 0x080449ae 0320 movs r0, 3 ; 3
| 0x080449b0 1690 str r0, [sp, 0x58]
| 0x080449b2 0020 movs r0, 0
| 0x080449b4 1790 str r0, [sp, 0x5c]
| 0x080449b6 0020 movs r0, 0
| 0x080449b8 1890 str r0, [sp, 0x60]
| 0x080449ba 0aa9 add r1, sp, 0x28
| 0x080449bc dff89c0a ldr.w r0, [0x08045460] ; [0x8045460:4]=0x40012000 io_ADC1
| 0x080449c0 09f07afe bl func_4e6b8
| 0x080449c4 0121 movs r1, 1 ; 1
| 0x080449c6 dff8940a ldr.w r0, [0x08045462] ; [0x8045460:4]=0x40012000 io_ADC1
| 0x080449ca 09f0a0fe bl func_4e70e
| 0x080449ce 0020 movs r0, 0
| 0x080449d0 0090 str r0, [sp]
| 0x080449d2 0020 movs r0, 0
| 0x080449d4 0190 str r0, [sp, 4]
| 0x080449d6 0020 movs r0, 0
| 0x080449d8 0290 str r0, [sp, 8]
| 0x080449da 0020 movs r0, 0
| 0x080449dc 0390 str r0, [sp, 0xc]
| 0x080449de 00a8 add r0, sp, 0
| 0x080449e0 08f0cafd bl adc_related_4d578
| 0x080449e4 0020 movs r0, 0
| 0x080449e6 0490 str r0, [sp, 0x10]
| 0x080449e8 0120 movs r0, 1 ; 1
| 0x080449ea 8df81400 strb.w r0, [sp, 0x14]
| 0x080449ee 0020 movs r0, 0
| 0x080449f0 8df81500 strb.w r0, [sp, 0x15]
| 0x080449f4 0020 movs r0, 0
| 0x080449f6 0690 str r0, [sp, 0x18]
| 0x080449f8 0020 movs r0, 0
| 0x080449fa 0890 str r0, [sp, 0x20]
| 0x080449fc 0620 movs r0, 6 ; 6
| 0x080449fe 8df82400 strb.w r0, [sp, 0x24]
| 0x08044a02 04a9 add r1, sp, 0x10
| 0x08044a04 dff8580a ldr.w r0, [0x08045464] ; [0x8045464:4]=0x4001214c io_ADC2_DATA
| 0x08044a08 08f090fd bl adc_related_4d52c
| 0x08044a0c 0123 movs r3, 1 ; 1
| 0x08044a0e 0122 movs r2, 1 ; 1
| 0x08044a10 0921 movs r1, 9 ; 9
| 0x08044a12 dff84c0a ldr.w r0, [0x08045466] ; [0x8045464:4]=0x4001214c io_ADC2_DATA
| 0x08044a16 08f0cdfd bl adc_related_4d5b4
| 0x08044a1a 0123 movs r3, 1 ; 1
| 0x08044a1c 0222 movs r2, 2 ; 2
| 0x08044a1e 0121 movs r1, 1 ; 1
| 0x08044a20 dff83c0a ldr.w r0, [0x08045464] ; [0x8045464:4]=0x4001214c io_ADC2_DATA
| 0x08044a24 08f0c6fd bl adc_related_4d5b4
| 0x08044a28 0123 movs r3, 1 ; 1
| 0x08044a2a 0322 movs r2, 3 ; 3
| 0x08044a2c 0821 movs r1, 8 ; 8
| 0x08044a2e dff8300a ldr.w r0, [0x08045466] ; [0x8045464:4]=0x4001214c io_ADC2_DATA
| 0x08044a32 08f0bffd bl adc_related_4d5b4
| 0x08044a36 0123 movs r3, 1 ; 1
| 0x08044a38 0422 movs r2, 4 ; 4
| 0x08044a3a 0321 movs r1, 3 ; 3
| 0x08044a3c dff8200a ldr.w r0, [0x08045464] ; [0x8045464:4]=0x4001214c io_ADC2_DATA
| 0x08044a40 08f0b8fd bl adc_related_4d5b4
| 0x08044a44 0123 movs r3, 1 ; 1
| 0x08044a46 0522 movs r2, 5 ; 5
| 0x08044a48 0021 movs r1, 0
| 0x08044a4a dff8140a ldr.w r0, [0x08045466] ; [0x8045464:4]=0x4001214c io_ADC2_DATA
| 0x08044a4e 08f0b1fd bl adc_related_4d5b4
| 0x08044a52 0123 movs r3, 1 ; 1
| 0x08044a54 0622 movs r2, 6 ; 6
| 0x08044a56 0121 movs r1, 1 ; 1
| 0x08044a58 dff8040a ldr.w r0, [0x08045464] ; [0x8045464:4]=0x4001214c io_ADC2_DATA
| 0x08044a5c 08f0aafd bl adc_related_4d5b4
| 0x08044a60 0121 movs r1, 1 ; 1
| 0x08044a62 dff8fc09 ldr.w r0, [0x08045466] ; [0x8045464:4]=0x4001214c io_ADC2_DATA
| 0x08044a66 08f024fe bl 0x804d6b2
| 0x08044a6a 0121 movs r1, 1 ; 1
| 0x08044a6c dff8f009 ldr.w r0, [0x08045464] ; [0x8045464:4]=0x4001214c io_ADC2_DATA
| 0x08044a70 08f012fe bl 0x804d698
| 0x08044a74 0121 movs r1, 1 ; 1
| 0x08044a76 dff8e809 ldr.w r0, [0x08045466] ; [0x8045464:4]=0x4001214c io_ADC2_DATA
| 0x08044a7a 08f08efd bl adc_enable_disable
| 0x08044a7e dff8e009 ldr.w r0, [0x08045466] ; [0x8045464:4]=0x4001214c io_ADC2_DATA
| 0x08044a82 08f001fe bl adc_StartConv
| 0x08044a86 5ff00070 movs.w r0, 0x2000000
| 0x08044a8a 0a90 str r0, [sp, 0x28]
| 0x08044a8c dff8d409 ldr.w r0, [0x08045468] ; [0x8045468:4]=0x2001bf80
| 0x08044a90 0b90 str r0, [sp, 0x2c]
| 0x08044a92 dff8d409 ldr.w r0, [0x0804546e] ; [0x804546c:4]=0x40026458 io_DMA2_S3CR
| 0x08044a96 0c90 str r0, [sp, 0x30]
| 0x08044a98 0020 movs r0, 0
| 0x08044a9a 0d90 str r0, [sp, 0x34]
| 0x08044a9c 4ff48070 mov.w r0, 0x100 ; 256
| 0x08044aa0 0e90 str r0, [sp, 0x38]
| 0x08044aa2 0020 movs r0, 0
| 0x08044aa4 0f90 str r0, [sp, 0x3c]
| 0x08044aa6 4ff48060 mov.w r0, 0x400 ; 1024
| 0x08044aaa 1090 str r0, [sp, 0x40]
| 0x08044aac 4ff40060 mov.w r0, 0x800 ; 2048
| 0x08044ab0 1190 str r0, [sp, 0x44]
| 0x08044ab2 4ff40050 mov.w r0, 0x2000
| 0x08044ab6 1290 str r0, [sp, 0x48]
| 0x08044ab8 4ff48070 mov.w r0, 0x100 ; 256
| 0x08044abc 1390 str r0, [sp, 0x4c]
| 0x08044abe 0020 movs r0, 0
| 0x08044ac0 1490 str r0, [sp, 0x50]
| 0x08044ac2 0420 movs r0, 4 ; 4
| 0x08044ac4 1590 str r0, [sp, 0x54]
| 0x08044ac6 0320 movs r0, 3 ; 3
| 0x08044ac8 1690 str r0, [sp, 0x58]
| 0x08044aca 0020 movs r0, 0
| 0x08044acc 1790 str r0, [sp, 0x5c]
| 0x08044ace 0020 movs r0, 0
| 0x08044ad0 1890 str r0, [sp, 0x60]
| 0x08044ad2 0aa9 add r1, sp, 0x28
| 0x08044ad4 dff89409 ldr.w r0, [0x08045470] ; [0x8045470:4]=0x2001e892 gui_opmode3
| 0x08044ad8 09f0eefd bl func_4e6b8
| 0x08044adc 0121 movs r1, 1 ; 1
| 0x08044ade dff88c09 ldr.w r0, [0x08045472] ; [0x8045470:4]=0x2001e892 gui_opmode3
| 0x08044ae2 09f014fe bl func_4e70e
| 0x08044ae6 0122 movs r2, 1 ; 1
| 0x08044ae8 1821 movs r1, 0x18 ; 24
| 0x08044aea dff88009 ldr.w r0, [0x08045472] ; [0x8045470:4]=0x2001e892 gui_opmode3
| 0x08044aee 09f01bfe bl func_4e728
| 0x08044af2 0020 movs r0, 0
| 0x08044af4 0090 str r0, [sp]
| 0x08044af6 0020 movs r0, 0
| 0x08044af8 0190 str r0, [sp, 4]
| 0x08044afa 0020 movs r0, 0
| 0x08044afc 0290 str r0, [sp, 8]
| 0x08044afe 0020 movs r0, 0
| 0x08044b00 0390 str r0, [sp, 0xc]
| 0x08044b02 00a8 add r0, sp, 0
| 0x08044b04 08f038fd bl adc_related_4d578
| 0x08044b08 0020 movs r0, 0
| 0x08044b0a 0490 str r0, [sp, 0x10]
| 0x08044b0c 0020 movs r0, 0
| 0x08044b0e 8df81400 strb.w r0, [sp, 0x14]
| 0x08044b12 0020 movs r0, 0
| 0x08044b14 8df81500 strb.w r0, [sp, 0x15]
| 0x08044b18 5ff04050 movs.w r0, 0x30000000
| 0x08044b1c 0690 str r0, [sp, 0x18]
| 0x08044b1e 5ff00060 movs.w r0, 0x8000000
| 0x08044b22 0790 str r0, [sp, 0x1c]
| 0x08044b24 0020 movs r0, 0
| 0x08044b26 0890 str r0, [sp, 0x20]
| 0x08044b28 0120 movs r0, 1 ; 1
| 0x08044b2a 8df82400 strb.w r0, [sp, 0x24]
| 0x08044b2e 04a9 add r1, sp, 0x10
| 0x08044b30 dff8b80d ldr.w r0, [0x080458f0] ; [0x80458f0:4]=0x2001e337
| 0x08044b34 08f0fafc bl adc_related_4d52c
| 0x08044b38 0123 movs r3, 1 ; 1
| 0x08044b3a 0122 movs r2, 1 ; 1
| 0x08044b3c 0d21 movs r1, 0xd ; 13
| 0x08044b3e dff8ac0d ldr.w r0, [0x080458f2] ; [0x80458f0:4]=0x2001e337
| 0x08044b42 08f037fd bl adc_related_4d5b4
| 0x08044b46 0121 movs r1, 1 ; 1
| 0x08044b48 dff8a00d ldr.w r0, [0x080458f0] ; [0x80458f0:4]=0x2001e337
| 0x08044b4c 08f0b1fd bl 0x804d6b2
| 0x08044b50 0121 movs r1, 1 ; 1
| 0x08044b52 dff8980d ldr.w r0, [0x080458f2] ; [0x80458f0:4]=0x2001e337
| 0x08044b56 08f09ffd bl 0x804d698
| 0x08044b5a 0021 movs r1, 0
| 0x08044b5c dff88c0d ldr.w r0, [0x080458f0] ; [0x80458f0:4]=0x2001e337
| 0x08044b60 08f01bfd bl adc_enable_disable
| 0x08044b64 19b0 add sp, 0x64
\ 0x08044b66 00bd pop {pc}
/ (fcn) func_44b68 332
| Caller: LongSwitchWithRadioStatus1
| func_44b68 ();
| 0x08044b68 dff80409 ldr.w r0, [0x08045474] ; [0x8045474:4]=0x2001e790
| 0x08044b6c 0078 ldrb r0, [r0]
| 0x08044b6e 7d28 cmp r0, 0x7d ; '}' ; 125
| ,=< 0x08044b70 0ed0 beq 0x8044b90
| | 0x08044b72 dff8fc08 ldr.w r0, [0x08045476] ; [0x8045474:4]=0x2001e790
| | 0x08044b76 0078 ldrb r0, [r0]
| | 0x08044b78 7f28 cmp r0, 0x7f ; 127
| ,==< 0x08044b7a 09d0 beq 0x8044b90
| || 0x08044b7c dff8f008 ldr.w r0, [0x08045474] ; [0x8045474:4]=0x2001e790
| || 0x08044b80 0078 ldrb r0, [r0]
| || 0x08044b82 7e28 cmp r0, 0x7e ; '~' ; 126
| ,===< 0x08044b84 04d0 beq 0x8044b90
| ||| 0x08044b86 dff8e808 ldr.w r0, [0x08045476] ; [0x8045474:4]=0x2001e790
| ||| 0x08044b8a 0078 ldrb r0, [r0]
| ||| 0x08044b8c 8028 cmp r0, 0x80 ; 128
| ,====< 0x08044b8e 48d1 bne 0x8044c22
| |```-> 0x08044b90 dff85c0d ldr.w r0, [0x080458f4] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044b94 0078 ldrb r0, [r0]
| | 0x08044b96 0828 cmp r0, 8 ; 8
| | ,=< 0x08044b98 03d3 blo 0x8044ba2
| | | 0x08044b9a dff8540d ldr.w r0, [0x080458f6] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | | 0x08044b9e 0021 movs r1, 0
| | | 0x08044ba0 0170 strb r1, [r0]
| | `-> 0x08044ba2 dff8d008 ldr.w r0, [0x0804547a] ; [0x8045478:4]=0x2001e424
| | 0x08044ba6 0088 ldrh r0, [r0]
| | 0x08044ba8 dff8441d ldr.w r1, [0x080458f4] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044bac 0978 ldrb r1, [r1]
| | 0x08044bae dff8c828 ldr.w r2, [0x0804547e] ; [0x804547c:4]=0x2001e7f4
| | 0x08044bb2 32f81110 ldrh.w r1, [r2, r1, lsl 1]
| | 0x08044bb6 401a subs r0, r0, r1
| | 0x08044bb8 dff8b818 ldr.w r1, [0x08045478] ; [0x8045478:4]=0x2001e424
| | 0x08044bbc 0880 strh r0, [r1]
| | 0x08044bbe dff8300d ldr.w r0, [0x080458f6] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044bc2 0078 ldrb r0, [r0]
| | 0x08044bc4 dff8b018 ldr.w r1, [0x0804547c] ; [0x804547c:4]=0x2001e7f4
| | 0x08044bc8 dff88c28 ldr.w r2, [0x0804545c] ; [0x804545c:4]=0x40026410 io_DMA2_S0CR
| | 0x08044bcc 1288 ldrh r2, [r2]
| | 0x08044bce 21f81020 strh.w r2, [r1, r0, lsl 1]
| | 0x08044bd2 dff8a008 ldr.w r0, [0x0804547a] ; [0x8045478:4]=0x2001e424
| | 0x08044bd6 0088 ldrh r0, [r0]
| | 0x08044bd8 dff8141d ldr.w r1, [0x080458f4] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044bdc 0978 ldrb r1, [r1]
| | 0x08044bde dff89828 ldr.w r2, [0x0804547e] ; [0x804547c:4]=0x2001e7f4
| | 0x08044be2 32f81110 ldrh.w r1, [r2, r1, lsl 1]
| | 0x08044be6 0818 adds r0, r1, r0
| | 0x08044be8 dff88818 ldr.w r1, [0x08045478] ; [0x8045478:4]=0x2001e424
| | 0x08044bec 0880 strh r0, [r1]
| | 0x08044bee dff8000d ldr.w r0, [0x080458f6] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044bf2 0078 ldrb r0, [r0]
| | 0x08044bf4 dff88018 ldr.w r1, [0x0804547c] ; [0x804547c:4]=0x2001e7f4
| | 0x08044bf8 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| | 0x08044bfc dff87c18 ldr.w r1, [0x08045480] ; [0x8045480:4]=0x2001e8df
| | 0x08044c00 0880 strh r0, [r1]
| | 0x08044c02 dff87008 ldr.w r0, [0x0804547a] ; [0x8045478:4]=0x2001e424
| | 0x08044c06 0088 ldrh r0, [r0]
| | 0x08044c08 80b2 uxth r0, r0
| | 0x08044c0a c009 lsrs r0, r0, 7
| | 0x08044c0c dff87018 ldr.w r1, [SomethingWithChannelsRadioConfigAndBeeps] ; [0x8045484:4]=0xf8dfb5e0
| | 0x08044c10 0870 strb r0, [r1]
| | 0x08044c12 dff8dc0c ldr.w r0, [0x080458f6] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044c16 0078 ldrb r0, [r0]
| | 0x08044c18 401c adds r0, r0, 1
| | 0x08044c1a dff8d41c ldr.w r1, [0x080458f6] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044c1e 0870 strb r0, [r1]
| | ,=< 0x08044c20 47e0 b 0x8044cb2
| `----> 0x08044c22 dff8cc0c ldr.w r0, [0x080458f6] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044c26 0078 ldrb r0, [r0]
| | 0x08044c28 0428 cmp r0, 4 ; 4
| ,==< 0x08044c2a 03d3 blo 0x8044c34
| || 0x08044c2c dff8c00c ldr.w r0, [0x080458f4] ; [0x80458f4:4]=0x2001e600 q_struct_1
| || 0x08044c30 0021 movs r1, 0
| || 0x08044c32 0170 strb r1, [r0]
| `--> 0x08044c34 dff83c08 ldr.w r0, [0x08045478] ; [0x8045478:4]=0x2001e424
| | 0x08044c38 0088 ldrh r0, [r0]
| | 0x08044c3a dff8b41c ldr.w r1, [0x080458f6] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044c3e 0978 ldrb r1, [r1]
| | 0x08044c40 dff83428 ldr.w r2, [0x0804547c] ; [0x804547c:4]=0x2001e7f4
| | 0x08044c44 32f81110 ldrh.w r1, [r2, r1, lsl 1]
| | 0x08044c48 401a subs r0, r0, r1
| | 0x08044c4a dff82818 ldr.w r1, [0x0804547a] ; [0x8045478:4]=0x2001e424
| | 0x08044c4e 0880 strh r0, [r1]
| | 0x08044c50 dff89c0c ldr.w r0, [0x080458f4] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044c54 0078 ldrb r0, [r0]
| | 0x08044c56 dff82018 ldr.w r1, [0x0804547e] ; [0x804547c:4]=0x2001e7f4
| | 0x08044c5a dff8fc27 ldr.w r2, [0x0804545e] ; [0x804545c:4]=0x40026410 io_DMA2_S0CR
| | 0x08044c5e 1288 ldrh r2, [r2]
| | 0x08044c60 21f81020 strh.w r2, [r1, r0, lsl 1]
| | 0x08044c64 dff80c08 ldr.w r0, [0x08045478] ; [0x8045478:4]=0x2001e424
| | 0x08044c68 0088 ldrh r0, [r0]
| | 0x08044c6a dff8841c ldr.w r1, [0x080458f6] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044c6e 0978 ldrb r1, [r1]
| | 0x08044c70 dff80428 ldr.w r2, [0x0804547c] ; [0x804547c:4]=0x2001e7f4
| | 0x08044c74 32f81110 ldrh.w r1, [r2, r1, lsl 1]
| | 0x08044c78 0818 adds r0, r1, r0
| | 0x08044c7a dff8f817 ldr.w r1, [0x0804547a] ; [0x8045478:4]=0x2001e424
| | 0x08044c7e 0880 strh r0, [r1]
| | 0x08044c80 dff86c0c ldr.w r0, [0x080458f4] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044c84 0078 ldrb r0, [r0]
| | 0x08044c86 dff8f017 ldr.w r1, [0x0804547e] ; [0x804547c:4]=0x2001e7f4
| | 0x08044c8a 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| | 0x08044c8e dff8ec17 ldr.w r1, [0x08045482] ; [0x8045480:4]=0x2001e8df
| | 0x08044c92 0880 strh r0, [r1]
| | 0x08044c94 dff8dc07 ldr.w r0, [0x08045478] ; [0x8045478:4]=0x2001e424
| | 0x08044c98 0088 ldrh r0, [r0]
| | 0x08044c9a 80b2 uxth r0, r0
| | 0x08044c9c 8009 lsrs r0, r0, 6
| | 0x08044c9e dff8e017 ldr.w r1, [0x08045486] ; [0x8045484:4]=0xf8dfb5e0
| | 0x08044ca2 0870 strb r0, [r1]
| | 0x08044ca4 dff8480c ldr.w r0, [0x080458f4] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044ca8 0078 ldrb r0, [r0]
| | 0x08044caa 401c adds r0, r0, 1
| | 0x08044cac dff8401c ldr.w r1, [0x080458f4] ; [0x80458f4:4]=0x2001e600 q_struct_1
| | 0x08044cb0 0870 strb r0, [r1]
\ `-> 0x08044cb2 7047 bx lr
/ (fcn) func_44cb4 332
| Caller: func_32130 Start func_31fe2
| func_44cb4 ();
| 0x08044cb4 70b5 push {r4, r5, r6, lr}
| 0x08044cb6 dff8740b ldr.w r0, [0x08045832] ; [0x8045830:4]=0x2000b430
| 0x08044cba 0078 ldrb r0, [r0]
| 0x08044cbc c0f34010 ubfx r0, r0, 5, 1
| 0x08044cc0 c007 lsls r0, r0, 0x1f
| ,=< 0x08044cc2 1ed5 bpl 0x8044d02
| | 0x08044cc4 0020 movs r0, 0
| ,==< 0x08044cc6 07e0 b 0x8044cd8
| .---> 0x08044cc8 c0b2 uxtb r0, r0
| ||| 0x08044cca dff8ac17 ldr.w r1, [0x0804547e] ; [0x804547c:4]=0x2001e7f4
| ||| 0x08044cce 4ff41662 mov.w r2, 0x960 ; 2400
| ||| 0x08044cd2 21f81020 strh.w r2, [r1, r0, lsl 1]
| ||| 0x08044cd6 401c adds r0, r0, 1
| |`--> 0x08044cd8 c0b2 uxtb r0, r0
| | | 0x08044cda 0428 cmp r0, 4 ; 4
| `===< 0x08044cdc f4d3 blo 0x8044cc8
| | 0x08044cde 0420 movs r0, 4 ; 4
| ,==< 0x08044ce0 06e0 b 0x8044cf0
| .---> 0x08044ce2 c0b2 uxtb r0, r0
| ||| 0x08044ce4 dff89017 ldr.w r1, [0x0804547c] ; [0x804547c:4]=0x2001e7f4
| ||| 0x08044ce8 0022 movs r2, 0
| ||| 0x08044cea 21f81020 strh.w r2, [r1, r0, lsl 1]
| ||| 0x08044cee 401c adds r0, r0, 1
| |`--> 0x08044cf0 c0b2 uxtb r0, r0
| | | 0x08044cf2 0828 cmp r0, 8 ; 8
| `===< 0x08044cf4 f5d3 blo 0x8044ce2
| | 0x08044cf6 dff87c07 ldr.w r0, [0x0804547a] ; [0x8045478:4]=0x2001e424
| | 0x08044cfa 4ff41651 mov.w r1, 0x2580
| | 0x08044cfe 0180 strh r1, [r0]
| ,==< 0x08044d00 1de0 b 0x8044d3e
| |`-> 0x08044d02 0020 movs r0, 0
| |,=< 0x08044d04 07e0 b 0x8044d16
| .---> 0x08044d06 c0b2 uxtb r0, r0
| ||| 0x08044d08 dff86c17 ldr.w r1, [0x0804547c] ; [0x804547c:4]=0x2001e7f4
| ||| 0x08044d0c 4ff41662 mov.w r2, 0x960 ; 2400
| ||| 0x08044d10 21f81020 strh.w r2, [r1, r0, lsl 1]
| ||| 0x08044d14 401c adds r0, r0, 1
| ||`-> 0x08044d16 c0b2 uxtb r0, r0
| || 0x08044d18 0428 cmp r0, 4 ; 4
| `===< 0x08044d1a f4d3 blo 0x8044d06
| | 0x08044d1c 0420 movs r0, 4 ; 4
| |,=< 0x08044d1e 06e0 b 0x8044d2e
| .---> 0x08044d20 c0b2 uxtb r0, r0
| ||| 0x08044d22 dff85417 ldr.w r1, [0x0804547e] ; [0x804547c:4]=0x2001e7f4
| ||| 0x08044d26 0022 movs r2, 0
| ||| 0x08044d28 21f81020 strh.w r2, [r1, r0, lsl 1]
| ||| 0x08044d2c 401c adds r0, r0, 1
| ||`-> 0x08044d2e c0b2 uxtb r0, r0
| || 0x08044d30 0828 cmp r0, 8 ; 8
| `===< 0x08044d32 f5d3 blo 0x8044d20
| | 0x08044d34 dff83c07 ldr.w r0, [0x08045478] ; [0x8045478:4]=0x2001e424
| | 0x08044d38 4ff41651 mov.w r1, 0x2580
| | 0x08044d3c 0180 strh r1, [r0]
| `--> 0x08044d3e dff8b00b ldr.w r0, [0x080458f6] ; [0x80458f4:4]=0x2001e600 q_struct_1
| 0x08044d42 0021 movs r1, 0
| 0x08044d44 0170 strb r1, [r0]
| 0x08044d46 dff8ac0b ldr.w r0, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| 0x08044d4a 0078 ldrb r0, [r0]
| 0x08044d4c 10f0fe00 ands r0, r0, 0xfe
| 0x08044d50 dff8a01b ldr.w r1, [func_458f8] ; [0x80458f8:4]=0xe0062000
| 0x08044d54 0870 strb r0, [r1]
| 0x08044d56 dff8cc0b ldr.w r0, [0x0804592a] ; [0x8045928:4]=0x2001e7c4
| 0x08044d5a 0021 movs r1, 0
| 0x08044d5c 0170 strb r1, [r0]
| 0x08044d5e dff8cc0a ldr.w r0, [0x08045832] ; [0x8045830:4]=0x2000b430
| 0x08044d62 0069 ldr r0, [r0, 0x10]
| 0x08044d64 000c lsrs r0, r0, 0x10
| 0x08044d66 80b2 uxth r0, r0
| 0x08044d68 e2f722fb bl func_273b0
| 0x08044d6c 0400 movs r4, r0
| 0x08044d6e dff8b80b ldr.w r0, [0x0804592e] ; [0x804592c:4]=0x2001e7c6
| 0x08044d72 0088 ldrh r0, [r0]
| 0x08044d74 e2f71cfb bl func_273b0
| 0x08044d78 0500 movs r5, r0
| 0x08044d7a dff8b00b ldr.w r0, [0x08045932] ; [0x8045930:4]=0x2001c3e0
| 0x08044d7e 0088 ldrh r0, [r0]
| 0x08044d80 e2f716fb bl func_273b0
| 0x08044d84 0600 movs r6, r0
| 0x08044d86 dff8a40a ldr.w r0, [0x08045832] ; [0x8045830:4]=0x2000b430
| 0x08044d8a 0078 ldrb r0, [r0]
| 0x08044d8c c0f34010 ubfx r0, r0, 5, 1
| 0x08044d90 c007 lsls r0, r0, 0x1f
| ,=< 0x08044d92 1ad5 bpl 0x8044dca
| | 0x08044d94 dff8983b ldr.w r3, [0x08045934] ; [0x8045934:4]=0x2001e8dd
| | 0x08044d98 3200 movs r2, r6
| | 0x08044d9a 92b2 uxth r2, r2
| | 0x08044d9c 2900 movs r1, r5
| | 0x08044d9e 89b2 uxth r1, r1
| | 0x08044da0 2000 movs r0, r4
| | 0x08044da2 80b2 uxth r0, r0
| | 0x08044da4 e2f795fb bl 0x80274d2
| | 0x08044da8 dff8881b ldr.w r1, [0x08045938] ; [0x8045938:4]=0x2001c3f0
| | 0x08044dac 0870 strb r0, [r1]
| | 0x08044dae dff8883b ldr.w r3, [0x0804593e] ; [0x804593c:4]=0x2001e8de
| | 0x08044db2 3200 movs r2, r6
| | 0x08044db4 92b2 uxth r2, r2
| | 0x08044db6 2900 movs r1, r5
| | 0x08044db8 89b2 uxth r1, r1
| | 0x08044dba 2000 movs r0, r4
| | 0x08044dbc 80b2 uxth r0, r0
| | 0x08044dbe e2f788fb bl 0x80274d2
| | 0x08044dc2 dff8781b ldr.w r1, [0x08045942] ; [0x8045940:4]=0x2001c3c0
| | 0x08044dc6 0870 strb r0, [r1]
| ,==< 0x08044dc8 19e0 b 0x8044dfe
| |`-> 0x08044dca dff8743b ldr.w r3, [0x08045946] ; [0x8045944:4]=0x2001c3d0
| | 0x08044dce 3200 movs r2, r6
| | 0x08044dd0 92b2 uxth r2, r2
| | 0x08044dd2 2900 movs r1, r5
| | 0x08044dd4 89b2 uxth r1, r1
| | 0x08044dd6 2000 movs r0, r4
| | 0x08044dd8 80b2 uxth r0, r0
| | 0x08044dda e2f77afb bl 0x80274d2
| | 0x08044dde dff8541b ldr.w r1, [0x0804593a] ; [0x8045938:4]=0x2001c3f0
| | 0x08044de2 0870 strb r0, [r1]
| | 0x08044de4 dff85c3b ldr.w r3, [0x08045948] ; [0x8045948:4]=0x2001e893
| | 0x08044de8 3200 movs r2, r6
| | 0x08044dea 92b2 uxth r2, r2
| | 0x08044dec 2900 movs r1, r5
| | 0x08044dee 89b2 uxth r1, r1
| | 0x08044df0 2000 movs r0, r4
| | 0x08044df2 80b2 uxth r0, r0
| | 0x08044df4 e2f76dfb bl 0x80274d2
| | 0x08044df8 dff8401b ldr.w r1, [0x08045940] ; [0x8045940:4]=0x2001c3c0
| | 0x08044dfc 0870 strb r0, [r1]
\ `--> 0x08044dfe 70bd pop {r4, r5, r6, pc}
/ (fcn) LongSwitchWithRadioStatus1 712
| Caller: Start
| LongSwitchWithRadioStatus1 ();
| 0x08044e00 80b5 push {r7, lr}
| 0x08044e02 dff8440b ldr.w r0, [0x0804594e] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| 0x08044e06 0078 ldrb r0, [r0]
| 0x08044e08 0328 cmp r0, 3 ; 3
| ,=< 0x08044e0a 14d0 beq 0x8044e36
| | 0x08044e0c dff8380b ldr.w r0, [0x0804594c] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| | 0x08044e10 0078 ldrb r0, [r0]
| | 0x08044e12 0428 cmp r0, 4 ; 4
| ,==< 0x08044e14 0fd0 beq 0x8044e36
| || 0x08044e16 dff8300b ldr.w r0, [0x0804594e] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| || 0x08044e1a 0078 ldrb r0, [r0]
| || 0x08044e1c 0628 cmp r0, 6 ; 6
| ,===< 0x08044e1e 0ad0 beq 0x8044e36
| ||| 0x08044e20 dff8240b ldr.w r0, [0x0804594c] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||| 0x08044e24 0078 ldrb r0, [r0]
| ||| 0x08044e26 0728 cmp r0, 7 ; 7
| ,====< 0x08044e28 05d0 beq 0x8044e36
| |||| 0x08044e2a dff81c0b ldr.w r0, [0x0804594e] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| |||| 0x08044e2e 0078 ldrb r0, [r0]
| |||| 0x08044e30 0828 cmp r0, 8 ; 8
| ,=====< 0x08044e32 40f04881 bne.w 0x80450c6
| |````-> 0x08044e36 dff8bc0a ldr.w r0, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| | 0x08044e3a 4078 ldrb r0, [r0, 1]
| | 0x08044e3c c0f30010 ubfx r0, r0, 4, 1
| | 0x08044e40 c007 lsls r0, r0, 0x1f
| | ,=< 0x08044e42 08d4 bmi 0x8044e56
| | | 0x08044e44 dff8ac0a ldr.w r0, [func_458f8] ; [0x80458f8:4]=0xe0062000
| | | 0x08044e48 0078 ldrb r0, [r0]
| | | 0x08044e4a 10f0fe00 ands r0, r0, 0xfe
| | | 0x08044e4e dff8a41a ldr.w r1, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| | | 0x08044e52 0870 strb r0, [r1]
| | ,==< 0x08044e54 37e1 b 0x80450c6
| | |`-> 0x08044e56 dff81806 ldr.w r0, [0x08045476] ; [0x8045474:4]=0x2001e790
| | | 0x08044e5a 0078 ldrb r0, [r0]
| | | 0x08044e5c 0528 cmp r0, 5 ; 5
| | |,=< 0x08044e5e 00f03281 beq.w 0x80450c6
| | || 0x08044e62 dff8e80a ldr.w r0, [0x08045952] ; [0x8045950:4]=0x2001e8e0
| | || 0x08044e66 c078 ldrb r0, [r0, 3]
| | || 0x08044e68 c0f34000 ubfx r0, r0, 1, 1
| | || 0x08044e6c c007 lsls r0, r0, 0x1f
| | ,===< 0x08044e6e 40f12a81 bpl.w 0x80450c6
| | ||| 0x08044e72 fff779fe bl func_44b68
| | ||| 0x08044e76 dff8f805 ldr.w r0, [0x08045476] ; [0x8045474:4]=0x2001e790
| | ||| 0x08044e7a 0078 ldrb r0, [r0]
| | ||| 0x08044e7c 7d28 cmp r0, 0x7d ; '}' ; 125
| |,====< 0x08044e7e 0ed0 beq 0x8044e9e
| ||||| 0x08044e80 dff8ec05 ldr.w r0, [0x08045474] ; [0x8045474:4]=0x2001e790
| ||||| 0x08044e84 0078 ldrb r0, [r0]
| ||||| 0x08044e86 7f28 cmp r0, 0x7f ; 127
| ,======< 0x08044e88 09d0 beq 0x8044e9e
| |||||| 0x08044e8a dff8e405 ldr.w r0, [0x08045476] ; [0x8045474:4]=0x2001e790
| |||||| 0x08044e8e 0078 ldrb r0, [r0]
| |||||| 0x08044e90 7e28 cmp r0, 0x7e ; '~' ; 126
| ,=======< 0x08044e92 04d0 beq 0x8044e9e
| ||||||| 0x08044e94 dff8d805 ldr.w r0, [0x08045474] ; [0x8045474:4]=0x2001e790
| ||||||| 0x08044e98 0078 ldrb r0, [r0]
| ||||||| 0x08044e9a 8028 cmp r0, 0x80 ; 128
| ========< 0x08044e9c 23d1 bne 0x8044ee6
| ``-`----> 0x08044e9e dff8540a ldr.w r0, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| | ||| 0x08044ea2 0078 ldrb r0, [r0]
| | ||| 0x08044ea4 50f00100 orrs r0, r0, 1
| | ||| 0x08044ea8 dff8481a ldr.w r1, [func_458f8] ; [0x80458f8:4]=0xe0062000
| | ||| 0x08044eac 0870 strb r0, [r1]
| | ||| 0x08044eae dff8440a ldr.w r0, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| | ||| 0x08044eb2 0078 ldrb r0, [r0]
| | ||| 0x08044eb4 50f00400 orrs r0, r0, 4
| | ||| 0x08044eb8 dff8381a ldr.w r1, [func_458f8] ; [0x80458f8:4]=0xe0062000
| | ||| 0x08044ebc 0870 strb r0, [r1]
| | ||| 0x08044ebe dff8880a ldr.w r0, [0x0804594e] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| | ||| 0x08044ec2 0078 ldrb r0, [r0]
| | ||| 0x08044ec4 0328 cmp r0, 3 ; 3
| |,====< 0x08044ec6 04d0 beq 0x8044ed2
| ||||| 0x08044ec8 dff87c0a ldr.w r0, [0x0804594c] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||||| 0x08044ecc 0078 ldrb r0, [r0]
| ||||| 0x08044ece 0428 cmp r0, 4 ; 4
| ,======< 0x08044ed0 08d1 bne 0x8044ee4
| ||`----> 0x08044ed2 dff8740a ldr.w r0, [0x0804594e] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| || ||| 0x08044ed6 0621 movs r1, 6 ; 6
| || ||| 0x08044ed8 0170 strb r1, [r0]
| || ||| 0x08044eda dff8bc0d ldr.w r0, [0x08045c9e] ; [0x8045c9c:4]=0x58cf8df
| || ||| 0x08044ede 4ff4fa71 mov.w r1, 0x1f4 ; 500
| || ||| 0x08044ee2 0160 str r1, [r0]
| `-,====< 0x08044ee4 efe0 b 0x80450c6
| --------> 0x08044ee6 dff88805 ldr.w r0, [0x08045476] ; [0x8045474:4]=0x2001e790
| ||||| 0x08044eea 0078 ldrb r0, [r0]
| ||||| 0x08044eec 7c28 cmp r0, 0x7c ; '|' ; 124
| ,======< 0x08044eee 15d0 beq 0x8044f1c
| |||||| 0x08044ef0 dff85c0a ldr.w r0, [FuncWithAwfulLongSwitch] ; [0x8045954:4]=0xb083b500
| |||||| 0x08044ef4 0078 ldrb r0, [r0]
| |||||| 0x08044ef6 0128 cmp r0, 1 ; 1
| ,=======< 0x08044ef8 06d1 bne 0x8044f08
| ||||||| 0x08044efa dff83009 ldr.w r0, [0x08045832] ; [0x8045830:4]=0x2000b430
| ||||||| 0x08044efe 0078 ldrb r0, [r0]
| ||||||| 0x08044f00 10f00300 ands r0, r0, 3
| ||||||| 0x08044f04 0128 cmp r0, 1 ; 1
| ========< 0x08044f06 09d0 beq 0x8044f1c
| `-------> 0x08044f08 dff86405 ldr.w r0, [0x08045474] ; [0x8045474:4]=0x2001e790
| |||||| 0x08044f0c 0078 ldrb r0, [r0]
| |||||| 0x08044f0e 7528 cmp r0, 0x75 ; 'u' ; 117
| ,=======< 0x08044f10 04d0 beq 0x8044f1c
| ||||||| 0x08044f12 dff85c05 ldr.w r0, [0x08045476] ; [0x8045474:4]=0x2001e790
| ||||||| 0x08044f16 0078 ldrb r0, [r0]
| ||||||| 0x08044f18 7628 cmp r0, 0x76 ; 'v' ; 118
| ========< 0x08044f1a 1cd1 bne 0x8044f56
| ``------> 0x08044f1c dff8d409 ldr.w r0, [func_458f8] ; [0x80458f8:4]=0xe0062000
| ||||| 0x08044f20 0078 ldrb r0, [r0]
| ||||| 0x08044f22 50f00100 orrs r0, r0, 1
| ||||| 0x08044f26 dff8cc19 ldr.w r1, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| ||||| 0x08044f2a 0870 strb r0, [r1]
| ||||| 0x08044f2c dff8c409 ldr.w r0, [func_458f8] ; [0x80458f8:4]=0xe0062000
| ||||| 0x08044f30 0078 ldrb r0, [r0]
| ||||| 0x08044f32 50f00400 orrs r0, r0, 4
| ||||| 0x08044f36 dff8bc19 ldr.w r1, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| ||||| 0x08044f3a 0870 strb r0, [r1]
| ||||| 0x08044f3c dff8080a ldr.w r0, [0x0804594c] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||||| 0x08044f40 0078 ldrb r0, [r0]
| ||||| 0x08044f42 0328 cmp r0, 3 ; 3
| ,======< 0x08044f44 04d0 beq 0x8044f50
| |||||| 0x08044f46 dff8000a ldr.w r0, [0x0804594e] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| |||||| 0x08044f4a 0078 ldrb r0, [r0]
| |||||| 0x08044f4c 0428 cmp r0, 4 ; 4
| ,=======< 0x08044f4e 01d1 bne 0x8044f54
| |`------> 0x08044f50 edf752f9 bl func_321f8
| `,======< 0x08044f54 b7e0 b 0x80450c6
| --------> 0x08044f56 dff89c09 ldr.w r0, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| |||||| 0x08044f5a 0078 ldrb r0, [r0]
| |||||| 0x08044f5c c007 lsls r0, r0, 0x1f
| ,=======< 0x08044f5e 39d4 bmi 0x8044fd4
| ||||||| 0x08044f60 dff8d009 ldr.w r0, [0x08045938] ; [0x8045938:4]=0x2001c3f0
| ||||||| 0x08044f64 0078 ldrb r0, [r0]
| ||||||| 0x08044f66 dff81815 ldr.w r1, [0x08045486] ; [0x8045484:4]=0xf8dfb5e0
| ||||||| 0x08044f6a 0978 ldrb r1, [r1]
| ||||||| 0x08044f6c 8842 cmp r0, r1
| ========< 0x08044f6e 2cd3 blo 0x8044fca
| ||||||| 0x08044f70 dff8b009 ldr.w r0, [0x08045928] ; [0x8045928:4]=0x2001e7c4
| ||||||| 0x08044f74 0078 ldrb r0, [r0]
| ||||||| 0x08044f76 401c adds r0, r0, 1
| ||||||| 0x08044f78 dff8a819 ldr.w r1, [0x08045928] ; [0x8045928:4]=0x2001e7c4
| ||||||| 0x08044f7c 0870 strb r0, [r1]
| ||||||| 0x08044f7e c0b2 uxtb r0, r0
| ||||||| 0x08044f80 0228 cmp r0, 2 ; 2
| ========< 0x08044f82 c0f0a080 blo.w 0x80450c6
| ||||||| 0x08044f86 dff86c09 ldr.w r0, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x08044f8a 0078 ldrb r0, [r0]
| ||||||| 0x08044f8c 50f00100 orrs r0, r0, 1
| ||||||| 0x08044f90 dff86019 ldr.w r1, [func_458f8] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x08044f94 0870 strb r0, [r1]
| ||||||| 0x08044f96 dff88c09 ldr.w r0, [0x0804592a] ; [0x8045928:4]=0x2001e7c4
| ||||||| 0x08044f9a 0021 movs r1, 0
| ||||||| 0x08044f9c 0170 strb r1, [r0]
| ||||||| 0x08044f9e dff85409 ldr.w r0, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x08044fa2 0078 ldrb r0, [r0]
| ||||||| 0x08044fa4 50f00400 orrs r0, r0, 4
| ||||||| 0x08044fa8 dff84819 ldr.w r1, [func_458f8] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x08044fac 0870 strb r0, [r1]
| ||||||| 0x08044fae dff89809 ldr.w r0, [0x0804594e] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||||||| 0x08044fb2 0078 ldrb r0, [r0]
| ||||||| 0x08044fb4 0328 cmp r0, 3 ; 3
| ========< 0x08044fb6 05d0 beq 0x8044fc4
| ||||||| 0x08044fb8 dff88c09 ldr.w r0, [0x0804594c] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||||||| 0x08044fbc 0078 ldrb r0, [r0]
| ||||||| 0x08044fbe 0428 cmp r0, 4 ; 4
| ========< 0x08044fc0 40f08180 bne.w 0x80450c6
| --------> 0x08044fc4 edf718f9 bl func_321f8
| ========< 0x08044fc8 7de0 b 0x80450c6
| --------> 0x08044fca dff85809 ldr.w r0, [0x0804592a] ; [0x8045928:4]=0x2001e7c4
| ||||||| 0x08044fce 0021 movs r1, 0
| ||||||| 0x08044fd0 0170 strb r1, [r0]
| ========< 0x08044fd2 78e0 b 0x80450c6
| `-------> 0x08044fd4 dff86409 ldr.w r0, [0x08045940] ; [0x8045940:4]=0x2001c3c0
| |||||| 0x08044fd8 0078 ldrb r0, [r0]
| |||||| 0x08044fda dff8a414 ldr.w r1, [0x08045486] ; [0x8045484:4]=0xf8dfb5e0
| |||||| 0x08044fde 0978 ldrb r1, [r1]
| |||||| 0x08044fe0 8842 cmp r0, r1
| ,=======< 0x08044fe2 04d3 blo 0x8044fee
| ||||||| 0x08044fe4 dff83c09 ldr.w r0, [0x08045928] ; [0x8045928:4]=0x2001e7c4
| ||||||| 0x08044fe8 0021 movs r1, 0
| ||||||| 0x08044fea 0170 strb r1, [r0]
| ========< 0x08044fec 6be0 b 0x80450c6
| `-------> 0x08044fee dff83c08 ldr.w r0, [0x08045832] ; [0x8045830:4]=0x2000b430
| |||||| 0x08044ff2 0078 ldrb r0, [r0]
| |||||| 0x08044ff4 10f00300 ands r0, r0, 3
| |||||| 0x08044ff8 0128 cmp r0, 1 ; 1
| ,=======< 0x08044ffa 33d1 bne 0x8045064
| ||||||| 0x08044ffc dff82409 ldr.w r0, [0x08045928] ; [0x8045928:4]=0x2001e7c4
| ||||||| 0x08045000 0078 ldrb r0, [r0]
| ||||||| 0x08045002 401c adds r0, r0, 1
| ||||||| 0x08045004 dff81c19 ldr.w r1, [0x08045928] ; [0x8045928:4]=0x2001e7c4
| ||||||| 0x08045008 0870 strb r0, [r1]
| ||||||| 0x0804500a c0b2 uxtb r0, r0
| ||||||| 0x0804500c 1828 cmp r0, 0x18 ; 24
| ========< 0x0804500e 5ad3 blo 0x80450c6
| ||||||| 0x08045010 dff8e008 ldr.w r0, [func_458f8] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x08045014 0078 ldrb r0, [r0]
| ||||||| 0x08045016 10f0fe00 ands r0, r0, 0xfe
| ||||||| 0x0804501a dff8d818 ldr.w r1, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x0804501e 0870 strb r0, [r1]
| ||||||| 0x08045020 dff80009 ldr.w r0, [0x08045928] ; [0x8045928:4]=0x2001e7c4
| ||||||| 0x08045024 0021 movs r1, 0
| ||||||| 0x08045026 0170 strb r1, [r0]
| ||||||| 0x08045028 dff8c808 ldr.w r0, [func_458f8] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x0804502c 0078 ldrb r0, [r0]
| ||||||| 0x0804502e 50f00200 orrs r0, r0, 2
| ||||||| 0x08045032 dff8c018 ldr.w r1, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x08045036 0870 strb r0, [r1]
| ||||||| 0x08045038 dff80c09 ldr.w r0, [0x0804594c] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0804503c 0078 ldrb r0, [r0]
| ||||||| 0x0804503e 0628 cmp r0, 6 ; 6
| ========< 0x08045040 04d0 beq 0x804504c
| ||||||| 0x08045042 dff80409 ldr.w r0, [0x0804594e] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||||||| 0x08045046 0078 ldrb r0, [r0]
| ||||||| 0x08045048 0728 cmp r0, 7 ; 7
| ========< 0x0804504a 3cd1 bne 0x80450c6
| --------> 0x0804504c dff8f808 ldr.w r0, [0x0804594c] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||||||| 0x08045050 0421 movs r1, 4 ; 4
| ||||||| 0x08045052 0170 strb r1, [r0]
| ||||||| 0x08045054 dff8400c ldr.w r0, [CalledFromLongpressThing] ; [0x8045c9c:4]=0x58cf8df
| ||||||| 0x08045058 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x0804505c 0160 str r1, [r0]
| ||||||| 0x0804505e faf7cdf8 bl func_3f1fc
| ========< 0x08045062 30e0 b 0x80450c6
| `-------> 0x08045064 dff8bc08 ldr.w r0, [0x08045928] ; [0x8045928:4]=0x2001e7c4
| |||||| 0x08045068 0078 ldrb r0, [r0]
| |||||| 0x0804506a 401c adds r0, r0, 1
| |||||| 0x0804506c dff8b418 ldr.w r1, [0x08045928] ; [0x8045928:4]=0x2001e7c4
| |||||| 0x08045070 0870 strb r0, [r1]
| |||||| 0x08045072 c0b2 uxtb r0, r0
| |||||| 0x08045074 1828 cmp r0, 0x18 ; 24
| ,=======< 0x08045076 26d3 blo 0x80450c6
| ||||||| 0x08045078 dff87808 ldr.w r0, [func_458f8] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x0804507c 0078 ldrb r0, [r0]
| ||||||| 0x0804507e 10f0fe00 ands r0, r0, 0xfe
| ||||||| 0x08045082 dff87018 ldr.w r1, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x08045086 0870 strb r0, [r1]
| ||||||| 0x08045088 dff89808 ldr.w r0, [0x08045928] ; [0x8045928:4]=0x2001e7c4
| ||||||| 0x0804508c 0021 movs r1, 0
| ||||||| 0x0804508e 0170 strb r1, [r0]
| ||||||| 0x08045090 dff86008 ldr.w r0, [func_458f8] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x08045094 0078 ldrb r0, [r0]
| ||||||| 0x08045096 50f00200 orrs r0, r0, 2
| ||||||| 0x0804509a dff85818 ldr.w r1, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x0804509e 0870 strb r0, [r1]
| ||||||| 0x080450a0 dff8a408 ldr.w r0, [0x0804594c] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||||||| 0x080450a4 0078 ldrb r0, [r0]
| ||||||| 0x080450a6 0628 cmp r0, 6 ; 6
| ========< 0x080450a8 04d0 beq 0x80450b4
| ||||||| 0x080450aa dff89c08 ldr.w r0, [0x0804594e] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||||||| 0x080450ae 0078 ldrb r0, [r0]
| ||||||| 0x080450b0 0828 cmp r0, 8 ; 8
| ========< 0x080450b2 08d1 bne 0x80450c6
| --------> 0x080450b4 dff89008 ldr.w r0, [0x0804594c] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||||||| 0x080450b8 0421 movs r1, 4 ; 4
| ||||||| 0x080450ba 0170 strb r1, [r0]
| ||||||| 0x080450bc dff8d80b ldr.w r0, [CalledFromLongpressThing] ; [0x8045c9c:4]=0x58cf8df
| ||||||| 0x080450c0 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x080450c4 0160 str r1, [r0]
\ ```````-> 0x080450c6 01bd pop {r0, pc}
/ (fcn) SomethingWithGuiOpmode2 142
| Caller: Start
| SomethingWithGuiOpmode2 ();
| 0x080450c8 dff8400c ldr.w r0, [0x08045d10] ; [0x8045d10:4]=0x2001e905
| 0x080450cc 0078 ldrb r0, [r0]
| 0x080450ce ff28 cmp r0, 0xff ; 255
| ,=< 0x080450d0 40d0 beq 0x8045154
| | 0x080450d2 dff82008 ldr.w r0, [0x080458fa] ; [0x80458f8:4]=0xe0062000
| | 0x080450d6 4078 ldrb r0, [r0, 1]
| | 0x080450d8 c0f30010 ubfx r0, r0, 4, 1
| | 0x080450dc c007 lsls r0, r0, 0x1f
| ,==< 0x080450de 39d5 bpl 0x8045154
| || 0x080450e0 dff8280c ldr.w r0, [0x08045d10] ; [0x8045d10:4]=0x2001e905
| || 0x080450e4 0078 ldrb r0, [r0]
| || 0x080450e6 dff87c1c ldr.w r1, [0x08045d6a] ; [0x8045d68:4]=0x2001e94b gui_opmode2
| || 0x080450ea 0978 ldrb r1, [r1]
| || 0x080450ec 8842 cmp r0, r1
| ,===< 0x080450ee 2bd0 beq 0x8045148
| ||| 0x080450f0 dff81c0c ldr.w r0, [0x08045d14] ; [0x8045d14:4]=0x2001e8ed
| ||| 0x080450f4 0078 ldrb r0, [r0]
| ||| 0x080450f6 0028 cmp r0, 0
| ,====< 0x080450f8 26d1 bne 0x8045148
| |||| 0x080450fa dd48 ldr r0, [0x08045472] ; [0x8045470:4]=0x2001e892 gui_opmode3
| |||| 0x080450fc 0078 ldrb r0, [r0]
| |||| 0x080450fe 0128 cmp r0, 1 ; 1
| ,=====< 0x08045100 22d0 beq 0x8045148
| ||||| 0x08045102 dff8100c ldr.w r0, [0x08045d1a] ; [0x8045d18:4]=0xe0062000
| ||||| 0x08045106 0078 ldrb r0, [r0]
| ||||| 0x08045108 0028 cmp r0, 0
| ,======< 0x0804510a 1dd1 bne 0x8045148
| |||||| 0x0804510c dff8580c ldr.w r0, [0x08045d6c] ; [0x8045d6c:4]=0x2001e4d4
| |||||| 0x08045110 0078 ldrb r0, [r0]
| |||||| 0x08045112 0028 cmp r0, 0
| ,=======< 0x08045114 18d0 beq 0x8045148
| ||||||| 0x08045116 dff8540c ldr.w r0, [0x08045d72] ; [0x8045d70:4]=0x2001e4c4
| ||||||| 0x0804511a 0078 ldrb r0, [r0]
| ||||||| 0x0804511c 0028 cmp r0, 0
| ========< 0x0804511e 13d1 bne 0x8045148
| ||||||| 0x08045120 dff84c0c ldr.w r0, [0x08045d74] ; [0x8045d74:4]=0x2001e94d gui_opmode1
| ||||||| 0x08045124 0078 ldrb r0, [r0]
| ||||||| 0x08045126 0028 cmp r0, 0
| ========< 0x08045128 0ed1 bne 0x8045148
| ||||||| 0x0804512a dff83c0c ldr.w r0, [0x08045d6e] ; [0x8045d6c:4]=0x2001e4d4
| ||||||| 0x0804512e 0078 ldrb r0, [r0]
| ||||||| 0x08045130 0128 cmp r0, 1 ; 1
| ========< 0x08045132 09d1 bne 0x8045148
| ||||||| 0x08045134 dff8bc07 ldr.w r0, [func_458f8] ; [0x80458f8:4]=0xe0062000
| ||||||| 0x08045138 0078 ldrb r0, [r0]
| ||||||| 0x0804513a 0006 lsls r0, r0, 0x18
| ========< 0x0804513c 04d4 bmi 0x8045148
| ||||||| 0x0804513e dff8340c ldr.w r0, [0x08045d7a] ; [0x8045d78:4]=0x2001e85d
| ||||||| 0x08045142 a321 movs r1, 0xa3 ; 163
| ||||||| 0x08045144 0170 strb r1, [r0]
| ========< 0x08045146 05e0 b 0x8045154
| `````---> 0x08045148 dff8c00b ldr.w r0, [0x08045d10] ; [0x8045d10:4]=0x2001e905
| || 0x0804514c dff8141c ldr.w r1, [0x08045d68] ; [0x8045d68:4]=0x2001e94b gui_opmode2
| || 0x08045150 0978 ldrb r1, [r1]
| || 0x08045152 0170 strb r1, [r0]
\ -----``-> 0x08045154 7047 bx lr
/ (fcn) func_45156 120
| Caller: func_4520c
| func_45156 ();
| 0x08045156 dff8200c ldr.w r0, [0x08045d7e] ; [0x8045d7c:4]=0x2001e792
| 0x0804515a 0078 ldrb r0, [r0]
| 0x0804515c 0828 cmp r0, 8 ; 8
| ,=< 0x0804515e 03d3 blo 0x8045168
| | 0x08045160 dff8140c ldr.w r0, [0x08045d7c] ; [0x8045d7c:4]=0x2001e792
| | 0x08045164 0021 movs r1, 0
| | 0x08045166 0170 strb r1, [r0]
| `-> 0x08045168 dff8100c ldr.w r0, [0x08045d80] ; [0x8045d80:4]=0x2001e434
| 0x0804516c 0088 ldrh r0, [r0]
| 0x0804516e dff8081c ldr.w r1, [0x08045d7e] ; [0x8045d7c:4]=0x2001e792
| 0x08045172 0978 ldrb r1, [r1]
| 0x08045174 dff8082c ldr.w r2, [0x08045d84] ; [0x8045d84:4]=0x80f7ef8
| 0x08045178 32f81110 ldrh.w r1, [r2, r1, lsl 1]
| 0x0804517c 401a subs r0, r0, r1
| 0x0804517e dff8fc1b ldr.w r1, [0x08045d82] ; [0x8045d80:4]=0x2001e434
| 0x08045182 0880 strh r0, [r1]
| 0x08045184 dff8f00b ldr.w r0, [0x08045d7c] ; [0x8045d7c:4]=0x2001e792
| 0x08045188 0078 ldrb r0, [r0]
| 0x0804518a dff8f41b ldr.w r1, [0x08045d86] ; [0x8045d84:4]=0x80f7ef8
| 0x0804518e b24a ldr r2, [0x0804545a] ; [0x8045458:4]=0x2001e51c adc1_6channel_dma_buffer
| 0x08045190 1289 ldrh r2, [r2, 8]
| 0x08045192 21f81020 strh.w r2, [r1, r0, lsl 1]
| 0x08045196 dff8e40b ldr.w r0, [0x08045d82] ; [0x8045d80:4]=0x2001e434
| 0x0804519a 0088 ldrh r0, [r0]
| 0x0804519c dff8d81b ldr.w r1, [0x08045d7c] ; [0x8045d7c:4]=0x2001e792
| 0x080451a0 0978 ldrb r1, [r1]
| 0x080451a2 dff8dc2b ldr.w r2, [0x08045d86] ; [0x8045d84:4]=0x80f7ef8
| 0x080451a6 32f81110 ldrh.w r1, [r2, r1, lsl 1]
| 0x080451aa 0818 adds r0, r1, r0
| 0x080451ac dff8cc1b ldr.w r1, [0x08045d80] ; [0x8045d80:4]=0x2001e434
| 0x080451b0 0880 strh r0, [r1]
| 0x080451b2 dff8c80b ldr.w r0, [0x08045d82] ; [0x8045d80:4]=0x2001e434
| 0x080451b6 dff8c41b ldr.w r1, [0x08045d82] ; [0x8045d80:4]=0x2001e434
| 0x080451ba 0988 ldrh r1, [r1]
| 0x080451bc 0180 strh r1, [r0]
| 0x080451be dff8b80b ldr.w r0, [0x08045d7e] ; [0x8045d7c:4]=0x2001e792
| 0x080451c2 0078 ldrb r0, [r0]
| 0x080451c4 401c adds r0, r0, 1
| 0x080451c6 dff8b01b ldr.w r1, [0x08045d7e] ; [0x8045d7c:4]=0x2001e792
| 0x080451ca 0870 strb r0, [r1]
\ 0x080451cc 7047 bx lr
/ (fcn) func_451ce 62
| Caller: Start
| func_451ce ();
| 0x080451ce 0020 movs r0, 0
| ,=< 0x080451d0 07e0 b 0x80451e2
| .--> 0x080451d2 c0b2 uxtb r0, r0
| || 0x080451d4 dff8a81b ldr.w r1, [0x08045d84] ; [0x8045d84:4]=0x80f7ef8
| || 0x080451d8 40f25b12 movw r2, 0x15b ; 347
| || 0x080451dc 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x080451e0 401c adds r0, r0, 1
| |`-> 0x080451e2 c0b2 uxtb r0, r0
| | 0x080451e4 0828 cmp r0, 8 ; 8
| `==< 0x080451e6 f4d3 blo 0x80451d2
| 0x080451e8 dff8900b ldr.w r0, [0x08045d80] ; [0x8045d80:4]=0x2001e434
| 0x080451ec 40f6d821 movw r1, 0xad8 ; 2776
| 0x080451f0 0180 strh r1, [r0]
| 0x080451f2 dff8840b ldr.w r0, [0x08045d7e] ; [0x8045d7c:4]=0x2001e792
| 0x080451f6 0021 movs r1, 0
| 0x080451f8 0170 strb r1, [r0]
| 0x080451fa dff8680b ldr.w r0, [0x08045d6a] ; [0x8045d68:4]=0x2001e94b gui_opmode2
| 0x080451fe 0521 movs r1, 5 ; 5
| 0x08045200 0170 strb r1, [r0]
| 0x08045202 dff8080b ldr.w r0, [0x08045d12] ; [0x8045d10:4]=0x2001e905
| 0x08045206 ff21 movs r1, 0xff ; 255
| 0x08045208 0170 strb r1, [r0]
\ 0x0804520a 7047 bx lr
/ (fcn) func_4520c 396
| Caller: Start
| func_4520c ();
| 0x0804520c 10b5 push {r4, lr}
| 0x0804520e 86b0 sub sp, 0x18
| 0x08045210 00a8 add r0, sp, 0
| 0x08045212 dff8701b ldr.w r1, [0x08045d8a] ; [0x8045d88:4]=0x2001e85e
| 0x08045216 1422 movs r2, 0x14 ; 20
| 0x08045218 edf718fd bl func_32c4c
| 0x0804521c fff79bff bl func_45156
| 0x08045220 dff8400b ldr.w r0, [0x08045d68] ; [0x8045d68:4]=0x2001e94b gui_opmode2
| 0x08045224 0078 ldrb r0, [r0]
| 0x08045226 0928 cmp r0, 9 ; 9
| ,=< 0x08045228 28d1 bne 0x804527c
| | 0x0804522a dff8500b ldr.w r0, [0x08045d82] ; [0x8045d80:4]=0x2001e434
| | 0x0804522e 0088 ldrh r0, [r0]
| | 0x08045230 bdf81010 ldrh.w r1, [sp, 0x10]
| | 0x08045234 11f5fa71 adds.w r1, r1, 0x1f4
| | 0x08045238 8842 cmp r0, r1
| ,==< 0x0804523a 04db blt 0x8045246
| || 0x0804523c dff8480b ldr.w r0, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| || 0x08045240 0021 movs r1, 0
| || 0x08045242 0170 strb r1, [r0]
| ,===< 0x08045244 1ae0 b 0x804527c
| |`--> 0x08045246 dff8340b ldr.w r0, [0x08045d82] ; [0x8045d80:4]=0x2001e434
| | | 0x0804524a 0088 ldrh r0, [r0]
| | | 0x0804524c bdf81010 ldrh.w r1, [sp, 0x10]
| | | 0x08045250 b1f5fa71 subs.w r1, r1, 0x1f4
| | | 0x08045254 8842 cmp r0, r1
| |,==< 0x08045256 11da bge 0x804527c
| ||| 0x08045258 dff82c0b ldr.w r0, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| ||| 0x0804525c 0078 ldrb r0, [r0]
| ||| 0x0804525e 411c adds r1, r0, 1
| ||| 0x08045260 dff8242b ldr.w r2, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| ||| 0x08045264 1170 strb r1, [r2]
| ||| 0x08045266 c0b2 uxtb r0, r0
| ||| 0x08045268 3228 cmp r0, 0x32 ; '2' ; 50
| ,====< 0x0804526a 07d3 blo 0x804527c
| |||| 0x0804526c dff8f40a ldr.w r0, [0x08045d68] ; [0x8045d68:4]=0x2001e94b gui_opmode2
| |||| 0x08045270 0821 movs r1, 8 ; 8
| |||| 0x08045272 0170 strb r1, [r0]
| |||| 0x08045274 dff8100b ldr.w r0, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| |||| 0x08045278 0021 movs r1, 0
| |||| 0x0804527a 0170 strb r1, [r0]
| ````-> 0x0804527c 0820 movs r0, 8 ; 8
| ,=< 0x0804527e 04e0 b 0x804528a
| .--> 0x08045280 dff8041b ldr.w r1, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| || 0x08045284 0022 movs r2, 0
| || 0x08045286 0a70 strb r2, [r1]
| .....---> 0x08045288 401e subs r0, r0, 1
| ||||||`-> 0x0804528a 0028 cmp r0, 0
| ||||||,=< 0x0804528c 57d0 beq 0x804533e
| ||||||| 0x0804528e 0728 cmp r0, 7 ; 7
| ========< 0x08045290 02db blt 0x8045298
| ||||||| 0x08045292 9622 movs r2, 0x96 ; 150
| ||||||| 0x08045294 6421 movs r1, 0x64 ; 'd' ; 100
| ========< 0x08045296 01e0 b 0x804529c
| --------> 0x08045298 6422 movs r2, 0x64 ; 'd' ; 100
| ||||||| 0x0804529a 3221 movs r1, 0x32 ; '2' ; 50
| --------> 0x0804529c dff8c43a ldr.w r3, [0x08045d68] ; [0x8045d68:4]=0x2001e94b gui_opmode2
| ||||||| 0x080452a0 1b78 ldrb r3, [r3]
| ||||||| 0x080452a2 8342 cmp r3, r0
| ========< 0x080452a4 f0d1 bne 0x8045288
| ||||||| 0x080452a6 dff8d43a ldr.w r3, [0x08045d82] ; [0x8045d80:4]=0x2001e434
| ||||||| 0x080452aa 1b88 ldrh r3, [r3]
| ||||||| 0x080452ac 00ac add r4, sp, 0
| ||||||| 0x080452ae 34f81040 ldrh.w r4, [r4, r0, lsl 1]
| ||||||| 0x080452b2 d2b2 uxtb r2, r2
| ||||||| 0x080452b4 4243 muls r2, r0, r2
| ||||||| 0x080452b6 12fa84f2 uxtah r2, r2, r4
| ||||||| 0x080452ba 9342 cmp r3, r2
| ========< 0x080452bc 20db blt 0x8045300
| ||||||| 0x080452be dff8bc1a ldr.w r1, [0x08045d82] ; [0x8045d80:4]=0x2001e434
| ||||||| 0x080452c2 0988 ldrh r1, [r1]
| ||||||| 0x080452c4 00aa add r2, sp, 0
| ||||||| 0x080452c6 12eb4002 adds.w r2, r2, r0, lsl 1
| ||||||| 0x080452ca 5288 ldrh r2, [r2, 2]
| ||||||| 0x080452cc 9142 cmp r1, r2
| ========< 0x080452ce 12d3 blo 0x80452f6
| ||||||| 0x080452d0 dff8b41a ldr.w r1, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| ||||||| 0x080452d4 0978 ldrb r1, [r1]
| ||||||| 0x080452d6 4a1c adds r2, r1, 1
| ||||||| 0x080452d8 dff8ac3a ldr.w r3, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| ||||||| 0x080452dc 1a70 strb r2, [r3]
| ||||||| 0x080452de c9b2 uxtb r1, r1
| ||||||| 0x080452e0 3229 cmp r1, 0x32 ; '2' ; 50
| `=======< 0x080452e2 d1d3 blo 0x8045288
| |||||| 0x080452e4 411c adds r1, r0, 1
| |||||| 0x080452e6 dff87c2a ldr.w r2, [0x08045d6a] ; [0x8045d68:4]=0x2001e94b gui_opmode2
| |||||| 0x080452ea 1170 strb r1, [r2]
| |||||| 0x080452ec dff8981a ldr.w r1, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| |||||| 0x080452f0 0022 movs r2, 0
| |||||| 0x080452f2 0a70 strb r2, [r1]
| `======< 0x080452f4 c8e7 b 0x8045288
| --------> 0x080452f6 dff8901a ldr.w r1, [0x08045d8e] ; [0x8045d8c:4]=0x2001e794
| ||||| 0x080452fa 0022 movs r2, 0
| ||||| 0x080452fc 0a70 strb r2, [r1]
| `=====< 0x080452fe c3e7 b 0x8045288
| --------> 0x08045300 dff8782a ldr.w r2, [0x08045d80] ; [0x8045d80:4]=0x2001e434
| |||| 0x08045304 1288 ldrh r2, [r2]
| |||| 0x08045306 00ab add r3, sp, 0
| |||| 0x08045308 33f81030 ldrh.w r3, [r3, r0, lsl 1]
| |||| 0x0804530c c9b2 uxtb r1, r1
| |||| 0x0804530e 00fb1131 mls r1, r0, r1, r3
| |||| 0x08045312 8a42 cmp r2, r1
| ||`==< 0x08045314 b4da bge 0x8045280
| || | 0x08045316 dff8701a ldr.w r1, [0x08045d8e] ; [0x8045d8c:4]=0x2001e794
| || | 0x0804531a 0978 ldrb r1, [r1]
| || | 0x0804531c 4a1c adds r2, r1, 1
| || | 0x0804531e dff8683a ldr.w r3, [0x08045d8e] ; [0x8045d8c:4]=0x2001e794
| || | 0x08045322 1a70 strb r2, [r3]
| || | 0x08045324 c9b2 uxtb r1, r1
| || | 0x08045326 3229 cmp r1, 0x32 ; '2' ; 50
| `====< 0x08045328 aed3 blo 0x8045288
| | | 0x0804532a 0100 movs r1, r0
| | | 0x0804532c 491e subs r1, r1, 1
| | | 0x0804532e dff8342a ldr.w r2, [0x08045d6a] ; [0x8045d68:4]=0x2001e94b gui_opmode2
| | | 0x08045332 1170 strb r1, [r2]
| | | 0x08045334 dff8501a ldr.w r1, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| | | 0x08045338 0022 movs r2, 0
| | | 0x0804533a 0a70 strb r2, [r1]
| `===< 0x0804533c a4e7 b 0x8045288
| `-> 0x0804533e dff8240a ldr.w r0, [0x08045d6a] ; [0x8045d68:4]=0x2001e94b gui_opmode2
| 0x08045342 0078 ldrb r0, [r0]
| 0x08045344 0028 cmp r0, 0
| ,=< 0x08045346 25d1 bne 0x8045394
| | 0x08045348 dff8300a ldr.w r0, [0x08045d80] ; [0x8045d80:4]=0x2001e434
| | 0x0804534c 0088 ldrh r0, [r0]
| | 0x0804534e bdf80210 ldrh.w r1, [sp, 2]
| | 0x08045352 6431 adds r1, 0x64
| | 0x08045354 8842 cmp r0, r1
| ,==< 0x08045356 12db blt 0x804537e
| || 0x08045358 dff82c0a ldr.w r0, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| || 0x0804535c 0078 ldrb r0, [r0]
| || 0x0804535e 411c adds r1, r0, 1
| || 0x08045360 dff8242a ldr.w r2, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| || 0x08045364 1170 strb r1, [r2]
| || 0x08045366 c0b2 uxtb r0, r0
| || 0x08045368 3228 cmp r0, 0x32 ; '2' ; 50
| ,===< 0x0804536a 13d3 blo 0x8045394
| ||| 0x0804536c dff8f409 ldr.w r0, [0x08045d68] ; [0x8045d68:4]=0x2001e94b gui_opmode2
| ||| 0x08045370 0121 movs r1, 1 ; 1
| ||| 0x08045372 0170 strb r1, [r0]
| ||| 0x08045374 dff8100a ldr.w r0, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| ||| 0x08045378 0021 movs r1, 0
| ||| 0x0804537a 0170 strb r1, [r0]
| ,====< 0x0804537c 0ae0 b 0x8045394
| ||`--> 0x0804537e dff8fc09 ldr.w r0, [0x08045d82] ; [0x8045d80:4]=0x2001e434
| || | 0x08045382 0088 ldrh r0, [r0]
| || | 0x08045384 bdf80010 ldrh.w r1, [sp]
| || | 0x08045388 8842 cmp r0, r1
| ||,==< 0x0804538a 03d2 bhs 0x8045394
| |||| 0x0804538c dff8f809 ldr.w r0, [0x08045d8c] ; [0x8045d8c:4]=0x2001e794
| |||| 0x08045390 0021 movs r1, 0
| |||| 0x08045392 0170 strb r1, [r0]
| ````-> 0x08045394 06b0 add sp, 0x18
\ 0x08045396 10bd pop {r4, pc}
/ (fcn) func_45398 124
| Caller: SomethingWithChannelsRadioConfigAndBeeps
| func_45398 ();
| 0x08045398 dff8040d ldr.w r0, [0x080460a4] ; [0x80460a4:4]=0x2001c380
| 0x0804539c 0078 ldrb r0, [r0]
| 0x0804539e 0828 cmp r0, 8 ; 8
| ,=< 0x080453a0 03d3 blo 0x80453aa
| | 0x080453a2 dff8fc0c ldr.w r0, [0x080460a6] ; [0x80460a4:4]=0x2001c380
| | 0x080453a6 0021 movs r1, 0
| | 0x080453a8 0170 strb r1, [r0]
| `-> 0x080453aa dff8e009 ldr.w r0, [0x08045d92] ; [0x8045d90:4]=0x2001e444
| 0x080453ae 0088 ldrh r0, [r0]
| 0x080453b0 dff8ec1c ldr.w r1, [0x080460a4] ; [0x80460a4:4]=0x2001c380
| 0x080453b4 0978 ldrb r1, [r1]
| 0x080453b6 dff8d829 ldr.w r2, [0x08045d96] ; [0x8045d94:4]=0xb087b500
| 0x080453ba 32f81110 ldrh.w r1, [r2, r1, lsl 1]
| 0x080453be 401a subs r0, r0, r1
| 0x080453c0 dff8c819 ldr.w r1, [0x08045d90] ; [0x8045d90:4]=0x2001e444
| 0x080453c4 0880 strh r0, [r1]
| 0x080453c6 dff8d80c ldr.w r0, [0x080460a6] ; [0x80460a4:4]=0x2001c380
| 0x080453ca 0078 ldrb r0, [r0]
| 0x080453cc dff8c019 ldr.w r1, [SomethingWithLongpressSettingRadioStatus1] ; [0x8045d94:4]=0xb087b500
| 0x080453d0 214a ldr r2, [0x08045458] ; [0x8045458:4]=0x2001e51c adc1_6channel_dma_buffer
| 0x080453d2 5288 ldrh r2, [r2, 2]
| 0x080453d4 21f81020 strh.w r2, [r1, r0, lsl 1]
| 0x080453d8 dff8b009 ldr.w r0, [0x08045d90] ; [0x8045d90:4]=0x2001e444
| 0x080453dc 0088 ldrh r0, [r0]
| 0x080453de dff8c01c ldr.w r1, [0x080460a6] ; [0x80460a4:4]=0x2001c380
| 0x080453e2 0978 ldrb r1, [r1]
| 0x080453e4 dff8a829 ldr.w r2, [SomethingWithLongpressSettingRadioStatus1] ; [0x8045d94:4]=0xb087b500
| 0x080453e8 32f81110 ldrh.w r1, [r2, r1, lsl 1]
| 0x080453ec 0818 adds r0, r1, r0
| 0x080453ee dff89c19 ldr.w r1, [0x08045d92] ; [0x8045d90:4]=0x2001e444
| 0x080453f2 0880 strh r0, [r1]
| 0x080453f4 dff89409 ldr.w r0, [0x08045d90] ; [0x8045d90:4]=0x2001e444
| 0x080453f8 0088 ldrh r0, [r0]
| 0x080453fa 80b2 uxth r0, r0
| 0x080453fc c008 lsrs r0, r0, 3
| 0x080453fe dff84c1c ldr.w r1, [0x08046052] ; [0x8046050:4]=0x7800487f
| 0x08045402 0880 strh r0, [r1]
| 0x08045404 dff8980c ldr.w r0, [0x080460a4] ; [0x80460a4:4]=0x2001c380
| 0x08045408 0078 ldrb r0, [r0]
| 0x0804540a 401c adds r0, r0, 1
| 0x0804540c dff8901c ldr.w r1, [0x080460a4] ; [0x80460a4:4]=0x2001c380
| 0x08045410 0870 strb r0, [r1]
\ 0x08045412 7047 bx lr
/ (fcn) func_45414 54
| Caller: Start
| func_45414 ();
| 0x08045414 0020 movs r0, 0
| ,=< 0x08045416 07e0 b 0x8045428
| .--> 0x08045418 c0b2 uxtb r0, r0
| || 0x0804541a dff87419 ldr.w r1, [0x08045d96] ; [0x8045d94:4]=0xb087b500
| || 0x0804541e 40f61c42 movw r2, 0xc1c ; 3100
| || 0x08045422 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x08045426 401c adds r0, r0, 1
| |`-> 0x08045428 c0b2 uxtb r0, r0
| | 0x0804542a 0828 cmp r0, 8 ; 8
| `==< 0x0804542c f4d3 blo 0x8045418
| 0x0804542e dff85c09 ldr.w r0, [0x08045d92] ; [0x8045d90:4]=0x2001e444
| 0x08045432 46f2e001 movw r1, 0x60e0
| 0x08045436 0180 strh r1, [r0]
| 0x08045438 dff8640c ldr.w r0, [0x080460a4] ; [0x80460a4:4]=0x2001c380
| 0x0804543c 0021 movs r1, 0
| 0x0804543e 0170 strb r1, [r0]
| 0x08045440 dff8a40c ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| 0x08045444 0321 movs r1, 3 ; 3
| 0x08045446 4172 strb r1, [r0, 9]
\ 0x08045448 7047 bx lr
/ (fcn) SomethingWithChannelsRadioConfigAndBeeps 934
| Caller: Start
| SomethingWithChannelsRadioConfigAndBeeps ();
| 0x08045484 e0b5 push {r5, r6, r7, lr}
| 0x08045486 dff81c0c ldr.w r0, [0x080460aa] ; [0x80460a8:4]=0xe0062000
| 0x0804548a 8078 ldrb r0, [r0, 2]
| 0x0804548c c928 cmp r0, 0xc9 ; 201
| ,=< 0x0804548e 04d3 blo 0x804549a
| | 0x08045490 4ff41460 mov.w r0, 0x940 ; 2368
| | 0x08045494 adf80000 strh.w r0, [sp]
| ,==< 0x08045498 06e0 b 0x80454a8
| |`-> 0x0804549a dff8080c ldr.w r0, [0x080460aa] ; [0x80460a8:4]=0xe0062000
| | 0x0804549e 8078 ldrb r0, [r0, 2]
| | 0x080454a0 80b2 uxth r0, r0
| | 0x080454a2 0001 lsls r0, r0, 4
| | 0x080454a4 adf80000 strh.w r0, [sp]
| `--> 0x080454a8 dff8f80b ldr.w r0, [func_460a8] ; [0x80460a8:4]=0xe0062000
| 0x080454ac c078 ldrb r0, [r0, 3]
| 0x080454ae ff28 cmp r0, 0xff ; 255
| ,=< 0x080454b0 04d3 blo 0x80454bc
| | 0x080454b2 40f63240 movw r0, 0xc32 ; 3122
| | 0x080454b6 adf80800 strh.w r0, [sp, 8]
| ,==< 0x080454ba 06e0 b 0x80454ca
| |`-> 0x080454bc dff8e40b ldr.w r0, [func_460a8] ; [0x80460a8:4]=0xe0062000
| | 0x080454c0 c078 ldrb r0, [r0, 3]
| | 0x080454c2 80b2 uxth r0, r0
| | 0x080454c4 0001 lsls r0, r0, 4
| | 0x080454c6 adf80800 strh.w r0, [sp, 8]
| `--> 0x080454ca bdf80800 ldrh.w r0, [sp, 8]
| 0x080454ce bdf80010 ldrh.w r1, [sp]
| 0x080454d2 11fa80f0 uxtah r0, r1, r0
| 0x080454d6 0221 movs r1, 2 ; 2
| 0x080454d8 90fbf1f0 sdiv r0, r0, r1
| 0x080454dc adf80400 strh.w r0, [sp, 4]
| 0x080454e0 bdf80400 ldrh.w r0, [sp, 4]
| 0x080454e4 bdf80010 ldrh.w r1, [sp]
| 0x080454e8 11fa80f0 uxtah r0, r1, r0
| 0x080454ec 0221 movs r1, 2 ; 2
| 0x080454ee 90fbf1f0 sdiv r0, r0, r1
| 0x080454f2 adf80200 strh.w r0, [sp, 2]
| 0x080454f6 bdf80800 ldrh.w r0, [sp, 8]
| 0x080454fa bdf80410 ldrh.w r1, [sp, 4]
| 0x080454fe 11fa80f0 uxtah r0, r1, r0
| 0x08045502 0221 movs r1, 2 ; 2
| 0x08045504 90fbf1f0 sdiv r0, r0, r1
| 0x08045508 adf80600 strh.w r0, [sp, 6]
| 0x0804550c dff8e403 ldr.w r0, [func_458f8] ; [0x80458f8:4]=0xe0062000
| 0x08045510 4078 ldrb r0, [r0, 1]
| 0x08045512 c0f30010 ubfx r0, r0, 4, 1
| 0x08045516 c007 lsls r0, r0, 0x1f
| ,=< 0x08045518 40f18681 bpl.w 0x8045828
| | 0x0804551c dff82804 ldr.w r0, [0x0804594c] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| | 0x08045520 0078 ldrb r0, [r0]
| | 0x08045522 0328 cmp r0, 3 ; 3
| ,==< 0x08045524 1ad0 beq 0x804555c
| || 0x08045526 dff82004 ldr.w r0, [0x0804594e] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| || 0x0804552a 0078 ldrb r0, [r0]
| || 0x0804552c 0428 cmp r0, 4 ; 4
| ,===< 0x0804552e 15d0 beq 0x804555c
| ||| 0x08045530 dff81404 ldr.w r0, [0x0804594c] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||| 0x08045534 0078 ldrb r0, [r0]
| ||| 0x08045536 0628 cmp r0, 6 ; 6
| ,====< 0x08045538 10d0 beq 0x804555c
| |||| 0x0804553a dff80c04 ldr.w r0, [0x0804594e] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| |||| 0x0804553e 0078 ldrb r0, [r0]
| |||| 0x08045540 0728 cmp r0, 7 ; 7
| ,=====< 0x08045542 0bd0 beq 0x804555c
| ||||| 0x08045544 dff80004 ldr.w r0, [0x0804594c] ; [0x804594c:4]=0x2001e5f0 radio_status_1
| ||||| 0x08045548 0078 ldrb r0, [r0]
| ||||| 0x0804554a 0828 cmp r0, 8 ; 8
| ,======< 0x0804554c 06d0 beq 0x804555c
| |||||| 0x0804554e b748 ldr r0, [0x0804582e] ; [0x804582c:4]=0x2001de78 struct_channel_info2
| |||||| 0x08045550 0078 ldrb r0, [r0]
| |||||| 0x08045552 10f00300 ands r0, r0, 3
| |||||| 0x08045556 0328 cmp r0, 3 ; 3
| ,=======< 0x08045558 40f06681 bne.w 0x8045828
| |`````--> 0x0804555c fff71cff bl func_45398
| | | 0x08045560 dff8840b ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| | | 0x08045564 407a ldrb r0, [r0, 9]
| | | 0x08045566 0528 cmp r0, 5 ; 5
| | ,==< 0x08045568 27d1 bne 0x80455ba
| | || 0x0804556a dff8800b ldr.w r0, [0x080460f2] ; [0x80460f0:4]=0xf7ffb580
| | || 0x0804556e 4078 ldrb r0, [r0, 1]
| | || 0x08045570 10f0fd00 ands r0, r0, 0xfd
| | || 0x08045574 dff8741b ldr.w r1, [Calls_46050] ; [0x80460f0:4]=0xf7ffb580
| | || 0x08045578 4870 strb r0, [r1, 1]
| | || 0x0804557a dff8d00a ldr.w r0, [0x08046052] ; [0x8046050:4]=0x7800487f
| | || 0x0804557e 0088 ldrh r0, [r0]
| | || 0x08045580 bdf80810 ldrh.w r1, [sp, 8]
| | || 0x08045584 8842 cmp r0, r1
| | ,===< 0x08045586 04d3 blo 0x8045592
| | ||| 0x08045588 dff8780c ldr.w r0, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| | ||| 0x0804558c 0021 movs r1, 0
| | ||| 0x0804558e 0170 strb r1, [r0]
| | ,====< 0x08045590 4ae1 b 0x8045828
| | |`---> 0x08045592 dff8700c ldr.w r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| | | || 0x08045596 0078 ldrb r0, [r0]
| | | || 0x08045598 411c adds r1, r0, 1
| | | || 0x0804559a dff8682c ldr.w r2, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| | | || 0x0804559e 1170 strb r1, [r2]
| | | || 0x080455a0 c0b2 uxtb r0, r0
| | | || 0x080455a2 c828 cmp r0, 0xc8 ; 200
| | |,===< 0x080455a4 c0f04081 blo.w 0x8045828
| | |||| 0x080455a8 dff83c0b ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| | |||| 0x080455ac 0421 movs r1, 4 ; 4
| | |||| 0x080455ae 4172 strb r1, [r0, 9]
| | |||| 0x080455b0 dff8500c ldr.w r0, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| | |||| 0x080455b4 0021 movs r1, 0
| | |||| 0x080455b6 0170 strb r1, [r0]
| | ,=====< 0x080455b8 36e1 b 0x8045828
| | |||`--> 0x080455ba dff82c0b ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| | ||| | 0x080455be 407a ldrb r0, [r0, 9]
| | ||| | 0x080455c0 0428 cmp r0, 4 ; 4
| | |||,==< 0x080455c2 42d1 bne 0x804564a
| | ||||| 0x080455c4 dff8240b ldr.w r0, [Calls_46050] ; [0x80460f0:4]=0xf7ffb580
| | ||||| 0x080455c8 4078 ldrb r0, [r0, 1]
| | ||||| 0x080455ca 10f0fd00 ands r0, r0, 0xfd
| | ||||| 0x080455ce dff81c1b ldr.w r1, [0x080460f2] ; [0x80460f0:4]=0xf7ffb580
| | ||||| 0x080455d2 4870 strb r0, [r1, 1]
| | ||||| 0x080455d4 dff8740a ldr.w r0, [func_46050] ; [0x8046050:4]=0x7800487f
| | ||||| 0x080455d8 0088 ldrh r0, [r0]
| | ||||| 0x080455da bdf80610 ldrh.w r1, [sp, 6]
| | ||||| 0x080455de 8842 cmp r0, r1
| |,======< 0x080455e0 1fd3 blo 0x8045622
| ||||||| 0x080455e2 dff8680a ldr.w r0, [0x08046052] ; [0x8046050:4]=0x7800487f
| ||||||| 0x080455e6 0088 ldrh r0, [r0]
| ||||||| 0x080455e8 bdf80810 ldrh.w r1, [sp, 8]
| ||||||| 0x080455ec 8842 cmp r0, r1
| ========< 0x080455ee 13d3 blo 0x8045618
| ||||||| 0x080455f0 dff8100c ldr.w r0, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080455f4 0078 ldrb r0, [r0]
| ||||||| 0x080455f6 411c adds r1, r0, 1
| ||||||| 0x080455f8 dff8082c ldr.w r2, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080455fc 1170 strb r1, [r2]
| ||||||| 0x080455fe c0b2 uxtb r0, r0
| ||||||| 0x08045600 c828 cmp r0, 0xc8 ; 200
| ========< 0x08045602 c0f01181 blo.w 0x8045828
| ||||||| 0x08045606 dff8e00a ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x0804560a 0521 movs r1, 5 ; 5
| ||||||| 0x0804560c 4172 strb r1, [r0, 9]
| ||||||| 0x0804560e dff8f40b ldr.w r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x08045612 0021 movs r1, 0
| ||||||| 0x08045614 0170 strb r1, [r0]
| ========< 0x08045616 07e1 b 0x8045828
| --------> 0x08045618 dff8e80b ldr.w r0, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x0804561c 0021 movs r1, 0
| ||||||| 0x0804561e 0170 strb r1, [r0]
| ========< 0x08045620 02e1 b 0x8045828
| |`------> 0x08045622 dff8e00b ldr.w r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| | ||||| 0x08045626 0078 ldrb r0, [r0]
| | ||||| 0x08045628 411c adds r1, r0, 1
| | ||||| 0x0804562a dff8d82b ldr.w r2, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| | ||||| 0x0804562e 1170 strb r1, [r2]
| | ||||| 0x08045630 c0b2 uxtb r0, r0
| | ||||| 0x08045632 c828 cmp r0, 0xc8 ; 200
| |,======< 0x08045634 c0f0f880 blo.w 0x8045828
| ||||||| 0x08045638 dff8ac0a ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x0804563c 0321 movs r1, 3 ; 3
| ||||||| 0x0804563e 4172 strb r1, [r0, 9]
| ||||||| 0x08045640 dff8c00b ldr.w r0, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x08045644 0021 movs r1, 0
| ||||||| 0x08045646 0170 strb r1, [r0]
| ========< 0x08045648 eee0 b 0x8045828
| |||||`--> 0x0804564a dff89c0a ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| ||||| | 0x0804564e 407a ldrb r0, [r0, 9]
| ||||| | 0x08045650 0328 cmp r0, 3 ; 3
| |||||,==< 0x08045652 42d1 bne 0x80456da
| ||||||| 0x08045654 dff8940a ldr.w r0, [Calls_46050] ; [0x80460f0:4]=0xf7ffb580
| ||||||| 0x08045658 4078 ldrb r0, [r0, 1]
| ||||||| 0x0804565a 10f0fd00 ands r0, r0, 0xfd
| ||||||| 0x0804565e dff88c1a ldr.w r1, [0x080460f2] ; [0x80460f0:4]=0xf7ffb580
| ||||||| 0x08045662 4870 strb r0, [r1, 1]
| ||||||| 0x08045664 dff8e409 ldr.w r0, [func_46050] ; [0x8046050:4]=0x7800487f
| ||||||| 0x08045668 0088 ldrh r0, [r0]
| ||||||| 0x0804566a bdf80410 ldrh.w r1, [sp, 4]
| ||||||| 0x0804566e 8842 cmp r0, r1
| ========< 0x08045670 1fd3 blo 0x80456b2
| ||||||| 0x08045672 dff8d809 ldr.w r0, [0x08046052] ; [0x8046050:4]=0x7800487f
| ||||||| 0x08045676 0088 ldrh r0, [r0]
| ||||||| 0x08045678 bdf80610 ldrh.w r1, [sp, 6]
| ||||||| 0x0804567c 8842 cmp r0, r1
| ========< 0x0804567e 13d3 blo 0x80456a8
| ||||||| 0x08045680 dff8800b ldr.w r0, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x08045684 0078 ldrb r0, [r0]
| ||||||| 0x08045686 411c adds r1, r0, 1
| ||||||| 0x08045688 dff8782b ldr.w r2, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x0804568c 1170 strb r1, [r2]
| ||||||| 0x0804568e c0b2 uxtb r0, r0
| ||||||| 0x08045690 c828 cmp r0, 0xc8 ; 200
| ========< 0x08045692 c0f0c980 blo.w 0x8045828
| ||||||| 0x08045696 dff8500a ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x0804569a 0421 movs r1, 4 ; 4
| ||||||| 0x0804569c 4172 strb r1, [r0, 9]
| ||||||| 0x0804569e dff8640b ldr.w r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080456a2 0021 movs r1, 0
| ||||||| 0x080456a4 0170 strb r1, [r0]
| ========< 0x080456a6 bfe0 b 0x8045828
| --------> 0x080456a8 dff8580b ldr.w r0, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080456ac 0021 movs r1, 0
| ||||||| 0x080456ae 0170 strb r1, [r0]
| ========< 0x080456b0 bae0 b 0x8045828
| --------> 0x080456b2 dff8500b ldr.w r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080456b6 0078 ldrb r0, [r0]
| ||||||| 0x080456b8 411c adds r1, r0, 1
| ||||||| 0x080456ba dff8482b ldr.w r2, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080456be 1170 strb r1, [r2]
| ||||||| 0x080456c0 c0b2 uxtb r0, r0
| ||||||| 0x080456c2 c828 cmp r0, 0xc8 ; 200
| ========< 0x080456c4 c0f0b080 blo.w 0x8045828
| ||||||| 0x080456c8 dff81c0a ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x080456cc 0221 movs r1, 2 ; 2
| ||||||| 0x080456ce 4172 strb r1, [r0, 9]
| ||||||| 0x080456d0 dff8300b ldr.w r0, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080456d4 0021 movs r1, 0
| ||||||| 0x080456d6 0170 strb r1, [r0]
| ========< 0x080456d8 a6e0 b 0x8045828
| |||||`--> 0x080456da dff80c0a ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| ||||| | 0x080456de 407a ldrb r0, [r0, 9]
| ||||| | 0x080456e0 0228 cmp r0, 2 ; 2
| |||||,==< 0x080456e2 41d1 bne 0x8045768
| ||||||| 0x080456e4 dff8040a ldr.w r0, [Calls_46050] ; [0x80460f0:4]=0xf7ffb580
| ||||||| 0x080456e8 4078 ldrb r0, [r0, 1]
| ||||||| 0x080456ea 10f0fd00 ands r0, r0, 0xfd
| ||||||| 0x080456ee dff8fc19 ldr.w r1, [0x080460f2] ; [0x80460f0:4]=0xf7ffb580
| ||||||| 0x080456f2 4870 strb r0, [r1, 1]
| ||||||| 0x080456f4 dff85409 ldr.w r0, [func_46050] ; [0x8046050:4]=0x7800487f
| ||||||| 0x080456f8 0088 ldrh r0, [r0]
| ||||||| 0x080456fa bdf80210 ldrh.w r1, [sp, 2]
| ||||||| 0x080456fe 8842 cmp r0, r1
| ========< 0x08045700 1fd3 blo 0x8045742
| ||||||| 0x08045702 dff84809 ldr.w r0, [0x08046052] ; [0x8046050:4]=0x7800487f
| ||||||| 0x08045706 0088 ldrh r0, [r0]
| ||||||| 0x08045708 bdf80410 ldrh.w r1, [sp, 4]
| ||||||| 0x0804570c 8842 cmp r0, r1
| ========< 0x0804570e 13d3 blo 0x8045738
| ||||||| 0x08045710 dff8f00a ldr.w r0, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x08045714 0078 ldrb r0, [r0]
| ||||||| 0x08045716 411c adds r1, r0, 1
| ||||||| 0x08045718 dff8e82a ldr.w r2, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x0804571c 1170 strb r1, [r2]
| ||||||| 0x0804571e c0b2 uxtb r0, r0
| ||||||| 0x08045720 c828 cmp r0, 0xc8 ; 200
| ========< 0x08045722 c0f08180 blo.w 0x8045828
| ||||||| 0x08045726 dff8c009 ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x0804572a 0321 movs r1, 3 ; 3
| ||||||| 0x0804572c 4172 strb r1, [r0, 9]
| ||||||| 0x0804572e dff8d40a ldr.w r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x08045732 0021 movs r1, 0
| ||||||| 0x08045734 0170 strb r1, [r0]
| ========< 0x08045736 77e0 b 0x8045828
| --------> 0x08045738 dff8c80a ldr.w r0, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x0804573c 0021 movs r1, 0
| ||||||| 0x0804573e 0170 strb r1, [r0]
| ========< 0x08045740 72e0 b 0x8045828
| --------> 0x08045742 dff8c00a ldr.w r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x08045746 0078 ldrb r0, [r0]
| ||||||| 0x08045748 411c adds r1, r0, 1
| ||||||| 0x0804574a dff8b82a ldr.w r2, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x0804574e 1170 strb r1, [r2]
| ||||||| 0x08045750 c0b2 uxtb r0, r0
| ||||||| 0x08045752 c828 cmp r0, 0xc8 ; 200
| ========< 0x08045754 68d3 blo 0x8045828
| ||||||| 0x08045756 dff89009 ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x0804575a 0121 movs r1, 1 ; 1
| ||||||| 0x0804575c 4172 strb r1, [r0, 9]
| ||||||| 0x0804575e dff8a40a ldr.w r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x08045762 0021 movs r1, 0
| ||||||| 0x08045764 0170 strb r1, [r0]
| ========< 0x08045766 5fe0 b 0x8045828
| |||||`--> 0x08045768 dff87c09 ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| ||||| | 0x0804576c 407a ldrb r0, [r0, 9]
| ||||| | 0x0804576e 0128 cmp r0, 1 ; 1
| |||||,==< 0x08045770 5ad1 bne 0x8045828
| ||||||| 0x08045772 dff8d808 ldr.w r0, [0x08046052] ; [0x8046050:4]=0x7800487f
| ||||||| 0x08045776 0088 ldrh r0, [r0]
| ||||||| 0x08045778 bdf80010 ldrh.w r1, [sp]
| ||||||| 0x0804577c 8842 cmp r0, r1
| ========< 0x0804577e 26d3 blo 0x80457ce
| ||||||| 0x08045780 dff86809 ldr.w r0, [Calls_46050] ; [0x80460f0:4]=0xf7ffb580
| ||||||| 0x08045784 4078 ldrb r0, [r0, 1]
| ||||||| 0x08045786 10f0fd00 ands r0, r0, 0xfd
| ||||||| 0x0804578a dff86019 ldr.w r1, [0x080460f2] ; [0x80460f0:4]=0xf7ffb580
| ||||||| 0x0804578e 4870 strb r0, [r1, 1]
| ||||||| 0x08045790 dff8b808 ldr.w r0, [func_46050] ; [0x8046050:4]=0x7800487f
| ||||||| 0x08045794 0088 ldrh r0, [r0]
| ||||||| 0x08045796 bdf80210 ldrh.w r1, [sp, 2]
| ||||||| 0x0804579a 8842 cmp r0, r1
| ========< 0x0804579c 12d3 blo 0x80457c4
| ||||||| 0x0804579e dff8640a ldr.w r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080457a2 0078 ldrb r0, [r0]
| ||||||| 0x080457a4 411c adds r1, r0, 1
| ||||||| 0x080457a6 dff85c2a ldr.w r2, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080457aa 1170 strb r1, [r2]
| ||||||| 0x080457ac c0b2 uxtb r0, r0
| ||||||| 0x080457ae c828 cmp r0, 0xc8 ; 200
| ========< 0x080457b0 3ad3 blo 0x8045828
| ||||||| 0x080457b2 dff83409 ldr.w r0, [0x080460ee] ; [0x80460ec:4]=0x2001e5f4
| ||||||| 0x080457b6 0221 movs r1, 2 ; 2
| ||||||| 0x080457b8 4172 strb r1, [r0, 9]
| ||||||| 0x080457ba dff8480a ldr.w r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080457be 0021 movs r1, 0
| ||||||| 0x080457c0 0170 strb r1, [r0]
| ========< 0x080457c2 31e0 b 0x8045828
| --------> 0x080457c4 dff83c0a ldr.w r0, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080457c8 0021 movs r1, 0
| ||||||| 0x080457ca 0170 strb r1, [r0]
| ========< 0x080457cc 2ce0 b 0x8045828
| --------> 0x080457ce dff8340a ldr.w r0, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080457d2 0078 ldrb r0, [r0]
| ||||||| 0x080457d4 411c adds r1, r0, 1
| ||||||| 0x080457d6 dff82c2a ldr.w r2, [0x0804620a] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x080457da 1170 strb r1, [r2]
| ||||||| 0x080457dc c0b2 uxtb r0, r0
| ||||||| 0x080457de c828 cmp r0, 0xc8 ; 200
| ========< 0x080457e0 22d3 blo 0x8045828
| ||||||| 0x080457e2 dff80809 ldr.w r0, [0x080460f2] ; [0x80460f0:4]=0xf7ffb580
| ||||||| 0x080457e6 4078 ldrb r0, [r0, 1]
| ||||||| 0x080457e8 c0f34000 ubfx r0, r0, 1, 1
| ||||||| 0x080457ec c007 lsls r0, r0, 0x1f
| ========< 0x080457ee 0fd4 bmi 0x8045810
| ||||||| 0x080457f0 dff8140a ldr.w r0, [0x0804620c] ; [0x804620c:4]=0x2001e8a8 beep_code_send
| ||||||| 0x080457f4 807b ldrb r0, [r0, 0xe]
| ||||||| 0x080457f6 0028 cmp r0, 0
| ========< 0x080457f8 0ad0 beq 0x8045810
| ||||||| 0x080457fa dff8100a ldr.w r0, [0x08046212] ; [0x8046210:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x080457fe 1021 movs r1, 0x10 ; 16
| ||||||| 0x08045800 0170 strb r1, [r0]
| ||||||| 0x08045802 dff8081a ldr.w r1, [0x08046212] ; [0x8046210:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x08045806 dff8080a ldr.w r0, [0x08046216] ; [0x8046214:4]=0x2001e51c adc1_6channel_dma_buffer
| ||||||| 0x0804580a 0068 ldr r0, [r0]
| ||||||| 0x0804580c ebf7c6fc bl md380_OSMboxPost
| --------> 0x08045810 dff8d808 ldr.w r0, [Calls_46050] ; [0x80460f0:4]=0xf7ffb580
| ||||||| 0x08045814 4078 ldrb r0, [r0, 1]
| ||||||| 0x08045816 50f00200 orrs r0, r0, 2
| ||||||| 0x0804581a dff8d018 ldr.w r1, [0x080460f2] ; [0x80460f0:4]=0xf7ffb580
| ||||||| 0x0804581e 4870 strb r0, [r1, 1]
| ||||||| 0x08045820 dff8e009 ldr.w r0, [0x08046208] ; [0x8046208:4]=0x2001dadc md380_radio_config
| ||||||| 0x08045824 0021 movs r1, 0
| ||||||| 0x08045826 0170 strb r1, [r0]
\ ```````-> 0x08045828 07bd pop {r0, r1, r2, pc}
/ (fcn) func_45830 188
| Caller: FuncWithAwfulLongSwitch
| func_45830 ();
| 0x08045830 30b4 push {r4, r5}
| 0x08045832 0020 movs r0, 0
| 0x08045834 dff8dc19 ldr.w r1, [0x08046218] ; [0x8046218:4]=0x2001dfb8
| 0x08045838 8988 ldrh r1, [r1, 4]
| 0x0804583a 0022 movs r2, 0
| ,=< 0x0804583c 00e0 b 0x8045840
| .--> 0x0804583e 521c adds r2, r2, 1
| |`-> 0x08045840 d2b2 uxtb r2, r2
| | 0x08045842 1e2a cmp r2, 0x1e ; 30
| |,=< 0x08045844 23d2 bhs 0x804588e
| || 0x08045846 d2b2 uxtb r2, r2
| || 0x08045848 dff8cc39 ldr.w r3, [0x0804621c] ; [0x804621c:4]=0x2001e866
| || 0x0804584c 33f81230 ldrh.w r3, [r3, r2, lsl 1]
| || 0x08045850 89b2 uxth r1, r1
| || 0x08045852 8b42 cmp r3, r1
| `==< 0x08045854 f3d2 bhs 0x804583e
| | 0x08045856 1d23 movs r3, 0x1d ; 29
| ,==< 0x08045858 0ce0 b 0x8045874
| .---> 0x0804585a dbb2 uxtb r3, r3
| ||| 0x0804585c dff8b849 ldr.w r4, [0x0804621c] ; [0x804621c:4]=0x2001e866
| ||| 0x08045860 14eb4304 adds.w r4, r4, r3, lsl 1
| ||| 0x08045864 34f8024c ldrh r4, [r4, -0x2]
| ||| 0x08045868 dbb2 uxtb r3, r3
| ||| 0x0804586a dff8ac59 ldr.w r5, [0x0804621e] ; [0x804621c:4]=0x2001e866
| ||| 0x0804586e 25f81340 strh.w r4, [r5, r3, lsl 1]
| ||| 0x08045872 5b1e subs r3, r3, 1
| |`--> 0x08045874 d2b2 uxtb r2, r2
| | | 0x08045876 dbb2 uxtb r3, r3
| | | 0x08045878 9a42 cmp r2, r3
| `===< 0x0804587a eed3 blo 0x804585a
| | 0x0804587c d2b2 uxtb r2, r2
| | 0x0804587e dff89839 ldr.w r3, [0x0804621e] ; [0x804621c:4]=0x2001e866
| | 0x08045882 23f81210 strh.w r1, [r3, r2, lsl 1]
| | 0x08045886 dff89439 ldr.w r3, [0x08046222] ; [0x8046220:4]=0x2001e8e1
| | 0x0804588a 0024 movs r4, 0
| | 0x0804588c 1c70 strb r4, [r3]
| `-> 0x0804588e d2b2 uxtb r2, r2
| 0x08045890 1e2a cmp r2, 0x1e ; 30
| ,=< 0x08045892 18d1 bne 0x80458c6
| | 0x08045894 dff88429 ldr.w r2, [0x08046220] ; [0x8046220:4]=0x2001e8e1
| | 0x08045898 1278 ldrb r2, [r2]
| | 0x0804589a 531c adds r3, r2, 1
| | 0x0804589c dff87c49 ldr.w r4, [0x08046220] ; [0x8046220:4]=0x2001e8e1
| | 0x080458a0 2370 strb r3, [r4]
| | 0x080458a2 d2b2 uxtb r2, r2
| | 0x080458a4 192a cmp r2, 0x19 ; 25
| ,==< 0x080458a6 0ed3 blo 0x80458c6
| || 0x080458a8 0023 movs r3, 0
| ,===< 0x080458aa 05e0 b 0x80458b8
| .----> 0x080458ac dbb2 uxtb r3, r3
| |||| 0x080458ae dff86829 ldr.w r2, [0x0804621e] ; [0x804621c:4]=0x2001e866
| |||| 0x080458b2 22f81310 strh.w r1, [r2, r3, lsl 1]
| |||| 0x080458b6 5b1c adds r3, r3, 1
| |`---> 0x080458b8 dbb2 uxtb r3, r3
| | || 0x080458ba 1e2b cmp r3, 0x1e ; 30
| `====< 0x080458bc f6d3 blo 0x80458ac
| || 0x080458be dff85c19 ldr.w r1, [0x08046222] ; [0x8046220:4]=0x2001e8e1
| || 0x080458c2 0022 movs r2, 0
| || 0x080458c4 0a70 strb r2, [r1]
| ``-> 0x080458c6 0022 movs r2, 0
| ,=< 0x080458c8 06e0 b 0x80458d8
| .--> 0x080458ca d2b2 uxtb r2, r2
| || 0x080458cc dff84819 ldr.w r1, [0x0804621c] ; [0x804621c:4]=0x2001e866
| || 0x080458d0 31f81210 ldrh.w r1, [r1, r2, lsl 1]
| || 0x080458d4 0818 adds r0, r1, r0
| || 0x080458d6 521c adds r2, r2, 1
| |`-> 0x080458d8 d2b2 uxtb r2, r2
| | 0x080458da 082a cmp r2, 8 ; 8
| `==< 0x080458dc f5d3 blo 0x80458ca
| 0x080458de 80b2 uxth r0, r0
| 0x080458e0 c009 lsrs r0, r0, 7
| 0x080458e2 dff83c19 ldr.w r1, [0x08046226] ; [0x8046224:4]=0x2001e893
| 0x080458e6 0870 strb r0, [r1]
| 0x080458e8 30bc pop {r4, r5}
\ 0x080458ea 7047 bx lr
/ (fcn) func_458f8 42
| Caller: func_32130 Start func_31fe2
| func_458f8 ();
| 0x080458f8 0020 movs r0, 0
| ,=< 0x080458fa 06e0 b 0x804590a
| .--> 0x080458fc c0b2 uxtb r0, r0
| || 0x080458fe dff81819 ldr.w r1, [0x0804621e] ; [0x804621c:4]=0x2001e866
| || 0x08045902 0022 movs r2, 0
| || 0x08045904 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x08045908 401c adds r0, r0, 1
| |`-> 0x0804590a c0b2 uxtb r0, r0
| | 0x0804590c 1e28 cmp r0, 0x1e ; 30
| `==< 0x0804590e f5d3 blo 0x80458fc
| 0x08045910 dff8d407 ldr.w r0, [0x080460ec] ; [0x80460ec:4]=0x2001e5f4
| 0x08045914 0021 movs r1, 0
| 0x08045916 0170 strb r1, [r0]
| 0x08045918 dff80409 ldr.w r0, [0x08046224] ; [0x8046224:4]=0x2001e893
| 0x0804591c 0021 movs r1, 0
| 0x0804591e 0170 strb r1, [r0]
\ 0x08045920 7047 bx lr
/ (fcn) func_45d18 74
| Caller: Start
| func_45d18 ();
| 0x08045d18 0020 movs r0, 0
| ,=< 0x08045d1a 06e0 b 0x8045d2a
| .--> 0x08045d1c c0b2 uxtb r0, r0
| || 0x08045d1e dff81415 ldr.w r1, [0x0804623a] ; [0x8046238:4]=0x2001e798
| || 0x08045d22 0022 movs r2, 0
| || 0x08045d24 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x08045d28 401c adds r0, r0, 1
| |`-> 0x08045d2a c0b2 uxtb r0, r0
| | 0x08045d2c 0428 cmp r0, 4 ; 4
| `==< 0x08045d2e f5d3 blo 0x8045d1c
| 0x08045d30 dff8fc04 ldr.w r0, [0x08046234] ; [0x8046234:4]=0x2001e454
| 0x08045d34 0021 movs r1, 0
| 0x08045d36 0180 strh r1, [r0]
| 0x08045d38 dff8f004 ldr.w r0, [0x08046230] ; [0x8046230:4]=0x2001e796
| 0x08045d3c 0021 movs r1, 0
| 0x08045d3e 0170 strb r1, [r0]
| 0x08045d40 dff8f404 ldr.w r0, [0x0804623c] ; [0x804623c:4]=0x2001e600 q_struct_1
| 0x08045d44 0021 movs r1, 0
| 0x08045d46 0180 strh r1, [r0]
| 0x08045d48 dff8f004 ldr.w r0, [0x08046240] ; [0x8046240:4]=0x2001e8e2
| 0x08045d4c 4078 ldrb r0, [r0, 1]
| 0x08045d4e 10f0fd00 ands r0, r0, 0xfd
| 0x08045d52 dff8e814 ldr.w r1, [0x08046242] ; [0x8046240:4]=0x2001e8e2
| 0x08045d56 4870 strb r0, [r1, 1]
| 0x08045d58 dff8e404 ldr.w r0, [0x08046244] ; [0x8046244:4]=0x2001e5f0 radio_status_1
| 0x08045d5c 0021 movs r1, 0
| 0x08045d5e 0170 strb r1, [r0]
\ 0x08045d60 7047 bx lr
/ (fcn) func_46050 80
| Caller: Calls_46050
| func_46050 ();
| 0x08046050 7f48 ldr r0, [0x08046250] ; [0x8046250:4]=0x2001e863
| 0x08046052 0078 ldrb r0, [r0]
| 0x08046054 0828 cmp r0, 8 ; 8
| ,=< 0x08046056 02d3 blo 0x804605e
| | 0x08046058 7d48 ldr r0, [0x08046250] ; [0x8046250:4]=0x2001e863
| | 0x0804605a 0021 movs r1, 0
| | 0x0804605c 0170 strb r1, [r0]
| `-> 0x0804605e 7d48 ldr r0, [0x08046256] ; [0x8046254:4]=0x2001e79a
| 0x08046060 0088 ldrh r0, [r0]
| 0x08046062 7b49 ldr r1, [0x08046252] ; [0x8046250:4]=0x2001e863
| 0x08046064 0978 ldrb r1, [r1]
| 0x08046066 7c4a ldr r2, [0x0804625a] ; [0x8046258:4]=0x2001e464
| 0x08046068 32f81110 ldrh.w r1, [r2, r1, lsl 1]
| 0x0804606c 401a subs r0, r0, r1
| 0x0804606e 7949 ldr r1, [0x08046256] ; [0x8046254:4]=0x2001e79a
| 0x08046070 0880 strh r0, [r1]
| 0x08046072 7748 ldr r0, [0x08046252] ; [0x8046250:4]=0x2001e863
| 0x08046074 0078 ldrb r0, [r0]
| 0x08046076 7849 ldr r1, [0x0804625a] ; [0x8046258:4]=0x2001e464
| 0x08046078 664a ldr r2, [0x08046214] ; [0x8046214:4]=0x2001e51c adc1_6channel_dma_buffer
| 0x0804607a 5289 ldrh r2, [r2, 0xa] ; adc1_result[5] = bat voltage, raw value from DMA-transfer
| 0x0804607c 21f81020 strh.w r2, [r1, r0, lsl 1]
| 0x08046080 7448 ldr r0, [0x08046254] ; [0x8046254:4]=0x2001e79a
| 0x08046082 0088 ldrh r0, [r0]
| 0x08046084 7249 ldr r1, [0x08046250] ; [0x8046250:4]=0x2001e863
| 0x08046086 0978 ldrb r1, [r1]
| 0x08046088 734a ldr r2, [0x08046258] ; [0x8046258:4]=0x2001e464
| 0x0804608a 32f81110 ldrh.w r1, [r2, r1, lsl 1]
| 0x0804608e 0818 adds r0, r1, r0
| 0x08046090 7049 ldr r1, [0x08046254] ; [0x8046254:4]=0x2001e79a
| 0x08046092 0880 strh r0, [r1]
| 0x08046094 6e48 ldr r0, [0x08046250] ; [0x8046250:4]=0x2001e863
| 0x08046096 0078 ldrb r0, [r0]
| 0x08046098 401c adds r0, r0, 1
| 0x0804609a 6d49 ldr r1, [0x08046252] ; [0x8046250:4]=0x2001e863
| 0x0804609c 0870 strb r0, [r1]
\ 0x0804609e 7047 bx lr
/ (fcn) func_460a8 64
| Caller: Start
| func_460a8 ();
| 0x080460a8 0020 movs r0, 0
| ,=< 0x080460aa 06e0 b 0x80460ba
| .--> 0x080460ac c0b2 uxtb r0, r0
| || 0x080460ae 6a49 ldr r1, [0x0804625a] ; [0x8046258:4]=0x2001e464
| || 0x080460b0 40f61c42 movw r2, 0xc1c ; 3100
| || 0x080460b4 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x080460b8 401c adds r0, r0, 1
| |`-> 0x080460ba c0b2 uxtb r0, r0
| | 0x080460bc 0828 cmp r0, 8 ; 8
| `==< 0x080460be f5d3 blo 0x80460ac
| 0x080460c0 6448 ldr r0, [0x08046254] ; [0x8046254:4]=0x2001e79a
| 0x080460c2 46f2e001 movw r1, 0x60e0
| 0x080460c6 0180 strh r1, [r0]
| 0x080460c8 6148 ldr r0, [0x08046250] ; [0x8046250:4]=0x2001e863
| 0x080460ca 0021 movs r1, 0
| 0x080460cc 0170 strb r1, [r0]
| 0x080460ce 6348 ldr r0, [0x0804625e] ; [0x804625c:4]=0x2001e864
| 0x080460d0 0021 movs r1, 0
| 0x080460d2 0170 strb r1, [r0]
| 0x080460d4 5948 ldr r0, [0x0804623c] ; [0x804623c:4]=0x2001e600 q_struct_1
| 0x080460d6 4078 ldrb r0, [r0, 1]
| 0x080460d8 50f01000 orrs r0, r0, 0x10
| 0x080460dc 5749 ldr r1, [0x0804623c] ; [0x804623c:4]=0x2001e600 q_struct_1
| 0x080460de 4870 strb r0, [r1, 1]
| 0x080460e0 5f48 ldr r0, [0x08046260] ; [0x8046260:4]=0x2001e865
| 0x080460e2 0021 movs r1, 0
| 0x080460e4 0170 strb r1, [r0]
\ 0x080460e6 7047 bx lr
/ (fcn) Calls_46050 8
| Caller: Start
| Calls_46050 ();
| 0x080460f0 80b5 push {r7, lr}
| 0x080460f2 fff7adff bl func_46050
\ 0x080460f6 01bd pop {r0, pc}
/ (fcn) DrawSomethingThenBitBangIO 268
| DrawSomethingThenBitBangIO ();
| 0x080460f8 10b5 push {r4, lr}
| 0x080460fa 82b0 sub sp, 8
| 0x080460fc 5848 ldr r0, [0x08046260] ; [0x8046260:4]=0x2001e865
| 0x080460fe 0078 ldrb r0, [r0]
| 0x08046100 1528 cmp r0, 0x15 ; 21
| ,=< 0x08046102 05d2 bhs 0x8046110
| | 0x08046104 5648 ldr r0, [0x08046260] ; [0x8046260:4]=0x2001e865
| | 0x08046106 0078 ldrb r0, [r0]
| | 0x08046108 401c adds r0, r0, 1
| | 0x0804610a 5549 ldr r1, [0x08046262] ; [0x8046260:4]=0x2001e865
| | 0x0804610c 0870 strb r0, [r1]
| ,==< 0x0804610e 0de0 b 0x804612c
| |`-> 0x08046110 5048 ldr r0, [0x08046254] ; [0x8046254:4]=0x2001e79a
| | 0x08046112 0088 ldrh r0, [r0]
| | 0x08046114 b0f5165f cmp.w r0, 0x2580
| |,=< 0x08046118 09d3 blo 0x804612e
| || 0x0804611a 4848 ldr r0, [0x0804623e] ; [0x804623c:4]=0x2001e600 q_struct_1
| || 0x0804611c 4078 ldrb r0, [r0, 1]
| || 0x0804611e 50f01000 orrs r0, r0, 0x10
| || 0x08046122 4649 ldr r1, [0x0804623e] ; [0x804623c:4]=0x2001e600 q_struct_1
| || 0x08046124 4870 strb r0, [r1, 1]
| || 0x08046126 4d48 ldr r0, [0x0804625e] ; [0x804625c:4]=0x2001e864
| || 0x08046128 0021 movs r1, 0
| || 0x0804612a 0170 strb r1, [r0]
| ..`--> 0x0804612c 13bd pop {r0, r1, r4, pc} ; return but not end of function
| || `-> 0x0804612e 4b48 ldr r0, [0x0804625e] ; [0x804625c:4]=0x2001e864
| || 0x08046130 0078 ldrb r0, [r0]
| || 0x08046132 401c adds r0, r0, 1
| || 0x08046134 4949 ldr r1, [0x0804625c] ; [0x804625c:4]=0x2001e864
| || 0x08046136 0870 strb r0, [r1]
| || 0x08046138 c0b2 uxtb r0, r0
| || 0x0804613a 0a28 cmp r0, 0xa ; 10
| `====< 0x0804613c f6d3 blo 0x804612c
| | 0x0804613e 3f48 ldr r0, [0x0804623e] ; [0x804623c:4]=0x2001e600 q_struct_1
| | 0x08046140 4078 ldrb r0, [r0, 1]
| | 0x08046142 10f0ef00 ands r0, r0, 0xef
| | 0x08046146 3d49 ldr r1, [0x0804623e] ; [0x804623c:4]=0x2001e600 q_struct_1
| | 0x08046148 4870 strb r0, [r1, 1]
| | 0x0804614a 4448 ldr r0, [0x0804625e] ; [0x804625c:4]=0x2001e864
| | 0x0804614c 0021 movs r1, 0
| | 0x0804614e 0170 strb r1, [r0]
| | 0x08046150 3c48 ldr r0, [0x08046244] ; [0x8046244:4]=0x2001e5f0 radio_status_1
| | 0x08046152 4078 ldrb r0, [r0, 1]
| | 0x08046154 c007 lsls r0, r0, 0x1f
| | ,=< 0x08046156 04d5 bpl 0x8046162
| | | 0x08046158 eef76ff8 bl func_3423a
| | | 0x0804615c f7f7eff9 bl func_3d53e
| |,==< 0x08046160 08e0 b 0x8046174
| ||`-> 0x08046162 3048 ldr r0, [0x08046226] ; [0x8046224:4]=0x2001e893
| || 0x08046164 0078 ldrb r0, [r0]
| || 0x08046166 0128 cmp r0, 1 ; 1
| ||,=< 0x08046168 04d1 bne 0x8046174
| ||| 0x0804616a ebf73aff bl func_31fe2
| ||| 0x0804616e 2d48 ldr r0, [0x08046226] ; [0x8046224:4]=0x2001e893
| ||| 0x08046170 0421 movs r1, 4 ; 4
| ||| 0x08046172 0170 strb r1, [r0]
| |``-> 0x08046174 3b48 ldr r0, [0x08046264] ; [0x8046264:4]=0x2001e5d0 msg_timer_500
| | 0x08046176 4ff4fa71 mov.w r1, 0x1f4 ; 500
| | 0x0804617a 0160 str r1, [r0]
| | 0x0804617c 3a48 ldr r0, [0x08046268] ; [0x8046268:4]=0x2001e94d gui_opmode1
| | 0x0804617e a121 movs r1, 0xa1 ; 161
| | 0x08046180 0170 strb r1, [r0]
| | 0x08046182 3a48 ldr r0, [0x0804626e] ; [0x804626c:4]=0x2001e7a4
| | 0x08046184 0088 ldrh r0, [r0]
| | 0x08046186 0128 cmp r0, 1 ; 1
| | ,=< 0x08046188 01d3 blo 0x804618e
| | | 0x0804618a e9f7b5fb bl func_2f8f8
| | `-> 0x0804618e c7f769fe bl func_0de64
| | 0x08046192 3748 ldr r0, [0x08046272] ; [0x8046270:4]=0xff8032
| | 0x08046194 d7f7e8f8 bl gfx_set_bg_color
| | 0x08046198 0020 movs r0, 0
| | 0x0804619a d7f7e9f8 bl gfx_set_fg_color
| | 0x0804619e 4420 movs r0, 0x44 ; 'D' ; 68
| | 0x080461a0 0090 str r0, [sp]
| | 0x080461a2 a023 movs r3, 0xa0 ; 160
| | 0x080461a4 3022 movs r2, 0x30 ; '0' ; 48
| | 0x080461a6 0021 movs r1, 0
| | 0x080461a8 3248 ldr r0, [0x08046274] ; [0x8046274:4]=0x2001e6ec
| | 0x080461aa 0068 ldr r0, [r0]
| | 0x080461ac 324c ldr r4, [0x08046278] ; [0x8046278:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x080461ae 14eb8000 adds.w r0, r4, r0, lsl 2
| | 0x080461b2 d0f89402 ldr.w r0, [r0, 0x294]
| | 0x080461b6 c7f78ffe bl gfx_drawtext10
| | 0x080461ba 6020 movs r0, 0x60 ; '`' ; 96
| | 0x080461bc 0090 str r0, [sp]
| | 0x080461be a023 movs r3, 0xa0 ; 160
| | 0x080461c0 4e22 movs r2, 0x4e ; 'N' ; 78
| | 0x080461c2 0021 movs r1, 0
| | 0x080461c4 2b48 ldr r0, [0x08046274] ; [0x8046274:4]=0x2001e6ec
| | 0x080461c6 0068 ldr r0, [r0]
| | 0x080461c8 2b4c ldr r4, [0x08046278] ; [0x8046278:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x080461ca 14eb8000 adds.w r0, r4, r0, lsl 2
| | 0x080461ce d0f89802 ldr.w r0, [r0, 0x298]
| | 0x080461d2 c7f781fe bl gfx_drawtext10
| | 0x080461d6 0020 movs r0, 0
| | 0x080461d8 d7f7caf8 bl gfx_set_fg_color
| | 0x080461dc 7ff07f40 mvns r0, 0xff000000
| | 0x080461e0 d7f7c2f8 bl gfx_set_bg_color
| | 0x080461e4 4ff47a70 mov.w r0, 0x3e8 ; 1000
| | 0x080461e8 edf764fe bl OSTimeDly
| | 0x080461ec edf7c4fd bl gfx_write_pixel_2
| | 0x080461f0 8021 movs r1, 0x80 ; 128
| | 0x080461f2 2248 ldr r0, [0x0804627e] ; [0x804627c:4]=0x40020000 io_GPIOA
| | 0x080461f4 e5f70bfb bl GPIO_ResetBits
| | 0x080461f8 c820 movs r0, 0xc8 ; 200
| | 0x080461fa edf75bfe bl OSTimeDly
| | 0x080461fe fef797fb bl func_44930
\ `===< 0x08046202 93e7 b 0x804612c
/ (fcn) Create_Start_Task 60
| Caller: _main2_init_sub3
| Create_Start_Task ();
| 0x08046280 00b5 push {lr}
| 0x08046282 87b0 sub sp, 0x1c ; reserve stack space for arguments #5 to #9
| 0x08046284 0320 movs r0, 3 ; 3 ; 3 = OS_TASK_OPT_STK_CHK + OS_TASK_OPT_STK_CLR
| 0x08046286 0490 str r0, [sp, 0x10] ; SP[4] = u16Options, 9th and last arg for OSTaskCreateExt
| 0x08046288 0020 movs r0, 0
| 0x0804628a 0390 str r0, [sp, 0xc] ; SP[3] = pvExt = user supplied data, 8th arg for OSTaskCreateExt
| 0x0804628c 4ff40070 mov.w r0, 0x200 ; 512 ; task stack size (static array)
| 0x08046290 0290 str r0, [sp, 8] ; SP[2] = u32StackSize, 7th arg for OSTaskCreateExt
| 0x08046292 dff8780a ldr.w r0, [0x08046d12] ; [0x8046d10:4]=0x20014ab4 Stack_for_Start_Task
| 0x08046296 0190 str r0, [sp, 4] ; SP[1] = pBotOfStack, 6th arg for OSTaskCreateExt
| 0x08046298 1220 movs r0, 0x12 ; 18
| 0x0804629a 0090 str r0, [sp] ; SP[0] = u16ID, 5th arg for OSTaskCreateExt
| 0x0804629c 1223 movs r3, 0x12 ; 18 ; R3 = u8Prio, 4th arg for OSTaskCreateExt
| 0x0804629e dff8702a ldr.w r2, [0x08046d16] ; [0x8046d14:4]=0x80fbda8 s_uCOS2_Start_Task ; R2 once was pTopOfStack, but what is this ?
| 0x080462a2 0021 movs r1, 0 ; R1 = pvData, 2nd arg for OSTaskCreateExt
| 0x080462a4 0ff21500 addw r0, pc, 0x15 ; R0 = pTaskFunc = PC+0x15 = Start(), ca 0x80462bc
| 0x080462a8 08f06af9 bl OSTaskCreateExt ; OSTaskCreateExt(pTaskFunc,pvData,pTOS,u8Prio,u16ID,pBOS,u32StkSize,pvExt,u16Options)
| 0x080462ac 05aa add r2, sp, 0x14
| 0x080462ae dff8641a ldr.w r1, [0x08046d1a] ; [0x8046d18:4]=0x2001e892 gui_opmode3
| 0x080462b2 1220 movs r0, 0x12 ; 18
| 0x080462b4 08f0caf9 bl OSTaskNameSet ; OSTaskNameSet(R0=INT8U prio, R1=char *pname, R2=INT8U *err)
| 0x080462b8 07b0 add sp, 0x1c ; clear local vars (arguments) from stack
\ 0x080462ba 00bd pop {pc}
/ (fcn) Start 314
| Start ();
| 0x080462bc 00f09bf8 bl create_many_semas
| 0x080462c0 dff8540a ldr.w r0, [0x08046d1c] ; [0x8046d1c:4]=0x2001e894
| 0x080462c4 0021 movs r1, 0
| 0x080462c6 0170 strb r1, [r0]
| 0x080462c8 dff8500a ldr.w r0, [0x08046d20] ; [0x8046d20:4]=0x2001e5d0 msg_timer_500
| 0x080462cc 0121 movs r1, 1 ; 1
| 0x080462ce 0170 strb r1, [r0]
| 0x080462d0 dff84c0a ldr.w r0, [0x08046d24] ; [0x8046d24:4]=0x2001e7c8
| 0x080462d4 4ff4fa71 mov.w r1, 0x1f4 ; 500
| 0x080462d8 0160 str r1, [r0]
| 0x080462da dff8480a ldr.w r0, [0x08046d2a] ; [0x8046d28:4]=0x40020800 io_GPIOC
| 0x080462de 0021 movs r1, 0
| 0x080462e0 0180 strh r1, [r0]
| 0x080462e2 00f09ffc bl init_more_and_start_watchdog
| 0x080462e6 00f08dfc bl init_a_lot_gfx_and_lcd
| 0x080462ea edf7d4f8 bl gfx_33496
| 0x080462ee 0420 movs r0, 4 ; 4
| 0x080462f0 08f080fa bl func_4e7f4
| 0x080462f4 4021 movs r1, 0x40 ; '@' ; 64
| 0x080462f6 dff8300a ldr.w r0, [0x08046d2e] ; [0x8046d2c:4]=0x2001dadc md380_radio_config
| 0x080462fa e5f786fa bl GPIO_SetBits
| 0x080462fe edf73bfd bl gfx_write_pixel_2
| 0x08046302 dcf744ff bl func_2318e
| 0x08046306 dff8240a ldr.w r0, [0x08046d32] ; [0x8046d30:4]=0x2001e8a8 beep_code_send
| 0x0804630a 4078 ldrb r0, [r0, 1]
| 0x0804630c c0f34010 ubfx r0, r0, 5, 1
| 0x08046310 c007 lsls r0, r0, 0x1f
| ,=< 0x08046312 08d4 bmi 0x8046326
| | 0x08046314 dff8000a ldr.w r0, [0x08046d1c] ; [0x8046d1c:4]=0x2001e894
| | 0x08046318 0078 ldrb r0, [r0]
| | 0x0804631a 0828 cmp r0, 8 ; 8
| ,==< 0x0804631c 03d0 beq 0x8046326
| || 0x0804631e dff8f809 ldr.w r0, [0x08046d1e] ; [0x8046d1c:4]=0x2001e894
| || 0x08046322 0421 movs r1, 4 ; 4
| || 0x08046324 0170 strb r1, [r0]
| ``-> 0x08046326 c5f72fff bl md380_create_main_menu_entry
| 0x0804632a 00f0f9f8 bl Start_multiple_tasks
| 0x0804632e fef7c1fc bl func_44cb4
| 0x08046332 f9f778f9 bl SomethingWithGPIOC_TIM7_Status
| 0x08046336 fef74aff bl func_451ce
| 0x0804633a fff76bf8 bl func_45414
| 0x0804633e fff7dbfa bl func_458f8
| 0x08046342 fff7e9fc bl func_45d18
| 0x08046346 fff7affe bl func_460a8
| 0x0804634a 06f06ffd bl init_Tone_fft_task
| 0x0804634e eaf746fe bl do_nothing_30fde
| 0x08046352 c820 movs r0, 0xc8 ; 200
| 0x08046354 edf7aefd bl OSTimeDly
| 0x08046358 dff8d409 ldr.w r0, [0x08046d34] ; [0x8046d34:4]=0x2001e67c event2_mbox_poi_beep
| 0x0804635c 0421 movs r1, 4 ; 4
| 0x0804635e 0170 strb r1, [r0]
| 0x08046360 dff8cc19 ldr.w r1, [0x08046d34] ; [0x8046d34:4]=0x2001e67c event2_mbox_poi_beep
| 0x08046364 dff8cc09 ldr.w r0, [0x08046d38] ; [0x8046d38:4]=0x2001e960
| 0x08046368 0068 ldr r0, [r0]
| 0x0804636a eaf717ff bl md380_OSMboxPost
| 0x0804636e 4ff47a70 mov.w r0, 0x3e8 ; 1000
| 0x08046372 edf79ffd bl OSTimeDly
| 0x08046376 08f047fa bl func_4e808
| 0x0804637a 08f057fa bl func_4e82c_uses_SPI2_3_DMA_and_I2C
| 0x0804637e dff8b809 ldr.w r0, [0x08046d3e] ; [0x8046d3c:4]=0x100f3
| 0x08046382 edf7d5fd bl func_33f30
| 0x08046386 08f013fb bl func_4e9b0
| 0x0804638a dff8b009 ldr.w r0, [0x08046d42] ; [0x8046d40:4]=0x40012000 io_ADC1
| 0x0804638e 08f0a9fb bl func_4eae4
| ..-> 0x08046392 dff89009 ldr.w r0, [0x08046d2a] ; [0x8046d28:4]=0x40020800 io_GPIOC
| || 0x08046396 0088 ldrh r0, [r0]
| || 0x08046398 401c adds r0, r0, 1
| || 0x0804639a dff88819 ldr.w r1, [0x08046d2a] ; [0x8046d28:4]=0x40020800 io_GPIOC
| || 0x0804639e 0880 strh r0, [r1]
| || 0x080463a0 fff7d8fa bl FuncWithAwfulLongSwitch
| || 0x080463a4 fef72cfd bl LongSwitchWithRadioStatus1
| || 0x080463a8 fff76cf8 bl SomethingWithChannelsRadioConfigAndBeeps
| || 0x080463ac fff7f2fc bl SomethingWithLongpressSettingRadioStatus1
| || 0x080463b0 fef72cff bl func_4520c
| || 0x080463b4 fef788fe bl SomethingWithGuiOpmode2
| || 0x080463b8 fff79afe bl Calls_46050
| || 0x080463bc dff88009 ldr.w r0, [0x08046d44] ; [0x8046d44:4]=0x2001e688
| || 0x080463c0 07f062f9 bl adc_StartConv
| || 0x080463c4 f7f70ef9 bl SomethingWithGPIOC_and_Backlight_Timer
| || 0x080463c8 06f0f6fe bl SomethingWithRadioStatus_4d1b8
| || 0x080463cc 0220 movs r0, 2 ; 2
| || 0x080463ce edf771fd bl OSTimeDly
| || 0x080463d2 dff85009 ldr.w r0, [0x08046d2a] ; [0x8046d28:4]=0x40020800 io_GPIOC
| || 0x080463d6 0088 ldrh r0, [r0]
| || 0x080463d8 0528 cmp r0, 5 ; 5
| `==< 0x080463da dad3 blo 0x8046392
| | 0x080463dc dff84409 ldr.w r0, [0x08046d28] ; [0x8046d28:4]=0x40020800 io_GPIOC
| | 0x080463e0 0021 movs r1, 0
| | 0x080463e2 0180 strh r1, [r0]
| | 0x080463e4 f7f7c5ff bl func_3e372
| | 0x080463e8 f7f73efb bl func_3da68
| | 0x080463ec f7f700fc bl func_3dbf0
| | 0x080463f0 f7f74efc bl func_3dc90
\ `=< 0x080463f4 cde7 b 0x8046392 ; end task 'Start()', never returns
/ (fcn) create_many_semas 298
| Caller: Start
| create_many_semas ();
| 0x080463f6 00b5 push {lr}
| 0x080463f8 85b0 sub sp, 0x14
| 0x080463fa 0020 movs r0, 0
| 0x080463fc eaf71cfe bl func_31038
| 0x08046400 dff84019 ldr.w r1, [0x08046d48] ; [0x8046d48:4]=0x80f9f08
| 0x08046404 0860 str r0, [r1]
| 0x08046406 03aa add r2, sp, 0xc
| 0x08046408 dff83c19 ldr.w r1, [0x08046d4c] ; [0x8046d4c:4]=0x2001e640 idle_control_struct
| 0x0804640c dff83409 ldr.w r0, [0x08046d48] ; [0x8046d48:4]=0x80f9f08
| 0x08046410 0068 ldr r0, [r0]
| 0x08046412 fdf741fd bl func_43e98
| 0x08046416 03a9 add r1, sp, 0xc
| 0x08046418 0020 movs r0, 0
| 0x0804641a 01f01bfd bl func_47e54
| 0x0804641e dff82c19 ldr.w r1, [0x08046d52] ; [0x8046d50:4]=0x2001e654
| 0x08046422 0860 str r0, [r1]
| 0x08046424 0020 movs r0, 0
| 0x08046426 eaf707fe bl func_31038
| 0x0804642a dff82419 ldr.w r1, [0x08046d56] ; [0x8046d54:4]=0x2001e644
| 0x0804642e 0860 str r0, [r1]
| 0x08046430 0020 movs r0, 0
| 0x08046432 f9f769f9 bl OSSemCreate
| 0x08046436 dff81c19 ldr.w r1, [0x08046d5a] ; [0x8046d58:4]=0x2001e64c sema_1e64c
| 0x0804643a 0860 str r0, [r1]
| 0x0804643c 0020 movs r0, 0
| 0x0804643e f9f763f9 bl OSSemCreate
| 0x08046442 dff81419 ldr.w r1, [0x08046d5e] ; [0x8046d5c:4]=0x2001e664 event3_mbox_poi
| 0x08046446 0860 str r0, [r1]
| 0x08046448 0020 movs r0, 0
| 0x0804644a eaf7f5fd bl func_31038
| 0x0804644e dff80c19 ldr.w r1, [0x08046d62] ; [0x8046d60:4]=0x2001e674
| 0x08046452 0860 str r0, [r1]
| 0x08046454 0020 movs r0, 0
| 0x08046456 eaf7effd bl func_31038
| 0x0804645a dff80419 ldr.w r1, [0x08046d66] ; [0x8046d64:4]=0x2001e678
| 0x0804645e 0860 str r0, [r1]
| 0x08046460 0020 movs r0, 0
| 0x08046462 eaf7e9fd bl func_31038
| 0x08046466 dff8fc18 ldr.w r1, [0x08046d6a] ; [0x8046d68:4]=0x2001e668
| 0x0804646a 0860 str r0, [r1]
| 0x0804646c 0020 movs r0, 0
| 0x0804646e eaf7e3fd bl func_31038
| 0x08046472 dff8c018 ldr.w r1, [0x08046d3a] ; [0x8046d38:4]=0x2001e960
| 0x08046476 0860 str r0, [r1]
| 0x08046478 0120 movs r0, 1 ; 1
| 0x0804647a f9f745f9 bl OSSemCreate
| 0x0804647e dff8e818 ldr.w r1, [0x08046d6e] ; [0x8046d6c:4]=0x2001e66c
| 0x08046482 0860 str r0, [r1]
| 0x08046484 0120 movs r0, 1 ; 1
| 0x08046486 f9f73ff9 bl OSSemCreate
| 0x0804648a dff8e018 ldr.w r1, [0x08046d72] ; [0x8046d70:4]=0x2001e670 sema2_poi
| 0x0804648e 0860 str r0, [r1]
| 0x08046490 0120 movs r0, 1 ; 1
| 0x08046492 f9f739f9 bl OSSemCreate
| 0x08046496 dff8d818 ldr.w r1, [0x08046d76] ; [0x8046d74:4]=0x2001e648 sema_1e648
| 0x0804649a 0860 str r0, [r1]
| 0x0804649c 0020 movs r0, 0
| 0x0804649e f9f733f9 bl OSSemCreate
| 0x080464a2 dff8d018 ldr.w r1, [0x08046d7a] ; [0x8046d78:4]=0x2001e650 sema1_poi
| 0x080464a6 0860 str r0, [r1]
| 0x080464a8 0020 movs r0, 0
| 0x080464aa f9f72df9 bl OSSemCreate
| 0x080464ae dff8c818 ldr.w r1, [0x08046d7e] ; [0x8046d7c:4]=0x2001e658 event5_mbox_poi
| 0x080464b2 0860 str r0, [r1]
| 0x080464b4 0020 movs r0, 0
| 0x080464b6 eaf7bffd bl func_31038
| 0x080464ba dff8c018 ldr.w r1, [0x08046d82] ; [0x8046d80:4]=0x2001e660 event4_mbox_poi
| 0x080464be 0860 str r0, [r1]
| 0x080464c0 0020 movs r0, 0
| 0x080464c2 eaf7b9fd bl func_31038
| 0x080464c6 dff8b818 ldr.w r1, [0x08046d86] ; [0x8046d84:4]=0x2001e65c event1_mbox_poi_radio
| 0x080464ca 0860 str r0, [r1]
| 0x080464cc 0020 movs r0, 0
| 0x080464ce eaf7b3fd bl func_31038
| 0x080464d2 dff8b018 ldr.w r1, [0x08046d8a] ; [0x8046d88:4]=0x8034155
| 0x080464d6 0860 str r0, [r1]
| 0x080464d8 03a8 add r0, sp, 0xc
| 0x080464da 0290 str r0, [sp, 8]
| 0x080464dc 0020 movs r0, 0
| 0x080464de 0190 str r0, [sp, 4]
| 0x080464e0 0020 movs r0, 0
| 0x080464e2 0090 str r0, [sp]
| 0x080464e4 dff8a038 ldr.w r3, [0x08046d8c] ; [0x8046d8c:4]=0x2001e680
| 0x080464e8 0122 movs r2, 1 ; 1
| 0x080464ea 4621 movs r1, 0x46 ; 'F' ; 70
| 0x080464ec 4620 movs r0, 0x46 ; 'F' ; 70
| 0x080464ee 05f021f8 bl func_4b534
| 0x080464f2 dff89818 ldr.w r1, [0x08046d92] ; [0x8046d90:4]=0x80341b5
| 0x080464f6 0860 str r0, [r1]
| 0x080464f8 03a8 add r0, sp, 0xc
| 0x080464fa 0290 str r0, [sp, 8]
| 0x080464fc 0020 movs r0, 0
| 0x080464fe 0190 str r0, [sp, 4]
| 0x08046500 0020 movs r0, 0
| 0x08046502 0090 str r0, [sp]
| 0x08046504 dff88838 ldr.w r3, [0x08046d94] ; [0x8046d94:4]=0x10009da8
| 0x08046508 0122 movs r2, 1 ; 1
| 0x0804650a 47f23051 movw r1, 0x7530
| 0x0804650e 47f23050 movw r0, 0x7530
| 0x08046512 05f00ff8 bl func_4b534
| 0x08046516 dff81c1d ldr.w r1, [0x0804723a] ; [0x8047238:4]=0x200152b8
| 0x0804651a 0860 str r0, [r1]
| 0x0804651c 05b0 add sp, 0x14
\ 0x0804651e 00bd pop {pc}
/ (fcn) Start_multiple_tasks 684
| Caller: Start
| Start_multiple_tasks ();
| 0x08046520 00b5 push {lr}
| 0x08046522 87b0 sub sp, 0x1c
| 0x08046524 0320 movs r0, 3 ; 3
| 0x08046526 0490 str r0, [sp, 0x10]
| 0x08046528 0020 movs r0, 0
| 0x0804652a 0390 str r0, [sp, 0xc]
| 0x0804652c 4ff40070 mov.w r0, 0x200 ; 512
| 0x08046530 0290 str r0, [sp, 8]
| 0x08046532 dff86008 ldr.w r0, [0x08046d9a] ; [0x8046d98:4]=0x1000a5a4
| 0x08046536 0190 str r0, [sp, 4]
| 0x08046538 0620 movs r0, 6 ; 6
| 0x0804653a 0090 str r0, [sp]
| 0x0804653c 0623 movs r3, 6 ; 6
| 0x0804653e dff85828 ldr.w r2, [0x08046d9e] ; [0x8046d9c:4]=0x803f8a1
| 0x08046542 0021 movs r1, 0
| 0x08046544 dff85408 ldr.w r0, [0x08046da0] ; [0x8046da0:4]=0x80f9f14
| ;-- create_Sys_Inter:
| 0x08046548 08f01af8 bl OSTaskCreateExt
| 0x0804654c 05aa add r2, sp, 0x14
| 0x0804654e dff85018 ldr.w r1, [0x08046da6] ; [0x8046da4:4]=0x20014ab8
| 0x08046552 0620 movs r0, 6 ; 6
| 0x08046554 08f07af8 bl OSTaskNameSet
| 0x08046558 0320 movs r0, 3 ; 3
| 0x0804655a 0490 str r0, [sp, 0x10]
| 0x0804655c 0020 movs r0, 0
| 0x0804655e 0390 str r0, [sp, 0xc]
| 0x08046560 4ff40070 mov.w r0, 0x200 ; 512
| 0x08046564 0290 str r0, [sp, 8]
| 0x08046566 dff83c08 ldr.w r0, [0x08046daa] ; [0x8046da8:4]=0x200152b4
| 0x0804656a 0190 str r0, [sp, 4]
| 0x0804656c 1320 movs r0, 0x13 ; 19
| 0x0804656e 0090 str r0, [sp]
| 0x08046570 1323 movs r3, 0x13 ; 19
| 0x08046572 dff83428 ldr.w r2, [0x08046dae] ; [0x8046dac:4]=0x80f9f20 string_RTC_Timer
| 0x08046576 0021 movs r1, 0
| 0x08046578 0ff25120 addw r0, pc, 0x251
| ;-- create_RTC_Timer:
| 0x0804657c 08f000f8 bl OSTaskCreateExt
| 0x08046580 05aa add r2, sp, 0x14
| 0x08046582 dff82818 ldr.w r1, [0x08046db2] ; [0x8046db0:4]=0x1000a5a8
| 0x08046586 1320 movs r0, 0x13 ; 19
| 0x08046588 08f060f8 bl OSTaskNameSet
| 0x0804658c 0320 movs r0, 3 ; 3
| 0x0804658e 0490 str r0, [sp, 0x10]
| 0x08046590 0020 movs r0, 0
| 0x08046592 0390 str r0, [sp, 0xc]
| 0x08046594 4ff40070 mov.w r0, 0x200 ; 512
| 0x08046598 0290 str r0, [sp, 8]
| 0x0804659a dff81408 ldr.w r0, [0x08046db6] ; [0x8046db4:4]=0x1000ada4
| 0x0804659e 0190 str r0, [sp, 4]
| 0x080465a0 1020 movs r0, 0x10 ; 16
| 0x080465a2 0090 str r0, [sp]
| 0x080465a4 1023 movs r3, 0x10 ; 16
| 0x080465a6 dff80c28 ldr.w r2, [0x08046dba] ; [0x8046db8:4]=0x803b8d9
| 0x080465aa 0021 movs r1, 0
| 0x080465ac dff80808 ldr.w r0, [0x08046dbc] ; [0x8046dbc:4]=0x80f8f74 s_Call_Process
| 0x080465b0 07f0e6ff bl OSTaskCreateExt
| 0x080465b4 05aa add r2, sp, 0x14
| 0x080465b6 dff80418 ldr.w r1, [0x08046dc2] ; [0x8046dc0:4]=0xf44fb5e0
| 0x080465ba 1020 movs r0, 0x10 ; 16
| 0x080465bc 08f046f8 bl OSTaskNameSet
| 0x080465c0 0320 movs r0, 3 ; 3
| 0x080465c2 0490 str r0, [sp, 0x10]
| 0x080465c4 0020 movs r0, 0
| 0x080465c6 0390 str r0, [sp, 0xc]
| 0x080465c8 4ff40070 mov.w r0, 0x200 ; 512
| 0x080465cc 0290 str r0, [sp, 8]
| 0x080465ce dff8680c ldr.w r0, [0x0804723e] ; [0x804723c:4]=0x20015ab4
| 0x080465d2 0190 str r0, [sp, 4]
| 0x080465d4 1120 movs r0, 0x11 ; 17
| 0x080465d6 0090 str r0, [sp]
| 0x080465d8 1123 movs r3, 0x11 ; 17
| 0x080465da dff8602c ldr.w r2, [0x08047242] ; [0x8047240:4]=0x80f8f84 s_TimeSlot_Inter
| 0x080465de 0021 movs r1, 0
| 0x080465e0 0ff21530 addw r0, pc, 0x315
| 0x080465e4 07f0ccff bl OSTaskCreateExt
| 0x080465e8 05aa add r2, sp, 0x14
| 0x080465ea dff8541c ldr.w r1, [0x08047246] ; [0x8047244:4]=0x20019274
| 0x080465ee 1120 movs r0, 0x11 ; 17
| 0x080465f0 08f02cf8 bl OSTaskNameSet
| 0x080465f4 0320 movs r0, 3 ; 3
| 0x080465f6 0490 str r0, [sp, 0x10]
| 0x080465f8 0020 movs r0, 0
| 0x080465fa 0390 str r0, [sp, 0xc]
| 0x080465fc 4ff48070 mov.w r0, 0x100 ; 256
| 0x08046600 0290 str r0, [sp, 8]
| 0x08046602 dff8400c ldr.w r0, [0x0804724a] ; [0x8047248:4]=0x20019670
| 0x08046606 0190 str r0, [sp, 4]
| 0x08046608 0520 movs r0, 5 ; 5
| 0x0804660a 0090 str r0, [sp]
| 0x0804660c 0523 movs r3, 5 ; 5
| 0x0804660e dff8382c ldr.w r2, [0x0804724e] ; [0x804724c:4]=0x80fbdb0
| 0x08046612 0021 movs r1, 0
| 0x08046614 0ff2c150 addw r0, pc, 0x5c1
| 0x08046618 07f0b2ff bl OSTaskCreateExt
| 0x0804661c 05aa add r2, sp, 0x14
| 0x0804661e dff82c1c ldr.w r1, [0x08047252] ; [0x8047250:4]=0x20015ab8
| 0x08046622 0520 movs r0, 5 ; 5
| 0x08046624 08f012f8 bl OSTaskNameSet
| 0x08046628 0320 movs r0, 3 ; 3
| 0x0804662a 0490 str r0, [sp, 0x10]
| 0x0804662c 0020 movs r0, 0
| 0x0804662e 0390 str r0, [sp, 0xc]
| 0x08046630 4ff40070 mov.w r0, 0x200 ; 512
| 0x08046634 0290 str r0, [sp, 8]
| 0x08046636 dff8180c ldr.w r0, [0x08047256] ; [0x8047254:4]=0x200162b4
| 0x0804663a 0190 str r0, [sp, 4]
| 0x0804663c 1420 movs r0, 0x14 ; 20
| 0x0804663e 0090 str r0, [sp]
| 0x08046640 1423 movs r3, 0x14 ; 20
| 0x08046642 dff8102c ldr.w r2, [0x0804725a] ; [0x8047258:4]=0x80fbdb8
| 0x08046646 0021 movs r1, 0
| 0x08046648 0ff2a550 addw r0, pc, 0x5a5
| 0x0804664c 07f098ff bl OSTaskCreateExt
| 0x08046650 05aa add r2, sp, 0x14
| 0x08046652 dff8041c ldr.w r1, [0x0804725e] ; [0x804725c:4]=0x20019674
| 0x08046656 1420 movs r0, 0x14 ; 20
| 0x08046658 07f0f8ff bl OSTaskNameSet
| 0x0804665c 0320 movs r0, 3 ; 3
| 0x0804665e 0490 str r0, [sp, 0x10]
| 0x08046660 0020 movs r0, 0
| 0x08046662 0390 str r0, [sp, 0xc]
| 0x08046664 4ff48070 mov.w r0, 0x100 ; 256
| 0x08046668 0290 str r0, [sp, 8]
| 0x0804666a dff8f00b ldr.w r0, [0x08047262] ; [0x8047260:4]=0x20019a70
| 0x0804666e 0190 str r0, [sp, 4]
| 0x08046670 1520 movs r0, 0x15 ; 21
| 0x08046672 0090 str r0, [sp]
| 0x08046674 1523 movs r3, 0x15 ; 21
| 0x08046676 dff8e82b ldr.w r2, [0x08047266] ; [0x8047264:4]=0x8095519 ; Thumb-addr LED_Process
| 0x0804667a 0021 movs r1, 0
| 0x0804667c dff8e40b ldr.w r0, [0x08047268] ; [0x8047268:4]=0x80f9f2c string_LED_Process
| 0x08046680 07f07eff bl OSTaskCreateExt
| 0x08046684 05aa add r2, sp, 0x14
| 0x08046686 dff8e01b ldr.w r1, [0x0804726e] ; [0x804726c:4]=0x20019a74
| 0x0804668a 1520 movs r0, 0x15 ; 21
| 0x0804668c 07f0deff bl OSTaskNameSet
| 0x08046690 0320 movs r0, 3 ; 3
| 0x08046692 0490 str r0, [sp, 0x10]
| 0x08046694 0020 movs r0, 0
| 0x08046696 0390 str r0, [sp, 0xc]
| 0x08046698 4ff48070 mov.w r0, 0x100 ; 256
| 0x0804669c 0290 str r0, [sp, 8]
| 0x0804669e dff8cc0b ldr.w r0, [0x08047272] ; [0x8047270:4]=0x20019e70
| 0x080466a2 0190 str r0, [sp, 4]
| 0x080466a4 1620 movs r0, 0x16 ; 22
| 0x080466a6 0090 str r0, [sp]
| 0x080466a8 1623 movs r3, 0x16 ; 22
| 0x080466aa dff8c42b ldr.w r2, [0x08047276] ; [0x8047274:4]=0x802f9dd
| 0x080466ae 0021 movs r1, 0
| 0x080466b0 dff8c00b ldr.w r0, [0x08047278] ; [0x8047278:4]=0x80f8f94 s_Beep_Process
| 0x080466b4 07f064ff bl OSTaskCreateExt
| 0x080466b8 05aa add r2, sp, 0x14
| 0x080466ba dff8bc1b ldr.w r1, [0x0804727e] ; [0x804727c:4]=0x20019e74
| 0x080466be 1620 movs r0, 0x16 ; 22
| 0x080466c0 07f0c4ff bl OSTaskNameSet
| 0x080466c4 0320 movs r0, 3 ; 3
| 0x080466c6 0490 str r0, [sp, 0x10]
| 0x080466c8 0020 movs r0, 0
| 0x080466ca 0390 str r0, [sp, 0xc]
| 0x080466cc 4ff48070 mov.w r0, 0x100 ; 256
| 0x080466d0 0290 str r0, [sp, 8]
| 0x080466d2 dff8a80b ldr.w r0, [0x08047282] ; [0x8047280:4]=0x2001a270
| 0x080466d6 0190 str r0, [sp, 4]
| 0x080466d8 1720 movs r0, 0x17 ; 23
| 0x080466da 0090 str r0, [sp]
| 0x080466dc 1723 movs r3, 0x17 ; 23
| 0x080466de dff8a02b ldr.w r2, [0x08047286] ; [0x8047284:4]=0x8030ba1
| 0x080466e2 0021 movs r1, 0
| 0x080466e4 dff89c0b ldr.w r0, [0x08047288] ; [0x8047288:4]=0x80fbdc0
| 0x080466e8 07f04aff bl OSTaskCreateExt
| 0x080466ec 05aa add r2, sp, 0x14
| 0x080466ee dff8981b ldr.w r1, [0x0804728e] ; [0x804728c:4]=0x200162b8
| 0x080466f2 1720 movs r0, 0x17 ; 23
| 0x080466f4 07f0aaff bl OSTaskNameSet
| 0x080466f8 0320 movs r0, 3 ; 3
| 0x080466fa 0490 str r0, [sp, 0x10]
| 0x080466fc 0020 movs r0, 0
| 0x080466fe 0390 str r0, [sp, 0xc]
| 0x08046700 4ff40070 mov.w r0, 0x200 ; 512
| 0x08046704 0290 str r0, [sp, 8]
| 0x08046706 dff8840b ldr.w r0, [0x08047292] ; [0x8047290:4]=0x20016ab4
| 0x0804670a 0190 str r0, [sp, 4]
| 0x0804670c 0720 movs r0, 7 ; 7
| 0x0804670e 0090 str r0, [sp]
| 0x08046710 0723 movs r3, 7 ; 7
| 0x08046712 dff87c2b ldr.w r2, [0x08047296] ; [0x8047294:4]=0x803f8bf
| 0x08046716 0021 movs r1, 0
| 0x08046718 dff8780b ldr.w r0, [0x08047298] ; [0x8047298:4]=0x80f8fa4
| 0x0804671c 07f030ff bl OSTaskCreateExt
| 0x08046720 05aa add r2, sp, 0x14
| 0x08046722 dff8741b ldr.w r1, [0x0804729e] ; [0x804729c:4]=0xb097b500
| 0x08046726 0720 movs r0, 7 ; 7
| 0x08046728 07f090ff bl OSTaskNameSet
| 0x0804672c 0320 movs r0, 3 ; 3
| 0x0804672e 0490 str r0, [sp, 0x10]
| 0x08046730 0020 movs r0, 0
| 0x08046732 0390 str r0, [sp, 0xc]
| 0x08046734 4ff48070 mov.w r0, 0x100 ; 256
| 0x08046738 0290 str r0, [sp, 8]
| 0x0804673a dff8400d ldr.w r0, [0x08047482] ; [0x8047480:4]=0x2001a670
| 0x0804673e 0190 str r0, [sp, 4]
| 0x08046740 0d20 movs r0, 0xd ; 13
| 0x08046742 0090 str r0, [sp]
| 0x08046744 0d23 movs r3, 0xd ; 13
| 0x08046746 dff8382d ldr.w r2, [0x08047486] ; [0x8047484:4]=0x8030d21
| 0x0804674a 0021 movs r1, 0
| 0x0804674c dff8340d ldr.w r0, [0x08047488] ; [0x8047488:4]=0x80f9f38 string_Set_Vocoder
| 0x08046750 07f016ff bl OSTaskCreateExt
| 0x08046754 05aa add r2, sp, 0x14
| 0x08046756 dff8301d ldr.w r1, [0x0804748e] ; [0x804748c:4]=0x2001a674
| 0x0804675a 0d20 movs r0, 0xd ; 13
| 0x0804675c 07f076ff bl OSTaskNameSet
| 0x08046760 0320 movs r0, 3 ; 3
| 0x08046762 0490 str r0, [sp, 0x10]
| 0x08046764 0020 movs r0, 0
| 0x08046766 0390 str r0, [sp, 0xc]
| 0x08046768 4ff48070 mov.w r0, 0x100 ; 256
| 0x0804676c 0290 str r0, [sp, 8]
| 0x0804676e dff81c0d ldr.w r0, [0x08047492] ; [0x8047490:4]=0x2001aa70
| 0x08046772 0190 str r0, [sp, 4]
| 0x08046774 0e20 movs r0, 0xe ; 14
| 0x08046776 0090 str r0, [sp]
| 0x08046778 0e23 movs r3, 0xe ; 14
| 0x0804677a dff8142d ldr.w r2, [0x08047496] ; [0x8047494:4]=0x803c7c5
| 0x0804677e 0021 movs r1, 0
| 0x08046780 dff8100d ldr.w r0, [0x08047498] ; [0x8047498:4]=0x80f9f44 string_ChAccess_Pr
| 0x08046784 07f0fcfe bl OSTaskCreateExt
| 0x08046788 05aa add r2, sp, 0x14
| ;-- create_ChAccess_Pr:
| 0x0804678a dff80c1d ldr.w r1, [0x0804749e] ; [0x804749c:4]=0x2001aa74
| 0x0804678e 0e20 movs r0, 0xe ; 14
| 0x08046790 07f05cff bl OSTaskNameSet
| 0x08046794 0320 movs r0, 3 ; 3
| 0x08046796 0490 str r0, [sp, 0x10]
| 0x08046798 0020 movs r0, 0
| 0x0804679a 0390 str r0, [sp, 0xc]
| 0x0804679c 4ff48070 mov.w r0, 0x100 ; 256
| 0x080467a0 0290 str r0, [sp, 8]
| 0x080467a2 dff8f80c ldr.w r0, [0x080474a2] ; [0x80474a0:4]=0xf44fb580
| 0x080467a6 0190 str r0, [sp, 4]
| 0x080467a8 0f20 movs r0, 0xf ; 15
| 0x080467aa 0090 str r0, [sp]
| 0x080467ac 0f23 movs r3, 0xf ; 15
| 0x080467ae dff85c2d ldr.w r2, [0x08047512] ; [0x8047510:4]=0x803c331
| 0x080467b2 0021 movs r1, 0
| 0x080467b4 dff8580d ldr.w r0, [0x08047514] ; [0x8047514:4]=0x80f8510 welcomebmp
| ;-- create_State_Change:
| 0x080467b8 07f0e2fe bl OSTaskCreateExt
| 0x080467bc 05aa add r2, sp, 0x14
| 0x080467be dff8bc1d ldr.w r1, [0x08047582] ; [0x8047580:4]=0x2001e410 botlinetext
| 0x080467c2 0f20 movs r0, 0xf ; 15
| 0x080467c4 07f042ff bl OSTaskNameSet
| 0x080467c8 07b0 add sp, 0x1c
\ 0x080467ca 00bd pop {pc}
/ (fcn) task_rtc_timer 300
| task_rtc_timer ();
| 0x080467cc 84b0 sub sp, 0x10
| 0x080467ce dff85c05 ldr.w r0, [0x08046d32] ; [0x8046d30:4]=0x2001e8a8 beep_code_send
| 0x080467d2 8078 ldrb r0, [r0, 2]
| 0x080467d4 c0f30010 ubfx r0, r0, 4, 1
| 0x080467d8 c007 lsls r0, r0, 0x1f
| ,=< 0x080467da 06d5 bpl 0x80467ea
| | 0x080467dc 2822 movs r2, 0x28 ; '(' ; 40
| | 0x080467de 0021 movs r1, 0
| | 0x080467e0 dff8300d ldr.w r0, [adc3_init] ; [0x8047518:4]=0xb08bb500
| | 0x080467e4 ddf70bf8 bl gfx_drawbmp
| ,==< 0x080467e8 19e0 b 0x804681e
| |`-> 0x080467ea dbf769ff bl Get_Welcome_Line1_from_spi_flash
| | 0x080467ee dbf770ff bl Get_Welcome_Line2_from_spi_flash
| | 0x080467f2 0a20 movs r0, 0xa ; 10
| | 0x080467f4 0190 str r0, [sp, 4]
| | 0x080467f6 4220 movs r0, 0x42 ; 'B' ; 66
| | 0x080467f8 0090 str r0, [sp]
| | ;-- draw_topline_text_maybe:
| | 0x080467fa a023 movs r3, 0xa0 ; 160
| | 0x080467fc 0022 movs r2, 0
| | 0x080467fe 0021 movs r1, 0
| | 0x08046800 dff8740d ldr.w r0, [0x0804757c] ; [0x804757c:4]=0x80f8fb4 s_State_Change
| | 0x08046804 c7f777fb bl gfx_drawtext
| | 0x08046808 0a20 movs r0, 0xa ; 10
| | 0x0804680a 0190 str r0, [sp, 4]
| | 0x0804680c 4220 movs r0, 0x42 ; 'B' ; 66
| | 0x0804680e 0090 str r0, [sp]
| | ;-- draw_botline_text:
| | 0x08046810 a023 movs r3, 0xa0 ; 160
| | 0x08046812 3222 movs r2, 0x32 ; '2' ; 50
| | 0x08046814 0021 movs r1, 0
| | 0x08046816 dff8680d ldr.w r0, [0x08047586] ; [0x8047584:4]=0x2001e5f0 radio_status_1
| | 0x0804681a c7f76cfb bl gfx_drawtext
| `--> 0x0804681e 08f0edf9 bl check_for_ptt_switch
| 0x08046822 08f0b5fa bl something_polling_kb_keypressed
| 0x08046826 08f0d4fa bl keypress_time_related_1
| 0x0804682a 08f0fcfb bl something_setting_keypress_lower_button
| 0x0804682e 08f00efd bl more_setting_keypress_lower_button
| 0x08046832 08f026fe bl something_using_menu_depth
| 0x08046836 08f026ff bl dummy_4f686
| 0x0804683a 08f026ff bl func_4f68a_polls_EXT_PTT
| 0x0804683e 09f0f1f9 bl func_4fc24_dummy
| 0x08046842 09f0f1f9 bl dummy_4fc28
| 0x08046846 09f0f1f9 bl dummy_4fc2c
| 0x0804684a 09f0f1f9 bl func_4fc30_dummy
| 0x0804684e dff8340d ldr.w r0, [0x0804758a] ; [0x8047588:4]=0x2001e895 msg_sms_flags_shifted
| 0x08046852 0078 ldrb r0, [r0]
| 0x08046854 10f07f00 ands r0, r0, 0x7f
| 0x08046858 dff8281d ldr.w r1, [0x08047588] ; [0x8047588:4]=0x2001e895 msg_sms_flags_shifted
| 0x0804685c 0870 strb r0, [r1]
| 0x0804685e 09f095fa bl Something_using_Channel_Number
| 0x08046862 dff8b804 ldr.w r0, [0x08046d22] ; [0x8046d20:4]=0x2001e5d0 msg_timer_500
| 0x08046866 0121 movs r1, 1 ; 1
| 0x08046868 0170 strb r1, [r0]
| 0x0804686a dff81c0d ldr.w r0, [0x0804758e] ; [0x804758c:4]=0x2001e893
| 0x0804686e 0021 movs r1, 0
| 0x08046870 0170 strb r1, [r0]
| 0x08046872 ebf753fb bl func_31f1c
| 0x08046876 dff8140d ldr.w r0, [0x08047592] ; [0x8047590:4]=0x2001e94b gui_opmode2
| 0x0804687a 0421 movs r1, 4 ; 4
| 0x0804687c 0170 strb r1, [r0]
| 0x0804687e dff8a004 ldr.w r0, [0x08046d26] ; [0x8046d24:4]=0x2001e7c8
| 0x08046882 4ff4fa71 mov.w r1, 0x1f4 ; 500
| 0x08046886 0160 str r1, [r0]
| 0x08046888 4ff47a70 mov.w r0, 0x3e8 ; 1000
| 0x0804688c edf712fb bl OSTimeDly
| 0x08046890 4ff47a70 mov.w r0, 0x3e8 ; 1000
| 0x08046894 edf70efb bl OSTimeDly
| 0x08046898 edf76efa bl gfx_write_pixel_2
| 0x0804689c dff8f00c ldr.w r0, [0x08047594] ; [0x8047594:4]=0x40020000 io_GPIOA
| 0x080468a0 0021 movs r1, 0
| 0x080468a2 0170 strb r1, [r0]
| 0x080468a4 8021 movs r1, 0x80 ; 128
| 0x080468a6 dff8ec0c ldr.w r0, [0x0804759a] ; [0x8047598:4]=0x2001e510
| 0x080468aa e4f7aeff bl GPIO_SetBits
| .-> ;-- mainloop_entry:
| .-> 0x080468ae 02a8 add r0, sp, 8
| | 0x080468b0 0090 str r0, [sp]
| | 0x080468b2 0023 movs r3, 0
| | 0x080468b4 8222 movs r2, 0x82 ; 130
| | 0x080468b6 0121 movs r1, 1 ; 1
| | 0x080468b8 dff89004 ldr.w r0, [0x08046d50] ; [0x8046d50:4]=0x2001e654
| | 0x080468bc 0068 ldr r0, [r0]
| | 0x080468be 01f0f9fa bl func_47eb4
| | 0x080468c2 ebf706fd bl func_322d2
| | 0x080468c6 08f04df9 bl biglist_pollsubsys_maybe
| | 0x080468ca 09f01bfa bl CallsReadChannelSwitch
| | 0x080468ce e5f7b5ff bl md380_f_4520
| | 0x080468d2 c6f7e3fe bl disp_something
| | 0x080468d6 dff8c01c ldr.w r1, [0x0804759e] ; [0x804759c:4]=0x2001e100
| | 0x080468da 0220 movs r0, 2 ; 2
| | 0x080468dc f0f76efb bl do_nothing_2
| | 0x080468e0 3220 movs r0, 0x32 ; '2' ; 50
| | 0x080468e2 d7f787fe bl paint_a_lot
| | ;-- call_F_4225_2:
| | 0x080468e6 d9f7b9fa bl f_4225
| | 0x080468ea f1f7f3fd bl func_384d4
| | 0x080468ee ebf722fe bl func_32536
| | 0x080468f2 09f07ffa bl FeedTheWatchdog
| `=< ;-- jmp_to_mainloop:
\ `=< 0x080468f6 dae7 b 0x80468ae
/ (fcn) task_468f8 780
| task_468f8 ();
| 0x080468f8 82b0 sub sp, 8
| ,=< 0x080468fa 26e0 b 0x804694a
| .--> 0x080468fc 0120 movs r0, 1 ; 1
| || 0x080468fe dcf7d7fb bl func_230b0_spiflash_rd_17
| || 0x08046902 dff8980c ldr.w r0, [0x080475a2] ; [0x80475a0:4]=0x2001e5fc
| || 0x08046906 007a ldrb r0, [r0, 8]
| || 0x08046908 10f0f300 ands r0, r0, 0xf3
| || 0x0804690c dff88c1c ldr.w r1, [0x080475a0] ; [0x80475a0:4]=0x2001e5fc
| || 0x08046910 0872 strb r0, [r1, 8]
| ..---> 0x08046912 dff88c0c ldr.w r0, [0x080475a6] ; [0x80475a4:4]=0x2001e8e3
| |||| 0x08046916 0078 ldrb r0, [r0]
| |||| 0x08046918 c0f3c000 ubfx r0, r0, 3, 1
| |||| 0x0804691c c007 lsls r0, r0, 0x1f
| ,=====< 0x0804691e 12d5 bpl 0x8046946
| ||||| 0x08046920 dff87c0c ldr.w r0, [0x080475a4] ; [0x80475a4:4]=0x2001e8e3
| ||||| 0x08046924 0078 ldrb r0, [r0]
| ||||| 0x08046926 10f0f700 ands r0, r0, 0xf7
| ||||| 0x0804692a dff8741c ldr.w r1, [0x080475a6] ; [0x80475a4:4]=0x2001e8e3
| ||||| 0x0804692e 0870 strb r0, [r1]
| ||||| 0x08046930 dff8fc03 ldr.w r0, [0x08046d34] ; [0x8046d34:4]=0x2001e67c event2_mbox_poi_beep
| ||||| 0x08046934 0e21 movs r1, 0xe ; 14
| ||||| 0x08046936 0170 strb r1, [r0]
| ||||| 0x08046938 dff8f413 ldr.w r1, [0x08046d34] ; [0x8046d34:4]=0x2001e67c event2_mbox_poi_beep
| ||||| 0x0804693c dff8f403 ldr.w r0, [0x08046d38] ; [0x8046d38:4]=0x2001e960
| ||||| 0x08046940 0068 ldr r0, [r0]
| ||||| 0x08046942 eaf72bfc bl md380_OSMboxPost
| `-----> 0x08046946 f6f72bfe bl func_3d5a0
| |||`-> 0x0804694a 01a8 add r0, sp, 4
| ||| 0x0804694c 0090 str r0, [sp]
| ||| 0x0804694e 0023 movs r3, 0
| ||| 0x08046950 8222 movs r2, 0x82 ; 130
| ||| 0x08046952 0421 movs r1, 4 ; 4
| ||| 0x08046954 dff8f403 ldr.w r0, [0x08046d50] ; [0x8046d50:4]=0x2001e654
| ||| 0x08046958 0068 ldr r0, [r0]
| ||| 0x0804695a 01f0abfa bl func_47eb4
| ||| 0x0804695e 01f0aaf8 bl func_47ab6
| ||| 0x08046962 0220 movs r0, 2 ; 2
| ||| 0x08046964 edf7a6fa bl OSTimeDly
| ||| 0x08046968 01f020f9 bl TimerIRQ_Sub1
| ||| 0x0804696c dff8340c ldr.w r0, [0x080475a8] ; [0x80475a8:4]=0x2001e8ed
| ||| 0x08046970 0078 ldrb r0, [r0]
| ||| 0x08046972 0128 cmp r0, 1 ; 1
| |||,=< 0x08046974 09d0 beq 0x804698a
| |||| 0x08046976 dff82c0c ldr.w r0, [0x080475aa] ; [0x80475a8:4]=0x2001e8ed
| |||| 0x0804697a 0078 ldrb r0, [r0]
| |||| 0x0804697c 0228 cmp r0, 2 ; 2
| ,=====< 0x0804697e 04d0 beq 0x804698a
| ||||| 0x08046980 dff8200c ldr.w r0, [0x080475a8] ; [0x80475a8:4]=0x2001e8ed
| ||||| 0x08046984 0078 ldrb r0, [r0]
| ||||| 0x08046986 0328 cmp r0, 3 ; 3
| ,======< 0x08046988 3ad1 bne 0x8046a00
| |`---`-> 0x0804698a dff81c0c ldr.w r0, [0x080475ae] ; [0x80475ac:4]=0x2001e4b4
| | ||| 0x0804698e 0078 ldrb r0, [r0]
| | ||| 0x08046990 0128 cmp r0, 1 ; 1
| | |||,=< 0x08046992 12d1 bne 0x80469ba
| | |||| 0x08046994 dff8140c ldr.w r0, [0x080475b0] ; [0x80475b0:4]=0x2001e4b5
| | |||| 0x08046998 0078 ldrb r0, [r0]
| | |||| 0x0804699a 401e subs r0, r0, 1
| | |||| 0x0804699c c0b2 uxtb r0, r0
| | |||| 0x0804699e 1e28 cmp r0, 0x1e ; 30
| |,=====< 0x080469a0 0bd2 bhs 0x80469ba
| |||||| 0x080469a2 dff8040c ldr.w r0, [0x080475ae] ; [0x80475ac:4]=0x2001e4b4
| |||||| 0x080469a6 0221 movs r1, 2 ; 2
| |||||| 0x080469a8 0170 strb r1, [r0]
| |||||| 0x080469aa dff8041c ldr.w r1, [0x080475b6] ; [0x80475b4:4]=0x2001e111
| |||||| 0x080469ae dff8fc0b ldr.w r0, [0x080475b2] ; [0x80475b0:4]=0x2001e4b5
| |||||| 0x080469b2 0078 ldrb r0, [r0]
| |||||| 0x080469b4 eaf75efa bl func_30e74
| ,=======< 0x080469b8 39e0 b 0x8046a2e
| ||`---`-> 0x080469ba dff8e00b ldr.w r0, [0x080475a2] ; [0x80475a0:4]=0x2001e5fc
| || ||| 0x080469be 007a ldrb r0, [r0, 8]
| || ||| 0x080469c0 c0f38100 ubfx r0, r0, 2, 2
| || ||| 0x080469c4 c0b2 uxtb r0, r0
| || ||| 0x080469c6 0128 cmp r0, 1 ; 1
| || |||,=< 0x080469c8 07d0 beq 0x80469da
| || |||| 0x080469ca dff8d00b ldr.w r0, [0x080475a2] ; [0x80475a0:4]=0x2001e5fc
| || |||| 0x080469ce 007a ldrb r0, [r0, 8]
| || |||| 0x080469d0 c0f38100 ubfx r0, r0, 2, 2
| || |||| 0x080469d4 c0b2 uxtb r0, r0
| || |||| 0x080469d6 0328 cmp r0, 3 ; 3
| ||,=====< 0x080469d8 29d1 bne 0x8046a2e
| ||||||`-> 0x080469da dff8c00b ldr.w r0, [0x080475a2] ; [0x80475a0:4]=0x2001e5fc
| |||||| 0x080469de 007c ldrb r0, [r0, 0x10]
| |||||| 0x080469e0 401e subs r0, r0, 1
| |||||| 0x080469e2 c0b2 uxtb r0, r0
| |||||| 0x080469e4 1e28 cmp r0, 0x1e ; 30
| ||||||,=< 0x080469e6 22d2 bhs 0x8046a2e
| ||||||| 0x080469e8 dff8bc0b ldr.w r0, [0x080475ac] ; [0x80475ac:4]=0x2001e4b4
| ||||||| 0x080469ec 0221 movs r1, 2 ; 2
| ||||||| 0x080469ee 0170 strb r1, [r0]
| ||||||| 0x080469f0 dff8c01b ldr.w r1, [func_475b8] ; [0x80475b8:4]=0x2002b580
| ||||||| 0x080469f4 dff8a40b ldr.w r0, [0x080475a0] ; [0x80475a0:4]=0x2001e5fc
| ||||||| 0x080469f8 007c ldrb r0, [r0, 0x10]
| ||||||| 0x080469fa eaf73bfa bl func_30e74
| ========< 0x080469fe 16e0 b 0x8046a2e
| |`------> 0x08046a00 dff8a00b ldr.w r0, [0x080475a8] ; [0x80475a8:4]=0x2001e8ed
| | ||||| 0x08046a04 0078 ldrb r0, [r0]
| | ||||| 0x08046a06 0428 cmp r0, 4 ; 4
| |,======< 0x08046a08 11d1 bne 0x8046a2e
| ||||||| 0x08046a0a dff8a00b ldr.w r0, [0x080475b2] ; [0x80475b0:4]=0x2001e4b5
| ||||||| 0x08046a0e 0078 ldrb r0, [r0]
| ||||||| 0x08046a10 401e subs r0, r0, 1
| ||||||| 0x08046a12 c0b2 uxtb r0, r0
| ||||||| 0x08046a14 1e28 cmp r0, 0x1e ; 30
| ========< 0x08046a16 0ad2 bhs 0x8046a2e
| ||||||| 0x08046a18 dff88c0b ldr.w r0, [0x080475ac] ; [0x80475ac:4]=0x2001e4b4
| ||||||| 0x08046a1c 0221 movs r1, 2 ; 2
| ||||||| 0x08046a1e 0170 strb r1, [r0]
| ||||||| 0x08046a20 dff88c1b ldr.w r1, [0x080475b4] ; [0x80475b4:4]=0x2001e111
| ||||||| 0x08046a24 dff8840b ldr.w r0, [0x080475b0] ; [0x80475b0:4]=0x2001e4b5
| ||||||| 0x08046a28 0078 ldrb r0, [r0]
| ||||||| 0x08046a2a eaf723fa bl func_30e74
| ```---`-> 0x08046a2e bf48 ldr r0, [0x08046d2e] ; [0x8046d2c:4]=0x2001dadc md380_radio_config
| ||| 0x08046a30 4078 ldrb r0, [r0, 1]
| ||| 0x08046a32 c0b2 uxtb r0, r0
| ||| 0x08046a34 8009 lsrs r0, r0, 6
| ||| 0x08046a36 0228 cmp r0, 2 ; 2
| |||,=< 0x08046a38 05d0 beq 0x8046a46
| |||| 0x08046a3a bc48 ldr r0, [0x08046d2e] ; [0x8046d2c:4]=0x2001dadc md380_radio_config
| |||| 0x08046a3c 4078 ldrb r0, [r0, 1]
| |||| 0x08046a3e c0b2 uxtb r0, r0
| |||| 0x08046a40 8009 lsrs r0, r0, 6
| |||| 0x08046a42 0328 cmp r0, 3 ; 3
| ,=====< 0x08046a44 14d1 bne 0x8046a70
| ||||`-> 0x08046a46 dff85c0b ldr.w r0, [0x080475aa] ; [0x80475a8:4]=0x2001e8ed
| |||| 0x08046a4a 0078 ldrb r0, [r0]
| |||| 0x08046a4c 0328 cmp r0, 3 ; 3
| ||||,=< 0x08046a4e 0fd0 beq 0x8046a70
| ||||| 0x08046a50 dff8500b ldr.w r0, [0x080475a8] ; [0x80475a8:4]=0x2001e8ed
| ||||| 0x08046a54 0078 ldrb r0, [r0]
| ||||| 0x08046a56 0428 cmp r0, 4 ; 4
| ,======< 0x08046a58 0ad0 beq 0x8046a70
| |||||| 0x08046a5a b548 ldr r0, [0x08046d32] ; [0x8046d30:4]=0x2001e8a8 beep_code_send
| |||||| 0x08046a5c 1121 movs r1, 0x11 ; 17
| |||||| 0x08046a5e 0170 strb r1, [r0]
| |||||| 0x08046a60 b349 ldr r1, [0x08046d30] ; [0x8046d30:4]=0x2001e8a8 beep_code_send
| |||||| 0x08046a62 b448 ldr r0, [0x08046d36] ; [0x8046d34:4]=0x2001e67c event2_mbox_poi_beep
| |||||| 0x08046a64 0068 ldr r0, [r0]
| |||||| 0x08046a66 eaf799fb bl md380_OSMboxPost
| |||||| 0x08046a6a e620 movs r0, 0xe6 ; 230
| |||||| 0x08046a6c edf722fa bl OSTimeDly
| ``---`-> 0x08046a70 dff8300b ldr.w r0, [0x080475a8] ; [0x80475a8:4]=0x2001e8ed
| ||| 0x08046a74 0078 ldrb r0, [r0]
| ||| 0x08046a76 0628 cmp r0, 6 ; 6
| |||,=< 0x08046a78 24d1 bne 0x8046ac4
| |||| 0x08046a7a 3220 movs r0, 0x32 ; '2' ; 50
| |||| 0x08046a7c edf71afa bl OSTimeDly
| |||| 0x08046a80 4221 movs r1, 0x42 ; 'B' ; 66
| |||| 0x08046a82 0e20 movs r0, 0xe ; 14
| |||| 0x08046a84 f9f77efa bl c5000_spi0_writereg
| |||| 0x08046a88 a948 ldr r0, [0x08046d30] ; [0x8046d30:4]=0x2001e8a8 beep_code_send
| |||| 0x08046a8a 2921 movs r1, 0x29 ; ')' ; 41
| |||| 0x08046a8c 0170 strb r1, [r0]
| |||| 0x08046a8e a849 ldr r1, [0x08046d32] ; [0x8046d30:4]=0x2001e8a8 beep_code_send
| |||| 0x08046a90 a848 ldr r0, [0x08046d34] ; [0x8046d34:4]=0x2001e67c event2_mbox_poi_beep
| |||| 0x08046a92 0068 ldr r0, [r0]
| |||| 0x08046a94 eaf782fb bl md380_OSMboxPost
| |||| 0x08046a98 01a8 add r0, sp, 4
| |||| 0x08046a9a 0090 str r0, [sp]
| |||| 0x08046a9c 0023 movs r3, 0
| |||| 0x08046a9e 8222 movs r2, 0x82 ; 130
| |||| 0x08046aa0 0821 movs r1, 8 ; 8
| |||| 0x08046aa2 aa48 ldr r0, [0x08046d4e] ; [0x8046d4c:4]=0x2001e640 idle_control_struct
| |||| 0x08046aa4 0068 ldr r0, [r0]
| |||| 0x08046aa6 01f005fa bl func_47eb4
| |||| 0x08046aaa a148 ldr r0, [0x08046d32] ; [0x8046d30:4]=0x2001e8a8 beep_code_send
| |||| 0x08046aac 0021 movs r1, 0
| |||| 0x08046aae 0170 strb r1, [r0]
| |||| 0x08046ab0 9f49 ldr r1, [0x08046d30] ; [0x8046d30:4]=0x2001e8a8 beep_code_send
| |||| 0x08046ab2 a048 ldr r0, [0x08046d36] ; [0x8046d34:4]=0x2001e67c event2_mbox_poi_beep
| |||| 0x08046ab4 0068 ldr r0, [r0]
| |||| 0x08046ab6 eaf771fb bl md380_OSMboxPost
| |||| 0x08046aba 4421 movs r1, 0x44 ; 'D' ; 68
| |||| 0x08046abc 0e20 movs r0, 0xe ; 14
| |||| 0x08046abe f9f761fa bl c5000_spi0_writereg
| ,=====< 0x08046ac2 35e0 b 0x8046b30
| ||||`-> 0x08046ac4 dff8dc0a ldr.w r0, [0x080475a8] ; [0x80475a8:4]=0x2001e8ed
| |||| 0x08046ac8 0078 ldrb r0, [r0]
| |||| 0x08046aca 0428 cmp r0, 4 ; 4
| ||||,=< 0x08046acc 30d0 beq 0x8046b30
| ||||| 0x08046ace dff8d80a ldr.w r0, [0x080475ae] ; [0x80475ac:4]=0x2001e4b4
| ||||| 0x08046ad2 0321 movs r1, 3 ; 3
| ||||| 0x08046ad4 0170 strb r1, [r0]
| ||||| 0x08046ad6 01a8 add r0, sp, 4
| ||||| 0x08046ad8 0090 str r0, [sp]
| ||||| 0x08046ada 0023 movs r3, 0
| ||||| 0x08046adc 8222 movs r2, 0x82 ; 130
| ||||| 0x08046ade 0821 movs r1, 8 ; 8
| ||||| 0x08046ae0 9a48 ldr r0, [0x08046d4c] ; [0x8046d4c:4]=0x2001e640 idle_control_struct
| ||||| 0x08046ae2 0068 ldr r0, [r0]
| ||||| 0x08046ae4 01f0e6f9 bl func_47eb4
| ||||| 0x08046ae8 dff8b00a ldr.w r0, [0x080475a0] ; [0x80475a0:4]=0x2001e5fc
| ||||| 0x08046aec 007a ldrb r0, [r0, 8]
| ||||| 0x08046aee c0f38100 ubfx r0, r0, 2, 2
| ||||| 0x08046af2 c0b2 uxtb r0, r0
| ||||| 0x08046af4 0228 cmp r0, 2 ; 2
| ,======< 0x08046af6 07d0 beq 0x8046b08
| |||||| 0x08046af8 dff8a00a ldr.w r0, [0x080475a0] ; [0x80475a0:4]=0x2001e5fc
| |||||| 0x08046afc 007a ldrb r0, [r0, 8]
| |||||| 0x08046afe c0f38100 ubfx r0, r0, 2, 2
| |||||| 0x08046b02 c0b2 uxtb r0, r0
| |||||| 0x08046b04 0328 cmp r0, 3 ; 3
| ,=======< 0x08046b06 13d1 bne 0x8046b30
| |`------> 0x08046b08 dff8900a ldr.w r0, [0x080475a0] ; [0x80475a0:4]=0x2001e5fc
| | ||||| 0x08046b0c 90f82000 ldrb.w r0, [r0, 0x20]
| | ||||| 0x08046b10 401e subs r0, r0, 1
| | ||||| 0x08046b12 c0b2 uxtb r0, r0
| | ||||| 0x08046b14 1e28 cmp r0, 0x1e ; 30
| |,======< 0x08046b16 0bd2 bhs 0x8046b30
| ||||||| 0x08046b18 dff88c0a ldr.w r0, [0x080475ac] ; [0x80475ac:4]=0x2001e4b4
| ||||||| 0x08046b1c 0221 movs r1, 2 ; 2
| ||||||| 0x08046b1e 0170 strb r1, [r0]
| ||||||| 0x08046b20 dff8381c ldr.w r1, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08046b24 dff8740a ldr.w r0, [0x080475a0] ; [0x80475a0:4]=0x2001e5fc
| ||||||| 0x08046b28 90f82000 ldrb.w r0, [r0, 0x20]
| ||||||| 0x08046b2c eaf7a2f9 bl func_30e74
| ```---`-> 0x08046b30 0021 movs r1, 0
| ||| ;-- c5000_wr_60_4:
| ||| 0x08046b32 6020 movs r0, 0x60 ; '`' ; 96
| ||| 0x08046b34 f9f726fa bl c5000_spi0_writereg
| ||| 0x08046b38 dff86c0a ldr.w r0, [0x080475ac] ; [0x80475ac:4]=0x2001e4b4
| ||| 0x08046b3c 0021 movs r1, 0
| ||| 0x08046b3e 0170 strb r1, [r0]
| ||| 0x08046b40 dff81c0c ldr.w r0, [0x08047764] ; [0x8047764:4]=0x2001e604 q_status_4
| ||| 0x08046b44 0079 ldrb r0, [r0, 4]
| ||| 0x08046b46 c0f38000 ubfx r0, r0, 2, 1
| ||| 0x08046b4a c007 lsls r0, r0, 0x1f
| |||,=< 0x08046b4c 1cd5 bpl 0x8046b88
| |||| 0x08046b4e dff8340a ldr.w r0, [0x0804758a] ; [0x8047588:4]=0x2001e895 msg_sms_flags_shifted
| |||| 0x08046b52 0078 ldrb r0, [r0]
| |||| 0x08046b54 0621 movs r1, 6 ; 6
| |||| 0x08046b56 0842 tst r0, r1
| ,=====< 0x08046b58 16d0 beq 0x8046b88
| ||||| 0x08046b5a dff8280a ldr.w r0, [0x0804758a] ; [0x8047588:4]=0x2001e895 msg_sms_flags_shifted
| ||||| 0x08046b5e 0078 ldrb r0, [r0]
| ||||| 0x08046b60 c0f34000 ubfx r0, r0, 1, 1
| ||||| 0x08046b64 c007 lsls r0, r0, 0x1f
| ,======< 0x08046b66 02d5 bpl 0x8046b6e
| |||||| 0x08046b68 f8f71efd bl SomethingWithTIM7_ChannelInfo2
| ,=======< 0x08046b6c 01e0 b 0x8046b72
| |`------> 0x08046b6e f8f72dfd bl func_3f5cc
| `-------> 0x08046b72 dff8f00b ldr.w r0, [0x0804776a] ; [0x8047768:4]=0x40020400 io_GPIOB
| ||||| 0x08046b76 4078 ldrb r0, [r0, 1]
| ||||| 0x08046b78 50f00800 orrs r0, r0, 8
| ||||| 0x08046b7c dff8e41b ldr.w r1, [0x08047768] ; [0x8047768:4]=0x40020400 io_GPIOB
| ||||| 0x08046b80 4870 strb r0, [r1, 1]
| ||||| 0x08046b82 b420 movs r0, 0xb4 ; 180
| ||||| 0x08046b84 edf796f9 bl OSTimeDly
| `---`-> 0x08046b88 dff8f809 ldr.w r0, [0x08047588] ; [0x8047588:4]=0x2001e895 msg_sms_flags_shifted
| ||| 0x08046b8c 0078 ldrb r0, [r0]
| ||| 0x08046b8e 0621 movs r1, 6 ; 6
| ||| 0x08046b90 0842 tst r0, r1
| |||,=< 0x08046b92 01d0 beq 0x8046b98
| |||| 0x08046b94 f8f747fd bl SomethingWithGPIOC_TIM7_Status
| |||`-> 0x08046b98 01f035f8 bl TimerIRQ_Sub4
| ||| 0x08046b9c 01a8 add r0, sp, 4
| ||| 0x08046b9e 0090 str r0, [sp]
| ||| 0x08046ba0 0023 movs r3, 0
| ||| 0x08046ba2 8222 movs r2, 0x82 ; 130
| ||| 0x08046ba4 0221 movs r1, 2 ; 2
| ||| 0x08046ba6 6948 ldr r0, [0x08046d4e] ; [0x8046d4c:4]=0x2001e640 idle_control_struct
| ||| 0x08046ba8 0068 ldr r0, [r0]
| ||| 0x08046baa 01f083f9 bl func_47eb4
| ||| 0x08046bae dff8f409 ldr.w r0, [0x080475aa] ; [0x80475a8:4]=0x2001e8ed
| ||| 0x08046bb2 0078 ldrb r0, [r0]
| ||| 0x08046bb4 0428 cmp r0, 4 ; 4
| `====< 0x08046bb6 7ff4acae bne.w 0x8046912
| || 0x08046bba dff8a40b ldr.w r0, [0x08047766] ; [0x8047764:4]=0x2001e604 q_status_4
| || 0x08046bbe 407f ldrb r0, [r0, 0x1d]
| || 0x08046bc0 401e subs r0, r0, 1
| || 0x08046bc2 c0b2 uxtb r0, r0
| || 0x08046bc4 0428 cmp r0, 4 ; 4
| |`==< 0x08046bc6 bff499ae bhs.w 0x80468fc
| | 0x08046bca dff8940b ldr.w r0, [0x08047766] ; [0x8047764:4]=0x2001e604 q_status_4
| | 0x08046bce 407f ldrb r0, [r0, 0x1d]
| | 0x08046bd0 dcf76efa bl func_230b0_spiflash_rd_17
| `===< 0x08046bd4 9de6 b 0x8046912
| 0x08046bd6 0000 movs r0, r0
| 0x08046bd8 82b0 sub sp, 8
| .-> 0x08046bda 00aa add r2, sp, 0
| | 0x08046bdc 0021 movs r1, 0
| | 0x08046bde 5f48 ldr r0, [0x08046d5e] ; [0x8046d5c:4]=0x2001e664 event3_mbox_poi
| | 0x08046be0 0068 ldr r0, [r0]
| | 0x08046be2 eaf74ffa bl md380_OSMboxPend
| | 0x08046be6 0078 ldrb r0, [r0]
| | 0x08046be8 c0b2 uxtb r0, r0
| | 0x08046bea ebf714fc bl func_32416
| `=< 0x08046bee f4e7 b 0x8046bda
| 0x08046bf0 82b0 sub sp, 8
| .-> 0x08046bf2 00aa add r2, sp, 0
| | 0x08046bf4 0021 movs r1, 0
| | 0x08046bf6 5a48 ldr r0, [0x08046d62] ; [0x8046d60:4]=0x2001e674
| | 0x08046bf8 0068 ldr r0, [r0]
| | 0x08046bfa eaf743fa bl md380_OSMboxPend
| | 0x08046bfe 09f009f9 bl func_4fe14_monster_accessing_C5000
\ `=< 0x08046c02 f6e7 b 0x8046bf2
/ (fcn) init_a_lot_gfx_and_lcd 32
| Caller: Start
| init_a_lot_gfx_and_lcd ();
| 0x08046c04 80b5 push {r7, lr}
| 0x08046c06 eaf7f5fa bl func_311f4
| 0x08046c0a 00f0cbfd bl func_477a4
| 0x08046c0e 06f0fdff bl func_4dc0c_more_bitbang_io
| 0x08046c12 00f045fc bl func_474a0_heavy_bitbanging
| 0x08046c16 00f041fb bl func_4729c
| 0x08046c1a 00f0cdfc bl func_475b8
| 0x08046c1e ecf748fc bl gfx_init_lcd_and_others
\ 0x08046c22 01bd pop {r0, pc}
/ (fcn) init_more_and_start_watchdog 230
| Caller: Start
| init_more_and_start_watchdog ();
| 0x08046c24 00b5 push {lr}
| 0x08046c26 83b0 sub sp, 0xc
| 0x08046c28 0121 movs r1, 1 ; 1
| 0x08046c2a 1f20 movs r0, 0x1f ; 31
| 0x08046c2c eff75bff bl func_36ae6
| 0x08046c30 0121 movs r1, 1 ; 1
| 0x08046c32 4ff48040 mov.w r0, 0x4000
| 0x08046c36 eff796ff bl func_36b66
| 0x08046c3a 0021 movs r1, 0
| 0x08046c3c 0120 movs r0, 1 ; 1
| 0x08046c3e eff792ff bl func_36b66
| 0x08046c42 0121 movs r1, 1 ; 1
| 0x08046c44 0220 movs r0, 2 ; 2
| 0x08046c46 eff78eff bl func_36b66
| 0x08046c4a 0121 movs r1, 1 ; 1
| 0x08046c4c 0220 movs r0, 2 ; 2
| 0x08046c4e eff77aff bl func_36b46
| 0x08046c52 0121 movs r1, 1 ; 1
| 0x08046c54 0420 movs r0, 4 ; 4
| 0x08046c56 eff776ff bl func_36b46
| 0x08046c5a 0121 movs r1, 1 ; 1
| 0x08046c5c 1020 movs r0, 0x10 ; 16
| 0x08046c5e eff772ff bl func_36b46
| 0x08046c62 0121 movs r1, 1 ; 1
| 0x08046c64 2020 movs r0, 0x20 ; 32
| 0x08046c66 eff76eff bl func_36b46
| 0x08046c6a 0121 movs r1, 1 ; 1
| 0x08046c6c 4ff48060 mov.w r0, 0x400 ; 1024
| 0x08046c70 eff779ff bl func_36b66
| 0x08046c74 0121 movs r1, 1 ; 1
| 0x08046c76 4ff48070 mov.w r0, 0x100 ; 256
| 0x08046c7a eff774ff bl func_36b66
| 0x08046c7e 0121 movs r1, 1 ; 1
| 0x08046c80 5ff00050 movs.w r0, 0x20000000
| 0x08046c84 eff75fff bl func_36b46
| 0x08046c88 0121 movs r1, 1 ; 1
| 0x08046c8a 5ff40010 movs.w r0, 0x200000
| 0x08046c8e eff72aff bl func_36ae6
| 0x08046c92 0220 movs r0, 2 ; 2
| 0x08046c94 8df80500 strb.w r0, [sp, 5]
| 0x08046c98 0020 movs r0, 0
| 0x08046c9a 8df80400 strb.w r0, [sp, 4]
| 0x08046c9e 0020 movs r0, 0
| 0x08046ca0 8df80600 strb.w r0, [sp, 6]
| 0x08046ca4 0020 movs r0, 0
| 0x08046ca6 8df80700 strb.w r0, [sp, 7]
| 0x08046caa 4ff40040 mov.w r0, 0x8000
| 0x08046cae 0090 str r0, [sp]
| 0x08046cb0 00a9 add r1, sp, 0
| 0x08046cb2 dff8e008 ldr.w r0, [0x0804759a] ; [0x8047598:4]=0x2001e510
| 0x08046cb6 e4f747fd bl GPIO_Init
| 0x08046cba 1820 movs r0, 0x18 ; 24
| 0x08046cbc 0090 str r0, [sp]
| 0x08046cbe 00a9 add r1, sp, 0
| 0x08046cc0 dff8a40a ldr.w r0, [0x0804776c] ; [0x804776c:4]=0x40020800 io_GPIOC
| 0x08046cc4 e4f740fd bl GPIO_Init
| 0x08046cc8 0bf01ef8 bl dummy_51d08
| 0x08046ccc 0af0c4ff bl func_51c58
| 0x08046cd0 00f05df9 bl func_46f8e
| 0x08046cd4 00f01dfb bl func_47312
| 0x08046cd8 00f01efc bl adc3_init
| 0x08046cdc fdf738fe bl adc1_adc2_and_dma2s3_init
| 0x08046ce0 0120 movs r0, 1 ; 1
| 0x08046ce2 eff76bfe bl func_369bc
| 0x08046ce6 00f06bf8 bl func_46dc0
| 0x08046cea 45f25550 movw r0, 0x5555
| 0x08046cee 09f075f8 bl func_4fddc
| 0x08046cf2 0420 movs r0, 4 ; 4
| 0x08046cf4 09f076f8 bl func_4fde4
| 0x08046cf8 4ff47a60 mov.w r0, 0xfa0 ; 4000
| 0x08046cfc 09f076f8 bl func_4fdec
| 0x08046d00 09f078f8 bl FeedTheWatchdog
| 0x08046d04 09f07bf8 bl StartTheWatchdog
\ 0x08046d08 07bd pop {r0, r1, r2, pc}
/ (fcn) func_46dc0 392
| Caller: init_more_and_start_watchdog
| func_46dc0 ();
| 0x08046dc0 e0b5 push {r5, r6, r7, lr}
| 0x08046dc2 4ff44041 mov.w r1, 0xc000
| 0x08046dc6 5ff00060 movs.w r0, 0x8000000
| 0x08046dca 0af0d8ff bl func_51d7e
| 0x08046dce 4ff44070 mov.w r0, 0x300 ; 768
| 0x08046dd2 0af09bff bl func_51d0c
| 0x08046dd6 0920 movs r0, 9 ; 9
| 0x08046dd8 8df80000 strb.w r0, [sp]
| 0x08046ddc 0620 movs r0, 6 ; 6
| 0x08046dde 8df80100 strb.w r0, [sp, 1]
| 0x08046de2 0020 movs r0, 0
| 0x08046de4 8df80200 strb.w r0, [sp, 2]
| 0x08046de8 0020 movs r0, 0
| 0x08046dea 8df80300 strb.w r0, [sp, 3]
| 0x08046dee 00a8 add r0, sp, 0
| 0x08046df0 0af091ff bl func_51d16
| 0x08046df4 0820 movs r0, 8 ; 8
| 0x08046df6 8df80000 strb.w r0, [sp]
| 0x08046dfa 0520 movs r0, 5 ; 5
| 0x08046dfc 8df80100 strb.w r0, [sp, 1]
| 0x08046e00 0020 movs r0, 0
| 0x08046e02 8df80200 strb.w r0, [sp, 2]
| 0x08046e06 0120 movs r0, 1 ; 1
| 0x08046e08 8df80300 strb.w r0, [sp, 3]
| 0x08046e0c 00a8 add r0, sp, 0
| 0x08046e0e 0af082ff bl func_51d16
| 0x08046e12 0720 movs r0, 7 ; 7
| 0x08046e14 8df80000 strb.w r0, [sp]
| 0x08046e18 0720 movs r0, 7 ; 7
| 0x08046e1a 8df80100 strb.w r0, [sp, 1]
| 0x08046e1e 0020 movs r0, 0
| 0x08046e20 8df80200 strb.w r0, [sp, 2]
| 0x08046e24 0120 movs r0, 1 ; 1
| 0x08046e26 8df80300 strb.w r0, [sp, 3]
| 0x08046e2a 00a8 add r0, sp, 0
| 0x08046e2c 0af073ff bl func_51d16
| 0x08046e30 0620 movs r0, 6 ; 6
| 0x08046e32 8df80000 strb.w r0, [sp]
| 0x08046e36 0420 movs r0, 4 ; 4
| 0x08046e38 8df80100 strb.w r0, [sp, 1]
| 0x08046e3c 0020 movs r0, 0
| 0x08046e3e 8df80200 strb.w r0, [sp, 2]
| 0x08046e42 0120 movs r0, 1 ; 1
| 0x08046e44 8df80300 strb.w r0, [sp, 3]
| 0x08046e48 00a8 add r0, sp, 0
| 0x08046e4a 0af064ff bl func_51d16
| 0x08046e4e 2c20 movs r0, 0x2c ; ',' ; 44
| 0x08046e50 8df80000 strb.w r0, [sp]
| 0x08046e54 0120 movs r0, 1 ; 1
| 0x08046e56 8df80100 strb.w r0, [sp, 1]
| 0x08046e5a 0020 movs r0, 0
| 0x08046e5c 8df80200 strb.w r0, [sp, 2]
| 0x08046e60 0120 movs r0, 1 ; 1
| 0x08046e62 8df80300 strb.w r0, [sp, 3]
| 0x08046e66 00a8 add r0, sp, 0
| 0x08046e68 0af055ff bl func_51d16
| 0x08046e6c 3620 movs r0, 0x36 ; '6' ; 54
| 0x08046e6e 8df80000 strb.w r0, [sp]
| 0x08046e72 0220 movs r0, 2 ; 2
| 0x08046e74 8df80100 strb.w r0, [sp, 1]
| 0x08046e78 0020 movs r0, 0
| 0x08046e7a 8df80200 strb.w r0, [sp, 2]
| 0x08046e7e 0120 movs r0, 1 ; 1
| 0x08046e80 8df80300 strb.w r0, [sp, 3]
| 0x08046e84 00a8 add r0, sp, 0
| 0x08046e86 0af046ff bl func_51d16
| 0x08046e8a 3720 movs r0, 0x37 ; '7' ; 55
| 0x08046e8c 8df80000 strb.w r0, [sp]
| 0x08046e90 0320 movs r0, 3 ; 3
| 0x08046e92 8df80100 strb.w r0, [sp, 1]
| 0x08046e96 0020 movs r0, 0
| 0x08046e98 8df80200 strb.w r0, [sp, 2]
| 0x08046e9c 0120 movs r0, 1 ; 1
| 0x08046e9e 8df80300 strb.w r0, [sp, 3]
| 0x08046ea2 00a8 add r0, sp, 0
| 0x08046ea4 0af037ff bl func_51d16
| 0x08046ea8 1d20 movs r0, 0x1d ; 29
| 0x08046eaa 8df80000 strb.w r0, [sp]
| 0x08046eae 0a20 movs r0, 0xa ; 10
| 0x08046eb0 8df80100 strb.w r0, [sp, 1]
| 0x08046eb4 0020 movs r0, 0
| 0x08046eb6 8df80200 strb.w r0, [sp, 2]
| 0x08046eba 0120 movs r0, 1 ; 1
| 0x08046ebc 8df80300 strb.w r0, [sp, 3]
| 0x08046ec0 00a8 add r0, sp, 0
| 0x08046ec2 0af028ff bl func_51d16
| 0x08046ec6 1e20 movs r0, 0x1e ; 30
| 0x08046ec8 8df80000 strb.w r0, [sp]
| 0x08046ecc 0820 movs r0, 8 ; 8
| 0x08046ece 8df80100 strb.w r0, [sp, 1]
| 0x08046ed2 0020 movs r0, 0
| 0x08046ed4 8df80200 strb.w r0, [sp, 2]
| 0x08046ed8 0120 movs r0, 1 ; 1
| 0x08046eda 8df80300 strb.w r0, [sp, 3]
| 0x08046ede 00a8 add r0, sp, 0
| 0x08046ee0 0af019ff bl func_51d16
| 0x08046ee4 3b20 movs r0, 0x3b ; ';' ; 59
| 0x08046ee6 8df80000 strb.w r0, [sp]
| 0x08046eea 0020 movs r0, 0
| 0x08046eec 8df80200 strb.w r0, [sp, 2]
| 0x08046ef0 0820 movs r0, 8 ; 8
| 0x08046ef2 8df80100 strb.w r0, [sp, 1]
| 0x08046ef6 0120 movs r0, 1 ; 1
| 0x08046ef8 8df80300 strb.w r0, [sp, 3]
| 0x08046efc 00a8 add r0, sp, 0
| 0x08046efe 0af00aff bl func_51d16
| 0x08046f02 5ff48000 movs.w r0, 0x400000
| 0x08046f06 0af0aeff bl ClearEXTIPendingBits_R0
| 0x08046f0a 5ff48000 movs.w r0, 0x400000
| 0x08046f0e 0190 str r0, [sp, 4]
| 0x08046f10 0020 movs r0, 0
| 0x08046f12 8df80800 strb.w r0, [sp, 8]
| 0x08046f16 0820 movs r0, 8 ; 8
| 0x08046f18 8df80900 strb.w r0, [sp, 9]
| 0x08046f1c 0120 movs r0, 1 ; 1
| 0x08046f1e 8df80a00 strb.w r0, [sp, 0xa]
| 0x08046f22 01a8 add r0, sp, 4
| 0x08046f24 0af040ff bl func_51da8_uses_EXTI_RTSR
| 0x08046f28 0320 movs r0, 3 ; 3
| 0x08046f2a 8df80000 strb.w r0, [sp]
| 0x08046f2e 0920 movs r0, 9 ; 9
| 0x08046f30 8df80100 strb.w r0, [sp, 1]
| 0x08046f34 0020 movs r0, 0
| 0x08046f36 8df80200 strb.w r0, [sp, 2]
| 0x08046f3a 0120 movs r0, 1 ; 1
| 0x08046f3c 8df80300 strb.w r0, [sp, 3]
| 0x08046f40 00a8 add r0, sp, 0
| 0x08046f42 0af0e8fe bl func_51d16
\ 0x08046f46 07bd pop {r0, r1, r2, pc}
/ (fcn) func_46f48 70
| Caller: func_3f8f2_init_PLL_and_C5000 func_3fda8 c5000_iffreq_init func_31fe2
| func_46f48 ();
| 0x08046f48 1cb5 push {r2, r3, r4, lr}
| 0x08046f4a 0400 movs r4, r0
| 0x08046f4c 00a8 add r0, sp, 0
| 0x08046f4e 0af06fff bl func_51e30
| 0x08046f52 e4b2 uxtb r4, r4
| 0x08046f54 002c cmp r4, 0
| ,=< 0x08046f56 08d1 bne 0x8046f6a
| | 0x08046f58 0720 movs r0, 7 ; 7
| | 0x08046f5a 0090 str r0, [sp]
| | 0x08046f5c 0020 movs r0, 0
| | 0x08046f5e 8df80600 strb.w r0, [sp, 6]
| | 0x08046f62 00a8 add r0, sp, 0
| | 0x08046f64 0af020ff bl func_51da8_uses_EXTI_RTSR
| ,==< 0x08046f68 10e0 b 0x8046f8c
| |`-> 0x08046f6a 0720 movs r0, 7 ; 7
| | 0x08046f6c 0af07bff bl ClearEXTIPendingBits_R0
| | 0x08046f70 0020 movs r0, 0
| | 0x08046f72 8df80400 strb.w r0, [sp, 4]
| | 0x08046f76 0720 movs r0, 7 ; 7
| | 0x08046f78 0090 str r0, [sp]
| | 0x08046f7a 0c20 movs r0, 0xc ; 12
| | 0x08046f7c 8df80500 strb.w r0, [sp, 5]
| | 0x08046f80 0120 movs r0, 1 ; 1
| | 0x08046f82 8df80600 strb.w r0, [sp, 6]
| | 0x08046f86 00a8 add r0, sp, 0
| | 0x08046f88 0af00eff bl func_51da8_uses_EXTI_RTSR
\ `--> 0x08046f8c 13bd pop {r0, r1, r4, pc}
/ (fcn) func_46f8e 678
| Caller: init_more_and_start_watchdog
| func_46f8e ();
| 0x08046f8e 00b5 push {lr}
| 0x08046f90 83b0 sub sp, 0xc
| 0x08046f92 0220 movs r0, 2 ; 2
| 0x08046f94 8df80500 strb.w r0, [sp, 5]
| 0x08046f98 0120 movs r0, 1 ; 1
| 0x08046f9a 8df80400 strb.w r0, [sp, 4]
| 0x08046f9e 0020 movs r0, 0
| 0x08046fa0 8df80600 strb.w r0, [sp, 6]
| 0x08046fa4 0020 movs r0, 0
| 0x08046fa6 8df80700 strb.w r0, [sp, 7]
| 0x08046faa 4ff4cf40 mov.w r0, 0x6780
| 0x08046fae 0090 str r0, [sp]
| 0x08046fb0 00a9 add r1, sp, 0
| 0x08046fb2 dff8e005 ldr.w r0, [0x0804759a] ; [0x8047598:4]=0x2001e510
| 0x08046fb6 e4f7c7fb bl GPIO_Init
| 0x08046fba 41f20430 movw r0, 0x1304
| 0x08046fbe 0090 str r0, [sp]
| 0x08046fc0 00a9 add r1, sp, 0
| 0x08046fc2 dff8a407 ldr.w r0, [0x0804776e] ; [0x804776c:4]=0x40020800 io_GPIOC
| 0x08046fc6 e4f7bffb bl GPIO_Init
| 0x08046fca 42f2f030 movw r0, 0x23f0
| 0x08046fce 0090 str r0, [sp]
| 0x08046fd0 00a9 add r1, sp, 0
| 0x08046fd2 dff89807 ldr.w r0, [0x08047772] ; [0x8047770:4]=0x40020c00 io_GPIOD
| 0x08046fd6 e4f7b7fb bl GPIO_Init
| 0x08046fda 4ff46f50 mov.w r0, 0x3bc0
| 0x08046fde 0090 str r0, [sp]
| 0x08046fe0 00a9 add r1, sp, 0
| 0x08046fe2 dff88c07 ldr.w r0, [0x08047776] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x08046fe6 e4f7affb bl GPIO_Init
| 0x08046fea 42f27700 movw r0, 0x2077
| 0x08046fee 0090 str r0, [sp]
| 0x08046ff0 00a9 add r1, sp, 0
| 0x08046ff2 dff88007 ldr.w r0, [0x0804777a] ; [0x8047778:4]=0x40000400 io_TIM3
| 0x08046ff6 e4f7a7fb bl GPIO_Init
| 0x08046ffa 0220 movs r0, 2 ; 2
| 0x08046ffc 8df80500 strb.w r0, [sp, 5]
| 0x08047000 0020 movs r0, 0
| 0x08047002 8df80400 strb.w r0, [sp, 4]
| 0x08047006 0020 movs r0, 0
| 0x08047008 8df80700 strb.w r0, [sp, 7]
| 0x0804700c 0720 movs r0, 7 ; 7
| 0x0804700e 0090 str r0, [sp]
| 0x08047010 00a9 add r1, sp, 0
| 0x08047012 dff85807 ldr.w r0, [0x08047772] ; [0x8047770:4]=0x40020c00 io_GPIOD
| 0x08047016 e4f797fb bl GPIO_Init
| 0x0804701a 0220 movs r0, 2 ; 2
| 0x0804701c 8df80500 strb.w r0, [sp, 5]
| 0x08047020 0020 movs r0, 0
| 0x08047022 8df80400 strb.w r0, [sp, 4]
| 0x08047026 0120 movs r0, 1 ; 1
| 0x08047028 8df80700 strb.w r0, [sp, 7]
| 0x0804702c 4ff44060 mov.w r0, 0xc00 ; 3072
| 0x08047030 0090 str r0, [sp]
| 0x08047032 00a9 add r1, sp, 0
| 0x08047034 dff83007 ldr.w r0, [0x0804776c] ; [0x804776c:4]=0x40020800 io_GPIOC
| 0x08047038 e4f786fb bl GPIO_Init
| 0x0804703c 4ff48060 mov.w r0, 0x400 ; 1024
| 0x08047040 0090 str r0, [sp]
| 0x08047042 00a9 add r1, sp, 0
| 0x08047044 dff82807 ldr.w r0, [0x08047774] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x08047048 e4f77efb bl GPIO_Init
| 0x0804704c 4df60800 movw r0, 0xd808
| 0x08047050 0090 str r0, [sp]
| 0x08047052 00a9 add r1, sp, 0
| 0x08047054 dff81c07 ldr.w r0, [0x08047778] ; [0x8047778:4]=0x40000400 io_TIM3
| 0x08047058 e4f776fb bl GPIO_Init
| 0x0804705c 0320 movs r0, 3 ; 3
| 0x0804705e 8df80400 strb.w r0, [sp, 4]
| 0x08047062 0020 movs r0, 0
| 0x08047064 8df80700 strb.w r0, [sp, 7]
| 0x08047068 3020 movs r0, 0x30 ; '0' ; 48
| 0x0804706a 0090 str r0, [sp]
| 0x0804706c 00a9 add r1, sp, 0
| 0x0804706e dff82405 ldr.w r0, [0x0804759a] ; [0x8047598:4]=0x2001e510
| 0x08047072 e4f769fb bl GPIO_Init
| 0x08047076 0e20 movs r0, 0xe ; 14
| 0x08047078 0090 str r0, [sp]
| 0x0804707a 00a9 add r1, sp, 0
| 0x0804707c dff81405 ldr.w r0, [0x08047598] ; [0x8047598:4]=0x2001e510
| 0x08047080 e4f762fb bl GPIO_Init
| 0x08047084 0120 movs r0, 1 ; 1
| 0x08047086 0090 str r0, [sp]
| 0x08047088 00a9 add r1, sp, 0
| 0x0804708a dff80805 ldr.w r0, [0x0804759a] ; [0x8047598:4]=0x2001e510
| 0x0804708e e4f75bfb bl GPIO_Init
| 0x08047092 0320 movs r0, 3 ; 3
| 0x08047094 0090 str r0, [sp]
| 0x08047096 00a9 add r1, sp, 0
| 0x08047098 dff8cc06 ldr.w r0, [0x0804776c] ; [0x804776c:4]=0x40020800 io_GPIOC
| 0x0804709c e4f754fb bl GPIO_Init
| 0x080470a0 0820 movs r0, 8 ; 8
| 0x080470a2 0090 str r0, [sp]
| 0x080470a4 00a9 add r1, sp, 0
| 0x080470a6 dff8c406 ldr.w r0, [0x08047772] ; [0x8047770:4]=0x40020c00 io_GPIOD
| 0x080470aa e4f74dfb bl GPIO_Init
| 0x080470ae 0220 movs r0, 2 ; 2
| 0x080470b0 8df80500 strb.w r0, [sp, 5]
| 0x080470b4 0220 movs r0, 2 ; 2
| 0x080470b6 8df80400 strb.w r0, [sp, 4]
| 0x080470ba 0020 movs r0, 0
| 0x080470bc 8df80600 strb.w r0, [sp, 6]
| 0x080470c0 0020 movs r0, 0
| 0x080470c2 8df80700 strb.w r0, [sp, 7]
| 0x080470c6 4ef23800 movw r0, 0xe038
| 0x080470ca 0090 str r0, [sp]
| 0x080470cc 00a9 add r1, sp, 0
| 0x080470ce dff89806 ldr.w r0, [0x0804776e] ; [0x804776c:4]=0x40020800 io_GPIOC
| 0x080470d2 e4f739fb bl GPIO_Init
| 0x080470d6 0522 movs r2, 5 ; 5
| 0x080470d8 0d21 movs r1, 0xd ; 13
| 0x080470da dff88c06 ldr.w r0, [0x0804776e] ; [0x804776c:4]=0x40020800 io_GPIOC
| 0x080470de e4f79ffb bl GPIO_PinAFConfig
| 0x080470e2 0522 movs r2, 5 ; 5
| 0x080470e4 0e21 movs r1, 0xe ; 14
| 0x080470e6 dff88006 ldr.w r0, [0x0804776e] ; [0x804776c:4]=0x40020800 io_GPIOC
| 0x080470ea e4f799fb bl GPIO_PinAFConfig
| 0x080470ee 0522 movs r2, 5 ; 5
| 0x080470f0 0f21 movs r1, 0xf ; 15
| 0x080470f2 dff87406 ldr.w r0, [0x0804776e] ; [0x804776c:4]=0x40020800 io_GPIOC
| 0x080470f6 e4f793fb bl GPIO_PinAFConfig
| 0x080470fa 0522 movs r2, 5 ; 5
| 0x080470fc 0321 movs r1, 3 ; 3
| 0x080470fe dff86806 ldr.w r0, [0x0804776e] ; [0x804776c:4]=0x40020800 io_GPIOC
| 0x08047102 e4f78dfb bl GPIO_PinAFConfig
| 0x08047106 0522 movs r2, 5 ; 5
| 0x08047108 0421 movs r1, 4 ; 4
| 0x0804710a dff85c06 ldr.w r0, [0x0804776e] ; [0x804776c:4]=0x40020800 io_GPIOC
| 0x0804710e e4f787fb bl GPIO_PinAFConfig
| 0x08047112 0522 movs r2, 5 ; 5
| 0x08047114 0521 movs r1, 5 ; 5
| 0x08047116 dff85006 ldr.w r0, [0x0804776e] ; [0x804776c:4]=0x40020800 io_GPIOC
| 0x0804711a e4f781fb bl GPIO_PinAFConfig
| 0x0804711e 0021 movs r1, 0
| 0x08047120 0220 movs r0, 2 ; 2
| 0x08047122 0af0adfe bl func_51e80
| 0x08047126 0121 movs r1, 1 ; 1
| 0x08047128 0220 movs r0, 2 ; 2
| 0x0804712a 0af0a9fe bl func_51e80
| 0x0804712e 0221 movs r1, 2 ; 2
| 0x08047130 0220 movs r0, 2 ; 2
| 0x08047132 0af0a5fe bl func_51e80
| 0x08047136 0121 movs r1, 1 ; 1
| 0x08047138 1920 movs r0, 0x19 ; 25
| 0x0804713a eff7d4fc bl func_36ae6
| 0x0804713e 4cf23300 movw r0, 0xc033
| 0x08047142 0090 str r0, [sp]
| 0x08047144 0220 movs r0, 2 ; 2
| 0x08047146 8df80400 strb.w r0, [sp, 4]
| 0x0804714a 0320 movs r0, 3 ; 3
| 0x0804714c 8df80500 strb.w r0, [sp, 5]
| 0x08047150 0020 movs r0, 0
| 0x08047152 8df80600 strb.w r0, [sp, 6]
| 0x08047156 0020 movs r0, 0
| 0x08047158 8df80700 strb.w r0, [sp, 7]
| 0x0804715c 00a9 add r1, sp, 0
| 0x0804715e dff81006 ldr.w r0, [0x08047776] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x08047162 e4f7f1fa bl GPIO_Init
| 0x08047166 4ff4f060 mov.w r0, 0x780 ; 1920
| 0x0804716a 0090 str r0, [sp]
| 0x0804716c 00a9 add r1, sp, 0
| 0x0804716e dff80406 ldr.w r0, [0x0804777a] ; [0x8047778:4]=0x40000400 io_TIM3
| 0x08047172 e4f7e9fa bl GPIO_Init
| 0x08047176 4ff48050 mov.w r0, 0x1000
| 0x0804717a 0090 str r0, [sp]
| 0x0804717c 00a9 add r1, sp, 0
| 0x0804717e dff8f005 ldr.w r0, [0x08047776] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x08047182 e4f7e1fa bl GPIO_Init
| 0x08047186 0c22 movs r2, 0xc ; 12
| 0x08047188 0021 movs r1, 0
| 0x0804718a dff8e405 ldr.w r0, [0x08047776] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x0804718e e4f747fb bl GPIO_PinAFConfig
| 0x08047192 0c22 movs r2, 0xc ; 12
| 0x08047194 0121 movs r1, 1 ; 1
| 0x08047196 dff8d805 ldr.w r0, [0x08047776] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x0804719a e4f741fb bl GPIO_PinAFConfig
| 0x0804719e 0c22 movs r2, 0xc ; 12
| 0x080471a0 0421 movs r1, 4 ; 4
| 0x080471a2 dff8cc05 ldr.w r0, [0x08047776] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x080471a6 e4f73bfb bl GPIO_PinAFConfig
| 0x080471aa 0c22 movs r2, 0xc ; 12
| 0x080471ac 0521 movs r1, 5 ; 5
| 0x080471ae dff8c005 ldr.w r0, [0x08047776] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x080471b2 e4f735fb bl GPIO_PinAFConfig
| 0x080471b6 0c22 movs r2, 0xc ; 12
| 0x080471b8 0c21 movs r1, 0xc ; 12
| 0x080471ba dff8b405 ldr.w r0, [0x08047776] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x080471be e4f72ffb bl GPIO_PinAFConfig
| 0x080471c2 0c22 movs r2, 0xc ; 12
| 0x080471c4 0e21 movs r1, 0xe ; 14
| 0x080471c6 dff8a805 ldr.w r0, [0x08047776] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x080471ca e4f729fb bl GPIO_PinAFConfig
| 0x080471ce 0c22 movs r2, 0xc ; 12
| 0x080471d0 0f21 movs r1, 0xf ; 15
| 0x080471d2 dff89c05 ldr.w r0, [0x08047776] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x080471d6 e4f723fb bl GPIO_PinAFConfig
| 0x080471da 0c22 movs r2, 0xc ; 12
| 0x080471dc 0721 movs r1, 7 ; 7
| 0x080471de dff89405 ldr.w r0, [0x0804777a] ; [0x8047778:4]=0x40000400 io_TIM3
| 0x080471e2 e4f71dfb bl GPIO_PinAFConfig
| 0x080471e6 0c22 movs r2, 0xc ; 12
| 0x080471e8 0821 movs r1, 8 ; 8
| 0x080471ea dff88805 ldr.w r0, [0x0804777a] ; [0x8047778:4]=0x40000400 io_TIM3
| 0x080471ee e4f717fb bl GPIO_PinAFConfig
| 0x080471f2 0c22 movs r2, 0xc ; 12
| 0x080471f4 0921 movs r1, 9 ; 9
| 0x080471f6 dff87c05 ldr.w r0, [0x0804777a] ; [0x8047778:4]=0x40000400 io_TIM3
| 0x080471fa e4f711fb bl GPIO_PinAFConfig
| 0x080471fe 0c22 movs r2, 0xc ; 12
| 0x08047200 0a21 movs r1, 0xa ; 10
| 0x08047202 dff87005 ldr.w r0, [0x0804777a] ; [0x8047778:4]=0x40000400 io_TIM3
| 0x08047206 e4f70bfb bl GPIO_PinAFConfig
| 0x0804720a 4ff40050 mov.w r0, 0x2000
| 0x0804720e 0090 str r0, [sp]
| 0x08047210 0120 movs r0, 1 ; 1
| 0x08047212 8df80400 strb.w r0, [sp, 4]
| 0x08047216 00a9 add r1, sp, 0
| 0x08047218 dff85405 ldr.w r0, [0x08047774] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x0804721c e4f794fa bl GPIO_Init
| 0x08047220 4020 movs r0, 0x40 ; '@' ; 64
| 0x08047222 0090 str r0, [sp]
| 0x08047224 00a9 add r1, sp, 0
| 0x08047226 dff84805 ldr.w r0, [0x08047776] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x0804722a e4f78dfa bl GPIO_Init
| 0x0804722e 0af0f5fe bl kb_scan_matrix_4
\ 0x08047232 07bd pop {r0, r1, r2, pc}
/ (fcn) func_4729c 118
| Caller: init_a_lot_gfx_and_lcd
| func_4729c ();
| 0x0804729c 00b5 push {lr}
| 0x0804729e 97b0 sub sp, 0x5c ; '\'
| 0x080472a0 0121 movs r1, 1 ; 1
| 0x080472a2 0120 movs r0, 1 ; 1
| 0x080472a4 eff73ffc bl func_36b26
| 0x080472a8 0320 movs r0, 3 ; 3
| 0x080472aa 0090 str r0, [sp]
| 0x080472ac 0320 movs r0, 3 ; 3
| 0x080472ae 0190 str r0, [sp, 4]
| 0x080472b0 0220 movs r0, 2 ; 2
| 0x080472b2 0290 str r0, [sp, 8]
| 0x080472b4 0020 movs r0, 0
| 0x080472b6 0390 str r0, [sp, 0xc]
| 0x080472b8 0120 movs r0, 1 ; 1
| 0x080472ba 0490 str r0, [sp, 0x10]
| 0x080472bc 0020 movs r0, 0
| 0x080472be 0590 str r0, [sp, 0x14]
| 0x080472c0 5ff08050 movs.w r0, 0x10000000
| 0x080472c4 0690 str r0, [sp, 0x18]
| 0x080472c6 0020 movs r0, 0
| 0x080472c8 0790 str r0, [sp, 0x1c]
| 0x080472ca 0220 movs r0, 2 ; 2
| 0x080472cc 0890 str r0, [sp, 0x20]
| 0x080472ce 0820 movs r0, 8 ; 8
| 0x080472d0 0990 str r0, [sp, 0x24]
| 0x080472d2 1020 movs r0, 0x10 ; 16
| 0x080472d4 0a90 str r0, [sp, 0x28]
| 0x080472d6 0020 movs r0, 0
| 0x080472d8 0b90 str r0, [sp, 0x2c]
| 0x080472da 0020 movs r0, 0
| 0x080472dc 0d90 str r0, [sp, 0x34]
| 0x080472de 0020 movs r0, 0
| 0x080472e0 0e90 str r0, [sp, 0x38]
| 0x080472e2 0020 movs r0, 0
| 0x080472e4 0f90 str r0, [sp, 0x3c]
| 0x080472e6 4ff48050 mov.w r0, 0x1000
| 0x080472ea 1090 str r0, [sp, 0x40]
| 0x080472ec 0020 movs r0, 0
| 0x080472ee 1190 str r0, [sp, 0x44]
| 0x080472f0 0020 movs r0, 0
| 0x080472f2 1290 str r0, [sp, 0x48]
| 0x080472f4 0020 movs r0, 0
| 0x080472f6 1390 str r0, [sp, 0x4c]
| 0x080472f8 00a8 add r0, sp, 0
| 0x080472fa 1490 str r0, [sp, 0x50]
| 0x080472fc 00a8 add r0, sp, 0
| 0x080472fe 1590 str r0, [sp, 0x54]
| 0x08047300 07a8 add r0, sp, 0x1c
| 0x08047302 0af0b9fe bl func_52078
| 0x08047306 0121 movs r1, 1 ; 1
| 0x08047308 0020 movs r0, 0
| 0x0804730a 0af025ff bl func_52158
| 0x0804730e 17b0 add sp, 0x5c
\ 0x08047310 00bd pop {pc}
/ (fcn) func_47312 362
| Caller: init_more_and_start_watchdog
| func_47312 ();
| 0x08047312 00b5 push {lr}
| 0x08047314 89b0 sub sp, 0x24 ; '$'
| 0x08047316 05a8 add r0, sp, 0x14
| 0x08047318 fcf7b3fb bl func_43a82
| 0x0804731c 00a8 add r0, sp, 0
| 0x0804731e fcf7effc bl func_43d00
| 0x08047322 0920 movs r0, 9 ; 9
| 0x08047324 adf81400 strh.w r0, [sp, 0x14]
| 0x08047328 0020 movs r0, 0
| 0x0804732a adf81600 strh.w r0, [sp, 0x16]
| 0x0804732e 40f2cf20 movw r0, 0x2cf ; 719
| 0x08047332 0690 str r0, [sp, 0x18]
| 0x08047334 0020 movs r0, 0
| 0x08047336 adf81c00 strh.w r0, [sp, 0x1c]
| 0x0804733a 0020 movs r0, 0
| 0x0804733c 8df81e00 strb.w r0, [sp, 0x1e]
| 0x08047340 05a9 add r1, sp, 0x14
| 0x08047342 dff83404 ldr.w r0, [0x0804777e] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x08047346 fcf767fb bl func_43a18
| 0x0804734a 3020 movs r0, 0x30 ; '0' ; 48
| 0x0804734c adf80000 strh.w r0, [sp]
| 0x08047350 0120 movs r0, 1 ; 1
| 0x08047352 adf80200 strh.w r0, [sp, 2]
| 0x08047356 0020 movs r0, 0
| 0x08047358 adf80400 strh.w r0, [sp, 4]
| 0x0804735c 40f25930 movw r0, 0x359 ; 857
| 0x08047360 0290 str r0, [sp, 8]
| 0x08047362 0020 movs r0, 0
| 0x08047364 adf80c00 strh.w r0, [sp, 0xc]
| 0x08047368 0020 movs r0, 0
| 0x0804736a adf80e00 strh.w r0, [sp, 0xe]
| 0x0804736e 0020 movs r0, 0
| 0x08047370 adf81000 strh.w r0, [sp, 0x10]
| 0x08047374 0020 movs r0, 0
| 0x08047376 adf81200 strh.w r0, [sp, 0x12]
| 0x0804737a 00a9 add r1, sp, 0
| 0x0804737c dff8f803 ldr.w r0, [0x0804777c] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x08047380 fcf7b0fb bl TIM_43ae4
| 0x08047384 0821 movs r1, 8 ; 8
| 0x08047386 dff8f003 ldr.w r0, [0x0804777e] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x0804738a fcf7cefc bl func_43d2a
| 0x0804738e 3021 movs r1, 0x30 ; '0' ; 48
| 0x08047390 dff8e403 ldr.w r0, [0x0804777c] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x08047394 fcf71dfd bl func_43dd2
| 0x08047398 0022 movs r2, 0
| 0x0804739a 0221 movs r1, 2 ; 2
| 0x0804739c dff8d803 ldr.w r0, [0x0804777c] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x080473a0 fcf7f0fc bl TIM_ITConfig
| 0x080473a4 0022 movs r2, 0
| 0x080473a6 0121 movs r1, 1 ; 1
| 0x080473a8 dff8cc03 ldr.w r0, [0x0804777c] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x080473ac fcf7eafc bl TIM_ITConfig
| 0x080473b0 0121 movs r1, 1 ; 1
| 0x080473b2 dff8c403 ldr.w r0, [0x0804777e] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x080473b6 fcf779fb bl func_43aac
| 0x080473ba 0021 movs r1, 0
| 0x080473bc dff8b803 ldr.w r0, [0x0804777c] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x080473c0 fcf782fb bl TIM_EnableOrDisableCounter
| 0x080473c4 1320 movs r0, 0x13 ; 19
| 0x080473c6 adf81400 strh.w r0, [sp, 0x14]
| 0x080473ca 0020 movs r0, 0
| 0x080473cc adf81600 strh.w r0, [sp, 0x16]
| 0x080473d0 ff20 movs r0, 0xff ; 255
| 0x080473d2 0690 str r0, [sp, 0x18]
| 0x080473d4 0020 movs r0, 0
| 0x080473d6 adf81c00 strh.w r0, [sp, 0x1c]
| 0x080473da 0020 movs r0, 0
| 0x080473dc 8df81e00 strb.w r0, [sp, 0x1e]
| 0x080473e0 05a9 add r1, sp, 0x14
| 0x080473e2 dff89803 ldr.w r0, [0x08047782] ; [0x8047780:4]=0x40012200 io_ADC3
| 0x080473e6 fcf717fb bl func_43a18
| 0x080473ea 6020 movs r0, 0x60 ; '`' ; 96
| 0x080473ec adf80000 strh.w r0, [sp]
| 0x080473f0 0120 movs r0, 1 ; 1
| 0x080473f2 adf80200 strh.w r0, [sp, 2]
| 0x080473f6 0020 movs r0, 0
| 0x080473f8 adf80400 strh.w r0, [sp, 4]
| 0x080473fc 0020 movs r0, 0
| 0x080473fe 0290 str r0, [sp, 8]
| 0x08047400 0020 movs r0, 0
| 0x08047402 adf80c00 strh.w r0, [sp, 0xc]
| 0x08047406 0020 movs r0, 0
| 0x08047408 adf80e00 strh.w r0, [sp, 0xe]
| 0x0804740c 0020 movs r0, 0
| 0x0804740e adf81000 strh.w r0, [sp, 0x10]
| 0x08047412 0020 movs r0, 0
| 0x08047414 adf81200 strh.w r0, [sp, 0x12]
| 0x08047418 00a9 add r1, sp, 0
| 0x0804741a dff86003 ldr.w r0, [0x08047782] ; [0x8047780:4]=0x40012200 io_ADC3
| 0x0804741e fcf761fb bl TIM_43ae4
| 0x08047422 0821 movs r1, 8 ; 8
| 0x08047424 dff85403 ldr.w r0, [0x08047780] ; [0x8047780:4]=0x40012200 io_ADC3
| 0x08047428 fcf77ffc bl func_43d2a
| 0x0804742c 00a9 add r1, sp, 0
| 0x0804742e dff84c03 ldr.w r0, [0x08047782] ; [0x8047780:4]=0x40012200 io_ADC3
| 0x08047432 fcf796fb bl func_43b62
| 0x08047436 0821 movs r1, 8 ; 8
| 0x08047438 dff84003 ldr.w r0, [0x08047780] ; [0x8047780:4]=0x40012200 io_ADC3
| 0x0804743c fcf77efc bl func_43d3c
| 0x08047440 00a9 add r1, sp, 0
| 0x08047442 ce48 ldr r0, [0x0804777e] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x08047444 fcf7d3fb bl SomethingTestingTIM1_TIM8
| 0x08047448 0821 movs r1, 8 ; 8
| 0x0804744a cc48 ldr r0, [0x0804777e] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x0804744c fcf780fc bl func_43d50
| 0x08047450 0020 movs r0, 0
| 0x08047452 adf80000 strh.w r0, [sp]
| 0x08047456 00a9 add r1, sp, 0
| 0x08047458 c848 ldr r0, [0x0804777c] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x0804745a fcf70dfc bl SomethingElseWithTIM1_TIM8
| 0x0804745e 0022 movs r2, 0
| 0x08047460 0121 movs r1, 1 ; 1
| 0x08047462 c648 ldr r0, [0x0804777e] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x08047464 fcf78efc bl TIM_ITConfig
| 0x08047468 0121 movs r1, 1 ; 1
| 0x0804746a c448 ldr r0, [0x0804777e] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x0804746c fcf71efb bl func_43aac
| 0x08047470 0121 movs r1, 1 ; 1
| 0x08047472 c248 ldr r0, [0x0804777e] ; [0x804777c:4]=0x40010400 io_TIM8
| 0x08047474 fcf728fb bl TIM_EnableOrDisableCounter
| 0x08047478 09b0 add sp, 0x24
\ 0x0804747a 00bd pop {pc}
/ (fcn) func_474a0_heavy_bitbanging 108
| Caller: init_a_lot_gfx_and_lcd
| func_474a0_heavy_bitbanging ();
| 0x080474a0 80b5 push {r7, lr}
| 0x080474a2 4ff4ca41 mov.w r1, 0x6500
| 0x080474a6 3b48 ldr r0, [0x08047596] ; [0x8047594:4]=0x40020000 io_GPIOA
| 0x080474a8 e4f7b1f9 bl GPIO_ResetBits
| 0x080474ac 4ff40071 mov.w r1, 0x200 ; 512
| 0x080474b0 3848 ldr r0, [0x08047594] ; [0x8047594:4]=0x40020000 io_GPIOA
| 0x080474b2 e4f7aaf9 bl GPIO_SetBits
| 0x080474b6 8021 movs r1, 0x80 ; 128
| 0x080474b8 3648 ldr r0, [0x08047594] ; [0x8047594:4]=0x40020000 io_GPIOA
| 0x080474ba e4f7a8f9 bl GPIO_ResetBits
| 0x080474be 4ff40171 mov.w r1, 0x204 ; 516
| 0x080474c2 a948 ldr r0, [0x0804776a] ; [0x8047768:4]=0x40020400 io_GPIOB
| 0x080474c4 e4f7a3f9 bl GPIO_ResetBits
| 0x080474c8 4ff48851 mov.w r1, 0x1100
| 0x080474cc a648 ldr r0, [0x08047768] ; [0x8047768:4]=0x40020400 io_GPIOB
| 0x080474ce e4f79cf9 bl GPIO_SetBits
| 0x080474d2 42f2f031 movw r1, 0x23f0
| 0x080474d6 a548 ldr r0, [0x0804776e] ; [0x804776c:4]=0x40020800 io_GPIOC
| 0x080474d8 e4f799f9 bl GPIO_ResetBits
| 0x080474dc 4ff44051 mov.w r1, 0x3000
| 0x080474e0 a348 ldr r0, [0x08047770] ; [0x8047770:4]=0x40020c00 io_GPIOD
| 0x080474e2 e4f794f9 bl GPIO_ResetBits
| 0x080474e6 4ff43c61 mov.w r1, 0xbc0 ; 3008
| 0x080474ea a148 ldr r0, [0x08047772] ; [0x8047770:4]=0x40020c00 io_GPIOD
| 0x080474ec e4f78df9 bl GPIO_SetBits
| 0x080474f0 4021 movs r1, 0x40 ; '@' ; 64
| 0x080474f2 9f48 ldr r0, [0x08047772] ; [0x8047770:4]=0x40020c00 io_GPIOD
| 0x080474f4 e4f78bf9 bl GPIO_ResetBits
| 0x080474f8 42f23301 movw r1, 0x2033
| 0x080474fc 9d48 ldr r0, [0x08047774] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x080474fe e4f786f9 bl GPIO_ResetBits ; clear PE13, PE5, PE4, PE1, PE0 ?
| 0x08047502 4421 movs r1, 0x44 ; 'D' ; 68
| 0x08047504 9b48 ldr r0, [0x08047774] ; [0x8047774:4]=0x40021000 io_GPIOE
| 0x08047506 e4f780f9 bl GPIO_SetBits ; set PE2 and PE6, DMR/C5000 control ?
\ 0x0804750a 01bd pop {r0, pc}
/ (fcn) adc3_init 96
| Caller: init_more_and_start_watchdog
| adc3_init ();
| 0x08047518 00b5 push {lr}
| 0x0804751a 8bb0 sub sp, 0x2c ; ','
| 0x0804751c 0020 movs r0, 0
| 0x0804751e 0090 str r0, [sp]
| 0x08047520 0020 movs r0, 0
| 0x08047522 0190 str r0, [sp, 4]
| 0x08047524 0020 movs r0, 0
| 0x08047526 0290 str r0, [sp, 8]
| 0x08047528 0020 movs r0, 0
| 0x0804752a 0390 str r0, [sp, 0xc]
| 0x0804752c 00a8 add r0, sp, 0
| 0x0804752e 06f023f8 bl adc_related_4d578
| 0x08047532 5ff00070 movs.w r0, 0x2000000
| 0x08047536 0490 str r0, [sp, 0x10]
| 0x08047538 0020 movs r0, 0
| 0x0804753a 8df81400 strb.w r0, [sp, 0x14]
| 0x0804753e 0020 movs r0, 0
| 0x08047540 8df81500 strb.w r0, [sp, 0x15]
| 0x08047544 0020 movs r0, 0
| 0x08047546 0690 str r0, [sp, 0x18]
| 0x08047548 0020 movs r0, 0
| 0x0804754a 0890 str r0, [sp, 0x20]
| 0x0804754c 0120 movs r0, 1 ; 1
| 0x0804754e 8df82400 strb.w r0, [sp, 0x24]
| 0x08047552 04a9 add r1, sp, 0x10
| 0x08047554 8a48 ldr r0, [0x08047780] ; [0x8047780:4]=0x40012200 io_ADC3
| 0x08047556 05f0e9ff bl adc_related_4d52c
| 0x0804755a 0123 movs r3, 1 ; 1
| 0x0804755c 0122 movs r2, 1 ; 1
| 0x0804755e 0221 movs r1, 2 ; 2
| 0x08047560 8748 ldr r0, [0x08047780] ; [0x8047780:4]=0x40012200 io_ADC3
| 0x08047562 06f027f8 bl adc_related_4d5b4
| 0x08047566 0121 movs r1, 1 ; 1
| 0x08047568 8548 ldr r0, [0x08047780] ; [0x8047780:4]=0x40012200 io_ADC3
| 0x0804756a 06f016f8 bl adc_enable_disable
| 0x0804756e 8448 ldr r0, [0x08047782] ; [0x8047780:4]=0x40012200 io_ADC3
| 0x08047570 06f08af8 bl adc_StartConv
| 0x08047574 0bb0 add sp, 0x2c
\ 0x08047576 00bd pop {pc}
/ (fcn) func_475b8 418
| Caller: init_a_lot_gfx_and_lcd
| func_475b8 ();
| 0x080475b8 80b5 push {r7, lr}
| 0x080475ba 0220 movs r0, 2 ; 2
| 0x080475bc 6849 ldr r1, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080475be 0978 ldrb r1, [r1]
| 0x080475c0 60f30101 bfi r1, r0, 0, 2
| 0x080475c4 6648 ldr r0, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080475c6 0170 strb r1, [r0]
| 0x080475c8 0120 movs r0, 1 ; 1
| 0x080475ca 6549 ldr r1, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080475cc 4978 ldrb r1, [r1, 1]
| 0x080475ce 60f38301 bfi r1, r0, 2, 2
| 0x080475d2 6348 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080475d4 4170 strb r1, [r0, 1]
| 0x080475d6 6248 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080475d8 4078 ldrb r0, [r0, 1]
| 0x080475da 10f00f00 ands r0, r0, 0xf
| 0x080475de 50f01000 orrs r0, r0, 0x10
| 0x080475e2 5f49 ldr r1, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080475e4 4870 strb r0, [r1, 1]
| 0x080475e6 0520 movs r0, 5 ; 5
| 0x080475e8 5d49 ldr r1, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080475ea 8978 ldrb r1, [r1, 2]
| 0x080475ec 60f30301 bfi r1, r0, 0, 4
| 0x080475f0 5b48 ldr r0, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080475f2 8170 strb r1, [r0, 2]
| 0x080475f4 5a48 ldr r0, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080475f6 8078 ldrb r0, [r0, 2]
| 0x080475f8 10f0cf00 ands r0, r0, 0xcf
| 0x080475fc 5849 ldr r1, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080475fe 8870 strb r0, [r1, 2]
| 0x08047600 5748 ldr r0, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x08047602 8078 ldrb r0, [r0, 2]
| 0x08047604 10f0bf00 ands r0, r0, 0xbf
| 0x08047608 5549 ldr r1, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x0804760a 8870 strb r0, [r1, 2]
| 0x0804760c 5448 ldr r0, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x0804760e 0121 movs r1, 1 ; 1
| 0x08047610 8172 strb r1, [r0, 0xa]
| 0x08047612 5348 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x08047614 0121 movs r1, 1 ; 1
| 0x08047616 c180 strh r1, [r0, 6]
| 0x08047618 5148 ldr r0, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x0804761a 0121 movs r1, 1 ; 1
| 0x0804761c c172 strb r1, [r0, 0xb]
| 0x0804761e 5048 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x08047620 0121 movs r1, 1 ; 1
| 0x08047622 0173 strb r1, [r0, 0xc]
| 0x08047624 4e48 ldr r0, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x08047626 0079 ldrb r0, [r0, 4]
| 0x08047628 50f00400 orrs r0, r0, 4
| 0x0804762c 4c49 ldr r1, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x0804762e 0871 strb r0, [r1, 4]
| 0x08047630 4b48 ldr r0, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x08047632 5449 ldr r1, [0x08047786] ; [0x8047784:4]=0x43412500
| 0x08047634 0161 str r1, [r0, 0x10]
| 0x08047636 4a48 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x08047638 5249 ldr r1, [0x08047784] ; [0x8047784:4]=0x43412500
| 0x0804763a 4161 str r1, [r0, 0x14]
| 0x0804763c 4848 ldr r0, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x0804763e 4ff6ff71 movw r1, 0xffff
| 0x08047642 0183 strh r1, [r0, 0x18]
| 0x08047644 4648 ldr r0, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x08047646 4ff6ff71 movw r1, 0xffff
| 0x0804764a 4183 strh r1, [r0, 0x1a]
| 0x0804764c daf78dff bl aes_startup_check
| 0x08047650 dbf734fc bl md380_spiflash_read_zone_struct_with_number_in_byte3_maybe
| 0x08047654 4c48 ldr r0, [0x08047788] ; [0x8047788:4]=0x2001e57c zone_number_in_byte_3
| 0x08047656 c078 ldrb r0, [r0, 3]
| 0x08047658 0028 cmp r0, 0
| ,=< 0x0804765a 03d0 beq 0x8047664
| | 0x0804765c 4a48 ldr r0, [0x08047788] ; [0x8047788:4]=0x2001e57c zone_number_in_byte_3
| | 0x0804765e c078 ldrb r0, [r0, 3]
| | 0x08047660 fb28 cmp r0, 0xfb ; 251
| ,==< 0x08047662 04d3 blo 0x804766e
| |`-> 0x08047664 4848 ldr r0, [0x08047788] ; [0x8047788:4]=0x2001e57c zone_number_in_byte_3
| | 0x08047666 0121 movs r1, 1 ; 1
| | 0x08047668 c170 strb r1, [r0, 3]
| | 0x0804766a dbf730fc bl md380_spiflash_write_zone_struct_with_number_in_byte3_maybe
| `--> 0x0804766e 4648 ldr r0, [0x0804778a] ; [0x8047788:4]=0x2001e57c zone_number_in_byte_3
| 0x08047670 0078 ldrb r0, [r0]
| 0x08047672 4b28 cmp r0, 0x4b ; 'K' ; 75
| ,=< 0x08047674 07d1 bne 0x8047686
| | 0x08047676 4448 ldr r0, [0x0804778a] ; [0x8047788:4]=0x2001e57c zone_number_in_byte_3
| | 0x08047678 8078 ldrb r0, [r0, 2]
| | 0x0804767a 4449 ldr r1, [0x0804778e] ; [0x804778c:4]=0x2001e958
| | 0x0804767c 0870 strb r0, [r1]
| | 0x0804767e 4448 ldr r0, [0x08047792] ; [0x8047790:4]=0x2001e892 gui_opmode3
| | 0x08047680 0821 movs r1, 8 ; 8
| | 0x08047682 0170 strb r1, [r0]
| ,==< 0x08047684 02e0 b 0x804768c
| |`-> 0x08047686 4148 ldr r0, [0x0804778e] ; [0x804778c:4]=0x2001e958
| | 0x08047688 0121 movs r1, 1 ; 1
| | 0x0804768a 0170 strb r1, [r0]
| `--> 0x0804768c daf764f9 bl func_21958_spiflash_something
| 0x08047690 daf74fff bl func_22532_spiflash_security_2
| 0x08047694 dbf70bf8 bl func_226ae_spiflash_rd_2
| 0x08047698 dbf73cff bl func_23514
| 0x0804769c 3d48 ldr r0, [0x08047794] ; [0x8047794:4]=0x2001e935
| 0x0804769e 0078 ldrb r0, [r0]
| 0x080476a0 0128 cmp r0, 1 ; 1
| ,=< 0x080476a2 03d1 bne 0x80476ac
| | 0x080476a4 3c48 ldr r0, [0x08047798] ; [0x8047798:4]=0x2001e6ec
| | 0x080476a6 fa21 movs r1, 0xfa ; 250
| | 0x080476a8 0160 str r1, [r0]
| ,==< 0x080476aa 02e0 b 0x80476b2
| |`-> 0x080476ac 3a48 ldr r0, [0x08047798] ; [0x8047798:4]=0x2001e6ec
| | 0x080476ae 0021 movs r1, 0
| | 0x080476b0 0160 str r1, [r0]
| `--> 0x080476b2 dbf717f8 bl func_226e4_spiflash_rd_3
| 0x080476b6 dbf72df8 bl init_radioconfig_2_from_spi
| 0x080476ba dbf749f9 bl func_22950_spiflash_rd_4
| 0x080476be 3248 ldr r0, [0x0804778a] ; [0x8047788:4]=0x2001e57c zone_number_in_byte_3
| 0x080476c0 c078 ldrb r0, [r0, 3]
| 0x080476c2 dbf757fb bl spiflash_rd_zone_name_2__64byte
| 0x080476c6 3148 ldr r0, [0x0804778e] ; [0x804778c:4]=0x2001e958
| 0x080476c8 0078 ldrb r0, [r0]
| 0x080476ca 3449 ldr r1, [0x0804779e] ; [0x804779c:4]=0x2001cddc zone_name
| 0x080476cc 11eb4000 adds.w r0, r1, r0, lsl 1
| 0x080476d0 c08b ldrh r0, [r0, 0x1e]
| 0x080476d2 3349 ldr r1, [0x080477a2] ; [0x80477a0:4]=0x2001e850 selected_channel
| 0x080476d4 0880 strh r0, [r1]
| 0x080476d6 3248 ldr r0, [0x080477a2] ; [0x80477a0:4]=0x2001e850 selected_channel
| 0x080476d8 0088 ldrh r0, [r0]
| 0x080476da dbf7e4f9 bl channel_info_read_spi_init
| 0x080476de 2048 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080476e0 c07a ldrb r0, [r0, 0xb]
| 0x080476e2 401e subs r0, r0, 1
| 0x080476e4 c0b2 uxtb r0, r0
| 0x080476e6 fa28 cmp r0, 0xfa ; 250
| ,=< 0x080476e8 03d2 bhs 0x80476f2
| | 0x080476ea 1d48 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| | 0x080476ec c07a ldrb r0, [r0, 0xb]
| | 0x080476ee dbf7cdf9 bl func_22a8c
| `-> 0x080476f2 1b48 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080476f4 c088 ldrh r0, [r0, 6]
| 0x080476f6 dbf74cf9 bl load_contact
| 0x080476fa 1948 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x080476fc 807a ldrb r0, [r0, 0xa]
| 0x080476fe 401e subs r0, r0, 1
| 0x08047700 c0b2 uxtb r0, r0
| 0x08047702 2028 cmp r0, 0x20 ; 32
| ,=< 0x08047704 03d2 bhs 0x804770e
| | 0x08047706 1648 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| | 0x08047708 807a ldrb r0, [r0, 0xa]
| | 0x0804770a dbf72af9 bl func_22962_spiflash_rd_5
| `-> 0x0804770e 1448 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x08047710 007b ldrb r0, [r0, 0xc]
| 0x08047712 401e subs r0, r0, 1
| 0x08047714 c0b2 uxtb r0, r0
| 0x08047716 fa28 cmp r0, 0xfa ; 250
| ,=< 0x08047718 03d2 bhs 0x8047722
| | 0x0804771a 1148 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| | 0x0804771c 007b ldrb r0, [r0, 0xc]
| | 0x0804771e dbf76ef9 bl func_229fe
| `-> 0x08047722 0f48 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| 0x08047724 8078 ldrb r0, [r0, 2]
| 0x08047726 c0f30110 ubfx r0, r0, 4, 2
| 0x0804772a c0b2 uxtb r0, r0
| 0x0804772c 0128 cmp r0, 1 ; 1
| ,=< 0x0804772e 06d1 bne 0x804773e
| | 0x08047730 0b48 ldr r0, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| | 0x08047732 8078 ldrb r0, [r0, 2]
| | 0x08047734 10f00f00 ands r0, r0, 0xf
| | 0x08047738 dbf76ffb bl func_22e1a_spiflash_rd_8
| ,==< 0x0804773c 0ce0 b 0x8047758
| |`-> 0x0804773e 0848 ldr r0, [0x08047762] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| | 0x08047740 8078 ldrb r0, [r0, 2]
| | 0x08047742 c0f30110 ubfx r0, r0, 4, 2
| | 0x08047746 c0b2 uxtb r0, r0
| | 0x08047748 0228 cmp r0, 2 ; 2
| |,=< 0x0804774a 05d1 bne 0x8047758
| || 0x0804774c 0448 ldr r0, [0x08047760] ; [0x8047760:4]=0x2001de78 struct_channel_info2
| || 0x0804774e 8078 ldrb r0, [r0, 2]
| || 0x08047750 10f00700 ands r0, r0, 7
| || 0x08047754 dbf76dfb bl func_22e32_spiflash_rd_9
\ ``-> 0x08047758 01bd pop {r0, pc}
/ (fcn) func_477a4 94
| Caller: init_a_lot_gfx_and_lcd
| func_477a4 ();
| 0x080477a4 00b5 push {lr}
| 0x080477a6 83b0 sub sp, 0xc
| 0x080477a8 0121 movs r1, 1 ; 1
| 0x080477aa 0820 movs r0, 8 ; 8
| 0x080477ac eff79bf9 bl func_36ae6
| 0x080477b0 0120 movs r0, 1 ; 1
| 0x080477b2 8df80400 strb.w r0, [sp, 4]
| 0x080477b6 0020 movs r0, 0
| 0x080477b8 8df80600 strb.w r0, [sp, 6]
| 0x080477bc 0020 movs r0, 0
| 0x080477be 8df80700 strb.w r0, [sp, 7]
| 0x080477c2 0220 movs r0, 2 ; 2
| 0x080477c4 8df80500 strb.w r0, [sp, 5]
| 0x080477c8 4ff40060 mov.w r0, 0x800 ; 2048
| 0x080477cc 0090 str r0, [sp]
| 0x080477ce 00a9 add r1, sp, 0
| 0x080477d0 dff82c05 ldr.w r0, [0x08047d04] ; [0x8047d04:4]=0x40021000 io_GPIOE
| 0x080477d4 e3f7b8ff bl GPIO_Init
| 0x080477d8 0020 movs r0, 0
| 0x080477da 8df80400 strb.w r0, [sp, 4]
| 0x080477de 0120 movs r0, 1 ; 1
| 0x080477e0 8df80700 strb.w r0, [sp, 7]
| 0x080477e4 4ff48060 mov.w r0, 0x400 ; 1024
| 0x080477e8 0090 str r0, [sp]
| 0x080477ea 00a9 add r1, sp, 0
| 0x080477ec dff81005 ldr.w r0, [0x08047d04] ; [0x8047d04:4]=0x40021000 io_GPIOE
| 0x080477f0 e3f7aaff bl GPIO_Init
| 0x080477f4 4ff40061 mov.w r1, 0x800 ; 2048
| 0x080477f8 dff80405 ldr.w r0, [0x08047d04] ; [0x8047d04:4]=0x40021000 io_GPIOE
| 0x080477fc e4f705f8 bl GPIO_SetBits ; set PE11 = 'PTT_KEY' ??
\ 0x08047800 07bd pop {r0, r1, r2, pc}
/ (fcn) func_47802 136
| Caller: func_4788a
| func_47802 ();
| 0x08047802 38b5 push {r3, r4, r5, lr}
| 0x08047804 0400 movs r4, r0
| 0x08047806 1021 movs r1, 0x10 ; 16
| 0x08047808 dff8f804 ldr.w r0, [0x08047d08] ; [0x8047d08:4]=0x2001e670 sema2_poi
| 0x0804780c e3f7fdff bl GPIO_SetBits
| 0x08047810 0020 movs r0, 0
| ,=< 0x08047812 00e0 b 0x8047816
| .--> 0x08047814 401c adds r0, r0, 1
| |`-> 0x08047816 c0b2 uxtb r0, r0
| | 0x08047818 0528 cmp r0, 5 ; 5
| `==< 0x0804781a fbd3 blo 0x8047814
| 0x0804781c 4ff40061 mov.w r1, 0x800 ; 2048
| 0x08047820 dff8dc04 ldr.w r0, [0x08047d04] ; [0x8047d04:4]=0x40021000 io_GPIOE
| 0x08047824 e3f7f3ff bl GPIO_ResetBits ; clear PE11 = 'PTT_KEY' ??
| 0x08047828 0025 movs r5, 0
| ,=< 0x0804782a 04e0 b 0x8047836
| .--> 0x0804782c 401c adds r0, r0, 1
| .---> 0x0804782e c0b2 uxtb r0, r0
| ||| 0x08047830 0528 cmp r0, 5 ; 5
| |`==< 0x08047832 fbd3 blo 0x804782c
| | | 0x08047834 6d1c adds r5, r5, 1
| | `-> 0x08047836 edb2 uxtb r5, r5
| | 0x08047838 102d cmp r5, 0x10 ; 16
| | ,=< 0x0804783a 1fd2 bhs 0x804787c
| | | 0x0804783c 2004 lsls r0, r4, 0x10
| |,==< 0x0804783e 05d5 bpl 0x804784c
| ||| 0x08047840 2021 movs r1, 0x20 ; 32
| ||| 0x08047842 dff8c004 ldr.w r0, [0x08047d0a] ; [0x8047d08:4]=0x2001e670 sema2_poi
| ||| 0x08047846 e3f7e0ff bl GPIO_SetBits
| ,====< 0x0804784a 04e0 b 0x8047856
| ||`--> 0x0804784c 2021 movs r1, 0x20 ; 32
| || | 0x0804784e dff8b404 ldr.w r0, [0x08047d0a] ; [0x8047d08:4]=0x2001e670 sema2_poi
| || | 0x08047852 e3f7dcff bl GPIO_ResetBits
| `----> 0x08047856 1021 movs r1, 0x10 ; 16
| | | 0x08047858 dff8a804 ldr.w r0, [0x08047d08] ; [0x8047d08:4]=0x2001e670 sema2_poi
| | | 0x0804785c e3f7d7ff bl GPIO_ResetBits
| | | 0x08047860 6400 lsls r4, r4, 1
| | | 0x08047862 0020 movs r0, 0
| |,==< 0x08047864 00e0 b 0x8047868
| .----> 0x08047866 401c adds r0, r0, 1
| ||`--> 0x08047868 c0b2 uxtb r0, r0
| || | 0x0804786a 0528 cmp r0, 5 ; 5
| `====< 0x0804786c fbd3 blo 0x8047866
| | | 0x0804786e 1021 movs r1, 0x10 ; 16
| | | 0x08047870 dff89004 ldr.w r0, [0x08047d08] ; [0x8047d08:4]=0x2001e670 sema2_poi
| | | 0x08047874 e3f7c9ff bl GPIO_SetBits
| | | 0x08047878 0020 movs r0, 0
| `===< 0x0804787a d8e7 b 0x804782e
| `-> 0x0804787c 4ff40061 mov.w r1, 0x800 ; 2048
| 0x08047880 dff87c04 ldr.w r0, [0x08047d04] ; [0x8047d04:4]=0x40021000 io_GPIOE
| 0x08047884 e3f7c1ff bl GPIO_SetBits ; set PE11 = 'PTT_KEY' ??
\ 0x08047888 31bd pop {r0, r4, r5, pc}
/ (fcn) func_4788a 70
| Caller: func_478d0
| func_4788a ();
| 0x0804788a 70b5 push {r4, r5, r6, lr}
| 0x0804788c 82b0 sub sp, 8
| 0x0804788e 0400 movs r4, r0
| 0x08047890 0d00 movs r5, r1
| 0x08047892 00aa add r2, sp, 0
| 0x08047894 0021 movs r1, 0
| 0x08047896 dff87004 ldr.w r0, [0x08047d0e] ; [0x8047d0c:4]=0x19a280
| 0x0804789a 0068 ldr r0, [r0]
| 0x0804789c f7f75aff bl OSSemPend
| 0x080478a0 0026 movs r6, 0
| ,=< 0x080478a2 09e0 b 0x80478b8
| .--> 0x080478a4 401c adds r0, r0, 1
| .---> 0x080478a6 c0b2 uxtb r0, r0
| ||| 0x080478a8 0528 cmp r0, 5 ; 5
| |`==< 0x080478aa fbd3 blo 0x80478a4
| | | 0x080478ac f6b2 uxtb r6, r6
| | | 0x080478ae 34f81600 ldrh.w r0, [r4, r6, lsl 1]
| | | 0x080478b2 fff7a6ff bl func_47802
| | | 0x080478b6 761c adds r6, r6, 1
| | `-> 0x080478b8 f6b2 uxtb r6, r6
| | 0x080478ba edb2 uxtb r5, r5
| | 0x080478bc ae42 cmp r6, r5
| | ,=< 0x080478be 01d2 bhs 0x80478c4
| | | 0x080478c0 0020 movs r0, 0
| `===< 0x080478c2 f0e7 b 0x80478a6
| `-> 0x080478c4 dff84004 ldr.w r0, [0x08047d0c] ; [0x8047d0c:4]=0x19a280
| 0x080478c8 0068 ldr r0, [r0]
| 0x080478ca f7f7bbff bl OSSemPost
\ 0x080478ce 73bd pop {r0, r1, r4, r5, r6, pc}
/ (fcn) func_478d0 154
| Caller: func_479e6_channel_related func_4796a
| func_478d0 ();
| 0x080478d0 30b5 push {r4, r5, lr}
| 0x080478d2 85b0 sub sp, 0x14
| 0x080478d4 0c00 movs r4, r1
| 0x080478d6 dff83414 ldr.w r1, [0x08047d12] ; [0x8047d10:4]=0x2001e95f
| 0x080478da e4b2 uxtb r4, r4
| 0x080478dc 91fbf4f2 sdiv r2, r1, r4
| 0x080478e0 b0fbf2f1 udiv r1, r0, r2
| 0x080478e4 b1f12005 subs.w r5, r1, 0x20
| 0x080478e8 b0fbf2f1 udiv r1, r0, r2
| 0x080478ec 02fb1100 mls r0, r2, r1, r0
| 0x080478f0 5ff48021 movs.w r1, 0x40000
| 0x080478f4 a1fb0001 umull r0, r1, r1, r0
| 0x080478f8 0023 movs r3, 0
| 0x080478fa 0af04bfc bl func_52194
| 0x080478fe 8003 lsls r0, r0, 0xe
| 0x08047900 800b lsrs r0, r0, 0xe
| 0x08047902 8103 lsls r1, r0, 0xe
| ,=< 0x08047904 00d5 bpl 0x8047908
| | 0x08047906 6d1c adds r5, r5, 1
| `-> 0x08047908 4ff40041 mov.w r1, 0x8000
| 0x0804790c adf80010 strh.w r1, [sp]
| 0x08047910 4ff41041 mov.w r1, 0x9000
| 0x08047914 adf80210 strh.w r1, [sp, 2]
| 0x08047918 44f6ff71 movw r1, 0x4fff
| 0x0804791c 51fa84f1 uxtab r1, r1, r4
| 0x08047920 adf80410 strh.w r1, [sp, 4]
| 0x08047924 adf80650 strh.w r5, [sp, 6]
| 0x08047928 4ff48071 mov.w r1, 0x100 ; 256
| 0x0804792c b0fbf1f2 udiv r2, r0, r1
| 0x08047930 02fb1102 mls r2, r2, r1, r0
| 0x08047934 12f50051 adds.w r1, r2, 0x2000
| 0x08047938 adf80810 strh.w r1, [sp, 8]
| 0x0804793c 000a lsrs r0, r0, 8
| 0x0804793e 10f58050 adds.w r0, r0, 0x1000
| 0x08047942 adf80a00 strh.w r0, [sp, 0xa]
| 0x08047946 46f21f00 movw r0, 0x601f
| 0x0804794a adf80c00 strh.w r0, [sp, 0xc]
| 0x0804794e 47f2d030 movw r0, 0x73d0
| 0x08047952 adf80e00 strh.w r0, [sp, 0xe]
| 0x08047956 0821 movs r1, 8 ; 8
| 0x08047958 00a8 add r0, sp, 0
| 0x0804795a fff796ff bl func_4788a
| 0x0804795e dff8b003 ldr.w r0, [0x08047d16] ; [0x8047d14:4]=0x2001e7c6
| 0x08047962 0021 movs r1, 0
| 0x08047964 0170 strb r1, [r0]
| 0x08047966 05b0 add sp, 0x14
\ 0x08047968 30bd pop {r4, r5, pc}
/ (fcn) func_4796a 124
| func_4796a ();
| 0x0804796a 80b5 push {r7, lr}
| 0x0804796c dff8a403 ldr.w r0, [0x08047d18] ; [0x8047d18:4]=0x2001de78 struct_channel_info2
| 0x08047970 0088 ldrh r0, [r0]
| 0x08047972 42f20101 movw r1, 0x2001
| 0x08047976 8842 cmp r0, r1
| ,=< 0x08047978 19d2 bhs 0x80479ae
| | 0x0804797a dff89c03 ldr.w r0, [0x08047d1e] ; [0x8047d1c:4]=0x4c37b8
| | 0x0804797e 0069 ldr r0, [r0, 0x10]
| | 0x08047980 dff739fd bl 0x80273f6
| | 0x08047984 dff89413 ldr.w r1, [0x08047d20] ; [0x8047d20:4]=0xffb3c848
| | 0x08047988 0818 adds r0, r1, r0
| | 0x0804798a 4000 lsls r0, r0, 1
| | 0x0804798c dff88813 ldr.w r1, [0x08047d1c] ; [0x8047d1c:4]=0x4c37b8
| | 0x08047990 c978 ldrb r1, [r1, 3]
| | 0x08047992 11f00301 ands r1, r1, 3
| | 0x08047996 c9b2 uxtb r1, r1
| | 0x08047998 0129 cmp r1, 1 ; 1
| ,==< 0x0804799a 02d0 beq 0x80479a2
| || 0x0804799c 0229 cmp r1, 2 ; 2
| ,===< 0x0804799e 02d0 beq 0x80479a6
| ,====< 0x080479a0 03e0 b 0x80479aa
| ||`--> 0x080479a2 0521 movs r1, 5 ; 5
| ||,==< 0x080479a4 1be0 b 0x80479de
| |`---> 0x080479a6 0421 movs r1, 4 ; 4
| |,===< 0x080479a8 19e0 b 0x80479de
| `----> 0x080479aa 0621 movs r1, 6 ; 6
| ,====< 0x080479ac 17e0 b 0x80479de
| |||`-> 0x080479ae dff86803 ldr.w r0, [0x08047d1e] ; [0x8047d1c:4]=0x4c37b8
| ||| 0x080479b2 0069 ldr r0, [r0, 0x10]
| ||| 0x080479b4 dff71ffd bl 0x80273f6
| ||| 0x080479b8 dff86413 ldr.w r1, [0x08047d24] ; [0x8047d24:4]=0x2001c380
| ||| 0x080479bc 0818 adds r0, r1, r0
| ||| 0x080479be dff85813 ldr.w r1, [0x08047d1e] ; [0x8047d1c:4]=0x4c37b8
| ||| 0x080479c2 c978 ldrb r1, [r1, 3]
| ||| 0x080479c4 11f00301 ands r1, r1, 3
| ||| 0x080479c8 c9b2 uxtb r1, r1
| ||| 0x080479ca 0129 cmp r1, 1 ; 1
| |||,=< 0x080479cc 02d0 beq 0x80479d4
| |||| 0x080479ce 0229 cmp r1, 2 ; 2
| ,=====< 0x080479d0 02d0 beq 0x80479d8
| ,======< 0x080479d2 03e0 b 0x80479dc
| |||||`-> 0x080479d4 0321 movs r1, 3 ; 3
| |||||,=< 0x080479d6 02e0 b 0x80479de
| |`-----> 0x080479d8 0221 movs r1, 2 ; 2
| |,=====< 0x080479da 00e0 b 0x80479de
| `------> 0x080479dc 0421 movs r1, 4 ; 4
| `````-> 0x080479de c9b2 uxtb r1, r1
| 0x080479e0 fff776ff bl func_478d0
\ 0x080479e4 01bd pop {r0, pc}
/ (fcn) func_479e6_channel_related 108
| func_479e6_channel_related ();
| 0x080479e6 80b5 push {r7, lr}
| 0x080479e8 dff82803 ldr.w r0, [0x08047d18] ; [0x8047d18:4]=0x2001de78 struct_channel_info2
| 0x080479ec 0088 ldrh r0, [r0]
| 0x080479ee 42f20101 movw r1, 0x2001
| 0x080479f2 8842 cmp r0, r1
| ,=< 0x080479f4 16d2 bhs 0x8047a24
| | 0x080479f6 dff82003 ldr.w r0, [0x08047d1e] ; [0x8047d1c:4]=0x4c37b8
| | 0x080479fa 4069 ldr r0, [r0, 0x14]
| | 0x080479fc dff7fbfc bl 0x80273f6
| | 0x08047a00 4000 lsls r0, r0, 1
| | 0x08047a02 dff81413 ldr.w r1, [0x08047d1e] ; [0x8047d1c:4]=0x4c37b8
| | 0x08047a06 0979 ldrb r1, [r1, 4]
| | 0x08047a08 11f00301 ands r1, r1, 3
| | 0x08047a0c c9b2 uxtb r1, r1
| | 0x08047a0e 0129 cmp r1, 1 ; 1
| ,==< 0x08047a10 02d0 beq 0x8047a18
| || 0x08047a12 0229 cmp r1, 2 ; 2
| ,===< 0x08047a14 02d0 beq 0x8047a1c
| ,====< 0x08047a16 03e0 b 0x8047a20
| ||`--> 0x08047a18 0521 movs r1, 5 ; 5
| ||,==< 0x08047a1a 16e0 b 0x8047a4a
| |`---> 0x08047a1c 0421 movs r1, 4 ; 4
| |,===< 0x08047a1e 14e0 b 0x8047a4a
| `----> 0x08047a20 0621 movs r1, 6 ; 6
| ,====< 0x08047a22 12e0 b 0x8047a4a
| |||`-> 0x08047a24 bc48 ldr r0, [0x08047d18] ; [0x8047d18:4]=0x2001de78 struct_channel_info2
| ||| 0x08047a26 4069 ldr r0, [r0, 0x14]
| ||| 0x08047a28 dff7e5fc bl 0x80273f6
| ||| 0x08047a2c ba49 ldr r1, [0x08047d18] ; [0x8047d18:4]=0x2001de78 struct_channel_info2
| ||| 0x08047a2e 0979 ldrb r1, [r1, 4]
| ||| 0x08047a30 11f00301 ands r1, r1, 3
| ||| 0x08047a34 c9b2 uxtb r1, r1
| ||| 0x08047a36 0129 cmp r1, 1 ; 1
| |||,=< 0x08047a38 02d0 beq 0x8047a40
| |||| 0x08047a3a 0229 cmp r1, 2 ; 2
| ,=====< 0x08047a3c 02d0 beq 0x8047a44
| ,======< 0x08047a3e 03e0 b 0x8047a48
| |||||`-> 0x08047a40 0321 movs r1, 3 ; 3
| |||||,=< 0x08047a42 02e0 b 0x8047a4a
| |`-----> 0x08047a44 0221 movs r1, 2 ; 2
| |,=====< 0x08047a46 00e0 b 0x8047a4a
| `------> 0x08047a48 0421 movs r1, 4 ; 4
| `````-> 0x08047a4a c9b2 uxtb r1, r1
| 0x08047a4c fff740ff bl func_478d0
\ 0x08047a50 01bd pop {r0, pc}
/ (fcn) func_47a52 50
| func_47a52 ();
| 0x08047a52 00b5 push {lr}
| 0x08047a54 85b0 sub sp, 0x14
| 0x08047a56 00a8 add r0, sp, 0
| 0x08047a58 0af02dfc bl clear_16_bytes_from_R0
| 0x08047a5c 00a9 add r1, sp, 0
| 0x08047a5e 1020 movs r0, 0x10 ; 16
| 0x08047a60 0af010fc bl func_52284
| 0x08047a64 0121 movs r1, 1 ; 1
| 0x08047a66 1020 movs r0, 0x10 ; 16
| 0x08047a68 0af02efc bl func_522c8
| 0x08047a6c ad48 ldr r0, [0x08047d24] ; [0x8047d24:4]=0x2001c380
| 0x08047a6e 417a ldrb r1, [r0, 9]
| 0x08047a70 89b2 uxth r1, r1
| 0x08047a72 8800 lsls r0, r1, 2
| 0x08047a74 10f5c061 adds.w r1, r0, 0x600
| 0x08047a78 89b2 uxth r1, r1
| 0x08047a7a 0020 movs r0, 0
| 0x08047a7c 0af048fc bl SomethingElseWritingDAC
| 0x08047a80 05b0 add sp, 0x14
\ 0x08047a82 00bd pop {pc}
/ (fcn) func_47a84 50
| Caller: func_4fe14_monster_accessing_C5000
| func_47a84 ();
| 0x08047a84 00b5 push {lr}
| 0x08047a86 85b0 sub sp, 0x14
| 0x08047a88 00a8 add r0, sp, 0
| 0x08047a8a 0af014fc bl clear_16_bytes_from_R0
| 0x08047a8e 00a9 add r1, sp, 0
| 0x08047a90 1020 movs r0, 0x10 ; 16
| 0x08047a92 0af0f7fb bl func_52284
| 0x08047a96 0121 movs r1, 1 ; 1
| 0x08047a98 1020 movs r0, 0x10 ; 16
| 0x08047a9a 0af015fc bl func_522c8
| 0x08047a9e a148 ldr r0, [0x08047d26] ; [0x8047d24:4]=0x2001c380
| 0x08047aa0 417a ldrb r1, [r0, 9]
| 0x08047aa2 89b2 uxth r1, r1
| 0x08047aa4 8800 lsls r0, r1, 2
| 0x08047aa6 10f5c061 adds.w r1, r0, 0x600
| 0x08047aaa 89b2 uxth r1, r1
| 0x08047aac 0020 movs r0, 0
| 0x08047aae 0af02ffc bl SomethingElseWritingDAC
| 0x08047ab2 05b0 add sp, 0x14
\ 0x08047ab4 00bd pop {pc}
/ (fcn) func_47ab6 246
| Caller: task_468f8 func_3228e
| func_47ab6 ();
| 0x08047ab6 30b5 push {r4, r5, lr}
| 0x08047ab8 87b0 sub sp, 0x1c
| 0x08047aba 03a8 add r0, sp, 0xc
| 0x08047abc 0af0fbfb bl clear_16_bytes_from_R0
| 0x08047ac0 03a9 add r1, sp, 0xc
| 0x08047ac2 0020 movs r0, 0
| 0x08047ac4 0af0defb bl func_52284
| 0x08047ac8 0021 movs r1, 0
| 0x08047aca 0420 movs r0, 4 ; 4
| 0x08047acc 0af012fc bl TimerIRQ_Sub7_writes_DAC
| 0x08047ad0 0021 movs r1, 0
| 0x08047ad2 0020 movs r0, 0
| 0x08047ad4 0af0f8fb bl func_522c8
| 0x08047ad8 4720 movs r0, 0x47 ; 'G' ; 71
| 0x08047ada adf80000 strh.w r0, [sp]
| 0x08047ade 0020 movs r0, 0
| 0x08047ae0 adf80200 strh.w r0, [sp, 2]
| 0x08047ae4 6320 movs r0, 0x63 ; 'c' ; 99
| 0x08047ae6 0190 str r0, [sp, 4]
| 0x08047ae8 0020 movs r0, 0
| 0x08047aea adf80800 strh.w r0, [sp, 8]
| 0x08047aee 0020 movs r0, 0
| 0x08047af0 8df80a00 strb.w r0, [sp, 0xa]
| 0x08047af4 00a9 add r1, sp, 0
| 0x08047af6 8c48 ldr r0, [0x08047d2a] ; [0x8047d28:4]=0x40001000 io_TIM6
| 0x08047af8 fbf78eff bl func_43a18
| 0x08047afc 0022 movs r2, 0
| 0x08047afe 0121 movs r1, 1 ; 1
| 0x08047b00 8948 ldr r0, [0x08047d28] ; [0x8047d28:4]=0x40001000 io_TIM6
| 0x08047b02 fcf73ff9 bl TIM_ITConfig
| 0x08047b06 0021 movs r1, 0
| 0x08047b08 8748 ldr r0, [0x08047d28] ; [0x8047d28:4]=0x40001000 io_TIM6
| 0x08047b0a fbf7ddff bl TIM_EnableOrDisableCounter
| 0x08047b0e 40f2cf20 movw r0, 0x2cf ; 719
| 0x08047b12 adf80000 strh.w r0, [sp]
| 0x08047b16 0020 movs r0, 0
| 0x08047b18 adf80200 strh.w r0, [sp, 2]
| 0x08047b1c 40f22b10 movw r0, 0x12b ; 299
| 0x08047b20 0190 str r0, [sp, 4]
| 0x08047b22 0020 movs r0, 0
| 0x08047b24 adf80800 strh.w r0, [sp, 8]
| 0x08047b28 0020 movs r0, 0
| 0x08047b2a 8df80a00 strb.w r0, [sp, 0xa]
| 0x08047b2e 00a9 add r1, sp, 0
| 0x08047b30 7e48 ldr r0, [0x08047d2c] ; [0x8047d2c:4]=0x40000800 io_TIM4
| 0x08047b32 fbf771ff bl func_43a18
| 0x08047b36 0022 movs r2, 0
| 0x08047b38 0121 movs r1, 1 ; 1
| 0x08047b3a 7c48 ldr r0, [0x08047d2e] ; [0x8047d2c:4]=0x40000800 io_TIM4
| 0x08047b3c fcf722f9 bl TIM_ITConfig
| 0x08047b40 0021 movs r1, 0
| 0x08047b42 7a48 ldr r0, [0x08047d2e] ; [0x8047d2c:4]=0x40000800 io_TIM4
| 0x08047b44 fbf7c0ff bl TIM_EnableOrDisableCounter
| 0x08047b48 7948 ldr r0, [0x08047d30] ; [0x8047d30:4]=0x2001e892 gui_opmode3
| 0x08047b4a 0078 ldrb r0, [r0]
| 0x08047b4c 7a28 cmp r0, 0x7a ; 'z' ; 122
| ,=< 0x08047b4e 03d0 beq 0x8047b58
| | 0x08047b50 7748 ldr r0, [0x08047d30] ; [0x8047d30:4]=0x2001e892 gui_opmode3
| | 0x08047b52 0078 ldrb r0, [r0]
| | 0x08047b54 7b28 cmp r0, 0x7b ; '{' ; 123
| ,==< 0x08047b56 04d1 bne 0x8047b62
| |`-> 0x08047b58 7648 ldr r0, [0x08047d34] ; [0x8047d34:4]=0x2001e89c
| | 0x08047b5a 7749 ldr r1, [0x08047d3a] ; [0x8047d38:4]=0x2001e89e
| | 0x08047b5c 0978 ldrb r1, [r1]
| | 0x08047b5e 0170 strb r1, [r0]
| |,=< 0x08047b60 22e0 b 0x8047ba8
| `--> 0x08047b62 6d48 ldr r0, [0x08047d1a] ; [0x8047d18:4]=0x2001de78 struct_channel_info2
| | 0x08047b64 4069 ldr r0, [r0, 0x14]
| | 0x08047b66 000c lsrs r0, r0, 0x10
| | 0x08047b68 80b2 uxth r0, r0
| | 0x08047b6a dff721fc bl func_273b0
| | 0x08047b6e 0400 movs r4, r0
| | 0x08047b70 7248 ldr r0, [0x08047d3c] ; [0x8047d3c:4]=0x2001e7c4
| | 0x08047b72 0088 ldrh r0, [r0]
| | 0x08047b74 dff71cfc bl func_273b0
| | 0x08047b78 0500 movs r5, r0
| | 0x08047b7a 6648 ldr r0, [0x08047d16] ; [0x8047d14:4]=0x2001e7c6
| | 0x08047b7c 0088 ldrh r0, [r0]
| | 0x08047b7e dff717fc bl func_273b0
| | 0x08047b82 6549 ldr r1, [0x08047d1a] ; [0x8047d18:4]=0x2001de78 struct_channel_info2
| | 0x08047b84 0979 ldrb r1, [r1, 4]
| | 0x08047b86 c1f34011 ubfx r1, r1, 5, 1
| | 0x08047b8a c907 lsls r1, r1, 0x1f
| ,==< 0x08047b8c 01d5 bpl 0x8047b92
| || 0x08047b8e 6c4b ldr r3, [0x08047d42] ; [0x8047d40:4]=0x2001c390
| ,===< 0x08047b90 00e0 b 0x8047b94
| |`--> 0x08047b92 6c4b ldr r3, [0x08047d46] ; [0x8047d44:4]=0x2001c3a0
| `---> 0x08047b94 0200 movs r2, r0
| | 0x08047b96 92b2 uxth r2, r2
| | 0x08047b98 2900 movs r1, r5
| | 0x08047b9a 89b2 uxth r1, r1
| | 0x08047b9c 2000 movs r0, r4
| | 0x08047b9e 80b2 uxth r0, r0
| | 0x08047ba0 dff797fc bl 0x80274d2
| | 0x08047ba4 6349 ldr r1, [0x08047d34] ; [0x8047d34:4]=0x2001e89c
| | 0x08047ba6 0870 strb r0, [r1]
| `-> 0x08047ba8 07b0 add sp, 0x1c
\ 0x08047baa 30bd pop {r4, r5, pc}
/ (fcn) TimerIRQ_Sub1 90
| Caller: task_468f8 TIM4_IRQHandler
| TimerIRQ_Sub1 ();
| 0x08047bac 80b5 push {r7, lr}
| 0x08047bae 00ab add r3, sp, 0
| 0x08047bb0 0022 movs r2, 0
| 0x08047bb2 0221 movs r1, 2 ; 2
| 0x08047bb4 6448 ldr r0, [0x08047d48] ; [0x8047d48:4]=0x2001e640 idle_control_struct
| 0x08047bb6 0068 ldr r0, [r0]
| 0x08047bb8 00f0affa bl RTCAndTimerIRQ_Sub2
| 0x08047bbc 0121 movs r1, 1 ; 1
| 0x08047bbe 0020 movs r0, 0
| 0x08047bc0 0af082fb bl func_522c8
| 0x08047bc4 0021 movs r1, 0
| 0x08047bc6 0420 movs r0, 4 ; 4
| 0x08047bc8 0af094fb bl TimerIRQ_Sub7_writes_DAC
| 0x08047bcc 0122 movs r2, 1 ; 1
| 0x08047bce 2021 movs r1, 0x20 ; 32
| 0x08047bd0 5e48 ldr r0, [0x08047d4c] ; [0x8047d4c:4]=0x40020800 io_GPIOC
| 0x08047bd2 e3f71efe bl GPIO_WriteBit
| 0x08047bd6 0122 movs r2, 1 ; 1
| 0x08047bd8 1021 movs r1, 0x10 ; 16
| 0x08047bda 5c48 ldr r0, [0x08047d4e] ; [0x8047d4c:4]=0x40020800 io_GPIOC
| 0x08047bdc e3f719fe bl GPIO_WriteBit
| 0x08047be0 5b48 ldr r0, [0x08047d50] ; [0x8047d50:4]=0x2001e896 tim_control_byte
| 0x08047be2 0021 movs r1, 0
| 0x08047be4 0170 strb r1, [r0]
| 0x08047be6 5b48 ldr r0, [0x08047d56] ; [0x8047d54:4]=0x2001e5f0 radio_status_1
| 0x08047be8 4078 ldrb r0, [r0, 1]
| 0x08047bea 50f00400 orrs r0, r0, 4
| 0x08047bee 5949 ldr r1, [0x08047d56] ; [0x8047d54:4]=0x2001e5f0 radio_status_1
| 0x08047bf0 4870 strb r0, [r1, 1]
| 0x08047bf2 0122 movs r2, 1 ; 1
| 0x08047bf4 0121 movs r1, 1 ; 1
| 0x08047bf6 4c48 ldr r0, [0x08047d2a] ; [0x8047d28:4]=0x40001000 io_TIM6
| 0x08047bf8 fcf7c4f8 bl TIM_ITConfig
| 0x08047bfc 0121 movs r1, 1 ; 1
| 0x08047bfe 4a48 ldr r0, [0x08047d2a] ; [0x8047d28:4]=0x40001000 io_TIM6
| 0x08047c00 fbf762ff bl TIM_EnableOrDisableCounter
\ 0x08047c04 01bd pop {r0, pc}
/ (fcn) TimerIRQ_Sub4 40
| Caller: TIM4_IRQHandler c5000_wr_60_4
| TimerIRQ_Sub4 ();
| 0x08047c06 80b5 push {r7, lr}
| 0x08047c08 5148 ldr r0, [0x08047d50] ; [0x8047d50:4]=0x2001e896 tim_control_byte
| 0x08047c0a 1021 movs r1, 0x10 ; 16
| 0x08047c0c 0170 strb r1, [r0]
| 0x08047c0e 5148 ldr r0, [0x08047d56] ; [0x8047d54:4]=0x2001e5f0 radio_status_1
| 0x08047c10 4078 ldrb r0, [r0, 1]
| 0x08047c12 10f0fb00 ands r0, r0, 0xfb
| 0x08047c16 4f49 ldr r1, [0x08047d56] ; [0x8047d54:4]=0x2001e5f0 radio_status_1
| 0x08047c18 4870 strb r0, [r1, 1]
| 0x08047c1a 0122 movs r2, 1 ; 1
| 0x08047c1c 0121 movs r1, 1 ; 1
| 0x08047c1e 4248 ldr r0, [0x08047d2a] ; [0x8047d28:4]=0x40001000 io_TIM6
| 0x08047c20 fcf7b0f8 bl TIM_ITConfig
| 0x08047c24 0121 movs r1, 1 ; 1
| 0x08047c26 4048 ldr r0, [0x08047d2a] ; [0x8047d28:4]=0x40001000 io_TIM6
| 0x08047c28 fbf74eff bl TIM_EnableOrDisableCounter
\ 0x08047c2c 01bd pop {r0, pc}
/ (fcn) TimerIRQ_Sub8 40
| Caller: TIM6_DAC_IRQHandler c5000_wr_60_5
| TimerIRQ_Sub8 ();
| 0x08047c2e 80b5 push {r7, lr}
| 0x08047c30 0021 movs r1, 0
| 0x08047c32 0420 movs r0, 4 ; 4
| 0x08047c34 0af05efb bl TimerIRQ_Sub7_writes_DAC
| 0x08047c38 0021 movs r1, 0
| 0x08047c3a 0020 movs r0, 0
| 0x08047c3c 0af044fb bl func_522c8
| 0x08047c40 0022 movs r2, 0
| 0x08047c42 2021 movs r1, 0x20 ; 32
| 0x08047c44 4148 ldr r0, [0x08047d4c] ; [0x8047d4c:4]=0x40020800 io_GPIOC
| 0x08047c46 e3f7e4fd bl GPIO_WriteBit
| 0x08047c4a 0022 movs r2, 0
| 0x08047c4c 1021 movs r1, 0x10 ; 16
| 0x08047c4e 3f48 ldr r0, [0x08047d4e] ; [0x8047d4c:4]=0x40020800 io_GPIOC
| 0x08047c50 e3f7dffd bl GPIO_WriteBit
\ 0x08047c54 01bd pop {r0, pc}
/ (fcn) WaitAndDoSomethingWithGPIOC 56
| Caller: func_4fe14_monster_accessing_C5000 c5000_wr_60_5
| WaitAndDoSomethingWithGPIOC ();
| 0x08047c56 80b5 push {r7, lr}
| 0x08047c58 0a20 movs r0, 0xa ; 10
| 0x08047c5a ecf72bf9 bl OSTimeDly
| 0x08047c5e 0121 movs r1, 1 ; 1
| 0x08047c60 0020 movs r0, 0
| 0x08047c62 0af031fb bl func_522c8
| 0x08047c66 3348 ldr r0, [0x08047d36] ; [0x8047d34:4]=0x2001e89c
| 0x08047c68 0078 ldrb r0, [r0]
| 0x08047c6a ff21 movs r1, 0xff ; 255
| 0x08047c6c 10fb01f1 smulbb r1, r0, r1
| 0x08047c70 89b2 uxth r1, r1
| 0x08047c72 0420 movs r0, 4 ; 4
| 0x08047c74 0af03efb bl TimerIRQ_Sub7_writes_DAC
| 0x08047c78 0122 movs r2, 1 ; 1
| 0x08047c7a 2021 movs r1, 0x20 ; 32
| 0x08047c7c 3348 ldr r0, [0x08047d4c] ; [0x8047d4c:4]=0x40020800 io_GPIOC
| 0x08047c7e e3f7c8fd bl GPIO_WriteBit
| 0x08047c82 0122 movs r2, 1 ; 1
| 0x08047c84 1021 movs r1, 0x10 ; 16
| 0x08047c86 3148 ldr r0, [0x08047d4e] ; [0x8047d4c:4]=0x40020800 io_GPIOC
| 0x08047c88 e3f7c3fd bl GPIO_WriteBit
\ 0x08047c8c 01bd pop {r0, pc}
/ (fcn) SomethingWithChannelInfo2 94
| SomethingWithChannelInfo2 ();
| 0x08047c8e 38b5 push {r3, r4, r5, lr}
| 0x08047c90 2748 ldr r0, [0x08047d30] ; [0x8047d30:4]=0x2001e892 gui_opmode3
| 0x08047c92 0078 ldrb r0, [r0]
| 0x08047c94 7c28 cmp r0, 0x7c ; '|' ; 124
| ,=< 0x08047c96 02d1 bne 0x8047c9e
| | 0x08047c98 2748 ldr r0, [0x08047d38] ; [0x8047d38:4]=0x2001e89e
| | 0x08047c9a 0478 ldrb r4, [r0]
| ,==< 0x08047c9c 19e0 b 0x8047cd2
| |`-> 0x08047c9e 1e48 ldr r0, [0x08047d1a] ; [0x8047d18:4]=0x2001de78 struct_channel_info2
| | 0x08047ca0 0069 ldr r0, [r0, 0x10]
| | 0x08047ca2 000c lsrs r0, r0, 0x10
| | 0x08047ca4 80b2 uxth r0, r0
| | 0x08047ca6 dff783fb bl func_273b0
| | 0x08047caa 0400 movs r4, r0
| | 0x08047cac 2348 ldr r0, [0x08047d3c] ; [0x8047d3c:4]=0x2001e7c4
| | 0x08047cae 0088 ldrh r0, [r0]
| | 0x08047cb0 dff77efb bl func_273b0
| | 0x08047cb4 0500 movs r5, r0
| | 0x08047cb6 1748 ldr r0, [0x08047d16] ; [0x8047d14:4]=0x2001e7c6
| | 0x08047cb8 0088 ldrh r0, [r0]
| | 0x08047cba dff779fb bl func_273b0
| | 0x08047cbe 264b ldr r3, [0x08047d5a] ; [0x8047d58:4]=0x2001c3b0
| | 0x08047cc0 0200 movs r2, r0
| | 0x08047cc2 92b2 uxth r2, r2
| | 0x08047cc4 2900 movs r1, r5
| | 0x08047cc6 89b2 uxth r1, r1
| | 0x08047cc8 2000 movs r0, r4
| | 0x08047cca 80b2 uxth r0, r0
| | 0x08047ccc dff701fc bl 0x80274d2
| | 0x08047cd0 0400 movs r4, r0
| `--> 0x08047cd2 0121 movs r1, 1 ; 1
| 0x08047cd4 0020 movs r0, 0
| 0x08047cd6 0af0f7fa bl func_522c8
| 0x08047cda e4b2 uxtb r4, r4
| 0x08047cdc ff20 movs r0, 0xff ; 255
| 0x08047cde 14fb00f1 smulbb r1, r4, r0
| 0x08047ce2 89b2 uxth r1, r1
| 0x08047ce4 0420 movs r0, 4 ; 4
| 0x08047ce6 0af005fb bl TimerIRQ_Sub7_writes_DAC
\ 0x08047cea 31bd pop {r0, r4, r5, pc}
/ (fcn) func_47cec 20
| func_47cec ();
| 0x08047cec 80b5 push {r7, lr}
| 0x08047cee 0021 movs r1, 0
| 0x08047cf0 0420 movs r0, 4 ; 4
| 0x08047cf2 0af0fffa bl TimerIRQ_Sub7_writes_DAC
| 0x08047cf6 0021 movs r1, 0
| 0x08047cf8 0020 movs r0, 0
| 0x08047cfa 0af0e5fa bl func_522c8
\ 0x08047cfe 01bd pop {r0, pc}
/ (fcn) func_47d5c 248
| Caller: ambe_4aa78 ambe_4a9f8
| func_47d5c ();
| 0x08047d5c 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x08047d60 0500 movs r5, r0
| 0x08047d62 0e00 movs r6, r1
| 0x08047d64 9046 mov r8, r2
| 0x08047d66 1c00 movs r4, r3
| 0x08047d68 0020 movs r0, 0
| 0x08047d6a 2978 ldrb r1, [r5]
| 0x08047d6c 0529 cmp r1, 5 ; 5
| ,=< 0x08047d6e 03d0 beq 0x8047d78
| | 0x08047d70 0120 movs r0, 1 ; 1
| | 0x08047d72 2070 strb r0, [r4]
| | 0x08047d74 0020 movs r0, 0
| ,==< 0x08047d76 6be0 b 0x8047e50
| |`-> 0x08047d78 18f08000 ands r0, r8, 0x80
| | 0x08047d7c c0b2 uxtb r0, r0
| | 0x08047d7e 0028 cmp r0, 0
| |,=< 0x08047d80 03d0 beq 0x8047d8a
| || 0x08047d82 18f07f08 ands r8, r8, 0x7f
| || 0x08047d86 0127 movs r7, 1 ; 1
| ,===< 0x08047d88 00e0 b 0x8047d8c
| ||`-> 0x08047d8a 0027 movs r7, 0
| `---> 0x08047d8c 0020 movs r0, 0
| | 0x08047d8e 2070 strb r0, [r4]
| | 0x08047d90 fcf728f8 bl OS_ENTER_CRITICAL
| | 0x08047d94 5ffa88f8 uxtb.w r8, r8
| | 0x08047d98 b8f1000f cmp.w r8, 0
| |,=< 0x08047d9c 2cd0 beq 0x8047df8
| || 0x08047d9e b8f1020f cmp.w r8, 2 ; 2
| ,===< 0x08047da2 04d0 beq 0x8047dae
| ,====< 0x08047da4 3ad3 blo 0x8047e1c
| |||| 0x08047da6 b8f1030f cmp.w r8, 3 ; 3
| ,=====< 0x08047daa 12d0 beq 0x8047dd2
| ,======< 0x08047dac 49e0 b 0x8047e42
| |||`---> 0x08047dae a968 ldr r1, [r5, 8]
| ||| || 0x08047db0 16ea0108 ands.w r8, r6, r1
| ||| || 0x08047db4 b045 cmp r8, r6
| |||,===< 0x08047db6 07d1 bne 0x8047dc8
| |||||| 0x08047db8 ffb2 uxtb r7, r7
| |||||| 0x08047dba 012f cmp r7, 1 ; 1
| ,=======< 0x08047dbc 06d1 bne 0x8047dcc
| ||||||| 0x08047dbe a968 ldr r1, [r5, 8]
| ||||||| 0x08047dc0 31ea0801 bics.w r1, r1, r8
| ||||||| 0x08047dc4 a960 str r1, [r5, 8]
| ========< 0x08047dc6 01e0 b 0x8047dcc
| ||||`---> 0x08047dc8 7021 movs r1, 0x70 ; 'p' ; 112
| |||| || 0x08047dca 2170 strb r1, [r4]
| `-------> 0x08047dcc fcf70ef8 bl OS_EXIT_CRITICAL
| |||,===< 0x08047dd0 3de0 b 0x8047e4e
| |`-----> 0x08047dd2 a968 ldr r1, [r5, 8]
| | |||| 0x08047dd4 16ea0108 ands.w r8, r6, r1
| | |||| 0x08047dd8 b8f1000f cmp.w r8, 0
| |,=====< 0x08047ddc 07d0 beq 0x8047dee
| |||||| 0x08047dde ffb2 uxtb r7, r7
| |||||| 0x08047de0 012f cmp r7, 1 ; 1
| ,=======< 0x08047de2 06d1 bne 0x8047df2
| ||||||| 0x08047de4 a968 ldr r1, [r5, 8]
| ||||||| 0x08047de6 31ea0801 bics.w r1, r1, r8
| ||||||| 0x08047dea a960 str r1, [r5, 8]
| ========< 0x08047dec 01e0 b 0x8047df2
| ||`-----> 0x08047dee 7021 movs r1, 0x70 ; 'p' ; 112
| || |||| 0x08047df0 2170 strb r1, [r4]
| `-------> 0x08047df2 fbf7fbff bl OS_EXIT_CRITICAL
| |,=====< 0x08047df6 2ae0 b 0x8047e4e
| |||||`-> 0x08047df8 a968 ldr r1, [r5, 8]
| ||||| 0x08047dfa 36ea0108 bics.w r8, r6, r1
| ||||| 0x08047dfe b045 cmp r8, r6
| |||||,=< 0x08047e00 07d1 bne 0x8047e12
| |||||| 0x08047e02 ffb2 uxtb r7, r7
| |||||| 0x08047e04 012f cmp r7, 1 ; 1
| ,=======< 0x08047e06 06d1 bne 0x8047e16
| ||||||| 0x08047e08 a968 ldr r1, [r5, 8]
| ||||||| 0x08047e0a 58ea0101 orrs.w r1, r8, r1
| ||||||| 0x08047e0e a960 str r1, [r5, 8]
| ========< 0x08047e10 01e0 b 0x8047e16
| ||||||`-> 0x08047e12 7021 movs r1, 0x70 ; 'p' ; 112
| |||||| 0x08047e14 2170 strb r1, [r4]
| `-------> 0x08047e16 fbf7e9ff bl OS_EXIT_CRITICAL
| |||||,=< 0x08047e1a 18e0 b 0x8047e4e
| ||`----> 0x08047e1c a968 ldr r1, [r5, 8]
| || ||| 0x08047e1e 36ea0108 bics.w r8, r6, r1
| || ||| 0x08047e22 b8f1000f cmp.w r8, 0
| ||,====< 0x08047e26 07d0 beq 0x8047e38
| |||||| 0x08047e28 ffb2 uxtb r7, r7
| |||||| 0x08047e2a 012f cmp r7, 1 ; 1
| ,=======< 0x08047e2c 06d1 bne 0x8047e3c
| ||||||| 0x08047e2e a968 ldr r1, [r5, 8]
| ||||||| 0x08047e30 58ea0101 orrs.w r1, r8, r1
| ||||||| 0x08047e34 a960 str r1, [r5, 8]
| ========< 0x08047e36 01e0 b 0x8047e3c
| |||`----> 0x08047e38 7021 movs r1, 0x70 ; 'p' ; 112
| ||| ||| 0x08047e3a 2170 strb r1, [r4]
| `-------> 0x08047e3c fbf7d6ff bl OS_EXIT_CRITICAL
| ||,====< 0x08047e40 05e0 b 0x8047e4e
| `------> 0x08047e42 fbf7d3ff bl OS_EXIT_CRITICAL
| ||||| 0x08047e46 5ff00008 movs.w r8, 0
| ||||| 0x08047e4a 6f20 movs r0, 0x6f ; 'o' ; 111
| ||||| 0x08047e4c 2070 strb r0, [r4]
| ```-`-> 0x08047e4e 4046 mov r0, r8
\ `--> 0x08047e50 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) func_47e54 90
| Caller: func_49e00 create_many_semas
| func_47e54 ();
| 0x08047e54 70b5 push {r4, r5, r6, lr}
| 0x08047e56 0500 movs r5, r0
| 0x08047e58 0c00 movs r4, r1
| 0x08047e5a 0020 movs r0, 0
| 0x08047e5c dff81015 ldr.w r1, [0x08048374] ; [0x8048374:4]=0x2001e70c
| 0x08047e60 0978 ldrb r1, [r1]
| 0x08047e62 0029 cmp r1, 0
| ,=< 0x08047e64 03d0 beq 0x8047e6e
| | 0x08047e66 1020 movs r0, 0x10 ; 16
| | 0x08047e68 2070 strb r0, [r4]
| | 0x08047e6a 0020 movs r0, 0
| ,==< 0x08047e6c 1ee0 b 0x8047eac
| |`-> 0x08047e6e fbf7b9ff bl OS_ENTER_CRITICAL
| | 0x08047e72 dff80015 ldr.w r1, [0x0804837a] ; [0x8048378:4]=0x2001e952
| | 0x08047e76 0e68 ldr r6, [r1]
| | 0x08047e78 002e cmp r6, 0
| |,=< 0x08047e7a 12d0 beq 0x8047ea2
| || 0x08047e7c dff8f414 ldr.w r1, [0x08048378] ; [0x8048378:4]=0x2001e952
| || 0x08047e80 0968 ldr r1, [r1]
| || 0x08047e82 4968 ldr r1, [r1, 4]
| || 0x08047e84 dff8ec24 ldr.w r2, [0x08048378] ; [0x8048378:4]=0x2001e952
| || 0x08047e88 1160 str r1, [r2]
| || 0x08047e8a 0521 movs r1, 5 ; 5
| || 0x08047e8c 3170 strb r1, [r6]
| || 0x08047e8e b560 str r5, [r6, 8]
| || 0x08047e90 0021 movs r1, 0
| || 0x08047e92 7160 str r1, [r6, 4]
| || 0x08047e94 06a1 adr r1, 0x18
| || 0x08047e96 f160 str r1, [r6, 0xc]
| || 0x08047e98 fbf7a8ff bl OS_EXIT_CRITICAL
| || 0x08047e9c 0020 movs r0, 0
| || 0x08047e9e 2070 strb r0, [r4]
| ,===< 0x08047ea0 03e0 b 0x8047eaa
| ||`-> 0x08047ea2 fbf7a3ff bl OS_EXIT_CRITICAL
| || 0x08047ea6 7220 movs r0, 0x72 ; 'r' ; 114
| || 0x08047ea8 2070 strb r0, [r4]
| `---> 0x08047eaa 3000 movs r0, r6
\ `--> 0x08047eac 70bd pop {r4, r5, r6, pc}
/ (fcn) func_47eb4 614
| Caller: task_468f8 c5000_wr_60_4 mainloop_entry
| func_47eb4 ();
| 0x08047eb4 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08047eb8 87b0 sub sp, 0x1c
| 0x08047eba 0700 movs r7, r0
| 0x08047ebc 8846 mov r8, r1
| 0x08047ebe 9146 mov sb, r2
| 0x08047ec0 9a46 mov sl, r3
| 0x08047ec2 0025 movs r5, 0
| 0x08047ec4 109c ldr r4, [sp, 0x40]
| 0x08047ec6 dff8a804 ldr.w r0, [0x08048376] ; [0x8048374:4]=0x2001e70c
| 0x08047eca 0078 ldrb r0, [r0]
| 0x08047ecc 0028 cmp r0, 0
| ,=< 0x08047ece 03d0 beq 0x8047ed8
| | 0x08047ed0 0220 movs r0, 2 ; 2
| | 0x08047ed2 2070 strb r0, [r4]
| | 0x08047ed4 0020 movs r0, 0
| ,==< 0x08047ed6 12e1 b 0x80480fe
| |`-> 0x08047ed8 dff89c04 ldr.w r0, [0x0804837c] ; [0x804837c:4]=0x2001e714
| | 0x08047edc 0078 ldrb r0, [r0]
| | 0x08047ede 0028 cmp r0, 0
| |,=< 0x08047ee0 03d0 beq 0x8047eea
| || 0x08047ee2 0d20 movs r0, 0xd ; 13
| || 0x08047ee4 2070 strb r0, [r4]
| || 0x08047ee6 0020 movs r0, 0
| ,===< 0x08047ee8 09e1 b 0x80480fe
| ||`-> 0x08047eea 3878 ldrb r0, [r7]
| || 0x08047eec 0528 cmp r0, 5 ; 5
| ||,=< 0x08047eee 03d0 beq 0x8047ef8
| ||| 0x08047ef0 0120 movs r0, 1 ; 1
| ||| 0x08047ef2 2070 strb r0, [r4]
| ||| 0x08047ef4 0020 movs r0, 0
| ,====< 0x08047ef6 02e1 b 0x80480fe
| |||`-> 0x08047ef8 19f08000 ands r0, sb, 0x80
| ||| 0x08047efc c0b2 uxtb r0, r0
| ||| 0x08047efe 0028 cmp r0, 0
| |||,=< 0x08047f00 04d0 beq 0x8047f0c
| |||| 0x08047f02 19f07f09 ands sb, sb, 0x7f
| |||| 0x08047f06 5ff0010b movs.w fp, 1 ; 1
| ,=====< 0x08047f0a 01e0 b 0x8047f10
| ||||`-> 0x08047f0c 5ff0000b movs.w fp, 0
| `-----> 0x08047f10 fbf768ff bl OS_ENTER_CRITICAL
| ||| 0x08047f14 0500 movs r5, r0
| ||| 0x08047f16 5ffa89f9 uxtb.w sb, sb
| ||| 0x08047f1a b9f1000f cmp.w sb, 0
| |||,=< 0x08047f1e 7cd0 beq 0x804801a
| |||| 0x08047f20 b9f1020f cmp.w sb, 2 ; 2
| ,=====< 0x08047f24 05d0 beq 0x8047f32
| ,======< 0x08047f26 c0f09d80 blo.w 0x8048064
| |||||| 0x08047f2a b9f1030f cmp.w sb, 3 ; 3
| ,=======< 0x08047f2e 4fd0 beq 0x8047fd0
| ========< 0x08047f30 bce0 b 0x80480ac
| ||`-----> 0x08047f32 b868 ldr r0, [r7, 8]
| || |||| 0x08047f34 18ea0006 ands.w r6, r8, r0
| || |||| 0x08047f38 4645 cmp r6, r8
| ||,=====< 0x08047f3a 12d1 bne 0x8047f62
| ||||||| 0x08047f3c 5ffa8bfb uxtb.w fp, fp
| ||||||| 0x08047f40 bbf1010f cmp.w fp, 1 ; 1
| ========< 0x08047f44 02d1 bne 0x8047f4c
| ||||||| 0x08047f46 b868 ldr r0, [r7, 8]
| ||||||| 0x08047f48 b043 bics r0, r6
| ||||||| 0x08047f4a b860 str r0, [r7, 8]
| --------> 0x08047f4c dff82c04 ldr.w r0, [0x08048380] ; [0x8048380:4]=0x2001e56c
| ||||||| 0x08047f50 0068 ldr r0, [r0]
| ||||||| 0x08047f52 8662 str r6, [r0, 0x28]
| ||||||| 0x08047f54 2800 movs r0, r5
| ||||||| 0x08047f56 fbf749ff bl OS_EXIT_CRITICAL
| ||||||| 0x08047f5a 0020 movs r0, 0
| ||||||| 0x08047f5c 2070 strb r0, [r4]
| ||||||| 0x08047f5e 3000 movs r0, r6
| ========< 0x08047f60 cde0 b 0x80480fe
| ||`-----> 0x08047f62 cdf800a0 str.w sl, [sp]
| || |||| 0x08047f66 4b46 mov r3, sb
| || |||| 0x08047f68 dbb2 uxtb r3, r3
| || |||| 0x08047f6a 4246 mov r2, r8
| || |||| 0x08047f6c 01a9 add r1, sp, 4
| || |||| 0x08047f6e 3800 movs r0, r7
| || |||| 0x08047f70 00f063f9 bl func_4823a
| || |||| 0x08047f74 2800 movs r0, r5
| || |||| 0x08047f76 fbf739ff bl OS_EXIT_CRITICAL
| --.-----> 0x08047f7a fcf72dfa bl func_443d8
| ||||||| 0x08047f7e fbf731ff bl OS_ENTER_CRITICAL
| ||||||| 0x08047f82 0500 movs r5, r0
| ||||||| 0x08047f84 dff8f403 ldr.w r0, [0x08048380] ; [0x8048380:4]=0x2001e56c
| ||||||| 0x08047f88 0068 ldr r0, [r0]
| ||||||| 0x08047f8a 90f83100 ldrb.w r0, [r0, 0x31]
| ||||||| 0x08047f8e 0028 cmp r0, 0
| ========< 0x08047f90 00f09880 beq.w 0x80480c4
| ||||||| 0x08047f94 dff8e403 ldr.w r0, [0x08048380] ; [0x8048380:4]=0x2001e56c
| ||||||| 0x08047f98 0068 ldr r0, [r0]
| ||||||| 0x08047f9a 90f83170 ldrb.w r7, [r0, 0x31]
| ||||||| 0x08047f9e dff8dc03 ldr.w r0, [0x08048382] ; [0x8048380:4]=0x2001e56c
| ||||||| 0x08047fa2 0068 ldr r0, [r0]
| ||||||| 0x08047fa4 0021 movs r1, 0
| ||||||| 0x08047fa6 80f83110 strb.w r1, [r0, 0x31]
| ||||||| 0x08047faa 01a8 add r0, sp, 4
| ||||||| 0x08047fac 00f0eef9 bl func_4838c
| ||||||| 0x08047fb0 dff8c803 ldr.w r0, [0x08048380] ; [0x8048380:4]=0x2001e56c
| ||||||| 0x08047fb4 0068 ldr r0, [r0]
| ||||||| 0x08047fb6 0021 movs r1, 0
| ||||||| 0x08047fb8 80f83010 strb.w r1, [r0, 0x30]
| ||||||| 0x08047fbc 2800 movs r0, r5
| ||||||| 0x08047fbe fbf715ff bl OS_EXIT_CRITICAL
| ||||||| 0x08047fc2 0026 movs r6, 0
| ||||||| 0x08047fc4 ffb2 uxtb r7, r7
| ||||||| 0x08047fc6 022f cmp r7, 2 ; 2
| ========< 0x08047fc8 78d1 bne 0x80480bc
| ||||||| 0x08047fca 0e20 movs r0, 0xe ; 14
| ||||||| 0x08047fcc 2070 strb r0, [r4]
| ========< 0x08047fce 77e0 b 0x80480c0
| `-------> 0x08047fd0 b868 ldr r0, [r7, 8]
| |||||| 0x08047fd2 18ea0006 ands.w r6, r8, r0
| |||||| 0x08047fd6 002e cmp r6, 0
| ,=======< 0x08047fd8 12d0 beq 0x8048000
| ||||||| 0x08047fda 5ffa8bfb uxtb.w fp, fp
| ||||||| 0x08047fde bbf1010f cmp.w fp, 1 ; 1
| ========< 0x08047fe2 02d1 bne 0x8047fea
| ||||||| 0x08047fe4 b868 ldr r0, [r7, 8]
| ||||||| 0x08047fe6 b043 bics r0, r6
| ||||||| 0x08047fe8 b860 str r0, [r7, 8]
| --------> 0x08047fea dff89003 ldr.w r0, [0x08048382] ; [0x8048380:4]=0x2001e56c
| ||||||| 0x08047fee 0068 ldr r0, [r0]
| ||||||| 0x08047ff0 8662 str r6, [r0, 0x28]
| ||||||| 0x08047ff2 2800 movs r0, r5
| ||||||| 0x08047ff4 fbf7fafe bl OS_EXIT_CRITICAL
| ||||||| 0x08047ff8 0020 movs r0, 0
| ||||||| 0x08047ffa 2070 strb r0, [r4]
| ||||||| 0x08047ffc 3000 movs r0, r6
| ========< 0x08047ffe 7ee0 b 0x80480fe
| `-------> 0x08048000 cdf800a0 str.w sl, [sp]
| |||||| 0x08048004 4b46 mov r3, sb
| |||||| 0x08048006 dbb2 uxtb r3, r3
| |||||| 0x08048008 4246 mov r2, r8
| |||||| 0x0804800a 01a9 add r1, sp, 4
| |||||| 0x0804800c 3800 movs r0, r7
| |||||| 0x0804800e 00f014f9 bl func_4823a
| |||||| 0x08048012 2800 movs r0, r5
| |||||| 0x08048014 fbf7eafe bl OS_EXIT_CRITICAL
| ========< 0x08048018 afe7 b 0x8047f7a
| |||||`-> 0x0804801a b868 ldr r0, [r7, 8]
| ||||| 0x0804801c 38ea0006 bics.w r6, r8, r0
| ||||| 0x08048020 4645 cmp r6, r8
| |||||,=< 0x08048022 12d1 bne 0x804804a
| |||||| 0x08048024 5ffa8bfb uxtb.w fp, fp
| |||||| 0x08048028 bbf1010f cmp.w fp, 1 ; 1
| ,=======< 0x0804802c 02d1 bne 0x8048034
| ||||||| 0x0804802e b868 ldr r0, [r7, 8]
| ||||||| 0x08048030 3043 orrs r0, r6
| ||||||| 0x08048032 b860 str r0, [r7, 8]
| `-------> 0x08048034 dff84403 ldr.w r0, [0x08048380] ; [0x8048380:4]=0x2001e56c
| |||||| 0x08048038 0068 ldr r0, [r0]
| |||||| 0x0804803a 8662 str r6, [r0, 0x28]
| |||||| 0x0804803c 2800 movs r0, r5
| |||||| 0x0804803e fbf7d5fe bl OS_EXIT_CRITICAL
| |||||| 0x08048042 0020 movs r0, 0
| |||||| 0x08048044 2070 strb r0, [r4]
| |||||| 0x08048046 3000 movs r0, r6
| ,=======< 0x08048048 59e0 b 0x80480fe
| ||||||`-> 0x0804804a cdf800a0 str.w sl, [sp]
| |||||| 0x0804804e 4b46 mov r3, sb
| |||||| 0x08048050 dbb2 uxtb r3, r3
| |||||| 0x08048052 4246 mov r2, r8
| |||||| 0x08048054 01a9 add r1, sp, 4
| |||||| 0x08048056 3800 movs r0, r7
| |||||| 0x08048058 00f0eff8 bl func_4823a
| |||||| 0x0804805c 2800 movs r0, r5
| |||||| 0x0804805e fbf7c5fe bl OS_EXIT_CRITICAL
| ========< 0x08048062 8ae7 b 0x8047f7a
| |`------> 0x08048064 b868 ldr r0, [r7, 8]
| | |||| 0x08048066 38ea0006 bics.w r6, r8, r0
| | |||| 0x0804806a 002e cmp r6, 0
| | ||||,=< 0x0804806c 11d0 beq 0x8048092
| | ||||| 0x0804806e 5ffa8bfb uxtb.w fp, fp
| | ||||| 0x08048072 bbf1010f cmp.w fp, 1 ; 1
| |,======< 0x08048076 02d1 bne 0x804807e
| ||||||| 0x08048078 b868 ldr r0, [r7, 8]
| ||||||| 0x0804807a 3043 orrs r0, r6
| ||||||| 0x0804807c b860 str r0, [r7, 8]
| |`------> 0x0804807e bf48 ldr r0, [0x0804837e] ; [0x804837c:4]=0x2001e714
| | ||||| 0x08048080 0068 ldr r0, [r0]
| | ||||| 0x08048082 8662 str r6, [r0, 0x28]
| | ||||| 0x08048084 2800 movs r0, r5
| | ||||| 0x08048086 fbf7b1fe bl OS_EXIT_CRITICAL
| | ||||| 0x0804808a 0020 movs r0, 0
| | ||||| 0x0804808c 2070 strb r0, [r4]
| | ||||| 0x0804808e 3000 movs r0, r6
| |,======< 0x08048090 35e0 b 0x80480fe
| ||||||`-> 0x08048092 cdf800a0 str.w sl, [sp]
| |||||| 0x08048096 4b46 mov r3, sb
| |||||| 0x08048098 dbb2 uxtb r3, r3
| |||||| 0x0804809a 4246 mov r2, r8
| |||||| 0x0804809c 01a9 add r1, sp, 4
| |||||| 0x0804809e 3800 movs r0, r7
| |||||| 0x080480a0 00f0cbf8 bl func_4823a
| |||||| 0x080480a4 2800 movs r0, r5
| |||||| 0x080480a6 fbf7a1fe bl OS_EXIT_CRITICAL
| ||`=====< 0x080480aa 66e7 b 0x8047f7a
| --------> 0x080480ac 2800 movs r0, r5
| || ||| 0x080480ae fbf79dfe bl OS_EXIT_CRITICAL
| || ||| 0x080480b2 0026 movs r6, 0
| || ||| 0x080480b4 6f20 movs r0, 0x6f ; 'o' ; 111
| || ||| 0x080480b6 2070 strb r0, [r4]
| || ||| 0x080480b8 3000 movs r0, r6
| || |||,=< 0x080480ba 20e0 b 0x80480fe
| --------> 0x080480bc 0a20 movs r0, 0xa ; 10
| || |||| 0x080480be 2070 strb r0, [r4]
| --------> 0x080480c0 3000 movs r0, r6
| ||,=====< 0x080480c2 1ce0 b 0x80480fe
| --------> 0x080480c4 ad48 ldr r0, [0x0804837c] ; [0x804837c:4]=0x2001e714
| ||||||| 0x080480c6 0068 ldr r0, [r0]
| ||||||| 0x080480c8 866a ldr r6, [r0, 0x28]
| ||||||| 0x080480ca 5ffa8bfb uxtb.w fp, fp
| ||||||| 0x080480ce bbf1010f cmp.w fp, 1 ; 1
| ========< 0x080480d2 0ed1 bne 0x80480f2
| ||||||| 0x080480d4 5ffa89f9 uxtb.w sb, sb
| ||||||| 0x080480d8 b9f1000f cmp.w sb, 0
| ||||||| 0x080480dc b9f1010f cmp.w sb, 1 ; 1
| ========< 0x080480e0 10d9 bls 0x8048104
| ||||||| 0x080480e2 b9f10209 subs.w sb, sb, 2
| ||||||| 0x080480e6 b9f1010f cmp.w sb, 1 ; 1
| ========< 0x080480ea 0fd8 bhi 0x804810c
| ||||||| 0x080480ec b868 ldr r0, [r7, 8]
| ||||||| 0x080480ee b043 bics r0, r6
| ||||||| 0x080480f0 b860 str r0, [r7, 8]
| --------> 0x080480f2 2800 movs r0, r5
| ||||||| 0x080480f4 fbf77afe bl OS_EXIT_CRITICAL
| ||||||| 0x080480f8 0020 movs r0, 0
| ||||||| 0x080480fa 2070 strb r0, [r4]
| ||||||| 0x080480fc 3000 movs r0, r6
| ```````-> 0x080480fe 07b0 add sp, 0x1c
| 0x08048100 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
| --------> 0x08048104 b868 ldr r0, [r7, 8]
| 0x08048106 3043 orrs r0, r6
| 0x08048108 b860 str r0, [r7, 8]
| ========< 0x0804810a f2e7 b 0x80480f2
| --------> 0x0804810c 2800 movs r0, r5
| 0x0804810e fbf76dfe bl OS_EXIT_CRITICAL
| 0x08048112 6f20 movs r0, 0x6f ; 'o' ; 111
| 0x08048114 2070 strb r0, [r4]
| 0x08048116 0020 movs r0, 0
\ ========< 0x08048118 f1e7 b 0x80480fe
/ (fcn) RTCAndTimerIRQ_Sub2 288
| Caller: TIM3_IRQHandler ambe_4aa78 RTC_WKUP_IRQHandler TIM6_DAC_IRQHandler TimerIRQ_Sub1
| func_3d53e
| RTCAndTimerIRQ_Sub2 ();
| 0x0804811a 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x0804811e 0600 movs r6, r0
| 0x08048120 0f00 movs r7, r1
| 0x08048122 9046 mov r8, r2
| 0x08048124 1c00 movs r4, r3
| 0x08048126 0025 movs r5, 0
| 0x08048128 3078 ldrb r0, [r6]
| 0x0804812a 0528 cmp r0, 5 ; 5
| ,=< 0x0804812c 03d0 beq 0x8048136
| | 0x0804812e 0120 movs r0, 1 ; 1
| | 0x08048130 2070 strb r0, [r4]
| | 0x08048132 0020 movs r0, 0
| ,==< 0x08048134 7fe0 b 0x8048236
| |`-> 0x08048136 fbf755fe bl OS_ENTER_CRITICAL
| | 0x0804813a 0500 movs r5, r0
| | 0x0804813c 5ffa88f8 uxtb.w r8, r8
| | 0x08048140 b8f1000f cmp.w r8, 0
| |,=< 0x08048144 03d0 beq 0x804814e
| || 0x08048146 b8f1010f cmp.w r8, 1 ; 1
| ,===< 0x0804814a 07d0 beq 0x804815c
| ,====< 0x0804814c 0ae0 b 0x8048164
| |||`-> 0x0804814e b068 ldr r0, [r6, 8]
| ||| 0x08048150 b843 bics r0, r7
| ||| 0x08048152 b060 str r0, [r6, 8]
| |||.-> 0x08048154 0027 movs r7, 0
| |||| 0x08048156 d6f80480 ldr.w r8, [r6, 4]
| ,=====< 0x0804815a 1be0 b 0x8048194
| ||`---> 0x0804815c b068 ldr r0, [r6, 8]
| || || 0x0804815e 3843 orrs r0, r7
| || || 0x08048160 b060 str r0, [r6, 8]
| || |`=< 0x08048162 f7e7 b 0x8048154
| |`----> 0x08048164 2800 movs r0, r5
| | | 0x08048166 fbf741fe bl OS_EXIT_CRITICAL
| | | 0x0804816a 7120 movs r0, 0x71 ; 'q' ; 113
| | | 0x0804816c 2070 strb r0, [r4]
| | | 0x0804816e 0020 movs r0, 0
| | |,=< 0x08048170 61e0 b 0x8048236
| | .---> 0x08048172 b068 ldr r0, [r6, 8]
| | ||| 0x08048174 d8f81010 ldr.w r1, [r8, 0x10]
| | ||| 0x08048178 0140 ands r1, r0
| | ||| 0x0804817a d8f81000 ldr.w r0, [r8, 0x10]
| | ||| 0x0804817e 8142 cmp r1, r0
| |,====< 0x08048180 06d1 bne 0x8048190
| ||||| 0x08048182 4046 mov r0, r8
| ||||| 0x08048184 00f0c5f8 bl func_48312
| ||||| 0x08048188 c0b2 uxtb r0, r0
| ||||| 0x0804818a 0128 cmp r0, 1 ; 1
| ,======< 0x0804818c 00d1 bne 0x8048190
| |||||| 0x0804818e 0127 movs r7, 1 ; 1
| .`-`----> 0x08048190 d8f80080 ldr.w r8, [r8]
| | `-----> 0x08048194 b8f1000f cmp.w r8, 0
| | ,====< 0x08048198 3bd0 beq 0x8048212
| | |||| 0x0804819a 98f81400 ldrb.w r0, [r8, 0x14]
| | |||| 0x0804819e 0028 cmp r0, 0
| | ,=====< 0x080481a0 12d0 beq 0x80481c8
| | ||||| 0x080481a2 0228 cmp r0, 2 ; 2
| | ||`===< 0x080481a4 e5d0 beq 0x8048172
| | ||,===< 0x080481a6 1fd3 blo 0x80481e8
| | ||||| 0x080481a8 0328 cmp r0, 3 ; 3
| |,======< 0x080481aa 2bd1 bne 0x8048204
| ||||||| 0x080481ac b068 ldr r0, [r6, 8]
| ||||||| 0x080481ae d8f81010 ldr.w r1, [r8, 0x10]
| ||||||| 0x080481b2 0140 ands r1, r0
| ||||||| 0x080481b4 0029 cmp r1, 0
| ========< 0x080481b6 06d0 beq 0x80481c6
| ||||||| 0x080481b8 4046 mov r0, r8
| ||||||| 0x080481ba 00f0aaf8 bl func_48312
| ||||||| 0x080481be c0b2 uxtb r0, r0
| ||||||| 0x080481c0 0128 cmp r0, 1 ; 1
| ========< 0x080481c2 00d1 bne 0x80481c6
| ||||||| 0x080481c4 0127 movs r7, 1 ; 1
| ========< 0x080481c6 e3e7 b 0x8048190
| ||`-----> 0x080481c8 b068 ldr r0, [r6, 8]
| || |||| 0x080481ca d8f81010 ldr.w r1, [r8, 0x10]
| || |||| 0x080481ce 8143 bics r1, r0
| || |||| 0x080481d0 d8f81000 ldr.w r0, [r8, 0x10]
| || |||| 0x080481d4 8142 cmp r1, r0
| ||,=====< 0x080481d6 06d1 bne 0x80481e6
| ||||||| 0x080481d8 4046 mov r0, r8
| ||||||| 0x080481da 00f09af8 bl func_48312
| ||||||| 0x080481de c0b2 uxtb r0, r0
| ||||||| 0x080481e0 0128 cmp r0, 1 ; 1
| ========< 0x080481e2 00d1 bne 0x80481e6
| ||||||| 0x080481e4 0127 movs r7, 1 ; 1
| ==`-----> 0x080481e6 d3e7 b 0x8048190
| || |`---> 0x080481e8 b068 ldr r0, [r6, 8]
| || | || 0x080481ea d8f81010 ldr.w r1, [r8, 0x10]
| || | || 0x080481ee 8143 bics r1, r0
| || | || 0x080481f0 0029 cmp r1, 0
| || |,===< 0x080481f2 06d0 beq 0x8048202
| || |||| 0x080481f4 4046 mov r0, r8
| || |||| 0x080481f6 00f08cf8 bl func_48312
| || |||| 0x080481fa c0b2 uxtb r0, r0
| || |||| 0x080481fc 0128 cmp r0, 1 ; 1
| ||,=====< 0x080481fe 00d1 bne 0x8048202
| ||||||| 0x08048200 0127 movs r7, 1 ; 1
| `=`-`---> 0x08048202 c5e7 b 0x8048190
| `------> 0x08048204 2800 movs r0, r5
| | || 0x08048206 fbf7f1fd bl OS_EXIT_CRITICAL
| | || 0x0804820a 6f20 movs r0, 0x6f ; 'o' ; 111
| | || 0x0804820c 2070 strb r0, [r4]
| | || 0x0804820e 0020 movs r0, 0
| |,===< 0x08048210 11e0 b 0x8048236
| `----> 0x08048212 2800 movs r0, r5
| ||| 0x08048214 fbf7eafd bl OS_EXIT_CRITICAL
| ||| 0x08048218 ffb2 uxtb r7, r7
| ||| 0x0804821a 012f cmp r7, 1 ; 1
| ,====< 0x0804821c 01d1 bne 0x8048222
| |||| 0x0804821e fcf7dbf8 bl func_443d8
| `----> 0x08048222 fbf7dffd bl OS_ENTER_CRITICAL
| ||| 0x08048226 0500 movs r5, r0
| ||| 0x08048228 b668 ldr r6, [r6, 8]
| ||| 0x0804822a 2800 movs r0, r5
| ||| 0x0804822c fbf7defd bl OS_EXIT_CRITICAL
| ||| 0x08048230 0020 movs r0, 0
| ||| 0x08048232 2070 strb r0, [r4]
| ||| 0x08048234 3000 movs r0, r6
\ ```-> 0x08048236 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) func_4823a 138
| Caller: func_47eb4
| func_4823a ();
| 0x0804823a 70b4 push {r4, r5, r6}
| 0x0804823c 039c ldr r4, [sp, 0xc]
| 0x0804823e 4f4d ldr r5, [0x0804837e] ; [0x804837c:4]=0x2001e714
| 0x08048240 2d68 ldr r5, [r5]
| 0x08048242 95f83050 ldrb.w r5, [r5, 0x30]
| 0x08048246 55f02005 orrs r5, r5, 0x20
| 0x0804824a 4c4e ldr r6, [0x0804837e] ; [0x804837c:4]=0x2001e714
| 0x0804824c 3668 ldr r6, [r6]
| 0x0804824e 86f83050 strb.w r5, [r6, 0x30]
| 0x08048252 4a4d ldr r5, [0x0804837e] ; [0x804837c:4]=0x2001e714
| 0x08048254 2d68 ldr r5, [r5]
| 0x08048256 0026 movs r6, 0
| 0x08048258 85f83160 strb.w r6, [r5, 0x31]
| 0x0804825c 474d ldr r5, [0x0804837c] ; [0x804837c:4]=0x2001e714
| 0x0804825e 2d68 ldr r5, [r5]
| 0x08048260 ec62 str r4, [r5, 0x2c]
| 0x08048262 464c ldr r4, [0x0804837e] ; [0x804837c:4]=0x2001e714
| 0x08048264 2468 ldr r4, [r4]
| 0x08048266 6162 str r1, [r4, 0x24]
| 0x08048268 0a61 str r2, [r1, 0x10]
| 0x0804826a 0b75 strb r3, [r1, 0x14]
| 0x0804826c 434a ldr r2, [0x0804837c] ; [0x804837c:4]=0x2001e714
| 0x0804826e 1268 ldr r2, [r2]
| 0x08048270 8a60 str r2, [r1, 8]
| 0x08048272 4268 ldr r2, [r0, 4]
| 0x08048274 0a60 str r2, [r1]
| 0x08048276 0022 movs r2, 0
| 0x08048278 4a60 str r2, [r1, 4]
| 0x0804827a c860 str r0, [r1, 0xc]
| 0x0804827c 4268 ldr r2, [r0, 4]
| 0x0804827e 002a cmp r2, 0
| ,=< 0x08048280 00d0 beq 0x8048284
| | 0x08048282 5160 str r1, [r2, 4]
| `-> 0x08048284 4160 str r1, [r0, 4]
| 0x08048286 3d48 ldr r0, [0x0804837e] ; [0x804837c:4]=0x2001e714
| 0x08048288 0068 ldr r0, [r0]
| 0x0804828a 90f83400 ldrb.w r0, [r0, 0x34]
| 0x0804828e c0b2 uxtb r0, r0
| 0x08048290 3b49 ldr r1, [0x08048380] ; [0x8048380:4]=0x2001e56c
| 0x08048292 415c ldrb r1, [r0, r1]
| 0x08048294 394a ldr r2, [0x0804837c] ; [0x804837c:4]=0x2001e714
| 0x08048296 1268 ldr r2, [r2]
| 0x08048298 92f83520 ldrb.w r2, [r2, 0x35]
| 0x0804829c 9143 bics r1, r2
| 0x0804829e c0b2 uxtb r0, r0
| 0x080482a0 374a ldr r2, [0x08048380] ; [0x8048380:4]=0x2001e56c
| 0x080482a2 8154 strb r1, [r0, r2]
| 0x080482a4 c0b2 uxtb r0, r0
| 0x080482a6 3649 ldr r1, [0x08048382] ; [0x8048380:4]=0x2001e56c
| 0x080482a8 405c ldrb r0, [r0, r1]
| 0x080482aa 0028 cmp r0, 0
| ,=< 0x080482ac 08d1 bne 0x80482c0
| | 0x080482ae 3548 ldr r0, [0x08048386] ; [0x8048384:4]=0x2001e955
| | 0x080482b0 0078 ldrb r0, [r0]
| | 0x080482b2 3249 ldr r1, [0x0804837e] ; [0x804837c:4]=0x2001e714
| | 0x080482b4 0968 ldr r1, [r1]
| | 0x080482b6 91f83610 ldrb.w r1, [r1, 0x36]
| | 0x080482ba 8843 bics r0, r1
| | 0x080482bc 3149 ldr r1, [0x08048384] ; [0x8048384:4]=0x2001e955
| | 0x080482be 0870 strb r0, [r1]
| `-> 0x080482c0 70bc pop {r4, r5, r6}
\ 0x080482c2 7047 bx lr
/ (fcn) func_482c4 78
| Caller: InitGlobalsAndStartRealTimeKernel
| func_482c4 ();
| 0x080482c4 80b5 push {r7, lr}
| 0x080482c6 a021 movs r1, 0xa0 ; 160
| 0x080482c8 2f48 ldr r0, [0x08048388] ; [0x8048388:4]=0x2001d730
| 0x080482ca fcf77cf8 bl func_443c6
| 0x080482ce 0020 movs r0, 0
| ,=< 0x080482d0 0ee0 b 0x80482f0
| .--> 0x080482d2 411c adds r1, r0, 1
| || 0x080482d4 80b2 uxth r0, r0
| || 0x080482d6 2c4a ldr r2, [0x0804838a] ; [0x8048388:4]=0x2001d730
| || 0x080482d8 12eb0012 adds.w r2, r2, r0, lsl 4
| || 0x080482dc 89b2 uxth r1, r1
| || 0x080482de 2a4b ldr r3, [0x0804838a] ; [0x8048388:4]=0x2001d730
| || 0x080482e0 13eb0111 adds.w r1, r3, r1, lsl 4
| || 0x080482e4 0023 movs r3, 0
| || 0x080482e6 1370 strb r3, [r2]
| || 0x080482e8 5160 str r1, [r2, 4]
| || 0x080482ea 20a1 adr r1, 0x80
| || 0x080482ec d160 str r1, [r2, 0xc]
| || 0x080482ee 401c adds r0, r0, 1
| |`-> 0x080482f0 80b2 uxth r0, r0
| | 0x080482f2 0928 cmp r0, 9 ; 9
| `==< 0x080482f4 edd3 blo 0x80482d2
| 0x080482f6 80b2 uxth r0, r0
| 0x080482f8 2349 ldr r1, [0x08048388] ; [0x8048388:4]=0x2001d730
| 0x080482fa 11eb0012 adds.w r2, r1, r0, lsl 4
| 0x080482fe 0020 movs r0, 0
| 0x08048300 1070 strb r0, [r2]
| 0x08048302 0020 movs r0, 0
| 0x08048304 5060 str r0, [r2, 4]
| 0x08048306 19a0 adr r0, 0x64
| 0x08048308 d060 str r0, [r2, 0xc]
| 0x0804830a 1a48 ldr r0, [0x08048376] ; [0x8048374:4]=0x2001e70c
| 0x0804830c 1e49 ldr r1, [0x08048388] ; [0x8048388:4]=0x2001d730
| 0x0804830e 0160 str r1, [r0]
\ 0x08048310 01bd pop {r0, pc}
/ (fcn) func_48312 88
| Caller: RTCAndTimerIRQ_Sub2
| func_48312 ();
| 0x08048312 10b5 push {r4, lr}
| 0x08048314 8268 ldr r2, [r0, 8]
| 0x08048316 0023 movs r3, 0
| 0x08048318 d362 str r3, [r2, 0x2c]
| 0x0804831a 9162 str r1, [r2, 0x28]
| 0x0804831c 92f83010 ldrb.w r1, [r2, 0x30]
| 0x08048320 11f0df01 ands r1, r1, 0xdf
| 0x08048324 82f83010 strb.w r1, [r2, 0x30]
| 0x08048328 0021 movs r1, 0
| 0x0804832a 82f83110 strb.w r1, [r2, 0x31]
| 0x0804832e 92f83010 ldrb.w r1, [r2, 0x30]
| 0x08048332 0029 cmp r1, 0
| ,=< 0x08048334 13d1 bne 0x804835e
| | 0x08048336 1349 ldr r1, [0x08048386] ; [0x8048384:4]=0x2001e955
| | 0x08048338 0978 ldrb r1, [r1]
| | 0x0804833a 92f83630 ldrb.w r3, [r2, 0x36]
| | 0x0804833e 1943 orrs r1, r3
| | 0x08048340 104b ldr r3, [0x08048384] ; [0x8048384:4]=0x2001e955
| | 0x08048342 1970 strb r1, [r3]
| | 0x08048344 92f83410 ldrb.w r1, [r2, 0x34]
| | 0x08048348 0d4b ldr r3, [0x08048380] ; [0x8048380:4]=0x2001e56c
| | 0x0804834a c95c ldrb r1, [r1, r3]
| | 0x0804834c 92f83530 ldrb.w r3, [r2, 0x35]
| | 0x08048350 1943 orrs r1, r3
| | 0x08048352 92f83420 ldrb.w r2, [r2, 0x34]
| | 0x08048356 0a4b ldr r3, [0x08048382] ; [0x8048380:4]=0x2001e56c
| | 0x08048358 d154 strb r1, [r2, r3]
| | 0x0804835a 0124 movs r4, 1 ; 1
| ,==< 0x0804835c 00e0 b 0x8048360
| |`-> 0x0804835e 0024 movs r4, 0
| `--> 0x08048360 00f014f8 bl func_4838c
| 0x08048364 2000 movs r0, r4
| 0x08048366 c0b2 uxtb r0, r0
\ 0x08048368 10bd pop {r4, pc}
/ (fcn) func_4838c 52
| Caller: func_48312 func_47eb4
| func_4838c ();
| 0x0804838c 4168 ldr r1, [r0, 4]
| 0x0804838e 0268 ldr r2, [r0]
| 0x08048390 0029 cmp r1, 0
| ,=< 0x08048392 06d1 bne 0x80483a2
| | 0x08048394 c168 ldr r1, [r0, 0xc]
| | 0x08048396 4a60 str r2, [r1, 4]
| | 0x08048398 002a cmp r2, 0
| ,==< 0x0804839a 06d0 beq 0x80483aa
| || 0x0804839c 0021 movs r1, 0
| || 0x0804839e 5160 str r1, [r2, 4]
| ,===< 0x080483a0 03e0 b 0x80483aa
| ||`-> 0x080483a2 0a60 str r2, [r1]
| || 0x080483a4 002a cmp r2, 0
| ||,=< 0x080483a6 00d0 beq 0x80483aa
| ||| 0x080483a8 5160 str r1, [r2, 4]
| ```-> 0x080483aa 8068 ldr r0, [r0, 8]
| 0x080483ac 0021 movs r1, 0
| 0x080483ae 4162 str r1, [r0, 0x24]
| 0x080483b0 7047 bx lr
| 0x080483b2 10b5 push {r4, lr}
| 0x080483b4 0400 movs r4, r0
| 0x080483b6 2000 movs r0, r4
| 0x080483b8 09f0baff bl func_52330
| 0x080483bc 2000 movs r0, r4
\ 0x080483be 10bd pop {r4, pc}
/ (fcn) func_483c0 94
| Caller: gfx_32d60
| func_483c0 ();
| 0x080483c0 10b4 push {r4}
| ,=< 0x080483c2 02e0 b 0x80483ca
| .--> 0x080483c4 0170 strb r1, [r0]
| || 0x080483c6 401c adds r0, r0, 1
| || 0x080483c8 521e subs r2, r2, 1
| |`-> 0x080483ca 002a cmp r2, 0
| |,=< 0x080483cc 03d0 beq 0x80483d6
| || 0x080483ce 10f00303 ands r3, r0, 3
| || 0x080483d2 002b cmp r3, 0
| `==< 0x080483d4 f6d1 bne 0x80483c4
| `-> 0x080483d6 9308 lsrs r3, r2, 2
| 0x080483d8 002b cmp r3, 0
| ,=< 0x080483da 1cd0 beq 0x8048416
| | 0x080483dc 12f00302 ands r2, r2, 3
| | 0x080483e0 c9b2 uxtb r1, r1
| | 0x080483e2 5ff00134 movs.w r4, 0x1010101
| | 0x080483e6 04fb01f4 mul r4, r4, r1
| ,==< 0x080483ea 08e0 b 0x80483fe
| .---> 0x080483ec 0460 str r4, [r0]
| ||| 0x080483ee 001d adds r0, r0, 4
| ||| 0x080483f0 0460 str r4, [r0]
| ||| 0x080483f2 001d adds r0, r0, 4
| ||| 0x080483f4 0460 str r4, [r0]
| ||| 0x080483f6 001d adds r0, r0, 4
| ||| 0x080483f8 0460 str r4, [r0]
| ||| 0x080483fa 001d adds r0, r0, 4
| ||| 0x080483fc 1b1f subs r3, r3, 4
| |`--> 0x080483fe 042b cmp r3, 4 ; 4
| `===< 0x08048400 f4da bge 0x80483ec
| .--> 0x08048402 002b cmp r3, 0
| ,===< 0x08048404 03d0 beq 0x804840e
| ||| 0x08048406 0460 str r4, [r0]
| ||| 0x08048408 001d adds r0, r0, 4
| ||| 0x0804840a 5b1e subs r3, r3, 1
| |`==< 0x0804840c f9e7 b 0x8048402
| `,==< 0x0804840e 02e0 b 0x8048416
| .---> 0x08048410 0170 strb r1, [r0]
| ||| 0x08048412 401c adds r0, r0, 1
| ||| 0x08048414 521e subs r2, r2, 1
| |``-> 0x08048416 002a cmp r2, 0
| `===< 0x08048418 fad1 bne 0x8048410
| 0x0804841a 10bc pop {r4}
\ 0x0804841c 7047 bx lr
/ (fcn) func_4841e 62
| Caller: gfx_32d8c
| func_4841e ();
| 0x0804841e 38b5 push {r3, r4, r5, lr}
| 0x08048420 0400 movs r4, r0
| 0x08048422 2000 movs r0, r4
| 0x08048424 00b2 sxth r0, r0
| 0x08048426 09f0bfff bl func_523a8
| 0x0804842a 0500 movs r5, r0
| ,=< 0x0804842c 01e0 b 0x8048432
| .--> 0x0804842e b0f91a50 ldrsh.w r5, [r0, 0x1a]
| |`-> 0x08048432 2db2 sxth r5, r5
| | 0x08048434 002d cmp r5, 0
| |,=< 0x08048436 0ed0 beq 0x8048456
| || 0x08048438 2db2 sxth r5, r5
| || 0x0804843a 24b2 sxth r4, r4
| || 0x0804843c a542 cmp r5, r4
| ,===< 0x0804843e 01d1 bne 0x8048444
| ||| 0x08048440 0025 movs r5, 0
| ,====< 0x08048442 08e0 b 0x8048456
| |`---> 0x08048444 2800 movs r0, r5
| | || 0x08048446 00b2 sxth r0, r0
| | || 0x08048448 eaf70cfb bl gfx_draw_sub_32a64
| | || 0x0804844c b0f91a10 ldrsh.w r1, [r0, 0x1a]
| | || 0x08048450 24b2 sxth r4, r4
| | || 0x08048452 a142 cmp r1, r4
| | `==< 0x08048454 ebd1 bne 0x804842e
| `--`-> 0x08048456 2800 movs r0, r5
| 0x08048458 00b2 sxth r0, r0
\ 0x0804845a 32bd pop {r1, r4, r5, pc}
/ (fcn) func_4845c 20
| Caller: gfx_33204
| func_4845c ();
| 0x0804845c 0349 ldr r1, [0x0804846c] ; [0x804846c:4]=0x2001da1c gfx_info
| 0x0804845e 097d ldrb r1, [r1, 0x14]
| 0x08048460 024a ldr r2, [0x0804846c] ; [0x804846c:4]=0x2001da1c gfx_info
| 0x08048462 1075 strb r0, [r2, 0x14]
| 0x08048464 0800 movs r0, r1
| 0x08048466 c0b2 uxtb r0, r0
| 0x08048468 7047 bx lr
| 0x0804846a 0000 movs r0, r0
| ,=< 0x0804846c 1cda bge func_484a8
\ | 0x0804846e 0120 movs r0, 1 ; 1
/ (fcn) gfx_set_i16_in_GfxInfoPlus0x2C 14
| Caller: gfx_33204
| gfx_set_i16_in_GfxInfoPlus0x2C ();
| 0x08048470 0349 ldr r1, [0x08048480] ; [0x8048480:4]=0x2001da1c gfx_info
| 0x08048472 b1f92c10 ldrsh.w r1, [r1, 0x2c]
| 0x08048476 024a ldr r2, [0x08048482] ; [0x8048480:4]=0x2001da1c gfx_info
| 0x08048478 9085 strh r0, [r2, 0x2c]
| 0x0804847a 0800 movs r0, r1
\ 0x0804847c 7047 bx lr
/ (fcn) gfx_set_u8_in_GfxInfoPlus0x16 14
| Caller: gfx_33204
| gfx_set_u8_in_GfxInfoPlus0x16 ();
| 0x08048484 0349 ldr r1, [0x08048494] ; [0x8048494:4]=0x2001da1c gfx_info
| 0x08048486 897d ldrb r1, [r1, 0x16]
| 0x08048488 024a ldr r2, [0x08048494] ; [0x8048494:4]=0x2001da1c gfx_info
| 0x0804848a 9075 strb r0, [r2, 0x16]
| 0x0804848c 0800 movs r0, r1
| 0x0804848e c0b2 uxtb r0, r0
\ 0x08048490 7047 bx lr
/ (fcn) func_48498 4
| Caller: gfx_3324c
| func_48498 ();
| 0x08048498 a020 movs r0, 0xa0 ; 160
\ 0x0804849a 7047 bx lr
/ (fcn) return_0x80 4
| Caller: gfx_3324c
| return_0x80 ();
| 0x0804849c 8020 movs r0, 0x80 ; 128
\ 0x0804849e 7047 bx lr
/ (fcn) return_0x10000 6
| Caller: func_4855c
| return_0x10000 ();
| 0x080484a0 5ff48030 movs.w r0, 0x10000
\ 0x080484a4 7047 bx lr
/ (fcn) func_484a8 46
| func_484a8 ();
| 0x080484a8 10b5 push {r4, lr}
| 0x080484aa 0400 movs r4, r0
| 0x080484ac dff81804 ldr.w r0, [0x080488cc] ; [0x80488cc:4]=0x200049e4 address_of_gfx_jumptbl
| 0x080484b0 b0f94c00 ldrsh.w r0, [r0, 0x4c]
| 0x080484b4 eaf7d6fa bl gfx_draw_sub_32a64
| 0x080484b8 0188 ldrh r1, [r0]
| 0x080484ba 2180 strh r1, [r4]
| 0x080484bc 4188 ldrh r1, [r0, 2]
| 0x080484be 6180 strh r1, [r4, 2]
| 0x080484c0 0188 ldrh r1, [r0]
| 0x080484c2 8288 ldrh r2, [r0, 4]
| 0x080484c4 5118 adds r1, r2, r1
| 0x080484c6 491e subs r1, r1, 1
| 0x080484c8 a180 strh r1, [r4, 4]
| 0x080484ca 4188 ldrh r1, [r0, 2]
| 0x080484cc c088 ldrh r0, [r0, 6]
| 0x080484ce 4018 adds r0, r0, r1
| 0x080484d0 401e subs r0, r0, 1
| 0x080484d2 e080 strh r0, [r4, 6]
\ 0x080484d4 10bd pop {r4, pc}
/ (fcn) func_484d6 26
| func_484d6 ();
| 0x080484d6 10b5 push {r4, lr}
| 0x080484d8 0400 movs r4, r0
| 0x080484da dff8ec03 ldr.w r0, [0x080488ce] ; [0x80488cc:4]=0x200049e4 address_of_gfx_jumptbl
| 0x080484de b0f94c00 ldrsh.w r0, [r0, 0x4c]
| 0x080484e2 eaf7bffa bl gfx_draw_sub_32a64
| 0x080484e6 0100 movs r1, r0
| 0x080484e8 2000 movs r0, r4
| 0x080484ea c969 ldr r1, [r1, 0x1c]
| 0x080484ec 8847 blx r1
\ 0x080484ee 10bd pop {r4, pc}
/ (fcn) func_484f0 26
| func_484f0 ();
| 0x080484f0 10b5 push {r4, lr}
| 0x080484f2 0400 movs r4, r0
| 0x080484f4 dff8d003 ldr.w r0, [0x080488cc] ; [0x80488cc:4]=0x200049e4 address_of_gfx_jumptbl
| 0x080484f8 b0f94c00 ldrsh.w r0, [r0, 0x4c]
| 0x080484fc eaf7b2fa bl gfx_draw_sub_32a64
| 0x08048500 0100 movs r1, r0
| 0x08048502 2000 movs r0, r4
| 0x08048504 096a ldr r1, [r1, 0x20]
| 0x08048506 8847 blx r1
\ 0x08048508 10bd pop {r4, pc}
/ (fcn) func_4850a 20
| func_4850a ();
| 0x0804850a 80b5 push {r7, lr}
| 0x0804850c dff8b803 ldr.w r0, [0x080488cc] ; [0x80488cc:4]=0x200049e4 address_of_gfx_jumptbl
| 0x08048510 b0f94c00 ldrsh.w r0, [r0, 0x4c]
| 0x08048514 eaf7a6fa bl gfx_draw_sub_32a64
| 0x08048518 406a ldr r0, [r0, 0x24]
| 0x0804851a 8047 blx r0
\ 0x0804851c 02bd pop {r1, pc}
/ (fcn) func_4851e 64
| Caller: gfx_3324c
| func_4851e ();
| 0x0804851e 10b5 push {r4, lr}
| 0x08048520 0400 movs r4, r0
| 0x08048522 24b2 sxth r4, r4
| 0x08048524 002c cmp r4, 0
| ,=< 0x08048526 18d0 beq 0x804855a
| | 0x08048528 dff89c03 ldr.w r0, [0x080488cc] ; [0x80488cc:4]=0x200049e4 address_of_gfx_jumptbl
| | 0x0804852c b0f94c00 ldrsh.w r0, [r0, 0x4c]
| | 0x08048530 24b2 sxth r4, r4
| | 0x08048532 a042 cmp r0, r4
| ,==< 0x08048534 01d1 bne 0x804853a
| || 0x08048536 09f047ff bl func_523c8
| `--> 0x0804853a 2000 movs r0, r4
| | 0x0804853c 00b2 sxth r0, r0
| | 0x0804853e eaf791fa bl gfx_draw_sub_32a64
| | 0x08048542 b0f91810 ldrsh.w r1, [r0, 0x18]
| | 0x08048546 0029 cmp r1, 0
| ,==< 0x08048548 03d0 beq 0x8048552
| || 0x0804854a b0f91800 ldrsh.w r0, [r0, 0x18]
| || 0x0804854e 09f043ff bl func_523d8
| `--> 0x08048552 2000 movs r0, r4
| | 0x08048554 00b2 sxth r0, r0
| | 0x08048556 eaf7d5fa bl gfx_32b04
| `-> 0x0804855a 10bd pop {r4, pc}
/ (fcn) func_4855c 248
| Caller: func_48654
| func_4855c ();
| 0x0804855c 2de9 invalid
/ (fcn) func_4855c 248
| Caller: func_48654
| func_4855c ();
| 0x0804855c 2de9f34f push.w {r0, r1, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08048560 81b0 sub sp, 4
| 0x08048562 1400 movs r4, r2
| 0x08048564 1d00 movs r5, r3
| 0x08048566 0027 movs r7, 0
| 0x08048568 0d9e ldr r6, [sp, 0x34]
| 0x0804856a d6f83c80 ldr.w r8, [r6, 0x3c]
| 0x0804856e 08fb04f0 mul r0, r8, r4
| 0x08048572 c01d adds r0, r0, 7
| 0x08048574 5fead009 lsrs.w sb, r0, 3
| 0x08048578 eaf780fa bl menu_32a7c
| 0x0804857c ddf830a0 ldr.w sl, [sp, 0x30]
| 0x08048580 5feaca71 lsls.w r1, sl, 0x1f
| ,=< 0x08048584 04d4 bmi 0x8048590
| | 0x08048586 0421 movs r1, 4 ; 4
| | 0x08048588 90fbf1f0 sdiv r0, r0, r1
| | 0x0804858c 0321 movs r1, 3 ; 3
| | 0x0804858e 4843 muls r0, r1, r0
| `-> 0x08048590 012d cmp r5, 1 ; 1
| ,=< 0x08048592 08da bge 0x80485a6
| | 0x08048594 2c38 subs r0, 0x2c
| | 0x08048596 b0fbf9f0 udiv r0, r0, sb
| | 0x0804859a 6942 rsbs r1, r5, 0
| | 0x0804859c 8142 cmp r1, r0
| ,==< 0x0804859e 01da bge 0x80485a4
| || 0x080485a0 6d42 rsbs r5, r5, 0
| ,===< 0x080485a2 00e0 b 0x80485a6
| |`--> 0x080485a4 0500 movs r5, r0
| `-`-> 0x080485a6 5feaca70 lsls.w r0, sl, 0x1f
| ,=< 0x080485aa 08d4 bmi 0x80485be
| | 0x080485ac 0020 movs r0, 0
| | 0x080485ae 0090 str r0, [sp]
| | 0x080485b0 2b00 movs r3, r5
| | 0x080485b2 2200 movs r2, r4
| | 0x080485b4 0299 ldr r1, [sp, 8]
| | 0x080485b6 0198 ldr r0, [sp, 4]
| | 0x080485b8 09f0edff bl func_52596
| | 0x080485bc 0700 movs r7, r0
| `-> 0x080485be 012d cmp r5, 1 ; 1
| ,=< 0x080485c0 01da bge 0x80485c6
| | 0x080485c2 0020 movs r0, 0
| ,==< 0x080485c4 44e0 b 0x8048650
| |`-> 0x080485c6 09fb05f0 mul r0, sb, r5
| | 0x080485ca 2c30 adds r0, 0x2c
| | 0x080485cc 5feaca71 lsls.w r1, sl, 0x1f
| |,=< 0x080485d0 04d5 bpl 0x80485dc
| || 0x080485d2 00b2 sxth r0, r0
| || 0x080485d4 eaf73bfa bl func_32a4e
| || 0x080485d8 8246 mov sl, r0
| ,===< 0x080485da 03e0 b 0x80485e4
| ||`-> 0x080485dc 00b2 sxth r0, r0
| || 0x080485de eaf7bffb bl gfx_32d60
| || 0x080485e2 8246 mov sl, r0
| `---> 0x080485e4 0ffa8afa sxth.w sl, sl
| | 0x080485e8 baf1000f cmp.w sl, 0
| |,=< 0x080485ec 27d0 beq 0x804863e
| || 0x080485ee 5046 mov r0, sl
| || 0x080485f0 00b2 sxth r0, r0
| || 0x080485f2 eaf737fa bl gfx_draw_sub_32a64
| || 0x080485f6 8346 mov fp, r0
| || 0x080485f8 0198 ldr r0, [sp, 4]
| || 0x080485fa abf80000 strh.w r0, [fp]
| || 0x080485fe 0298 ldr r0, [sp, 8]
| || 0x08048600 abf80200 strh.w r0, [fp, 2]
| || 0x08048604 abf80440 strh.w r4, [fp, 4]
| || 0x08048608 abf80650 strh.w r5, [fp, 6]
| || 0x0804860c fff748ff bl return_0x10000
| || 0x08048610 cbf80800 str.w r0, [fp, 8]
| || 0x08048614 cbf80c90 str.w sb, [fp, 0xc]
| || 0x08048618 abf81870 strh.w r7, [fp, 0x18]
| || 0x0804861c 0e98 ldr r0, [sp, 0x38]
| || 0x0804861e cbf81c00 str.w r0, [fp, 0x1c]
| || 0x08048622 0f98 ldr r0, [sp, 0x3c]
| || 0x08048624 cbf82000 str.w r0, [fp, 0x20]
| || 0x08048628 1098 ldr r0, [sp, 0x40]
| || 0x0804862a cbf82400 str.w r0, [fp, 0x24]
| || 0x0804862e cbf82860 str.w r6, [fp, 0x28]
| || 0x08048632 cbf81080 str.w r8, [fp, 0x10]
| || 0x08048636 0020 movs r0, 0
| || 0x08048638 cbf81400 str.w r0, [fp, 0x14]
| ,===< 0x0804863c 06e0 b 0x804864c
| ||`-> 0x0804863e 3fb2 sxth r7, r7
| || 0x08048640 002f cmp r7, 0
| ||,=< 0x08048642 03d0 beq 0x804864c
| ||| 0x08048644 3800 movs r0, r7
| ||| 0x08048646 00b2 sxth r0, r0
| ||| 0x08048648 eaf75cfa bl gfx_32b04
| `-`-> 0x0804864c 5046 mov r0, sl
| | 0x0804864e 00b2 sxth r0, r0
\ `--> 0x08048650 bde8fe8f pop.w {r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_48654 106
| Caller: gfx_3324c
| func_48654 ();
| 0x08048654 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x08048658 85b0 sub sp, 0x14
| 0x0804865a 0400 movs r4, r0
| 0x0804865c 0d00 movs r5, r1
| 0x0804865e 1600 movs r6, r2
| 0x08048660 1f00 movs r7, r3
| 0x08048662 ddf83080 ldr.w r8, [sp, 0x30]
| 0x08048666 9948 ldr r0, [0x080488ce] ; [0x80488cc:4]=0x200049e4 address_of_gfx_jumptbl
| 0x08048668 d0f80090 ldr.w sb, [r0]
| 0x0804866c 9648 ldr r0, [0x080488c8] ; [0x80488c8:4]=0x2001da1c gfx_info
| 0x0804866e b0f94c00 ldrsh.w r0, [r0, 0x4c]
| 0x08048672 0028 cmp r0, 0
| ,=< 0x08048674 09d1 bne 0x804868a
| | 0x08048676 9448 ldr r0, [0x080488ca] ; [0x80488c8:4]=0x2001da1c gfx_info
| | 0x08048678 806c ldr r0, [r0, 0x48]
| | 0x0804867a 0168 ldr r1, [r0]
| | 0x0804867c 9248 ldr r0, [0x080488c8] ; [0x80488c8:4]=0x2001da1c gfx_info
| | 0x0804867e 806c ldr r0, [r0, 0x48]
| | 0x08048680 4268 ldr r2, [r0, 4]
| | 0x08048682 9148 ldr r0, [0x080488ca] ; [0x80488c8:4]=0x2001da1c gfx_info
| | 0x08048684 806c ldr r0, [r0, 0x48]
| | 0x08048686 8068 ldr r0, [r0, 8]
| ,==< 0x08048688 07e0 b 0x804869a
| |`-> 0x0804868a 8f48 ldr r0, [0x080488ca] ; [0x80488c8:4]=0x2001da1c gfx_info
| | 0x0804868c b0f94c00 ldrsh.w r0, [r0, 0x4c]
| | 0x08048690 eaf7e8f9 bl gfx_draw_sub_32a64
| | 0x08048694 c169 ldr r1, [r0, 0x1c]
| | 0x08048696 026a ldr r2, [r0, 0x20]
| | 0x08048698 406a ldr r0, [r0, 0x24]
| `--> 0x0804869a 0490 str r0, [sp, 0x10]
| 0x0804869c 0392 str r2, [sp, 0xc]
| 0x0804869e 0291 str r1, [sp, 8]
| 0x080486a0 d9f83800 ldr.w r0, [sb, 0x38]
| 0x080486a4 0190 str r0, [sp, 4]
| 0x080486a6 cdf80080 str.w r8, [sp]
| 0x080486aa 3b00 movs r3, r7
| 0x080486ac 3200 movs r2, r6
| 0x080486ae 2900 movs r1, r5
| 0x080486b0 2000 movs r0, r4
| 0x080486b2 fff753ff bl func_4855c
| 0x080486b6 00b2 sxth r0, r0
| 0x080486b8 05b0 add sp, 0x14
\ 0x080486ba bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_486be 78
| Caller: func_48832 gfx_3324c
| func_486be ();
| 0x080486be 70b5 push {r4, r5, r6, lr}
| 0x080486c0 0400 movs r4, r0
| 0x080486c2 8148 ldr r0, [0x080488ca] ; [0x80488c8:4]=0x2001da1c gfx_info
| 0x080486c4 b0f94c50 ldrsh.w r5, [r0, 0x4c]
| 0x080486c8 24b2 sxth r4, r4
| 0x080486ca 002c cmp r4, 0
| ,=< 0x080486cc 02d1 bne 0x80486d4
| | 0x080486ce 09f07bfe bl func_523c8
| ,==< 0x080486d2 18e0 b 0x8048706
| |`-> 0x080486d4 2000 movs r0, r4
| | 0x080486d6 00b2 sxth r0, r0
| | 0x080486d8 eaf7c4f9 bl gfx_draw_sub_32a64
| | 0x080486dc 0600 movs r6, r0
| | 0x080486de d4f7a1fd bl gfx_1d224
| | 0x080486e2 7948 ldr r0, [0x080488ca] ; [0x80488c8:4]=0x2001da1c gfx_info
| | 0x080486e4 b0f94c00 ldrsh.w r0, [r0, 0x4c]
| | 0x080486e8 0028 cmp r0, 0
| |,=< 0x080486ea 04d1 bne 0x80486f6
| || 0x080486ec 7848 ldr r0, [0x080488d0] ; [0x80488d0:4]=0x2001da6a
| || 0x080486ee 7949 ldr r1, [0x080488d6] ; [0x80488d4:4]=0x2001da20 gfx_info.off4
| || 0x080486f0 0822 movs r2, 8 ; 8
| || 0x080486f2 eaf79bfa bl gfx_memcpy
| |`-> 0x080486f6 7448 ldr r0, [0x080488ca] ; [0x80488c8:4]=0x2001da1c gfx_info
| | 0x080486f8 a0f84c40 strh.w r4, [r0, 0x4c]
| | 0x080486fc 7248 ldr r0, [0x080488c8] ; [0x80488c8:4]=0x2001da1c gfx_info
| | 0x080486fe b16a ldr r1, [r6, 0x28]
| | 0x08048700 8164 str r1, [r0, 0x48]
| | 0x08048702 eaf733fd bl gfx_3316c
| `--> 0x08048706 2800 movs r0, r5
| 0x08048708 00b2 sxth r0, r0
\ 0x0804870a 70bd pop {r4, r5, r6, pc}
/ (fcn) func_4870c 294
| Caller: func_48832
| func_4870c ();
| 0x0804870c 2de9f64f push.w {r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08048710 89b0 sub sp, 0x24 ; '$'
| 0x08048712 00b2 sxth r0, r0
| 0x08048714 eaf7a6f9 bl gfx_draw_sub_32a64
| 0x08048718 0400 movs r4, r0
| 0x0804871a b4f91800 ldrsh.w r0, [r4, 0x18]
| 0x0804871e b4f90610 ldrsh.w r1, [r4, 6]
| 0x08048722 0791 str r1, [sp, 0x1c]
| 0x08048724 e568 ldr r5, [r4, 0xc]
| 0x08048726 2669 ldr r6, [r4, 0x10]
| 0x08048728 f108 lsrs r1, r6, 3
| 0x0804872a 0891 str r1, [sp, 0x20]
| 0x0804872c 14f12c07 adds.w r7, r4, 0x2c
| 0x08048730 00b2 sxth r0, r0
| 0x08048732 0028 cmp r0, 0
| ,=< 0x08048734 6ad0 beq 0x804880c
| | 0x08048736 00b2 sxth r0, r0
| | 0x08048738 eaf794f9 bl gfx_draw_sub_32a64
| | 0x0804873c 8046 mov r8, r0
| | 0x0804873e 5ff00009 movs.w sb, 0
| ,==< 0x08048742 2ae0 b 0x804879a
| .---> 0x08048744 0020 movs r0, 0
| ||| 0x08048746 0590 str r0, [sp, 0x14]
| ||| 0x08048748 0698 ldr r0, [sp, 0x18]
| ||| 0x0804874a 0899 ldr r1, [sp, 0x20]
| ||| 0x0804874c 01fb0070 mla r0, r1, r0, r7
| ||| 0x08048750 0490 str r0, [sp, 0x10]
| ||| 0x08048752 0395 str r5, [sp, 0xc]
| ||| 0x08048754 0296 str r6, [sp, 8]
| ||| 0x08048756 0120 movs r0, 1 ; 1
| ||| 0x08048758 0190 str r0, [sp, 4]
| ||| 0x0804875a 0120 movs r0, 1 ; 1
| ||| 0x0804875c 0090 str r0, [sp]
| ||| 0x0804875e 0123 movs r3, 1 ; 1
| ||| 0x08048760 5246 mov r2, sl
| ||| 0x08048762 0a98 ldr r0, [sp, 0x28]
| ||| 0x08048764 19eb0001 adds.w r1, sb, r0
| ||| 0x08048768 0998 ldr r0, [sp, 0x24]
| ||| 0x0804876a ddf818c0 ldr.w ip, [sp, 0x18]
| ||| 0x0804876e 1ceb0000 adds.w r0, ip, r0
| ||| 0x08048772 eaf7edfb bl gfx_32f50
| ||| 0x08048776 0698 ldr r0, [sp, 0x18]
| ||| 0x08048778 1aeb0000 adds.w r0, sl, r0
| ||| 0x0804877c 0690 str r0, [sp, 0x18]
| ||| 0x0804877e 4a46 mov r2, sb
| ||| 0x08048780 06a9 add r1, sp, 0x18
| ||| 0x08048782 4046 mov r0, r8
| ||| 0x08048784 d8f80830 ldr.w r3, [r8, 8]
| ||| 0x08048788 5b69 ldr r3, [r3, 0x14]
| ||| 0x0804878a 9847 blx r3
| ||| 0x0804878c 8246 mov sl, r0
| .----> 0x0804878e baf1000f cmp.w sl, 0
| |`===< 0x08048792 d7d1 bne 0x8048744
| | || 0x08048794 ef19 adds r7, r5, r7
| |.---> 0x08048796 19f10109 adds.w sb, sb, 1
| ||`--> 0x0804879a 0798 ldr r0, [sp, 0x1c]
| || | 0x0804879c 8145 cmp sb, r0
| ||,==< 0x0804879e 45da bge 0x804882c
| |||| 0x080487a0 0020 movs r0, 0
| |||| 0x080487a2 0690 str r0, [sp, 0x18]
| |||| 0x080487a4 4a46 mov r2, sb
| |||| 0x080487a6 06a9 add r1, sp, 0x18
| |||| 0x080487a8 4046 mov r0, r8
| |||| 0x080487aa d8f80830 ldr.w r3, [r8, 8]
| |||| 0x080487ae 5b69 ldr r3, [r3, 0x14]
| |||| 0x080487b0 9847 blx r3
| |||| 0x080487b2 8246 mov sl, r0
| |||| 0x080487b4 b4f90400 ldrsh.w r0, [r4, 4]
| |||| 0x080487b8 8245 cmp sl, r0
| `====< 0x080487ba e8d1 bne 0x804878e
| ||| 0x080487bc cb46 mov fp, sb
| ,====< 0x080487be 01e0 b 0x80487c4
| .-----> 0x080487c0 19f10109 adds.w sb, sb, 1
| |`----> 0x080487c4 19f10102 adds.w r2, sb, 1
| | ||| 0x080487c8 06a9 add r1, sp, 0x18
| | ||| 0x080487ca 4046 mov r0, r8
| | ||| 0x080487cc d8f80830 ldr.w r3, [r8, 8]
| | ||| 0x080487d0 5b69 ldr r3, [r3, 0x14]
| | ||| 0x080487d2 9847 blx r3
| | ||| 0x080487d4 5045 cmp r0, sl
| `=====< 0x080487d6 f3d0 beq 0x80487c0
| ||| 0x080487d8 0020 movs r0, 0
| ||| 0x080487da 0590 str r0, [sp, 0x14]
| ||| 0x080487dc 0497 str r7, [sp, 0x10]
| ||| 0x080487de 0395 str r5, [sp, 0xc]
| ||| 0x080487e0 0296 str r6, [sp, 8]
| ||| 0x080487e2 0120 movs r0, 1 ; 1
| ||| 0x080487e4 0190 str r0, [sp, 4]
| ||| 0x080487e6 0120 movs r0, 1 ; 1
| ||| 0x080487e8 0090 str r0, [sp]
| ||| 0x080487ea b9eb0b00 subs.w r0, sb, fp
| ||| 0x080487ee 431c adds r3, r0, 1
| ||| 0x080487f0 b4f90420 ldrsh.w r2, [r4, 4]
| ||| 0x080487f4 0a98 ldr r0, [sp, 0x28]
| ||| 0x080487f6 1beb0001 adds.w r1, fp, r0
| ||| 0x080487fa 0998 ldr r0, [sp, 0x24]
| ||| 0x080487fc eaf7a8fb bl gfx_32f50
| ||| 0x08048800 b9eb0b00 subs.w r0, sb, fp
| ||| 0x08048804 401c adds r0, r0, 1
| ||| 0x08048806 05fb0077 mla r7, r5, r0, r7
| `===< 0x0804880a c4e7 b 0x8048796
| |`-> 0x0804880c 0020 movs r0, 0
| | 0x0804880e 0590 str r0, [sp, 0x14]
| | 0x08048810 0497 str r7, [sp, 0x10]
| | 0x08048812 0395 str r5, [sp, 0xc]
| | 0x08048814 0296 str r6, [sp, 8]
| | 0x08048816 0120 movs r0, 1 ; 1
| | 0x08048818 0190 str r0, [sp, 4]
| | 0x0804881a 0120 movs r0, 1 ; 1
| | 0x0804881c 0090 str r0, [sp]
| | 0x0804881e 079b ldr r3, [sp, 0x1c]
| | 0x08048820 b4f90420 ldrsh.w r2, [r4, 4]
| | 0x08048824 0a99 ldr r1, [sp, 0x28]
| | 0x08048826 0998 ldr r0, [sp, 0x24]
| | 0x08048828 eaf792fb bl gfx_32f50
| `--> 0x0804882c 0bb0 add sp, 0x2c
\ 0x0804882e bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_48832 132
| Caller: func_488b6
| func_48832 ();
| 0x08048832 2de9fc41 push.w {r2, r3, r4, r5, r6, r7, r8, lr}
| 0x08048836 0400 movs r4, r0
| 0x08048838 0d00 movs r5, r1
| 0x0804883a 1600 movs r6, r2
| 0x0804883c 24b2 sxth r4, r4
| 0x0804883e 002c cmp r4, 0
| ,=< 0x08048840 37d0 beq 0x80488b2
| | 0x08048842 2148 ldr r0, [0x080488ca] ; [0x80488c8:4]=0x2001da1c gfx_info
| | 0x08048844 b0f94c70 ldrsh.w r7, [r0, 0x4c]
| | 0x08048848 2000 movs r0, r4
| | 0x0804884a 00b2 sxth r0, r0
| | 0x0804884c eaf70af9 bl gfx_draw_sub_32a64
| | 0x08048850 8046 mov r8, r0
| | 0x08048852 09f0b9fd bl func_523c8
| | 0x08048856 2048 ldr r0, [0x080488da] ; [0x80488d8:4]=0xfffff001
| | 0x08048858 8542 cmp r5, r0
| ,==< 0x0804885a 03d1 bne 0x8048864
| || 0x0804885c b8f90050 ldrsh.w r5, [r8]
| || 0x08048860 b8f90260 ldrsh.w r6, [r8, 2]
| `--> 0x08048864 2800 movs r0, r5
| | 0x08048866 adf80000 strh.w r0, [sp]
| | 0x0804886a b8f80410 ldrh.w r1, [r8, 4]
| | 0x0804886e 0818 adds r0, r1, r0
| | 0x08048870 401e subs r0, r0, 1
| | 0x08048872 adf80400 strh.w r0, [sp, 4]
| | 0x08048876 3000 movs r0, r6
| | 0x08048878 adf80200 strh.w r0, [sp, 2]
| | 0x0804887c b8f80610 ldrh.w r1, [r8, 6]
| | 0x08048880 0818 adds r0, r1, r0
| | 0x08048882 401e subs r0, r0, 1
| | 0x08048884 adf80600 strh.w r0, [sp, 6]
| | 0x08048888 d4f7c8fc bl gfx_1d21c
| | 0x0804888c 00a8 add r0, sp, 0
| | 0x0804888e d4f72ffa bl gfx_bmp_sub1
| | 0x08048892 0028 cmp r0, 0
| ,==< 0x08048894 09d0 beq 0x80488aa
| .---> 0x08048896 3200 movs r2, r6
| ||| 0x08048898 2900 movs r1, r5
| ||| 0x0804889a 2000 movs r0, r4
| ||| 0x0804889c 00b2 sxth r0, r0
| ||| 0x0804889e fff735ff bl func_4870c
| ||| 0x080488a2 d4f7f7f9 bl gfx_bmp_sub3
| ||| 0x080488a6 0028 cmp r0, 0
| `===< 0x080488a8 f5d1 bne 0x8048896
| `--> 0x080488aa 3800 movs r0, r7
| | 0x080488ac 00b2 sxth r0, r0
| | 0x080488ae fff706ff bl func_486be
\ `-> 0x080488b2 bde8f381 pop.w {r0, r1, r4, r5, r6, r7, r8, pc}
/ (fcn) func_488b6 14
| Caller: gfx_3324c
| func_488b6 ();
| 0x080488b6 80b5 push {r7, lr}
| 0x080488b8 074a ldr r2, [0x080488d8] ; [0x80488d8:4]=0xfffff001
| 0x080488ba 0749 ldr r1, [0x080488da] ; [0x80488d8:4]=0xfffff001
| 0x080488bc 00b2 sxth r0, r0
| 0x080488be fff7b8ff bl func_48832
\ 0x080488c2 01bd pop {r0, pc}
/ (fcn) func_488dc 38
| Caller: gfx_3324c
| func_488dc ();
| 0x080488dc 80b5 push {r7, lr}
| 0x080488de 0100 movs r1, r0
| 0x080488e0 0020 movs r0, 0
| 0x080488e2 09b2 sxth r1, r1
| 0x080488e4 0029 cmp r1, 0
| ,=< 0x080488e6 02d1 bne 0x80488ee
| | 0x080488e8 0649 ldr r1, [0x08048904] ; [0x8048904:4]=0x2001da1c gfx_info
| | 0x080488ea b1f94c10 ldrsh.w r1, [r1, 0x4c]
| `-> 0x080488ee 09b2 sxth r1, r1
| 0x080488f0 0029 cmp r1, 0
| ,=< 0x080488f2 05d0 beq 0x8048900
| | 0x080488f4 0800 movs r0, r1
| | 0x080488f6 00b2 sxth r0, r0
| | 0x080488f8 eaf7b4f8 bl gfx_draw_sub_32a64
| | 0x080488fc b0f90600 ldrsh.w r0, [r0, 6]
\ `-> 0x08048900 02bd pop {r1, pc}
/ (fcn) func_48908 40
| Caller: gfx_3324c
| func_48908 ();
| 0x08048908 10b5 push {r4, lr}
| 0x0804890a 0c00 movs r4, r1
| 0x0804890c 00b2 sxth r0, r0
| 0x0804890e 0028 cmp r0, 0
| ,=< 0x08048910 02d1 bne 0x8048918
| | 0x08048912 0748 ldr r0, [0x08048932] ; [0x8048930:4]=0x2001da1c gfx_info
| | 0x08048914 b0f94c00 ldrsh.w r0, [r0, 0x4c]
| `-> 0x08048918 00b2 sxth r0, r0
| 0x0804891a 0028 cmp r0, 0
| ,=< 0x0804891c 07d0 beq 0x804892e
| | 0x0804891e 00b2 sxth r0, r0
| | 0x08048920 eaf7a0f8 bl gfx_draw_sub_32a64
| | 0x08048924 b0f90610 ldrsh.w r1, [r0, 6]
| | 0x08048928 8c42 cmp r4, r1
| ,==< 0x0804892a 00da bge 0x804892e
| || 0x0804892c c480 strh r4, [r0, 6]
\ ``-> 0x0804892e 10bd pop {r4, pc}
/ (fcn) func_48934 88
| Caller: gfx_3324c
| func_48934 ();
| 0x08048934 70b5 push {r4, r5, r6, lr}
| 0x08048936 0c00 movs r4, r1
| 0x08048938 1500 movs r5, r2
| 0x0804893a 00b2 sxth r0, r0
| 0x0804893c 0028 cmp r0, 0
| ,=< 0x0804893e 06d1 bne 0x804894e
| | 0x08048940 1248 ldr r0, [0x0804898c] ; [0x804898c:4]=0x2001da1c gfx_info
| | 0x08048942 b0f94c00 ldrsh.w r0, [r0, 0x4c]
| | 0x08048946 0100 movs r1, r0
| | 0x08048948 09b2 sxth r1, r1
| | 0x0804894a 0029 cmp r1, 0
| ,==< 0x0804894c 1dd0 beq 0x804898a
| |`-> 0x0804894e 00b2 sxth r0, r0
| | 0x08048950 eaf788f8 bl gfx_draw_sub_32a64
| | 0x08048954 0600 movs r6, r0
| | 0x08048956 7580 strh r5, [r6, 2]
| | 0x08048958 3480 strh r4, [r6]
| | 0x0804895a eaf707fc bl gfx_3316c
| | 0x0804895e b6f91800 ldrsh.w r0, [r6, 0x18]
| | 0x08048962 0028 cmp r0, 0
| |,=< 0x08048964 11d0 beq 0x804898a
| || 0x08048966 b6f91800 ldrsh.w r0, [r6, 0x18]
| || 0x0804896a eaf77bf8 bl gfx_draw_sub_32a64
| || 0x0804896e b6f90410 ldrsh.w r1, [r6, 4]
| || 0x08048972 8180 strh r1, [r0, 4]
| || 0x08048974 09b2 sxth r1, r1
| || 0x08048976 0029 cmp r1, 0
| ,===< 0x08048978 07d0 beq 0x804898a
| ||| 0x0804897a b6f90610 ldrsh.w r1, [r6, 6]
| ||| 0x0804897e c180 strh r1, [r0, 6]
| ||| 0x08048980 09b2 sxth r1, r1
| ||| 0x08048982 0029 cmp r1, 0
| ,====< 0x08048984 01d0 beq 0x804898a
| |||| 0x08048986 0480 strh r4, [r0]
| |||| 0x08048988 4580 strh r5, [r0, 2]
\ ````-> 0x0804898a 70bd pop {r4, r5, r6, pc}
/ (fcn) func_48990 52
| Caller: gfx_3324c
| func_48990 ();
| 0x08048990 80b5 push {r7, lr}
| 0x08048992 00b2 sxth r0, r0
| 0x08048994 0028 cmp r0, 0
| ,=< 0x08048996 06d1 bne 0x80489a6
| | 0x08048998 0a48 ldr r0, [0x080489c4] ; [0x80489c4:4]=0x2001da1c gfx_info
| | 0x0804899a b0f94c00 ldrsh.w r0, [r0, 0x4c]
| | 0x0804899e 0100 movs r1, r0
| | 0x080489a0 09b2 sxth r1, r1
| | 0x080489a2 0029 cmp r1, 0
| ,==< 0x080489a4 0dd0 beq 0x80489c2
| |`-> 0x080489a6 00b2 sxth r0, r0
| | 0x080489a8 eaf75cf8 bl gfx_draw_sub_32a64
| | 0x080489ac b0f91800 ldrsh.w r0, [r0, 0x18]
| | 0x080489b0 00b2 sxth r0, r0
| | 0x080489b2 0028 cmp r0, 0
| |,=< 0x080489b4 05d0 beq 0x80489c2
| || 0x080489b6 00b2 sxth r0, r0
| || 0x080489b8 eaf754f8 bl gfx_draw_sub_32a64
| || 0x080489bc 8168 ldr r1, [r0, 8]
| || 0x080489be 8968 ldr r1, [r1, 8]
| || 0x080489c0 8847 blx r1
\ ``-> 0x080489c2 01bd pop {r0, pc}
/ (fcn) func_489c8 52
| Caller: gfx_33396
| func_489c8 ();
| 0x080489c8 00b5 push {lr}
| 0x080489ca 85b0 sub sp, 0x14
| 0x080489cc 0200 movs r2, r0
| 0x080489ce 0020 movs r0, 0
| 0x080489d0 094b ldr r3, [0x080489f8] ; [0x80489f8:4]=0x2001e808
| 0x080489d2 b3f90030 ldrsh.w r3, [r3]
| 0x080489d6 002b cmp r3, 0
| ,=< 0x080489d8 0cd0 beq 0x80489f4
| | 0x080489da 0092 str r2, [sp]
| | 0x080489dc 0191 str r1, [sp, 4]
| | 0x080489de 0e20 movs r0, 0xe ; 14
| | 0x080489e0 0290 str r0, [sp, 8]
| | 0x080489e2 00a8 add r0, sp, 0
| | 0x080489e4 0490 str r0, [sp, 0x10]
| | 0x080489e6 02a9 add r1, sp, 8
| | 0x080489e8 0348 ldr r0, [0x080489f8] ; [0x80489f8:4]=0x2001e808
| | 0x080489ea b0f90000 ldrsh.w r0, [r0]
| | 0x080489ee 09f001fe bl func_525f4
| | 0x080489f2 0120 movs r0, 1 ; 1
| `-> 0x080489f4 05b0 add sp, 0x14
| 0x080489f6 00bd pop {pc}
| 0x080489f8 08e80120 invalid
/ (fcn) gfx_jmptbl_entry0 8
| gfx_jmptbl_entry0 ();
| 0x080489fc 80b5 push {r7, lr}
| 0x080489fe 09f00dfe bl gfx_jmptbl_entry0_sub
\ 0x08048a02 02bd pop {r1, pc}
/ (fcn) gfx_jmptbl_entry1 8
| gfx_jmptbl_entry1 ();
| 0x08048a04 80b5 push {r7, lr}
| 0x08048a06 09f017fe bl gfx_jmptbl_entry1_sub
\ 0x08048a0a 02bd pop {r1, pc}
/ (fcn) gfx_jmptbl_entry2 8
| gfx_jmptbl_entry2 ();
| 0x08048a0c 80b5 push {r7, lr}
| 0x08048a0e 09f010fe bl gfx_jmptbl_entry2_sub
\ 0x08048a12 02bd pop {r1, pc}
/ (fcn) gfx_48a14 18
| Caller: gfx_before_lcd_init
| gfx_48a14 ();
| 0x08048a14 0021 movs r1, 0 ; also called via BLX R1 from gfx_32ca4
| 0x08048a16 0180 strh r1, [r0] ; [in] R0 = gfx_info+4 ?
| 0x08048a18 0021 movs r1, 0
| 0x08048a1a 4180 strh r1, [r0, 2]
| 0x08048a1c 9f21 movs r1, 0x9f ; 159
| 0x08048a1e 8180 strh r1, [r0, 4]
| 0x08048a20 7f21 movs r1, 0x7f ; 127
| 0x08048a22 c180 strh r1, [r0, 6]
\ 0x08048a24 7047 bx lr
/ (fcn) gfx_48a28 8
| Caller: gfx_before_lcd_init
| gfx_48a28 ();
| 0x08048a28 0148 ldr r0, [0x08048a30] ; [0x8048a30:4]=0x2001e802
| 0x08048a2a b0f90000 ldrsh.w r0, [r0]
\ 0x08048a2e 7047 bx lr
/ (fcn) gfx_48a34_nop 2
| Caller: gfx_init_lcd_and_others
| gfx_48a34_nop ();
\ 0x08048a34 7047 bx lr
/ (fcn) gfx_48a36 12
| Caller: font_method_called_via_hdr_offset0
| gfx_48a36 ();
| 0x08048a36 80b5 push {r7, lr}
| 0x08048a38 09f018fe bl func_5266c
| 0x08048a3c eaf7befb bl gfx_331bc
\ 0x08048a40 02bd pop {r1, pc}
/ (fcn) gfx_48a42 24
| Caller: font_method_called_via_hdr_offset0
| gfx_48a42 ();
| 0x08048a42 80b5 push {r7, lr}
| 0x08048a44 09f015fe bl func_52672
| 0x08048a48 eaf7b8fb bl gfx_331bc
| 0x08048a4c 02bd pop {r1, pc}
| 0x08048a4e 3700 movs r7, r6
| 0x08048a50 00b5 push {lr}
| 0x08048a52 00bf nop
| 0x08048a54 1300 movs r3, r2
| 0x08048a56 9646 mov lr, r2
\ 0x08048a58 9446 mov ip, r2
/ (fcn) func_48a84 14
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_48a84 ();
| 0x08048a84 dff83023 ldr.w r2, [0x08048dbc] ; [0x8048dbc:4]=0x20004a98
| 0x08048a88 1060 str r0, [r2]
| 0x08048a8a dff83003 ldr.w r0, [0x08048dc2] ; [0x8048dc0:4]=0x20004ac4
| 0x08048a8e 0160 str r1, [r0]
\ 0x08048a90 7047 bx lr
/ (fcn) func_48a92 38
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_48a92 ();
| 0x08048a92 30b4 push {r4, r5}
| 0x08048a94 029c ldr r4, [sp, 8]
| 0x08048a96 dff82853 ldr.w r5, [0x08048dc6] ; [0x8048dc4:4]=0x20004a9c
| 0x08048a9a 2880 strh r0, [r5]
| 0x08048a9c dff82403 ldr.w r0, [0x08048dc8] ; [0x8048dc8:4]=0x20004aa0
| 0x08048aa0 0160 str r1, [r0]
| 0x08048aa2 dff82403 ldr.w r0, [0x08048dce] ; [0x8048dcc:4]=0x20004ae2
| 0x08048aa6 0260 str r2, [r0]
| 0x08048aa8 dff82003 ldr.w r0, [0x08048dd0] ; [0x8048dd0:4]=0x20004ae3
| 0x08048aac 0370 strb r3, [r0]
| 0x08048aae dff82003 ldr.w r0, [0x08048dd6] ; [0x8048dd4:4]=0x20004ac6
| 0x08048ab2 0470 strb r4, [r0]
| 0x08048ab4 30bc pop {r4, r5}
\ 0x08048ab6 7047 bx lr
/ (fcn) func_48ab8 38
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_48ab8 ();
| 0x08048ab8 30b4 push {r4, r5}
| 0x08048aba 029c ldr r4, [sp, 8]
| 0x08048abc dff81453 ldr.w r5, [0x08048dd8] ; [0x8048dd8:4]=0x20004aa4
| 0x08048ac0 2880 strh r0, [r5]
| 0x08048ac2 dff81403 ldr.w r0, [0x08048dde] ; [0x8048ddc:4]=0x20004aa8
| 0x08048ac6 0160 str r1, [r0]
| 0x08048ac8 dff81003 ldr.w r0, [0x08048de0] ; [0x8048de0:4]=0x20004ae4
| 0x08048acc 0260 str r2, [r0]
| 0x08048ace dff81003 ldr.w r0, [0x08048de6] ; [0x8048de4:4]=0x20004ae5
| 0x08048ad2 0370 strb r3, [r0]
| 0x08048ad4 dff80c03 ldr.w r0, [0x08048de8] ; [0x8048de8:4]=0x186a0
| 0x08048ad8 0470 strb r4, [r0]
| 0x08048ada 30bc pop {r4, r5}
\ 0x08048adc 7047 bx lr
/ (fcn) func_48ade 186
| func_48ade ();
| 0x08048ade 00b5 push {lr}
| 0x08048ae0 87b0 sub sp, 0x1c
| 0x08048ae2 0121 movs r1, 1 ; 1
| 0x08048ae4 b548 ldr r0, [0x08048dbc] ; [0x8048dbc:4]=0x20004a98
| 0x08048ae6 0068 ldr r0, [r0]
| 0x08048ae8 eef72df8 bl func_36b46
| 0x08048aec 0121 movs r1, 1 ; 1
| 0x08048aee b648 ldr r0, [0x08048dca] ; [0x8048dc8:4]=0x20004aa0
| 0x08048af0 0068 ldr r0, [r0]
| 0x08048af2 ba4a ldr r2, [0x08048dde] ; [0x8048ddc:4]=0x20004aa8
| 0x08048af4 1268 ldr r2, [r2]
| 0x08048af6 1043 orrs r0, r2
| 0x08048af8 edf7f5ff bl func_36ae6
| 0x08048afc b448 ldr r0, [0x08048dd0] ; [0x8048dd0:4]=0x20004ae3
| 0x08048afe 0278 ldrb r2, [r0]
| 0x08048b00 b248 ldr r0, [0x08048dcc] ; [0x8048dcc:4]=0x20004ae2
| 0x08048b02 0178 ldrb r1, [r0]
| 0x08048b04 89b2 uxth r1, r1
| 0x08048b06 af48 ldr r0, [0x08048dc6] ; [0x8048dc4:4]=0x20004a9c
| 0x08048b08 0068 ldr r0, [r0]
| 0x08048b0a e2f789fe bl GPIO_PinAFConfig
| 0x08048b0e b548 ldr r0, [0x08048de6] ; [0x8048de4:4]=0x20004ae5
| 0x08048b10 0278 ldrb r2, [r0]
| 0x08048b12 b348 ldr r0, [0x08048de2] ; [0x8048de0:4]=0x20004ae4
| 0x08048b14 0178 ldrb r1, [r0]
| 0x08048b16 89b2 uxth r1, r1
| 0x08048b18 af48 ldr r0, [0x08048dd8] ; [0x8048dd8:4]=0x20004aa4
| 0x08048b1a 0068 ldr r0, [r0]
| 0x08048b1c e2f780fe bl GPIO_PinAFConfig
| 0x08048b20 a748 ldr r0, [0x08048dc0] ; [0x8048dc0:4]=0x20004ac4
| 0x08048b22 0088 ldrh r0, [r0]
| 0x08048b24 0090 str r0, [sp]
| 0x08048b26 0220 movs r0, 2 ; 2
| 0x08048b28 8df80400 strb.w r0, [sp, 4]
| 0x08048b2c 0220 movs r0, 2 ; 2
| 0x08048b2e 8df80500 strb.w r0, [sp, 5]
| 0x08048b32 0120 movs r0, 1 ; 1
| 0x08048b34 8df80600 strb.w r0, [sp, 6]
| 0x08048b38 0020 movs r0, 0
| 0x08048b3a 8df80700 strb.w r0, [sp, 7]
| 0x08048b3e 00a9 add r1, sp, 0
| 0x08048b40 a048 ldr r0, [0x08048dc4] ; [0x8048dc4:4]=0x20004a9c
| 0x08048b42 0068 ldr r0, [r0]
| 0x08048b44 e2f700fe bl GPIO_Init
| 0x08048b48 a248 ldr r0, [0x08048dd4] ; [0x8048dd4:4]=0x20004ac6
| 0x08048b4a 0088 ldrh r0, [r0]
| 0x08048b4c 0090 str r0, [sp]
| 0x08048b4e 00a9 add r1, sp, 0
| 0x08048b50 a148 ldr r0, [0x08048dd8] ; [0x8048dd8:4]=0x20004aa4
| 0x08048b52 0068 ldr r0, [r0]
| 0x08048b54 e2f7f8fd bl GPIO_Init
| 0x08048b58 0020 movs r0, 0
| 0x08048b5a adf80c00 strh.w r0, [sp, 0xc]
| 0x08048b5e 4bf6ff70 movw r0, 0xbfff
| 0x08048b62 adf80e00 strh.w r0, [sp, 0xe]
| 0x08048b66 a020 movs r0, 0xa0 ; 160
| 0x08048b68 adf81000 strh.w r0, [sp, 0x10]
| 0x08048b6c 4ff48060 mov.w r0, 0x400 ; 1024
| 0x08048b70 adf81200 strh.w r0, [sp, 0x12]
| 0x08048b74 4ff48040 mov.w r0, 0x4000
| 0x08048b78 adf81400 strh.w r0, [sp, 0x14]
| 0x08048b7c 9a48 ldr r0, [0x08048de8] ; [0x8048de8:4]=0x186a0
| 0x08048b7e 0290 str r0, [sp, 8]
| 0x08048b80 02a9 add r1, sp, 8
| 0x08048b82 8d48 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| 0x08048b84 0068 ldr r0, [r0]
| 0x08048b86 09f079fd bl func_5267c
| 0x08048b8a 0121 movs r1, 1 ; 1
| 0x08048b8c 8a48 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| 0x08048b8e 0068 ldr r0, [r0]
| 0x08048b90 09f0f0fd bl func_52774
| 0x08048b94 07b0 add sp, 0x1c
\ 0x08048b96 00bd pop {pc}
/ (fcn) func_48b98 306
| Caller: func_52dfe func_52c94 func_52940
| func_48b98 ();
| 0x08048b98 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x08048b9c 0700 movs r7, r0
| 0x08048b9e 8846 mov r8, r1
| 0x08048ba0 1400 movs r4, r2
| 0x08048ba2 1d00 movs r5, r3
| 0x08048ba4 0121 movs r1, 1 ; 1
| 0x08048ba6 8448 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| 0x08048ba8 0068 ldr r0, [r0]
| 0x08048baa 09f0f1fd bl func_52790
| 0x08048bae 5ff48036 movs.w r6, 0x10000
| .-> 0x08048bb2 8e49 ldr r1, [0x08048dee] ; [0x8048dec:4]=0x10000001
| | 0x08048bb4 8048 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| | 0x08048bb6 0068 ldr r0, [r0]
| | 0x08048bb8 09f031fe bl func_5281e
| | 0x08048bbc 0028 cmp r0, 0
| ,==< 0x08048bbe 05d1 bne 0x8048bcc
| || 0x08048bc0 3000 movs r0, r6
| || 0x08048bc2 461e subs r6, r0, 1
| || 0x08048bc4 0028 cmp r0, 0
| |`=< 0x08048bc6 f4d1 bne 0x8048bb2
| | 0x08048bc8 0120 movs r0, 1 ; 1
| |,=< 0x08048bca 7ce0 b 0x8048cc6
| `--> 0x08048bcc 0022 movs r2, 0
| | 0x08048bce 3900 movs r1, r7
| | 0x08048bd0 c9b2 uxtb r1, r1
| | 0x08048bd2 7948 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| | 0x08048bd4 0068 ldr r0, [r0]
| | 0x08048bd6 09f0f7fd bl func_527c8
| | 0x08048bda 5ff48036 movs.w r6, 0x10000
| .--> 0x08048bde 8449 ldr r1, [0x08048df2] ; [0x8048df0:4]=0x70082
| || 0x08048be0 7548 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| || 0x08048be2 0068 ldr r0, [r0]
| || 0x08048be4 09f001fe bl func_527ea
| || 0x08048be8 0028 cmp r0, 0
| ,===< 0x08048bea 05d1 bne 0x8048bf8
| ||| 0x08048bec 3000 movs r0, r6
| ||| 0x08048bee 461e subs r6, r0, 1
| ||| 0x08048bf0 0028 cmp r0, 0
| |`==< 0x08048bf2 f4d1 bne 0x8048bde
| | | 0x08048bf4 0220 movs r0, 2 ; 2
| |,==< 0x08048bf6 66e0 b 0x8048cc6
| `---> 0x08048bf8 4146 mov r1, r8
| || 0x08048bfa c9b2 uxtb r1, r1
| || 0x08048bfc 6e48 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| || 0x08048bfe 0068 ldr r0, [r0]
| || 0x08048c00 09f0edfd bl func_527de
| || 0x08048c04 5ff48036 movs.w r6, 0x10000
| .---> 0x08048c08 7a49 ldr r1, [0x08048df4] ; [0x8048df4:4]=0x10000080
| ||| 0x08048c0a 6b48 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| ||| 0x08048c0c 0068 ldr r0, [r0]
| ||| 0x08048c0e 09f006fe bl func_5281e
| ||| 0x08048c12 0028 cmp r0, 0
| ,====< 0x08048c14 0cd1 bne 0x8048c30
| |||| 0x08048c16 7849 ldr r1, [0x08048dfa] ; [0x8048df8:4]=0x10000004
| |||| 0x08048c18 6748 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| |||| 0x08048c1a 0068 ldr r0, [r0]
| |||| 0x08048c1c 09f0fffd bl func_5281e
| |||| 0x08048c20 0028 cmp r0, 0
| ,=====< 0x08048c22 05d1 bne 0x8048c30
| ||||| 0x08048c24 3000 movs r0, r6
| ||||| 0x08048c26 461e subs r6, r0, 1
| ||||| 0x08048c28 0028 cmp r0, 0
| ||`===< 0x08048c2a edd1 bne 0x8048c08
| || || 0x08048c2c 0320 movs r0, 3 ; 3
| ||,===< 0x08048c2e 4ae0 b 0x8048cc6
| ``----> 0x08048c30 0121 movs r1, 1 ; 1
| ||| 0x08048c32 6148 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| ||| 0x08048c34 0068 ldr r0, [r0]
| ||| 0x08048c36 09f0abfd bl func_52790
| ||| 0x08048c3a 5ff48036 movs.w r6, 0x10000
| .----> 0x08048c3e 6b49 ldr r1, [0x08048dee] ; [0x8048dec:4]=0x10000001
| |||| 0x08048c40 5d48 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| |||| 0x08048c42 0068 ldr r0, [r0]
| |||| 0x08048c44 09f0ebfd bl func_5281e
| |||| 0x08048c48 0028 cmp r0, 0
| ,=====< 0x08048c4a 05d1 bne 0x8048c58
| ||||| 0x08048c4c 3000 movs r0, r6
| ||||| 0x08048c4e 461e subs r6, r0, 1
| ||||| 0x08048c50 0028 cmp r0, 0
| |`====< 0x08048c52 f4d1 bne 0x8048c3e
| | ||| 0x08048c54 0420 movs r0, 4 ; 4
| |,====< 0x08048c56 36e0 b 0x8048cc6
| `-----> 0x08048c58 0122 movs r2, 1 ; 1
| |||| 0x08048c5a 3900 movs r1, r7
| |||| 0x08048c5c c9b2 uxtb r1, r1
| |||| 0x08048c5e 5648 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| |||| 0x08048c60 0068 ldr r0, [r0]
| |||| 0x08048c62 09f0b1fd bl func_527c8
| |||| 0x08048c66 5ff48036 movs.w r6, 0x10000
| .-----> 0x08048c6a 6449 ldr r1, [0x08048dfe] ; [0x8048dfc:4]=0x30002
| ||||| 0x08048c6c 5248 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| ||||| 0x08048c6e 0068 ldr r0, [r0]
| ||||| 0x08048c70 09f0bbfd bl func_527ea
| ||||| 0x08048c74 0028 cmp r0, 0
| ,======< 0x08048c76 05d1 bne 0x8048c84
| |||||| 0x08048c78 3000 movs r0, r6
| |||||| 0x08048c7a 461e subs r6, r0, 1
| |||||| 0x08048c7c 0028 cmp r0, 0
| |`=====< 0x08048c7e f4d1 bne 0x8048c6a
| | |||| 0x08048c80 0520 movs r0, 5 ; 5
| |,=====< 0x08048c82 20e0 b 0x8048cc6
| `------> 0x08048c84 0027 movs r7, 0
| ,======< 0x08048c86 06e0 b 0x8048c96
| .-------> 0x08048c88 4b48 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| ||||||| 0x08048c8a 0068 ldr r0, [r0]
| ||||||| 0x08048c8c 09f0aafd bl func_527e4
| ||||||| 0x08048c90 ffb2 uxtb r7, r7
| ||||||| 0x08048c92 3855 strb r0, [r7, r4]
| ||||||| 0x08048c94 7f1c adds r7, r7, 1
| |`------> 0x08048c96 ffb2 uxtb r7, r7
| | ||||| 0x08048c98 af42 cmp r7, r5
| |,======< 0x08048c9a 0eda bge 0x8048cba
| ||||||| 0x08048c9c 5ff48036 movs.w r6, 0x10000
| --------> 0x08048ca0 5749 ldr r1, [0x08048e00] ; [0x8048e00:4]=0x10000040
| ||||||| 0x08048ca2 4548 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| ||||||| 0x08048ca4 0068 ldr r0, [r0]
| ||||||| 0x08048ca6 09f0bafd bl func_5281e
| ||||||| 0x08048caa 0028 cmp r0, 0
| `=======< 0x08048cac ecd1 bne 0x8048c88
| |||||| 0x08048cae 3000 movs r0, r6
| |||||| 0x08048cb0 461e subs r6, r0, 1
| |||||| 0x08048cb2 0028 cmp r0, 0
| ========< 0x08048cb4 f4d1 bne 0x8048ca0
| |||||| 0x08048cb6 0620 movs r0, 6 ; 6
| ,=======< 0x08048cb8 05e0 b 0x8048cc6
| |`------> 0x08048cba 0121 movs r1, 1 ; 1
| | ||||| 0x08048cbc 3e48 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| | ||||| 0x08048cbe 0068 ldr r0, [r0]
| | ||||| 0x08048cc0 09f074fd bl func_527ac
| | ||||| 0x08048cc4 0020 movs r0, 0
\ `-`````-> 0x08048cc6 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) func_48cca 236
| Caller: func_52dfe func_52d5e func_52c94
| func_48cca ();
| 0x08048cca 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x08048cce 8046 mov r8, r0
| 0x08048cd0 0f00 movs r7, r1
| 0x08048cd2 1400 movs r4, r2
| 0x08048cd4 1d00 movs r5, r3
| 0x08048cd6 0121 movs r1, 1 ; 1
| 0x08048cd8 3748 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| 0x08048cda 0068 ldr r0, [r0]
| 0x08048cdc 09f058fd bl func_52790
| 0x08048ce0 5ff48036 movs.w r6, 0x10000
| .-> 0x08048ce4 4149 ldr r1, [0x08048dec] ; [0x8048dec:4]=0x10000001
| | 0x08048ce6 3448 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| | 0x08048ce8 0068 ldr r0, [r0]
| | 0x08048cea 09f098fd bl func_5281e
| | 0x08048cee 0028 cmp r0, 0
| ,==< 0x08048cf0 05d1 bne 0x8048cfe
| || 0x08048cf2 3000 movs r0, r6
| || 0x08048cf4 461e subs r6, r0, 1
| || 0x08048cf6 0028 cmp r0, 0
| |`=< 0x08048cf8 f4d1 bne 0x8048ce4
| | 0x08048cfa 0120 movs r0, 1 ; 1
| |,=< 0x08048cfc 59e0 b 0x8048db2
| `--> 0x08048cfe 0022 movs r2, 0
| | 0x08048d00 4146 mov r1, r8
| | 0x08048d02 c9b2 uxtb r1, r1
| | 0x08048d04 2c48 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| | 0x08048d06 0068 ldr r0, [r0]
| | 0x08048d08 09f05efd bl func_527c8
| | 0x08048d0c 5ff48036 movs.w r6, 0x10000
| .--> 0x08048d10 3749 ldr r1, [0x08048df0] ; [0x8048df0:4]=0x70082
| || 0x08048d12 2948 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| || 0x08048d14 0068 ldr r0, [r0]
| || 0x08048d16 09f068fd bl func_527ea
| || 0x08048d1a 0028 cmp r0, 0
| ,===< 0x08048d1c 05d1 bne 0x8048d2a
| ||| 0x08048d1e 3000 movs r0, r6
| ||| 0x08048d20 461e subs r6, r0, 1
| ||| 0x08048d22 0028 cmp r0, 0
| |`==< 0x08048d24 f4d1 bne 0x8048d10
| | | 0x08048d26 0220 movs r0, 2 ; 2
| |,==< 0x08048d28 43e0 b 0x8048db2
| `---> 0x08048d2a 3900 movs r1, r7
| || 0x08048d2c c9b2 uxtb r1, r1
| || 0x08048d2e 2248 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| || 0x08048d30 0068 ldr r0, [r0]
| || 0x08048d32 09f054fd bl func_527de
| || 0x08048d36 5ff48036 movs.w r6, 0x10000
| .---> 0x08048d3a 2e49 ldr r1, [0x08048df6] ; [0x8048df4:4]=0x10000080
| ||| 0x08048d3c 1e48 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| ||| 0x08048d3e 0068 ldr r0, [r0]
| ||| 0x08048d40 09f06dfd bl func_5281e
| ||| 0x08048d44 0028 cmp r0, 0
| ,====< 0x08048d46 0cd1 bne 0x8048d62
| |||| 0x08048d48 2b49 ldr r1, [0x08048df8] ; [0x8048df8:4]=0x10000004
| |||| 0x08048d4a 1b48 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| |||| 0x08048d4c 0068 ldr r0, [r0]
| |||| 0x08048d4e 09f066fd bl func_5281e
| |||| 0x08048d52 0028 cmp r0, 0
| ,=====< 0x08048d54 05d1 bne 0x8048d62
| ||||| 0x08048d56 3000 movs r0, r6
| ||||| 0x08048d58 461e subs r6, r0, 1
| ||||| 0x08048d5a 0028 cmp r0, 0
| ||`===< 0x08048d5c edd1 bne 0x8048d3a
| || || 0x08048d5e 0320 movs r0, 3 ; 3
| ||,===< 0x08048d60 27e0 b 0x8048db2
| ``----> 0x08048d62 0027 movs r7, 0
| ,====< 0x08048d64 00e0 b 0x8048d68
| ..-----> 0x08048d66 7f1c adds r7, r7, 1
| ||`----> 0x08048d68 ffb2 uxtb r7, r7
| || ||| 0x08048d6a af42 cmp r7, r5
| ||,====< 0x08048d6c 1bda bge 0x8048da6
| |||||| 0x08048d6e ffb2 uxtb r7, r7
| |||||| 0x08048d70 395d ldrb r1, [r7, r4]
| |||||| 0x08048d72 1148 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| |||||| 0x08048d74 0068 ldr r0, [r0]
| |||||| 0x08048d76 09f032fd bl func_527de
| |||||| 0x08048d7a 5ff48036 movs.w r6, 0x10000
| .-------> 0x08048d7e 1d49 ldr r1, [0x08048df6] ; [0x8048df4:4]=0x10000080
| ||||||| 0x08048d80 0d48 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| ||||||| 0x08048d82 0068 ldr r0, [r0]
| ||||||| 0x08048d84 09f04bfd bl func_5281e
| ||||||| 0x08048d88 0028 cmp r0, 0
| |`======< 0x08048d8a ecd1 bne 0x8048d66
| | ||||| 0x08048d8c 1a49 ldr r1, [0x08048df8] ; [0x8048df8:4]=0x10000004
| | ||||| 0x08048d8e 0a48 ldr r0, [0x08048dba] ; [0x8048db8:4]=0x20004a94
| | ||||| 0x08048d90 0068 ldr r0, [r0]
| | ||||| 0x08048d92 09f044fd bl func_5281e
| | ||||| 0x08048d96 0028 cmp r0, 0
| | `=====< 0x08048d98 e5d1 bne 0x8048d66
| | |||| 0x08048d9a 3000 movs r0, r6
| | |||| 0x08048d9c 461e subs r6, r0, 1
| | |||| 0x08048d9e 0028 cmp r0, 0
| `=======< 0x08048da0 edd1 bne 0x8048d7e
| |||| 0x08048da2 0420 movs r0, 4 ; 4
| ,=====< 0x08048da4 05e0 b 0x8048db2
| |`----> 0x08048da6 0121 movs r1, 1 ; 1
| | ||| 0x08048da8 0348 ldr r0, [0x08048db8] ; [0x8048db8:4]=0x20004a94
| | ||| 0x08048daa 0068 ldr r0, [r0]
| | ||| 0x08048dac 09f0fefc bl func_527ac
| | ||| 0x08048db0 0020 movs r0, 0
\ `-```-> 0x08048db2 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) func_48e08 8
| Caller: func_51c6a
| func_48e08 ();
| 0x08048e08 0a49 ldr r1, [0x08048e34] ; [0x8048e34:4]=0x420e0020
| 0x08048e0a c0b2 uxtb r0, r0
| 0x08048e0c 0860 str r0, [r1]
\ 0x08048e0e 7047 bx lr
/ (fcn) func_48e10 22
| Caller: func_49ca8 func_499e2 func_4915c
| func_48e10 ();
| 0x08048e10 0021 movs r1, 0
| 0x08048e12 0a4a ldr r2, [0x08048e3e] ; [0x8048e3c:4]=0x40007004 io_PWR_CSR
| 0x08048e14 1268 ldr r2, [r2]
| 0x08048e16 0242 tst r2, r0
| ,=< 0x08048e18 01d0 beq 0x8048e1e
| | 0x08048e1a 0121 movs r1, 1 ; 1
| ,==< 0x08048e1c 00e0 b 0x8048e20
| |`-> 0x08048e1e 0021 movs r1, 0
| `--> 0x08048e20 0800 movs r0, r1
| 0x08048e22 c0b2 uxtb r0, r0
\ 0x08048e24 7047 bx lr
/ (fcn) func_48e26_uses_io_PWR 14
| func_48e26_uses_io_PWR ();
| 0x08048e26 0449 ldr r1, [0x08048e3a] ; [0x8048e38:4]=0x40007000 io_PWR
| 0x08048e28 0968 ldr r1, [r1]
| 0x08048e2a 51ea8000 orrs.w r0, r1, r0, lsl 2
| 0x08048e2e 0249 ldr r1, [0x08048e3a] ; [0x8048e38:4]=0x40007000 io_PWR
| 0x08048e30 0860 str r0, [r1]
\ 0x08048e32 7047 bx lr
/ (fcn) func_48f28 10
| Caller: func_52dfe func_52c94
| func_48f28 ();
| 0x08048f28 80b5 push {r7, lr}
| 0x08048f2a c0b2 uxtb r0, r0
| 0x08048f2c fff788ff bl func_48e40
\ 0x08048f30 01bd pop {r0, pc}
/ (fcn) func_48f32_uses_io_RTC 62
| Caller: func_52dfe func_52d5e func_48f70
| func_48f32_uses_io_RTC ();
| 0x08048f32 80b5 push {r7, lr}
| 0x08048f34 09f094fc bl func_52860
| 0x08048f38 3e49 ldr r1, [0x08049034] ; [0x8049034:4]=0x2001e784
| 0x08048f3a 0968 ldr r1, [r1]
| 0x08048f3c 3e4a ldr r2, [0x08049038] ; [0x8049038:4]=0x40002800 io_RTC
| 0x08048f3e 1268 ldr r2, [r2]
| 0x08048f40 1018 adds r0, r2, r0
| 0x08048f42 4018 adds r0, r0, r1
| 0x08048f44 3b49 ldr r1, [0x08049034] ; [0x8049034:4]=0x2001e784
| 0x08048f46 0860 str r0, [r1]
| 0x08048f48 3a48 ldr r0, [0x08049034] ; [0x8049034:4]=0x2001e784
| 0x08048f4a 0068 ldr r0, [r0]
| 0x08048f4c 3b49 ldr r1, [0x0804903c] ; [0x804903c:4]=0x41c64e6d
| 0x08048f4e 43f23902 movw r2, 0x3039
| 0x08048f52 01fb0020 mla r0, r1, r0, r2
| 0x08048f56 3749 ldr r1, [0x08049036] ; [0x8049034:4]=0x2001e784
| 0x08048f58 0860 str r0, [r1]
| 0x08048f5a 3648 ldr r0, [0x08049036] ; [0x8049034:4]=0x2001e784
| 0x08048f5c 0068 ldr r0, [r0]
| 0x08048f5e 010c lsrs r1, r0, 0x10
| 0x08048f60 4ff40042 mov.w r2, 0x8000
| 0x08048f64 b1fbf2f0 udiv r0, r1, r2
| 0x08048f68 00fb1210 mls r0, r0, r2, r1
| 0x08048f6c c0b2 uxtb r0, r0
\ 0x08048f6e 02bd pop {r1, pc}
/ (fcn) func_48f70 34
| Caller: func_48f92
| func_48f70 ();
| 0x08048f70 1fb5 push {r0, r1, r2, r3, r4, lr}
| 0x08048f72 0024 movs r4, 0
| ,=< 0x08048f74 04e0 b 0x8048f80
| .--> 0x08048f76 fff7dcff bl func_48f32_uses_io_RTC
| || 0x08048f7a 00a9 add r1, sp, 0
| || 0x08048f7c 6054 strb r0, [r4, r1]
| || 0x08048f7e 641c adds r4, r4, 1
| |`-> 0x08048f80 082c cmp r4, 8 ; 8
| `==< 0x08048f82 f8db blt 0x8048f76
| 0x08048f84 02a9 add r1, sp, 8
| 0x08048f86 00a8 add r0, sp, 0
| 0x08048f88 09f039ff bl func_52dfe
| 0x08048f8c c0b2 uxtb r0, r0
| 0x08048f8e 04b0 add sp, 0x10
\ 0x08048f90 10bd pop {r4, pc}
/ (fcn) func_48f92 118
| Caller: func_49ca8 func_499e2 func_4915c
| func_48f92 ();
| 0x08048f92 10b5 push {r4, lr}
| 0x08048f94 0400 movs r4, r0
| 0x08048f96 fff7ebff bl func_48f70
| 0x08048f9a 2949 ldr r1, [0x08049042] ; [0x8049040:4]=0x2001e968
| 0x08048f9c 0870 strb r0, [r1]
| 0x08048f9e 2848 ldr r0, [0x08049042] ; [0x8049040:4]=0x2001e968
| 0x08048fa0 0078 ldrb r0, [r0]
| 0x08048fa2 0028 cmp r0, 0
| ,=< 0x08048fa4 2fd0 beq 0x8049006
| | 0x08048fa6 0af043f8 bl func_53030
| | 0x08048faa 2549 ldr r1, [0x08049042] ; [0x8049040:4]=0x2001e968
| | 0x08048fac 0870 strb r0, [r1]
| | 0x08048fae 2448 ldr r0, [0x08049042] ; [0x8049040:4]=0x2001e968
| | 0x08048fb0 0078 ldrb r0, [r0]
| | 0x08048fb2 0028 cmp r0, 0
| ,==< 0x08048fb4 27d0 beq 0x8049006
| || 0x08048fb6 fff7dbff bl func_48f70
| || 0x08048fba 2149 ldr r1, [0x08049042] ; [0x8049040:4]=0x2001e968
| || 0x08048fbc 0870 strb r0, [r1]
| || 0x08048fbe 2048 ldr r0, [0x08049042] ; [0x8049040:4]=0x2001e968
| || 0x08048fc0 0078 ldrb r0, [r0]
| || 0x08048fc2 0028 cmp r0, 0
| ,===< 0x08048fc4 1fd0 beq 0x8049006
| ||| 0x08048fc6 fff7d3ff bl func_48f70
| ||| 0x08048fca 1d49 ldr r1, [0x08049042] ; [0x8049040:4]=0x2001e968
| ||| 0x08048fcc 0870 strb r0, [r1]
| ||| 0x08048fce 1c48 ldr r0, [0x08049042] ; [0x8049040:4]=0x2001e968
| ||| 0x08048fd0 0078 ldrb r0, [r0]
| ||| 0x08048fd2 0028 cmp r0, 0
| ,====< 0x08048fd4 17d0 beq 0x8049006
| |||| 0x08048fd6 1020 movs r0, 0x10 ; 16
| |||| 0x08048fd8 2070 strb r0, [r4]
| |||| 0x08048fda 09f041fc bl func_52860
| |||| 0x08048fde 1649 ldr r1, [0x0804903a] ; [0x8049038:4]=0x40002800 io_RTC
| |||| 0x08048fe0 0968 ldr r1, [r1]
| |||| 0x08048fe2 0818 adds r0, r1, r0
| |||| 0x08048fe4 10f00700 ands r0, r0, 7
| |||| 0x08048fe8 0128 cmp r0, 1 ; 1
| ,=====< 0x08048fea 0ad0 beq 0x8049002
| ,======< 0x08048fec 1ed3 blo 0x804902c
| |||||| 0x08048fee 0328 cmp r0, 3 ; 3
| ,=======< 0x08048ff0 0dd0 beq 0x804900e
| ========< 0x08048ff2 09d3 blo 0x8049008
| ||||||| 0x08048ff4 0528 cmp r0, 5 ; 5
| ========< 0x08048ff6 10d0 beq 0x804901a
| ========< 0x08048ff8 0cd3 blo 0x8049014
| ||||||| 0x08048ffa 0728 cmp r0, 7 ; 7
| ========< 0x08048ffc 13d0 beq 0x8049026
| ========< 0x08048ffe 0fd3 blo 0x8049020
| ========< 0x08049000 14e0 b 0x804902c
| ||`-----> 0x08049002 0af04ff8 bl func_530a4_endless_loop
\ || ````-> 0x08049006 10bd pop {r4, pc}
/ (fcn) func_49048 8
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49048 ();
| 0x08049048 dff87018 ldr.w r1, [0x080498c0] ; [0x80498c0:4]=0x20004a44
| 0x0804904c 0860 str r0, [r1]
\ 0x0804904e 7047 bx lr
/ (fcn) func_49050 8
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49050 ();
| 0x08049050 dff86c18 ldr.w r1, [0x080498c4] ; [0x80498c4:4]=0x20004ad7
| 0x08049054 0860 str r0, [r1]
\ 0x08049056 7047 bx lr
/ (fcn) func_49058 8
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49058 ();
| 0x08049058 dff86818 ldr.w r1, [0x080498c8] ; [0x80498c8:4]=0x20004a48 baseaddr_SPI3_for_SPI3_Handler
| 0x0804905c 0870 strb r0, [r1]
\ 0x0804905e 7047 bx lr
/ (fcn) func_49060 20
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49060 ();
| 0x08049060 dff86438 ldr.w r3, [0x080498cc] ; [0x80498cc:4]=0x20004a4c
| 0x08049064 1860 str r0, [r3]
| 0x08049066 dff86408 ldr.w r0, [0x080498d2] ; [0x80498d0:4]=0x20004a50
| 0x0804906a 0160 str r1, [r0]
| 0x0804906c dff86008 ldr.w r0, [0x080498d4] ; [0x80498d4:4]=0x20004abc bitmask_GPIOA_for_SPI3_Handler
| 0x08049070 0260 str r2, [r0]
\ 0x08049072 7047 bx lr
/ (fcn) func_49074 38
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49074 ();
| 0x08049074 30b4 push {r4, r5}
| 0x08049076 029c ldr r4, [sp, 8]
| 0x08049078 dff85858 ldr.w r5, [0x080498d8] ; [0x80498d8:4]=0x20004a54 baseaddr_GPIOA_for_SPI3_Handler
| 0x0804907c 2880 strh r0, [r5]
| 0x0804907e dff85808 ldr.w r0, [0x080498de] ; [0x80498dc:4]=0x20004a58
| 0x08049082 0160 str r1, [r0]
| 0x08049084 dff85408 ldr.w r0, [0x080498e0] ; [0x80498e0:4]=0x20004ad8
| 0x08049088 0260 str r2, [r0]
| 0x0804908a dff85408 ldr.w r0, [0x080498e6] ; [0x80498e4:4]=0x20004ad9
| 0x0804908e 0370 strb r3, [r0]
| 0x08049090 dff85008 ldr.w r0, [0x080498e8] ; [0x80498e8:4]=0x20004abe
| 0x08049094 0470 strb r4, [r0]
| 0x08049096 30bc pop {r4, r5}
\ 0x08049098 7047 bx lr
/ (fcn) func_4909a 38
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_4909a ();
| 0x0804909a 30b4 push {r4, r5}
| 0x0804909c 029c ldr r4, [sp, 8]
| 0x0804909e dff84858 ldr.w r5, [0x080498ee] ; [0x80498ec:4]=0x20004a5c
| 0x080490a2 2880 strh r0, [r5]
| 0x080490a4 dff84408 ldr.w r0, [0x080498f0] ; [0x80498f0:4]=0x20004a60
| 0x080490a8 0160 str r1, [r0]
| 0x080490aa dff84408 ldr.w r0, [0x080498f6] ; [0x80498f4:4]=0x20004ada
| 0x080490ae 0260 str r2, [r0]
| 0x080490b0 dff84008 ldr.w r0, [0x080498f8] ; [0x80498f8:4]=0x20004adb
| 0x080490b4 0370 strb r3, [r0]
| 0x080490b6 dff84008 ldr.w r0, [0x080498fe] ; [0x80498fc:4]=0x20004ac0
| 0x080490ba 0470 strb r4, [r0]
| 0x080490bc 30bc pop {r4, r5}
\ 0x080490be 7047 bx lr
/ (fcn) func_490c0 38
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_490c0 ();
| 0x080490c0 30b4 push {r4, r5}
| 0x080490c2 029c ldr r4, [sp, 8]
| 0x080490c4 dff83458 ldr.w r5, [0x08049900] ; [0x8049900:4]=0x20004a64
| 0x080490c8 2880 strh r0, [r5]
| 0x080490ca dff83408 ldr.w r0, [0x08049906] ; [0x8049904:4]=0x20004a68
| 0x080490ce 0160 str r1, [r0]
| 0x080490d0 dff83008 ldr.w r0, [0x08049908] ; [0x8049908:4]=0x20004adc
| 0x080490d4 0260 str r2, [r0]
| 0x080490d6 dff83008 ldr.w r0, [0x0804990e] ; [0x804990c:4]=0x20004add
| 0x080490da 0370 strb r3, [r0]
| 0x080490dc dff82c08 ldr.w r0, [0x08049910] ; [0x8049910:4]=0x20004ac2
| 0x080490e0 0470 strb r4, [r0]
| 0x080490e2 30bc pop {r4, r5}
\ 0x080490e4 7047 bx lr
/ (fcn) func_490e6 38
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_490e6 ();
| 0x080490e6 30b4 push {r4, r5}
| 0x080490e8 029c ldr r4, [sp, 8]
| 0x080490ea dff82458 ldr.w r5, [0x08049916] ; [0x8049914:4]=0x20004a6c
| 0x080490ee 2880 strh r0, [r5]
| 0x080490f0 dff82008 ldr.w r0, [0x08049918] ; [0x8049918:4]=0x20004a70
| 0x080490f4 0160 str r1, [r0]
| 0x080490f6 dff82008 ldr.w r0, [0x0804991e] ; [0x804991c:4]=0x20004ade
| 0x080490fa 0260 str r2, [r0]
| 0x080490fc dff81c08 ldr.w r0, [0x08049920] ; [0x8049920:4]=0x20004adf
| 0x08049100 0370 strb r3, [r0]
| 0x08049102 dff81c08 ldr.w r0, [0x08049926] ; [0x8049924:4]=0x20004a74
| 0x08049106 0470 strb r4, [r0]
| 0x08049108 30bc pop {r4, r5}
\ 0x0804910a 7047 bx lr
/ (fcn) func_4910c 8
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_4910c ();
| 0x0804910c dff81418 ldr.w r1, [0x08049928] ; [0x8049928:4]=0x20004a78
| 0x08049110 0860 str r0, [r1]
\ 0x08049112 7047 bx lr
/ (fcn) func_49114 14
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49114 ();
| 0x08049114 dff81028 ldr.w r2, [0x0804992c] ; [0x804992c:4]=0x20004a80
| 0x08049118 1060 str r0, [r2]
| 0x0804911a dff81008 ldr.w r0, [0x08049932] ; [0x8049930:4]=0x2001e77c
| 0x0804911e 0160 str r1, [r0]
\ 0x08049120 7047 bx lr
/ (fcn) func_49122 14
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49122 ();
| 0x08049122 dff80c28 ldr.w r2, [0x08049936] ; [0x8049934:4]=0x20004a7c
| 0x08049126 1060 str r0, [r2]
| 0x08049128 dff80808 ldr.w r0, [0x08049938] ; [0x8049938:4]=0x20004ae1
| 0x0804912c 0160 str r1, [r0]
\ 0x0804912e 7047 bx lr
/ (fcn) func_49130 8
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49130 ();
| 0x08049130 dff80418 ldr.w r1, [0x0804993c] ; [0x804993c:4]=0x20004ae0
| 0x08049134 0870 strb r0, [r1]
\ 0x08049136 7047 bx lr
/ (fcn) func_49138 8
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49138 ();
| 0x08049138 dff80018 ldr.w r1, [0x08049940] ; [0x8049940:4]=0x20004a8c
| 0x0804913c 0870 strb r0, [r1]
\ 0x0804913e 7047 bx lr
/ (fcn) func_49140 14
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49140 ();
| 0x08049140 dff8fc27 ldr.w r2, [0x08049944] ; [0x8049944:4]=0x20004a90
| 0x08049144 1060 str r0, [r2]
| 0x08049146 dff8fc07 ldr.w r0, [0x0804994a] ; [0x8049948:4]=0x20004a84
| 0x0804914a 0160 str r1, [r0]
\ 0x0804914c 7047 bx lr
/ (fcn) func_4914e 14
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_4914e ();
| 0x0804914e dff8f827 ldr.w r2, [0x0804994e] ; [0x804994c:4]=0x20004a88
| 0x08049152 1060 str r0, [r2]
| 0x08049154 dff8f407 ldr.w r0, [0x08049950] ; [0x8049950:4]=0x2001b5f8
| 0x08049158 0160 str r1, [r0]
\ 0x0804915a 7047 bx lr
/ (fcn) func_4915c 716
| func_4915c ();
| 0x0804915c 10b5 push {r4, lr}
| 0x0804915e 96b0 sub sp, 0x58 ; 'X'
| 0x08049160 0400 movs r4, r0
| 0x08049162 0220 movs r0, 2 ; 2
| 0x08049164 fff754fe bl func_48e10
| 0x08049168 0028 cmp r0, 0
| ,=< 0x0804916a 02d1 bne 0x8049172
| | 0x0804916c 2000 movs r0, r4
| | 0x0804916e fff710ff bl func_48f92
| `-> 0x08049172 dff8dc07 ldr.w r0, [0x08049956] ; [0x8049954:4]=0x2001e778
| 0x08049176 0021 movs r1, 0
| 0x08049178 80f88012 strb.w r1, [r0, 0x280]
| 0x0804917c dff8d007 ldr.w r0, [0x08049954] ; [0x8049954:4]=0x2001e778
| 0x08049180 0021 movs r1, 0
| 0x08049182 80f88112 strb.w r1, [r0, 0x281]
| 0x08049186 0020 movs r0, 0
| 0x08049188 f6f7befa bl OSSemCreate
| 0x0804918c dff8c417 ldr.w r1, [0x08049958] ; [0x8049958:4]=0x2001b87c
| 0x08049190 0860 str r0, [r1]
| 0x08049192 0121 movs r1, 1 ; 1
| 0x08049194 dff83807 ldr.w r0, [0x080498d4] ; [0x80498d4:4]=0x20004abc bitmask_GPIOA_for_SPI3_Handler
| 0x08049198 0068 ldr r0, [r0]
| 0x0804919a edf7d4fc bl func_36b46
| 0x0804919e 0121 movs r1, 1 ; 1
| 0x080491a0 dff88007 ldr.w r0, [0x08049928] ; [0x8049928:4]=0x20004a78
| 0x080491a4 0068 ldr r0, [r0]
| 0x080491a6 edf79efc bl func_36ae6
| 0x080491aa 0121 movs r1, 1 ; 1
| 0x080491ac dff82c07 ldr.w r0, [0x080498e0] ; [0x80498e0:4]=0x20004ad8
| 0x080491b0 0068 ldr r0, [r0]
| 0x080491b2 dff83c27 ldr.w r2, [0x080498f6] ; [0x80498f4:4]=0x20004ada
| 0x080491b6 1268 ldr r2, [r2]
| 0x080491b8 1043 orrs r0, r2
| 0x080491ba dff84827 ldr.w r2, [0x0804990a] ; [0x8049908:4]=0x20004adc
| 0x080491be 1268 ldr r2, [r2]
| 0x080491c0 1043 orrs r0, r2
| 0x080491c2 dff85427 ldr.w r2, [0x0804991e] ; [0x804991c:4]=0x20004ade
| 0x080491c6 1268 ldr r2, [r2]
| 0x080491c8 1043 orrs r0, r2
| 0x080491ca edf78cfc bl func_36ae6
| 0x080491ce dff81807 ldr.w r0, [0x080498ee] ; [0x80498ec:4]=0x20004a5c
| 0x080491d2 0088 ldrh r0, [r0]
| 0x080491d4 0190 str r0, [sp, 4]
| 0x080491d6 0220 movs r0, 2 ; 2
| 0x080491d8 8df80800 strb.w r0, [sp, 8]
| 0x080491dc 0220 movs r0, 2 ; 2
| 0x080491de 8df80900 strb.w r0, [sp, 9]
| 0x080491e2 0020 movs r0, 0
| 0x080491e4 8df80a00 strb.w r0, [sp, 0xa]
| 0x080491e8 0020 movs r0, 0
| 0x080491ea 8df80b00 strb.w r0, [sp, 0xb]
| 0x080491ee 01a9 add r1, sp, 4
| 0x080491f0 dff8f806 ldr.w r0, [0x080498f0] ; [0x80498f0:4]=0x20004a60
| 0x080491f4 0068 ldr r0, [r0]
| 0x080491f6 e2f7a7fa bl GPIO_Init
| 0x080491fa dff80007 ldr.w r0, [0x08049902] ; [0x8049900:4]=0x20004a64
| 0x080491fe 0088 ldrh r0, [r0]
| 0x08049200 0190 str r0, [sp, 4]
| 0x08049202 01a9 add r1, sp, 4
| 0x08049204 dff8f806 ldr.w r0, [0x08049904] ; [0x8049904:4]=0x20004a68
| 0x08049208 0068 ldr r0, [r0]
| 0x0804920a e2f79dfa bl GPIO_Init
| 0x0804920e dff80007 ldr.w r0, [0x08049916] ; [0x8049914:4]=0x20004a6c
| 0x08049212 0088 ldrh r0, [r0]
| 0x08049214 0190 str r0, [sp, 4]
| 0x08049216 01a9 add r1, sp, 4
| 0x08049218 dff8f806 ldr.w r0, [0x08049918] ; [0x8049918:4]=0x20004a70
| 0x0804921c 0068 ldr r0, [r0]
| 0x0804921e e2f793fa bl GPIO_Init
| 0x08049222 dff8b006 ldr.w r0, [0x080498da] ; [0x80498d8:4]=0x20004a54 baseaddr_GPIOA_for_SPI3_Handler
| 0x08049226 0088 ldrh r0, [r0]
| 0x08049228 0190 str r0, [sp, 4]
| 0x0804922a 01a9 add r1, sp, 4
| 0x0804922c dff8a806 ldr.w r0, [0x080498dc] ; [0x80498dc:4]=0x20004a58
| 0x08049230 0068 ldr r0, [r0]
| 0x08049232 e2f789fa bl GPIO_Init
| 0x08049236 dff8ac06 ldr.w r0, [0x080498ea] ; [0x80498e8:4]=0x20004abe
| 0x0804923a 0278 ldrb r2, [r0]
| 0x0804923c dff8a006 ldr.w r0, [0x080498e4] ; [0x80498e4:4]=0x20004ad9
| 0x08049240 0178 ldrb r1, [r0]
| 0x08049242 89b2 uxth r1, r1
| 0x08049244 dff89006 ldr.w r0, [0x080498dc] ; [0x80498dc:4]=0x20004a58
| 0x08049248 0068 ldr r0, [r0]
| 0x0804924a e2f7e9fa bl GPIO_PinAFConfig
| 0x0804924e dff8a806 ldr.w r0, [0x080498fe] ; [0x80498fc:4]=0x20004ac0
| 0x08049252 0278 ldrb r2, [r0]
| 0x08049254 dff89c06 ldr.w r0, [0x080498f8] ; [0x80498f8:4]=0x20004adb
| 0x08049258 0178 ldrb r1, [r0]
| 0x0804925a 89b2 uxth r1, r1
| 0x0804925c dff88c06 ldr.w r0, [0x080498f0] ; [0x80498f0:4]=0x20004a60
| 0x08049260 0068 ldr r0, [r0]
| 0x08049262 e2f7ddfa bl GPIO_PinAFConfig
| 0x08049266 dff8a406 ldr.w r0, [0x08049912] ; [0x8049910:4]=0x20004ac2
| 0x0804926a 0278 ldrb r2, [r0]
| 0x0804926c dff89806 ldr.w r0, [0x0804990c] ; [0x804990c:4]=0x20004add
| 0x08049270 0178 ldrb r1, [r0]
| 0x08049272 89b2 uxth r1, r1
| 0x08049274 dff88806 ldr.w r0, [0x08049904] ; [0x8049904:4]=0x20004a68
| 0x08049278 0068 ldr r0, [r0]
| 0x0804927a e2f7d1fa bl GPIO_PinAFConfig
| 0x0804927e dff8a006 ldr.w r0, [0x08049926] ; [0x8049924:4]=0x20004a74
| 0x08049282 0278 ldrb r2, [r0]
| 0x08049284 dff89406 ldr.w r0, [0x08049920] ; [0x8049920:4]=0x20004adf
| 0x08049288 0178 ldrb r1, [r0]
| 0x0804928a 89b2 uxth r1, r1
| 0x0804928c dff88406 ldr.w r0, [0x08049918] ; [0x8049918:4]=0x20004a70
| 0x08049290 0068 ldr r0, [r0]
| 0x08049292 e2f7c5fa bl GPIO_PinAFConfig
| 0x08049296 0020 movs r0, 0
| 0x08049298 adf80e00 strh.w r0, [sp, 0xe]
| 0x0804929c 0120 movs r0, 1 ; 1
| 0x0804929e adf81000 strh.w r0, [sp, 0x10]
| 0x080492a2 0020 movs r0, 0
| 0x080492a4 adf81200 strh.w r0, [sp, 0x12]
| 0x080492a8 4ff4fa50 mov.w r0, 0x1f40
| 0x080492ac 0590 str r0, [sp, 0x14]
| 0x080492ae 0020 movs r0, 0
| 0x080492b0 adf81800 strh.w r0, [sp, 0x18]
| 0x080492b4 4ff48070 mov.w r0, 0x100 ; 256
| 0x080492b8 adf80c00 strh.w r0, [sp, 0xc]
| 0x080492bc 03a9 add r1, sp, 0xc
| 0x080492be dff80806 ldr.w r0, [0x080498ce] ; [0x80498cc:4]=0x20004a4c
| 0x080492c2 0068 ldr r0, [r0]
| 0x080492c4 fbf7c8f9 bl SomethingWith_RCC_and_PLL_I2C
| 0x080492c8 03a9 add r1, sp, 0xc
| 0x080492ca dff80006 ldr.w r0, [0x080498d2] ; [0x80498d0:4]=0x20004a50
| 0x080492ce 0068 ldr r0, [r0]
| 0x080492d0 fbf768fa bl func_447a4
| 0x080492d4 dff8ec05 ldr.w r0, [0x080498c8] ; [0x80498c8:4]=0x20004a48 baseaddr_SPI3_for_SPI3_Handler
| 0x080492d8 0078 ldrb r0, [r0]
| 0x080492da 8df80000 strb.w r0, [sp]
| 0x080492de 0020 movs r0, 0
| 0x080492e0 8df80200 strb.w r0, [sp, 2]
| 0x080492e4 0020 movs r0, 0
| 0x080492e6 8df80100 strb.w r0, [sp, 1]
| 0x080492ea 0120 movs r0, 1 ; 1
| 0x080492ec 8df80300 strb.w r0, [sp, 3]
| 0x080492f0 00a8 add r0, sp, 0
| 0x080492f2 08f010fd bl func_51d16
| 0x080492f6 0122 movs r2, 1 ; 1
| 0x080492f8 5021 movs r1, 0x50 ; 'P' ; 80
| 0x080492fa dff8cc05 ldr.w r0, [0x080498ce] ; [0x80498cc:4]=0x20004a4c
| 0x080492fe 0068 ldr r0, [r0]
| 0x08049300 fbf78bfa bl func_4481a
| 0x08049304 0122 movs r2, 1 ; 1
| 0x08049306 5021 movs r1, 0x50 ; 'P' ; 80
| 0x08049308 dff8c005 ldr.w r0, [0x080498d0] ; [0x80498d0:4]=0x20004a50
| 0x0804930c 0068 ldr r0, [r0]
| 0x0804930e fbf784fa bl func_4481a
| 0x08049312 4ff4a070 mov.w r0, 0x140 ; 320
| 0x08049316 0b90 str r0, [sp, 0x2c]
| 0x08049318 4ff40060 mov.w r0, 0x800 ; 2048
| 0x0804931c 0e90 str r0, [sp, 0x38]
| 0x0804931e 4ff40050 mov.w r0, 0x2000
| 0x08049322 0f90 str r0, [sp, 0x3c]
| 0x08049324 0020 movs r0, 0
| 0x08049326 0c90 str r0, [sp, 0x30]
| 0x08049328 4ff48060 mov.w r0, 0x400 ; 1024
| 0x0804932c 0d90 str r0, [sp, 0x34]
| 0x0804932e 4ff48070 mov.w r0, 0x100 ; 256
| 0x08049332 1090 str r0, [sp, 0x40]
| 0x08049334 0420 movs r0, 4 ; 4
| 0x08049336 1290 str r0, [sp, 0x48]
| 0x08049338 0320 movs r0, 3 ; 3
| 0x0804933a 1390 str r0, [sp, 0x4c]
| 0x0804933c 0020 movs r0, 0
| 0x0804933e 1490 str r0, [sp, 0x50]
| 0x08049340 0020 movs r0, 0
| 0x08049342 1590 str r0, [sp, 0x54]
| 0x08049344 dff8e005 ldr.w r0, [0x0804992c] ; [0x804992c:4]=0x20004a80
| 0x08049348 0068 ldr r0, [r0]
| 0x0804934a 0790 str r0, [sp, 0x1c]
| 0x0804934c dff87005 ldr.w r0, [0x080498c4] ; [0x80498c4:4]=0x20004ad7
| 0x08049350 0068 ldr r0, [r0]
| 0x08049352 0890 str r0, [sp, 0x20]
| 0x08049354 dff8f805 ldr.w r0, [0x08049954] ; [0x8049954:4]=0x2001e778
| 0x08049358 0990 str r0, [sp, 0x24]
| 0x0804935a 4020 movs r0, 0x40 ; '@' ; 64
| 0x0804935c 0a90 str r0, [sp, 0x28]
| 0x0804935e 5ff40030 movs.w r0, 0x20000
| 0x08049362 1190 str r0, [sp, 0x44]
| 0x08049364 07a9 add r1, sp, 0x1c
| 0x08049366 dff8c405 ldr.w r0, [0x08049932] ; [0x8049930:4]=0x2001e77c
| 0x0804936a 0068 ldr r0, [r0]
| 0x0804936c 05f0a4f9 bl func_4e6b8
| 0x08049370 dff8c405 ldr.w r0, [0x0804993c] ; [0x804993c:4]=0x20004ae0
| 0x08049374 0078 ldrb r0, [r0]
| 0x08049376 8df80000 strb.w r0, [sp]
| 0x0804937a 0020 movs r0, 0
| 0x0804937c 8df80200 strb.w r0, [sp, 2]
| 0x08049380 0020 movs r0, 0
| 0x08049382 8df80100 strb.w r0, [sp, 1]
| 0x08049386 0120 movs r0, 1 ; 1
| 0x08049388 8df80300 strb.w r0, [sp, 3]
| 0x0804938c 00a8 add r0, sp, 0
| 0x0804938e 08f0c2fc bl func_51d16
| 0x08049392 dff89c05 ldr.w r0, [0x08049936] ; [0x8049934:4]=0x20004a7c
| 0x08049396 0068 ldr r0, [r0]
| 0x08049398 0790 str r0, [sp, 0x1c]
| 0x0804939a dff82005 ldr.w r0, [0x080498c2] ; [0x80498c0:4]=0x20004a44
| 0x0804939e 0068 ldr r0, [r0]
| 0x080493a0 0890 str r0, [sp, 0x20]
| 0x080493a2 dff8b405 ldr.w r0, [0x0804995e] ; [0x804995c:4]=0x20013594 ambe_mystery
| 0x080493a6 0990 str r0, [sp, 0x24]
| 0x080493a8 0020 movs r0, 0
| 0x080493aa 0a90 str r0, [sp, 0x28]
| 0x080493ac 5ff40030 movs.w r0, 0x20000
| 0x080493b0 1190 str r0, [sp, 0x44]
| 0x080493b2 07a9 add r1, sp, 0x1c
| 0x080493b4 dff87c05 ldr.w r0, [0x08049938] ; [0x8049938:4]=0x20004ae1
| 0x080493b8 0068 ldr r0, [r0]
| 0x080493ba 05f07df9 bl func_4e6b8
| 0x080493be dff87c05 ldr.w r0, [0x08049942] ; [0x8049940:4]=0x20004a8c
| 0x080493c2 0078 ldrb r0, [r0]
| 0x080493c4 8df80000 strb.w r0, [sp]
| 0x080493c8 0020 movs r0, 0
| 0x080493ca 8df80200 strb.w r0, [sp, 2]
| 0x080493ce 0020 movs r0, 0
| 0x080493d0 8df80100 strb.w r0, [sp, 1]
| 0x080493d4 0120 movs r0, 1 ; 1
| 0x080493d6 8df80300 strb.w r0, [sp, 3]
| 0x080493da 00a8 add r0, sp, 0
| 0x080493dc 08f09bfc bl func_51d16
| 0x080493e0 0122 movs r2, 1 ; 1
| 0x080493e2 1821 movs r1, 0x18 ; 24
| 0x080493e4 dff84405 ldr.w r0, [0x08049930] ; [0x8049930:4]=0x2001e77c
| 0x080493e8 0068 ldr r0, [r0]
| 0x080493ea 05f09df9 bl func_4e728
| 0x080493ee 0122 movs r2, 1 ; 1
| 0x080493f0 1821 movs r1, 0x18 ; 24
| 0x080493f2 dff84005 ldr.w r0, [0x0804993a] ; [0x8049938:4]=0x20004ae1
| 0x080493f6 0068 ldr r0, [r0]
| 0x080493f8 05f096f9 bl func_4e728
| 0x080493fc 0122 movs r2, 1 ; 1
| 0x080493fe 0121 movs r1, 1 ; 1
| 0x08049400 dff8c404 ldr.w r0, [0x080498cc] ; [0x80498cc:4]=0x20004a4c
| 0x08049404 0068 ldr r0, [r0]
| 0x08049406 fbf7fcf9 bl func_44802
| 0x0804940a 0122 movs r2, 1 ; 1
| 0x0804940c 0221 movs r1, 2 ; 2
| 0x0804940e dff8bc04 ldr.w r0, [0x080498d2] ; [0x80498d0:4]=0x20004a50
| 0x08049412 0068 ldr r0, [r0]
| 0x08049414 fbf7f5f9 bl func_44802
| 0x08049418 0020 movs r0, 0
| 0x0804941a 00f0daf9 bl func_497d2
| 0x0804941e 0020 movs r0, 0
| 0x08049420 00f0f6f9 bl func_49810
| 0x08049424 16b0 add sp, 0x58
\ 0x08049426 10bd pop {r4, pc}
/ (fcn) DMA1_Stream5_Sub 578
| Caller: DMA1_Stream5_IRQHandler
| DMA1_Stream5_Sub ();
| 0x08049428 80b5 push {r7, lr}
| 0x0804942a dff81405 ldr.w r0, [0x08049946] ; [0x8049944:4]=0x20004a90
| 0x0804942e 0168 ldr r1, [r0]
| 0x08049430 dff8f804 ldr.w r0, [0x08049930] ; [0x8049930:4]=0x2001e77c
| 0x08049434 0068 ldr r0, [r0]
| 0x08049436 05f097f9 bl DMA_Stream_Sub1
| 0x0804943a 0128 cmp r0, 1 ; 1
| ,=< 0x0804943c 40f08380 bne.w 0x8049546
| | 0x08049440 dff80c05 ldr.w r0, [0x08049954] ; [0x8049954:4]=0x2001e778
| | 0x08049444 90f88102 ldrb.w r0, [r0, 0x281]
| | 0x08049448 0128 cmp r0, 1 ; 1
| ,==< 0x0804944a 0ad1 bne 0x8049462
| || 0x0804944c dff80005 ldr.w r0, [0x08049954] ; [0x8049954:4]=0x2001e778
| || 0x08049450 0021 movs r1, 0
| || 0x08049452 80f88012 strb.w r1, [r0, 0x280]
| || 0x08049456 dff8fc04 ldr.w r0, [0x0804995a] ; [0x8049958:4]=0x2001b87c
| || 0x0804945a 0068 ldr r0, [r0]
| || 0x0804945c f6f7f2f9 bl OSSemPost
| ,===< 0x08049460 68e0 b 0x8049534
| |`--> 0x08049462 dff8f804 ldr.w r0, [0x08049962] ; [0x8049960:4]=0x2001e774
| | | 0x08049466 b0f9780b ldrsh.w r0, [r0, 0xb78]
| | | 0x0804946a 0128 cmp r0, 1 ; 1
| |,==< 0x0804946c 43db blt 0x80494f6
| ||| 0x0804946e 0020 movs r0, 0
| ,====< 0x08049470 1fe0 b 0x80494b2
| .-----> 0x08049472 dff8e814 ldr.w r1, [0x08049962] ; [0x8049960:4]=0x2001e774
| ||||| 0x08049476 b1f9761b ldrsh.w r1, [r1, 0xb76]
| ||||| 0x0804947a 4118 adds r1, r0, r1
| ||||| 0x0804947c dff8dc24 ldr.w r2, [0x08049960] ; [0x8049960:4]=0x2001e774
| ||||| 0x08049480 12eb4101 adds.w r1, r2, r1, lsl 1
| ||||| 0x08049484 b1f89419 ldrh.w r1, [r1, 0x994]
| ||||| 0x08049488 dff8c424 ldr.w r2, [0x08049954] ; [0x8049954:4]=0x2001e778
| ||||| 0x0804948c 22f82010 strh.w r1, [r2, r0, lsl 2]
| ||||| 0x08049490 dff8c814 ldr.w r1, [0x08049960] ; [0x8049960:4]=0x2001e774
| ||||| 0x08049494 b1f9761b ldrsh.w r1, [r1, 0xb76]
| ||||| 0x08049498 4118 adds r1, r0, r1
| ||||| 0x0804949a dff8c024 ldr.w r2, [0x08049962] ; [0x8049960:4]=0x2001e774
| ||||| 0x0804949e 12eb4101 adds.w r1, r2, r1, lsl 1
| ||||| 0x080494a2 b1f89419 ldrh.w r1, [r1, 0x994]
| ||||| 0x080494a6 dff8a824 ldr.w r2, [0x08049956] ; [0x8049954:4]=0x2001e778
| ||||| 0x080494aa 12eb8002 adds.w r2, r2, r0, lsl 2
| ||||| 0x080494ae 5180 strh r1, [r2, 2]
| ||||| 0x080494b0 401c adds r0, r0, 1
| |`----> 0x080494b2 5028 cmp r0, 0x50 ; 'P' ; 80
| `=====< 0x080494b4 dddb blt 0x8049472
| ||| 0x080494b6 dff8a404 ldr.w r0, [0x08049962] ; [0x8049960:4]=0x2001e774
| ||| 0x080494ba b0f8760b ldrh.w r0, [r0, 0xb76]
| ||| 0x080494be 5030 adds r0, 0x50
| ||| 0x080494c0 dff89814 ldr.w r1, [0x08049960] ; [0x8049960:4]=0x2001e774
| ||| 0x080494c4 a1f8760b strh.w r0, [r1, 0xb76]
| ||| 0x080494c8 dff89004 ldr.w r0, [0x08049960] ; [0x8049960:4]=0x2001e774
| ||| 0x080494cc b0f9760b ldrsh.w r0, [r0, 0xb76]
| ||| 0x080494d0 a021 movs r1, 0xa0 ; 160
| ||| 0x080494d2 90fbf1f2 sdiv r2, r0, r1
| ||| 0x080494d6 01fb1200 mls r0, r1, r2, r0
| ||| 0x080494da dff88014 ldr.w r1, [0x08049962] ; [0x8049960:4]=0x2001e774
| ||| 0x080494de a1f8760b strh.w r0, [r1, 0xb76]
| ||| 0x080494e2 dff87804 ldr.w r0, [0x08049962] ; [0x8049960:4]=0x2001e774
| ||| 0x080494e6 b0f8780b ldrh.w r0, [r0, 0xb78]
| ||| 0x080494ea 5038 subs r0, 0x50
| ||| 0x080494ec dff86c14 ldr.w r1, [0x08049960] ; [0x8049960:4]=0x2001e774
| ||| 0x080494f0 a1f8780b strh.w r0, [r1, 0xb78]
| ,====< 0x080494f4 19e0 b 0x804952a
| ||`--> 0x080494f6 0020 movs r0, 0
| ||,==< 0x080494f8 15e0 b 0x8049526
| .-----> 0x080494fa dff86014 ldr.w r1, [0x08049962] ; [0x8049960:4]=0x2001e774
| ||||| 0x080494fe 11eb4001 adds.w r1, r1, r0, lsl 1
| ||||| 0x08049502 b1f8d41a ldrh.w r1, [r1, 0xad4]
| ||||| 0x08049506 dff84824 ldr.w r2, [0x08049956] ; [0x8049954:4]=0x2001e778
| ||||| 0x0804950a 22f82010 strh.w r1, [r2, r0, lsl 2]
| ||||| 0x0804950e dff84014 ldr.w r1, [0x08049956] ; [0x8049954:4]=0x2001e778
| ||||| 0x08049512 11eb8001 adds.w r1, r1, r0, lsl 2
| ||||| 0x08049516 dff84424 ldr.w r2, [0x08049962] ; [0x8049960:4]=0x2001e774
| ||||| 0x0804951a 12eb4002 adds.w r2, r2, r0, lsl 1
| ||||| 0x0804951e b2f8d42a ldrh.w r2, [r2, 0xad4]
| ||||| 0x08049522 4a80 strh r2, [r1, 2]
| ||||| 0x08049524 401c adds r0, r0, 1
| |||`--> 0x08049526 5028 cmp r0, 0x50 ; 'P' ; 80
| `=====< 0x08049528 e7db blt 0x80494fa
| `----> 0x0804952a dff83404 ldr.w r0, [0x08049966] ; [0x8049964:4]=0x20010332
| | | 0x0804952e 0068 ldr r0, [r0]
| | | 0x08049530 f6f788f9 bl OSSemPost
| `---> 0x08049534 dff80804 ldr.w r0, [0x08049944] ; [0x8049944:4]=0x20004a90
| | 0x08049538 0168 ldr r1, [r0]
| | 0x0804953a dff8f003 ldr.w r0, [0x08049932] ; [0x8049930:4]=0x2001e77c
| | 0x0804953e 0068 ldr r0, [r0]
| | 0x08049540 05f03bf9 bl DMA_Stream_Sub2
| ,==< 0x08049544 90e0 b 0x8049668
| |`-> 0x08049546 dff8fc03 ldr.w r0, [0x0804994a] ; [0x8049948:4]=0x20004a84
| | 0x0804954a 0168 ldr r1, [r0]
| | 0x0804954c dff8dc03 ldr.w r0, [0x08049930] ; [0x8049930:4]=0x2001e77c
| | 0x08049550 0068 ldr r0, [r0]
| | 0x08049552 05f009f9 bl DMA_Stream_Sub1
| | 0x08049556 0128 cmp r0, 1 ; 1
| |,=< 0x08049558 40f08680 bne.w 0x8049668
| || 0x0804955c dff8f003 ldr.w r0, [0x08049954] ; [0x8049954:4]=0x2001e778
| || 0x08049560 90f88102 ldrb.w r0, [r0, 0x281]
| || 0x08049564 0128 cmp r0, 1 ; 1
| ,===< 0x08049566 0ad1 bne 0x804957e
| ||| 0x08049568 dff8e403 ldr.w r0, [0x08049954] ; [0x8049954:4]=0x2001e778
| ||| 0x0804956c a021 movs r1, 0xa0 ; 160
| ||| 0x0804956e 80f88012 strb.w r1, [r0, 0x280]
| ||| 0x08049572 dff8e003 ldr.w r0, [0x0804995a] ; [0x8049958:4]=0x2001b87c
| ||| 0x08049576 0068 ldr r0, [r0]
| ||| 0x08049578 f6f764f9 bl OSSemPost
| ,====< 0x0804957c 6ee0 b 0x804965c
| |`---> 0x0804957e dff8dc03 ldr.w r0, [0x08049962] ; [0x8049960:4]=0x2001e774
| | || 0x08049582 b0f9780b ldrsh.w r0, [r0, 0xb78]
| | || 0x08049586 0128 cmp r0, 1 ; 1
| |,===< 0x08049588 46db blt 0x8049618
| |||| 0x0804958a 0020 movs r0, 0
| ,=====< 0x0804958c 22e0 b 0x80495d4
| .------> 0x0804958e dff8cc13 ldr.w r1, [0x08049962] ; [0x8049960:4]=0x2001e774
| |||||| 0x08049592 b1f9761b ldrsh.w r1, [r1, 0xb76]
| |||||| 0x08049596 4118 adds r1, r0, r1
| |||||| 0x08049598 dff8c023 ldr.w r2, [0x08049960] ; [0x8049960:4]=0x2001e774
| |||||| 0x0804959c 12eb4101 adds.w r1, r2, r1, lsl 1
| |||||| 0x080495a0 b1f89419 ldrh.w r1, [r1, 0x994]
| |||||| 0x080495a4 dff8a823 ldr.w r2, [0x08049954] ; [0x8049954:4]=0x2001e778
| |||||| 0x080495a8 12eb8002 adds.w r2, r2, r0, lsl 2
| |||||| 0x080495ac a2f84011 strh.w r1, [r2, 0x140]
| |||||| 0x080495b0 dff8a813 ldr.w r1, [0x08049960] ; [0x8049960:4]=0x2001e774
| |||||| 0x080495b4 b1f9761b ldrsh.w r1, [r1, 0xb76]
| |||||| 0x080495b8 4118 adds r1, r0, r1
| |||||| 0x080495ba dff8a023 ldr.w r2, [0x08049962] ; [0x8049960:4]=0x2001e774
| |||||| 0x080495be 12eb4101 adds.w r1, r2, r1, lsl 1
| |||||| 0x080495c2 b1f89419 ldrh.w r1, [r1, 0x994]
| |||||| 0x080495c6 dff88823 ldr.w r2, [0x08049956] ; [0x8049954:4]=0x2001e778
| |||||| 0x080495ca 12eb8002 adds.w r2, r2, r0, lsl 2
| |||||| 0x080495ce a2f84211 strh.w r1, [r2, 0x142]
| |||||| 0x080495d2 401c adds r0, r0, 1
| |`-----> 0x080495d4 5028 cmp r0, 0x50 ; 'P' ; 80
| `======< 0x080495d6 dadb blt 0x804958e
| |||| 0x080495d8 dff88003 ldr.w r0, [0x08049960] ; [0x8049960:4]=0x2001e774
| |||| 0x080495dc b0f8760b ldrh.w r0, [r0, 0xb76]
| |||| 0x080495e0 5030 adds r0, 0x50
| |||| 0x080495e2 dff87813 ldr.w r1, [0x08049962] ; [0x8049960:4]=0x2001e774
| |||| 0x080495e6 a1f8760b strh.w r0, [r1, 0xb76]
| |||| 0x080495ea dff87003 ldr.w r0, [0x08049962] ; [0x8049960:4]=0x2001e774
| |||| 0x080495ee b0f9760b ldrsh.w r0, [r0, 0xb76]
| |||| 0x080495f2 a021 movs r1, 0xa0 ; 160
| |||| 0x080495f4 90fbf1f2 sdiv r2, r0, r1
| |||| 0x080495f8 01fb1200 mls r0, r1, r2, r0
| |||| 0x080495fc dff85c13 ldr.w r1, [0x08049960] ; [0x8049960:4]=0x2001e774
| |||| 0x08049600 a1f8760b strh.w r0, [r1, 0xb76]
| |||| 0x08049604 dff85403 ldr.w r0, [0x08049960] ; [0x8049960:4]=0x2001e774
| |||| 0x08049608 b0f8780b ldrh.w r0, [r0, 0xb78]
| |||| 0x0804960c 5038 subs r0, 0x50
| |||| 0x0804960e dff84c13 ldr.w r1, [0x08049962] ; [0x8049960:4]=0x2001e774
| |||| 0x08049612 a1f8780b strh.w r0, [r1, 0xb78]
| ,=====< 0x08049616 1ce0 b 0x8049652
| ||`---> 0x08049618 0020 movs r0, 0
| ||,===< 0x0804961a 18e0 b 0x804964e
| .------> 0x0804961c dff83013 ldr.w r1, [0x08049954] ; [0x8049954:4]=0x2001e778
| |||||| 0x08049620 11eb8001 adds.w r1, r1, r0, lsl 2
| |||||| 0x08049624 dff83423 ldr.w r2, [0x08049960] ; [0x8049960:4]=0x2001e774
| |||||| 0x08049628 12eb4002 adds.w r2, r2, r0, lsl 1
| |||||| 0x0804962c b2f8d42a ldrh.w r2, [r2, 0xad4]
| |||||| 0x08049630 a1f84021 strh.w r2, [r1, 0x140]
| |||||| 0x08049634 dff81813 ldr.w r1, [0x08049954] ; [0x8049954:4]=0x2001e778
| |||||| 0x08049638 11eb8001 adds.w r1, r1, r0, lsl 2
| |||||| 0x0804963c dff81c23 ldr.w r2, [0x08049960] ; [0x8049960:4]=0x2001e774
| |||||| 0x08049640 12eb4002 adds.w r2, r2, r0, lsl 1
| |||||| 0x08049644 b2f8d42a ldrh.w r2, [r2, 0xad4]
| |||||| 0x08049648 a1f84221 strh.w r2, [r1, 0x142]
| |||||| 0x0804964c 401c adds r0, r0, 1
| |||`---> 0x0804964e 5028 cmp r0, 0x50 ; 'P' ; 80
| `======< 0x08049650 e4db blt 0x804961c
| `-----> 0x08049652 dff80c03 ldr.w r0, [0x08049966] ; [0x8049964:4]=0x20010332
| | || 0x08049656 0068 ldr r0, [r0]
| | || 0x08049658 f6f7f4f8 bl OSSemPost
| `----> 0x0804965c b948 ldr r0, [0x08049944] ; [0x8049944:4]=0x20004a90
| || 0x0804965e 0168 ldr r1, [r0]
| || 0x08049660 b248 ldr r0, [0x0804992c] ; [0x804992c:4]=0x20004a80
| || 0x08049662 0068 ldr r0, [r0]
| || 0x08049664 05f0a9f8 bl DMA_Stream_Sub2
\ ``-> 0x08049668 01bd pop {r0, pc}
/ (fcn) DMA1_Stream2_Sub 236
| Caller: DMA1_Stream2_IRQHandler
| DMA1_Stream2_Sub ();
| 0x0804966a 10b5 push {r4, lr}
| 0x0804966c b648 ldr r0, [0x08049948] ; [0x8049948:4]=0x20004a84
| 0x0804966e 0168 ldr r1, [r0]
| 0x08049670 b048 ldr r0, [0x08049934] ; [0x8049934:4]=0x20004a7c
| 0x08049672 0068 ldr r0, [r0]
| 0x08049674 05f078f8 bl DMA_Stream_Sub1
| 0x08049678 0128 cmp r0, 1 ; 1
| ,=< 0x0804967a 30d1 bne 0x80496de
| | 0x0804967c 0021 movs r1, 0
| | 0x0804967e 5ff08040 movs.w r0, 0x40000000 ; io_TIM2
| | 0x08049682 faf70dfa bl TIM_SetCounter
| | 0x08049686 0020 movs r0, 0
| ,==< 0x08049688 0de0 b 0x80496a6
| .---> 0x0804968a 41f25671 movw r1, 0x1756
| ||| 0x0804968e b54a ldr r2, [0x08049966] ; [0x8049964:4]=0x20010332
| ||| 0x08049690 b2f90020 ldrsh.w r2, [r2]
| ||| 0x08049694 8218 adds r2, r0, r2
| ||| 0x08049696 b44b ldr r3, [0x0804996a] ; [0x8049968:4]=0x2000ea9c
| ||| 0x08049698 13eb4202 adds.w r2, r3, r2, lsl 1
| ||| 0x0804969c ae4b ldr r3, [0x08049958] ; [0x8049958:4]=0x2001b87c
| ||| 0x0804969e 33f82030 ldrh.w r3, [r3, r0, lsl 2]
| ||| 0x080496a2 8b52 strh r3, [r1, r2]
| ||| 0x080496a4 401c adds r0, r0, 1
| |`--> 0x080496a6 5028 cmp r0, 0x50 ; 'P' ; 80
| `===< 0x080496a8 efdb blt 0x804968a
| | 0x080496aa ae48 ldr r0, [0x08049966] ; [0x8049964:4]=0x20010332
| | 0x080496ac 0088 ldrh r0, [r0]
| | 0x080496ae 5030 adds r0, 0x50
| | 0x080496b0 ac49 ldr r1, [0x08049964] ; [0x8049964:4]=0x20010332
| | 0x080496b2 0880 strh r0, [r1]
| | 0x080496b4 ab48 ldr r0, [0x08049964] ; [0x8049964:4]=0x20010332
| | 0x080496b6 b0f90000 ldrsh.w r0, [r0]
| | 0x080496ba a021 movs r1, 0xa0 ; 160
| | 0x080496bc 90fbf1f2 sdiv r2, r0, r1
| | 0x080496c0 01fb1200 mls r0, r1, r2, r0
| | 0x080496c4 a749 ldr r1, [0x08049964] ; [0x8049964:4]=0x20010332
| | 0x080496c6 0880 strh r0, [r1]
| | 0x080496c8 a848 ldr r0, [0x0804996c] ; [0x804996c:4]=0x2001e770
| | 0x080496ca 0068 ldr r0, [r0]
| | 0x080496cc f6f7baf8 bl OSSemPost
| | 0x080496d0 9d48 ldr r0, [0x08049948] ; [0x8049948:4]=0x20004a84
| | 0x080496d2 0168 ldr r1, [r0]
| | 0x080496d4 9748 ldr r0, [0x08049934] ; [0x8049934:4]=0x20004a7c
| | 0x080496d6 0068 ldr r0, [r0]
| | 0x080496d8 05f06ff8 bl DMA_Stream_Sub2
| ,==< 0x080496dc 3ae0 b 0x8049754
| |`-> 0x080496de 9b48 ldr r0, [0x0804994e] ; [0x804994c:4]=0x20004a88
| | 0x080496e0 0168 ldr r1, [r0]
| | 0x080496e2 9448 ldr r0, [0x08049936] ; [0x8049934:4]=0x20004a7c
| | 0x080496e4 0068 ldr r0, [r0]
| | 0x080496e6 05f03ff8 bl DMA_Stream_Sub1
| | 0x080496ea 0128 cmp r0, 1 ; 1
| |,=< 0x080496ec 32d1 bne 0x8049754
| || 0x080496ee 0021 movs r1, 0
| || 0x080496f0 5ff08040 movs.w r0, 0x40000000 ; io_TIM2
| || 0x080496f4 faf7d4f9 bl TIM_SetCounter
| || 0x080496f8 0020 movs r0, 0
| ,===< 0x080496fa 10e0 b 0x804971e
| .----> 0x080496fc 41f25671 movw r1, 0x1756
| |||| 0x08049700 984a ldr r2, [0x08049964] ; [0x8049964:4]=0x20010332
| |||| 0x08049702 b2f90020 ldrsh.w r2, [r2]
| |||| 0x08049706 8218 adds r2, r0, r2
| |||| 0x08049708 974b ldr r3, [0x08049968] ; [0x8049968:4]=0x2000ea9c
| |||| 0x0804970a 13eb4202 adds.w r2, r3, r2, lsl 1
| |||| 0x0804970e 4300 lsls r3, r0, 1
| |||| 0x08049710 914c ldr r4, [0x08049958] ; [0x8049958:4]=0x2001b87c
| |||| 0x08049712 14eb4303 adds.w r3, r4, r3, lsl 1
| |||| 0x08049716 b3f84031 ldrh.w r3, [r3, 0x140]
| |||| 0x0804971a 8b52 strh r3, [r1, r2]
| |||| 0x0804971c 401c adds r0, r0, 1
| |`---> 0x0804971e 5028 cmp r0, 0x50 ; 'P' ; 80
| `====< 0x08049720 ecdb blt 0x80496fc
| || 0x08049722 9048 ldr r0, [0x08049966] ; [0x8049964:4]=0x20010332
| || 0x08049724 0088 ldrh r0, [r0]
| || 0x08049726 5030 adds r0, 0x50
| || 0x08049728 8e49 ldr r1, [0x08049964] ; [0x8049964:4]=0x20010332
| || 0x0804972a 0880 strh r0, [r1]
| || 0x0804972c 8d48 ldr r0, [0x08049964] ; [0x8049964:4]=0x20010332
| || 0x0804972e b0f90000 ldrsh.w r0, [r0]
| || 0x08049732 a021 movs r1, 0xa0 ; 160
| || 0x08049734 90fbf1f2 sdiv r2, r0, r1
| || 0x08049738 01fb1200 mls r0, r1, r2, r0
| || 0x0804973c 8949 ldr r1, [0x08049964] ; [0x8049964:4]=0x20010332
| || 0x0804973e 0880 strh r0, [r1]
| || 0x08049740 8a48 ldr r0, [0x0804996c] ; [0x804996c:4]=0x2001e770
| || 0x08049742 0068 ldr r0, [r0]
| || 0x08049744 f6f77ef8 bl OSSemPost
| || 0x08049748 8048 ldr r0, [0x0804994c] ; [0x804994c:4]=0x20004a88
| || 0x0804974a 0168 ldr r1, [r0]
| || 0x0804974c 7948 ldr r0, [0x08049934] ; [0x8049934:4]=0x20004a7c
| || 0x0804974e 0068 ldr r0, [r0]
| || 0x08049750 05f033f8 bl DMA_Stream_Sub2
\ ``-> 0x08049754 10bd pop {r4, pc}
/ (fcn) SPI3_Handler 124
| Caller: SPI3_IRQHandler
| SPI3_Handler ();
| 0x08049756 80b5 push {r7, lr}
| 0x08049758 5821 movs r1, 0x58 ; 'X' ; 88
| 0x0804975a 5b48 ldr r0, [0x080498ca] ; [0x80498c8:4]=0x20004a48 baseaddr_SPI3_for_SPI3_Handler
| 0x0804975c 0068 ldr r0, [r0] ; [0x20004A48] = 0x40003C00 = SPI3/I2S3
| 0x0804975e fbf77cf8 bl 0x804485a ; func_44846+0x14
| 0x08049762 0128 cmp r0, 1 ; 1
| ,=< 0x08049764 16d1 bne 0x8049794
| | 0x08049766 0021 movs r1, 0
| | 0x08049768 5748 ldr r0, [0x080498c8] ; [0x80498c8:4]=0x20004a48 baseaddr_SPI3_for_SPI3_Handler
| | 0x0804976a 0068 ldr r0, [r0]
| | 0x0804976c fbf70cf8 bl SPI_I2S_EnableOrDisable
| .--> 0x08049770 5848 ldr r0, [0x080498d4] ; [0x80498d4:4]=0x20004abc bitmask_GPIOA_for_SPI3_Handler
| || 0x08049772 0188 ldrh r1, [r0] ; [0x20004ABC] = 0x04008000 = bitmask
| || 0x08049774 5848 ldr r0, [0x080498d8] ; [0x80498d8:4]=0x20004a54 baseaddr_GPIOA_for_SPI3_Handler
| || 0x08049776 0068 ldr r0, [r0] ; [0x20004a54] = 0x40020000 = GPIOA
| || 0x08049778 e2f739f8 bl GPIO_ReadInputDataBit
| || 0x0804977c 0028 cmp r0, 0
| `==< 0x0804977e f7d0 beq 0x8049770 ; 'WAITING in an interrupt handler ?'
| | 0x08049780 0121 movs r1, 1 ; 1
| | 0x08049782 5148 ldr r0, [0x080498ca] ; [0x80498c8:4]=0x20004a48 baseaddr_SPI3_for_SPI3_Handler
| | 0x08049784 0068 ldr r0, [r0]
| | 0x08049786 faf7ffff bl SPI_I2S_EnableOrDisable
| | 0x0804978a 5821 movs r1, 0x58 ; 'X' ; 88
| | 0x0804978c 4e48 ldr r0, [0x080498c8] ; [0x80498c8:4]=0x20004a48 baseaddr_SPI3_for_SPI3_Handler
| | 0x0804978e 0068 ldr r0, [r0]
| | 0x08049790 fbf785f8 bl 0x804489e ; func_44846+0x58
| `-> 0x08049794 5821 movs r1, 0x58 ; 'X' ; 88
| 0x08049796 4d48 ldr r0, [0x080498ce] ; [0x80498cc:4]=0x20004a4c
| 0x08049798 0068 ldr r0, [r0] ; [0x20004a4c] = 0x40004000 = I2S3ext
| 0x0804979a fbf75ef8 bl 0x804485a ; func_44846+0x14
| 0x0804979e 0128 cmp r0, 1 ; 1
| ,=< 0x080497a0 16d1 bne 0x80497d0
| | 0x080497a2 0021 movs r1, 0
| | 0x080497a4 4948 ldr r0, [0x080498cc] ; [0x80498cc:4]=0x20004a4c
| | 0x080497a6 0068 ldr r0, [r0]
| | 0x080497a8 faf7eeff bl SPI_I2S_EnableOrDisable
| .--> 0x080497ac 4948 ldr r0, [0x080498d4] ; [0x80498d4:4]=0x20004abc bitmask_GPIOA_for_SPI3_Handler
| || 0x080497ae 0188 ldrh r1, [r0]
| || 0x080497b0 4948 ldr r0, [0x080498d8] ; [0x80498d8:4]=0x20004a54 baseaddr_GPIOA_for_SPI3_Handler
| || 0x080497b2 0068 ldr r0, [r0] ; [0x20004a54] = 0x40020000 = GPIOA
| || 0x080497b4 e2f71bf8 bl GPIO_ReadInputDataBit
| || 0x080497b8 0028 cmp r0, 0
| `==< 0x080497ba f7d0 beq 0x80497ac
| | 0x080497bc 0121 movs r1, 1 ; 1
| | 0x080497be 4348 ldr r0, [0x080498ce] ; [0x80498cc:4]=0x20004a4c
| | 0x080497c0 0068 ldr r0, [r0]
| | 0x080497c2 faf7e1ff bl SPI_I2S_EnableOrDisable
| | 0x080497c6 5821 movs r1, 0x58 ; 'X' ; 88
| | 0x080497c8 4048 ldr r0, [0x080498cc] ; [0x80498cc:4]=0x20004a4c
| | 0x080497ca 0068 ldr r0, [r0]
| | 0x080497cc fbf767f8 bl 0x804489e ; func_44846+0x58
\ `-> 0x080497d0 01bd pop {r0, pc}
/ (fcn) func_497d2 62
| Caller: func_4915c
| func_497d2 ();
| 0x080497d2 80b5 push {r7, lr}
| 0x080497d4 c0b2 uxtb r0, r0
| 0x080497d6 0028 cmp r0, 0
| ,=< 0x080497d8 0fd0 beq 0x80497fa
| | 0x080497da 5448 ldr r0, [0x0804992e] ; [0x804992c:4]=0x20004a80
| | 0x080497dc 0068 ldr r0, [r0]
| | 0x080497de 4ff4a071 mov.w r1, 0x140 ; 320
| | 0x080497e2 4160 str r1, [r0, 4]
| | 0x080497e4 0121 movs r1, 1 ; 1
| | 0x080497e6 5148 ldr r0, [0x0804992e] ; [0x804992c:4]=0x20004a80
| | 0x080497e8 0068 ldr r0, [r0]
| | 0x080497ea 04f090ff bl func_4e70e
| | 0x080497ee 0121 movs r1, 1 ; 1
| | 0x080497f0 3648 ldr r0, [0x080498cc] ; [0x80498cc:4]=0x20004a4c
| | 0x080497f2 0068 ldr r0, [r0]
| | 0x080497f4 faf7c8ff bl SPI_I2S_EnableOrDisable
| ,==< 0x080497f8 09e0 b 0x804980e
| |`-> 0x080497fa 0021 movs r1, 0
| | 0x080497fc 3348 ldr r0, [0x080498cc] ; [0x80498cc:4]=0x20004a4c
| | 0x080497fe 0068 ldr r0, [r0]
| | 0x08049800 faf7c2ff bl SPI_I2S_EnableOrDisable
| | 0x08049804 0021 movs r1, 0
| | 0x08049806 4948 ldr r0, [0x0804992e] ; [0x804992c:4]=0x20004a80
| | 0x08049808 0068 ldr r0, [r0]
| | 0x0804980a 04f080ff bl func_4e70e
\ `--> 0x0804980e 01bd pop {r0, pc}
/ (fcn) func_49810 352
| Caller: TIM2_IRQHandler func_4915c
| func_49810 ();
| 0x08049810 80b5 push {r7, lr}
| 0x08049812 c0b2 uxtb r0, r0
| 0x08049814 0028 cmp r0, 0
| ,=< 0x08049816 0fd0 beq 0x8049838
| | 0x08049818 4648 ldr r0, [0x08049934] ; [0x8049934:4]=0x20004a7c
| | 0x0804981a 0068 ldr r0, [r0]
| | 0x0804981c 4ff4a071 mov.w r1, 0x140 ; 320
| | 0x08049820 4160 str r1, [r0, 4]
| | 0x08049822 0121 movs r1, 1 ; 1
| | 0x08049824 4348 ldr r0, [0x08049934] ; [0x8049934:4]=0x20004a7c
| | 0x08049826 0068 ldr r0, [r0]
| | 0x08049828 04f071ff bl func_4e70e
| .--> 0x0804982c 0121 movs r1, 1 ; 1
| || 0x0804982e 2648 ldr r0, [0x080498ca] ; [0x80498c8:4]=0x20004a48 baseaddr_SPI3_for_SPI3_Handler
| || 0x08049830 0068 ldr r0, [r0]
| || 0x08049832 faf7a9ff bl SPI_I2S_EnableOrDisable
| ,===< 0x08049836 09e0 b 0x804984c
| ||`-> 0x08049838 0021 movs r1, 0
| || 0x0804983a 2348 ldr r0, [0x080498ca] ; [0x80498c8:4]=0x20004a48 baseaddr_SPI3_for_SPI3_Handler
| || 0x0804983c 0068 ldr r0, [r0]
| || 0x0804983e faf7a3ff bl SPI_I2S_EnableOrDisable
| || 0x08049842 0021 movs r1, 0
| || 0x08049844 3b48 ldr r0, [0x08049934] ; [0x8049934:4]=0x20004a7c
| || 0x08049846 0068 ldr r0, [r0]
| ||.-> 0x08049848 04f061ff bl func_4e70e
| .`---> 0x0804984c 01bd pop {r0, pc}
| | || 0x0804984e 80b5 push {r7, lr}
| |.---> 0x08049850 0020 movs r0, 0
| ,=====< 0x08049852 11e0 b 0x8049878
| .------> 0x08049854 4149 ldr r1, [0x0804995c] ; [0x804995c:4]=0x20013594 ambe_mystery
| |||||| 0x08049856 11eb4001 adds.w r1, r1, r0, lsl 1
| |||||| 0x0804985a b1f8d41a ldrh.w r1, [r1, 0xad4]
| |||||| 0x0804985e 3c4a ldr r2, [0x08049952] ; [0x8049950:4]=0x2001b5f8
| |||||| 0x08049860 22f82010 strh.w r1, [r2, r0, lsl 2]
| |||||| 0x08049864 3a49 ldr r1, [0x08049950] ; [0x8049950:4]=0x2001b5f8
| |||||| 0x08049866 11eb8001 adds.w r1, r1, r0, lsl 2
| |||||| 0x0804986a 3c4a ldr r2, [0x0804995e] ; [0x804995c:4]=0x20013594 ambe_mystery
| |||||| 0x0804986c 12eb4002 adds.w r2, r2, r0, lsl 1
| |||||| 0x08049870 b2f8d42a ldrh.w r2, [r2, 0xad4]
| |||||| 0x08049874 4a80 strh r2, [r1, 2]
| |||||| 0x08049876 401c adds r0, r0, 1
| |`-----> 0x08049878 5028 cmp r0, 0x50 ; 'P' ; 80
| `======< 0x0804987a ebdb blt 0x8049854
| |||| 0x0804987c 0020 movs r0, 0
| ,=====< 0x0804987e 14e0 b 0x80498aa
| .------> 0x08049880 3349 ldr r1, [0x08049950] ; [0x8049950:4]=0x2001b5f8
| |||||| 0x08049882 11eb8001 adds.w r1, r1, r0, lsl 2
| |||||| 0x08049886 354a ldr r2, [0x0804995e] ; [0x804995c:4]=0x20013594 ambe_mystery
| |||||| 0x08049888 12eb4002 adds.w r2, r2, r0, lsl 1
| |||||| 0x0804988c b2f8d42a ldrh.w r2, [r2, 0xad4]
| |||||| 0x08049890 a1f84021 strh.w r2, [r1, 0x140]
| |||||| 0x08049894 2e49 ldr r1, [0x08049950] ; [0x8049950:4]=0x2001b5f8
| |||||| 0x08049896 11eb8001 adds.w r1, r1, r0, lsl 2
| |||||| 0x0804989a 304a ldr r2, [0x0804995e] ; [0x804995c:4]=0x20013594 ambe_mystery
| |||||| 0x0804989c 12eb4002 adds.w r2, r2, r0, lsl 1
| |||||| 0x080498a0 b2f8d42a ldrh.w r2, [r2, 0xad4]
| |||||| 0x080498a4 a1f84221 strh.w r2, [r1, 0x142]
| |||||| 0x080498a8 401c adds r0, r0, 1
| |`-----> 0x080498aa 5028 cmp r0, 0x50 ; 'P' ; 80
| `======< 0x080498ac e8db blt 0x8049880
| |||| 0x080498ae 2948 ldr r0, [0x08049956] ; [0x8049954:4]=0x2001e778
| |||| 0x080498b0 0068 ldr r0, [r0]
| |||| 0x080498b2 f5f713ff bl func_3f6dc
| |||| 0x080498b6 01bd pop {r0, pc}
| `====-> 0x080498b8 fee7 b 0x80498b8
| |||| 0x080498ba 0000 movs r0, r0
| |||| 0x080498bc 404a ldr r2, [func_499c0] ; [0x80499c0:4]=0x9c02b430
| |||| 0x080498be 0020 movs r0, 0
| |||| 0x080498c0 444a ldr r2, [0x080499d4] ; [0x80499d4:4]=0x700448b0
| |||| 0x080498c2 0020 movs r0, 0
| |||| 0x080498c4 d74a ldr r2, [0x08049c24] ; [0x8049c24:4]=0x4000f88d io_0x4000f88d
| |||| 0x080498c6 0020 movs r0, 0
| |||| 0x080498c8 484a ldr r2, [0x080499ec] ; [0x80499ec:4]=0x2800fa11
| |||| 0x080498ca 0020 movs r0, 0
| |||| 0x080498cc 4c4a ldr r2, [0x08049a00] ; [0x8049a00:4]=0x43106812
| |||| 0x080498ce 0020 movs r0, 0
| |||| 0x080498d0 504a ldr r2, [0x08049a14] ; [0x8049a14:4]=0x6800488e
| |||| 0x080498d2 0020 movs r0, 0
| |||| 0x080498d4 bc4a ldr r2, [0x08049bc8] ; [0x8049bc8:4]=0xd01a2f00
| |||| 0x080498d6 0020 movs r0, 0
| |||| 0x080498d8 544a ldr r2, [0x08049a2c] ; [0x8049a2c:4]=0xf7ed6800
| |||| 0x080498da 0020 movs r0, 0
| |||| 0x080498dc 584a ldr r2, [0x08049a40] ; [0x8049a40:4]=0x5f88d
| |||| 0x080498de 0020 movs r0, 0
| |||| 0x080498e0 d84a ldr r2, [0x08049c44] ; [0x8049c44:4]=0xfdfef7f5
| |||| 0x080498e2 0020 movs r0, 0
| |||| 0x080498e4 d94a ldr r2, [0x08049c4c] ; [0x8049c4c:4]=0x20004a18
| |||| 0x080498e6 0020 movs r0, 0
| |||| 0x080498e8 be4a ldr r2, [0x08049be4] ; [0x8049be4:4]=0x21025001
| |||| 0x080498ea 0020 movs r0, 0
| |||| 0x080498ec 5c4a ldr r2, [0x08049a60] ; [0x8049a60:4]=0x4885a900
| |||| 0x080498ee 0020 movs r0, 0
| |||| 0x080498f0 604a ldr r2, [0x08049a74] ; [0x8049a74:4]=0xf7e16800
| |||| 0x080498f2 0020 movs r0, 0
| |||| 0x080498f4 da4a ldr r2, [0x08049c60] ; [0x8049c60:4]=0x20004ab6
| |||| 0x080498f6 0020 movs r0, 0
| |||| 0x080498f8 db4a ldr r2, [0x08049c68] ; [0x8049c68:4]=0x20004a2c
| |||| 0x080498fa 0020 movs r0, 0
| |||| 0x080498fc c04a ldr r2, [0x08049c00] ; [0x8049c00:4]=0xbdf1fe21
| |||| 0x080498fe 0020 movs r0, 0
| |||| 0x08049900 644a ldr r2, [0x08049a94] ; [0x8049a94:4]=0x5f88d
| |||| 0x08049902 0020 movs r0, 0
| |||| 0x08049904 684a ldr r2, [0x08049aa8] ; [0x8049aa8:4]=0x48707802
| |||| 0x08049906 0020 movs r0, 0
| |||| 0x08049908 dc4a ldr r2, [0x08049c7c] ; [0x8049c7c:4]=0x20004a34
| |||| 0x0804990a 0020 movs r0, 0
| |||| 0x0804990c dd4a ldr r2, [0x08049c84] ; [0x8049c84:4]=0x20004ad1
| |||| 0x0804990e 0020 movs r0, 0
| |||| 0x08049910 c24a ldr r2, [0x08049c1c] ; [0x8049c1c:4]=0xfd9af7f5
| |||| 0x08049912 0020 movs r0, 0
| |||| 0x08049914 6c4a ldr r2, [0x08049ac8] ; [0x8049ac8:4]=0x4873feab
| |||| 0x08049916 0020 movs r0, 0
| |||| 0x08049918 704a ldr r2, [0x08049adc] ; [0x8049adc:4]=0xf8ad2000
| |||| 0x0804991a 0020 movs r0, 0
| |||| 0x0804991c de4a ldr r2, [0x08049c98] ; [0x8049c98:4]=0x20004ad3
| |||| 0x0804991e 0020 movs r0, 0
| |||| 0x08049920 df4a ldr r2, [0x08049ca0] ; [0x8049ca0:4]=0x2001e76c
| |||| 0x08049922 0020 movs r0, 0
| |||| 0x08049924 744a ldr r2, [0x08049af8] ; [0x8049af8:4]=0x10f8ad
| |||| 0x08049926 0020 movs r0, 0
| |||| 0x08049928 784a ldr r2, [0x08049b0c] ; [0x8049b0c:4]=0xf8ad2000
| |||| 0x0804992a 0020 movs r0, 0
| |||| 0x0804992c 804a ldr r2, [func_49b30] ; [0x8049b30:4]=0x4848b580
| |||| 0x0804992e 0020 movs r0, 0
| ||`==< 0x08049930 7ce7 b 0x804982c
| || | 0x08049932 0120 movs r0, 1 ; 1
| || | 0x08049934 7c4a ldr r2, [0x08049b28] ; [0x8049b28:4]=0xfe20f7fa
| || | 0x08049936 0020 movs r0, 0
| || | 0x08049938 e14a ldr r2, [0x08049cc0] ; [0x8049cc0:4]=0x6520f644
| || | 0x0804993a 0020 movs r0, 0
| || | 0x0804993c e04a ldr r2, [0x08049cc0] ; [0x8049cc0:4]=0x6520f644
| || | 0x0804993e 0020 movs r0, 0
| || | 0x08049940 8c4a ldr r2, [0x08049b74] ; [0x8049b74:4]=0xf805f000
| || | 0x08049942 0020 movs r0, 0
| || | 0x08049944 904a ldr r2, [0x08049b88] ; [0x8049b88:4]=0xd5fa0789
| || | 0x08049946 0020 movs r0, 0
| || | 0x08049948 844a ldr r2, [0x08049b5c] ; [0x8049b5c:4]=0xf811f000
| || | 0x0804994a 0020 movs r0, 0
| || | 0x0804994c 884a ldr r2, [0x08049b70] ; [0x8049b70:4]=0x20ffe004
| || | 0x0804994e 0020 movs r0, 0
| || | 0x08049950 f8b5 push {r3, r4, r5, r6, r7, lr}
| || | 0x08049952 0120 movs r0, 1 ; 1
| || `=< 0x08049954 78e7 b 0x8049848
| || 0x08049956 0120 movs r0, 1 ; 1
| || 0x08049958 7cb80120 invalid
| || 0x0804995c 9435 adds r5, 0x94
| || 0x0804995e 0120 movs r0, 1 ; 1
| `====< 0x08049960 74e7 b 0x804984c
| | 0x08049962 0120 movs r0, 1 ; 1
| | 0x08049964 3203 lsls r2, r6, 0xc
| | 0x08049966 0120 movs r0, 1 ; 1
| | 0x08049968 9cea0020 eors.w r0, ip, r0, lsl 8
| `===< 0x0804996c 70e7 b 0x8049850
\ 0x0804996e 0120 movs r0, 1 ; 1
/ (fcn) func_49970 10
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49970 ();
| 0x08049970 b64a ldr r2, [0x08049c4c] ; [0x8049c4c:4]=0x20004a18
| 0x08049972 1060 str r0, [r2]
| 0x08049974 b648 ldr r0, [0x08049c50] ; [0x8049c50:4]=0x20004a1c
| 0x08049976 0160 str r1, [r0]
\ 0x08049978 7047 bx lr
/ (fcn) func_4997a 14
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_4997a ();
| 0x0804997a b64b ldr r3, [0x08049c56] ; [0x8049c54:4]=0x20004ab4
| 0x0804997c 1880 strh r0, [r3]
| 0x0804997e b648 ldr r0, [0x08049c5a] ; [0x8049c58:4]=0x20004a20
| 0x08049980 0160 str r1, [r0]
| 0x08049982 b648 ldr r0, [0x08049c5e] ; [0x8049c5c:4]=0x20004a24
| 0x08049984 0260 str r2, [r0]
\ 0x08049986 7047 bx lr
/ (fcn) func_49988 28
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49988 ();
| 0x08049988 30b4 push {r4, r5}
| 0x0804998a 029c ldr r4, [sp, 8]
| 0x0804998c b44d ldr r5, [0x08049c60] ; [0x8049c60:4]=0x20004ab6
| 0x0804998e 2880 strh r0, [r5]
| 0x08049990 b448 ldr r0, [0x08049c64] ; [0x8049c64:4]=0x20004a28
| 0x08049992 0160 str r1, [r0]
| 0x08049994 b448 ldr r0, [0x08049c68] ; [0x8049c68:4]=0x20004a2c
| 0x08049996 0260 str r2, [r0]
| 0x08049998 b448 ldr r0, [0x08049c6c] ; [0x8049c6c:4]=0x20004ace
| 0x0804999a 0370 strb r3, [r0]
| 0x0804999c b448 ldr r0, [0x08049c70] ; [0x8049c70:4]=0x20004acf
| 0x0804999e 0470 strb r4, [r0]
| 0x080499a0 30bc pop {r4, r5}
\ 0x080499a2 7047 bx lr
/ (fcn) func_499a4 28
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_499a4 ();
| 0x080499a4 30b4 push {r4, r5}
| 0x080499a6 029c ldr r4, [sp, 8]
| 0x080499a8 b24d ldr r5, [0x08049c74] ; [0x8049c74:4]=0x20004ab8
| 0x080499aa 2880 strh r0, [r5]
| 0x080499ac b248 ldr r0, [0x08049c78] ; [0x8049c78:4]=0x20004a30
| 0x080499ae 0160 str r1, [r0]
| 0x080499b0 b248 ldr r0, [0x08049c7c] ; [0x8049c7c:4]=0x20004a34
| 0x080499b2 0260 str r2, [r0]
| 0x080499b4 b248 ldr r0, [0x08049c80] ; [0x8049c80:4]=0x20004ad0
| 0x080499b6 0370 strb r3, [r0]
| 0x080499b8 b248 ldr r0, [0x08049c84] ; [0x8049c84:4]=0x20004ad1
| 0x080499ba 0470 strb r4, [r0]
| 0x080499bc 30bc pop {r4, r5}
\ 0x080499be 7047 bx lr
/ (fcn) func_499c0 28
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_499c0 ();
| 0x080499c0 30b4 push {r4, r5}
| 0x080499c2 029c ldr r4, [sp, 8]
| 0x080499c4 b04d ldr r5, [0x08049c88] ; [0x8049c88:4]=0x20004aba
| 0x080499c6 2880 strh r0, [r5]
| 0x080499c8 b048 ldr r0, [0x08049c8c] ; [0x8049c8c:4]=0x20004a38
| 0x080499ca 0160 str r1, [r0]
| 0x080499cc b048 ldr r0, [0x08049c90] ; [0x8049c90:4]=0x20004a3c
| 0x080499ce 0260 str r2, [r0]
| 0x080499d0 b048 ldr r0, [0x08049c94] ; [0x8049c94:4]=0x20004ad2
| 0x080499d2 0370 strb r3, [r0]
| 0x080499d4 b048 ldr r0, [0x08049c98] ; [0x8049c98:4]=0x20004ad3
| 0x080499d6 0470 strb r4, [r0]
| 0x080499d8 30bc pop {r4, r5}
\ 0x080499da 7047 bx lr
/ (fcn) func_499dc 6
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_499dc ();
| 0x080499dc af49 ldr r1, [0x08049c9c] ; [0x8049c9c:4]=0x20004ad4
| 0x080499de 0870 strb r0, [r1]
\ 0x080499e0 7047 bx lr
/ (fcn) func_499e2 334
| Caller: func_49ba8_Creates_Sema
| func_499e2 ();
| 0x080499e2 10b5 push {r4, lr}
| 0x080499e4 88b0 sub sp, 0x20
| 0x080499e6 0400 movs r4, r0
| 0x080499e8 0220 movs r0, 2 ; 2
| 0x080499ea fff711fa bl func_48e10
| 0x080499ee 0028 cmp r0, 0
| ,=< 0x080499f0 02d1 bne 0x80499f8
| | 0x080499f2 2000 movs r0, r4
| | 0x080499f4 fff7cdfa bl func_48f92
| `-> 0x080499f8 0121 movs r1, 1 ; 1
| 0x080499fa 9848 ldr r0, [0x08049c5e] ; [0x8049c5c:4]=0x20004a24
| 0x080499fc 0068 ldr r0, [r0]
| 0x080499fe a44a ldr r2, [0x08049c92] ; [0x8049c90:4]=0x20004a3c
| 0x08049a00 1268 ldr r2, [r2]
| 0x08049a02 1043 orrs r0, r2
| 0x08049a04 9d4a ldr r2, [0x08049c7c] ; [0x8049c7c:4]=0x20004a34
| 0x08049a06 1268 ldr r2, [r2]
| 0x08049a08 1043 orrs r0, r2
| 0x08049a0a 974a ldr r2, [0x08049c6a] ; [0x8049c68:4]=0x20004a2c
| 0x08049a0c 1268 ldr r2, [r2]
| 0x08049a0e 1043 orrs r0, r2
| 0x08049a10 edf769f8 bl func_36ae6
| 0x08049a14 8e48 ldr r0, [0x08049c50] ; [0x8049c50:4]=0x20004a1c
| 0x08049a16 0068 ldr r0, [r0]
| 0x08049a18 c004 lsls r0, r0, 0x13
| ,=< 0x08049a1a 05d5 bpl 0x8049a28
| | 0x08049a1c 0121 movs r1, 1 ; 1
| | 0x08049a1e 8c48 ldr r0, [0x08049c52] ; [0x8049c50:4]=0x20004a1c
| | 0x08049a20 0068 ldr r0, [r0]
| | 0x08049a22 edf7a0f8 bl func_36b66
| ,==< 0x08049a26 04e0 b 0x8049a32
| |`-> 0x08049a28 0121 movs r1, 1 ; 1
| | 0x08049a2a 8948 ldr r0, [0x08049c52] ; [0x8049c50:4]=0x20004a1c
| | 0x08049a2c 0068 ldr r0, [r0]
| | 0x08049a2e edf78af8 bl func_36b46
| `--> 0x08049a32 8b48 ldr r0, [0x08049c62] ; [0x8049c60:4]=0x20004ab6
| 0x08049a34 0088 ldrh r0, [r0]
| 0x08049a36 0090 str r0, [sp]
| 0x08049a38 0220 movs r0, 2 ; 2
| 0x08049a3a 8df80400 strb.w r0, [sp, 4]
| 0x08049a3e 0220 movs r0, 2 ; 2
| 0x08049a40 8df80500 strb.w r0, [sp, 5]
| 0x08049a44 0020 movs r0, 0
| 0x08049a46 8df80600 strb.w r0, [sp, 6]
| 0x08049a4a 0220 movs r0, 2 ; 2
| 0x08049a4c 8df80700 strb.w r0, [sp, 7]
| 0x08049a50 00a9 add r1, sp, 0
| 0x08049a52 8448 ldr r0, [0x08049c66] ; [0x8049c64:4]=0x20004a28
| 0x08049a54 0068 ldr r0, [r0]
| 0x08049a56 e1f777fe bl GPIO_Init
| 0x08049a5a 8648 ldr r0, [0x08049c76] ; [0x8049c74:4]=0x20004ab8
| 0x08049a5c 0088 ldrh r0, [r0]
| 0x08049a5e 0090 str r0, [sp]
| 0x08049a60 00a9 add r1, sp, 0
| 0x08049a62 8548 ldr r0, [0x08049c7a] ; [0x8049c78:4]=0x20004a30
| 0x08049a64 0068 ldr r0, [r0]
| 0x08049a66 e1f76ffe bl GPIO_Init
| 0x08049a6a 8748 ldr r0, [0x08049c8a] ; [0x8049c88:4]=0x20004aba
| 0x08049a6c 0088 ldrh r0, [r0]
| 0x08049a6e 0090 str r0, [sp]
| 0x08049a70 00a9 add r1, sp, 0
| 0x08049a72 8648 ldr r0, [0x08049c8e] ; [0x8049c8c:4]=0x20004a38
| 0x08049a74 0068 ldr r0, [r0]
| 0x08049a76 e1f767fe bl GPIO_Init
| 0x08049a7a 7648 ldr r0, [0x08049c56] ; [0x8049c54:4]=0x20004ab4
| 0x08049a7c 0088 ldrh r0, [r0]
| 0x08049a7e 0090 str r0, [sp]
| 0x08049a80 0120 movs r0, 1 ; 1
| 0x08049a82 8df80400 strb.w r0, [sp, 4]
| 0x08049a86 0020 movs r0, 0
| 0x08049a88 8df80600 strb.w r0, [sp, 6]
| 0x08049a8c 0020 movs r0, 0
| 0x08049a8e 8df80700 strb.w r0, [sp, 7]
| 0x08049a92 0220 movs r0, 2 ; 2
| 0x08049a94 8df80500 strb.w r0, [sp, 5]
| 0x08049a98 00a9 add r1, sp, 0
| 0x08049a9a 6f48 ldr r0, [0x08049c5a] ; [0x8049c58:4]=0x20004a20
| 0x08049a9c 0068 ldr r0, [r0]
| 0x08049a9e e1f753fe bl GPIO_Init
| 0x08049aa2 00f04df8 bl func_49b40
| 0x08049aa6 7248 ldr r0, [0x08049c72] ; [0x8049c70:4]=0x20004acf
| 0x08049aa8 0278 ldrb r2, [r0]
| 0x08049aaa 7048 ldr r0, [0x08049c6e] ; [0x8049c6c:4]=0x20004ace
| 0x08049aac 0178 ldrb r1, [r0]
| 0x08049aae 89b2 uxth r1, r1
| 0x08049ab0 6c48 ldr r0, [0x08049c64] ; [0x8049c64:4]=0x20004a28
| 0x08049ab2 0068 ldr r0, [r0]
| 0x08049ab4 e1f7b4fe bl GPIO_PinAFConfig
| 0x08049ab8 7248 ldr r0, [0x08049c84] ; [0x8049c84:4]=0x20004ad1
| 0x08049aba 0278 ldrb r2, [r0]
| 0x08049abc 7048 ldr r0, [0x08049c80] ; [0x8049c80:4]=0x20004ad0
| 0x08049abe 0178 ldrb r1, [r0]
| 0x08049ac0 89b2 uxth r1, r1
| 0x08049ac2 6d48 ldr r0, [0x08049c7a] ; [0x8049c78:4]=0x20004a30
| 0x08049ac4 0068 ldr r0, [r0]
| 0x08049ac6 e1f7abfe bl GPIO_PinAFConfig
| 0x08049aca 7348 ldr r0, [0x08049c9a] ; [0x8049c98:4]=0x20004ad3
| 0x08049acc 0278 ldrb r2, [r0]
| 0x08049ace 7148 ldr r0, [0x08049c96] ; [0x8049c94:4]=0x20004ad2
| 0x08049ad0 0178 ldrb r1, [r0]
| 0x08049ad2 89b2 uxth r1, r1
| 0x08049ad4 6d48 ldr r0, [0x08049c8c] ; [0x8049c8c:4]=0x20004a38
| 0x08049ad6 0068 ldr r0, [r0]
| 0x08049ad8 e1f7a2fe bl GPIO_PinAFConfig
| 0x08049adc 0020 movs r0, 0
| 0x08049ade adf80800 strh.w r0, [sp, 8]
| 0x08049ae2 4ff48270 mov.w r0, 0x104 ; 260
| 0x08049ae6 adf80a00 strh.w r0, [sp, 0xa]
| 0x08049aea 0020 movs r0, 0
| 0x08049aec adf80c00 strh.w r0, [sp, 0xc]
| 0x08049af0 0020 movs r0, 0
| 0x08049af2 adf80e00 strh.w r0, [sp, 0xe]
| 0x08049af6 0120 movs r0, 1 ; 1
| 0x08049af8 adf81000 strh.w r0, [sp, 0x10]
| 0x08049afc 4ff40070 mov.w r0, 0x200 ; 512
| 0x08049b00 adf81200 strh.w r0, [sp, 0x12]
| 0x08049b04 6548 ldr r0, [0x08049c9c] ; [0x8049c9c:4]=0x20004ad4
| 0x08049b06 0078 ldrb r0, [r0]
| 0x08049b08 adf81400 strh.w r0, [sp, 0x14]
| 0x08049b0c 0020 movs r0, 0
| 0x08049b0e adf81600 strh.w r0, [sp, 0x16]
| 0x08049b12 0720 movs r0, 7 ; 7
| 0x08049b14 adf81800 strh.w r0, [sp, 0x18]
| 0x08049b18 02a9 add r1, sp, 8
| 0x08049b1a 4c48 ldr r0, [0x08049c4e] ; [0x8049c4c:4]=0x20004a18
| 0x08049b1c 0068 ldr r0, [r0]
| 0x08049b1e faf77bfd bl func_44618
| 0x08049b22 0121 movs r1, 1 ; 1
| 0x08049b24 4948 ldr r0, [0x08049c4c] ; [0x8049c4c:4]=0x20004a18
| 0x08049b26 0068 ldr r0, [r0]
| 0x08049b28 faf720fe bl func_4476c
| 0x08049b2c 08b0 add sp, 0x20
\ 0x08049b2e 10bd pop {r4, pc}
/ (fcn) func_49b30 16
| Caller: func_49bbe_Uses_Sema func_49c04_Uses_Sema
| func_49b30 ();
| 0x08049b30 80b5 push {r7, lr}
| 0x08049b32 4848 ldr r0, [0x08049c56] ; [0x8049c54:4]=0x20004ab4
| 0x08049b34 0188 ldrh r1, [r0]
| 0x08049b36 4848 ldr r0, [0x08049c5a] ; [0x8049c58:4]=0x20004a20
| 0x08049b38 0068 ldr r0, [r0]
| 0x08049b3a e1f768fe bl GPIO_ResetBits
\ 0x08049b3e 01bd pop {r0, pc}
/ (fcn) func_49b40 16
| Caller: func_49bbe_Uses_Sema func_499e2 func_49c04_Uses_Sema
| func_49b40 ();
| 0x08049b40 80b5 push {r7, lr}
| 0x08049b42 4448 ldr r0, [0x08049c56] ; [0x8049c54:4]=0x20004ab4
| 0x08049b44 0188 ldrh r1, [r0]
| 0x08049b46 4448 ldr r0, [0x08049c5a] ; [0x8049c58:4]=0x20004a20
| 0x08049b48 0068 ldr r0, [r0]
| 0x08049b4a e1f75efe bl GPIO_SetBits
\ 0x08049b4e 01bd pop {r0, pc}
/ (fcn) func_49b50 24
| Caller: func_49bbe_Uses_Sema func_49c04_Uses_Sema
| func_49b50 ();
| 0x08049b50 70b5 push {r4, r5, r6, lr}
| 0x08049b52 0400 movs r4, r0
| 0x08049b54 0d00 movs r5, r1
| 0x08049b56 0026 movs r6, 0
| ,=< 0x08049b58 03e0 b 0x8049b62
| .--> 0x08049b5a 305d ldrb r0, [r6, r4]
| || 0x08049b5c 00f011f8 bl func_49b82
| || 0x08049b60 761c adds r6, r6, 1
| |`-> 0x08049b62 ae42 cmp r6, r5
| `==< 0x08049b64 f9d3 blo 0x8049b5a
\ 0x08049b66 70bd pop {r4, r5, r6, pc}
/ (fcn) func_49b68 26
| Caller: func_49c04_Uses_Sema
| func_49b68 ();
| 0x08049b68 70b5 push {r4, r5, r6, lr}
| 0x08049b6a 0400 movs r4, r0
| 0x08049b6c 0d00 movs r5, r1
| 0x08049b6e 0026 movs r6, 0
| ,=< 0x08049b70 04e0 b 0x8049b7c
| .--> 0x08049b72 ff20 movs r0, 0xff ; 255
| || 0x08049b74 00f005f8 bl func_49b82
| || 0x08049b78 3055 strb r0, [r6, r4]
| || 0x08049b7a 761c adds r6, r6, 1
| |`-> 0x08049b7c ae42 cmp r6, r5
| `==< 0x08049b7e f8d3 blo 0x8049b72
\ 0x08049b80 70bd pop {r4, r5, r6, pc}
/ (fcn) func_49b82 38
| Caller: func_49b68 func_49b50
| func_49b82 ();
| .-> 0x08049b82 3249 ldr r1, [0x08049c4e] ; [0x8049c4c:4]=0x20004a18
| | 0x08049b84 0968 ldr r1, [r1]
| | 0x08049b86 0989 ldrh r1, [r1, 8]
| | 0x08049b88 8907 lsls r1, r1, 0x1e
| `=< 0x08049b8a fad5 bpl func_49b82
| 0x08049b8c 2f49 ldr r1, [0x08049c4c] ; [0x8049c4c:4]=0x20004a18
| 0x08049b8e 0968 ldr r1, [r1]
| 0x08049b90 c0b2 uxtb r0, r0
| 0x08049b92 8881 strh r0, [r1, 0xc]
| .-> 0x08049b94 2d48 ldr r0, [0x08049c4c] ; [0x8049c4c:4]=0x20004a18
| | 0x08049b96 0068 ldr r0, [r0]
| | 0x08049b98 0089 ldrh r0, [r0, 8]
| | 0x08049b9a c007 lsls r0, r0, 0x1f
| `=< 0x08049b9c fad5 bpl 0x8049b94
| 0x08049b9e 2b48 ldr r0, [0x08049c4e] ; [0x8049c4c:4]=0x20004a18
| 0x08049ba0 0068 ldr r0, [r0]
| 0x08049ba2 8089 ldrh r0, [r0, 0xc]
| 0x08049ba4 c0b2 uxtb r0, r0
\ 0x08049ba6 7047 bx lr
/ (fcn) func_49ba8_Creates_Sema 22
| func_49ba8_Creates_Sema ();
| 0x08049ba8 10b5 push {r4, lr}
| 0x08049baa 0400 movs r4, r0
| 0x08049bac 0120 movs r0, 1 ; 1
| 0x08049bae f5f7abfd bl OSSemCreate
| 0x08049bb2 3b49 ldr r1, [0x08049ca2] ; [0x8049ca0:4]=0x2001e76c
| 0x08049bb4 0860 str r0, [r1]
| 0x08049bb6 2000 movs r0, r4
| 0x08049bb8 fff713ff bl func_499e2
\ 0x08049bbc 10bd pop {r4, pc}
/ (fcn) func_49bbe_Uses_Sema 70
| Caller: ambe_4a88e_calls_encode c5000_wr_60_5
| func_49bbe_Uses_Sema ();
| 0x08049bbe f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x08049bc0 0400 movs r4, r0
| 0x08049bc2 0d00 movs r5, r1
| 0x08049bc4 1600 movs r6, r2
| 0x08049bc6 1f00 movs r7, r3
| 0x08049bc8 002f cmp r7, 0
| ,=< 0x08049bca 1ad0 beq 0x8049c02
| | 0x08049bcc 0df10202 add.w r2, sp, 2
| | 0x08049bd0 0021 movs r1, 0
| | 0x08049bd2 3348 ldr r0, [0x08049ca2] ; [0x8049ca0:4]=0x2001e76c
| | 0x08049bd4 0068 ldr r0, [r0]
| | 0x08049bd6 f5f7bdfd bl OSSemPend
| | 0x08049bda fff7a9ff bl func_49b30
| | 0x08049bde 8df80040 strb.w r4, [sp]
| | 0x08049be2 8df80150 strb.w r5, [sp, 1]
| | 0x08049be6 0221 movs r1, 2 ; 2
| | 0x08049be8 00a8 add r0, sp, 0
| | 0x08049bea fff7b1ff bl func_49b50
| | 0x08049bee 3900 movs r1, r7
| | 0x08049bf0 3000 movs r0, r6
| | 0x08049bf2 fff7adff bl func_49b50
| | 0x08049bf6 fff7a3ff bl func_49b40
| | 0x08049bfa 2948 ldr r0, [0x08049ca2] ; [0x8049ca0:4]=0x2001e76c
| | 0x08049bfc 0068 ldr r0, [r0]
| | 0x08049bfe f5f721fe bl OSSemPost
\ `-> 0x08049c02 f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) func_49c04_Uses_Sema 70
| func_49c04_Uses_Sema ();
| 0x08049c04 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x08049c06 0400 movs r4, r0
| 0x08049c08 0d00 movs r5, r1
| 0x08049c0a 1600 movs r6, r2
| 0x08049c0c 1f00 movs r7, r3
| 0x08049c0e 002f cmp r7, 0
| ,=< 0x08049c10 1ad0 beq 0x8049c48
| | 0x08049c12 0df10202 add.w r2, sp, 2
| | 0x08049c16 0021 movs r1, 0
| | 0x08049c18 2148 ldr r0, [0x08049ca0] ; [0x8049ca0:4]=0x2001e76c
| | 0x08049c1a 0068 ldr r0, [r0]
| | 0x08049c1c f5f79afd bl OSSemPend
| | 0x08049c20 fff786ff bl func_49b30
| | 0x08049c24 8df80040 strb.w r4, [sp]
| | 0x08049c28 8df80150 strb.w r5, [sp, 1]
| | 0x08049c2c 0221 movs r1, 2 ; 2
| | 0x08049c2e 00a8 add r0, sp, 0
| | 0x08049c30 fff78eff bl func_49b50
| | 0x08049c34 3900 movs r1, r7
| | 0x08049c36 3000 movs r0, r6
| | 0x08049c38 fff796ff bl func_49b68
| | 0x08049c3c fff780ff bl func_49b40
| | 0x08049c40 1748 ldr r0, [0x08049ca0] ; [0x8049ca0:4]=0x2001e76c
| | 0x08049c42 0068 ldr r0, [r0]
| | 0x08049c44 f5f7fefd bl OSSemPost
\ `-> 0x08049c48 f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) func_49ca8 182
| func_49ca8 ();
| 0x08049ca8 7fb5 push {r0, r1, r2, r3, r4, r5, r6, lr}
| 0x08049caa 0400 movs r4, r0
| 0x08049cac 0220 movs r0, 2 ; 2
| 0x08049cae fff7aff8 bl func_48e10
| 0x08049cb2 0028 cmp r0, 0
| ,=< 0x08049cb4 02d1 bne 0x8049cbc
| | 0x08049cb6 2000 movs r0, r4
| | 0x08049cb8 fff76bf9 bl func_48f92
| `-> 0x08049cbc 0024 movs r4, 0
| 0x08049cbe 484e ldr r6, [0x08049de2] ; [0x8049de0:4]=0xf4240
| 0x08049cc0 44f62065 movw r5, 0x4e20
| 0x08049cc4 0121 movs r1, 1 ; 1
| 0x08049cc6 0120 movs r0, 1 ; 1
| 0x08049cc8 ecf73dff bl func_36b46
| 0x08049ccc 1c20 movs r0, 0x1c ; 28
| 0x08049cce 8df80000 strb.w r0, [sp]
| 0x08049cd2 0020 movs r0, 0
| 0x08049cd4 8df80100 strb.w r0, [sp, 1]
| 0x08049cd8 0120 movs r0, 1 ; 1
| 0x08049cda 8df80200 strb.w r0, [sp, 2]
| 0x08049cde 0120 movs r0, 1 ; 1
| 0x08049ce0 8df80300 strb.w r0, [sp, 3]
| 0x08049ce4 00a8 add r0, sp, 0
| 0x08049ce6 08f016f8 bl func_51d16
| 0x08049cea 3e48 ldr r0, [0x08049de6] ; [0x8049de4:4]=0x20004a00
| 0x08049cec 0068 ldr r0, [r0]
| 0x08049cee 4008 lsrs r0, r0, 1
| 0x08049cf0 b0fbf6f0 udiv r0, r0, r6
| 0x08049cf4 401e subs r0, r0, 1
| 0x08049cf6 0400 movs r4, r0
| 0x08049cf8 5ff0ff30 movs.w r0, -1 ; -1
| 0x08049cfc 0290 str r0, [sp, 8]
| 0x08049cfe 0020 movs r0, 0
| 0x08049d00 adf80400 strh.w r0, [sp, 4]
| 0x08049d04 0020 movs r0, 0
| 0x08049d06 adf80c00 strh.w r0, [sp, 0xc]
| 0x08049d0a 0020 movs r0, 0
| 0x08049d0c adf80600 strh.w r0, [sp, 6]
| 0x08049d10 01a9 add r1, sp, 4
| 0x08049d12 5ff08040 movs.w r0, 0x40000000 ; io_TIM2
| 0x08049d16 f9f77ffe bl func_43a18
| 0x08049d1a 0122 movs r2, 1 ; 1
| 0x08049d1c 2100 movs r1, r4
| 0x08049d1e 89b2 uxth r1, r1
| 0x08049d20 5ff08040 movs.w r0, 0x40000000 ; io_TIM2
| 0x08049d24 f9f7b9fe bl func_43a9a
| 0x08049d28 2900 movs r1, r5
| 0x08049d2a 5ff08040 movs.w r0, 0x40000000 ; io_TIM2
| 0x08049d2e f9f7b9fe bl TIM_SetAutoreload
| 0x08049d32 0021 movs r1, 0
| 0x08049d34 5ff08040 movs.w r0, 0x40000000 ; io_TIM2
| 0x08049d38 f9f7b2fe bl TIM_SetCounter
| 0x08049d3c 0121 movs r1, 1 ; 1
| 0x08049d3e 5ff08040 movs.w r0, 0x40000000 ; io_TIM2
| 0x08049d42 faf742f8 bl TIM_ClearFlag
| 0x08049d46 0122 movs r2, 1 ; 1
| 0x08049d48 0121 movs r1, 1 ; 1
| 0x08049d4a 5ff08040 movs.w r0, 0x40000000 ; io_TIM2
| 0x08049d4e faf719f8 bl TIM_ITConfig
| 0x08049d52 0021 movs r1, 0
| 0x08049d54 5ff08040 movs.w r0, 0x40000000 ; io_TIM2
| 0x08049d58 f9f7b6fe bl TIM_EnableOrDisableCounter
\ 0x08049d5c 7fbd pop {r0, r1, r2, r3, r4, r5, r6, pc}
/ (fcn) TIM2_IRQHandler 128
| TIM2_IRQHandler ();
| 0x08049d5e 80b5 push {r7, lr}
| 0x08049d60 0121 movs r1, 1 ; 1
| 0x08049d62 5ff08040 movs.w r0, 0x40000000 ; io_TIM2
| 0x08049d66 faf719f8 bl TimerIRQ_Sub5
| 0x08049d6a 0028 cmp r0, 0
| ,=< 0x08049d6c 36d0 beq 0x8049ddc
| | 0x08049d6e 1e48 ldr r0, [0x08049dea] ; [0x8049de8:4]=0x200101c8
| | 0x08049d70 0078 ldrb r0, [r0]
| | 0x08049d72 0028 cmp r0, 0
| ,==< 0x08049d74 0dd0 beq 0x8049d92
| || 0x08049d76 0020 movs r0, 0
| || 0x08049d78 fff74afd bl func_49810
| || 0x08049d7c 0120 movs r0, 1 ; 1
| || 0x08049d7e fff747fd bl func_49810
| || 0x08049d82 1a48 ldr r0, [0x08049dee] ; [0x8049dec:4]=0x200101ca
| || 0x08049d84 0121 movs r1, 1 ; 1
| || 0x08049d86 0170 strb r1, [r0]
| || 0x08049d88 1948 ldr r0, [0x08049df0] ; [0x8049df0:4]=0x2001e770
| || 0x08049d8a 0068 ldr r0, [r0]
| || 0x08049d8c f5f75afd bl OSSemPost
| ,===< 0x08049d90 1fe0 b 0x8049dd2
| |`--> 0x08049d92 1848 ldr r0, [0x08049df6] ; [0x8049df4:4]=0x200101d4
| | | 0x08049d94 b0f90000 ldrsh.w r0, [r0]
| | | 0x08049d98 0028 cmp r0, 0
| |,==< 0x08049d9a 0dd1 bne 0x8049db8
| ||| 0x08049d9c 1648 ldr r0, [0x08049df8] ; [0x8049df8:4]=0x200101d2
| ||| 0x08049d9e b0f90000 ldrsh.w r0, [r0]
| ||| 0x08049da2 0028 cmp r0, 0
| ,====< 0x08049da4 08d1 bne 0x8049db8
| |||| 0x08049da6 0021 movs r1, 0
| |||| 0x08049da8 5ff08040 movs.w r0, 0x40000000 ; io_TIM2
| |||| 0x08049dac f9f78cfe bl TIM_EnableOrDisableCounter
| |||| 0x08049db0 0020 movs r0, 0
| |||| 0x08049db2 fff72dfd bl func_49810
| ,=====< 0x08049db6 0ce0 b 0x8049dd2
| |`-`--> 0x08049db8 0020 movs r0, 0
| | | | 0x08049dba fff729fd bl func_49810
| | | | 0x08049dbe 0120 movs r0, 1 ; 1
| | | | 0x08049dc0 fff726fd bl func_49810
| | | | 0x08049dc4 0948 ldr r0, [0x08049dec] ; [0x8049dec:4]=0x200101ca
| | | | 0x08049dc6 0121 movs r1, 1 ; 1
| | | | 0x08049dc8 0170 strb r1, [r0]
| | | | 0x08049dca 0948 ldr r0, [0x08049df2] ; [0x8049df0:4]=0x2001e770
| | | | 0x08049dcc 0068 ldr r0, [r0]
| | | | 0x08049dce f5f739fd bl OSSemPost
| `-`---> 0x08049dd2 0121 movs r1, 1 ; 1
| | 0x08049dd4 5ff08040 movs.w r0, 0x40000000 ; io_TIM2
| | 0x08049dd8 f9f7f7ff bl TIM_ClearFlag
\ `-> 0x08049ddc 01bd pop {r0, pc}
/ (fcn) func_49e00 16
| func_49e00 ();
| 0x08049e00 80b5 push {r7, lr}
| 0x08049e02 0100 movs r1, r0
| 0x08049e04 0420 movs r0, 4 ; 4
| 0x08049e06 fef725f8 bl func_47e54
| 0x08049e0a 0149 ldr r1, [0x08049e12] ; [0x8049e10:4]=0x2001e780
| 0x08049e0c 0860 str r0, [r1]
\ 0x08049e0e 01bd pop {r0, pc}
;-- Start_2_more_tasks__init_vocoder_tasks:
/ (fcn) Start_2_more_tasks__init_vocoder_tasks__Q 798
| Start_2_more_tasks__init_vocoder_tasks__Q ();
| 0x08049e14 10b5 push {r4, lr}
| 0x08049e16 88b0 sub sp, 0x20
| 0x08049e18 0400 movs r4, r0
| 0x08049e1a dff8ac0b ldr.w r0, [0x0804a9ce] ; [0x804a9cc:4]=0x200101d8
| 0x08049e1e 4ff4c251 mov.w r1, 0x1840
| 0x08049e22 0180 strh r1, [r0]
| 0x08049e24 dff8a40b ldr.w r0, [0x0804a9d0] ; [0x804a9d0:4]=0x200101de
| 0x08049e28 4ff40051 mov.w r1, 0x2000
| 0x08049e2c 0180 strh r1, [r0]
| 0x08049e2e dff8a00b ldr.w r0, [0x0804a9d6] ; [0x804a9d4:4]=0x200101e0
| 0x08049e32 7ff01501 mvns r1, 0x15
| 0x08049e36 0180 strh r1, [r0]
| 0x08049e38 dff8980b ldr.w r0, [0x0804a9d8] ; [0x804a9d8:4]=0x200101e2
| 0x08049e3c 1421 movs r1, 0x14 ; 20
| 0x08049e3e 0180 strh r1, [r0]
| 0x08049e40 dff8940b ldr.w r0, [0x0804a9dc] ; [0x804a9dc:4]=0x200101e4
| 0x08049e44 7ff00901 mvns r1, 9
| 0x08049e48 0180 strh r1, [r0]
| 0x08049e4a dff8900b ldr.w r0, [0x0804a9e2] ; [0x804a9e0:4]=0x200101e6
| 0x08049e4e 7ff02701 mvns r1, 0x27
| 0x08049e52 0180 strh r1, [r0]
| 0x08049e54 dff8880b ldr.w r0, [0x0804a9e4] ; [0x804a9e4:4]=0x200101e8
| 0x08049e58 4ff48041 mov.w r1, 0x4000
| 0x08049e5c 0180 strh r1, [r0]
| 0x08049e5e dff8840b ldr.w r0, [0x0804a9ea] ; [0x804a9e8:4]=0x200101ea
| 0x08049e62 40f6cc41 movw r1, 0xccc ; 3276
| 0x08049e66 0180 strh r1, [r0]
| 0x08049e68 dff87c0b ldr.w r0, [0x0804a9ec] ; [0x804a9ec:4]=0x200101ec
| 0x08049e6c 40f6cc41 movw r1, 0xccc ; 3276
| 0x08049e70 0180 strh r1, [r0]
| 0x08049e72 dff8780b ldr.w r0, [0x0804a9f2] ; [0x804a9f0:4]=0x200101ee
| 0x08049e76 40f21e51 movw r1, 0x51e ; 1310
| 0x08049e7a 0180 strh r1, [r0]
| 0x08049e7c dff8700b ldr.w r0, [0x0804a9f4] ; [0x804a9f4:4]=0x200101f0
| 0x08049e80 0a21 movs r1, 0xa ; 10
| 0x08049e82 0180 strh r1, [r0]
| 0x08049e84 dff86c0b ldr.w r0, [ambe_4a9f8] ; [0x804a9f8:4]=0x2000b580
| 0x08049e88 1421 movs r1, 0x14 ; 20
| 0x08049e8a 0180 strh r1, [r0]
| 0x08049e8c dff8d00b ldr.w r0, [0x0804aa64] ; [0x804aa64:4]=0x200101dc
| 0x08049e90 8021 movs r1, 0x80 ; 128
| 0x08049e92 0180 strh r1, [r0]
| 0x08049e94 dff8cc0b ldr.w r0, [0x0804aa68] ; [0x804aa68:4]=0x20013594 ambe_mystery
| 0x08049e98 7ff01301 mvns r1, 0x13
| 0x08049e9c 0180 strh r1, [r0]
| 0x08049e9e dff8c80b ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x08049ea2 0021 movs r1, 0
| 0x08049ea4 a0f87a19 strh.w r1, [r0, 0x97a]
| 0x08049ea8 dff8bc0b ldr.w r0, [0x0804aa6c] ; [0x804aa6c:4]=0x2000ea9c
| 0x08049eac 8021 movs r1, 0x80 ; 128
| 0x08049eae a0f89019 strh.w r1, [r0, 0x990]
| 0x08049eb2 dff8b40b ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x08049eb6 7ff01301 mvns r1, 0x13
| 0x08049eba a0f89219 strh.w r1, [r0, 0x992]
| 0x08049ebe 0122 movs r2, 1 ; 1
| 0x08049ec0 0121 movs r1, 1 ; 1
| 0x08049ec2 dff8a80b ldr.w r0, [0x0804aa72] ; [0x804aa70:4]=0x20010180
| 0x08049ec6 09f031fa bl func_5332c
| 0x08049eca 0121 movs r1, 1 ; 1
| 0x08049ecc dff8a00b ldr.w r0, [0x0804aa74] ; [0x804aa74:4]=0x20013d8c
| 0x08049ed0 09f050fb bl func_53574
| 0x08049ed4 0121 movs r1, 1 ; 1
| 0x08049ed6 dff8900b ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x08049eda 09f04dfc bl func_53778
| 0x08049ede 0121 movs r1, 1 ; 1
| 0x08049ee0 dff8900b ldr.w r0, [ambe_4aa78] ; [0x804aa78:4]=0x2000b580
| 0x08049ee4 09f046fb bl func_53574
| 0x08049ee8 dff8080b ldr.w r0, [ambe_4a9f8] ; [0x804a9f8:4]=0x2000b580
| 0x08049eec b0f90000 ldrsh.w r0, [r0]
| 0x08049ef0 0690 str r0, [sp, 0x18]
| 0x08049ef2 dff8fc0a ldr.w r0, [0x0804a9f6] ; [0x804a9f4:4]=0x200101f0
| 0x08049ef6 b0f90000 ldrsh.w r0, [r0]
| 0x08049efa 0590 str r0, [sp, 0x14]
| 0x08049efc dff8ec0a ldr.w r0, [0x0804a9f0] ; [0x804a9f0:4]=0x200101ee
| 0x08049f00 b0f90000 ldrsh.w r0, [r0]
| 0x08049f04 0490 str r0, [sp, 0x10]
| 0x08049f06 dff8e00a ldr.w r0, [0x0804a9ee] ; [0x804a9ec:4]=0x200101ec
| 0x08049f0a b0f90000 ldrsh.w r0, [r0]
| 0x08049f0e 0390 str r0, [sp, 0xc]
| 0x08049f10 dff8d00a ldr.w r0, [0x0804a9e8] ; [0x804a9e8:4]=0x200101ea
| 0x08049f14 b0f90000 ldrsh.w r0, [r0]
| 0x08049f18 0290 str r0, [sp, 8]
| 0x08049f1a dff8c40a ldr.w r0, [0x0804a9e6] ; [0x804a9e4:4]=0x200101e8
| 0x08049f1e b0f90000 ldrsh.w r0, [r0]
| 0x08049f22 0190 str r0, [sp, 4]
| 0x08049f24 dff8b40a ldr.w r0, [0x0804a9e0] ; [0x804a9e0:4]=0x200101e6
| 0x08049f28 b0f90000 ldrsh.w r0, [r0]
| 0x08049f2c 0090 str r0, [sp]
| 0x08049f2e dff8a80a ldr.w r0, [0x0804a9de] ; [0x804a9dc:4]=0x200101e4
| 0x08049f32 b0f90030 ldrsh.w r3, [r0]
| 0x08049f36 dff89c0a ldr.w r0, [0x0804a9da] ; [0x804a9d8:4]=0x200101e2
| 0x08049f3a b0f90020 ldrsh.w r2, [r0]
| 0x08049f3e dff8900a ldr.w r0, [0x0804a9d6] ; [0x804a9d4:4]=0x200101e0
| 0x08049f42 b0f90010 ldrsh.w r1, [r0]
| 0x08049f46 dff8240b ldr.w r0, [0x0804aa72] ; [0x804aa70:4]=0x20010180
| 0x08049f4a 09f0d1fc bl func_538f0
| 0x08049f4e dff8140b ldr.w r0, [0x0804aa6a] ; [0x804aa68:4]=0x20013594 ambe_mystery
| 0x08049f52 b0f90020 ldrsh.w r2, [r0]
| 0x08049f56 dff8080b ldr.w r0, [0x0804aa66] ; [0x804aa64:4]=0x200101dc
| 0x08049f5a b0f90010 ldrsh.w r1, [r0]
| 0x08049f5e dff80c0b ldr.w r0, [0x0804aa72] ; [0x804aa70:4]=0x20010180
| 0x08049f62 09f081f9 bl func_53268
| 0x08049f66 dff8000b ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x08049f6a b0f99229 ldrsh.w r2, [r0, 0x992]
| 0x08049f6e dff8f80a ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x08049f72 b0f99019 ldrsh.w r1, [r0, 0x990]
| 0x08049f76 dff8f00a ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x08049f7a 09f0d9fb bl func_53730
| 0x08049f7e dff8e80a ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x08049f82 0290 str r0, [sp, 8]
| 0x08049f84 0020 movs r0, 0
| 0x08049f86 0190 str r0, [sp, 4]
| 0x08049f88 0820 movs r0, 8 ; 8
| 0x08049f8a 0090 str r0, [sp]
| 0x08049f8c 0023 movs r3, 0
| 0x08049f8e dff8a42b ldr.w r2, [0x0804ab3a] ; [0x804ab38:4]=0x20014068
| 0x08049f92 5021 movs r1, 0x50 ; 'P' ; 80
| 0x08049f94 dff8a00b ldr.w r0, [0x0804ab3c] ; [0x804ab3c:4]=0x200101ca
| 0x08049f98 09f072fb bl ambe_decode_wav
| 0x08049f9c dff89c0b ldr.w r0, [0x0804ab40] ; [0x804ab40:4]=0x200101d2
| 0x08049fa0 0021 movs r1, 0
| 0x08049fa2 0170 strb r1, [r0]
| 0x08049fa4 dff8980b ldr.w r0, [0x0804ab44] ; [0x804ab44:4]=0x200101d4
| 0x08049fa8 0021 movs r1, 0
| 0x08049faa 0180 strh r1, [r0]
| 0x08049fac dff8940b ldr.w r0, [0x0804ab48] ; [0x804ab48:4]=0x200101d6
| 0x08049fb0 0021 movs r1, 0
| 0x08049fb2 0180 strh r1, [r0]
| 0x08049fb4 dff8900b ldr.w r0, [0x0804ab4c] ; [0x804ab4c:4]=0x20010334
| 0x08049fb8 0021 movs r1, 0
| 0x08049fba 0180 strh r1, [r0]
| 0x08049fbc dff88c0b ldr.w r0, [0x0804ab50] ; [0x804ab50:4]=0x20010332
| 0x08049fc0 0021 movs r1, 0
| 0x08049fc2 0180 strh r1, [r0]
| 0x08049fc4 dff8880b ldr.w r0, [0x0804ab54] ; [0x804ab54:4]=0x200104d4
| 0x08049fc8 0021 movs r1, 0
| 0x08049fca 0180 strh r1, [r0]
| 0x08049fcc dff8840b ldr.w r0, [0x0804ab58] ; [0x804ab58:4]=0x200104d5
| 0x08049fd0 0021 movs r1, 0
| 0x08049fd2 0170 strb r1, [r0]
| 0x08049fd4 dff8800b ldr.w r0, [0x0804ab5c] ; [0x804ab5c:4]=0x200104d6
| 0x08049fd8 0021 movs r1, 0
| 0x08049fda 0170 strb r1, [r0]
| 0x08049fdc dff87c0b ldr.w r0, [0x0804ab60] ; [0x804ab60:4]=0x200101c9
| 0x08049fe0 0021 movs r1, 0
| 0x08049fe2 0170 strb r1, [r0]
| 0x08049fe4 dff8780b ldr.w r0, [0x0804ab64] ; [0x804ab64:4]=0x2001e965
| 0x08049fe8 0021 movs r1, 0
| 0x08049fea 0170 strb r1, [r0]
| 0x08049fec dff8780a ldr.w r0, [0x0804aa6c] ; [0x804aa6c:4]=0x2000ea9c
| 0x08049ff0 0021 movs r1, 0
| 0x08049ff2 a0f88a19 strh.w r1, [r0, 0x98a]
| 0x08049ff6 dff8700a ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x08049ffa 0021 movs r1, 0
| 0x08049ffc a0f88c19 strh.w r1, [r0, 0x98c]
| 0x0804a000 dff8640a ldr.w r0, [0x0804aa6c] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a004 0021 movs r1, 0
| 0x0804a006 a0f88e19 strh.w r1, [r0, 0x98e]
| 0x0804a00a dff85c0a ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a00e 0021 movs r1, 0
| 0x0804a010 a0f8761b strh.w r1, [r0, 0xb76]
| 0x0804a014 dff8500a ldr.w r0, [0x0804aa6c] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a018 0021 movs r1, 0
| 0x0804a01a a0f8741b strh.w r1, [r0, 0xb74]
| 0x0804a01e dff8480a ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a022 0021 movs r1, 0
| 0x0804a024 a0f8781b strh.w r1, [r0, 0xb78]
| 0x0804a028 dff83c0a ldr.w r0, [0x0804aa6c] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a02c 0021 movs r1, 0
| 0x0804a02e 80f81e1d strb.w r1, [r0, 0xd1e]
| 0x0804a032 dff8340a ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a036 0021 movs r1, 0
| 0x0804a038 80f81c1d strb.w r1, [r0, 0xd1c]
| 0x0804a03c dff8280a ldr.w r0, [0x0804aa6c] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a040 0021 movs r1, 0
| 0x0804a042 80f81d1d strb.w r1, [r0, 0xd1d]
| 0x0804a046 dff8200a ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a04a 0021 movs r1, 0
| 0x0804a04c 80f81f1d strb.w r1, [r0, 0xd1f]
| 0x0804a050 dff8140a ldr.w r0, [0x0804aa6c] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a054 0021 movs r1, 0
| 0x0804a056 80f8201d strb.w r1, [r0, 0xd20]
| 0x0804a05a dff80c0a ldr.w r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a05e 0021 movs r1, 0
| 0x0804a060 80f87919 strb.w r1, [r0, 0x979]
| 0x0804a064 dff8fc0a ldr.w r0, [0x0804ab68] ; [0x804ab68:4]=0x2001dff4
| 0x0804a068 0021 movs r1, 0
| 0x0804a06a 0170 strb r1, [r0]
| 0x0804a06c 1b22 movs r2, 0x1b ; 27
| 0x0804a06e 0021 movs r1, 0
| 0x0804a070 dff8f40a ldr.w r0, [0x0804ab6c] ; [0x804ab6c:4]=0x2001e00f
| 0x0804a074 09f0fefc bl func_53a74
| 0x0804a078 1b22 movs r2, 0x1b ; 27
| 0x0804a07a 0021 movs r1, 0
| 0x0804a07c dff8ec0a ldr.w r0, [0x0804ab70] ; [0x804ab70:4]=0x2001e966
| 0x0804a080 09f0f8fc bl func_53a74
| 0x0804a084 dff8e80a ldr.w r0, [0x0804ab74] ; [0x804ab74:4]=0x2001e02c
| 0x0804a088 0021 movs r1, 0
| 0x0804a08a 0170 strb r1, [r0]
| 0x0804a08c 1b22 movs r2, 0x1b ; 27
| 0x0804a08e 0021 movs r1, 0
| 0x0804a090 dff8e00a ldr.w r0, [0x0804ab78] ; [0x804ab78:4]=0x2001e047
| 0x0804a094 09f0eefc bl func_53a74
| 0x0804a098 1b22 movs r2, 0x1b ; 27
| 0x0804a09a 0021 movs r1, 0
| 0x0804a09c dff8d80a ldr.w r0, [0x0804ab7c] ; [0x804ab7c:4]=0x2001e967
| 0x0804a0a0 09f0e8fc bl func_53a74
| 0x0804a0a4 dff8d40a ldr.w r0, [0x0804ab80] ; [0x804ab80:4]=0x2001e064
| 0x0804a0a8 0021 movs r1, 0
| 0x0804a0aa 0170 strb r1, [r0]
| 0x0804a0ac 1b22 movs r2, 0x1b ; 27
| 0x0804a0ae 0021 movs r1, 0
| 0x0804a0b0 dff8cc0a ldr.w r0, [0x0804ab84] ; [0x804ab84:4]=0x2001e07f
| 0x0804a0b4 09f0defc bl func_53a74
| 0x0804a0b8 1b22 movs r2, 0x1b ; 27
| 0x0804a0ba 0021 movs r1, 0
| 0x0804a0bc dff8c40a ldr.w r0, [0x0804ab88] ; [0x804ab88:4]=0x200101c8
| 0x0804a0c0 09f0d8fc bl func_53a74
| 0x0804a0c4 dff8c00a ldr.w r0, [0x0804ab8c] ; [0x804ab8c:4]=0x20010456
| 0x0804a0c8 0021 movs r1, 0
| 0x0804a0ca 0170 strb r1, [r0]
| 0x0804a0cc dff89809 ldr.w r0, [0x0804aa6c] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a0d0 0021 movs r1, 0
| 0x0804a0d2 80f87819 strb.w r1, [r0, 0x978]
| 0x0804a0d6 6222 movs r2, 0x62 ; 'b' ; 98
| 0x0804a0d8 0021 movs r1, 0
| 0x0804a0da dff8b00a ldr.w r0, [0x0804ab92] ; [0x804ab90:4]=0x2001422e
| 0x0804a0de 09f0c9fc bl func_53a74
| 0x0804a0e2 6222 movs r2, 0x62 ; 'b' ; 98
| 0x0804a0e4 0021 movs r1, 0
| 0x0804a0e6 dff8a80a ldr.w r0, [0x0804ab96] ; [0x804ab94:4]=0x2001e770
| 0x0804a0ea 09f0c3fc bl func_53a74
| 0x0804a0ee 0020 movs r0, 0
| 0x0804a0f0 f5f70afb bl OSSemCreate
| 0x0804a0f4 dff89c1a ldr.w r1, [0x0804ab98] ; [0x804ab98:4]=0x2001e774
| 0x0804a0f8 0860 str r0, [r1]
| 0x0804a0fa 0020 movs r0, 0
| 0x0804a0fc f5f704fb bl OSSemCreate
| 0x0804a100 dff8941a ldr.w r1, [0x0804ab9c] ; [0x804ab9c:4]=0x20004ad6
| 0x0804a104 0860 str r0, [r1]
| 0x0804a106 dff8940a ldr.w r0, [0x0804aba2] ; [0x804aba0:4]=0x2000ea98
| 0x0804a10a 0378 ldrb r3, [r0]
| 0x0804a10c dff8902a ldr.w r2, [0x0804aba4] ; [0x804aba4:4]=0x20004ad5
| 0x0804a110 2100 movs r1, r4
| 0x0804a112 0ff22100 addw r0, pc, 0x21
| 0x0804a116 04f0d9f9 bl func_4e4cc
| 0x0804a11a dff8880a ldr.w r0, [0x0804abaa] ; [0x804aba8:4]=0x20013590
| 0x0804a11e 0378 ldrb r3, [r0]
| 0x0804a120 dff8842a ldr.w r2, [0x0804abac] ; [0x804abac:4]=0x804abc1
| 0x0804a124 2100 movs r1, r4
| 0x0804a126 dff8840a ldr.w r0, [0x0804abb2] ; [0x804abb0:4]=0x20010336
| 0x0804a12a 04f0cff9 bl func_4e4cc
| 0x0804a12e 08b0 add sp, 0x20
\ 0x0804a130 10bd pop {r4, pc}
/ (fcn) func_49130 8
| Caller: func_4e82c_uses_SPI2_3_DMA_and_I2C
| func_49130 ();
| 0x08049130 dff80418 ldr.w r1, [0x0804993c] ; [0x804993c:4]=0x20004ae0
| 0x08049134 0870 strb r0, [r1]
\ 0x08049136 7047 bx lr
/ (fcn) ambe_4a88e_calls_encode 314
| ambe_4a88e_calls_encode ();
| 0x0804a88e 00b5 push {lr}
| 0x0804a890 85b0 sub sp, 0x14
| 0x0804a892 7648 ldr r0, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a894 0390 str r0, [sp, 0xc]
| 0x0804a896 4d48 ldr r0, [0x0804a9ce] ; [0x804a9cc:4]=0x200101d8
| 0x0804a898 b0f90000 ldrsh.w r0, [r0]
| 0x0804a89c 0290 str r0, [sp, 8]
| 0x0804a89e 0020 movs r0, 0
| 0x0804a8a0 0190 str r0, [sp, 4]
| 0x0804a8a2 4ff40060 mov.w r0, 0x800 ; 2048
| 0x0804a8a6 0090 str r0, [sp]
| 0x0804a8a8 5023 movs r3, 0x50 ; 'P' ; 80
| 0x0804a8aa a848 ldr r0, [0x0804ab4e] ; [0x804ab4c:4]=0x20010334
| 0x0804a8ac b0f90000 ldrsh.w r0, [r0]
| 0x0804a8b0 6e49 ldr r1, [0x0804aa6c] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a8b2 11eb4000 adds.w r0, r1, r0, lsl 1
| 0x0804a8b6 00f5b852 add.w r2, r0, 0x1700
| 0x0804a8ba 5632 adds r2, 0x56
| 0x0804a8bc a248 ldr r0, [0x0804ab48] ; [0x804ab48:4]=0x200101d6
| 0x0804a8be b0f90010 ldrsh.w r1, [r0]
| 0x0804a8c2 bb48 ldr r0, [0x0804abb2] ; [0x804abb0:4]=0x20010336
| 0x0804a8c4 08f088fc bl ambe_encode_thing__size_not_correct
| 0x0804a8c8 6848 ldr r0, [0x0804aa6c] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a8ca 0390 str r0, [sp, 0xc]
| 0x0804a8cc 3f48 ldr r0, [0x0804a9cc] ; [0x804a9cc:4]=0x200101d8
| 0x0804a8ce b0f90000 ldrsh.w r0, [r0]
| 0x0804a8d2 0290 str r0, [sp, 8]
| 0x0804a8d4 0120 movs r0, 1 ; 1
| 0x0804a8d6 0190 str r0, [sp, 4]
| 0x0804a8d8 4ff40060 mov.w r0, 0x800 ; 2048
| 0x0804a8dc 0090 str r0, [sp]
| 0x0804a8de 5023 movs r3, 0x50 ; 'P' ; 80
| 0x0804a8e0 9a48 ldr r0, [0x0804ab4c] ; [0x804ab4c:4]=0x20010334
| 0x0804a8e2 b0f90000 ldrsh.w r0, [r0]
| 0x0804a8e6 6149 ldr r1, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a8e8 11eb4000 adds.w r0, r1, r0, lsl 1
| 0x0804a8ec 00f5b852 add.w r2, r0, 0x1700
| 0x0804a8f0 5632 adds r2, 0x56
| 0x0804a8f2 9548 ldr r0, [0x0804ab4a] ; [0x804ab48:4]=0x200101d6
| 0x0804a8f4 b0f90010 ldrsh.w r1, [r0]
| 0x0804a8f8 ad48 ldr r0, [0x0804abb0] ; [0x804abb0:4]=0x20010336
| 0x0804a8fa 08f06dfc bl ambe_encode_thing__size_not_correct
| 0x0804a8fe 0020 movs r0, 0
| ,=< 0x0804a900 13e0 b 0x804a92a
| .--> 0x0804a902 41f69a01 movw r1, 0x189a
| || 0x0804a906 594a ldr r2, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| || 0x0804a908 12eb4002 adds.w r2, r2, r0, lsl 1
| || 0x0804a90c 895a ldrh r1, [r1, r2]
| || 0x0804a90e 41f6ba12 movw r2, 0x19ba
| || 0x0804a912 564b ldr r3, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| || 0x0804a914 13eb4003 adds.w r3, r3, r0, lsl 1
| || 0x0804a918 d25a ldrh r2, [r2, r3]
| || 0x0804a91a 5140 eors r1, r2
| || 0x0804a91c 41f69a02 movw r2, 0x189a
| || 0x0804a920 524b ldr r3, [0x0804aa6c] ; [0x804aa6c:4]=0x2000ea9c
| || 0x0804a922 13eb4003 adds.w r3, r3, r0, lsl 1
| || 0x0804a926 d152 strh r1, [r2, r3]
| || 0x0804a928 401c adds r0, r0, 1
| |`-> 0x0804a92a 3128 cmp r0, 0x31 ; '1' ; 49
| `==< 0x0804a92c e9db blt 0x804a902
| 0x0804a92e 8a48 ldr r0, [0x0804ab5a] ; [0x804ab58:4]=0x200104d5
| 0x0804a930 0078 ldrb r0, [r0]
| 0x0804a932 0028 cmp r0, 0
| ,=< 0x0804a934 03d0 beq 0x804a93e
| | 0x0804a936 8948 ldr r0, [0x0804ab5e] ; [0x804ab5c:4]=0x200104d6
| | 0x0804a938 0078 ldrb r0, [r0]
| | 0x0804a93a 0028 cmp r0, 0
| ,==< 0x0804a93c 05d1 bne 0x804a94a
| |`-> 0x0804a93e 4c4b ldr r3, [0x0804aa72] ; [0x804aa70:4]=0x20010180
| | 0x0804a940 0022 movs r2, 0
| | 0x0804a942 9b49 ldr r1, [0x0804abb2] ; [0x804abb0:4]=0x20010336
| | 0x0804a944 9a48 ldr r0, [0x0804abb0] ; [0x804abb0:4]=0x20010336
| | 0x0804a946 08f023fe bl func_53590
| `--> 0x0804a94a 4822 movs r2, 0x48 ; 'H' ; 72
| 0x0804a94c 9849 ldr r1, [0x0804abb0] ; [0x804abb0:4]=0x20010336
| 0x0804a94e 9948 ldr r0, [0x0804abb6] ; [0x804abb4:4]=0x200104d3
| 0x0804a950 0078 ldrb r0, [r0]
| 0x0804a952 464b ldr r3, [0x0804aa6e] ; [0x804aa6c:4]=0x2000ea9c
| 0x0804a954 c018 adds r0, r0, r3
| 0x0804a956 00f5d050 add.w r0, r0, 0x1a00
| 0x0804a95a 1c30 adds r0, 0x1c
| 0x0804a95c 00f0cffc bl func_4b2fe
| 0x0804a960 9448 ldr r0, [0x0804abb4] ; [0x804abb4:4]=0x200104d3
| 0x0804a962 0078 ldrb r0, [r0]
| 0x0804a964 0930 adds r0, 9
| 0x0804a966 9349 ldr r1, [0x0804abb6] ; [0x804abb4:4]=0x200104d3
| 0x0804a968 0870 strb r0, [r1]
| 0x0804a96a 7648 ldr r0, [0x0804ab46] ; [0x804ab44:4]=0x200101d4
| 0x0804a96c 0088 ldrh r0, [r0]
| 0x0804a96e 401c adds r0, r0, 1
| 0x0804a970 7449 ldr r1, [0x0804ab44] ; [0x804ab44:4]=0x200101d4
| 0x0804a972 0880 strh r0, [r1]
| 0x0804a974 7348 ldr r0, [0x0804ab44] ; [0x804ab44:4]=0x200101d4
| 0x0804a976 b0f90000 ldrsh.w r0, [r0]
| 0x0804a97a 0328 cmp r0, 3 ; 3
| ,=< 0x0804a97c 22db blt 0x804a9c4
| | 0x0804a97e 7648 ldr r0, [0x0804ab5a] ; [0x804ab58:4]=0x200104d5
| | 0x0804a980 0078 ldrb r0, [r0]
| | 0x0804a982 0128 cmp r0, 1 ; 1
| ,==< 0x0804a984 08d1 bne 0x804a998
| || 0x0804a986 00f0e6fc bl func_4b356
| || 0x0804a98a 8a48 ldr r0, [0x0804abb6] ; [0x804abb4:4]=0x200104d3
| || 0x0804a98c 0021 movs r1, 0
| || 0x0804a98e 0170 strb r1, [r0]
| || 0x0804a990 6c48 ldr r0, [0x0804ab44] ; [0x804ab44:4]=0x200101d4
| || 0x0804a992 0021 movs r1, 0
| || 0x0804a994 0180 strh r1, [r0]
| ,===< 0x0804a996 0be0 b 0x804a9b0
| |`--> 0x0804a998 1b23 movs r3, 0x1b ; 27
| | | 0x0804a99a 874a ldr r2, [0x0804abba] ; [0x804abb8:4]=0x200104b8
| | | 0x0804a99c 0021 movs r1, 0
| | | 0x0804a99e 0320 movs r0, 3 ; 3
| | | 0x0804a9a0 fff70df9 bl func_49bbe_Uses_Sema
| | | 0x0804a9a4 8348 ldr r0, [0x0804abb4] ; [0x804abb4:4]=0x200104d3
| | | 0x0804a9a6 0021 movs r1, 0
| | | 0x0804a9a8 0170 strb r1, [r0]
| | | 0x0804a9aa 6648 ldr r0, [0x0804ab46] ; [0x804ab44:4]=0x200101d4
| | | 0x0804a9ac 0021 movs r1, 0
| | | 0x0804a9ae 0180 strh r1, [r0]
| `---> 0x0804a9b0 6848 ldr r0, [0x0804ab54] ; [0x804ab54:4]=0x200104d4
| | 0x0804a9b2 0078 ldrb r0, [r0]
| | 0x0804a9b4 0128 cmp r0, 1 ; 1
| ,==< 0x0804a9b6 05d1 bne 0x804a9c4
| || 0x0804a9b8 6748 ldr r0, [0x0804ab58] ; [0x804ab58:4]=0x200104d5
| || 0x0804a9ba 0078 ldrb r0, [r0]
| || 0x0804a9bc 0128 cmp r0, 1 ; 1
| ,===< 0x0804a9be 01d0 beq 0x804a9c4
| ||| 0x0804a9c0 00f0c9fc bl func_4b356
| ```-> 0x0804a9c4 05b0 add sp, 0x14
\ 0x0804a9c6 00bd pop {pc}
/ (fcn) ambe_4a9f8 102
| ambe_4a9f8 ();
| 0x0804a9f8 80b5 push {r7, lr}
| 0x0804a9fa 0020 movs r0, 0
| 0x0804a9fc 8df80000 strb.w r0, [sp]
| 0x0804aa00 4f48 ldr r0, [0x0804ab40] ; [0x804ab40:4]=0x200101d2
| 0x0804aa02 0021 movs r1, 0
| 0x0804aa04 0180 strh r1, [r0]
| 0x0804aa06 4f48 ldr r0, [0x0804ab46] ; [0x804ab44:4]=0x200101d4
| 0x0804aa08 0021 movs r1, 0
| 0x0804aa0a 0180 strh r1, [r0]
| 0x0804aa0c 6948 ldr r0, [0x0804abb4] ; [0x804abb4:4]=0x200104d3
| 0x0804aa0e 0021 movs r1, 0
| 0x0804aa10 0170 strb r1, [r0]
| 0x0804aa12 4e48 ldr r0, [0x0804ab4e] ; [0x804ab4c:4]=0x20010334
| 0x0804aa14 0021 movs r1, 0
| 0x0804aa16 0180 strh r1, [r0]
| 0x0804aa18 4d48 ldr r0, [0x0804ab50] ; [0x804ab50:4]=0x20010332
| 0x0804aa1a 0021 movs r1, 0
| 0x0804aa1c 0180 strh r1, [r0]
| 0x0804aa1e 5a48 ldr r0, [0x0804ab8a] ; [0x804ab88:4]=0x200101c8
| 0x0804aa20 0021 movs r1, 0
| 0x0804aa22 0170 strb r1, [r0]
| 0x0804aa24 4548 ldr r0, [0x0804ab3c] ; [0x804ab3c:4]=0x200101ca
| 0x0804aa26 0021 movs r1, 0
| 0x0804aa28 0170 strb r1, [r0]
| 0x0804aa2a dff80408 ldr.w r0, [0x0804b236] ; [0x804b234:4]=0x4b5f8 LEA ambe_unpack ; ambe_unpack
| 0x0804aa2e 0021 movs r1, 0
| 0x0804aa30 0180 strh r1, [r0]
| 0x0804aa32 4c48 ldr r0, [0x0804ab66] ; [0x804ab64:4]=0x2001e965
| 0x0804aa34 0021 movs r1, 0
| 0x0804aa36 0170 strb r1, [r0]
| 0x0804aa38 1b22 movs r2, 0x1b ; 27
| 0x0804aa3a 0021 movs r1, 0
| 0x0804aa3c 4a48 ldr r0, [0x0804ab68] ; [0x804ab68:4]=0x2001dff4
| 0x0804aa3e 09f019f8 bl func_53a74
| 0x0804aa42 1b22 movs r2, 0x1b ; 27
| 0x0804aa44 0021 movs r1, 0
| 0x0804aa46 4948 ldr r0, [0x0804ab6e] ; [0x804ab6c:4]=0x2001e00f
| 0x0804aa48 09f014f8 bl func_53a74
| 0x0804aa4c 00ab add r3, sp, 0
| 0x0804aa4e 8222 movs r2, 0x82 ; 130
| 0x0804aa50 0121 movs r1, 1 ; 1
| 0x0804aa52 dff8940a ldr.w r0, [0x0804b4ee] ; [0x804b4ec:4]=0x20013594 ambe_mystery
| 0x0804aa56 0068 ldr r0, [r0]
| 0x0804aa58 fdf780f9 bl func_47d5c
\ 0x0804aa5c 01bd pop {r0, pc}
/ (fcn) ambe_4aa78 188
| ambe_4aa78 ();
| 0x0804aa78 80b5 push {r7, lr}
| 0x0804aa7a 0020 movs r0, 0
| 0x0804aa7c 8df80000 strb.w r0, [sp]
| 0x0804aa80 dff8680a ldr.w r0, [0x0804b4f0] ; [0x804b4f0:4]=0x20013f12
| 0x0804aa84 0021 movs r1, 0
| 0x0804aa86 a0f88a19 strh.w r1, [r0, 0x98a]
| 0x0804aa8a dff8600a ldr.w r0, [0x0804b4f2] ; [0x804b4f0:4]=0x20013f12
| 0x0804aa8e 0021 movs r1, 0
| 0x0804aa90 a0f88c19 strh.w r1, [r0, 0x98c]
| 0x0804aa94 dff8540a ldr.w r0, [0x0804b4f0] ; [0x804b4f0:4]=0x20013f12
| 0x0804aa98 0021 movs r1, 0
| 0x0804aa9a 80f81b1d strb.w r1, [r0, 0xd1b]
| 0x0804aa9e dff84c0a ldr.w r0, [0x0804b4f2] ; [0x804b4f0:4]=0x20013f12
| 0x0804aaa2 0021 movs r1, 0
| 0x0804aaa4 a0f8761b strh.w r1, [r0, 0xb76]
| 0x0804aaa8 dff8400a ldr.w r0, [0x0804b4f0] ; [0x804b4f0:4]=0x20013f12
| 0x0804aaac 0021 movs r1, 0
| 0x0804aaae a0f8741b strh.w r1, [r0, 0xb74]
| 0x0804aab2 dff8380a ldr.w r0, [0x0804b4f2] ; [0x804b4f0:4]=0x20013f12
| 0x0804aab6 0021 movs r1, 0
| 0x0804aab8 a0f8781b strh.w r1, [r0, 0xb78]
| 0x0804aabc dff82c0a ldr.w r0, [0x0804b4f0] ; [0x804b4f0:4]=0x20013f12
| 0x0804aac0 0021 movs r1, 0
| 0x0804aac2 80f87819 strb.w r1, [r0, 0x978]
| 0x0804aac6 0322 movs r2, 3 ; 3
| 0x0804aac8 0021 movs r1, 0
| 0x0804aaca dff8240a ldr.w r0, [0x0804b4f6] ; [0x804b4f4:4]=0x20013f18
| 0x0804aace 08f0d1ff bl func_53a74
| 0x0804aad2 0322 movs r2, 3 ; 3
| 0x0804aad4 0021 movs r1, 0
| 0x0804aad6 dff81c0a ldr.w r0, [0x0804b4fa] ; [0x804b4f8:4]=0x2001410e ambe_inbuffer
| 0x0804aada 08f0cbff bl func_53a74
| 0x0804aade 2748 ldr r0, [0x0804ab7e] ; [0x804ab7c:4]=0x2001e967
| 0x0804aae0 0021 movs r1, 0
| 0x0804aae2 0170 strb r1, [r0]
| 0x0804aae4 1b22 movs r2, 0x1b ; 27
| 0x0804aae6 0021 movs r1, 0
| 0x0804aae8 2548 ldr r0, [0x0804ab80] ; [0x804ab80:4]=0x2001e064
| 0x0804aaea 08f0c3ff bl func_53a74
| 0x0804aaee 1b22 movs r2, 0x1b ; 27
| 0x0804aaf0 0021 movs r1, 0
| 0x0804aaf2 2448 ldr r0, [0x0804ab86] ; [0x804ab84:4]=0x2001e07f
| 0x0804aaf4 08f0beff bl func_53a74
| 0x0804aaf8 00ab add r3, sp, 0
| 0x0804aafa 0122 movs r2, 1 ; 1
| 0x0804aafc 0421 movs r1, 4 ; 4
| 0x0804aafe dff8e809 ldr.w r0, [0x0804b4ee] ; [0x804b4ec:4]=0x20013594 ambe_mystery
| 0x0804ab02 0068 ldr r0, [r0]
| 0x0804ab04 fdf709fb bl RTCAndTimerIRQ_Sub2
| 0x0804ab08 1948 ldr r0, [0x0804ab70] ; [0x804ab70:4]=0x2001e966
| 0x0804ab0a 0021 movs r1, 0
| 0x0804ab0c 0170 strb r1, [r0]
| 0x0804ab0e 1b22 movs r2, 0x1b ; 27
| 0x0804ab10 0021 movs r1, 0
| 0x0804ab12 1848 ldr r0, [0x0804ab76] ; [0x804ab74:4]=0x2001e02c
| 0x0804ab14 08f0aeff bl func_53a74
| 0x0804ab18 1b22 movs r2, 0x1b ; 27
| 0x0804ab1a 0021 movs r1, 0
| 0x0804ab1c 1648 ldr r0, [0x0804ab78] ; [0x804ab78:4]=0x2001e047
| 0x0804ab1e 08f0a9ff bl func_53a74
| 0x0804ab22 00ab add r3, sp, 0
| 0x0804ab24 8222 movs r2, 0x82 ; 130
| 0x0804ab26 0221 movs r1, 2 ; 2
| 0x0804ab28 dff8bc09 ldr.w r0, [0x0804b4ec] ; [0x804b4ec:4]=0x20013594 ambe_mystery
| 0x0804ab2c 0068 ldr r0, [r0]
| 0x0804ab2e fdf715f9 bl func_47d5c
\ 0x0804ab32 01bd pop {r0, pc}
/ (fcn) ambe_decode_wav 140
| Caller: Start_2_more_tasks__init_vocoder_tasks__Q
| ambe_decode_wav ();
| 0x08053680 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08053684 4c29 cmp r1, 0x4c ; 'L' ; 76
| 0x08053686 a9b0 sub sp, 0xa4
| ,=< 0x08053688 b8bf it lt
| `-> 0x0805368a 4c21 movs r1, 0x4c ; 'L' ; 76
| 0x0805368c 349e ldr r6, [sp, 0xd0]
| 0x0805368e bdf9cc70 ldrsh.w r7, [sp, 0xcc]
| 0x08053692 bdf9c8a0 ldrsh.w sl, [sp, 0xc8]
| 0x08053696 5429 cmp r1, 0x54 ; 'T' ; 84
| 0x08053698 4ff05005 mov.w r5, 0x50 ; 'P' ; 80
| ,=< 0x0805369c a8bf it ge
| `-> 0x0805369e 5421 movs r1, 0x54 ; 'T' ; 84
| 0x080536a0 0c46 mov r4, r1
| 0x080536a2 8046 mov r8, r0
| 0x080536a4 a6f87451 strh.w r5, [r6, 0x174]
| ,=< 0x080536a8 67b1 cbz r7, 0x80536c4
| | 0x080536aa 06f57b70 add.w r0, r6, 0x3ec
| | 0x080536ae 0096 str r6, [sp]
| | 0x080536b0 4146 mov r1, r8
| | 0x080536b2 2246 mov r2, r4
| | 0x080536b4 3b46 mov r3, r7
| | 0x080536b6 04f02bfd bl ambe_58110
| | 0x080536ba 0020 movs r0, 0
| | 0x080536bc 00b2 sxth r0, r0
| | 0x080536be 29b0 add sp, 0xa4
| | 0x080536c0 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
| `-> 0x080536c4 0df11809 add.w sb, sp, 0x18
| 0x080536c8 0592 str r2, [sp, 0x14]
| 0x080536ca 3946 mov r1, r7
| 0x080536cc 4846 mov r0, sb
| 0x080536ce 4422 movs r2, 0x44 ; 'D' ; 68
| 0x080536d0 9b46 mov fp, r3
| 0x080536d2 02f0dff9 bl ambe_55a94
| 0x080536d6 ddf814c0 ldr.w ip, [sp, 0x14]
| 0x080536da cdf80490 str.w sb, [sp, 4]
| 0x080536de 06f57b73 add.w r3, r6, 0x3ec
| 0x080536e2 6046 mov r0, ip
| 0x080536e4 5946 mov r1, fp
| 0x080536e6 5246 mov r2, sl
| 0x080536e8 0093 str r3, [sp]
| 0x080536ea 0296 str r6, [sp, 8]
| 0x080536ec 2346 mov r3, r4
| 0x080536ee 04f031ff bl ambe_58554
| 0x080536f2 0096 str r6, [sp]
| 0x080536f4 0546 mov r5, r0
| 0x080536f6 4146 mov r1, r8
| 0x080536f8 4846 mov r0, sb
| 0x080536fa 2246 mov r2, r4
| 0x080536fc 3b46 mov r3, r7
| 0x080536fe 04f007fd bl ambe_58110
| 0x08053702 a8b2 uxth r0, r5
| 0x08053704 00b2 sxth r0, r0
| 0x08053706 29b0 add sp, 0xa4
\ 0x08053708 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_4b534 120
| Caller: create_many_semas
| func_4b534 ();
| 0x0804b534 2de9f84f push.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0804b538 0400 movs r4, r0
| 0x0804b53a 0d00 movs r5, r1
| 0x0804b53c 1600 movs r6, r2
| 0x0804b53e 1f00 movs r7, r3
| 0x0804b540 ddf82880 ldr.w r8, [sp, 0x28]
| 0x0804b544 ddf82c90 ldr.w sb, [sp, 0x2c]
| 0x0804b548 ddf830a0 ldr.w sl, [sp, 0x30]
| 0x0804b54c dff8f803 ldr.w r0, [0x0804b94c] ; [0x804b94c:4]=0x2001e728
| 0x0804b550 0078 ldrb r0, [r0]
| 0x0804b552 0028 cmp r0, 0
| ,=< 0x0804b554 04d0 beq 0x804b560
| | 0x0804b556 8b20 movs r0, 0x8b ; 139
| | 0x0804b558 8af80000 strb.w r0, [sl]
| | 0x0804b55c 0020 movs r0, 0
| ,==< 0x0804b55e 23e0 b 0x804b5a8
| |`-> 0x0804b560 f8f716fd bl func_43f90
| | 0x0804b564 00f0c6f8 bl func_4b6f4
| | 0x0804b568 8346 mov fp, r0
| | 0x0804b56a bbf1000f cmp.w fp, 0
| |,=< 0x0804b56e 06d1 bne 0x804b57e
| || 0x0804b570 f8f72bfd bl func_43fca
| || 0x0804b574 8620 movs r0, 0x86 ; 134
| || 0x0804b576 8af80000 strb.w r0, [sl]
| || 0x0804b57a 0020 movs r0, 0
| ,===< 0x0804b57c 14e0 b 0x804b5a8
| ||`-> 0x0804b57e 0120 movs r0, 1 ; 1
| || 0x0804b580 8bf82500 strb.w r0, [fp, 0x25]
| || 0x0804b584 cbf81840 str.w r4, [fp, 0x18]
| || 0x0804b588 cbf81c50 str.w r5, [fp, 0x1c]
| || 0x0804b58c 8bf82460 strb.w r6, [fp, 0x24]
| || 0x0804b590 cbf80470 str.w r7, [fp, 4]
| || 0x0804b594 cbf80880 str.w r8, [fp, 8]
| || 0x0804b598 cbf82090 str.w sb, [fp, 0x20]
| || 0x0804b59c f8f715fd bl func_43fca
| || 0x0804b5a0 0020 movs r0, 0
| || 0x0804b5a2 8af80000 strb.w r0, [sl]
| || 0x0804b5a6 5846 mov r0, fp
\ ``--> 0x0804b5a8 bde8f28f pop.w {r1, r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_4b5ac 130
| func_4b5ac ();
| 0x0804b5ac 38b5 push {r3, r4, r5, lr}
| 0x0804b5ae 0500 movs r5, r0
| 0x0804b5b0 0c00 movs r4, r1
| 0x0804b5b2 2878 ldrb r0, [r5]
| 0x0804b5b4 6428 cmp r0, 0x64 ; 'd' ; 100
| ,=< 0x0804b5b6 03d0 beq 0x804b5c0
| | 0x0804b5b8 8920 movs r0, 0x89 ; 137
| | 0x0804b5ba 2070 strb r0, [r4]
| | 0x0804b5bc 0020 movs r0, 0
| ,==< 0x0804b5be 35e0 b 0x804b62c
| |`-> 0x0804b5c0 dff88403 ldr.w r0, [0x0804b94c] ; [0x804b94c:4]=0x2001e728
| | 0x0804b5c4 0078 ldrb r0, [r0]
| | 0x0804b5c6 0028 cmp r0, 0
| |,=< 0x0804b5c8 03d0 beq 0x804b5d2
| || 0x0804b5ca 8b20 movs r0, 0x8b ; 139
| || 0x0804b5cc 2070 strb r0, [r4]
| || 0x0804b5ce 0020 movs r0, 0
| ,===< 0x0804b5d0 2ce0 b 0x804b62c
| ||`-> 0x0804b5d2 f8f7ddfc bl func_43f90
| || 0x0804b5d6 95f82500 ldrb.w r0, [r5, 0x25]
| || 0x0804b5da 0028 cmp r0, 0
| ||,=< 0x0804b5dc 1bd0 beq 0x804b616
| ||| 0x0804b5de 0228 cmp r0, 2 ; 2
| ,====< 0x0804b5e0 0fd0 beq 0x804b602
| ,=====< 0x0804b5e2 0ed3 blo 0x804b602
| ||||| 0x0804b5e4 0328 cmp r0, 3 ; 3
| ,======< 0x0804b5e6 1cd1 bne 0x804b622
| |||||| 0x0804b5e8 2800 movs r0, r5
| |||||| 0x0804b5ea 00f048f9 bl func_4b87e
| |||||| 0x0804b5ee 0021 movs r1, 0
| |||||| 0x0804b5f0 2800 movs r0, r5
| |||||| 0x0804b5f2 00f00df9 bl func_4b810
| |||||| 0x0804b5f6 f8f7e8fc bl func_43fca
| |||||| 0x0804b5fa 0020 movs r0, 0
| |||||| 0x0804b5fc 2070 strb r0, [r4]
| |||||| 0x0804b5fe 0120 movs r0, 1 ; 1
| ,=======< 0x0804b600 14e0 b 0x804b62c
| ||``----> 0x0804b602 0021 movs r1, 0
| || ||| 0x0804b604 2800 movs r0, r5
| || ||| 0x0804b606 00f003f9 bl func_4b810
| || ||| 0x0804b60a f8f7defc bl func_43fca
| || ||| 0x0804b60e 0020 movs r0, 0
| || ||| 0x0804b610 2070 strb r0, [r4]
| || ||| 0x0804b612 0120 movs r0, 1 ; 1
| || ,====< 0x0804b614 0ae0 b 0x804b62c
| || |||`-> 0x0804b616 f8f7d8fc bl func_43fca
| || ||| 0x0804b61a 8720 movs r0, 0x87 ; 135
| || ||| 0x0804b61c 2070 strb r0, [r4]
| || ||| 0x0804b61e 0020 movs r0, 0
| || |||,=< 0x0804b620 04e0 b 0x804b62c
| |`------> 0x0804b622 f8f7d2fc bl func_43fca
| | |||| 0x0804b626 8d20 movs r0, 0x8d ; 141
| | |||| 0x0804b628 2070 strb r0, [r4]
| | |||| 0x0804b62a 0020 movs r0, 0
\ `--````-> 0x0804b62c 32bd pop {r1, r4, r5, pc}
/ (fcn) func_4b62e 184
| func_4b62e ();
| 0x0804b62e f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x0804b630 0500 movs r5, r0
| 0x0804b632 0f00 movs r7, r1
| 0x0804b634 1600 movs r6, r2
| 0x0804b636 1c00 movs r4, r3
| 0x0804b638 2878 ldrb r0, [r5]
| 0x0804b63a 6428 cmp r0, 0x64 ; 'd' ; 100
| ,=< 0x0804b63c 03d0 beq 0x804b646
| | 0x0804b63e 8920 movs r0, 0x89 ; 137
| | 0x0804b640 2070 strb r0, [r4]
| | 0x0804b642 0020 movs r0, 0
| ,==< 0x0804b644 4ee0 b 0x804b6e4
| |`-> 0x0804b646 dff80003 ldr.w r0, [0x0804b94e] ; [0x804b94c:4]=0x2001e728
| | 0x0804b64a 0078 ldrb r0, [r0]
| | 0x0804b64c 0028 cmp r0, 0
| |,=< 0x0804b64e 03d0 beq 0x804b658
| || 0x0804b650 8b20 movs r0, 0x8b ; 139
| || 0x0804b652 2070 strb r0, [r4]
| || 0x0804b654 0020 movs r0, 0
| ,===< 0x0804b656 45e0 b 0x804b6e4
| ||`-> 0x0804b658 f8f79afc bl func_43f90
| || 0x0804b65c 95f82500 ldrb.w r0, [r5, 0x25]
| || 0x0804b660 0028 cmp r0, 0
| ||,=< 0x0804b662 34d0 beq 0x804b6ce
| ||| 0x0804b664 0228 cmp r0, 2 ; 2
| ,====< 0x0804b666 2cd0 beq 0x804b6c2
| ,=====< 0x0804b668 2bd3 blo 0x804b6c2
| ||||| 0x0804b66a 0328 cmp r0, 3 ; 3
| ,======< 0x0804b66c 35d1 bne 0x804b6da
| |||||| 0x0804b66e 2800 movs r0, r5
| |||||| 0x0804b670 00f005f9 bl func_4b87e
| |||||| 0x0804b674 0020 movs r0, 0
| |||||| 0x0804b676 2070 strb r0, [r4]
| |||||| 0x0804b678 ffb2 uxtb r7, r7
| |||||| 0x0804b67a 002f cmp r7, 0
| ,=======< 0x0804b67c 1ad0 beq 0x804b6b4
| ||||||| 0x0804b67e 032f cmp r7, 3 ; 3
| ========< 0x0804b680 02d0 beq 0x804b688
| ||||||| 0x0804b682 042f cmp r7, 4 ; 4
| ========< 0x0804b684 0bd0 beq 0x804b69e
| ========< 0x0804b686 16e0 b 0x804b6b6
| --------> 0x0804b688 6a68 ldr r2, [r5, 4]
| ||||||| 0x0804b68a 1000 movs r0, r2
| ||||||| 0x0804b68c 0028 cmp r0, 0
| ========< 0x0804b68e 03d0 beq 0x804b698
| ||||||| 0x0804b690 a968 ldr r1, [r5, 8]
| ||||||| 0x0804b692 2800 movs r0, r5
| ||||||| 0x0804b694 9047 blx r2
| ========< 0x0804b696 01e0 b 0x804b69c
| --------> 0x0804b698 8f20 movs r0, 0x8f ; 143
| ||||||| 0x0804b69a 2070 strb r0, [r4]
| ========< 0x0804b69c 0de0 b 0x804b6ba
| --------> 0x0804b69e 6a68 ldr r2, [r5, 4]
| ||||||| 0x0804b6a0 1000 movs r0, r2
| ||||||| 0x0804b6a2 0028 cmp r0, 0
| ========< 0x0804b6a4 03d0 beq 0x804b6ae
| ||||||| 0x0804b6a6 3100 movs r1, r6
| ||||||| 0x0804b6a8 2800 movs r0, r5
| ||||||| 0x0804b6aa 9047 blx r2
| ========< 0x0804b6ac 01e0 b 0x804b6b2
| --------> 0x0804b6ae 8f20 movs r0, 0x8f ; 143
| ||||||| 0x0804b6b0 2070 strb r0, [r4]
| ========< 0x0804b6b2 02e0 b 0x804b6ba
| `-------> 0x0804b6b4 01e0 b 0x804b6ba
| --------> 0x0804b6b6 8420 movs r0, 0x84 ; 132
| |||||| 0x0804b6b8 2070 strb r0, [r4]
| --------> 0x0804b6ba f8f786fc bl func_43fca
| |||||| 0x0804b6be 0120 movs r0, 1 ; 1
| ,=======< 0x0804b6c0 10e0 b 0x804b6e4
| ||``----> 0x0804b6c2 f8f782fc bl func_43fca
| || ||| 0x0804b6c6 8e20 movs r0, 0x8e ; 142
| || ||| 0x0804b6c8 2070 strb r0, [r4]
| || ||| 0x0804b6ca 0120 movs r0, 1 ; 1
| || ,====< 0x0804b6cc 0ae0 b 0x804b6e4
| || |||`-> 0x0804b6ce f8f77cfc bl func_43fca
| || ||| 0x0804b6d2 8720 movs r0, 0x87 ; 135
| || ||| 0x0804b6d4 2070 strb r0, [r4]
| || ||| 0x0804b6d6 0020 movs r0, 0
| || |||,=< 0x0804b6d8 04e0 b 0x804b6e4
| |`------> 0x0804b6da f8f776fc bl func_43fca
| | |||| 0x0804b6de 8d20 movs r0, 0x8d ; 141
| | |||| 0x0804b6e0 2070 strb r0, [r4]
| | |||| 0x0804b6e2 0020 movs r0, 0
\ `--````-> 0x0804b6e4 f2bd pop {r1, r4, r5, r6, r7, pc}
/ (fcn) func_4b6e6_posts_something 14
| Caller: SysTick_Sub2
| func_4b6e6_posts_something ();
| 0x0804b6e6 80b5 push {r7, lr}
| 0x0804b6e8 9948 ldr r0, [0x0804b950] ; [0x804b950:4]=0x2001e730
| 0x0804b6ea 0068 ldr r0, [r0]
| 0x0804b6ec f4f7aaf8 bl OSSemPost
| 0x0804b6f0 c0b2 uxtb r0, r0
\ 0x0804b6f2 02bd pop {r1, pc}
/ (fcn) DummyForUnusedIRQs 32
| Caller: BusFault_Handler UsageFault_Handler HardFault_Handler NMI_Handler MemManage
| DummyForUnusedIRQs ();
| 0x08093ed0 bff34f8f dsb sy
| 0x08093ed4 dff8fc03 ldr.w r0, [0x080942d8] ; [0x80942d8:4]=0x5fa0004
| 0x08093ed8 0068 ldr r0, [r0]
| 0x08093eda 10f4e060 ands r0, r0, 0x700
| 0x08093ede dff8f813 ldr.w r1, [0x080942de] ; [0x80942dc:4]=0x2001e951
| 0x08093ee2 0843 orrs r0, r1
| 0x08093ee4 dff8ec13 ldr.w r1, [0x080942d8] ; [0x80942d8:4]=0x5fa0004
| 0x08093ee8 0860 str r0, [r1]
| 0x08093eea bff34f8f dsb sy
\ `-> 0x08093eee fee7 b 0x8093eee
;-- NMI_Handler:
0x08093ef0 80b5 push {r7, lr}
0x08093ef2 fff7edff bl DummyForUnusedIRQs
0x08093ef6 01bd pop {r0, pc}
;-- HardFault_Handler:
0x08093ef8 80b5 push {r7, lr}
0x08093efa fff7e9ff bl DummyForUnusedIRQs
0x08093efe 01bd pop {r0, pc}
;-- MemManage:
0x08093f00 80b5 push {r7, lr}
0x08093f02 fff7e5ff bl DummyForUnusedIRQs
0x08093f06 01bd pop {r0, pc}
;-- BusFault_Handler:
0x08093f08 80b5 push {r7, lr}
0x08093f0a fff7e1ff bl DummyForUnusedIRQs
0x08093f0e 01bd pop {r0, pc}
;-- UsageFault_Handler:
0x08093f10 80b5 push {r7, lr}
0x08093f12 fff7ddff bl DummyForUnusedIRQs
0x08093f16 01bd pop {r0, pc}
;-- SVC_Handler:
0x08093f18 7047 bx lr
;-- DebugMon_Handler:
0x08093f1a 7047 bx lr
;-- SysTick_Handler:
0x08093f1c 80b5 push {r7, lr}
0x08093f1e aff761ff bl OS_ENTER_CRITICAL
0x08093f22 dff8b813 ldr.w r1, [0x080942e2] ; [0x80942e0:4]=0x200178b8
0x08093f26 0978 ldrb r1, [r1]
0x08093f28 491c adds r1, r1, 1
0x08093f2a dff8b023 ldr.w r2, [0x080942e2] ; [0x80942e0:4]=0x200178b8
0x08093f2e 1170 strb r1, [r2]
0x08093f30 aff75cff bl OS_EXIT_CRITICAL
0x08093f34 b0f797f8 bl SysTick_Sub1
0x08093f38 aff7e0ff bl SysTick_Sub3
0x08093f3c 01bd pop {r0, pc}
;-- OTG_FS_WKUP_IRQHandler:
0x08093f3e 80b5 push {r7, lr}
0x08093f40 dff89c03 ldr.w r0, [0x080942e4] ; [0x80942e4:4]=0xe000ed10
0x08093f44 807a ldrb r0, [r0, 0xa] ; E000ED1A = SCB.SHPR3, UsageFault prio ?
0x08093f46 0028 cmp r0, 0
,=< 0x08093f48 0dd0 beq 0x8093f66
| 0x08093f4a dff89803 ldr.w r0, [0x080942ea] ; [0x80942e8:4]=0x2001e8a6
| 0x08093f4e 0068 ldr r0, [r0]
| 0x08093f50 30f00600 bics r0, r0, 6
| 0x08093f54 dff88c13 ldr.w r1, [0x080942e8] ; [0x80942e8:4]=0x2001e8a6
| 0x08093f58 0860 str r0, [r1]
| 0x08093f5a 00f0fdf9 bl SystemInit
| 0x08093f5e dff88003 ldr.w r0, [0x080942e6] ; [0x80942e4:4]=0xe000ed10 ; E000ED10 = SCB.SysCtrlReg
| 0x08093f62 cdf7c2fd bl WakeUp_Sub1
`-> 0x08093f66 5ff48020 movs.w r0, 0x40000
0x08093f6a bdf77cff bl ClearEXTIPendingBits_R0
0x08093f6e 01bd pop {r0, pc}
/ (fcn) OTG_FS_IRQHandler 24
| OTG_FS_IRQHandler ();
| 0x08093f70 80b5 push {r7, lr}
| 0x08093f72 dff86c03 ldr.w r0, [0x080942e6] ; [0x80942e4:4]=0xe000ed10 ; E000ED10 = SCB.SysCtrlReg
| 0x08093f76 fff7a7fc bl CalledFromUSB_IRQ
| 0x08093f7a dff86c03 ldr.w r0, [0x080942ee] ; [0x80942ec:4]=0x2001e600 q_struct_1
| 0x08093f7e 0a21 movs r1, 0xa ; 10
| 0x08093f80 0170 strb r1, [r0]
| 0x08093f82 bbf737ff bl FeedTheWatchdog
\ 0x08093f86 01bd pop {r0, pc}
;-- EXTI3_IRQHandler:
0x08093f88 80b5 push {r7, lr}
0x08093f8a 0820 movs r0, 8 ; 8
0x08093f8c bdf759ff bl CalledFromPinChangeIRQ
0x08093f90 0028 cmp r0, 0
,=< 0x08093f92 02d0 beq 0x8093f9a
| 0x08093f94 0820 movs r0, 8 ; 8
| 0x08093f96 bdf766ff bl ClearEXTIPendingBits_R0
`-> 0x08093f9a 01bd pop {r0, pc}
;-- EXTI2_IRQHandler:
0x08093f9c 80b5 push {r7, lr}
0x08093f9e 0420 movs r0, 4 ; 4
0x08093fa0 bdf74fff bl CalledFromPinChangeIRQ
0x08093fa4 0028 cmp r0, 0
,=< 0x08093fa6 3bd0 beq 0x8094020
| 0x08093fa8 0420 movs r0, 4 ; 4
| 0x08093faa bdf75cff bl ClearEXTIPendingBits_R0
| 0x08093fae dff83c03 ldr.w r0, [0x080942f2] ; [0x80942f0:4]=0x2001e5f0 radio_status_1
| 0x08093fb2 0078 ldrb r0, [r0]
| 0x08093fb4 c0f3c000 ubfx r0, r0, 3, 1
| 0x08093fb8 c007 lsls r0, r0, 0x1f
,==< 0x08093fba 06d4 bmi 0x8093fca
|| 0x08093fbc dff83003 ldr.w r0, [0x080942f4] ; [0x80942f4:4]=0x2001e897
|| 0x08093fc0 4078 ldrb r0, [r0, 1]
|| 0x08093fc2 c0f34000 ubfx r0, r0, 1, 1
|| 0x08093fc6 c007 lsls r0, r0, 0x1f
,===< 0x08093fc8 00d5 bpl 0x8093fcc
,=`--> 0x08093fca 29e0 b 0x8094020
|`---> 0x08093fcc dff82403 ldr.w r0, [0x080942f8] ; [0x80942f8:4]=0x40000800 io_TIM4
| | 0x08093fd0 0078 ldrb r0, [r0]
| | 0x08093fd2 0228 cmp r0, 2 ; 2
| ,==< 0x08093fd4 04d0 beq 0x8093fe0
| || 0x08093fd6 dff81c03 ldr.w r0, [0x080942fa] ; [0x80942f8:4]=0x40000800 io_TIM4
| || 0x08093fda 0078 ldrb r0, [r0]
| || 0x08093fdc 0328 cmp r0, 3 ; 3
|,===< 0x08093fde 1fd1 bne 0x8094020
||`--> 0x08093fe0 c348 ldr r0, [0x080942f0] ; [0x80942f0:4]=0x2001e5f0 radio_status_1
|| | 0x08093fe2 4078 ldrb r0, [r0, 1]
|| | 0x08093fe4 c007 lsls r0, r0, 0x1f
||,==< 0x08093fe6 1bd5 bpl 0x8094020
|||| 0x08093fe8 c148 ldr r0, [0x080942f0] ; [0x80942f0:4]=0x2001e5f0 radio_status_1
|||| 0x08093fea 4078 ldrb r0, [r0, 1]
|||| 0x08093fec 50f01000 orrs r0, r0, 0x10
|||| 0x08093ff0 bf49 ldr r1, [0x080942f0] ; [0x80942f0:4]=0x2001e5f0 radio_status_1
|||| 0x08093ff2 4870 strb r0, [r1, 1]
|||| 0x08093ff4 0021 movs r1, 0
|||| 0x08093ff6 c048 ldr r0, [0x080942fa] ; [0x80942f8:4]=0x40000800 io_TIM4
|||| 0x08093ff8 aff752fd bl TIM_SetCounter
|||| 0x08093ffc 2721 movs r1, 0x27 ; ''' ; 39
|||| 0x08093ffe be48 ldr r0, [0x080942fa] ; [0x80942f8:4]=0x40000800 io_TIM4
|||| 0x08094000 aff750fd bl TIM_SetAutoreload
|||| 0x08094004 0122 movs r2, 1 ; 1
|||| 0x08094006 0121 movs r1, 1 ; 1
|||| 0x08094008 bb48 ldr r0, [0x080942f8] ; [0x80942f8:4]=0x40000800 io_TIM4
|||| 0x0809400a aff7bbfe bl TIM_ITConfig
|||| 0x0809400e 0121 movs r1, 1 ; 1
|||| 0x08094010 b948 ldr r0, [0x080942f8] ; [0x80942f8:4]=0x40000800 io_TIM4
|||| 0x08094012 aff759fd bl TIM_EnableOrDisableCounter
|||| 0x08094016 0122 movs r2, 1 ; 1
|||| 0x08094018 1021 movs r1, 0x10 ; 16
|||| 0x0809401a b848 ldr r0, [0x080942fe] ; [0x80942fc:4]=0x40020800 io_GPIOC
|||| 0x0809401c 97f7f9fb bl GPIO_WriteBit
````-> 0x08094020 01bd pop {r0, pc}
;-- EXTI1_IRQHandler:
0x08094022 80b5 push {r7, lr}
0x08094024 0220 movs r0, 2 ; 2
0x08094026 bdf70cff bl CalledFromPinChangeIRQ
0x0809402a 0028 cmp r0, 0
,=< 0x0809402c 06d0 beq 0x809403c
| 0x0809402e b448 ldr r0, [0x08094302] ; [0x8094300:4]=0x2001e644
| 0x08094030 0068 ldr r0, [r0]
| 0x08094032 abf707fc bl OSSemPost
| 0x08094036 0220 movs r0, 2 ; 2
| 0x08094038 bdf715ff bl ClearEXTIPendingBits_R0
`-> 0x0809403c 01bd pop {r0, pc}
;-- EXTI0_IRQHandler:
0x0809403e 80b5 push {r7, lr}
0x08094040 0120 movs r0, 1 ; 1
0x08094042 bdf7fefe bl CalledFromPinChangeIRQ
0x08094046 0028 cmp r0, 0
,=< 0x08094048 15d0 beq 0x8094076
| 0x0809404a 0120 movs r0, 1 ; 1
| 0x0809404c bdf70bff bl ClearEXTIPendingBits_R0
| 0x08094050 ac48 ldr r0, [0x08094304] ; [0x8094304:4]=0x2001e8bf
| 0x08094052 0078 ldrb r0, [r0]
| 0x08094054 0128 cmp r0, 1 ; 1
,==< 0x08094056 03d1 bne 0x8094060
|| 0x08094058 aa48 ldr r0, [0x08094304] ; [0x8094304:4]=0x2001e8bf
|| 0x0809405a 0021 movs r1, 0
|| 0x0809405c 0170 strb r1, [r0]
,===< 0x0809405e 02e0 b 0x8094066
|`--> 0x08094060 a848 ldr r0, [0x08094304] ; [0x8094304:4]=0x2001e8bf
| | 0x08094062 0121 movs r1, 1 ; 1
| | 0x08094064 0170 strb r1, [r0]
`---> 0x08094066 a848 ldr r0, [0x0809430a] ; [0x8094308:4]=0x2001e8c0
| 0x08094068 a649 ldr r1, [0x08094304] ; [0x8094304:4]=0x2001e8bf
| 0x0809406a 0978 ldrb r1, [r1]
| 0x0809406c 0170 strb r1, [r0]
| 0x0809406e a748 ldr r0, [0x0809430e] ; [0x809430c:4]=0x2001e64c sema_1e64c
| 0x08094070 0068 ldr r0, [r0]
| 0x08094072 abf7e7fb bl OSSemPost
`-> 0x08094076 01bd pop {r0, pc}
;-- TIM5_IRQHandler:
0x08094078 80b5 push {r7, lr}
0x0809407a 0121 movs r1, 1 ; 1
0x0809407c a448 ldr r0, [0x08094310] ; [0x8094310:4]=0x40000c00 io_TIM5
0x0809407e aff7a4fe bl TIM_ClearFlag
0x08094082 a448 ldr r0, [0x08094316] ; [0x8094314:4]=0x2001e690
0x08094084 0068 ldr r0, [r0]
0x08094086 abf7ddfb bl OSSemPost
0x0809408a 01bd pop {r0, pc}
;-- TIM4_IRQHandler:
0x0809408c 80b5 push {r7, lr}
0x0809408e 0121 movs r1, 1 ; 1
0x08094090 9948 ldr r0, [0x080942f8] ; [0x80942f8:4]=0x40000800 io_TIM4
0x08094092 aff79afe bl TIM_ClearFlag
0x08094096 9548 ldr r0, [0x080942ee] ; [0x80942ec:4]=0x2001e600 q_struct_1
0x08094098 0078 ldrb r0, [r0]
0x0809409a c0f3c000 ubfx r0, r0, 3, 1
0x0809409e c007 lsls r0, r0, 0x1f
,=< 0x080940a0 05d4 bmi 0x80940ae
| 0x080940a2 9348 ldr r0, [0x080942f2] ; [0x80942f0:4]=0x2001e5f0 radio_status_1
| 0x080940a4 4078 ldrb r0, [r0, 1]
| 0x080940a6 c0f34000 ubfx r0, r0, 1, 1
| 0x080940aa c007 lsls r0, r0, 0x1f
,==< 0x080940ac 00d5 bpl 0x80940b0
,=`-> 0x080940ae 2ae0 b 0x8094106
|`--> 0x080940b0 9048 ldr r0, [0x080942f4] ; [0x80942f4:4]=0x2001e897
| 0x080940b2 0078 ldrb r0, [r0]
| 0x080940b4 0228 cmp r0, 2 ; 2
| ,=< 0x080940b6 03d0 beq 0x80940c0
| | 0x080940b8 8e48 ldr r0, [0x080942f4] ; [0x80942f4:4]=0x2001e897
| | 0x080940ba 0078 ldrb r0, [r0]
| | 0x080940bc 0328 cmp r0, 3 ; 3
|,==< 0x080940be 22d1 bne 0x8094106
||`-> 0x080940c0 8b48 ldr r0, [0x080942f0] ; [0x80942f0:4]=0x2001e5f0 radio_status_1
|| 0x080940c2 4078 ldrb r0, [r0, 1]
|| 0x080940c4 c0f30010 ubfx r0, r0, 4, 1
|| 0x080940c8 c007 lsls r0, r0, 0x1f
||,=< 0x080940ca 11d5 bpl 0x80940f0
||| 0x080940cc 8848 ldr r0, [0x080942f0] ; [0x80942f0:4]=0x2001e5f0 radio_status_1
||| 0x080940ce 4078 ldrb r0, [r0, 1]
||| 0x080940d0 10f0ef00 ands r0, r0, 0xef
||| 0x080940d4 8649 ldr r1, [0x080942f0] ; [0x80942f0:4]=0x2001e5f0 radio_status_1
||| 0x080940d6 4870 strb r0, [r1, 1]
||| 0x080940d8 0021 movs r1, 0
||| 0x080940da 8748 ldr r0, [0x080942fa] ; [0x80942f8:4]=0x40000800 io_TIM4
||| 0x080940dc aff7e0fc bl TIM_SetCounter
||| 0x080940e0 40f65331 movw r1, 0xb53 ; 2899
||| 0x080940e4 8448 ldr r0, [0x080942f8] ; [0x80942f8:4]=0x40000800 io_TIM4
||| 0x080940e6 aff7ddfc bl TIM_SetAutoreload
||| 0x080940ea b3f75ffd bl TimerIRQ_Sub1
,====< 0x080940ee 0ae0 b 0x8094106
|||`-> 0x080940f0 0021 movs r1, 0
||| 0x080940f2 8148 ldr r0, [0x080942fa] ; [0x80942f8:4]=0x40000800 io_TIM4
||| 0x080940f4 aff7e8fc bl TIM_EnableOrDisableCounter
||| 0x080940f8 0022 movs r2, 0
||| 0x080940fa 0121 movs r1, 1 ; 1
||| 0x080940fc 7e48 ldr r0, [0x080942f8] ; [0x80942f8:4]=0x40000800 io_TIM4
||| 0x080940fe aff741fe bl TIM_ITConfig
||| 0x08094102 b3f780fd bl TimerIRQ_Sub4
```--> 0x08094106 01bd pop {r0, pc}
;-- TIM3_IRQHandler:
0x08094108 80b5 push {r7, lr}
0x0809410a 0221 movs r1, 2 ; 2
0x0809410c 8248 ldr r0, [0x08094318] ; [0x8094318:4]=0x40000400 io_TIM3
0x0809410e aff745fe bl TimerIRQ_Sub5
0x08094112 0028 cmp r0, 0
,=< 0x08094114 04d0 beq 0x8094120
| 0x08094116 0221 movs r1, 2 ; 2
| 0x08094118 7f48 ldr r0, [0x08094318] ; [0x8094318:4]=0x40000400 io_TIM3
| 0x0809411a aff756fe bl TIM_ClearFlag
,==< 0x0809411e 0ae0 b 0x8094136
|`-> 0x08094120 0121 movs r1, 1 ; 1
| 0x08094122 7d48 ldr r0, [0x0809431a] ; [0x8094318:4]=0x40000400 io_TIM3
| 0x08094124 aff751fe bl TIM_ClearFlag
| 0x08094128 00ab add r3, sp, 0
| 0x0809412a 0122 movs r2, 1 ; 1
| 0x0809412c 8021 movs r1, 0x80 ; 128
| 0x0809412e 7b48 ldr r0, [0x0809431e] ; [0x809431c:4]=0x2001e640 idle_control_struct
| 0x08094130 0068 ldr r0, [r0]
| 0x08094132 b3f7f2ff bl RTCAndTimerIRQ_Sub2
`--> 0x08094136 01bd pop {r0, pc}
;-- TIM6_DAC_IRQHandler:
0x08094138 80b5 push {r7, lr}
0x0809413a 0121 movs r1, 1 ; 1
0x0809413c 7848 ldr r0, [0x08094320] ; [0x8094320:4]=0x40001000 io_TIM6
0x0809413e aff744fe bl TIM_ClearFlag
0x08094142 6b48 ldr r0, [0x080942f2] ; [0x80942f0:4]=0x2001e5f0 radio_status_1
0x08094144 4078 ldrb r0, [r0, 1]
0x08094146 c0f38000 ubfx r0, r0, 2, 1
0x0809414a c007 lsls r0, r0, 0x1f
,=< 0x0809414c 21d5 bpl 0x8094192
| 0x0809414e 7548 ldr r0, [0x08094326] ; [0x8094324:4]=0x2001e89c
| 0x08094150 0078 ldrb r0, [r0]
| 0x08094152 7549 ldr r1, [0x0809432a] ; [0x8094328:4]=0x2001e896 tim_control_byte
| 0x08094154 0978 ldrb r1, [r1]
| 0x08094156 754a ldr r2, [0x0809432e] ; [0x809432c:4]=0x80f8714
| 0x08094158 895c ldrb r1, [r1, r2]
| 0x0809415a 10fb01f1 smulbb r1, r0, r1
| 0x0809415e 89b2 uxth r1, r1
| 0x08094160 0420 movs r0, 4 ; 4
| 0x08094162 bef7c7f8 bl TimerIRQ_Sub7_writes_DAC
| 0x08094166 7048 ldr r0, [0x0809432a] ; [0x8094328:4]=0x2001e896 tim_control_byte
| 0x08094168 0078 ldrb r0, [r0]
| 0x0809416a 401c adds r0, r0, 1
| 0x0809416c 6e49 ldr r1, [0x08094328] ; [0x8094328:4]=0x2001e896 tim_control_byte
| 0x0809416e 0870 strb r0, [r1]
| 0x08094170 6d48 ldr r0, [0x08094328] ; [0x8094328:4]=0x2001e896 tim_control_byte
| 0x08094172 0078 ldrb r0, [r0]
| 0x08094174 1028 cmp r0, 0x10 ; 16
,==< 0x08094176 36d3 blo 0x80941e6
|| 0x08094178 0022 movs r2, 0
|| 0x0809417a 0121 movs r1, 1 ; 1
|| 0x0809417c 6848 ldr r0, [0x08094320] ; [0x8094320:4]=0x40001000 io_TIM6
|| 0x0809417e aff701fe bl TIM_ITConfig
|| 0x08094182 0021 movs r1, 0
|| 0x08094184 6648 ldr r0, [0x08094320] ; [0x8094320:4]=0x40001000 io_TIM6
|| 0x08094186 aff79ffc bl TIM_EnableOrDisableCounter
|| 0x0809418a 6748 ldr r0, [0x0809432a] ; [0x8094328:4]=0x2001e896 tim_control_byte
|| 0x0809418c 1021 movs r1, 0x10 ; 16
|| 0x0809418e 0170 strb r1, [r0]
,===< 0x08094190 29e0 b 0x80941e6
||`-> 0x08094192 6548 ldr r0, [0x0809432a] ; [0x8094328:4]=0x2001e896 tim_control_byte
|| 0x08094194 0078 ldrb r0, [r0]
|| 0x08094196 401e subs r0, r0, 1
|| 0x08094198 6349 ldr r1, [0x08094328] ; [0x8094328:4]=0x2001e896 tim_control_byte
|| 0x0809419a 0870 strb r0, [r1]
|| 0x0809419c 6248 ldr r0, [0x08094328] ; [0x8094328:4]=0x2001e896 tim_control_byte
|| 0x0809419e 0078 ldrb r0, [r0]
|| 0x080941a0 0028 cmp r0, 0
||,=< 0x080941a2 12d1 bne 0x80941ca
||| 0x080941a4 0022 movs r2, 0
||| 0x080941a6 0121 movs r1, 1 ; 1
||| 0x080941a8 5d48 ldr r0, [0x08094320] ; [0x8094320:4]=0x40001000 io_TIM6
||| 0x080941aa aff7ebfd bl TIM_ITConfig
||| 0x080941ae 0021 movs r1, 0
||| 0x080941b0 5b48 ldr r0, [0x08094320] ; [0x8094320:4]=0x40001000 io_TIM6
||| 0x080941b2 aff789fc bl TIM_EnableOrDisableCounter
||| 0x080941b6 b3f73afd bl TimerIRQ_Sub8
||| 0x080941ba 00ab add r3, sp, 0
||| 0x080941bc 0122 movs r2, 1 ; 1
||| 0x080941be 0221 movs r1, 2 ; 2
||| 0x080941c0 5648 ldr r0, [0x0809431c] ; [0x809431c:4]=0x2001e640 idle_control_struct
||| 0x080941c2 0068 ldr r0, [r0]
||| 0x080941c4 b3f7a9ff bl RTCAndTimerIRQ_Sub2
,====< 0x080941c8 0de0 b 0x80941e6
|||`-> 0x080941ca 5648 ldr r0, [0x08094326] ; [0x8094324:4]=0x2001e89c
||| 0x080941cc 0078 ldrb r0, [r0]
||| 0x080941ce 5649 ldr r1, [0x0809432a] ; [0x8094328:4]=0x2001e896 tim_control_byte
||| 0x080941d0 0978 ldrb r1, [r1]
||| 0x080941d2 574a ldr r2, [0x08094332] ; [0x8094330:4]=0x80f8724
||| 0x080941d4 8918 adds r1, r1, r2
||| 0x080941d6 11f8011c ldrb r1, [r1, -0x1]
||| 0x080941da 10fb01f1 smulbb r1, r0, r1
||| 0x080941de 89b2 uxth r1, r1
||| 0x080941e0 0420 movs r0, 4 ; 4
||| 0x080941e2 bef787f8 bl TimerIRQ_Sub7_writes_DAC
```--> 0x080941e6 01bd pop {r0, pc}
;-- TIM7_DAC_IRQHandler:
0x080941e8 80b5 push {r7, lr}
0x080941ea 0121 movs r1, 1 ; 1
0x080941ec 5148 ldr r0, [0x08094334] ; [0x8094334:4]=0x40001400 io_TIM7
0x080941ee aff7ecfd bl TIM_ClearFlag
0x080941f2 3f48 ldr r0, [0x080942f2] ; [0x80942f0:4]=0x2001e5f0 radio_status_1
0x080941f4 0078 ldrb r0, [r0]
0x080941f6 c0f34000 ubfx r0, r0, 1, 1
0x080941fa c007 lsls r0, r0, 0x1f
,=< 0x080941fc 02d5 bpl 0x8094204
| 0x080941fe abf763f8 bl TimerIRQ_Sub9
,==< 0x08094202 10e0 b 0x8094226
|`-> 0x08094204 3a48 ldr r0, [0x080942f0] ; [0x80942f0:4]=0x2001e5f0 radio_status_1
| 0x08094206 0078 ldrb r0, [r0]
| 0x08094208 c0f38000 ubfx r0, r0, 2, 1
| 0x0809420c c007 lsls r0, r0, 0x1f
|,=< 0x0809420e 02d5 bpl 0x8094216
|| 0x08094210 abf79df8 bl SomethingWithRadioStatus1
,===< 0x08094214 07e0 b 0x8094226
||`-> 0x08094216 4848 ldr r0, [0x0809433a] ; [0x8094338:4]=0x2001e614
|| 0x08094218 0078 ldrb r0, [r0]
|| 0x0809421a c0f30010 ubfx r0, r0, 4, 1
|| 0x0809421e c007 lsls r0, r0, 0x1f
||,=< 0x08094220 01d5 bpl 0x8094226
||| 0x08094222 aaf71cf9 bl TimerIRQ_Sub11
```-> 0x08094226 01bd pop {r0, pc}
;-- TIM8_UP_TIM13_IRQHandler:
0x08094228 80b5 push {r7, lr}
0x0809422a 0121 movs r1, 1 ; 1
0x0809422c 4348 ldr r0, [0x0809433c] ; [0x809433c:4]=0x40010400 io_TIM8
0x0809422e aff7ccfd bl TIM_ClearFlag
0x08094232 9cf7c1fb bl Timer8ToneGenerator
0x08094236 01bd pop {r0, pc}
;-- RTC_WKUP_IRQHandler:
0x08094238 80b5 push {r7, lr}
0x0809423a aff7d3fd bl OS_ENTER_CRITICAL
0x0809423e 2749 ldr r1, [0x080942de] ; [0x80942dc:4]=0x2001e951
0x08094240 0978 ldrb r1, [r1]
0x08094242 491c adds r1, r1, 1
0x08094244 254a ldr r2, [0x080942dc] ; [0x80942dc:4]=0x2001e951
0x08094246 1170 strb r1, [r2]
0x08094248 aff7d0fd bl OS_EXIT_CRITICAL
0x0809424c 4ff48040 mov.w r0, 0x4000
0x08094250 97f736fa bl RTCWakeupIRQ_Sub1
0x08094254 5ff48000 movs.w r0, 0x400000
0x08094258 bdf705fe bl ClearEXTIPendingBits_R0
0x0809425c 00ab add r3, sp, 0
0x0809425e 0122 movs r2, 1 ; 1
0x08094260 0121 movs r1, 1 ; 1
0x08094262 2e48 ldr r0, [0x0809431e] ; [0x809431c:4]=0x2001e640 idle_control_struct
0x08094264 0068 ldr r0, [r0]
0x08094266 b3f758ff bl RTCAndTimerIRQ_Sub2
0x0809426a aff747fe bl SysTick_Sub3
0x0809426e 01bd pop {r0, pc}
;-- HandlerForDMA2_Stream3:
/ (fcn) DMA2_Stream3_IRQHandler 98
| DMA2_Stream3_IRQHandler ();
| 0x08094270 80b5 push {r7, lr}
| 0x08094272 3349 ldr r1, [0x08094342] ; [0x8094340:4]=0x14004000
| 0x08094274 3348 ldr r0, [0x08094344] ; [0x8094344:4]=0x40026458 io_DMA2_S3CR
| 0x08094276 baf777fa bl DMA_Stream_Sub1
| 0x0809427a 0128 cmp r0, 1 ; 1
| ,=< 0x0809427c 0fd1 bne 0x809429e
| | 0x0809427e 0020 movs r0, 0
| ,==< 0x08094280 06e0 b 0x8094290
| .---> 0x08094282 3149 ldr r1, [0x0809434a] ; [0x8094348:4]=0x2001c180
| ||| 0x08094284 314a ldr r2, [0x0809434c] ; [0x809434c:4]=0x2001bf80
| ||| 0x08094286 32f81020 ldrh.w r2, [r2, r0, lsl 1]
| ||| 0x0809428a 21f81020 strh.w r2, [r1, r0, lsl 1]
| ||| 0x0809428e 401c adds r0, r0, 1
| |`--> 0x08094290 8028 cmp r0, 0x80 ; 128
| `===< 0x08094292 f6db blt 0x8094282
| | 0x08094294 2a49 ldr r1, [0x08094340] ; [0x8094340:4]=0x14004000
| | 0x08094296 2b48 ldr r0, [0x08094346] ; [0x8094344:4]=0x40026458 io_DMA2_S3CR
| | 0x08094298 baf78ffa bl DMA_Stream_Sub2
| ,==< 0x0809429c 18e0 b 0x80942d0
| |`-> 0x0809429e 2c49 ldr r1, [0x08094352] ; [0x8094350:4]=0x18008000
| | 0x080942a0 2848 ldr r0, [0x08094344] ; [0x8094344:4]=0x40026458 io_DMA2_S3CR
| | 0x080942a2 baf761fa bl DMA_Stream_Sub1
| | 0x080942a6 0128 cmp r0, 1 ; 1
| |,=< 0x080942a8 12d1 bne 0x80942d0
| || 0x080942aa 8020 movs r0, 0x80 ; 128
| ,===< 0x080942ac 06e0 b 0x80942bc
| .----> 0x080942ae 2649 ldr r1, [0x0809434a] ; [0x8094348:4]=0x2001c180
| |||| 0x080942b0 264a ldr r2, [0x0809434c] ; [0x809434c:4]=0x2001bf80
| |||| 0x080942b2 32f81020 ldrh.w r2, [r2, r0, lsl 1]
| |||| 0x080942b6 21f81020 strh.w r2, [r1, r0, lsl 1]
| |||| 0x080942ba 401c adds r0, r0, 1
| |`---> 0x080942bc ff28 cmp r0, 0xff ; 255
| `====< 0x080942be f6dd ble 0x80942ae
| || 0x080942c0 2448 ldr r0, [0x08094354] ; [0x8094354:4]=0x2001e68c
| || 0x080942c2 0068 ldr r0, [r0]
| || 0x080942c4 abf7befa bl OSSemPost
| || 0x080942c8 2149 ldr r1, [0x08094350] ; [0x8094350:4]=0x18008000
| || 0x080942ca 1e48 ldr r0, [0x08094346] ; [0x8094344:4]=0x40026458 io_DMA2_S3CR
| || 0x080942cc baf775fa bl DMA_Stream_Sub2
\ ``-> 0x080942d0 01bd pop {r0, pc}
/ (fcn) WWDG_IRQHandler 4
| WWDG_IRQHandler ();
\ `-> 0x080fc5ac fff7febf b.w WWDG_IRQHandler
/ (fcn) PVD_IRQHandler 4
| PVD_IRQHandler ();
\ `-> 0x080fc5b0 fff7febf b.w PVD_IRQHandler
/ (fcn) TAMP_STAMP_IRQHandler 4
| TAMP_STAMP_IRQHandler ();
\ `-> 0x080fc5b4 fff7febf b.w TAMP_STAMP_IRQHandler
/ (fcn) FLASH_IRQHandler 4
| FLASH_IRQHandler ();
\ `-> 0x080fc5bc fff7febf b.w FLASH_IRQHandler
/ (fcn) RCC_IRQHandler 4
| RCC_IRQHandler ();
\ `-> 0x080fc5c0 fff7febf b.w RCC_IRQHandler
/ (fcn) EXTI4_IRQHandler 4
| EXTI4_IRQHandler ();
\ `-> 0x080fc5d4 fff7febf b.w EXTI4_IRQHandler
/ (fcn) DMA1_Stream2_IRQHandler 8
| DMA1_Stream2_IRQHandler ();
| 0x0804e9a0 80b5 push {r7, lr}
| 0x0804e9a2 faf762fe bl DMA1_Stream2_Sub
\ 0x0804e9a6 01bd pop {r0, pc}
/ (fcn) DMA1_Stream5_IRQHandler 8
| DMA1_Stream5_IRQHandler ();
| 0x0804e9a8 80b5 push {r7, lr}
| 0x0804e9aa faf73dfd bl DMA1_Stream5_Sub
\ 0x0804e9ae 01bd pop {r0, pc}
/ (fcn) DMA2_Stream0_IRQHandler 4
| DMA2_Stream0_IRQHandler ();
\ 0x080fc68c fff7febf b.w DMA2_Stream0_IRQHandler ; endless loop, handler not in use
/ (fcn) DMA_Stream_Sub1 82
| Caller: DMA1_Stream5_Sub DMA1_Stream2_Sub DMA2_Stream3_IRQHandler
| DMA_Stream_Sub1 ();
| 0x0804e768 30b4 push {r4, r5}
| 0x0804e76a 0022 movs r2, 0
| 0x0804e76c 0023 movs r3, 0
| 0x0804e76e 0024 movs r4, 0
| 0x0804e770 1a4d ldr r5, [0x0804e7dc] ; [0x804e7dc:4]=0x40026410 io_DMA2_S0CR
| 0x0804e772 a842 cmp r0, r5
| ,=< 0x0804e774 01d2 bhs 0x804e77a
| | 0x0804e776 1b4a ldr r2, [0x0804e7e6] ; [0x804e7e4:4]=0x40026000 io_DMA1
| ,==< 0x0804e778 00e0 b 0x804e77c
| |`-> 0x0804e77a 1b4a ldr r2, [0x0804e7ea] ; [0x804e7e8:4]=0x40026400 io_DMA2
| `--> 0x0804e77c 1c4b ldr r3, [0x0804e7f0] ; [0x804e7f0:4]=0xf3c0f3c
| 0x0804e77e 1942 tst r1, r3
| ,=< 0x0804e780 06d0 beq 0x804e790
| | 0x0804e782 cb0a lsrs r3, r1, 0xb
| | 0x0804e784 13f01e03 ands r3, r3, 0x1e
| | 0x0804e788 0068 ldr r0, [r0]
| | 0x0804e78a 13ea0004 ands.w r4, r3, r0
| ,==< 0x0804e78e 02e0 b 0x804e796
| |`-> 0x0804e790 4069 ldr r0, [r0, 0x14]
| | 0x0804e792 10f08004 ands r4, r0, 0x80
| `--> 0x0804e796 8800 lsls r0, r1, 2
| ,=< 0x0804e798 01d5 bpl 0x804e79e
| | 0x0804e79a 5368 ldr r3, [r2, 4]
| ,==< 0x0804e79c 00e0 b 0x804e7a0
| |`-> 0x0804e79e 1368 ldr r3, [r2]
| `--> 0x0804e7a0 1248 ldr r0, [0x0804e7ec] ; [0x804e7ec:4]=0xf7d0f7d
| 0x0804e7a2 0340 ands r3, r0
| 0x0804e7a4 0b42 tst r3, r1
| ,=< 0x0804e7a6 03d0 beq 0x804e7b0
| | 0x0804e7a8 002c cmp r4, 0
| ,==< 0x0804e7aa 01d0 beq 0x804e7b0
| || 0x0804e7ac 0122 movs r2, 1 ; 1
| ,===< 0x0804e7ae 00e0 b 0x804e7b2
| |``-> 0x0804e7b0 0022 movs r2, 0
| `---> 0x0804e7b2 1000 movs r0, r2
| 0x0804e7b4 c0b2 uxtb r0, r0
| 0x0804e7b6 30bc pop {r4, r5}
\ 0x0804e7b8 7047 bx lr
/ (fcn) DMA_Stream_Sub2 32
| Caller: DMA1_Stream5_Sub DMA1_Stream2_Sub DMA2_Stream3_IRQHandler
| DMA_Stream_Sub2 ();
| 0x0804e7ba 084a ldr r2, [0x0804e7de] ; [0x804e7dc:4]=0x40026410 io_DMA2_S0CR
| 0x0804e7bc 9042 cmp r0, r2
| ,=< 0x0804e7be 01d2 bhs 0x804e7c4
| | 0x0804e7c0 0848 ldr r0, [0x0804e7e4] ; [0x804e7e4:4]=0x40026000 io_DMA1
| ,==< 0x0804e7c2 00e0 b 0x804e7c6
| |`-> 0x0804e7c4 0848 ldr r0, [0x0804e7e8] ; [0x804e7e8:4]=0x40026400 io_DMA2
| `--> 0x0804e7c6 8a00 lsls r2, r1, 2
| ,=< 0x0804e7c8 03d5 bpl 0x804e7d2
| | 0x0804e7ca 084a ldr r2, [0x0804e7ee] ; [0x804e7ec:4]=0xf7d0f7d
| | 0x0804e7cc 1140 ands r1, r2
| | 0x0804e7ce c160 str r1, [r0, 0xc]
| ,==< 0x0804e7d0 02e0 b 0x804e7d8
| |`-> 0x0804e7d2 064a ldr r2, [0x0804e7ee] ; [0x804e7ec:4]=0xf7d0f7d
| | 0x0804e7d4 1140 ands r1, r2
| | 0x0804e7d6 8160 str r1, [r0, 8]
\ `--> 0x0804e7d8 7047 bx lr
/ (fcn) EXTI9_5_IRQHandler 4
| EXTI9_5_IRQHandler ();
\ `-> 0x080fc608 fff7febf b.w EXTI9_5_IRQHandler
/ (fcn) TIM1_BRK_TIM9_IRQHandler 4
| TIM1_BRK_TIM9_IRQHandler ();
\ `-> 0x080fc60c fff7febf b.w TIM1_BRK_TIM9_IRQHandler
/ (fcn) TIM1_UP_TIM10_IRQHandler 4
| TIM1_UP_TIM10_IRQHandler ();
\ `-> 0x080fc610 fff7febf b.w TIM1_UP_TIM10_IRQHandler
/ (fcn) TIM1_TRG_COM_TIM11_IRQHandler 4
| TIM1_TRG_COM_TIM11_IRQHandler ();
\ `-> 0x080fc614 fff7febf b.w TIM1_TRG_COM_TIM11_IRQHandler
/ (fcn) TIM1_CC_IRQHandler 4
| TIM1_CC_IRQHandler ();
\ `-> 0x080fc618 fff7febf b.w TIM1_CC_IRQHandler
/ (fcn) I2C1_EV_IRQHandler 4
| I2C1_EV_IRQHandler ();
\ `-> 0x080fc628 fff7febf b.w I2C1_EV_IRQHandler
/ (fcn) I2C1_ER_IRQHandler 4
| I2C1_ER_IRQHandler ();
\ `-> 0x080fc62c fff7febf b.w I2C1_ER_IRQHandler
/ (fcn) I2C2_EV_IRQHandler 4
| I2C2_EV_IRQHandler ();
\ `-> 0x080fc630 fff7febf b.w I2C2_EV_IRQHandler
/ (fcn) I2C2_ER_IRQHandler 4
| I2C2_ER_IRQHandler ();
\ `-> 0x080fc634 fff7febf b.w I2C2_ER_IRQHandler
/ (fcn) SPI1_IRQHandler 4
| SPI1_IRQHandler ();
\ `-> 0x080fc638 fff7febf b.w SPI1_IRQHandler
/ (fcn) SPI2_IRQHandler 4
| SPI2_IRQHandler ();
\ `-> 0x080fc63c fff7febf b.w SPI2_IRQHandler
/ (fcn) USART1_IRQHandler 4
| USART1_IRQHandler ();
\ `-> 0x080fc640 fff7febf b.w USART1_IRQHandler
/ (fcn) USART2_IRQHandler 4
| USART2_IRQHandler ();
\ `-> 0x080fc644 fff7febf b.w USART2_IRQHandler
/ (fcn) USART3_IRQHandler 4
| USART3_IRQHandler ();
\ `-> 0x080fc648 fff7febf b.w USART3_IRQHandler
/ (fcn) EXTI15_10_IRQHandler 4
| EXTI15_10_IRQHandler ();
\ `-> 0x080fc64c fff7febf b.w EXTI15_10_IRQHandler
/ (fcn) RTC_Alarm_IRQHandler 4
| RTC_Alarm_IRQHandler ();
\ `-> 0x080fc650 fff7febf b.w RTC_Alarm_IRQHandler
/ (fcn) TIM8_BRK_TIM12_IRQHandler 4
| TIM8_BRK_TIM12_IRQHandler ();
\ `-> 0x080fc658 fff7febf b.w TIM8_BRK_TIM12_IRQHandler
/ (fcn) TIM8_TRG_COM_TIM14_IRQHandler 4
| TIM8_TRG_COM_TIM14_IRQHandler ();
\ `-> 0x080fc660 fff7febf b.w TIM8_TRG_COM_TIM14_IRQHandler
/ (fcn) TIM8_CC_IRQHandler 4
| TIM8_CC_IRQHandler ();
\ `-> 0x080fc664 fff7febf b.w TIM8_CC_IRQHandler
/ (fcn) SPI3_IRQHandler 8
| SPI3_IRQHandler ();
| 0x0804e998 80b5 push {r7, lr}
| 0x0804e99a faf7dcfe bl SPI3_Handler
\ 0x0804e99e 01bd pop {r0, pc}
/ (fcn) USART4_IRQHandler 4
| USART4_IRQHandler ();
\ `-> 0x080fc67c fff7febf b.w USART4_IRQHandler
/ (fcn) USART5_IRQHandler 4
| USART5_IRQHandler ();
\ `-> 0x080fc680 fff7febf b.w USART5_IRQHandler
/ (fcn) OTG_FS_IRQHandler 24
| OTG_FS_IRQHandler ();
| 0x08093f70 80b5 push {r7, lr}
| 0x08093f72 dff86c03 ldr.w r0, [0x080942e6] ; [0x80942e4:4]=0xe000ed10 ; E000ED10 = SCB.SysCtrlReg
| 0x08093f76 fff7a7fc bl CalledFromUSB_IRQ
| 0x08093f7a dff86c03 ldr.w r0, [0x080942ee] ; [0x80942ec:4]=0x2001e600 q_struct_1
| 0x08093f7e 0a21 movs r1, 0xa ; 10
| 0x08093f80 0170 strb r1, [r0]
| 0x08093f82 bbf737ff bl FeedTheWatchdog
\ 0x08093f86 01bd pop {r0, pc}
/ (fcn) USART6_IRQHandler 4
| USART6_IRQHandler ();
\ `-> 0x080fc6c8 fff7febf b.w USART6_IRQHandler
/ (fcn) I2C3_EV_IRQHandler 4
| I2C3_EV_IRQHandler ();
\ `-> 0x080fc6cc fff7febf b.w I2C3_EV_IRQHandler
/ (fcn) I2C3_ER_IRQHandler 4
| I2C3_ER_IRQHandler ();
\ `-> 0x080fc6d0 fff7febf b.w I2C3_ER_IRQHandler
/ (fcn) OTG_HS_EP1_OUT_IRQHandler 4
| OTG_HS_EP1_OUT_IRQHandler ();
\ `-> 0x080fc6d4 fff7febf b.w OTG_HS_EP1_OUT_IRQHandler
/ (fcn) OTG_HS_EP1_IN_IRQHandler 4
| OTG_HS_EP1_IN_IRQHandler ();
\ `-> 0x080fc6d8 fff7febf b.w OTG_HS_EP1_IN_IRQHandler
/ (fcn) OTG_HS_WKUP_IRQHandler 4
| OTG_HS_WKUP_IRQHandler ();
\ `-> 0x080fc6dc fff7febf b.w OTG_HS_WKUP_IRQHandler
/ (fcn) OTG_HS_IRQHandler 4
| OTG_HS_IRQHandler ();
\ `-> 0x080fc6e0 fff7febf b.w OTG_HS_IRQHandler
/ (fcn) DCMI_IRQHandler 4
| DCMI_IRQHandler ();
\ `-> 0x080fc6e4 fff7febf b.w DCMI_IRQHandler
/ (fcn) CRYP_IRQHandler 4
| CRYP_IRQHandler ();
\ `-> 0x080fc6e8 fff7febf b.w CRYP_IRQHandler
/ (fcn) HASH_RNG_IRQHandler 4
| HASH_RNG_IRQHandler ();
\ `-> 0x080fc6ec fff7febf b.w HASH_RNG_IRQHandler
/ (fcn) FPU_IRQHandler 4
| FPU_IRQHandler ();
\ `-> 0x080fc6f0 fff7febf b.w FPU_IRQHandler
/ (fcn) StoreR1_in_PtrR0plus0x3C 4
| Caller: Timer8ToneGenerator
| StoreR1_in_PtrR0plus0x3C ();
| 0x08043d26 c163 str r1, [r0, 0x3c]
\ 0x08043d28 7047 bx lr
/ (fcn) SysTick_Sub3 148
| Caller: RTC_WKUP_IRQHandler SysTick_Handler
| SysTick_Sub3 ();
| 0x08043efc 10b5 push {r4, lr}
| 0x08043efe 0024 movs r4, 0
| 0x08043f00 dff8bc06 ldr.w r0, [0x080445c4] ; [0x80445c4:4]=0x2001e952
| 0x08043f04 0078 ldrb r0, [r0]
| 0x08043f06 0128 cmp r0, 1 ; 1
| ,=< 0x08043f08 41d1 bne 0x8043f8e
| | 0x08043f0a fff76bff bl OS_ENTER_CRITICAL
| | 0x08043f0e 0400 movs r4, r0
| | 0x08043f10 dff8a806 ldr.w r0, [0x080445c0] ; [0x80445c0:4]=0x2001e956
| | 0x08043f14 0078 ldrb r0, [r0]
| | 0x08043f16 0028 cmp r0, 0
| ,==< 0x08043f18 06d0 beq 0x8043f28
| || 0x08043f1a dff8a006 ldr.w r0, [0x080445c2] ; [0x80445c0:4]=0x2001e956
| || 0x08043f1e 0078 ldrb r0, [r0]
| || 0x08043f20 401e subs r0, r0, 1
| || 0x08043f22 dff89816 ldr.w r1, [0x080445c2] ; [0x80445c0:4]=0x2001e956
| || 0x08043f26 0870 strb r0, [r1]
| `--> 0x08043f28 dff89006 ldr.w r0, [0x080445c0] ; [0x80445c0:4]=0x2001e956
| | 0x08043f2c 0078 ldrb r0, [r0]
| | 0x08043f2e 0028 cmp r0, 0
| ,==< 0x08043f30 2ad1 bne 0x8043f88
| || 0x08043f32 dff89006 ldr.w r0, [0x080445ca] ; [0x80445c8:4]=0x2001e954
| || 0x08043f36 0078 ldrb r0, [r0]
| || 0x08043f38 0028 cmp r0, 0
| ,===< 0x08043f3a 25d1 bne 0x8043f88
| ||| 0x08043f3c 00f07afa bl func_44434
| ||| 0x08043f40 dff88406 ldr.w r0, [0x080445cc] ; [0x80445cc:4]=0x2001d01c
| ||| 0x08043f44 0078 ldrb r0, [r0]
| ||| 0x08043f46 dff88416 ldr.w r1, [0x080445d2] ; [0x80445d0:4]=0x2001e71c
| ||| 0x08043f4a 51f82000 ldr.w r0, [r1, r0, lsl 2]
| ||| 0x08043f4e dff88016 ldr.w r1, [0x080445d6] ; [0x80445d4:4]=0x2001e953
| ||| 0x08043f52 0860 str r0, [r1]
| ||| 0x08043f54 dff87006 ldr.w r0, [0x080445cc] ; [0x80445cc:4]=0x2001d01c
| ||| 0x08043f58 0078 ldrb r0, [r0]
| ||| 0x08043f5a dff87816 ldr.w r1, [0x080445da] ; [0x80445d8:4]=0x2001e704
| ||| 0x08043f5e 0978 ldrb r1, [r1]
| ||| 0x08043f60 8842 cmp r0, r1
| ,====< 0x08043f62 11d0 beq 0x8043f88
| |||| 0x08043f64 dff86806 ldr.w r0, [0x080445d4] ; [0x80445d4:4]=0x2001e953
| |||| 0x08043f68 0068 ldr r0, [r0]
| |||| 0x08043f6a 806b ldr r0, [r0, 0x38]
| |||| 0x08043f6c 401c adds r0, r0, 1
| |||| 0x08043f6e dff86016 ldr.w r1, [0x080445d6] ; [0x80445d4:4]=0x2001e953
| |||| 0x08043f72 0968 ldr r1, [r1]
| |||| 0x08043f74 8863 str r0, [r1, 0x38]
| |||| 0x08043f76 dff86006 ldr.w r0, [0x080445de] ; [0x80445dc:4]=0x2001e714
| |||| 0x08043f7a 0068 ldr r0, [r0]
| |||| 0x08043f7c 401c adds r0, r0, 1
| |||| 0x08043f7e dff85816 ldr.w r1, [0x080445de] ; [0x80445dc:4]=0x2001e714
| |||| 0x08043f82 0860 str r0, [r1]
| |||| 0x08043f84 fff747ff bl func_43e16
| ```--> 0x08043f88 2000 movs r0, r4
| | 0x08043f8a fff72fff bl OS_EXIT_CRITICAL
\ `-> 0x08043f8e 10bd pop {r4, pc}
/ (fcn) WakeUp_Sub1 40
| Caller: OTG_FS_WKUP_IRQHandler
| WakeUp_Sub1 ();
| 0x08061aea 817a ldrb r1, [r0, 0xa]
| 0x08061aec 0029 cmp r1, 0
| ,=< 0x08061aee 0fd0 beq 0x8061b10
| | 0x08061af0 0169 ldr r1, [r0, 0x10]
| | 0x08061af2 8968 ldr r1, [r1, 8]
| | 0x08061af4 11f00101 ands r1, r1, 1
| | 0x08061af8 c9b2 uxtb r1, r1
| | 0x08061afa 0029 cmp r1, 0
| ,==< 0x08061afc 08d0 beq 0x8061b10
| || 0x08061afe d0f80c11 ldr.w r1, [r0, 0x10c]
| || 0x08061b02 31f00201 bics r1, r1, 2
| || 0x08061b06 4908 lsrs r1, r1, 1
| || 0x08061b08 4900 lsls r1, r1, 1
| || 0x08061b0a d0f80c01 ldr.w r0, [r0, 0x10c]
| || 0x08061b0e 0160 str r1, [r0]
\ ``-> 0x08061b10 7047 bx lr
/ (fcn) RTCWakeupIRQ_Sub1 30
| Caller: RTC_WKUP_IRQHandler func_51c6a
| RTCWakeupIRQ_Sub1 ();
| 0x0802b6c0 0021 movs r1, 0
| 0x0802b6c2 0009 lsrs r0, r0, 4
| 0x0802b6c4 0100 movs r1, r0
| 0x0802b6c6 88b2 uxth r0, r1
| 0x0802b6c8 50f08000 orrs r0, r0, 0x80
| 0x0802b6cc 0449 ldr r1, [0x0802b6e0] ; [0x802b6e0:4]=0x4000280c io_RTC_ISR
| 0x0802b6ce 0968 ldr r1, [r1]
| 0x0802b6d0 11f08001 ands r1, r1, 0x80
| 0x0802b6d4 71ea0000 orns r0, r1, r0
| 0x0802b6d8 0149 ldr r1, [0x0802b6e0] ; [0x802b6e0:4]=0x4000280c io_RTC_ISR
| 0x0802b6da 0860 str r0, [r1]
\ 0x0802b6dc 7047 bx lr
/ (fcn) CalledFromUSB_IRQ 210
| Caller: OTG_FS_IRQHandler
| CalledFromUSB_IRQ ();
| 0x080938c8 70b5 push {r4, r5, r6, lr}
| 0x080938ca 0400 movs r4, r0
| 0x080938cc 0026 movs r6, 0
| 0x080938ce 2000 movs r0, r4
| 0x080938d0 cdf7d4fd bl func_6147c
| 0x080938d4 0028 cmp r0, 0
| ,=< 0x080938d6 5ed0 beq 0x8093996
| | 0x080938d8 2000 movs r0, r4
| | 0x080938da cdf7d9fd bl func_61490
| | 0x080938de 0500 movs r5, r0
| | 0x080938e0 002d cmp r5, 0
| ,==< 0x080938e2 01d1 bne 0x80938e8
| || 0x080938e4 0020 movs r0, 0
| ,===< 0x080938e6 57e0 b 0x8093998
| |`--> 0x080938e8 c5f3c040 ubfx r0, r5, 0x13, 1
| | | 0x080938ec c007 lsls r0, r0, 0x1f
| |,==< 0x080938ee 03d5 bpl 0x80938f8
| ||| 0x080938f0 2000 movs r0, r4
| ||| 0x080938f2 00f034f9 bl func_93b5e
| ||| 0x080938f6 0643 orrs r6, r0
| |`--> 0x080938f8 c5f38040 ubfx r0, r5, 0x12, 1
| | | 0x080938fc c007 lsls r0, r0, 0x1f
| |,==< 0x080938fe 03d5 bpl 0x8093908
| ||| 0x08093900 2000 movs r0, r4
| ||| 0x08093902 00f0b2f8 bl func_93a6a
| ||| 0x08093906 0643 orrs r6, r0
| |`--> 0x08093908 c5f34000 ubfx r0, r5, 1, 1
| | | 0x0809390c c007 lsls r0, r0, 0x1f
| |,==< 0x0809390e 04d5 bpl 0x809391a
| ||| 0x08093910 0020 movs r0, 0
| ||| 0x08093912 50f00200 orrs r0, r0, 2
| ||| 0x08093916 e168 ldr r1, [r4, 0xc]
| ||| 0x08093918 4861 str r0, [r1, 0x14]
| |`--> 0x0809391a 002d cmp r5, 0
| |,==< 0x0809391c 03d5 bpl 0x8093926
| ||| 0x0809391e 2000 movs r0, r4
| ||| 0x08093920 00f03bf8 bl func_9399a
| ||| 0x08093924 0643 orrs r6, r0
| |`--> 0x08093926 c5f3c020 ubfx r0, r5, 0xb, 1
| | | 0x0809392a c007 lsls r0, r0, 0x1f
| |,==< 0x0809392c 03d5 bpl 0x8093936
| ||| 0x0809392e 2000 movs r0, r4
| ||| 0x08093930 00f057f8 bl func_939e2
| ||| 0x08093934 0643 orrs r6, r0
| |`--> 0x08093936 c5f3c000 ubfx r0, r5, 3, 1
| | | 0x0809393a c007 lsls r0, r0, 0x1f
| |,==< 0x0809393c 03d5 bpl 0x8093946
| ||| 0x0809393e 2000 movs r0, r4
| ||| 0x08093940 00f072f9 bl func_93c28
| ||| 0x08093944 0643 orrs r6, r0
| |`--> 0x08093946 c5f30010 ubfx r0, r5, 4, 1
| | | 0x0809394a c007 lsls r0, r0, 0x1f
| |,==< 0x0809394c 03d5 bpl 0x8093956
| ||| 0x0809394e 2000 movs r0, r4
| ||| 0x08093950 00f078f9 bl func_93c44
| ||| 0x08093954 0643 orrs r6, r0
| |`--> 0x08093956 c5f30030 ubfx r0, r5, 0xc, 1
| | | 0x0809395a c007 lsls r0, r0, 0x1f
| |,==< 0x0809395c 03d5 bpl 0x8093966
| ||| 0x0809395e 2000 movs r0, r4
| ||| 0x08093960 00f003fa bl func_93d6a
| ||| 0x08093964 0643 orrs r6, r0
| |`--> 0x08093966 c5f34030 ubfx r0, r5, 0xd, 1
| | | 0x0809396a c007 lsls r0, r0, 0x1f
| |,==< 0x0809396c 03d5 bpl 0x8093976
| ||| 0x0809396e 2000 movs r0, r4
| ||| 0x08093970 00f058fa bl func_93e24
| ||| 0x08093974 0643 orrs r6, r0
| |`--> 0x08093976 c5f30050 ubfx r0, r5, 0x14, 1
| | | 0x0809397a c007 lsls r0, r0, 0x1f
| |,==< 0x0809397c 03d5 bpl 0x8093986
| ||| 0x0809397e 2000 movs r0, r4
| ||| 0x08093980 00f075fa bl func_93e6e
| ||| 0x08093984 0643 orrs r6, r0
| |`--> 0x08093986 c5f34050 ubfx r0, r5, 0x15, 1
| | | 0x0809398a c007 lsls r0, r0, 0x1f
| |,==< 0x0809398c 03d5 bpl 0x8093996
| ||| 0x0809398e 2000 movs r0, r4
| ||| 0x08093990 00f07bfa bl func_93e8a
| ||| 0x08093994 0643 orrs r6, r0
| |``-> 0x08093996 3000 movs r0, r6
\ `---> 0x08093998 70bd pop {r4, r5, r6, pc}
/ (fcn) func_95824 10
| func_95824 ();
| 0x08095824 80b5 push {r7, lr}
| 0x08095826 b9f7c3f8 bl func_4e9b0
| 0x0809582a 0020 movs r0, 0
\ 0x0809582c 02bd pop {r1, pc}
/ (fcn) func_9582e 10
| func_9582e ();
| 0x0809582e 80b5 push {r7, lr}
| 0x08095830 b9f7cef8 bl func_4e9d0
| 0x08095834 0020 movs r0, 0
\ 0x08095836 02bd pop {r1, pc}
/ (fcn) func_95838 20
| func_95838 ();
| 0x08095838 80b5 push {r7, lr}
| 0x0809583a 4249 ldr r1, [0x08095946] ; [0x8095944:4]=0x8004000
| 0x0809583c 8842 cmp r0, r1
| ,=< 0x0809583e 05d2 bhs 0x809584c
| | 0x08095840 0221 movs r1, 2 ; 2
| | 0x08095842 0020 movs r0, 0
| | 0x08095844 b9f7cdf8 bl func_4e9e2
| | 0x08095848 0020 movs r0, 0
\ | 0x0809584a 02bd pop {r1, pc}
/ (fcn) SPI3_Handler 124
| Caller: SPI3_IRQHandler
| SPI3_Handler ();
| 0x08049756 80b5 push {r7, lr}
| 0x08049758 5821 movs r1, 0x58 ; 'X' ; 88
| 0x0804975a 5b48 ldr r0, [0x080498ca] ; [0x80498c8:4]=0x20004a48 baseaddr_SPI3_for_SPI3_Handler
| 0x0804975c 0068 ldr r0, [r0] ; [0x20004A48] = 0x40003C00 = SPI3/I2S3
| 0x0804975e fbf77cf8 bl 0x804485a ; func_44846+0x14
| 0x08049762 0128 cmp r0, 1 ; 1
| ,=< 0x08049764 16d1 bne 0x8049794
| | 0x08049766 0021 movs r1, 0
| | 0x08049768 5748 ldr r0, [0x080498c8] ; [0x80498c8:4]=0x20004a48 baseaddr_SPI3_for_SPI3_Handler
| | 0x0804976a 0068 ldr r0, [r0]
| | 0x0804976c fbf70cf8 bl SPI_I2S_EnableOrDisable
| .--> 0x08049770 5848 ldr r0, [0x080498d4] ; [0x80498d4:4]=0x20004abc bitmask_GPIOA_for_SPI3_Handler
| || 0x08049772 0188 ldrh r1, [r0] ; [0x20004ABC] = 0x04008000 = bitmask
| || 0x08049774 5848 ldr r0, [0x080498d8] ; [0x80498d8:4]=0x20004a54 baseaddr_GPIOA_for_SPI3_Handler
| || 0x08049776 0068 ldr r0, [r0] ; [0x20004a54] = 0x40020000 = GPIOA
| || 0x08049778 e2f739f8 bl GPIO_ReadInputDataBit
| || 0x0804977c 0028 cmp r0, 0
| `==< 0x0804977e f7d0 beq 0x8049770 ; 'WAITING in an interrupt handler ?'
| | 0x08049780 0121 movs r1, 1 ; 1
| | 0x08049782 5148 ldr r0, [0x080498ca] ; [0x80498c8:4]=0x20004a48 baseaddr_SPI3_for_SPI3_Handler
| | 0x08049784 0068 ldr r0, [r0]
| | 0x08049786 faf7ffff bl SPI_I2S_EnableOrDisable
| | 0x0804978a 5821 movs r1, 0x58 ; 'X' ; 88
| | 0x0804978c 4e48 ldr r0, [0x080498c8] ; [0x80498c8:4]=0x20004a48 baseaddr_SPI3_for_SPI3_Handler
| | 0x0804978e 0068 ldr r0, [r0]
| | 0x08049790 fbf785f8 bl 0x804489e ; func_44846+0x58
| `-> 0x08049794 5821 movs r1, 0x58 ; 'X' ; 88
| 0x08049796 4d48 ldr r0, [0x080498ce] ; [0x80498cc:4]=0x20004a4c
| 0x08049798 0068 ldr r0, [r0] ; [0x20004a4c] = 0x40004000 = I2S3ext
| 0x0804979a fbf75ef8 bl 0x804485a ; func_44846+0x14
| 0x0804979e 0128 cmp r0, 1 ; 1
| ,=< 0x080497a0 16d1 bne 0x80497d0
| | 0x080497a2 0021 movs r1, 0
| | 0x080497a4 4948 ldr r0, [0x080498cc] ; [0x80498cc:4]=0x20004a4c
| | 0x080497a6 0068 ldr r0, [r0]
| | 0x080497a8 faf7eeff bl SPI_I2S_EnableOrDisable
| .--> 0x080497ac 4948 ldr r0, [0x080498d4] ; [0x80498d4:4]=0x20004abc bitmask_GPIOA_for_SPI3_Handler
| || 0x080497ae 0188 ldrh r1, [r0]
| || 0x080497b0 4948 ldr r0, [0x080498d8] ; [0x80498d8:4]=0x20004a54 baseaddr_GPIOA_for_SPI3_Handler
| || 0x080497b2 0068 ldr r0, [r0] ; [0x20004a54] = 0x40020000 = GPIOA
| || 0x080497b4 e2f71bf8 bl GPIO_ReadInputDataBit
| || 0x080497b8 0028 cmp r0, 0
| `==< 0x080497ba f7d0 beq 0x80497ac
| | 0x080497bc 0121 movs r1, 1 ; 1
| | 0x080497be 4348 ldr r0, [0x080498ce] ; [0x80498cc:4]=0x20004a4c
| | 0x080497c0 0068 ldr r0, [r0]
| | 0x080497c2 faf7e1ff bl SPI_I2S_EnableOrDisable
| | 0x080497c6 5821 movs r1, 0x58 ; 'X' ; 88
| | 0x080497c8 4048 ldr r0, [0x080498cc] ; [0x80498cc:4]=0x20004a4c
| | 0x080497ca 0068 ldr r0, [r0]
| | 0x080497cc fbf767f8 bl 0x804489e ; func_44846+0x58
\ `-> 0x080497d0 01bd pop {r0, pc}
/ (fcn) func_44846 204
| Caller: md380_spi_sendrecv
| func_44846 ();
| 0x08044846 0022 movs r2, 0
| 0x08044848 0089 ldrh r0, [r0, 8]
| 0x0804484a 0842 tst r0, r1
| ,=< 0x0804484c 01d0 beq 0x8044852
| | 0x0804484e 0122 movs r2, 1 ; 1
| ,==< 0x08044850 00e0 b 0x8044854
| |`-> 0x08044852 0022 movs r2, 0
| `--> 0x08044854 1000 movs r0, r2
| 0x08044856 c0b2 uxtb r0, r0
| 0x08044858 7047 bx lr
| 0x0804485a f0b4 push {r4, r5, r6, r7} ; in: R0='SPIx' (SPI or I2S base addr)
| 0x0804485c 0a00 movs r2, r1 ; in: R1='SPI_I2S_IT' (0x58 from SPI3_IRQHandler)
| 0x0804485e 0021 movs r1, 0
| 0x08044860 0024 movs r4, 0
| 0x08044862 0025 movs r5, 0
| 0x08044864 0023 movs r3, 0
| 0x08044866 0126 movs r6, 1 ; 1
| 0x08044868 12f00f07 ands r7, r2, 0xf ; 'itpos = 0x01 SHL (SPI_I2S_IT & 0x0F)'
| 0x0804486c be40 lsls r6, r7
| 0x0804486e 3400 movs r4, r6
| 0x08044870 d2b2 uxtb r2, r2
| 0x08044872 1209 lsrs r2, r2, 4 ; 'itmask = SPI_I2S_IT SHR 4'
| 0x08044874 d2b2 uxtb r2, r2
| 0x08044876 1500 movs r5, r2
| 0x08044878 0122 movs r2, 1 ; 1
| 0x0804487a 12fa05f5 lsls.w r5, r2, r5 ; 'itmask = 0x01 SHL itmask'
| 0x0804487e 8288 ldrh r2, [r0, 4] ; [R0+4] = SPI Control Register 2
| 0x08044880 2a40 ands r2, r5 ; 'enablestatus = (SPIx.CR2 & itmask)'
| 0x08044882 1300 movs r3, r2
| 0x08044884 0089 ldrh r0, [r0, 8] ; [R0+8] = SPI Status Register
| 0x08044886 2042 tst r0, r4
| ,=< 0x08044888 04d0 beq 0x8044894
| | 0x0804488a 9bb2 uxth r3, r3
| | 0x0804488c 002b cmp r3, 0
| ,==< 0x0804488e 01d0 beq 0x8044894
| || 0x08044890 0121 movs r1, 1 ; 1
| ,===< 0x08044892 00e0 b 0x8044896
| |``-> 0x08044894 0021 movs r1, 0
| `---> 0x08044896 0800 movs r0, r1
| 0x08044898 c0b2 uxtb r0, r0
| 0x0804489a f0bc pop {r4, r5, r6, r7}
| 0x0804489c 7047 bx lr ; return: R0: 0=interrupt flag RESET, 1=SET
| 0x0804489e 0022 movs r2, 0 ; in: R1=SPI_I2S_IT, which bit to clear
| 0x080448a0 0123 movs r3, 1 ; 1
| 0x080448a2 11f00f01 ands r1, r1, 0xf
| 0x080448a6 13fa01f1 lsls.w r1, r3, r1 ; 'itpos = 0x01 SHL (SPI_I2S_IT & 0x0F)'
| 0x080448aa 0a00 movs r2, r1
| 0x080448ac 92b2 uxth r2, r2
| 0x080448ae d143 mvns r1, r2 ; 'SPIx.SR = BITNOT itpos'
| 0x080448b0 0181 strh r1, [r0, 8] ; [R0+8] = SPI Status Register
| 0x080448b2 7047 bx lr
| 0x080448b4 80b5 push {r7, lr}
| 0x080448b6 0028 cmp r0, 0
| ,=< 0x080448b8 01d1 bne 0x80448be
| | 0x080448ba 0548 ldr r0, [0x080448d2] ; [0x80448d0:4]=0x2001da1c gfx_info
| | 0x080448bc 8069 ldr r0, [r0, 0x18]
| `-> 0x080448be 027f ldrb r2, [r0, 0x1c]
| 0x080448c0 8a70 strb r2, [r1, 2]
| 0x080448c2 827f ldrb r2, [r0, 0x1e]
| 0x080448c4 0a71 strb r2, [r1, 4]
| 0x080448c6 427f ldrb r2, [r0, 0x1d]
| 0x080448c8 ca70 strb r2, [r1, 3]
| 0x080448ca 8268 ldr r2, [r0, 8]
| 0x080448cc 9047 blx r2
| 0x080448ce 01bd pop {r0, pc}
| ,=< 0x080448d0 1cda bge 0x804490c
| | 0x080448d2 0120 movs r0, 1 ; 1
| | 0x080448d4 80b5 push {r7, lr}
| | 0x080448d6 0100 movs r1, r0
| | 0x080448d8 0020 movs r0, 0
| | 0x080448da 09b2 sxth r1, r1
| | 0x080448dc 0029 cmp r1, 0
| ,==< 0x080448de 06d0 beq 0x80448ee
| || 0x080448e0 0800 movs r0, r1
| || 0x080448e2 00b2 sxth r0, r0
| || 0x080448e4 eef7bef8 bl gfx_draw_sub_32a64
| || 0x080448e8 007f ldrb r0, [r0, 0x1c]
| || 0x080448ea 10f00100 ands r0, r0, 1
| `--> 0x080448ee 02bd pop {r1, pc}
| | 0x080448f0 e0b5 push {r5, r6, r7, lr}
| | 0x080448f2 0200 movs r2, r0
| | 0x080448f4 0020 movs r0, 0
| | 0x080448f6 12b2 sxth r2, r2
| | 0x080448f8 002a cmp r2, 0
| ,==< 0x080448fa 09d0 beq 0x8044910
| || 0x080448fc 0020 movs r0, 0
| || 0x080448fe 0290 str r0, [sp, 8]
| || 0x08044900 2020 movs r0, 0x20 ; 32
| || 0x08044902 0090 str r0, [sp]
| || 0x08044904 00a9 add r1, sp, 0
| || 0x08044906 1000 movs r0, r2
| || 0x08044908 00b2 sxth r0, r0
| || 0x0804490a d7f725ff bl gfx_1c758
| | 0x0804490e 0298 ldr r0, [sp, 8]
\ `--> 0x08044910 0ebd pop {r1, r2, r3, pc}
/ (fcn) SPI_I2S_EnableOrDisable 28
| Caller: SPI3_Handler func_49810 func_497d2
| SPI_I2S_EnableOrDisable ();
| 0x08044788 c9b2 uxtb r1, r1 ; in: R0='SPIx' (SPI or I2S base addr)
| 0x0804478a 0029 cmp r1, 0 ; in: R1: 0=disable I2S, 1=enable I2S
| 0x0804478c 04d0 beq 0x8044798
| 0x0804478e 818b ldrh r1, [r0, 0x1c] ; [R0+0x1C] = SPI_I2SCFGR
| 0x08044790 51f48061 orrs r1, r1, 0x400 ; 'SPIx.I2SCFGR OR= SPI_I2SCFGR_I2SE'
| 0x08044794 8183 strh r1, [r0, 0x1c]
| ,=< 0x08044796 04e0 b 0x80447a2
| | 0x08044798 818b ldrh r1, [r0, 0x1c]
| | 0x0804479a 4ff6ff32 movw r2, 0xfbff
| | 0x0804479e 1140 ands r1, r2 ; 'SPIx.I2SCFGR AND= BITNOT SPI_I2SCFGR_I2SE'
| | 0x080447a0 8183 strh r1, [r0, 0x1c]
\ `-> 0x080447a2 7047 bx lr
/ (fcn) func_44846 204
| Caller: md380_spi_sendrecv
| func_44846 ();
| 0x08044846 0022 movs r2, 0
| 0x08044848 0089 ldrh r0, [r0, 8]
| 0x0804484a 0842 tst r0, r1
| ,=< 0x0804484c 01d0 beq 0x8044852
| | 0x0804484e 0122 movs r2, 1 ; 1
| ,==< 0x08044850 00e0 b 0x8044854
| |`-> 0x08044852 0022 movs r2, 0
| `--> 0x08044854 1000 movs r0, r2
| 0x08044856 c0b2 uxtb r0, r0
| 0x08044858 7047 bx lr
| 0x0804485a f0b4 push {r4, r5, r6, r7} ; in: R0='SPIx' (SPI or I2S base addr)
| 0x0804485c 0a00 movs r2, r1 ; in: R1='SPI_I2S_IT' (0x58 from SPI3_IRQHandler)
| 0x0804485e 0021 movs r1, 0
| 0x08044860 0024 movs r4, 0
| 0x08044862 0025 movs r5, 0
| 0x08044864 0023 movs r3, 0
| 0x08044866 0126 movs r6, 1 ; 1
| 0x08044868 12f00f07 ands r7, r2, 0xf ; 'itpos = 0x01 SHL (SPI_I2S_IT & 0x0F)'
| 0x0804486c be40 lsls r6, r7
| 0x0804486e 3400 movs r4, r6
| 0x08044870 d2b2 uxtb r2, r2
| 0x08044872 1209 lsrs r2, r2, 4 ; 'itmask = SPI_I2S_IT SHR 4'
| 0x08044874 d2b2 uxtb r2, r2
| 0x08044876 1500 movs r5, r2
| 0x08044878 0122 movs r2, 1 ; 1
| 0x0804487a 12fa05f5 lsls.w r5, r2, r5 ; 'itmask = 0x01 SHL itmask'
| 0x0804487e 8288 ldrh r2, [r0, 4] ; [R0+4] = SPI Control Register 2
| 0x08044880 2a40 ands r2, r5 ; 'enablestatus = (SPIx.CR2 & itmask)'
| 0x08044882 1300 movs r3, r2
| 0x08044884 0089 ldrh r0, [r0, 8] ; [R0+8] = SPI Status Register
| 0x08044886 2042 tst r0, r4
| ,=< 0x08044888 04d0 beq 0x8044894
| | 0x0804488a 9bb2 uxth r3, r3
| | 0x0804488c 002b cmp r3, 0
| ,==< 0x0804488e 01d0 beq 0x8044894
| || 0x08044890 0121 movs r1, 1 ; 1
| ,===< 0x08044892 00e0 b 0x8044896
| |``-> 0x08044894 0021 movs r1, 0
| `---> 0x08044896 0800 movs r0, r1
| 0x08044898 c0b2 uxtb r0, r0
| 0x0804489a f0bc pop {r4, r5, r6, r7}
| 0x0804489c 7047 bx lr ; return: R0: 0=interrupt flag RESET, 1=SET
| 0x0804489e 0022 movs r2, 0 ; in: R1=SPI_I2S_IT, which bit to clear
| 0x080448a0 0123 movs r3, 1 ; 1
| 0x080448a2 11f00f01 ands r1, r1, 0xf
| 0x080448a6 13fa01f1 lsls.w r1, r3, r1 ; 'itpos = 0x01 SHL (SPI_I2S_IT & 0x0F)'
| 0x080448aa 0a00 movs r2, r1
| 0x080448ac 92b2 uxth r2, r2
| 0x080448ae d143 mvns r1, r2 ; 'SPIx.SR = BITNOT itpos'
| 0x080448b0 0181 strh r1, [r0, 8] ; [R0+8] = SPI Status Register
| 0x080448b2 7047 bx lr
| 0x080448b4 80b5 push {r7, lr}
| 0x080448b6 0028 cmp r0, 0
| ,=< 0x080448b8 01d1 bne 0x80448be
| | 0x080448ba 0548 ldr r0, [0x080448d2] ; [0x80448d0:4]=0x2001da1c gfx_info
| | 0x080448bc 8069 ldr r0, [r0, 0x18]
| `-> 0x080448be 027f ldrb r2, [r0, 0x1c]
| 0x080448c0 8a70 strb r2, [r1, 2]
| 0x080448c2 827f ldrb r2, [r0, 0x1e]
| 0x080448c4 0a71 strb r2, [r1, 4]
| 0x080448c6 427f ldrb r2, [r0, 0x1d]
| 0x080448c8 ca70 strb r2, [r1, 3]
| 0x080448ca 8268 ldr r2, [r0, 8]
| 0x080448cc 9047 blx r2
| 0x080448ce 01bd pop {r0, pc}
| ,=< 0x080448d0 1cda bge 0x804490c
| | 0x080448d2 0120 movs r0, 1 ; 1
| | 0x080448d4 80b5 push {r7, lr}
| | 0x080448d6 0100 movs r1, r0
| | 0x080448d8 0020 movs r0, 0
| | 0x080448da 09b2 sxth r1, r1
| | 0x080448dc 0029 cmp r1, 0
| ,==< 0x080448de 06d0 beq 0x80448ee
| || 0x080448e0 0800 movs r0, r1
| || 0x080448e2 00b2 sxth r0, r0
| || 0x080448e4 eef7bef8 bl gfx_draw_sub_32a64
| || 0x080448e8 007f ldrb r0, [r0, 0x1c]
| || 0x080448ea 10f00100 ands r0, r0, 1
| `--> 0x080448ee 02bd pop {r1, pc}
| | 0x080448f0 e0b5 push {r5, r6, r7, lr}
| | 0x080448f2 0200 movs r2, r0
| | 0x080448f4 0020 movs r0, 0
| | 0x080448f6 12b2 sxth r2, r2
| | 0x080448f8 002a cmp r2, 0
| ,==< 0x080448fa 09d0 beq 0x8044910
| || 0x080448fc 0020 movs r0, 0
| || 0x080448fe 0290 str r0, [sp, 8]
| || 0x08044900 2020 movs r0, 0x20 ; 32
| || 0x08044902 0090 str r0, [sp]
| || 0x08044904 00a9 add r1, sp, 0
| || 0x08044906 1000 movs r0, r2
| || 0x08044908 00b2 sxth r0, r0
| || 0x0804490a d7f725ff bl gfx_1c758
| | 0x0804490e 0298 ldr r0, [sp, 8]
\ `--> 0x08044910 0ebd pop {r1, r2, r3, pc}
/ (fcn) TIM_EnableOrDisableCounter 28
| Caller: SomethingWithTIM7_RadioStatus1 SomethingWithGPIOC_TIM7_Status func_49ca8 TIM6_DAC_IRQHandler
| EXTI2_IRQHandler func_47312 func_4ce88 TIM2_IRQHandler func_47ab6
| TIM4_IRQHandler TimerIRQ_Sub1 func_4cf06_uses_ADC2_and_TIM3 Something2_TIM7_RadioStatus1
| TimerIRQ_Sub4
| TIM_EnableOrDisableCounter ();
| 0x08043ac8 c9b2 uxtb r1, r1 ; in: R1: 0=DISABLE, 1=ENABLE counting
| 0x08043aca 0029 cmp r1, 0
| ,=< 0x08043acc 04d0 beq 0x8043ad8
| | 0x08043ace 0188 ldrh r1, [r0] ; in: R0= TIMx base address, ControlReg1
| | 0x08043ad0 51f00101 orrs r1, r1, 1
| | 0x08043ad4 0180 strh r1, [r0]
| ,==< 0x08043ad6 04e0 b 0x8043ae2
| |`-> 0x08043ad8 0188 ldrh r1, [r0]
| | 0x08043ada 4ff6fe72 movw r2, 0xfffe
| | 0x08043ade 1140 ands r1, r2 ; what an effort to clear a stupid bit !
| | 0x08043ae0 0180 strh r1, [r0]
\ `--> 0x08043ae2 7047 bx lr
/ (fcn) TIM_43ae4 126
| Caller: func_47312
| TIM_43ae4 ();
| 0x08043ae4 70b4 push {r4, r5, r6}
| 0x08043ae6 0023 movs r3, 0
| 0x08043ae8 0024 movs r4, 0
| 0x08043aea 0022 movs r2, 0
| 0x08043aec 058c ldrh r5, [r0, 0x20]
| 0x08043aee 4ff6fe76 movw r6, 0xfffe
| 0x08043af2 3540 ands r5, r6
| 0x08043af4 0584 strh r5, [r0, 0x20]
| 0x08043af6 058c ldrh r5, [r0, 0x20]
| 0x08043af8 2c00 movs r4, r5
| 0x08043afa 8588 ldrh r5, [r0, 4]
| 0x08043afc 2a00 movs r2, r5
| 0x08043afe 058b ldrh r5, [r0, 0x18]
| 0x08043b00 2b00 movs r3, r5
| 0x08043b02 4ff68f75 movw r5, 0xff8f
| 0x08043b06 2b40 ands r3, r5
| 0x08043b08 4ff6fc75 movw r5, 0xfffc
| 0x08043b0c 2b40 ands r3, r5
| 0x08043b0e 0d88 ldrh r5, [r1]
| 0x08043b10 2b43 orrs r3, r5
| 0x08043b12 4ff6fd75 movw r5, 0xfffd
| 0x08043b16 2c40 ands r4, r5
| 0x08043b18 8d89 ldrh r5, [r1, 0xc]
| 0x08043b1a 2c43 orrs r4, r5
| 0x08043b1c 4d88 ldrh r5, [r1, 2]
| 0x08043b1e 2c43 orrs r4, r5
| 0x08043b20 704d ldr r5, [0x08043ce4] ; [0x8043ce4:4]=0x40010000 io_TIM1
| 0x08043b22 a842 cmp r0, r5
| ,=< 0x08043b24 02d0 beq 0x8043b2c
| | 0x08043b26 754d ldr r5, [0x08043cfe] ; [0x8043cfc:4]=0x40010400 io_TIM8
| | 0x08043b28 a842 cmp r0, r5
| ,==< 0x08043b2a 13d1 bne 0x8043b54
| |`-> 0x08043b2c 4ff6f775 movw r5, 0xfff7
| | 0x08043b30 2c40 ands r4, r5
| | 0x08043b32 cd89 ldrh r5, [r1, 0xe]
| | 0x08043b34 2c43 orrs r4, r5
| | 0x08043b36 4ff6fb75 movw r5, 0xfffb
| | 0x08043b3a 2c40 ands r4, r5
| | 0x08043b3c 8d88 ldrh r5, [r1, 4]
| | 0x08043b3e 2c43 orrs r4, r5
| | 0x08043b40 4ff6ff65 movw r5, 0xfeff
| | 0x08043b44 2a40 ands r2, r5
| | 0x08043b46 4ff6ff55 movw r5, 0xfdff
| | 0x08043b4a 2a40 ands r2, r5
| | 0x08043b4c 0d8a ldrh r5, [r1, 0x10]
| | 0x08043b4e 2a43 orrs r2, r5
| | 0x08043b50 4d8a ldrh r5, [r1, 0x12]
| | 0x08043b52 2a43 orrs r2, r5
| `--> 0x08043b54 8280 strh r2, [r0, 4]
| 0x08043b56 0383 strh r3, [r0, 0x18]
| 0x08043b58 8968 ldr r1, [r1, 8]
| 0x08043b5a 4163 str r1, [r0, 0x34]
| 0x08043b5c 0484 strh r4, [r0, 0x20]
| 0x08043b5e 70bc pop {r4, r5, r6}
\ 0x08043b60 7047 bx lr
/ (fcn) SomethingTestingTIM1_TIM8 138
| Caller: func_47312
| SomethingTestingTIM1_TIM8 ();
| 0x08043bee 70b4 push {r4, r5, r6}
| 0x08043bf0 0023 movs r3, 0
| 0x08043bf2 0024 movs r4, 0
| 0x08043bf4 0022 movs r2, 0
| 0x08043bf6 058c ldrh r5, [r0, 0x20]
| 0x08043bf8 4ff6ff66 movw r6, 0xfeff
| 0x08043bfc 3540 ands r5, r6
| 0x08043bfe 0584 strh r5, [r0, 0x20]
| 0x08043c00 058c ldrh r5, [r0, 0x20]
| 0x08043c02 2c00 movs r4, r5
| 0x08043c04 8588 ldrh r5, [r0, 4]
| 0x08043c06 2a00 movs r2, r5
| 0x08043c08 858b ldrh r5, [r0, 0x1c]
| 0x08043c0a 2b00 movs r3, r5
| 0x08043c0c 4ff68f75 movw r5, 0xff8f
| 0x08043c10 2b40 ands r3, r5
| 0x08043c12 4ff6fc75 movw r5, 0xfffc
| 0x08043c16 2b40 ands r3, r5
| 0x08043c18 0d88 ldrh r5, [r1]
| 0x08043c1a 2b43 orrs r3, r5
| 0x08043c1c 4ff6ff55 movw r5, 0xfdff
| 0x08043c20 2c40 ands r4, r5
| 0x08043c22 8d89 ldrh r5, [r1, 0xc]
| 0x08043c24 54ea0524 orrs.w r4, r4, r5, lsl 8
| 0x08043c28 4d88 ldrh r5, [r1, 2]
| 0x08043c2a 54ea0524 orrs.w r4, r4, r5, lsl 8
| 0x08043c2e 2d4d ldr r5, [0x08043ce6] ; [0x8043ce4:4]=0x40010000 io_TIM1
| 0x08043c30 a842 cmp r0, r5
| ,=< 0x08043c32 02d0 beq 0x8043c3a
| | 0x08043c34 314d ldr r5, [0x08043cfc] ; [0x8043cfc:4]=0x40010400 io_TIM8
| | 0x08043c36 a842 cmp r0, r5
| ,==< 0x08043c38 17d1 bne 0x8043c6a
| |`-> 0x08043c3a 4ff2ff75 movw r5, 0xf7ff
| | 0x08043c3e 2c40 ands r4, r5
| | 0x08043c40 cd89 ldrh r5, [r1, 0xe]
| | 0x08043c42 54ea0524 orrs.w r4, r4, r5, lsl 8
| | 0x08043c46 4ff6ff35 movw r5, 0xfbff
| | 0x08043c4a 2c40 ands r4, r5
| | 0x08043c4c 8d88 ldrh r5, [r1, 4]
| | 0x08043c4e 54ea0524 orrs.w r4, r4, r5, lsl 8
| | 0x08043c52 4ef6ff75 movw r5, 0xefff
| | 0x08043c56 2a40 ands r2, r5
| | 0x08043c58 4df6ff75 movw r5, 0xdfff
| | 0x08043c5c 2a40 ands r2, r5
| | 0x08043c5e 0d8a ldrh r5, [r1, 0x10]
| | 0x08043c60 52ea0512 orrs.w r2, r2, r5, lsl 4
| | 0x08043c64 4d8a ldrh r5, [r1, 0x12]
| | 0x08043c66 52ea0512 orrs.w r2, r2, r5, lsl 4
| `--> 0x08043c6a 8280 strh r2, [r0, 4]
| 0x08043c6c 8383 strh r3, [r0, 0x1c]
| 0x08043c6e 8968 ldr r1, [r1, 8]
| 0x08043c70 c163 str r1, [r0, 0x3c]
| 0x08043c72 0484 strh r4, [r0, 0x20]
| 0x08043c74 70bc pop {r4, r5, r6}
\ 0x08043c76 7047 bx lr
/ (fcn) SomethingElseWithTIM1_TIM8 104
| Caller: func_47312
| SomethingElseWithTIM1_TIM8 ();
| 0x08043c78 70b4 push {r4, r5, r6}
| 0x08043c7a 0023 movs r3, 0
| 0x08043c7c 0024 movs r4, 0
| 0x08043c7e 0022 movs r2, 0
| 0x08043c80 058c ldrh r5, [r0, 0x20]
| 0x08043c82 4ef6ff76 movw r6, 0xefff
| 0x08043c86 3540 ands r5, r6
| 0x08043c88 0584 strh r5, [r0, 0x20]
| 0x08043c8a 058c ldrh r5, [r0, 0x20]
| 0x08043c8c 2c00 movs r4, r5
| 0x08043c8e 8588 ldrh r5, [r0, 4]
| 0x08043c90 2a00 movs r2, r5
| 0x08043c92 858b ldrh r5, [r0, 0x1c]
| 0x08043c94 2b00 movs r3, r5
| 0x08043c96 48f6ff75 movw r5, 0x8fff
| 0x08043c9a 2b40 ands r3, r5
| 0x08043c9c 4ff6ff45 movw r5, 0xfcff
| 0x08043ca0 2b40 ands r3, r5
| 0x08043ca2 0d88 ldrh r5, [r1]
| 0x08043ca4 53ea0523 orrs.w r3, r3, r5, lsl 8
| 0x08043ca8 4df6ff75 movw r5, 0xdfff
| 0x08043cac 2c40 ands r4, r5
| 0x08043cae 8d89 ldrh r5, [r1, 0xc]
| 0x08043cb0 54ea0534 orrs.w r4, r4, r5, lsl 12
| 0x08043cb4 4d88 ldrh r5, [r1, 2]
| 0x08043cb6 54ea0534 orrs.w r4, r4, r5, lsl 12
| 0x08043cba 0a4d ldr r5, [0x08043ce6] ; [0x8043ce4:4]=0x40010000 io_TIM1
| 0x08043cbc a842 cmp r0, r5
| ,=< 0x08043cbe 02d0 beq 0x8043cc6
| | 0x08043cc0 0e4d ldr r5, [0x08043cfc] ; [0x8043cfc:4]=0x40010400 io_TIM8
| | 0x08043cc2 a842 cmp r0, r5
| ,==< 0x08043cc4 05d1 bne 0x8043cd2
| |`-> 0x08043cc6 4bf6ff75 movw r5, 0xbfff
| | 0x08043cca 2a40 ands r2, r5
| | 0x08043ccc 0d8a ldrh r5, [r1, 0x10]
| | 0x08043cce 52ea8512 orrs.w r2, r2, r5, lsl 6
| `--> 0x08043cd2 8280 strh r2, [r0, 4]
| 0x08043cd4 8383 strh r3, [r0, 0x1c]
| 0x08043cd6 8968 ldr r1, [r1, 8]
| 0x08043cd8 0164 str r1, [r0, 0x40]
| 0x08043cda 0484 strh r4, [r0, 0x20]
| 0x08043cdc 70bc pop {r4, r5, r6}
\ 0x08043cde 7047 bx lr
/ (fcn) TIM_ITConfig 24
| Caller: SomethingWithTIM7_RadioStatus1 bp_tone_on func_49ca8 TIM6_DAC_IRQHandler
| EXTI2_IRQHandler func_47312 TimerIRQ_Sub4 func_47ab6 TIM4_IRQHandler
| bp_tone_off Something2_TIM7_RadioStatus1 TimerIRQ_Sub1 SomethingWithGPIOC_TIM7_Status
| TIM_ITConfig ();
| 0x08043d84 d2b2 uxtb r2, r2 ; in: R0= TIMx base address
| 0x08043d86 002a cmp r2, 0 ; in: R2= 'NewState' (enable,disable)
| 0x08043d88 03d0 beq 0x8043d92
| 0x08043d8a 8289 ldrh r2, [r0, 0xc] ; [R0+0xC] = TIMx DMA/Interrupt enable register
| 0x08043d8c 1143 orrs r1, r2 ; in: R1= timer interrupt sources, 1=UIE, etc
| 0x08043d8e 8181 strh r1, [r0, 0xc]
| ,=< 0x08043d90 03e0 b 0x8043d9a
| | 0x08043d92 8289 ldrh r2, [r0, 0xc]
| | 0x08043d94 32ea0101 bics.w r1, r2, r1
| | 0x08043d98 8181 strh r1, [r0, 0xc]
\ `-> 0x08043d9a 7047 bx lr
/ (fcn) TimerIRQ_Sub5 46
| Caller: TIM3_IRQHandler TIM2_IRQHandler
| TimerIRQ_Sub5 ();
| 0x08043d9c 30b4 push {r4, r5}
| 0x08043d9e 0022 movs r2, 0
| 0x08043da0 0023 movs r3, 0
| 0x08043da2 0024 movs r4, 0
| 0x08043da4 058a ldrh r5, [r0, 0x10]
| 0x08043da6 0d40 ands r5, r1
| 0x08043da8 2b00 movs r3, r5
| 0x08043daa 8089 ldrh r0, [r0, 0xc]
| 0x08043dac 0840 ands r0, r1
| 0x08043dae 0400 movs r4, r0
| 0x08043db0 9bb2 uxth r3, r3
| 0x08043db2 002b cmp r3, 0
| ,=< 0x08043db4 04d0 beq 0x8043dc0
| | 0x08043db6 a4b2 uxth r4, r4
| | 0x08043db8 002c cmp r4, 0
| ,==< 0x08043dba 01d0 beq 0x8043dc0
| || 0x08043dbc 0122 movs r2, 1 ; 1
| ,===< 0x08043dbe 00e0 b 0x8043dc2
| |``-> 0x08043dc0 0022 movs r2, 0
| `---> 0x08043dc2 1000 movs r0, r2
| 0x08043dc4 c0b2 uxtb r0, r0
| 0x08043dc6 30bc pop {r4, r5}
\ 0x08043dc8 7047 bx lr
/ (fcn) TimerIRQ_Sub9 76
| Caller: TIM7_DAC_IRQHandler
| TimerIRQ_Sub9 ();
| 0x0803f2c8 80b5 push {r7, lr}
| 0x0803f2ca dff8b803 ldr.w r0, [0x0803f68a] ; [0x803f688:4]=0x2001e590
| 0x0803f2ce 0078 ldrb r0, [r0]
| 0x0803f2d0 dff8b413 ldr.w r1, [0x0803f68c] ; [0x803f68c:4]=0x8095ba0
| 0x0803f2d4 8978 ldrb r1, [r1, 2]
| 0x0803f2d6 dff8b423 ldr.w r2, [0x0803f692] ; [0x803f690:4]=0x8095ca0
| 0x0803f2da 895c ldrb r1, [r1, r2]
| 0x0803f2dc 4843 muls r0, r1, r0
| 0x0803f2de 4ff48071 mov.w r1, 0x100 ; 256
| 0x0803f2e2 90fbf1f0 sdiv r0, r0, r1
| 0x0803f2e6 dff89c13 ldr.w r1, [0x0803f68a] ; [0x803f688:4]=0x2001e590
| 0x0803f2ea 0978 ldrb r1, [r1]
| 0x0803f2ec dff8a023 ldr.w r2, [0x0803f694] ; [0x803f694:4]=0x40010400 io_TIM8
| 0x0803f2f0 895c ldrb r1, [r1, r2]
| 0x0803f2f2 4118 adds r1, r0, r1
| 0x0803f2f4 89b2 uxth r1, r1
| 0x0803f2f6 dff89c03 ldr.w r0, [0x0803f69a] ; [0x803f698:4]=0x2001e58c
| 0x0803f2fa 04f012fd bl func_43d22
| 0x0803f2fe dff88803 ldr.w r0, [0x0803f68e] ; [0x803f68c:4]=0x8095ba0
| 0x0803f302 0068 ldr r0, [r0]
| 0x0803f304 dff89013 ldr.w r1, [0x0803f69c] ; [0x803f69c:4]=0x2001de78 struct_channel_info2
| 0x0803f308 0968 ldr r1, [r1]
| 0x0803f30a 0818 adds r0, r1, r0
| 0x0803f30c dff87813 ldr.w r1, [0x0803f68c] ; [0x803f68c:4]=0x8095ba0
| 0x0803f310 0860 str r0, [r1]
\ 0x0803f312 01bd pop {r0, pc}
/ (fcn) SomethingWithRadioStatus1 338
| Caller: TIM7_DAC_IRQHandler
| SomethingWithRadioStatus1 ();
| 0x0803f34e 80b5 push {r7, lr}
| 0x0803f350 dff83003 ldr.w r0, [0x0803f688] ; [0x803f688:4]=0x2001e590
| 0x0803f354 0078 ldrb r0, [r0]
| 0x0803f356 dff84c13 ldr.w r1, [0x0803f6aa] ; [0x803f6a8:4]=0x2001e869
| 0x0803f35a 0978 ldrb r1, [r1]
| 0x0803f35c 4843 muls r0, r1, r0
| 0x0803f35e 4ff48071 mov.w r1, 0x100 ; 256
| 0x0803f362 90fbf1f0 sdiv r0, r0, r1
| 0x0803f366 c749 ldr r1, [0x0803f686] ; [0x803f684:4]=0x2001e89b
| 0x0803f368 0978 ldrb r1, [r1]
| 0x0803f36a c94a ldr r2, [0x0803f692] ; [0x803f690:4]=0x8095ca0
| 0x0803f36c 895c ldrb r1, [r1, r2]
| 0x0803f36e 4118 adds r1, r0, r1
| 0x0803f370 89b2 uxth r1, r1
| 0x0803f372 c848 ldr r0, [0x0803f696] ; [0x803f694:4]=0x40010400 io_TIM8
| 0x0803f374 04f0d5fc bl func_43d22
| 0x0803f378 dff82c03 ldr.w r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f37c 0078 ldrb r0, [r0]
| 0x0803f37e 401e subs r0, r0, 1
| 0x0803f380 c949 ldr r1, [0x0803f6a8] ; [0x803f6a8:4]=0x2001e869
| 0x0803f382 0870 strb r0, [r1]
| 0x0803f384 c948 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f386 0078 ldrb r0, [r0]
| 0x0803f388 c0f3c000 ubfx r0, r0, 3, 1
| 0x0803f38c c007 lsls r0, r0, 0x1f
| ,=< 0x0803f38e 25d5 bpl 0x803f3dc
| | 0x0803f390 c548 ldr r0, [0x0803f6a8] ; [0x803f6a8:4]=0x2001e869
| | 0x0803f392 0078 ldrb r0, [r0]
| | 0x0803f394 1328 cmp r0, 0x13 ; 19
| ,==< 0x0803f396 0dd3 blo 0x803f3b4
| || 0x0803f398 c548 ldr r0, [0x0803f6b0] ; [0x803f6b0:4]=0x2001e79c
| || 0x0803f39a 0088 ldrh r0, [r0]
| || 0x0803f39c 00f29240 addw r0, r0, 0x492
| || 0x0803f3a0 c349 ldr r1, [0x0803f6b0] ; [0x803f6b0:4]=0x2001e79c
| || 0x0803f3a2 0880 strh r0, [r1]
| || 0x0803f3a4 c248 ldr r0, [0x0803f6b0] ; [0x803f6b0:4]=0x2001e79c
| || 0x0803f3a6 0088 ldrh r0, [r0]
| || 0x0803f3a8 0012 asrs r0, r0, 8
| || 0x0803f3aa b849 ldr r1, [0x0803f68e] ; [0x803f68c:4]=0x8095ba0
| || 0x0803f3ac 405c ldrb r0, [r0, r1]
| || 0x0803f3ae bd49 ldr r1, [0x0803f6a6] ; [0x803f6a4:4]=0x2001e86b
| || 0x0803f3b0 0870 strb r0, [r1]
| ,===< 0x0803f3b2 74e0 b 0x803f49e
| |`--> 0x0803f3b4 bd48 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| | | 0x0803f3b6 0078 ldrb r0, [r0]
| | | 0x0803f3b8 10f0f700 ands r0, r0, 0xf7
| | | 0x0803f3bc bb49 ldr r1, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| | | 0x0803f3be 0870 strb r0, [r1]
| | | 0x0803f3c0 ba48 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| | | 0x0803f3c2 0078 ldrb r0, [r0]
| | | 0x0803f3c4 c0f30010 ubfx r0, r0, 4, 1
| | | 0x0803f3c8 c007 lsls r0, r0, 0x1f
| |,==< 0x0803f3ca 03d5 bpl 0x803f3d4
| ||| 0x0803f3cc b548 ldr r0, [0x0803f6a4] ; [0x803f6a4:4]=0x2001e86b
| ||| 0x0803f3ce ff21 movs r1, 0xff ; 255
| ||| 0x0803f3d0 0170 strb r1, [r0]
| ,====< 0x0803f3d2 64e0 b 0x803f49e
| ||`--> 0x0803f3d4 b348 ldr r0, [0x0803f6a4] ; [0x803f6a4:4]=0x2001e86b
| || | 0x0803f3d6 0021 movs r1, 0
| || | 0x0803f3d8 0170 strb r1, [r0]
| ||,==< 0x0803f3da 60e0 b 0x803f49e
| |||`-> 0x0803f3dc b248 ldr r0, [0x0803f6a8] ; [0x803f6a8:4]=0x2001e869
| ||| 0x0803f3de 0078 ldrb r0, [r0]
| ||| 0x0803f3e0 0028 cmp r0, 0
| |||,=< 0x0803f3e2 5cd1 bne 0x803f49e
| |||| 0x0803f3e4 b148 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| |||| 0x0803f3e6 0078 ldrb r0, [r0]
| |||| 0x0803f3e8 c0f30010 ubfx r0, r0, 4, 1
| |||| 0x0803f3ec 10f00100 ands r0, r0, 1
| |||| 0x0803f3f0 ae49 ldr r1, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| |||| 0x0803f3f2 0978 ldrb r1, [r1]
| |||| 0x0803f3f4 c1f34011 ubfx r1, r1, 5, 1
| |||| 0x0803f3f8 11f00101 ands r1, r1, 1
| |||| 0x0803f3fc 8842 cmp r0, r1
| ,=====< 0x0803f3fe 1bd0 beq 0x803f438
| ||||| 0x0803f400 aa48 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| ||||| 0x0803f402 0078 ldrb r0, [r0]
| ||||| 0x0803f404 50f00800 orrs r0, r0, 8
| ||||| 0x0803f408 a849 ldr r1, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| ||||| 0x0803f40a 0870 strb r0, [r1]
| ||||| 0x0803f40c a748 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| ||||| 0x0803f40e 0078 ldrb r0, [r0]
| ||||| 0x0803f410 c0f34010 ubfx r0, r0, 5, 1
| ||||| 0x0803f414 c007 lsls r0, r0, 0x1f
| ,======< 0x0803f416 04d5 bpl 0x803f422
| |||||| 0x0803f418 a548 ldr r0, [0x0803f6b0] ; [0x803f6b0:4]=0x2001e79c
| |||||| 0x0803f41a 4cf2ab01 movw r1, 0xc0ab
| |||||| 0x0803f41e 0180 strh r1, [r0]
| ,=======< 0x0803f420 03e0 b 0x803f42a
| |`------> 0x0803f422 a348 ldr r0, [0x0803f6b2] ; [0x803f6b0:4]=0x2001e79c
| | ||||| 0x0803f424 44f2ab21 movw r1, 0x42ab
| | ||||| 0x0803f428 0180 strh r1, [r0]
| `-------> 0x0803f42a a148 ldr r0, [0x0803f6b2] ; [0x803f6b0:4]=0x2001e79c
| ||||| 0x0803f42c 0088 ldrh r0, [r0]
| ||||| 0x0803f42e 0012 asrs r0, r0, 8
| ||||| 0x0803f430 9649 ldr r1, [0x0803f68c] ; [0x803f68c:4]=0x8095ba0
| ||||| 0x0803f432 405c ldrb r0, [r0, r1]
| ||||| 0x0803f434 9b49 ldr r1, [0x0803f6a4] ; [0x803f6a4:4]=0x2001e86b
| ||||| 0x0803f436 0870 strb r0, [r1]
| `-----> 0x0803f438 9c48 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| |||| 0x0803f43a 0078 ldrb r0, [r0]
| |||| 0x0803f43c c0b2 uxtb r0, r0
| |||| 0x0803f43e 4009 lsrs r0, r0, 5
| |||| 0x0803f440 9a49 ldr r1, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| |||| 0x0803f442 0978 ldrb r1, [r1]
| |||| 0x0803f444 60f30411 bfi r1, r0, 4, 1
| |||| 0x0803f448 9848 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| |||| 0x0803f44a 0170 strb r1, [r0]
| |||| 0x0803f44c 9648 ldr r0, [0x0803f6a8] ; [0x803f6a8:4]=0x2001e869
| |||| 0x0803f44e 2e21 movs r1, 0x2e ; '.' ; 46
| |||| 0x0803f450 0170 strb r1, [r0]
| |||| 0x0803f452 9848 ldr r0, [0x0803f6b6] ; [0x803f6b4:4]=0x2001e86a
| |||| 0x0803f454 0078 ldrb r0, [r0]
| |||| 0x0803f456 401e subs r0, r0, 1
| |||| 0x0803f458 9649 ldr r1, [0x0803f6b4] ; [0x803f6b4:4]=0x2001e86a
| |||| 0x0803f45a 0870 strb r0, [r1]
| |||| 0x0803f45c 9548 ldr r0, [0x0803f6b4] ; [0x803f6b4:4]=0x2001e86a
| |||| 0x0803f45e 0078 ldrb r0, [r0]
| |||| 0x0803f460 0028 cmp r0, 0
| ,=====< 0x0803f462 06d1 bne 0x803f472
| ||||| 0x0803f464 9348 ldr r0, [0x0803f6b4] ; [0x803f6b4:4]=0x2001e86a
| ||||| 0x0803f466 1721 movs r1, 0x17 ; 23
| ||||| 0x0803f468 0170 strb r1, [r0]
| ||||| 0x0803f46a 9348 ldr r0, [0x0803f6ba] ; [0x803f6b8:4]=0x2001e594
| ||||| 0x0803f46c 8c49 ldr r1, [0x0803f6a0] ; [0x803f6a0:4]=0x2001e5d4
| ||||| 0x0803f46e 0968 ldr r1, [r1]
| ||||| 0x0803f470 0160 str r1, [r0]
| `-----> 0x0803f472 9148 ldr r0, [0x0803f6ba] ; [0x803f6b8:4]=0x2001e594
| |||| 0x0803f474 0078 ldrb r0, [r0]
| |||| 0x0803f476 c007 lsls r0, r0, 0x1f
| ,=====< 0x0803f478 06d5 bpl 0x803f488
| ||||| 0x0803f47a 8c48 ldr r0, [0x0803f6ae] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| ||||| 0x0803f47c 0078 ldrb r0, [r0]
| ||||| 0x0803f47e 50f02000 orrs r0, r0, 0x20
| ||||| 0x0803f482 8a49 ldr r1, [0x0803f6ae] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| ||||| 0x0803f484 0870 strb r0, [r1]
| ,======< 0x0803f486 05e0 b 0x803f494
| |`-----> 0x0803f488 8848 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| | |||| 0x0803f48a 0078 ldrb r0, [r0]
| | |||| 0x0803f48c 10f0df00 ands r0, r0, 0xdf
| | |||| 0x0803f490 8649 ldr r1, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| | |||| 0x0803f492 0870 strb r0, [r1]
| `------> 0x0803f494 8848 ldr r0, [0x0803f6b8] ; [0x803f6b8:4]=0x2001e594
| |||| 0x0803f496 0068 ldr r0, [r0]
| |||| 0x0803f498 4008 lsrs r0, r0, 1
| |||| 0x0803f49a 8749 ldr r1, [0x0803f6ba] ; [0x803f6b8:4]=0x2001e594
| |||| 0x0803f49c 0860 str r0, [r1]
\ ````-> 0x0803f49e 01bd pop {r0, pc}
/ (fcn) SomeBitFiddling 90
| Caller: func_4d908 func_3f32e
| SomeBitFiddling ();
| 0x0803f4a0 10b4 push {r4}
| 0x0803f4a2 0100 movs r1, r0
| 0x0803f4a4 0020 movs r0, 0
| 0x0803f4a6 11f00702 ands r2, r1, 7
| 0x0803f4aa 89b2 uxth r1, r1
| 0x0803f4ac 4b08 lsrs r3, r1, 1
| 0x0803f4ae 13f03803 ands r3, r3, 0x38
| 0x0803f4b2 1a43 orrs r2, r3
| 0x0803f4b4 89b2 uxth r1, r1
| 0x0803f4b6 8b08 lsrs r3, r1, 2
| 0x0803f4b8 13f4e073 ands r3, r3, 0x1c0
| 0x0803f4bc 1a43 orrs r2, r3
| 0x0803f4be 52f40062 orrs r2, r2, 0x800
| 0x0803f4c2 4904 lsls r1, r1, 0x11
| ,=< 0x0803f4c4 02d5 bpl 0x803f4cc
| | 0x0803f4c6 d143 mvns r1, r2
| | 0x0803f4c8 0a05 lsls r2, r1, 0x14
| | 0x0803f4ca 120d lsrs r2, r2, 0x14
| `-> 0x0803f4cc 1300 movs r3, r2
| 0x0803f4ce 0c21 movs r1, 0xc ; 12
| ,=< 0x0803f4d0 0be0 b 0x803f4ea
| .--> 0x0803f4d2 dc07 lsls r4, r3, 0x1f
| ,===< 0x0803f4d4 06d5 bpl 0x803f4e4
| ||| 0x0803f4d6 49b2 sxtb r1, r1
| ||| 0x0803f4d8 784c ldr r4, [0x0803f6bc] ; [0x803f6bc:4]=0x80d0044
| ||| 0x0803f4da 14eb4104 adds.w r4, r4, r1, lsl 1
| ||| 0x0803f4de 34f8024c ldrh r4, [r4, -0x2]
| ||| 0x0803f4e2 6040 eors r0, r4
| `---> 0x0803f4e4 9bb2 uxth r3, r3
| || 0x0803f4e6 5b08 lsrs r3, r3, 1
| || 0x0803f4e8 491e subs r1, r1, 1
| |`-> 0x0803f4ea 49b2 sxtb r1, r1
| | 0x0803f4ec 0129 cmp r1, 1 ; 1
| `==< 0x0803f4ee f0da bge 0x803f4d2
| 0x0803f4f0 0003 lsls r0, r0, 0xc
| 0x0803f4f2 10fa82f0 uxtah r0, r0, r2
| 0x0803f4f6 10bc pop {r4}
\ 0x0803f4f8 7047 bx lr
/ (fcn) SomethingWithGPIOC_TIM8_TIM7 100
| Caller: func_3f314 func_3f32e
| SomethingWithGPIOC_TIM8_TIM7 ();
| 0x0803f4fa 00b5 push {lr}
| 0x0803f4fc 85b0 sub sp, 0x14
| 0x0803f4fe 8020 movs r0, 0x80 ; 128
| 0x0803f500 0090 str r0, [sp]
| 0x0803f502 0220 movs r0, 2 ; 2
| 0x0803f504 8df80500 strb.w r0, [sp, 5]
| 0x0803f508 0220 movs r0, 2 ; 2
| 0x0803f50a 8df80400 strb.w r0, [sp, 4]
| 0x0803f50e 0020 movs r0, 0
| 0x0803f510 8df80600 strb.w r0, [sp, 6]
| 0x0803f514 0020 movs r0, 0
| 0x0803f516 8df80700 strb.w r0, [sp, 7]
| 0x0803f51a 00a9 add r1, sp, 0
| 0x0803f51c 6848 ldr r0, [0x0803f6c0] ; [0x803f6c0:4]=0x40020800 io_GPIOC
| 0x0803f51e ecf713f9 bl GPIO_Init
| 0x0803f522 0322 movs r2, 3 ; 3
| 0x0803f524 0721 movs r1, 7 ; 7
| 0x0803f526 6648 ldr r0, [0x0803f6c2] ; [0x803f6c0:4]=0x40020800 io_GPIOC
| 0x0803f528 ecf77af9 bl GPIO_PinAFConfig
| 0x0803f52c 0121 movs r1, 1 ; 1
| 0x0803f52e 5948 ldr r0, [0x0803f696] ; [0x803f694:4]=0x40010400 io_TIM8
| 0x0803f530 04f017fc bl func_43d62
| 0x0803f534 0520 movs r0, 5 ; 5
| 0x0803f536 adf80800 strh.w r0, [sp, 8]
| 0x0803f53a 0020 movs r0, 0
| 0x0803f53c adf80a00 strh.w r0, [sp, 0xa]
| 0x0803f540 40f29470 movw r0, 0x794 ; 1940
| 0x0803f544 0390 str r0, [sp, 0xc]
| 0x0803f546 0020 movs r0, 0
| 0x0803f548 adf81000 strh.w r0, [sp, 0x10]
| 0x0803f54c 0020 movs r0, 0
| 0x0803f54e 8df81200 strb.w r0, [sp, 0x12]
| 0x0803f552 02a9 add r1, sp, 8
| 0x0803f554 5b48 ldr r0, [0x0803f6c4] ; [0x803f6c4:4]=0x40001400 io_TIM7
| 0x0803f556 04f05ffa bl func_43a18
| 0x0803f55a 05b0 add sp, 0x14
\ 0x0803f55c 00bd pop {pc}
/ (fcn) SomethingWithTIM7_RadioStatus1 74
| Caller: func_3f314 func_3f5cc
| SomethingWithTIM7_RadioStatus1 ();
| 0x0803f55e 10b5 push {r4, lr}
| 0x0803f560 0400 movs r4, r0
| 0x0803f562 40f22671 movw r1, 0x726 ; 1830
| 0x0803f566 89b2 uxth r1, r1
| 0x0803f568 5648 ldr r0, [0x0803f6c4] ; [0x803f6c4:4]=0x40001400 io_TIM7
| 0x0803f56a 04f09bfa bl TIM_SetAutoreload
| 0x0803f56e a4b2 uxth r4, r4
| 0x0803f570 4ff48070 mov.w r0, 0x100 ; 256
| 0x0803f574 00fb04f0 mul r0, r0, r4
| 0x0803f578 4749 ldr r1, [0x0803f698] ; [0x803f698:4]=0x2001e58c
| 0x0803f57a 0860 str r0, [r1]
| 0x0803f57c 4b48 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f57e 0078 ldrb r0, [r0]
| 0x0803f580 10f0fb00 ands r0, r0, 0xfb
| 0x0803f584 4949 ldr r1, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f586 0870 strb r0, [r1]
| 0x0803f588 4848 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f58a 0078 ldrb r0, [r0]
| 0x0803f58c 50f00200 orrs r0, r0, 2
| 0x0803f590 4649 ldr r1, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f592 0870 strb r0, [r1]
| 0x0803f594 0122 movs r2, 1 ; 1
| 0x0803f596 0121 movs r1, 1 ; 1
| 0x0803f598 4a48 ldr r0, [0x0803f6c4] ; [0x803f6c4:4]=0x40001400 io_TIM7
| 0x0803f59a 04f0f3fb bl TIM_ITConfig
| 0x0803f59e 0121 movs r1, 1 ; 1
| 0x0803f5a0 4848 ldr r0, [0x0803f6c4] ; [0x803f6c4:4]=0x40001400 io_TIM7
| 0x0803f5a2 04f091fa bl TIM_EnableOrDisableCounter
\ 0x0803f5a6 10bd pop {r4, pc}
/ (fcn) SomethingWithTIM7_ChannelInfo2 36
| Caller: c5000_wr_60_4
| SomethingWithTIM7_ChannelInfo2 ();
| 0x0803f5a8 3c48 ldr r0, [0x0803f69c] ; [0x803f69c:4]=0x2001de78 struct_channel_info2
| 0x0803f5aa 0079 ldrb r0, [r0, 4]
| 0x0803f5ac c0f3c000 ubfx r0, r0, 3, 1
| 0x0803f5b0 c007 lsls r0, r0, 0x1f
| ,=< 0x0803f5b2 05d5 bpl 0x803f5c0
| | 0x0803f5b4 3448 ldr r0, [0x0803f688] ; [0x803f688:4]=0x2001e590
| | 0x0803f5b6 4088 ldrh r0, [r0, 2]
| | 0x0803f5b8 ab30 adds r0, 0xab
| | 0x0803f5ba 3349 ldr r1, [0x0803f68a] ; [0x803f688:4]=0x2001e590
| | 0x0803f5bc 4880 strh r0, [r1, 2]
| ,==< 0x0803f5be 04e0 b 0x803f5ca
| |`-> 0x0803f5c0 3148 ldr r0, [0x0803f688] ; [0x803f688:4]=0x2001e590
| | 0x0803f5c2 4088 ldrh r0, [r0, 2]
| | 0x0803f5c4 8030 adds r0, 0x80
| | 0x0803f5c6 3049 ldr r1, [0x0803f68a] ; [0x803f688:4]=0x2001e590
| | 0x0803f5c8 4880 strh r0, [r1, 2]
\ `--> 0x0803f5ca 7047 bx lr
/ (fcn) Something2_TIM7_RadioStatus1 70
| Caller: func_3f32e
| Something2_TIM7_RadioStatus1 ();
| 0x0803f5e0 80b5 push {r7, lr}
| 0x0803f5e2 40f29471 movw r1, 0x794 ; 1940
| 0x0803f5e6 89b2 uxth r1, r1
| 0x0803f5e8 3648 ldr r0, [0x0803f6c4] ; [0x803f6c4:4]=0x40001400 io_TIM7
| 0x0803f5ea 04f05bfa bl TIM_SetAutoreload
| 0x0803f5ee 2e48 ldr r0, [0x0803f6aa] ; [0x803f6a8:4]=0x2001e869
| 0x0803f5f0 2e21 movs r1, 0x2e ; '.' ; 46
| 0x0803f5f2 0170 strb r1, [r0]
| 0x0803f5f4 2f48 ldr r0, [0x0803f6b4] ; [0x803f6b4:4]=0x2001e86a
| 0x0803f5f6 0121 movs r1, 1 ; 1
| 0x0803f5f8 0170 strb r1, [r0]
| 0x0803f5fa 2c48 ldr r0, [0x0803f6ae] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f5fc 0078 ldrb r0, [r0]
| 0x0803f5fe 10f0fd00 ands r0, r0, 0xfd
| 0x0803f602 2a49 ldr r1, [0x0803f6ae] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f604 0870 strb r0, [r1]
| 0x0803f606 2948 ldr r0, [0x0803f6ae] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f608 0078 ldrb r0, [r0]
| 0x0803f60a 50f00400 orrs r0, r0, 4
| 0x0803f60e 2749 ldr r1, [0x0803f6ae] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f610 0870 strb r0, [r1]
| 0x0803f612 0122 movs r2, 1 ; 1
| 0x0803f614 0121 movs r1, 1 ; 1
| 0x0803f616 2b48 ldr r0, [0x0803f6c6] ; [0x803f6c4:4]=0x40001400 io_TIM7
| 0x0803f618 04f0b4fb bl TIM_ITConfig
| 0x0803f61c 0121 movs r1, 1 ; 1
| 0x0803f61e 2948 ldr r0, [0x0803f6c6] ; [0x803f6c4:4]=0x40001400 io_TIM7
| 0x0803f620 04f052fa bl TIM_EnableOrDisableCounter
\ 0x0803f624 01bd pop {r0, pc}
/ (fcn) SomethingWithGPIOC_TIM7_Status 92
| Caller: Start c5000_wr_60_4 c5000_some3
| SomethingWithGPIOC_TIM7_Status ();
| 0x0803f626 00b5 push {lr}
| 0x0803f628 83b0 sub sp, 0xc
| 0x0803f62a 8020 movs r0, 0x80 ; 128
| 0x0803f62c 0090 str r0, [sp]
| 0x0803f62e 0220 movs r0, 2 ; 2
| 0x0803f630 8df80500 strb.w r0, [sp, 5]
| 0x0803f634 0120 movs r0, 1 ; 1
| 0x0803f636 8df80400 strb.w r0, [sp, 4]
| 0x0803f63a 0120 movs r0, 1 ; 1
| 0x0803f63c 8df80600 strb.w r0, [sp, 6]
| 0x0803f640 0020 movs r0, 0
| 0x0803f642 8df80700 strb.w r0, [sp, 7]
| 0x0803f646 00a9 add r1, sp, 0
| 0x0803f648 1d48 ldr r0, [0x0803f6c0] ; [0x803f6c0:4]=0x40020800 io_GPIOC
| 0x0803f64a ecf77df8 bl GPIO_Init
| 0x0803f64e 8021 movs r1, 0x80 ; 128
| 0x0803f650 1b48 ldr r0, [0x0803f6c0] ; [0x803f6c0:4]=0x40020800 io_GPIOC
| 0x0803f652 ecf7daf8 bl GPIO_SetBits
| 0x0803f656 0022 movs r2, 0
| 0x0803f658 0121 movs r1, 1 ; 1
| 0x0803f65a 1a48 ldr r0, [0x0803f6c6] ; [0x803f6c4:4]=0x40001400 io_TIM7
| 0x0803f65c 04f092fb bl TIM_ITConfig
| 0x0803f660 0021 movs r1, 0
| 0x0803f662 1848 ldr r0, [0x0803f6c6] ; [0x803f6c4:4]=0x40001400 io_TIM7
| 0x0803f664 04f030fa bl TIM_EnableOrDisableCounter
| 0x0803f668 1048 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f66a 0078 ldrb r0, [r0]
| 0x0803f66c 10f0fb00 ands r0, r0, 0xfb
| 0x0803f670 0e49 ldr r1, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f672 0870 strb r0, [r1]
| 0x0803f674 0d48 ldr r0, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f676 0078 ldrb r0, [r0]
| 0x0803f678 10f0fd00 ands r0, r0, 0xfd
| 0x0803f67c 0b49 ldr r1, [0x0803f6ac] ; [0x803f6ac:4]=0x2001e5f0 radio_status_1
| 0x0803f67e 0870 strb r0, [r1]
\ 0x0803f680 07bd pop {r0, r1, r2, pc}
/ (fcn) func_0db88 342
| Caller: kb_enter_alpha
| func_0db88 ();
| 0x0800db88 1fb5 push {r0, r1, r2, r3, r4, lr}
| 0x0800db8a dff8800b ldr.w r0, [0x0800e712] ; [0x800e710:4]=0x2001e5f0 radio_status_1
| 0x0800db8e 0078 ldrb r0, [r0]
| 0x0800db90 0228 cmp r0, 2 ; 2
| ,=< 0x0800db92 0ed0 beq 0x800dbb2
| | 0x0800db94 dff8740b ldr.w r0, [0x0800e710] ; [0x800e710:4]=0x2001e5f0 radio_status_1
| | 0x0800db98 0078 ldrb r0, [r0]
| | 0x0800db9a 0428 cmp r0, 4 ; 4
| ,==< 0x0800db9c 09d0 beq 0x800dbb2
| || 0x0800db9e dff8e806 ldr.w r0, [0x0800e28e] ; [0x800e28c:4]=0x2001dadc md380_radio_config
| || 0x0800dba2 0078 ldrb r0, [r0]
| || 0x0800dba4 0128 cmp r0, 1 ; 1
| ,===< 0x0800dba6 04d0 beq 0x800dbb2
| ||| 0x0800dba8 dff8640b ldr.w r0, [0x0800e714] ; [0x800e714:4]=0x2001de78 struct_channel_info2
| ||| 0x0800dbac 4078 ldrb r0, [r0, 1]
| ||| 0x0800dbae c007 lsls r0, r0, 0x1f
| ,====< 0x0800dbb0 00d5 bpl 0x800dbb4
| ,=```-> 0x0800dbb2 93e0 b 0x800dcdc
| |`----> 0x0800dbb4 dff85c0b ldr.w r0, [0x0800e718] ; [0x800e718:4]=0x2001e81c not_the_volume_knob
| | 0x0800dbb8 c078 ldrb r0, [r0, 3]
| | 0x0800dbba 0006 lsls r0, r0, 0x18
| | ,=< 0x0800dbbc 07d4 bmi 0x800dbce
| | | 0x0800dbbe dff87409 ldr.w r0, [0x0800e53a] ; [0x800e538:4]=0xb082b510
| | | 0x0800dbc2 0078 ldrb r0, [r0]
| | | 0x0800dbc4 c0f34010 ubfx r0, r0, 5, 1
| | | 0x0800dbc8 c007 lsls r0, r0, 0x1f
| | ,==< 0x0800dbca 00f18780 bmi.w 0x800dcdc
| | |`-> 0x0800dbce dff85409 ldr.w r0, [0x0800e52a] ; [0x800e528:4]=0x2001e6fc
| | | 0x0800dbd2 0078 ldrb r0, [r0]
| | | 0x0800dbd4 1028 cmp r0, 0x10 ; 16
| | |,=< 0x0800dbd6 c0f08180 blo.w 0x800dcdc
| | || 0x0800dbda dff84809 ldr.w r0, [0x0800e52a] ; [0x800e528:4]=0x2001e6fc
| | || 0x0800dbde 0078 ldrb r0, [r0]
| | || 0x0800dbe0 fe28 cmp r0, 0xfe ; 254
| | ,===< 0x0800dbe2 7ad0 beq 0x800dcda
| | ||| 0x0800dbe4 dff8240b ldr.w r0, [0x0800e710] ; [0x800e710:4]=0x2001e5f0 radio_status_1
| | ||| 0x0800dbe8 0078 ldrb r0, [r0]
| | ||| 0x0800dbea 0128 cmp r0, 1 ; 1
| |,====< 0x0800dbec 75d1 bne 0x800dcda
| ||||| 0x0800dbee dff83409 ldr.w r0, [0x0800e52a] ; [0x800e528:4]=0x2001e6fc
| ||||| 0x0800dbf2 0021 movs r1, 0
| ||||| 0x0800dbf4 0170 strb r1, [r0]
| ||||| 0x0800dbf6 7ff07f40 mvns r0, 0xff000000
| ||||| 0x0800dbfa 0ff0b9fb bl gfx_set_fg_color
| ||||| 0x0800dbfe 1123 movs r3, 0x11 ; 17
| ||||| 0x0800dc00 a022 movs r2, 0xa0 ; 160
| ||||| 0x0800dc02 0021 movs r1, 0
| ||||| 0x0800dc04 0020 movs r0, 0
| ||||| 0x0800dc06 0ff041fe bl gfx_blockfill
| ||||| 0x0800dc0a dff80c09 ldr.w r0, [0x0800e51e] ; [0x800e51c:4]=32
| ||||| 0x0800dc0e 0ff0affb bl gfx_set_fg_color
| ||||| 0x0800dc12 00f06bf8 bl func_0dcec
| ||||| 0x0800dc16 dff87c07 ldr.w r0, [0x0800e39a] ; [0x800e398:4]=0x41f0e92d
| ||||| 0x0800dc1a 0068 ldr r0, [r0]
| ||||| 0x0800dc1c dff80019 ldr.w r1, [0x0800e524] ; [0x800e524:4]=0x20004acc md380_menu_depth
| ||||| 0x0800dc20 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||| 0x0800dc24 d0f81c13 ldr.w r1, [r0, 0x31c]
| ||||| 0x0800dc28 dff8ec0a ldr.w r0, [0x0800e71c] ; [0x800e71c:4]=0x2001e81e
| ||||| 0x0800dc2c b0f90000 ldrsh.w r0, [r0]
| ||||| 0x0800dc30 1af005f9 bl func_27e3e
| ||||| 0x0800dc34 9f22 movs r2, 0x9f ; 159
| ||||| 0x0800dc36 1221 movs r1, 0x12 ; 18
| ||||| 0x0800dc38 0020 movs r0, 0
| ||||| 0x0800dc3a 0ff0eefd bl gfx_linefill
| ||||| 0x0800dc3e dff8e808 ldr.w r0, [0x0800e52e] ; [0x800e52c:4]=0x2001e908
| ||||| 0x0800dc42 0068 ldr r0, [r0]
| ||||| 0x0800dc44 0121 movs r1, 1 ; 1
| ||||| 0x0800dc46 0174 strb r1, [r0, 0x10]
| ||||| 0x0800dc48 dff8b80a ldr.w r0, [0x0800e708] ; [0x800e708:4]=0x2001e90d
| ||||| 0x0800dc4c 0068 ldr r0, [r0]
| ||||| 0x0800dc4e 447a ldrb r4, [r0, 9]
| ||||| 0x0800dc50 dff8d408 ldr.w r0, [0x0800e52c] ; [0x800e52c:4]=0x2001e908
| ||||| 0x0800dc54 0068 ldr r0, [r0]
| ||||| 0x0800dc56 007c ldrb r0, [r0, 0x10]
| ||||| 0x0800dc58 0390 str r0, [sp, 0xc]
| ||||| 0x0800dc5a 0220 movs r0, 2 ; 2
| ||||| 0x0800dc5c 0290 str r0, [sp, 8]
| ||||| 0x0800dc5e 5c20 movs r0, 0x5c ; '\' ; 92
| ||||| 0x0800dc60 0190 str r0, [sp, 4]
| ||||| 0x0800dc62 a020 movs r0, 0xa0 ; 160
| ||||| 0x0800dc64 0090 str r0, [sp]
| ||||| 0x0800dc66 1323 movs r3, 0x13 ; 19
| ||||| 0x0800dc68 0022 movs r2, 0
| ||||| 0x0800dc6a dff8ac0a ldr.w r0, [0x0800e71e] ; [0x800e71c:4]=0x2001e81e
| ||||| 0x0800dc6e b0f90010 ldrsh.w r1, [r0]
| ||||| 0x0800dc72 dff8b408 ldr.w r0, [0x0800e52e] ; [0x800e52c:4]=0x2001e908
| ||||| 0x0800dc76 0068 ldr r0, [r0]
| ||||| 0x0800dc78 1af08af9 bl menu_set_something
| ||||| 0x0800dc7c dff89c1a ldr.w r1, [0x0800e720] ; [0x800e720:4]=0x2001e915 md380_menu_id
| ||||| 0x0800dc80 0880 strh r0, [r1]
| ||||| 0x0800dc82 0021 movs r1, 0
| ||||| 0x0800dc84 dff8940a ldr.w r0, [0x0800e720] ; [0x800e720:4]=0x2001e915 md380_menu_id
| ||||| 0x0800dc88 b0f90000 ldrsh.w r0, [r0]
| ||||| 0x0800dc8c 1cf018ff bl func_2aac0
| ||||| 0x0800dc90 0ff097fa bl gfx_1d1c2
| ||||| 0x0800dc94 dff86c0a ldr.w r0, [0x0800e708] ; [0x800e708:4]=0x2001e90d
| ||||| 0x0800dc98 0068 ldr r0, [r0]
| ||||| 0x0800dc9a 4472 strb r4, [r0, 9]
| ||||| 0x0800dc9c 0821 movs r1, 8 ; 8
| ||||| 0x0800dc9e dff87c0a ldr.w r0, [0x0800e722] ; [0x800e720:4]=0x2001e915 md380_menu_id
| ||||| 0x0800dca2 b0f90000 ldrsh.w r0, [r0]
| ||||| 0x0800dca6 1cf092ff bl func_2abce
| ||||| 0x0800dcaa 0621 movs r1, 6 ; 6
| ||||| 0x0800dcac 00b2 sxth r0, r0
| ||||| 0x0800dcae 1cf0adff bl func_2ac0c
| ||||| 0x0800dcb2 0ff086fa bl gfx_1d1c2
| ||||| 0x0800dcb6 dff84c0a ldr.w r0, [0x0800e70a] ; [0x800e708:4]=0x2001e90d
| ||||| 0x0800dcba 0068 ldr r0, [r0]
| ||||| 0x0800dcbc 407a ldrb r0, [r0, 9]
| ||||| 0x0800dcbe 1421 movs r1, 0x14 ; 20
| ||||| 0x0800dcc0 dff8402a ldr.w r2, [0x0800e708] ; [0x800e708:4]=0x2001e90d
| ||||| 0x0800dcc4 1268 ldr r2, [r2]
| ||||| 0x0800dcc6 5268 ldr r2, [r2, 4]
| ||||| 0x0800dcc8 01fb0020 mla r0, r1, r0, r2
| ||||| 0x0800dccc dff85818 ldr.w r1, [0x0800e52c] ; [0x800e52c:4]=0x2001e908
| ||||| 0x0800dcd0 0860 str r0, [r1]
| ||||| 0x0800dcd2 0ff076fa bl gfx_1d1c2
| ||||| 0x0800dcd6 fef787fd bl func_0c7e8
| ,=``---> 0x0800dcda ffe7 b 0x800dcdc
\ ``--``-> 0x0800dcdc 1fbd pop {r0, r1, r2, r3, r4, pc}
/ (fcn) func_0dcec 186
| Caller: kb_enter_alpha menu.dispatch.greenkey menu_func_0f6a8 func_0dda8 func_0db88
| func_0c7e8 update_scr_19 update_scr_18 menu.dispatcher.unkn1 update_scr_36
| update_scr_17 md380_f_4520
| func_0dcec ();
| 0x0800dcec e0b5 push {r5, r6, r7, lr}
| 0x0800dcee dff8280a ldr.w r0, [0x0800e71e] ; [0x800e71c:4]=0x2001e81e
| 0x0800dcf2 b0f90000 ldrsh.w r0, [r0]
| 0x0800dcf6 0028 cmp r0, 0
| ,=< 0x0800dcf8 54d1 bne 0x800dda4
| | 0x0800dcfa dff8200a ldr.w r0, [0x0800e722] ; [0x800e720:4]=0x2001e915 md380_menu_id
| | 0x0800dcfe 0021 movs r1, 0
| | 0x0800dd00 0180 strh r1, [r0]
| | 0x0800dd02 8020 movs r0, 0x80 ; 128
| | 0x0800dd04 0290 str r0, [sp, 8]
| | 0x0800dd06 a020 movs r0, 0xa0 ; 160
| | 0x0800dd08 0190 str r0, [sp, 4]
| | 0x0800dd0a 0020 movs r0, 0
| | 0x0800dd0c 0090 str r0, [sp]
| | 0x0800dd0e 0023 movs r3, 0
| | 0x0800dd10 0222 movs r2, 2 ; 2
| | 0x0800dd12 0021 movs r1, 0
| | 0x0800dd14 bfa0 adr r0, 0x2fc
| | 0x0800dd16 1cf08aff bl func_2ac2e
| | 0x0800dd1a dff8fc19 ldr.w r1, [0x0800e71e] ; [0x800e71c:4]=0x2001e81e
| | 0x0800dd1e 0880 strh r0, [r1]
| | 0x0800dd20 0221 movs r1, 2 ; 2
| | 0x0800dd22 dff8f409 ldr.w r0, [0x0800e71e] ; [0x800e71c:4]=0x2001e81e
| | 0x0800dd26 b0f90000 ldrsh.w r0, [r0]
| | 0x0800dd2a 1af0b4f8 bl 0x8027e96 ; func_27e6c+0x2a
| | 0x0800dd2e 1220 movs r0, 0x12 ; 18
| | 0x0800dd30 1cf094ff bl 0x802ac5c
| | 0x0800dd34 0220 movs r0, 2 ; 2
| | 0x0800dd36 0290 str r0, [sp, 8]
| | 0x0800dd38 4ff4b870 mov.w r0, 0x170 ; 368
| | 0x0800dd3c 0190 str r0, [sp, 4]
| | 0x0800dd3e dff8d809 ldr.w r0, [0x0800e71e] ; [0x800e71c:4]=0x2001e81e
| | 0x0800dd42 b0f90000 ldrsh.w r0, [r0]
| | 0x0800dd46 0090 str r0, [sp]
| | 0x0800dd48 1123 movs r3, 0x11 ; 17
| | 0x0800dd4a 4522 movs r2, 0x45 ; 'E' ; 69
| | 0x0800dd4c 6e21 movs r1, 0x6e ; 'n' ; 110
| | 0x0800dd4e 0120 movs r0, 1 ; 1
| | 0x0800dd50 1cf08aff bl 0x802ac68
| | 0x0800dd54 dff83c16 ldr.w r1, [convert_freq_to_str] ; [0x800e398:4]=0x41f0e92d
| | 0x0800dd58 0968 ldr r1, [r1]
| | 0x0800dd5a dff8c427 ldr.w r2, [0x0800e526] ; [0x800e524:4]=0x20004acc md380_menu_depth
| | 0x0800dd5e 12eb8101 adds.w r1, r2, r1, lsl 2
| | 0x0800dd62 d1f82013 ldr.w r1, [r1, 0x320]
| | 0x0800dd66 00b2 sxth r0, r0
| | 0x0800dd68 1df0adf8 bl 0x802aec6
| | 0x0800dd6c 0220 movs r0, 2 ; 2
| | 0x0800dd6e 0290 str r0, [sp, 8]
| | 0x0800dd70 40f27110 movw r0, 0x171 ; 369
| | 0x0800dd74 0190 str r0, [sp, 4]
| | 0x0800dd76 dff8a009 ldr.w r0, [0x0800e71e] ; [0x800e71c:4]=0x2001e81e
| | 0x0800dd7a b0f90000 ldrsh.w r0, [r0]
| | 0x0800dd7e 0090 str r0, [sp]
| | 0x0800dd80 1123 movs r3, 0x11 ; 17
| | 0x0800dd82 4322 movs r2, 0x43 ; 'C' ; 67
| | 0x0800dd84 6e21 movs r1, 0x6e ; 'n' ; 110
| | 0x0800dd86 5c20 movs r0, 0x5c ; '\' ; 92
| | 0x0800dd88 1cf06eff bl 0x802ac68
| | 0x0800dd8c dff80416 ldr.w r1, [convert_freq_to_str] ; [0x800e398:4]=0x41f0e92d
| | 0x0800dd90 0968 ldr r1, [r1]
| | 0x0800dd92 dff88c27 ldr.w r2, [0x0800e526] ; [0x800e524:4]=0x20004acc md380_menu_depth
| | 0x0800dd96 12eb8101 adds.w r1, r2, r1, lsl 2
| | 0x0800dd9a d1f82413 ldr.w r1, [r1, 0x324]
| | 0x0800dd9e 00b2 sxth r0, r0
| | 0x0800dda0 1df091f8 bl 0x802aec6
\ `-> 0x0800dda4 07bd pop {r0, r1, r2, pc}
/ (fcn) func_0dda6_dummy 2
| Caller: func_0c7e8
| func_0dda6_dummy ();
\ 0x0800dda6 7047 bx lr
/ (fcn) func_0dda8 188
| Caller: update_scr_19 update_scr_16
| func_0dda8 ();
| 0x0800dda8 30b5 push {r4, r5, lr}
| 0x0800ddaa 85b0 sub sp, 0x14
| 0x0800ddac dff86809 ldr.w r0, [0x0800e71c] ; [0x800e71c:4]=0x2001e81e
| 0x0800ddb0 b0f90000 ldrsh.w r0, [r0]
| 0x0800ddb4 0028 cmp r0, 0
| ,=< 0x0800ddb6 01d1 bne 0x800ddbc
| | 0x0800ddb8 fff798ff bl func_0dcec
| `-> 0x0800ddbc 00f076f9 bl F_786
| 0x0800ddc0 0020 movs r0, 0
| ,=< 0x0800ddc2 0be0 b 0x800dddc
| .--> 0x0800ddc4 dff85819 ldr.w r1, [0x0800e724] ; [0x800e724:4]=0x2001b274 md380_menu_mem_base
| || 0x0800ddc8 0978 ldrb r1, [r1]
| || 0x0800ddca 4118 adds r1, r0, r1
| || 0x0800ddcc 1422 movs r2, 0x14 ; 20
| || 0x0800ddce dff85439 ldr.w r3, [0x0800e72a] ; [0x800e728:4]=0xb084b510
| || 0x0800ddd2 02fb0131 mla r1, r2, r1, r3
| || 0x0800ddd6 0222 movs r2, 2 ; 2
| || 0x0800ddd8 0a74 strb r2, [r1, 0x10]
| || 0x0800ddda 401c adds r0, r0, 1
| |`-> 0x0800dddc dff82419 ldr.w r1, [0x0800e708] ; [0x800e708:4]=0x2001e90d
| | 0x0800dde0 0968 ldr r1, [r1]
| | 0x0800dde2 097a ldrb r1, [r1, 8]
| | 0x0800dde4 8842 cmp r0, r1
| `==< 0x0800dde6 eddb blt 0x800ddc4
| 0x0800dde8 dff81809 ldr.w r0, [0x0800e708] ; [0x800e708:4]=0x2001e90d
| 0x0800ddec 0068 ldr r0, [r0]
| 0x0800ddee 447a ldrb r4, [r0, 9]
| 0x0800ddf0 dff83407 ldr.w r0, [0x0800e52c] ; [0x800e52c:4]=0x2001e908
| 0x0800ddf4 0568 ldr r5, [r0]
| 0x0800ddf6 dff83007 ldr.w r0, [0x0800e52e] ; [0x800e52c:4]=0x2001e908
| 0x0800ddfa 0068 ldr r0, [r0]
| 0x0800ddfc 007c ldrb r0, [r0, 0x10]
| 0x0800ddfe 0390 str r0, [sp, 0xc]
| 0x0800de00 0220 movs r0, 2 ; 2
| 0x0800de02 0290 str r0, [sp, 8]
| 0x0800de04 5c20 movs r0, 0x5c ; '\' ; 92
| 0x0800de06 0190 str r0, [sp, 4]
| 0x0800de08 a020 movs r0, 0xa0 ; 160
| 0x0800de0a 0090 str r0, [sp]
| 0x0800de0c 1323 movs r3, 0x13 ; 19
| 0x0800de0e 0022 movs r2, 0
| 0x0800de10 dff80409 ldr.w r0, [0x0800e71c] ; [0x800e71c:4]=0x2001e81e
| 0x0800de14 b0f90010 ldrsh.w r1, [r0]
| 0x0800de18 dff80c07 ldr.w r0, [0x0800e52c] ; [0x800e52c:4]=0x2001e908
| 0x0800de1c 0068 ldr r0, [r0]
| 0x0800de1e 1af0b7f8 bl menu_set_something
| 0x0800de22 dff8f818 ldr.w r1, [0x0800e722] ; [0x800e720:4]=0x2001e915 md380_menu_id
| 0x0800de26 0880 strh r0, [r1]
| 0x0800de28 dff8d808 ldr.w r0, [0x0800e708] ; [0x800e708:4]=0x2001e90d
| 0x0800de2c 0068 ldr r0, [r0]
| 0x0800de2e 4472 strb r4, [r0, 9]
| 0x0800de30 0821 movs r1, 8 ; 8
| 0x0800de32 dff8e808 ldr.w r0, [0x0800e722] ; [0x800e720:4]=0x2001e915 md380_menu_id
| 0x0800de36 b0f90000 ldrsh.w r0, [r0]
| 0x0800de3a 1cf0c8fe bl func_2abce
| 0x0800de3e 0621 movs r1, 6 ; 6
| 0x0800de40 00b2 sxth r0, r0
| 0x0800de42 1cf0e3fe bl func_2ac0c
| 0x0800de46 dff8e006 ldr.w r0, [0x0800e52e] ; [0x800e52c:4]=0x2001e908
| 0x0800de4a 0560 str r5, [r0]
| 0x0800de4c dff8b408 ldr.w r0, [0x0800e708] ; [0x800e708:4]=0x2001e90d
| 0x0800de50 0068 ldr r0, [r0]
| 0x0800de52 417a ldrb r1, [r0, 9]
| 0x0800de54 dff8c408 ldr.w r0, [0x0800e720] ; [0x800e720:4]=0x2001e915 md380_menu_id
| 0x0800de58 b0f90000 ldrsh.w r0, [r0]
| 0x0800de5c 1cf030fe bl func_2aac0
| 0x0800de60 05b0 add sp, 0x14
\ 0x0800de62 30bd pop {r4, r5, pc}
/ (fcn) func_0de64 112
| Caller: func_214fe func_21596_draw_something func_0c7e8 DrawSomethingThenBitBangIO
| update_scr_29 func_21646 func_215fc func_215c2 update_scr_32
| func_0de64 ();
| 0x0800de64 80b5 push {r7, lr}
| 0x0800de66 00f021f9 bl F_786
| 0x0800de6a dff8ac08 ldr.w r0, [0x0800e71e] ; [0x800e71c:4]=0x2001e81e
| 0x0800de6e b0f90000 ldrsh.w r0, [r0]
| 0x0800de72 0ef0affd bl gfx_1c9d4
| 0x0800de76 dff8a008 ldr.w r0, [0x0800e71e] ; [0x800e71c:4]=0x2001e81e
| 0x0800de7a 0021 movs r1, 0
| 0x0800de7c 0180 strh r1, [r0]
| 0x0800de7e 8a48 ldr r0, [0x0800e0aa] ; [0x800e0a8:4]=0xff8032
| 0x0800de80 0ff076fa bl gfx_set_fg_color
| 0x0800de84 6b23 movs r3, 0x6b ; 'k' ; 107
| 0x0800de86 9d22 movs r2, 0x9d ; 157
| 0x0800de88 1021 movs r1, 0x10 ; 16
| 0x0800de8a 0220 movs r0, 2 ; 2
| 0x0800de8c 0ff0fefc bl gfx_blockfill
| 0x0800de90 7ff07f40 mvns r0, 0xff000000
| 0x0800de94 0ff06cfa bl gfx_set_fg_color
| 0x0800de98 6d23 movs r3, 0x6d ; 'm' ; 109
| 0x0800de9a 9f22 movs r2, 0x9f ; 159
| 0x0800de9c 6c21 movs r1, 0x6c ; 'l' ; 108
| 0x0800de9e 0020 movs r0, 0
| 0x0800dea0 0ff0f4fc bl gfx_blockfill
| 0x0800dea4 7f23 movs r3, 0x7f ; 127
| 0x0800dea6 0122 movs r2, 1 ; 1
| 0x0800dea8 1021 movs r1, 0x10 ; 16
| 0x0800deaa 0020 movs r0, 0
| 0x0800deac 0ff0eefc bl gfx_blockfill
| 0x0800deb0 7f23 movs r3, 0x7f ; 127
| 0x0800deb2 9f22 movs r2, 0x9f ; 159
| 0x0800deb4 1021 movs r1, 0x10 ; 16
| 0x0800deb6 9e20 movs r0, 0x9e ; 158
| 0x0800deb8 0ff0e8fc bl gfx_blockfill
| 0x0800debc 7f23 movs r3, 0x7f ; 127
| 0x0800debe 9f22 movs r2, 0x9f ; 159
| 0x0800dec0 7f21 movs r1, 0x7f ; 127
| 0x0800dec2 0020 movs r0, 0
| 0x0800dec4 0ff0e2fc bl gfx_blockfill
| 0x0800dec8 0020 movs r0, 0
| 0x0800deca 0ff051fa bl gfx_set_fg_color
| 0x0800dece 13f0e1fb bl draw_statusline_more
\ 0x0800ded2 01bd pop {r0, pc}
/ (fcn) gfx_drawtext 36
| Caller: draw_topline_text_maybe draw_botline_text
| gfx_drawtext ();
| 0x0800def6 30b5 push {r4, r5, lr}
| 0x0800def8 83b0 sub sp, 0xc
| 0x0800defa 069d ldr r5, [sp, 0x18]
| 0x0800defc 079c ldr r4, [sp, 0x1c]
| 0x0800defe adf80010 strh.w r1, [sp]
| 0x0800df02 adf80430 strh.w r3, [sp, 4]
| 0x0800df06 adf80220 strh.w r2, [sp, 2]
| 0x0800df0a adf80650 strh.w r5, [sp, 6]
| 0x0800df0e 2300 movs r3, r4
| 0x0800df10 0e22 movs r2, 0xe ; 14
| 0x0800df12 00a9 add r1, sp, 0
| 0x0800df14 1df015f9 bl gfx_drawtext3
\ 0x0800df18 37bd pop {r0, r1, r2, r4, r5, pc}
/ (fcn) draw_datetime_row 250
| Caller: display_idle_screen scr_mode_stable display_unprog_screen
| draw_datetime_row ();
| 0x0800df1a 10b5 push {r4, lr}
| 0x0800df1c 8cb0 sub sp, 0x30 ; '0'
| 0x0800df1e 0020 movs r0, 0
| 0x0800df20 0ff026fa bl gfx_set_fg_color
| 0x0800df24 6048 ldr r0, [0x0800e0a8] ; [0x800e0a8:4]=0xff8032
| 0x0800df26 0ff01ffa bl gfx_set_bg_color
| 0x0800df2a da48 ldr r0, [0x0800e296] ; [0x800e294:4]=0x809a4c0 gfx_font_small
| 0x0800df2c 13f0a2fc bl gfx_select_font
| 0x0800df30 00ac add r4, sp, 0
| 0x0800df32 dff8041c ldr.w r1, [0x0800eb3e] ; [0x800eb3c:4]=0xff8032
| 0x0800df36 0120 movs r0, 1 ; 1
| 0x0800df38 1df0e8fa bl md380_RTC_GetDate
| 0x0800df3c 3220 movs r0, 0x32 ; '2' ; 50
| 0x0800df3e 2080 strh r0, [r4]
| 0x0800df40 a41c adds r4, r4, 2
| 0x0800df42 3020 movs r0, 0x30 ; '0' ; 48
| 0x0800df44 2080 strh r0, [r4]
| 0x0800df46 a41c adds r4, r4, 2
| 0x0800df48 dff8ec0b ldr.w r0, [0x0800eb3c] ; [0x800eb3c:4]=0xff8032
| 0x0800df4c c178 ldrb r1, [r0, 3]
| 0x0800df4e 89b2 uxth r1, r1
| 0x0800df50 2000 movs r0, r4
| 0x0800df52 0af0e9fd bl md380_itow
| 0x0800df56 241d adds r4, r4, 4
| 0x0800df58 2f20 movs r0, 0x2f ; '/' ; 47
| 0x0800df5a 2080 strh r0, [r4]
| 0x0800df5c a41c adds r4, r4, 2
| 0x0800df5e dff8d80b ldr.w r0, [0x0800eb3e] ; [0x800eb3c:4]=0xff8032
| 0x0800df62 4178 ldrb r1, [r0, 1]
| 0x0800df64 89b2 uxth r1, r1
| 0x0800df66 2000 movs r0, r4
| 0x0800df68 0af0defd bl md380_itow
| 0x0800df6c 241d adds r4, r4, 4
| 0x0800df6e 2f20 movs r0, 0x2f ; '/' ; 47
| 0x0800df70 2080 strh r0, [r4]
| 0x0800df72 a41c adds r4, r4, 2
| 0x0800df74 dff8c00b ldr.w r0, [0x0800eb3c] ; [0x800eb3c:4]=0xff8032
| 0x0800df78 8178 ldrb r1, [r0, 2]
| 0x0800df7a 89b2 uxth r1, r1
| 0x0800df7c 2000 movs r0, r4
| 0x0800df7e 0af0d3fd bl md380_itow
| 0x0800df82 241d adds r4, r4, 4
| 0x0800df84 0020 movs r0, 0
| 0x0800df86 2080 strh r0, [r4]
| 0x0800df88 a41c adds r4, r4, 2
| 0x0800df8a 5e23 movs r3, 0x5e ; '^' ; 94
| 0x0800df8c 6022 movs r2, 0x60 ; '`' ; 96
| 0x0800df8e 0a21 movs r1, 0xa ; 10
| 0x0800df90 00a8 add r0, sp, 0
| 0x0800df92 0ff0b9fe bl gfx_drawtext2
| 0x0800df96 dff8a80b ldr.w r0, [0x0800eb46] ; [0x800eb44:4]=0x2001e6f4
| 0x0800df9a 0078 ldrb r0, [r0]
| 0x0800df9c 0006 lsls r0, r0, 0x18
| ,=< 0x0800df9e 2cd4 bmi 0x800dffa
| | 0x0800dfa0 00ac add r4, sp, 0
| | 0x0800dfa2 dff8a01b ldr.w r1, [0x0800eb4a] ; [0x800eb48:4]=0x80cf780 gfx_font_norm
| | 0x0800dfa6 0120 movs r0, 1 ; 1
| | 0x0800dfa8 1df025fa bl md380_RTC_GetTime
| | 0x0800dfac dff8940b ldr.w r0, [0x0800eb48] ; [0x800eb48:4]=0x80cf780 gfx_font_norm
| | 0x0800dfb0 0178 ldrb r1, [r0]
| | 0x0800dfb2 89b2 uxth r1, r1
| | 0x0800dfb4 2000 movs r0, r4
| | 0x0800dfb6 0af0b7fd bl md380_itow
| | 0x0800dfba 241d adds r4, r4, 4
| | 0x0800dfbc 3a20 movs r0, 0x3a ; ':' ; 58
| | 0x0800dfbe 2080 strh r0, [r4]
| | 0x0800dfc0 a41c adds r4, r4, 2
| | 0x0800dfc2 dff8800b ldr.w r0, [0x0800eb4a] ; [0x800eb48:4]=0x80cf780 gfx_font_norm
| | 0x0800dfc6 4178 ldrb r1, [r0, 1]
| | 0x0800dfc8 89b2 uxth r1, r1
| | 0x0800dfca 2000 movs r0, r4
| | 0x0800dfcc 0af0acfd bl md380_itow
| | 0x0800dfd0 241d adds r4, r4, 4
| | 0x0800dfd2 3a20 movs r0, 0x3a ; ':' ; 58
| | 0x0800dfd4 2080 strh r0, [r4]
| | 0x0800dfd6 a41c adds r4, r4, 2
| | 0x0800dfd8 dff8680b ldr.w r0, [0x0800eb48] ; [0x800eb48:4]=0x80cf780 gfx_font_norm
| | 0x0800dfdc 8178 ldrb r1, [r0, 2]
| | 0x0800dfde 89b2 uxth r1, r1
| | 0x0800dfe0 2000 movs r0, r4
| | 0x0800dfe2 0af0a1fd bl md380_itow
| | 0x0800dfe6 241d adds r4, r4, 4
| | 0x0800dfe8 0020 movs r0, 0
| | 0x0800dfea 2080 strh r0, [r4]
| | 0x0800dfec a41c adds r4, r4, 2
| | 0x0800dfee 9d23 movs r3, 0x9d ; 157
| | 0x0800dff0 6022 movs r2, 0x60 ; '`' ; 96
| | 0x0800dff2 5f21 movs r1, 0x5f ; '_' ; 95
| | 0x0800dff4 00a8 add r0, sp, 0
| | 0x0800dff6 0ff087fe bl gfx_drawtext2
| `-> 0x0800dffa dff84c0b ldr.w r0, [0x0800eb4e] ; [0x800eb4c:4]=0x2001e87a
| 0x0800dffe 13f039fc bl gfx_select_font
| 0x0800e002 0020 movs r0, 0
| 0x0800e004 0ff0b4f9 bl gfx_set_fg_color
| 0x0800e008 7ff07f40 mvns r0, 0xff000000
| 0x0800e00c 0ff0acf9 bl gfx_set_bg_color
| 0x0800e010 0cb0 add sp, 0x30
\ 0x0800e012 10bd pop {r4, pc}
/ (fcn) F_4220 124
| Caller: paint_a_lot
| F_4220 ();
| 0x0800e02a 38b5 push {r3, r4, r5, lr}
| 0x0800e02c 021d adds r2, r0, 4
| 0x0800e02e 9142 cmp r1, r2
| ,=< 0x0800e030 0ddb blt 0x800e04e
| | 0x0800e032 5a22 movs r2, 0x5a ; 'Z' ; 90
| | 0x0800e034 92fbf1f2 sdiv r2, r2, r1
| | 0x0800e038 02fb00f4 mul r4, r2, r0
| | 0x0800e03c 081a subs r0, r1, r0
| | 0x0800e03e 001f subs r0, r0, 4
| | 0x0800e040 5a22 movs r2, 0x5a ; 'Z' ; 90
| | 0x0800e042 92fbf1f1 sdiv r1, r2, r1
| | 0x0800e046 4843 muls r0, r1, r0
| | 0x0800e048 d0f16d05 rsbs.w r5, r0, 0x6d
| ,==< 0x0800e04c 01e0 b 0x800e052
| |`-> 0x0800e04e 0024 movs r4, 0
| | 0x0800e050 6d25 movs r5, 0x6d ; 'm' ; 109
| `--> 0x0800e052 7ff07f40 mvns r0, 0xff000000
| 0x0800e056 0ff08bf9 bl gfx_set_fg_color
| 0x0800e05a 14f11403 adds.w r3, r4, 0x14
| 0x0800e05e 9c22 movs r2, 0x9c ; 156
| 0x0800e060 1421 movs r1, 0x14 ; 20
| 0x0800e062 9c20 movs r0, 0x9c ; 156
| 0x0800e064 0ff012fc bl gfx_blockfill
| 0x0800e068 14f11403 adds.w r3, r4, 0x14
| 0x0800e06c 9f22 movs r2, 0x9f ; 159
| 0x0800e06e 1421 movs r1, 0x14 ; 20
| 0x0800e070 9e20 movs r0, 0x9e ; 158
| 0x0800e072 0ff00bfc bl gfx_blockfill
| 0x0800e076 6d23 movs r3, 0x6d ; 'm' ; 109
| 0x0800e078 9c22 movs r2, 0x9c ; 156
| 0x0800e07a 2900 movs r1, r5
| 0x0800e07c 9c20 movs r0, 0x9c ; 156
| 0x0800e07e 0ff005fc bl gfx_blockfill
| 0x0800e082 6d23 movs r3, 0x6d ; 'm' ; 109
| 0x0800e084 9f22 movs r2, 0x9f ; 159
| 0x0800e086 2900 movs r1, r5
| 0x0800e088 9e20 movs r0, 0x9e ; 158
| 0x0800e08a 0ff0fffb bl gfx_blockfill
| 0x0800e08e dff88804 ldr.w r0, [0x0800e51e] ; [0x800e51c:4]=32
| 0x0800e092 0ff06df9 bl gfx_set_fg_color
| 0x0800e096 6b1e subs r3, r5, 1
| 0x0800e098 9e22 movs r2, 0x9e ; 158
| 0x0800e09a 14f11501 adds.w r1, r4, 0x15
| 0x0800e09e 9c20 movs r0, 0x9c ; 156
| 0x0800e0a0 0ff0f4fb bl gfx_blockfill
\ 0x0800e0a4 31bd pop {r0, r4, r5, pc}
/ (fcn) F_786 124
| Caller: scr_mode_stable func_0de64 menu.dispatch.greenkey display_idle_screen menu_func_0f6a8
| display_unprog_screen func_0dda8 menu_6_1_1 F_4284 update_scr_30
| F_786 ();
| 0x0800e0ac 80b5 push {r7, lr}
| 0x0800e0ae dff86c06 ldr.w r0, [0x0800e722] ; [0x800e720:4]=0x2001e915 md380_menu_id
| 0x0800e0b2 b0f90000 ldrsh.w r0, [r0]
| 0x0800e0b6 0ef08dfc bl gfx_1c9d4
| 0x0800e0ba dff86006 ldr.w r0, [0x0800e722] ; [0x800e720:4]=0x2001e915 md380_menu_id
| 0x0800e0be 0021 movs r1, 0
| 0x0800e0c0 0180 strh r1, [r0]
| 0x0800e0c2 dff8900a ldr.w r0, [0x0800eb5a] ; [0x800eb58:4]=0x2001e822
| 0x0800e0c6 b0f90000 ldrsh.w r0, [r0]
| 0x0800e0ca 0ef083fc bl gfx_1c9d4
| 0x0800e0ce dff8840a ldr.w r0, [0x0800eb5a] ; [0x800eb58:4]=0x2001e822
| 0x0800e0d2 0021 movs r1, 0
| 0x0800e0d4 0180 strh r1, [r0]
| 0x0800e0d6 dff8800a ldr.w r0, [0x0800eb5e] ; [0x800eb5c:4]=0x2001e824
| 0x0800e0da b0f90000 ldrsh.w r0, [r0]
| 0x0800e0de 0ef079fc bl gfx_1c9d4
| 0x0800e0e2 dff8740a ldr.w r0, [0x0800eb5e] ; [0x800eb5c:4]=0x2001e824
| 0x0800e0e6 0021 movs r1, 0
| 0x0800e0e8 0180 strh r1, [r0]
| 0x0800e0ea dff8700a ldr.w r0, [0x0800eb62] ; [0x800eb60:4]=0x2001e828
| 0x0800e0ee b0f90000 ldrsh.w r0, [r0]
| 0x0800e0f2 0ef06ffc bl gfx_1c9d4
| 0x0800e0f6 dff8640a ldr.w r0, [0x0800eb62] ; [0x800eb60:4]=0x2001e828
| 0x0800e0fa 0021 movs r1, 0
| 0x0800e0fc 0180 strh r1, [r0]
| 0x0800e0fe dff8600a ldr.w r0, [0x0800eb66] ; [0x800eb64:4]=0x2001e82a
| 0x0800e102 b0f90000 ldrsh.w r0, [r0]
| 0x0800e106 0ef065fc bl gfx_1c9d4
| 0x0800e10a dff8540a ldr.w r0, [0x0800eb66] ; [0x800eb64:4]=0x2001e82a
| 0x0800e10e 0021 movs r1, 0
| 0x0800e110 0180 strh r1, [r0]
| 0x0800e112 dff8500a ldr.w r0, [0x0800eb6a] ; [0x800eb68:4]=0x2001e946 md380_menu_field_type
| 0x0800e116 b0f90000 ldrsh.w r0, [r0]
| 0x0800e11a 0ef05bfc bl gfx_1c9d4
| 0x0800e11e dff8440a ldr.w r0, [0x0800eb6a] ; [0x800eb68:4]=0x2001e946 md380_menu_field_type
| 0x0800e122 0021 movs r1, 0
| 0x0800e124 0180 strh r1, [r0]
\ 0x0800e126 01bd pop {r0, pc}
/ (fcn) F_4154 350
| Caller: func_0c7e8 paint_a_lot
| F_4154 ();
| 0x0800e128 10b5 push {r4, lr}
| 0x0800e12a 82b0 sub sp, 8
| 0x0800e12c 7ff07f40 mvns r0, 0xff000000
| 0x0800e130 0ff01ef9 bl gfx_set_fg_color
| 0x0800e134 dff8e003 ldr.w r0, [0x0800e51c] ; [0x800e51c:4]=32
| 0x0800e138 0ff016f9 bl gfx_set_bg_color
| 0x0800e13c 5548 ldr r0, [0x0800e294] ; [0x800e294:4]=0x809a4c0 gfx_font_small
| 0x0800e13e 13f099fb bl gfx_select_font
| 0x0800e142 dff8240a ldr.w r0, [0x0800eb6e] ; [0x800eb6c:4]=0x2001e8ed
| 0x0800e146 0078 ldrb r0, [r0]
| 0x0800e148 10f00f00 ands r0, r0, 0xf
| 0x0800e14c c0b2 uxtb r0, r0
| 0x0800e14e 0028 cmp r0, 0
| ,=< 0x0800e150 05d0 beq 0x800e15e
| | 0x0800e152 0228 cmp r0, 2 ; 2
| ,==< 0x0800e154 24d0 beq 0x800e1a0
| ,===< 0x0800e156 10d3 blo 0x800e17a
| ||| 0x0800e158 0328 cmp r0, 3 ; 3
| ,====< 0x0800e15a 34d0 beq 0x800e1c6
| ,=====< 0x0800e15c 40e0 b 0x800e1e0
| ||||`-> 0x0800e15e 9e23 movs r3, 0x9e ; 158
| |||| 0x0800e160 0122 movs r2, 1 ; 1
| |||| 0x0800e162 8e21 movs r1, 0x8e ; 142
| |||| 0x0800e164 8b48 ldr r0, [0x0800e394] ; [0x800e394:4]=0x2001e6ec
| |||| 0x0800e166 0068 ldr r0, [r0]
| |||| 0x0800e168 dff8b443 ldr.w r4, [0x0800e524] ; [0x800e524:4]=0x20004acc md380_menu_depth
| |||| 0x0800e16c 14eb8000 adds.w r0, r4, r0, lsl 2
| |||| 0x0800e170 d0f82803 ldr.w r0, [r0, 0x328]
| |||| 0x0800e174 0ff0c8fd bl gfx_drawtext2
| ||||,=< 0x0800e178 32e0 b 0x800e1e0
| ||`---> 0x0800e17a 9a23 movs r3, 0x9a ; 154
| || || 0x0800e17c 0122 movs r2, 1 ; 1
| || || 0x0800e17e 8e21 movs r1, 0x8e ; 142
| || || 0x0800e180 8448 ldr r0, [0x0800e394] ; [0x800e394:4]=0x2001e6ec
| || || 0x0800e182 0068 ldr r0, [r0]
| || || 0x0800e184 e64c ldr r4, [0x0800e520] ; [0x800e520:4]=0x20001704 md380_menu_ptr_to_80d032c
| || || 0x0800e186 14eb8000 adds.w r0, r4, r0, lsl 2
| || || 0x0800e18a d0f82c03 ldr.w r0, [r0, 0x32c]
| || || 0x0800e18e 0ff0bbfd bl gfx_drawtext2
| || || 0x0800e192 1123 movs r3, 0x11 ; 17
| || || 0x0800e194 9f22 movs r2, 0x9f ; 159
| || || 0x0800e196 0021 movs r1, 0
| || || 0x0800e198 9b20 movs r0, 0x9b ; 155
| || || 0x0800e19a 0ff077fb bl gfx_blockfill
| ||,===< 0x0800e19e 1fe0 b 0x800e1e0
| |||`--> 0x0800e1a0 9a23 movs r3, 0x9a ; 154
| ||| | 0x0800e1a2 0122 movs r2, 1 ; 1
| ||| | 0x0800e1a4 8e21 movs r1, 0x8e ; 142
| ||| | 0x0800e1a6 7b48 ldr r0, [0x0800e396] ; [0x800e394:4]=0x2001e6ec
| ||| | 0x0800e1a8 0068 ldr r0, [r0]
| ||| | 0x0800e1aa dd4c ldr r4, [0x0800e522] ; [0x800e520:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| | 0x0800e1ac 14eb8000 adds.w r0, r4, r0, lsl 2
| ||| | 0x0800e1b0 d0f83003 ldr.w r0, [r0, 0x330]
| ||| | 0x0800e1b4 0ff0a8fd bl gfx_drawtext2
| ||| | 0x0800e1b8 1123 movs r3, 0x11 ; 17
| ||| | 0x0800e1ba 9f22 movs r2, 0x9f ; 159
| ||| | 0x0800e1bc 0021 movs r1, 0
| ||| | 0x0800e1be 9b20 movs r0, 0x9b ; 155
| ||| | 0x0800e1c0 0ff064fb bl gfx_blockfill
| |||,==< 0x0800e1c4 0ce0 b 0x800e1e0
| |`----> 0x0800e1c6 9e23 movs r3, 0x9e ; 158
| | ||| 0x0800e1c8 0122 movs r2, 1 ; 1
| | ||| 0x0800e1ca 8e21 movs r1, 0x8e ; 142
| | ||| 0x0800e1cc 7148 ldr r0, [0x0800e394] ; [0x800e394:4]=0x2001e6ec
| | ||| 0x0800e1ce 0068 ldr r0, [r0]
| | ||| 0x0800e1d0 d34c ldr r4, [0x0800e520] ; [0x800e520:4]=0x20001704 md380_menu_ptr_to_80d032c
| | ||| 0x0800e1d2 14eb8000 adds.w r0, r4, r0, lsl 2
| | ||| 0x0800e1d6 d0f82803 ldr.w r0, [r0, 0x328]
| | ||| 0x0800e1da 0ff095fd bl gfx_drawtext2
| |,====< 0x0800e1de ffe7 b 0x800e1e0
| `````-> 0x0800e1e0 6b48 ldr r0, [0x0800e390] ; [0x800e390:4]=0x80cf780 gfx_font_norm
| 0x0800e1e2 13f047fb bl gfx_select_font
| 0x0800e1e6 cc48 ldr r0, [0x0800e51a] ; [0x800e518:4]=0xff1414
| 0x0800e1e8 0ff0bef8 bl gfx_set_bg_color
| 0x0800e1ec 7ff07f40 mvns r0, 0xff000000
| 0x0800e1f0 0ff0bef8 bl gfx_set_fg_color
| 0x0800e1f4 dff87409 ldr.w r0, [0x0800eb70] ; [0x800eb70:4]=0x2001e944 md380_menu_cursor_pos_1
| 0x0800e1f8 0078 ldrb r0, [r0]
| 0x0800e1fa 0028 cmp r0, 0
| ,=< 0x0800e1fc 3bd1 bne 0x800e276
| | 0x0800e1fe dff87009 ldr.w r0, [0x0800eb76] ; [0x800eb74:4]=0x2001e892 gui_opmode3
| | 0x0800e202 0078 ldrb r0, [r0]
| | 0x0800e204 0028 cmp r0, 0
| ,==< 0x0800e206 28d0 beq 0x800e25a
| || 0x0800e208 dff8f804 ldr.w r0, [0x0800e708] ; [0x800e708:4]=0x2001e90d
| || 0x0800e20c 0068 ldr r0, [r0]
| || 0x0800e20e 0068 ldr r0, [r0]
| || 0x0800e210 6049 ldr r1, [0x0800e394] ; [0x800e394:4]=0x2001e6ec
| || 0x0800e212 0968 ldr r1, [r1]
| || 0x0800e214 c24a ldr r2, [0x0800e520] ; [0x800e520:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800e216 12eb8101 adds.w r1, r2, r1, lsl 2
| || 0x0800e21a d1f87813 ldr.w r1, [r1, 0x378]
| || 0x0800e21e 8842 cmp r0, r1
| ,===< 0x0800e220 1bd0 beq 0x800e25a
| ||| 0x0800e222 dff8e004 ldr.w r0, [0x0800e70a] ; [0x800e708:4]=0x2001e90d
| ||| 0x0800e226 0068 ldr r0, [r0]
| ||| 0x0800e228 0068 ldr r0, [r0]
| ||| 0x0800e22a 5a49 ldr r1, [0x0800e396] ; [0x800e394:4]=0x2001e6ec
| ||| 0x0800e22c 0968 ldr r1, [r1]
| ||| 0x0800e22e bc4a ldr r2, [0x0800e522] ; [0x800e520:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x0800e230 12eb8101 adds.w r1, r2, r1, lsl 2
| ||| 0x0800e234 d1f87c13 ldr.w r1, [r1, 0x37c]
| ||| 0x0800e238 8842 cmp r0, r1
| ,====< 0x0800e23a 0ed0 beq 0x800e25a
| |||| 0x0800e23c 7e20 movs r0, 0x7e ; '~' ; 126
| |||| 0x0800e23e 0090 str r0, [sp]
| |||| 0x0800e240 9f23 movs r3, 0x9f ; 159
| |||| 0x0800e242 6e22 movs r2, 0x6e ; 'n' ; 110
| |||| 0x0800e244 5c21 movs r1, 0x5c ; '\' ; 92
| |||| 0x0800e246 5348 ldr r0, [0x0800e396] ; [0x800e394:4]=0x2001e6ec
| |||| 0x0800e248 0068 ldr r0, [r0]
| |||| 0x0800e24a b54c ldr r4, [0x0800e522] ; [0x800e520:4]=0x20001704 md380_menu_ptr_to_80d032c
| |||| 0x0800e24c 14eb8000 adds.w r0, r4, r0, lsl 2
| |||| 0x0800e250 d0f8d800 ldr.w r0, [r0, 0xd8]
| |||| 0x0800e254 fff740fe bl gfx_drawtext10
| ,=====< 0x0800e258 0de0 b 0x800e276
| |```--> 0x0800e25a 7e20 movs r0, 0x7e ; '~' ; 126
| | | 0x0800e25c 0090 str r0, [sp]
| | | 0x0800e25e 9f23 movs r3, 0x9f ; 159
| | | 0x0800e260 6e22 movs r2, 0x6e ; 'n' ; 110
| | | 0x0800e262 5c21 movs r1, 0x5c ; '\' ; 92
| | | 0x0800e264 4b48 ldr r0, [0x0800e394] ; [0x800e394:4]=0x2001e6ec
| | | 0x0800e266 0068 ldr r0, [r0]
| | | 0x0800e268 ad4c ldr r4, [0x0800e520] ; [0x800e520:4]=0x20001704 md380_menu_ptr_to_80d032c
| | | 0x0800e26a 14eb8000 adds.w r0, r4, r0, lsl 2
| | | 0x0800e26e d0f82403 ldr.w r0, [r0, 0x324]
| | | 0x0800e272 fff731fe bl gfx_drawtext10
| `---`-> 0x0800e276 7ff07f40 mvns r0, 0xff000000
| 0x0800e27a 0ff075f8 bl gfx_set_bg_color
| 0x0800e27e 0020 movs r0, 0
| 0x0800e280 0ff076f8 bl gfx_set_fg_color
\ 0x0800e284 13bd pop {r0, r1, r4, pc}
/ (fcn) F_4284 234
| Caller: update_scr_20
| F_4284 ();
| 0x0800e298 00b5 push {lr}
| 0x0800e29a 85b0 sub sp, 0x14
| 0x0800e29c fff706ff bl F_786
| 0x0800e2a0 dff87404 ldr.w r0, [0x0800e71c] ; [0x800e71c:4]=0x2001e81e
| 0x0800e2a4 b0f90000 ldrsh.w r0, [r0]
| 0x0800e2a8 0ef094fb bl gfx_1c9d4
| 0x0800e2ac dff86804 ldr.w r0, [0x0800e71c] ; [0x800e71c:4]=0x2001e81e
| 0x0800e2b0 0021 movs r1, 0
| 0x0800e2b2 0180 strh r1, [r0]
| 0x0800e2b4 dff8a008 ldr.w r0, [0x0800eb5c] ; [0x800eb5c:4]=0x2001e824
| 0x0800e2b8 b0f90000 ldrsh.w r0, [r0]
| 0x0800e2bc 0028 cmp r0, 0
| ,=< 0x0800e2be 5cd1 bne 0x800e37a
| | 0x0800e2c0 0e20 movs r0, 0xe ; 14
| | 0x0800e2c2 0390 str r0, [sp, 0xc]
| | 0x0800e2c4 95a0 adr r0, 0x254
| | 0x0800e2c6 0290 str r0, [sp, 8]
| | 0x0800e2c8 0620 movs r0, 6 ; 6
| | 0x0800e2ca 0190 str r0, [sp, 4]
| | 0x0800e2cc 4ff4b070 mov.w r0, 0x160 ; 352
| | 0x0800e2d0 0090 str r0, [sp]
| | 0x0800e2d2 2223 movs r3, 0x22 ; '"' ; 34
| | 0x0800e2d4 9c22 movs r2, 0x9c ; 156
| | 0x0800e2d6 1021 movs r1, 0x10 ; 16
| | 0x0800e2d8 0220 movs r0, 2 ; 2
| | 0x0800e2da 19f0f9fd bl func_27ed0
| | 0x0800e2de dff87818 ldr.w r1, [0x0800eb5e] ; [0x800eb5c:4]=0x2001e824
| | 0x0800e2e2 0880 strh r0, [r1]
| | 0x0800e2e4 0e20 movs r0, 0xe ; 14
| | 0x0800e2e6 0390 str r0, [sp, 0xc]
| | 0x0800e2e8 8ca0 adr r0, 0x230
| | 0x0800e2ea 0290 str r0, [sp, 8]
| | 0x0800e2ec 0620 movs r0, 6 ; 6
| | 0x0800e2ee 0190 str r0, [sp, 4]
| | 0x0800e2f0 4ff4b070 mov.w r0, 0x160 ; 352
| | 0x0800e2f4 0090 str r0, [sp]
| | 0x0800e2f6 1423 movs r3, 0x14 ; 20
| | 0x0800e2f8 9c22 movs r2, 0x9c ; 156
| | 0x0800e2fa 3221 movs r1, 0x32 ; '2' ; 50
| | 0x0800e2fc 0220 movs r0, 2 ; 2
| | 0x0800e2fe 19f0e7fd bl func_27ed0
| | 0x0800e302 dff85818 ldr.w r1, [0x0800eb62] ; [0x800eb60:4]=0x2001e828
| | 0x0800e306 0880 strh r0, [r1]
| | 0x0800e308 dff83018 ldr.w r1, [0x0800eb40] ; [0x800eb40:4]=0x2001e600 q_struct_1
| | 0x0800e30c dff84808 ldr.w r0, [0x0800eb5c] ; [0x800eb5c:4]=0x2001e824
| | 0x0800e310 b0f90000 ldrsh.w r0, [r0]
| | 0x0800e314 1df007fa bl func_2b726
| | 0x0800e318 dff82018 ldr.w r1, [0x0800eb40] ; [0x800eb40:4]=0x2001e600 q_struct_1
| | 0x0800e31c dff83c08 ldr.w r0, [0x0800eb60] ; [0x800eb60:4]=0x2001e828
| | 0x0800e320 b0f90000 ldrsh.w r0, [r0]
| | 0x0800e324 1df0fff9 bl func_2b726
| | 0x0800e328 dff81008 ldr.w r0, [0x0800eb40] ; [0x800eb40:4]=0x2001e600 q_struct_1
| | 0x0800e32c 0ff020f8 bl gfx_set_fg_color
| | 0x0800e330 6b23 movs r3, 0x6b ; 'k' ; 107
| | 0x0800e332 9d22 movs r2, 0x9d ; 157
| | 0x0800e334 1021 movs r1, 0x10 ; 16
| | 0x0800e336 0220 movs r0, 2 ; 2
| | 0x0800e338 0ff0a8fa bl gfx_blockfill
| | 0x0800e33c 7ff07f40 mvns r0, 0xff000000
| | 0x0800e340 0ff016f8 bl gfx_set_fg_color
| | 0x0800e344 6d23 movs r3, 0x6d ; 'm' ; 109
| | 0x0800e346 9f22 movs r2, 0x9f ; 159
| | 0x0800e348 6c21 movs r1, 0x6c ; 'l' ; 108
| | 0x0800e34a 0020 movs r0, 0
| | 0x0800e34c 0ff09efa bl gfx_blockfill
| | 0x0800e350 6d23 movs r3, 0x6d ; 'm' ; 109
| | 0x0800e352 0122 movs r2, 1 ; 1
| | 0x0800e354 1021 movs r1, 0x10 ; 16
| | 0x0800e356 0020 movs r0, 0
| | 0x0800e358 0ff098fa bl gfx_blockfill
| | 0x0800e35c 6d23 movs r3, 0x6d ; 'm' ; 109
| | 0x0800e35e 9f22 movs r2, 0x9f ; 159
| | 0x0800e360 1021 movs r1, 0x10 ; 16
| | 0x0800e362 9e20 movs r0, 0x9e ; 158
| | 0x0800e364 0ff092fa bl gfx_blockfill
| | 0x0800e368 7f23 movs r3, 0x7f ; 127
| | 0x0800e36a 9f22 movs r2, 0x9f ; 159
| | 0x0800e36c 7f21 movs r1, 0x7f ; 127
| | 0x0800e36e 0020 movs r0, 0
| | 0x0800e370 0ff08cfa bl gfx_blockfill
| | 0x0800e374 0020 movs r0, 0
| | 0x0800e376 0ef0fbff bl gfx_set_fg_color
| `-> 0x0800e37a 13f08bf9 bl draw_statusline_more
| 0x0800e37e 05b0 add sp, 0x14
\ 0x0800e380 00bd pop {pc}
/ (fcn) convert_freq_to_str 284
| Caller: func_0e6e8 something_with_radio_config_and_channel_info menu_RX_QRG_to_str
| convert_freq_to_str ();
| 0x0800e398 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x0800e39c 0400 movs r4, r0
| 0x0800e39e 080e lsrs r0, r1, 0x18
| 0x0800e3a0 c0b2 uxtb r0, r0
| 0x0800e3a2 1022 movs r2, 0x10 ; 16
| 0x0800e3a4 90fbf2f0 sdiv r0, r0, r2
| 0x0800e3a8 0a22 movs r2, 0xa ; 10
| 0x0800e3aa 0b0e lsrs r3, r1, 0x18
| 0x0800e3ac dbb2 uxtb r3, r3
| 0x0800e3ae 1025 movs r5, 0x10 ; 16
| 0x0800e3b0 93fbf5f6 sdiv r6, r3, r5
| 0x0800e3b4 06fb1536 mls r6, r6, r5, r3
| 0x0800e3b8 02fb0066 mla r6, r2, r0, r6
| 0x0800e3bc 080c lsrs r0, r1, 0x10
| 0x0800e3be c0b2 uxtb r0, r0
| 0x0800e3c0 1022 movs r2, 0x10 ; 16
| 0x0800e3c2 90fbf2f0 sdiv r0, r0, r2
| 0x0800e3c6 0a22 movs r2, 0xa ; 10
| 0x0800e3c8 0b0c lsrs r3, r1, 0x10
| 0x0800e3ca dbb2 uxtb r3, r3
| 0x0800e3cc 1025 movs r5, 0x10 ; 16
| 0x0800e3ce 93fbf5f7 sdiv r7, r3, r5
| 0x0800e3d2 07fb1537 mls r7, r7, r5, r3
| 0x0800e3d6 02fb0077 mla r7, r2, r0, r7
| 0x0800e3da 080a lsrs r0, r1, 8
| 0x0800e3dc c0b2 uxtb r0, r0
| 0x0800e3de 1022 movs r2, 0x10 ; 16
| 0x0800e3e0 90fbf2f0 sdiv r0, r0, r2
| 0x0800e3e4 0a22 movs r2, 0xa ; 10
| 0x0800e3e6 0b0a lsrs r3, r1, 8
| 0x0800e3e8 dbb2 uxtb r3, r3
| 0x0800e3ea 1025 movs r5, 0x10 ; 16
| 0x0800e3ec 93fbf5fc sdiv ip, r3, r5
| 0x0800e3f0 0cfb153c mls ip, ip, r5, r3
| 0x0800e3f4 02fb00c8 mla r8, r2, r0, ip
| 0x0800e3f8 0800 movs r0, r1
| 0x0800e3fa c0b2 uxtb r0, r0
| 0x0800e3fc 1022 movs r2, 0x10 ; 16
| 0x0800e3fe 90fbf2f0 sdiv r0, r0, r2
| 0x0800e402 0a22 movs r2, 0xa ; 10
| 0x0800e404 c9b2 uxtb r1, r1
| 0x0800e406 1023 movs r3, 0x10 ; 16
| 0x0800e408 91fbf3f5 sdiv r5, r1, r3
| 0x0800e40c 05fb1315 mls r5, r5, r3, r1
| 0x0800e410 02fb0055 mla r5, r2, r0, r5
| 0x0800e414 2100 movs r1, r4
| 0x0800e416 0a20 movs r0, 0xa ; 10
| 0x0800e418 96fbf0f0 sdiv r0, r6, r0
| 0x0800e41c 19f0def8 bl func_275dc
| 0x0800e420 14eb4004 adds.w r4, r4, r0, lsl 1
| 0x0800e424 0a20 movs r0, 0xa ; 10
| 0x0800e426 2100 movs r1, r4
| 0x0800e428 96fbf0f2 sdiv r2, r6, r0
| 0x0800e42c 00fb1260 mls r0, r0, r2, r6
| 0x0800e430 19f0d4f8 bl func_275dc
| 0x0800e434 14eb4004 adds.w r4, r4, r0, lsl 1
| 0x0800e438 2100 movs r1, r4
| 0x0800e43a 0a20 movs r0, 0xa ; 10
| 0x0800e43c 97fbf0f0 sdiv r0, r7, r0
| 0x0800e440 19f0ccf8 bl func_275dc
| 0x0800e444 14eb4004 adds.w r4, r4, r0, lsl 1
| 0x0800e448 2e20 movs r0, 0x2e ; '.' ; 46
| 0x0800e44a 2080 strh r0, [r4]
| 0x0800e44c a41c adds r4, r4, 2
| 0x0800e44e 0a20 movs r0, 0xa ; 10
| 0x0800e450 2100 movs r1, r4
| 0x0800e452 97fbf0f2 sdiv r2, r7, r0
| 0x0800e456 00fb1270 mls r0, r0, r2, r7
| 0x0800e45a 19f0bff8 bl func_275dc
| 0x0800e45e 14eb4004 adds.w r4, r4, r0, lsl 1
| 0x0800e462 2100 movs r1, r4
| 0x0800e464 0a20 movs r0, 0xa ; 10
| 0x0800e466 98fbf0f0 sdiv r0, r8, r0
| 0x0800e46a 19f0b7f8 bl func_275dc
| 0x0800e46e 14eb4004 adds.w r4, r4, r0, lsl 1
| 0x0800e472 0a20 movs r0, 0xa ; 10
| 0x0800e474 2100 movs r1, r4
| 0x0800e476 98fbf0f2 sdiv r2, r8, r0
| 0x0800e47a 00fb1280 mls r0, r0, r2, r8
| 0x0800e47e 19f0adf8 bl func_275dc
| 0x0800e482 14eb4004 adds.w r4, r4, r0, lsl 1
| 0x0800e486 2100 movs r1, r4
| 0x0800e488 0a20 movs r0, 0xa ; 10
| 0x0800e48a 95fbf0f0 sdiv r0, r5, r0
| 0x0800e48e 19f0a5f8 bl func_275dc
| 0x0800e492 14eb4004 adds.w r4, r4, r0, lsl 1
| 0x0800e496 0a20 movs r0, 0xa ; 10
| 0x0800e498 2100 movs r1, r4
| 0x0800e49a 95fbf0f2 sdiv r2, r5, r0
| 0x0800e49e 00fb1250 mls r0, r0, r2, r5
| 0x0800e4a2 19f09bf8 bl func_275dc
| 0x0800e4a6 14eb4004 adds.w r4, r4, r0, lsl 1
| 0x0800e4aa 0020 movs r0, 0
| 0x0800e4ac 2080 strh r0, [r4]
| 0x0800e4ae a41c adds r4, r4, 2
\ 0x0800e4b0 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) something_with_radio_config_and_channel_info 98
| Caller: draw_channel_label
| something_with_radio_config_and_channel_info ();
| 0x0800e4b4 80b5 push {r7, lr}
| 0x0800e4b6 dff8bc16 ldr.w r1, [0x0800eb7a] ; [0x800eb78:4]=0x2001e8b8 some_state_var
| 0x0800e4ba 0978 ldrb r1, [r1]
| 0x0800e4bc 0229 cmp r1, 2 ; 2
| ,=< 0x0800e4be 24d1 bne 0x800e50a
| | 0x0800e4c0 9249 ldr r1, [0x0800e70c] ; [0x800e70c:4]=0x2001e94b gui_opmode2
| | 0x0800e4c2 0978 ldrb r1, [r1]
| | 0x0800e4c4 0129 cmp r1, 1 ; 1
| ,==< 0x0800e4c6 20d1 bne 0x800e50a
| || 0x0800e4c8 dff8ac16 ldr.w r1, [0x0800eb7c] ; [0x800eb7c:4]=0x2001dadc md380_radio_config
| || 0x0800e4cc 0978 ldrb r1, [r1]
| || 0x0800e4ce 0529 cmp r1, 5 ; 5
| ,===< 0x0800e4d0 18d0 beq 0x800e504
| ||| 0x0800e4d2 dff8a416 ldr.w r1, [0x0800eb7e] ; [0x800eb7c:4]=0x2001dadc md380_radio_config
| ||| 0x0800e4d6 0978 ldrb r1, [r1]
| ||| 0x0800e4d8 0629 cmp r1, 6 ; 6
| ,====< 0x0800e4da 13d0 beq 0x800e504
| |||| 0x0800e4dc dff89816 ldr.w r1, [0x0800eb7c] ; [0x800eb7c:4]=0x2001dadc md380_radio_config
| |||| 0x0800e4e0 0978 ldrb r1, [r1]
| |||| 0x0800e4e2 0829 cmp r1, 8 ; 8
| ,=====< 0x0800e4e4 0ed0 beq 0x800e504
| ||||| 0x0800e4e6 dff89016 ldr.w r1, [0x0800eb7e] ; [0x800eb7c:4]=0x2001dadc md380_radio_config
| ||||| 0x0800e4ea 0978 ldrb r1, [r1]
| ||||| 0x0800e4ec 0929 cmp r1, 9 ; 9
| ,======< 0x0800e4ee 09d0 beq 0x800e504
| |||||| 0x0800e4f0 dff88416 ldr.w r1, [0x0800eb7c] ; [0x800eb7c:4]=0x2001dadc md380_radio_config
| |||||| 0x0800e4f4 0978 ldrb r1, [r1]
| |||||| 0x0800e4f6 0a29 cmp r1, 0xa ; 10
| ,=======< 0x0800e4f8 04d0 beq 0x800e504
| ||||||| 0x0800e4fa dff87c16 ldr.w r1, [0x0800eb7e] ; [0x800eb7c:4]=0x2001dadc md380_radio_config
| ||||||| 0x0800e4fe 0978 ldrb r1, [r1]
| ||||||| 0x0800e500 0b29 cmp r1, 0xb ; 11
| ========< 0x0800e502 02d1 bne 0x800e50a
| `````---> 0x0800e504 8349 ldr r1, [0x0800e714] ; [0x800e714:4]=0x2001de78 struct_channel_info2
| || 0x0800e506 0969 ldr r1, [r1, 0x10]
| ,===< 0x0800e508 02e0 b 0x800e510
| -----``-> 0x0800e50a dff8a01d ldr.w r1, [0x0800f2b2] ; [0x800f2b0:4]=0x2001ded8 ConfigData
| | 0x0800e50e 0969 ldr r1, [r1, 0x10]
| `---> 0x0800e510 fff742ff bl convert_freq_to_str
\ 0x0800e514 01bd pop {r0, pc}
/ (fcn) draw_zone_channel 428
| Caller: display_idle_screen scr_mode_stable
| draw_zone_channel ();
| 0x0800e538 10b5 push {r4, lr}
| 0x0800e53a 82b0 sub sp, 8
| 0x0800e53c dff80806 ldr.w r0, [0x0800eb4c] ; [0x800eb4c:4]=0x2001e87a
| 0x0800e540 13f098f9 bl gfx_select_font
| 0x0800e544 0020 movs r0, 0
| 0x0800e546 0ef013ff bl gfx_set_fg_color
| 0x0800e54a dff8f005 ldr.w r0, [0x0800eb42] ; [0x800eb40:4]=0x2001e600 q_struct_1
| 0x0800e54e 0ef00bff bl gfx_set_bg_color
| 0x0800e552 dff82806 ldr.w r0, [0x0800eb82] ; [0x800eb80:4]=0x2001e95e
| 0x0800e556 c07d ldrb r0, [r0, 0x17]
| 0x0800e558 ff28 cmp r0, 0xff ; 255
| ,=< 0x0800e55a 60d1 bne 0x800e61e
| | 0x0800e55c dff82006 ldr.w r0, [0x0800eb84] ; [0x800eb84:4]=0x2001e93e
| | 0x0800e560 0078 ldrb r0, [r0]
| | 0x0800e562 0c28 cmp r0, 0xc ; 12
| ,==< 0x0800e564 42d3 blo 0x800e5ec
| || 0x0800e566 dff81c06 ldr.w r0, [0x0800eb8a] ; [0x800eb88:4]=0x2001e95d
| || 0x0800e56a 0078 ldrb r0, [r0]
| || 0x0800e56c 411c adds r1, r0, 1
| || 0x0800e56e dff81426 ldr.w r2, [0x0800eb8a] ; [0x800eb88:4]=0x2001e95d
| || 0x0800e572 1170 strb r1, [r2]
| || 0x0800e574 c0b2 uxtb r0, r0
| || 0x0800e576 0528 cmp r0, 5 ; 5
| ,===< 0x0800e578 04d3 blo 0x800e584
| ||| 0x0800e57a dff80c06 ldr.w r0, [0x0800eb8e] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| ||| 0x0800e57e 0078 ldrb r0, [r0]
| ||| 0x0800e580 0128 cmp r0, 1 ; 1
| ,====< 0x0800e582 0ed1 bne 0x800e5a2
| |`---> 0x0800e584 dff8fc05 ldr.w r0, [0x0800eb88] ; [0x800eb88:4]=0x2001e95d
| | || 0x0800e588 0078 ldrb r0, [r0]
| | || 0x0800e58a 1e28 cmp r0, 0x1e ; 30
| |,===< 0x0800e58c 04d3 blo 0x800e598
| |||| 0x0800e58e dff8f805 ldr.w r0, [0x0800eb8e] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| |||| 0x0800e592 0078 ldrb r0, [r0]
| |||| 0x0800e594 0128 cmp r0, 1 ; 1
| ,=====< 0x0800e596 04d0 beq 0x800e5a2
| ||`---> 0x0800e598 dff8ec05 ldr.w r0, [0x0800eb8c] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| || || 0x0800e59c 0078 ldrb r0, [r0]
| || || 0x0800e59e 0028 cmp r0, 0
| ||,===< 0x0800e5a0 4ad1 bne 0x800e638
| ``----> 0x0800e5a2 0b20 movs r0, 0xb ; 11
| ||| 0x0800e5a4 0090 str r0, [sp]
| ||| ;-- draw_channel_label:
| ||| 0x0800e5a6 9d23 movs r3, 0x9d ; 157
| ||| 0x0800e5a8 2222 movs r2, 0x22 ; '"' ; 34
| ||| 0x0800e5aa 2d21 movs r1, 0x2d ; '-' ; 45
| ||| 0x0800e5ac dff8d805 ldr.w r0, [0x0800eb8c] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| ||| 0x0800e5b0 0078 ldrb r0, [r0]
| ||| 0x0800e5b2 dff8d845 ldr.w r4, [0x0800eb92] ; [0x800eb90:4]=0x2001e95c
| ||| 0x0800e5b6 14eb4000 adds.w r0, r4, r0, lsl 1
| ||| 0x0800e5ba 0ff0aefb bl gfx_drawtext4
| ||| 0x0800e5be dff8c805 ldr.w r0, [0x0800eb8e] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| ||| 0x0800e5c2 0078 ldrb r0, [r0]
| ||| 0x0800e5c4 411c adds r1, r0, 1
| ||| 0x0800e5c6 dff8c025 ldr.w r2, [0x0800eb8e] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| ||| 0x0800e5ca 1170 strb r1, [r2]
| ||| 0x0800e5cc dff8c015 ldr.w r1, [0x0800eb94] ; [0x800eb94:4]=0x2001de98
| ||| 0x0800e5d0 0978 ldrb r1, [r1]
| ||| 0x0800e5d2 491e subs r1, r1, 1
| ||| 0x0800e5d4 c0b2 uxtb r0, r0
| ||| 0x0800e5d6 8142 cmp r1, r0
| ,====< 0x0800e5d8 03da bge 0x800e5e2
| |||| 0x0800e5da dff8ac05 ldr.w r0, [0x0800eb8e] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| |||| 0x0800e5de 0021 movs r1, 0
| |||| 0x0800e5e0 0170 strb r1, [r0]
| `----> 0x0800e5e2 dff8a005 ldr.w r0, [0x0800eb8a] ; [0x800eb88:4]=0x2001e95d
| ||| 0x0800e5e6 0021 movs r1, 0
| ||| 0x0800e5e8 0170 strb r1, [r0]
| ,====< 0x0800e5ea 25e0 b 0x800e638
| ||`--> 0x0800e5ec dff88405 ldr.w r0, [0x0800eb78] ; [0x800eb78:4]=0x2001e8b8 some_state_var
| || | 0x0800e5f0 0078 ldrb r0, [r0]
| || | 0x0800e5f2 0228 cmp r0, 2 ; 2
| ||,==< 0x0800e5f4 09d1 bne 0x800e60a
| |||| 0x0800e5f6 0c20 movs r0, 0xc ; 12
| |||| 0x0800e5f8 0090 str r0, [sp]
| |||| 0x0800e5fa 9d23 movs r3, 0x9d ; 157
| |||| 0x0800e5fc 2222 movs r2, 0x22 ; '"' ; 34
| |||| 0x0800e5fe 2d21 movs r1, 0x2d ; '-' ; 45
| |||| 0x0800e600 dff89005 ldr.w r0, [menu_dispatcher] ; [0x800eb98:4]=0xb085b530
| |||| 0x0800e604 0ff089fb bl gfx_drawtext4
| ,=====< 0x0800e608 16e0 b 0x800e638
| |||`--> 0x0800e60a 0c20 movs r0, 0xc ; 12
| ||| | 0x0800e60c 0090 str r0, [sp]
| ||| | 0x0800e60e 9d23 movs r3, 0x9d ; 157
| ||| | 0x0800e610 2222 movs r2, 0x22 ; '"' ; 34
| ||| | 0x0800e612 2d21 movs r1, 0x2d ; '-' ; 45
| ||| | 0x0800e614 dff8980c ldr.w r0, [0x0800f2b4] ; [0x800f2b4:4]=0x2001e0d0 print_buffer
| ||| | 0x0800e618 0ff07ffb bl gfx_drawtext4
| |||,==< 0x0800e61c 0ce0 b 0x800e638
| ||||`-> 0x0800e61e dff8940c ldr.w r0, [0x0800f2ba] ; [0x800f2b8:4]=0x2001e95b
| |||| 0x0800e622 fff747ff bl something_with_radio_config_and_channel_info
| |||| 0x0800e626 dff88c0c ldr.w r0, [0x0800f2ba] ; [0x800f2b8:4]=0x2001e95b
| |||| 0x0800e62a 0c21 movs r1, 0xc ; 12
| |||| 0x0800e62c 0091 str r1, [sp]
| |||| 0x0800e62e 9d23 movs r3, 0x9d ; 157
| |||| 0x0800e630 2222 movs r2, 0x22 ; '"' ; 34
| |||| 0x0800e632 2d21 movs r1, 0x2d ; '-' ; 45
| |||| 0x0800e634 0ff071fb bl gfx_drawtext4
| ````--> 0x0800e638 dff87c0c ldr.w r0, [0x0800f2bc] ; [0x800f2bc:4]=0x2001e93d
| 0x0800e63c 0078 ldrb r0, [r0]
| 0x0800e63e 0728 cmp r0, 7 ; 7
| ,=< 0x0800e640 41d3 blo 0x800e6c6
| | 0x0800e642 dff8780c ldr.w r0, [0x0800f2c2] ; [0x800f2c0:4]=0x2001e95a
| | 0x0800e646 0078 ldrb r0, [r0]
| | 0x0800e648 411c adds r1, r0, 1
| | 0x0800e64a dff8702c ldr.w r2, [0x0800f2c2] ; [0x800f2c0:4]=0x2001e95a
| | 0x0800e64e 1170 strb r1, [r2]
| | 0x0800e650 c0b2 uxtb r0, r0
| | 0x0800e652 0528 cmp r0, 5 ; 5
| ,==< 0x0800e654 04d3 blo 0x800e660
| || 0x0800e656 dff8680c ldr.w r0, [0x0800f2c6] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| || 0x0800e65a 0078 ldrb r0, [r0]
| || 0x0800e65c 0128 cmp r0, 1 ; 1
| ,===< 0x0800e65e 0ed1 bne 0x800e67e
| |`--> 0x0800e660 dff8580c ldr.w r0, [0x0800f2c0] ; [0x800f2c0:4]=0x2001e95a
| | | 0x0800e664 0078 ldrb r0, [r0]
| | | 0x0800e666 1e28 cmp r0, 0x1e ; 30
| |,==< 0x0800e668 04d3 blo 0x800e674
| ||| 0x0800e66a dff8540c ldr.w r0, [0x0800f2c6] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| ||| 0x0800e66e 0078 ldrb r0, [r0]
| ||| 0x0800e670 0128 cmp r0, 1 ; 1
| ,====< 0x0800e672 04d0 beq 0x800e67e
| ||`--> 0x0800e674 dff8480c ldr.w r0, [0x0800f2c4] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| || | 0x0800e678 0078 ldrb r0, [r0]
| || | 0x0800e67a 0028 cmp r0, 0
| ||,==< 0x0800e67c 23d1 bne 0x800e6c6
| ``---> 0x0800e67e 0620 movs r0, 6 ; 6
| || 0x0800e680 0090 str r0, [sp]
| || ;-- draw_zone_label:
| || 0x0800e682 6823 movs r3, 0x68 ; 'h' ; 104
| || 0x0800e684 4b22 movs r2, 0x4b ; 'K' ; 75
| || 0x0800e686 2221 movs r1, 0x22 ; '"' ; 34
| || 0x0800e688 dff8340c ldr.w r0, [0x0800f2c4] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| || 0x0800e68c 0078 ldrb r0, [r0]
| || 0x0800e68e dff8344c ldr.w r4, [0x0800f2ca] ; [0x800f2c8:4]=0x2001e959
| || 0x0800e692 14eb4000 adds.w r0, r4, r0, lsl 1
| || 0x0800e696 0ff040fb bl gfx_drawtext4
| || 0x0800e69a dff8240c ldr.w r0, [0x0800f2c6] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| || 0x0800e69e 0078 ldrb r0, [r0]
| || 0x0800e6a0 411c adds r1, r0, 1
| || 0x0800e6a2 dff81c2c ldr.w r2, [0x0800f2c6] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| || 0x0800e6a6 1170 strb r1, [r2]
| || 0x0800e6a8 dff81c1c ldr.w r1, [0x0800f2cc] ; [0x800f2cc:4]=0x40020c00 io_GPIOD
| || 0x0800e6ac 0978 ldrb r1, [r1]
| || 0x0800e6ae 491e subs r1, r1, 1
| || 0x0800e6b0 c0b2 uxtb r0, r0
| || 0x0800e6b2 8142 cmp r1, r0
| ,===< 0x0800e6b4 03da bge 0x800e6be
| ||| 0x0800e6b6 dff8080c ldr.w r0, [0x0800f2c6] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| ||| 0x0800e6ba 0021 movs r1, 0
| ||| 0x0800e6bc 0170 strb r1, [r0]
| `---> 0x0800e6be dff8fc0b ldr.w r0, [0x0800f2c2] ; [0x800f2c0:4]=0x2001e95a
| || 0x0800e6c2 0021 movs r1, 0
| || 0x0800e6c4 0170 strb r1, [r0]
| ``-> 0x0800e6c6 7ff07f40 mvns r0, 0xff000000
| 0x0800e6ca 0ef04dfe bl gfx_set_bg_color
| 0x0800e6ce 7ff07f40 mvns r0, 0xff000000
| 0x0800e6d2 0ef04dfe bl gfx_set_fg_color
| 0x0800e6d6 6e23 movs r3, 0x6e ; 'n' ; 110
| 0x0800e6d8 9f22 movs r2, 0x9f ; 159
| 0x0800e6da 1021 movs r1, 0x10 ; 16
| 0x0800e6dc 9e20 movs r0, 0x9e ; 158
| 0x0800e6de 0ff0d5f8 bl gfx_blockfill
\ 0x0800e6e2 13bd pop {r0, r1, r4, pc}
/ (fcn) func_0e6e8 14
| func_0e6e8 ();
| 0x0800e6e8 80b5 push {r7, lr}
| 0x0800e6ea dff8c01b ldr.w r1, [0x0800f2b2] ; [0x800f2b0:4]=0x2001ded8 ConfigData
| 0x0800e6ee 4969 ldr r1, [r1, 0x14]
| 0x0800e6f0 fff752fe bl convert_freq_to_str
\ 0x0800e6f4 01bd pop {r0, pc}
/ (fcn) 14
| Caller: Create_Menu_Entry_RX_QRG_shown Create_Menu_Entry_RX_QRG_1
| menu_RX_QRG_to_str ();
| 0x0800e6f6 80b5 push {r7, lr}
| 0x0800e6f8 dff8b01b ldr.w r1, [0x0800f2b0] ; [0x800f2b0:4]=0x2001ded8 ConfigData
| 0x0800e6fc 0969 ldr r1, [r1, 0x10]
| 0x0800e6fe fff74bfe bl convert_freq_to_str
\ 0x0800e702 01bd pop {r0, pc}
/ (fcn) 1038
| Caller: update_scr_35
| Volume_Menu ();
| 0x0800e728 10b5 push {r4, lr}
| 0x0800e72a 84b0 sub sp, 0x10
| 0x0800e72c 4021 movs r1, 0x40 ; '@' ; 64
| 0x0800e72e dff89c0b ldr.w r0, [0x0800f2d2] ; [0x800f2d0:4]=0x2001e908
| 0x0800e732 1df05cf8 bl GPIO_ReadInputDataBit
| 0x0800e736 0128 cmp r0, 1 ; 1
| ,=< 0x0800e738 40f0f581 bne.w 0x800eb26
| | 0x0800e73c dff8900b ldr.w r0, [0x0800f2d4] ; [0x800f2d4:4]=0x20004acc md380_menu_depth
| | 0x0800e740 0078 ldrb r0, [r0]
| | 0x0800e742 0028 cmp r0, 0
| ,==< 0x0800e744 40f08e80 bne.w 0x800e864
| || 0x0800e748 dff8880b ldr.w r0, [0x0800f2d8] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| || 0x0800e74c 0078 ldrb r0, [r0]
| || 0x0800e74e ff28 cmp r0, 0xff ; 255
| ,===< 0x0800e750 03d1 bne 0x800e75a
| ||| 0x0800e752 dff8800b ldr.w r0, [0x0800f2da] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| ||| 0x0800e756 0021 movs r1, 0
| ||| 0x0800e758 0170 strb r1, [r0]
| `---> 0x0800e75a dff8780b ldr.w r0, [0x0800f2da] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| || 0x0800e75e 0078 ldrb r0, [r0]
| || 0x0800e760 0c21 movs r1, 0xc ; 12
| || 0x0800e762 dff8742b ldr.w r2, [0x0800f2de] ; [0x800f2dc:4]=0x2001e6ec
| || 0x0800e766 01fb0020 mla r0, r1, r0, r2
| || 0x0800e76a 0c30 adds r0, 0xc
| || 0x0800e76c dff86c1b ldr.w r1, [0x0800f2e0] ; [0x800f2e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800e770 0968 ldr r1, [r1]
| || 0x0800e772 dff86c2b ldr.w r2, [0x0800f2e6] ; [0x800f2e4:4]=0x2001e915 md380_menu_id
| || 0x0800e776 12eb8101 adds.w r1, r2, r1, lsl 2
| || 0x0800e77a d1f8a013 ldr.w r1, [r1, 0x3a0]
| || 0x0800e77e 0160 str r1, [r0]
| || 0x0800e780 dff8601b ldr.w r1, [0x0800f2e8] ; [0x800f2e8:4]=0x2001b274 md380_menu_mem_base
| || 0x0800e784 0978 ldrb r1, [r1]
| || 0x0800e786 1422 movs r2, 0x14 ; 20
| || 0x0800e788 dff85c3b ldr.w r3, [0x0800f2ec] ; [0x800f2ec:4]=0x800fc85 menu_entry_back_1
| || 0x0800e78c 02fb0131 mla r1, r2, r1, r3
| || 0x0800e790 4160 str r1, [r0, 4]
| || 0x0800e792 0121 movs r1, 1 ; 1
| || 0x0800e794 0172 strb r1, [r0, 8]
| || 0x0800e796 0021 movs r1, 0
| || 0x0800e798 4172 strb r1, [r0, 9]
| || 0x0800e79a 0021 movs r1, 0
| || 0x0800e79c 4181 strh r1, [r0, 0xa]
| || 0x0800e79e dff8340b ldr.w r0, [0x0800f2da] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| || 0x0800e7a2 0078 ldrb r0, [r0]
| || 0x0800e7a4 0028 cmp r0, 0
| ,===< 0x0800e7a6 11d1 bne 0x800e7cc
| ||| ;-- :
| ||| 0x0800e7a8 0120 movs r0, 1 ; 1
| ||| 0x0800e7aa 0290 str r0, [sp, 8]
| ||| 0x0800e7ac 0f20 movs r0, 0xf ; 15
| ||| 0x0800e7ae 0190 str r0, [sp, 4]
| ||| 0x0800e7b0 0620 movs r0, 6 ; 6
| ||| 0x0800e7b2 0090 str r0, [sp]
| ||| 0x0800e7b4 dff8343b ldr.w r3, [0x0800f2f0] ; [0x800f2f0:4]=0x800fc97
| ||| 0x0800e7b8 dff8342b ldr.w r2, [0x0800f2f4] ; [0x800f2f4:4]=0x2001e484
| ||| 0x0800e7bc dff8341b ldr.w r1, [menu_F_4144] ; [0x800f2f8:4]=0x2400b510
| ||| 0x0800e7c0 dff8200b ldr.w r0, [0x0800f2e8] ; [0x800f2e8:4]=0x2001b274 md380_menu_mem_base
| ||| 0x0800e7c4 0078 ldrb r0, [r0]
| ||| 0x0800e7c6 fdf7b2ff bl md380_create_menu_entry
| ,====< 0x0800e7ca 10e0 b 0x800e7ee
| |`---> ;-- :
| |`---> 0x0800e7cc 0120 movs r0, 1 ; 1
| | || 0x0800e7ce 0290 str r0, [sp, 8]
| | || 0x0800e7d0 0120 movs r0, 1 ; 1
| | || 0x0800e7d2 0190 str r0, [sp, 4]
| | || 0x0800e7d4 0620 movs r0, 6 ; 6
| | || 0x0800e7d6 0090 str r0, [sp]
| | || 0x0800e7d8 dff8103b ldr.w r3, [0x0800f2f0] ; [0x800f2f0:4]=0x800fc97
| | || 0x0800e7dc dff80c2b ldr.w r2, [0x0800f2f0] ; [0x800f2f0:4]=0x800fc97
| | || 0x0800e7e0 dff8101b ldr.w r1, [menu_F_4144] ; [0x800f2f8:4]=0x2400b510
| | || 0x0800e7e4 dff8fc0a ldr.w r0, [0x0800f2e8] ; [0x800f2e8:4]=0x2001b274 md380_menu_mem_base
| | || 0x0800e7e8 0078 ldrb r0, [r0]
| | || 0x0800e7ea fdf7a0ff bl md380_create_menu_entry
| `----> 0x0800e7ee dff8e40a ldr.w r0, [0x0800f2da] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| || 0x0800e7f2 0078 ldrb r0, [r0]
| || 0x0800e7f4 401c adds r0, r0, 1
| || 0x0800e7f6 dff8dc1a ldr.w r1, [0x0800f2da] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| || 0x0800e7fa 0870 strb r0, [r1]
| || 0x0800e7fc dff8d40a ldr.w r0, [0x0800f2d8] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| || 0x0800e800 0078 ldrb r0, [r0]
| || 0x0800e802 01f027fa bl menu_add_number_of_menuentries_counts
| || 0x0800e806 dff8dc1a ldr.w r1, [0x0800f2ea] ; [0x800f2e8:4]=0x2001b274 md380_menu_mem_base
| || 0x0800e80a 0870 strb r0, [r1]
| || 0x0800e80c dff8c40a ldr.w r0, [0x0800f2d8] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| || 0x0800e810 0078 ldrb r0, [r0]
| || 0x0800e812 0c21 movs r1, 0xc ; 12
| || 0x0800e814 dff8c02a ldr.w r2, [0x0800f2dc] ; [0x800f2dc:4]=0x2001e6ec
| || 0x0800e818 01fb0020 mla r0, r1, r0, r2
| || 0x0800e81c dff8741c ldr.w r1, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| || 0x0800e820 0860 str r0, [r1]
| || 0x0800e822 0020 movs r0, 0
| ,===< 0x0800e824 00e0 b 0x800e828
| .----> 0x0800e826 401c adds r0, r0, 1
| |`---> 0x0800e828 dff8681c ldr.w r1, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| | || 0x0800e82c 0968 ldr r1, [r1]
| | || 0x0800e82e 097a ldrb r1, [r1, 8]
| | || 0x0800e830 8842 cmp r0, r1
| |,===< 0x0800e832 17da bge 0x800e864
| |||| 0x0800e834 1421 movs r1, 0x14 ; 20
| |||| 0x0800e836 dff85c2c ldr.w r2, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| |||| 0x0800e83a 1268 ldr r2, [r2]
| |||| 0x0800e83c 5268 ldr r2, [r2, 4]
| |||| 0x0800e83e 01fb0021 mla r1, r1, r0, r2
| |||| 0x0800e842 c989 ldrh r1, [r1, 0xe]
| |||| 0x0800e844 0029 cmp r1, 0
| `====< 0x0800e846 eed0 beq 0x800e826
| ||| 0x0800e848 1421 movs r1, 0x14 ; 20
| ||| 0x0800e84a dff8482c ldr.w r2, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||| 0x0800e84e 1268 ldr r2, [r2]
| ||| 0x0800e850 5268 ldr r2, [r2, 4]
| ||| 0x0800e852 01fb0021 mla r1, r1, r0, r2
| ||| 0x0800e856 dff8402c ldr.w r2, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| ||| 0x0800e85a 1160 str r1, [r2]
| ||| 0x0800e85c dff8341c ldr.w r1, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||| 0x0800e860 0968 ldr r1, [r1]
| ||| 0x0800e862 4872 strb r0, [r1, 9]
| ``--> 0x0800e864 dff88c4a ldr.w r4, [menu_F_4144] ; [0x800f2f8:4]=0x2400b510
| | 0x0800e868 dff8300c ldr.w r0, [0x0800f4a0] ; [0x800f4a0:4]=0x2001e906
| | 0x0800e86c 0078 ldrb r0, [r0]
| | 0x0800e86e 0128 cmp r0, 1 ; 1
| ,==< 0x0800e870 08d1 bne 0x800e884
| || 0x0800e872 49f2f370 movw r0, 0x97f3
| || 0x0800e876 2080 strh r0, [r4]
| || 0x0800e878 a41c adds r4, r4, 2
| || 0x0800e87a 49f2cf10 movw r0, 0x91cf
| || 0x0800e87e 2080 strh r0, [r4]
| || 0x0800e880 a41c adds r4, r4, 2
| ,===< 0x0800e882 11e0 b 0x800e8a8
| |`--> 0x0800e884 5620 movs r0, 0x56 ; 'V' ; 86
| | | 0x0800e886 2080 strh r0, [r4]
| | | 0x0800e888 a41c adds r4, r4, 2
| | | 0x0800e88a 6f20 movs r0, 0x6f ; 'o' ; 111
| | | 0x0800e88c 2080 strh r0, [r4]
| | | 0x0800e88e a41c adds r4, r4, 2
| | | 0x0800e890 6c20 movs r0, 0x6c ; 'l' ; 108
| | | 0x0800e892 2080 strh r0, [r4]
| | | 0x0800e894 a41c adds r4, r4, 2
| | | 0x0800e896 7520 movs r0, 0x75 ; 'u' ; 117
| | | 0x0800e898 2080 strh r0, [r4]
| | | 0x0800e89a a41c adds r4, r4, 2
| | | 0x0800e89c 6d20 movs r0, 0x6d ; 'm' ; 109
| | | 0x0800e89e 2080 strh r0, [r4]
| | | 0x0800e8a0 a41c adds r4, r4, 2
| | | 0x0800e8a2 6520 movs r0, 0x65 ; 'e' ; 101
| | | 0x0800e8a4 2080 strh r0, [r4]
| | | 0x0800e8a6 a41c adds r4, r4, 2
| `---> 0x0800e8a8 2020 movs r0, 0x20 ; 32
| | 0x0800e8aa 2080 strh r0, [r4]
| | 0x0800e8ac a41c adds r4, r4, 2
| | 0x0800e8ae 2100 movs r1, r4
| | 0x0800e8b0 dff8ec0b ldr.w r0, [0x0800f4a4] ; [0x800f4a4:4]=0x2001e81c not_the_volume_knob
| | 0x0800e8b4 0078 ldrb r0, [r0]
| | 0x0800e8b6 18f091fe bl func_275dc
| | 0x0800e8ba c0b2 uxtb r0, r0
| | 0x0800e8bc 14eb4004 adds.w r4, r4, r0, lsl 1
| | 0x0800e8c0 0020 movs r0, 0
| | 0x0800e8c2 2080 strh r0, [r4]
| | 0x0800e8c4 a41c adds r4, r4, 2
| | 0x0800e8c6 dff8080a ldr.w r0, [0x0800f2d6] ; [0x800f2d4:4]=0x20004acc md380_menu_depth
| | 0x0800e8ca 0078 ldrb r0, [r0]
| | 0x0800e8cc 0028 cmp r0, 0
| ,==< 0x0800e8ce 40f0b380 bne.w 0x800ea38
| || 0x0800e8d2 a148 ldr r0, [0x0800eb5a] ; [0x800eb58:4]=0x2001e822
| || 0x0800e8d4 b0f90000 ldrsh.w r0, [r0]
| || 0x0800e8d8 0ef07cf8 bl gfx_1c9d4
| || 0x0800e8dc 9e48 ldr r0, [0x0800eb58] ; [0x800eb58:4]=0x2001e822
| || 0x0800e8de 0021 movs r1, 0
| || 0x0800e8e0 0180 strh r1, [r0]
| || 0x0800e8e2 9e48 ldr r0, [0x0800eb5e] ; [0x800eb5c:4]=0x2001e824
| || 0x0800e8e4 b0f90000 ldrsh.w r0, [r0]
| || 0x0800e8e8 0ef074f8 bl gfx_1c9d4
| || 0x0800e8ec 9b48 ldr r0, [0x0800eb5c] ; [0x800eb5c:4]=0x2001e824
| || 0x0800e8ee 0021 movs r1, 0
| || 0x0800e8f0 0180 strh r1, [r0]
| || 0x0800e8f2 fff7dbfb bl F_786
| || 0x0800e8f6 dff8ac0b ldr.w r0, [0x0800f4aa] ; [0x800f4a8:4]=0xff1414
| || 0x0800e8fa b0f90000 ldrsh.w r0, [r0]
| || 0x0800e8fe 0ef069f8 bl gfx_1c9d4
| || 0x0800e902 dff8a00b ldr.w r0, [0x0800f4aa] ; [0x800f4a8:4]=0xff1414
| || 0x0800e906 0021 movs r1, 0
| || 0x0800e908 0180 strh r1, [r0]
| || 0x0800e90a 7ff07f40 mvns r0, 0xff000000
| || 0x0800e90e 0ef02ffd bl gfx_set_fg_color
| || 0x0800e912 1223 movs r3, 0x12 ; 18
| || 0x0800e914 9f22 movs r2, 0x9f ; 159
| || 0x0800e916 0021 movs r1, 0
| || 0x0800e918 0020 movs r0, 0
| || 0x0800e91a 0ef0b7ff bl gfx_blockfill
| || 0x0800e91e 7ff07f40 mvns r0, 0xff000000
| || 0x0800e922 0ef021fd bl gfx_set_bg_color
| || 0x0800e926 8548 ldr r0, [0x0800eb3e] ; [0x800eb3c:4]=0xff8032
| || 0x0800e928 0ef022fd bl gfx_set_fg_color
| || 0x0800e92c 6d23 movs r3, 0x6d ; 'm' ; 109
| || 0x0800e92e 9f22 movs r2, 0x9f ; 159
| || 0x0800e930 1421 movs r1, 0x14 ; 20
| || 0x0800e932 0020 movs r0, 0
| || 0x0800e934 0ef0aaff bl gfx_blockfill
| || 0x0800e938 7ff07f40 mvns r0, 0xff000000
| || 0x0800e93c 0ef014fd bl gfx_set_bg_color
| || 0x0800e940 0020 movs r0, 0
| || 0x0800e942 0ef015fd bl gfx_set_fg_color
| || 0x0800e946 1220 movs r0, 0x12 ; 18
| || 0x0800e948 0090 str r0, [sp]
| || 0x0800e94a 9f23 movs r3, 0x9f ; 159
| || 0x0800e94c 0022 movs r2, 0
| || 0x0800e94e 0021 movs r1, 0
| || 0x0800e950 dff88809 ldr.w r0, [0x0800f2e0] ; [0x800f2e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800e954 0068 ldr r0, [r0]
| || 0x0800e956 dff88849 ldr.w r4, [0x0800f2e6] ; [0x800f2e4:4]=0x2001e915 md380_menu_id
| || 0x0800e95a 14eb8000 adds.w r0, r4, r0, lsl 2
| || 0x0800e95e d0f8a003 ldr.w r0, [r0, 0x3a0]
| || 0x0800e962 fff7b9fa bl gfx_drawtext10
| || 0x0800e966 7ff07f40 mvns r0, 0xff000000
| || 0x0800e96a 0ef001fd bl gfx_set_fg_color
| || 0x0800e96e 7f23 movs r3, 0x7f ; 127
| || 0x0800e970 5b22 movs r2, 0x5b ; '[' ; 91
| || 0x0800e972 6e21 movs r1, 0x6e ; 'n' ; 110
| || 0x0800e974 4620 movs r0, 0x46 ; 'F' ; 70
| || 0x0800e976 0ef089ff bl gfx_blockfill
| || 0x0800e97a 1423 movs r3, 0x14 ; 20
| || 0x0800e97c 9f22 movs r2, 0x9f ; 159
| || 0x0800e97e 1421 movs r1, 0x14 ; 20
| || 0x0800e980 0020 movs r0, 0
| || 0x0800e982 0ef083ff bl gfx_blockfill
| || 0x0800e986 6d23 movs r3, 0x6d ; 'm' ; 109
| || 0x0800e988 9f22 movs r2, 0x9f ; 159
| || 0x0800e98a 6d21 movs r1, 0x6d ; 'm' ; 109
| || 0x0800e98c 0020 movs r0, 0
| || 0x0800e98e 0ef07dff bl gfx_blockfill
| || 0x0800e992 0020 movs r0, 0
| || 0x0800e994 0ef0ecfc bl gfx_set_fg_color
| || 0x0800e998 1323 movs r3, 0x13 ; 19
| || 0x0800e99a 9f22 movs r2, 0x9f ; 159
| || 0x0800e99c 1321 movs r1, 0x13 ; 19
| || 0x0800e99e 0020 movs r0, 0
| || 0x0800e9a0 0ef074ff bl gfx_blockfill
| || 0x0800e9a4 dff8000b ldr.w r0, [menu_func_0f4ac] ; [0x800f4ac:4]=0x2400b510
| || 0x0800e9a8 0ef0e2fc bl gfx_set_fg_color
| || 0x0800e9ac 7e23 movs r3, 0x7e ; '~' ; 126
| || 0x0800e9ae 4522 movs r2, 0x45 ; 'E' ; 69
| || 0x0800e9b0 6e21 movs r1, 0x6e ; 'n' ; 110
| || 0x0800e9b2 0120 movs r0, 1 ; 1
| || 0x0800e9b4 0ef06aff bl gfx_blockfill
| || 0x0800e9b8 7e23 movs r3, 0x7e ; '~' ; 126
| || 0x0800e9ba 9f22 movs r2, 0x9f ; 159
| || 0x0800e9bc 6e21 movs r1, 0x6e ; 'n' ; 110
| || 0x0800e9be 5c20 movs r0, 0x5c ; '\' ; 92
| || 0x0800e9c0 0ef064ff bl gfx_blockfill
| || 0x0800e9c4 dff8e00a ldr.w r0, [menu_func_0f4ac] ; [0x800f4ac:4]=0x2400b510
| || 0x0800e9c8 0ef0cefc bl gfx_set_bg_color
| || 0x0800e9cc 7ff07f40 mvns r0, 0xff000000
| || 0x0800e9d0 0ef0cefc bl gfx_set_fg_color
| || 0x0800e9d4 7e20 movs r0, 0x7e ; '~' ; 126
| || 0x0800e9d6 0090 str r0, [sp]
| || 0x0800e9d8 4523 movs r3, 0x45 ; 'E' ; 69
| || 0x0800e9da 6e22 movs r2, 0x6e ; 'n' ; 110
| || 0x0800e9dc 0121 movs r1, 1 ; 1
| || 0x0800e9de dff8fc08 ldr.w r0, [0x0800f2e2] ; [0x800f2e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800e9e2 0068 ldr r0, [r0]
| || 0x0800e9e4 dff8f848 ldr.w r4, [0x0800f2e4] ; [0x800f2e4:4]=0x2001e915 md380_menu_id
| || 0x0800e9e8 14eb8000 adds.w r0, r4, r0, lsl 2
| || 0x0800e9ec d0f82003 ldr.w r0, [r0, 0x320]
| || 0x0800e9f0 fff772fa bl gfx_drawtext10
| || 0x0800e9f4 7e20 movs r0, 0x7e ; '~' ; 126
| || 0x0800e9f6 0090 str r0, [sp]
| || 0x0800e9f8 9f23 movs r3, 0x9f ; 159
| || 0x0800e9fa 6e22 movs r2, 0x6e ; 'n' ; 110
| || 0x0800e9fc 5c21 movs r1, 0x5c ; '\' ; 92
| || 0x0800e9fe dff8dc08 ldr.w r0, [0x0800f2e2] ; [0x800f2e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800ea02 0068 ldr r0, [r0]
| || 0x0800ea04 dff8d848 ldr.w r4, [0x0800f2e4] ; [0x800f2e4:4]=0x2001e915 md380_menu_id
| || 0x0800ea08 14eb8000 adds.w r0, r4, r0, lsl 2
| || 0x0800ea0c d0f82403 ldr.w r0, [r0, 0x324]
| || 0x0800ea10 fff762fa bl gfx_drawtext10
| || 0x0800ea14 7ff07f40 mvns r0, 0xff000000
| || 0x0800ea18 0ef0a6fc bl gfx_set_bg_color
| || 0x0800ea1c dff8880a ldr.w r0, [menu_func_0f4ac] ; [0x800f4ac:4]=0x2400b510
| || 0x0800ea20 0ef0a6fc bl gfx_set_fg_color
| || 0x0800ea24 dff8a808 ldr.w r0, [0x0800f2d4] ; [0x800f2d4:4]=0x20004acc md380_menu_depth
| || 0x0800ea28 0121 movs r1, 1 ; 1
| || 0x0800ea2a 0170 strb r1, [r0]
| || 0x0800ea2c 1df0bbfe bl func_2c7a6
| || 0x0800ea30 dff8580c ldr.w r0, [0x0800f690] ; [0x800f690:4]=0x2001e907
| || 0x0800ea34 f121 movs r1, 0xf1 ; 241
| || 0x0800ea36 0170 strb r1, [r0]
| `--> 0x0800ea38 dff89408 ldr.w r0, [0x0800f2d4] ; [0x800f2d4:4]=0x20004acc md380_menu_depth
| | 0x0800ea3c 0121 movs r1, 1 ; 1
| | 0x0800ea3e 0170 strb r1, [r0]
| | 0x0800ea40 0020 movs r0, 0
| | 0x0800ea42 0ef095fc bl gfx_set_fg_color
| | 0x0800ea46 9722 movs r2, 0x97 ; 151
| | 0x0800ea48 3c21 movs r1, 0x3c ; '<' ; 60
| | 0x0800ea4a 0520 movs r0, 5 ; 5
| | 0x0800ea4c 0ef0e5fe bl gfx_linefill
| | 0x0800ea50 9722 movs r2, 0x97 ; 151
| | 0x0800ea52 5021 movs r1, 0x50 ; 'P' ; 80
| | 0x0800ea54 0520 movs r0, 5 ; 5
| | 0x0800ea56 0ef0e0fe bl gfx_linefill
| | 0x0800ea5a 5022 movs r2, 0x50 ; 'P' ; 80
| | 0x0800ea5c 3c21 movs r1, 0x3c ; '<' ; 60
| | 0x0800ea5e 0520 movs r0, 5 ; 5
| | 0x0800ea60 0ef0f5fe bl gfx_linefill2
| | 0x0800ea64 5022 movs r2, 0x50 ; 'P' ; 80
| | 0x0800ea66 3c21 movs r1, 0x3c ; '<' ; 60
| | 0x0800ea68 9720 movs r0, 0x97 ; 151
| | 0x0800ea6a 0ef0f0fe bl gfx_linefill2
| | 0x0800ea6e 3348 ldr r0, [0x0800eb3e] ; [0x800eb3c:4]=0xff8032
| | 0x0800ea70 0ef07afc bl gfx_set_bg_color
| | 0x0800ea74 9d23 movs r3, 0x9d ; 157
| | 0x0800ea76 2822 movs r2, 0x28 ; '(' ; 40
| | 0x0800ea78 0a21 movs r1, 0xa ; 10
| | 0x0800ea7a dff81c0a ldr.w r0, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| | 0x0800ea7e 0068 ldr r0, [r0]
| | 0x0800ea80 0068 ldr r0, [r0]
| | 0x0800ea82 0ff041f9 bl gfx_drawtext2
| | 0x0800ea86 dff8200a ldr.w r0, [0x0800f4ae] ; [0x800f4ac:4]=0x2400b510
| | 0x0800ea8a 0ef071fc bl gfx_set_fg_color
| | 0x0800ea8e 4f23 movs r3, 0x4f ; 'O' ; 79
| | 0x0800ea90 1622 movs r2, 0x16 ; 22
| | 0x0800ea92 3d21 movs r1, 0x3d ; '=' ; 61
| | 0x0800ea94 0620 movs r0, 6 ; 6
| | 0x0800ea96 0ef0f9fe bl gfx_blockfill
| | 0x0800ea9a dff8040a ldr.w r0, [0x0800f4a6] ; [0x800f4a4:4]=0x2001e81c not_the_volume_knob
| | 0x0800ea9e 0078 ldrb r0, [r0]
| | 0x0800eaa0 dff8ec1b ldr.w r1, [0x0800f694] ; [0x800f694:4]=0x2001de78 struct_channel_info2
| | 0x0800eaa4 0978 ldrb r1, [r1]
| | 0x0800eaa6 8842 cmp r0, r1
| ,==< 0x0800eaa8 1dd3 blo 0x800eae6
| || 0x0800eaaa 4f23 movs r3, 0x4f ; 'O' ; 79
| || 0x0800eaac dff8f009 ldr.w r0, [0x0800f4a4] ; [0x800f4a4:4]=0x2001e81c not_the_volume_knob
| || 0x0800eab0 0078 ldrb r0, [r0]
| || 0x0800eab2 0001 lsls r0, r0, 4
| || 0x0800eab4 821d adds r2, r0, 6
| || 0x0800eab6 3d21 movs r1, 0x3d ; '=' ; 61
| || 0x0800eab8 0620 movs r0, 6 ; 6
| || 0x0800eaba 0ef0e7fe bl gfx_blockfill
| || 0x0800eabe 1f48 ldr r0, [0x0800eb3e] ; [0x800eb3c:4]=0xff8032
| || 0x0800eac0 0ef056fc bl gfx_set_fg_color
| || 0x0800eac4 4f23 movs r3, 0x4f ; 'O' ; 79
| || 0x0800eac6 9622 movs r2, 0x96 ; 150
| || 0x0800eac8 3d21 movs r1, 0x3d ; '=' ; 61
| || 0x0800eaca dff8d409 ldr.w r0, [0x0800f4a6] ; [0x800f4a4:4]=0x2001e81c not_the_volume_knob
| || 0x0800eace 0078 ldrb r0, [r0]
| || 0x0800ead0 0001 lsls r0, r0, 4
| || 0x0800ead2 c01d adds r0, r0, 7
| || 0x0800ead4 0ef0dafe bl gfx_blockfill
| || 0x0800ead8 dff8b40b ldr.w r0, [0x0800f694] ; [0x800f694:4]=0x2001de78 struct_channel_info2
| || 0x0800eadc dff8c019 ldr.w r1, [0x0800f4a4] ; [0x800f4a4:4]=0x2001e81c not_the_volume_knob
| || 0x0800eae0 0978 ldrb r1, [r1]
| || 0x0800eae2 0170 strb r1, [r0]
| ,===< 0x0800eae4 1ce0 b 0x800eb20
| |`--> 0x0800eae6 4f23 movs r3, 0x4f ; 'O' ; 79
| | | 0x0800eae8 dff8b409 ldr.w r0, [0x0800f4a4] ; [0x800f4a4:4]=0x2001e81c not_the_volume_knob
| | | 0x0800eaec 0078 ldrb r0, [r0]
| | | 0x0800eaee 0001 lsls r0, r0, 4
| | | 0x0800eaf0 821d adds r2, r0, 6
| | | 0x0800eaf2 3d21 movs r1, 0x3d ; '=' ; 61
| | | 0x0800eaf4 0620 movs r0, 6 ; 6
| | | 0x0800eaf6 0ef0c9fe bl gfx_blockfill
| | | 0x0800eafa 1048 ldr r0, [0x0800eb3e] ; [0x800eb3c:4]=0xff8032
| | | 0x0800eafc 0ef038fc bl gfx_set_fg_color
| | | 0x0800eb00 4f23 movs r3, 0x4f ; 'O' ; 79
| | | 0x0800eb02 9622 movs r2, 0x96 ; 150
| | | 0x0800eb04 3d21 movs r1, 0x3d ; '=' ; 61
| | | 0x0800eb06 dff89809 ldr.w r0, [0x0800f4a6] ; [0x800f4a4:4]=0x2001e81c not_the_volume_knob
| | | 0x0800eb0a 0078 ldrb r0, [r0]
| | | 0x0800eb0c 0001 lsls r0, r0, 4
| | | 0x0800eb0e c01d adds r0, r0, 7
| | | 0x0800eb10 0ef0bcfe bl gfx_blockfill
| | | 0x0800eb14 dff8780b ldr.w r0, [0x0800f694] ; [0x800f694:4]=0x2001de78 struct_channel_info2
| | | 0x0800eb18 dff88419 ldr.w r1, [0x0800f4a4] ; [0x800f4a4:4]=0x2001e81c not_the_volume_knob
| | | 0x0800eb1c 0978 ldrb r1, [r1]
| | | 0x0800eb1e 0170 strb r1, [r0]
| `---> 0x0800eb20 0020 movs r0, 0
| | 0x0800eb22 0ef025fc bl gfx_set_fg_color
| `-> 0x0800eb26 7ff07f40 mvns r0, 0xff000000
| 0x0800eb2a 0ef01dfc bl gfx_set_bg_color
| 0x0800eb2e 0020 movs r0, 0
| 0x0800eb30 0ef01efc bl gfx_set_fg_color
\ 0x0800eb34 1fbd pop {r0, r1, r2, r3, r4, pc}
/ (fcn) 1810
| Caller: kb_enter_alpha md380_f_4520
| menu_dispatcher ();
| 0x0800eb98 30b5 push {r4, r5, lr}
| 0x0800eb9a 85b0 sub sp, 0x14
| 0x0800eb9c dff88c0b ldr.w r0, [0x0800f730] ; [0x800f730:4]=0x2001e892 gui_opmode3
| 0x0800eba0 0078 ldrb r0, [r0]
| ;-- :
| 0x0800eba2 0228 cmp r0, 2 ; 2
| ,=< 0x0800eba4 0ed0 beq 0x800ebc4
| | 0x0800eba6 dff8840b ldr.w r0, [0x0800f732] ; [0x800f730:4]=0x2001e892 gui_opmode3
| | 0x0800ebaa 0078 ldrb r0, [r0]
| | 0x0800ebac 0428 cmp r0, 4 ; 4
| ,==< 0x0800ebae 09d0 beq 0x800ebc4
| || 0x0800ebb0 dff87c0b ldr.w r0, [0x0800f734] ; [0x800f734:4]=0x2001e5f0 radio_status_1
| || 0x0800ebb4 0078 ldrb r0, [r0]
| || 0x0800ebb6 0128 cmp r0, 1 ; 1
| ,===< 0x0800ebb8 04d0 beq 0x800ebc4
| ||| 0x0800ebba dff8780b ldr.w r0, [0x0800f73a] ; [0x800f738:4]=0x2001e604 q_status_4
| ||| 0x0800ebbe 4078 ldrb r0, [r0, 1]
| ||| 0x0800ebc0 c007 lsls r0, r0, 0x1f
| ,====< 0x0800ebc2 00d5 bpl 0x800ebc6
| ,=```-> 0x0800ebc4 6fe3 b 0x800f2a6
| |`----> 0x0800ebc6 dff8cc0a ldr.w r0, [0x0800f69a] ; [0x800f698:4]=0x2001e81e
| | 0x0800ebca c078 ldrb r0, [r0, 3]
| | 0x0800ebcc 0006 lsls r0, r0, 0x18
| | ,=< 0x0800ebce 07d4 bmi 0x800ebe0
| | | 0x0800ebd0 dff8640b ldr.w r0, [0x0800f73c] ; [0x800f73c:4]=0xa6cf8df
| | | 0x0800ebd4 0078 ldrb r0, [r0]
| | | 0x0800ebd6 c0f34010 ubfx r0, r0, 5, 1
| | | 0x0800ebda c007 lsls r0, r0, 0x1f
| | ,==< 0x0800ebdc 00f16383 bmi.w 0x800f2a6
| | |`-> 0x0800ebe0 dff8f006 ldr.w r0, [0x0800f2d8] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| | | 0x0800ebe4 0078 ldrb r0, [r0]
| | | 0x0800ebe6 1028 cmp r0, 0x10 ; 16
| | |,=< 0x0800ebe8 c0f08180 blo.w 0x800ecee
| | || 0x0800ebec dff8e406 ldr.w r0, [0x0800f2d8] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| | || 0x0800ebf0 0078 ldrb r0, [r0]
| | || 0x0800ebf2 fe28 cmp r0, 0xfe ; 254
| | ,===< 0x0800ebf4 7ad0 beq 0x800ecec
| | ||| 0x0800ebf6 dff8340b ldr.w r0, [0x0800f732] ; [0x800f730:4]=0x2001e892 gui_opmode3
| | ||| 0x0800ebfa 0078 ldrb r0, [r0]
| | ||| 0x0800ebfc 0128 cmp r0, 1 ; 1
| |,====< 0x0800ebfe 75d1 bne 0x800ecec
| ||||| 0x0800ec00 dff8d006 ldr.w r0, [0x0800f2d8] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| ||||| 0x0800ec04 0021 movs r1, 0
| ||||| 0x0800ec06 0170 strb r1, [r0]
| ||||| 0x0800ec08 7ff07f40 mvns r0, 0xff000000
| ||||| 0x0800ec0c 0ef0b0fb bl gfx_set_fg_color
| ||||| 0x0800ec10 1123 movs r3, 0x11 ; 17
| ||||| 0x0800ec12 a022 movs r2, 0xa0 ; 160
| ||||| 0x0800ec14 0021 movs r1, 0
| ||||| 0x0800ec16 0020 movs r0, 0
| ||||| 0x0800ec18 0ef038fe bl gfx_blockfill
| ||||| 0x0800ec1c dff88808 ldr.w r0, [menu_func_0f4ac] ; [0x800f4ac:4]=0x2400b510
| ||||| 0x0800ec20 0ef0a6fb bl gfx_set_fg_color
| ||||| 0x0800ec24 fff762f8 bl func_0dcec
| ||||| 0x0800ec28 dff8b006 ldr.w r0, [0x0800f2e0] ; [0x800f2e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||| 0x0800ec2c 0068 ldr r0, [r0]
| ||||| 0x0800ec2e dff8b016 ldr.w r1, [0x0800f2e6] ; [0x800f2e4:4]=0x2001e915 md380_menu_id
| ||||| 0x0800ec32 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||| 0x0800ec36 d0f81c13 ldr.w r1, [r0, 0x31c]
| ||||| 0x0800ec3a dff86808 ldr.w r0, [0x0800f4aa] ; [0x800f4a8:4]=0xff1414
| ||||| 0x0800ec3e b0f90000 ldrsh.w r0, [r0]
| ||||| 0x0800ec42 19f0fcf8 bl func_27e3e
| ||||| 0x0800ec46 9f22 movs r2, 0x9f ; 159
| ||||| 0x0800ec48 1221 movs r1, 0x12 ; 18
| ||||| 0x0800ec4a 0020 movs r0, 0
| ||||| 0x0800ec4c 0ef0e5fd bl gfx_linefill
| ||||| 0x0800ec50 dff84408 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||| 0x0800ec54 0068 ldr r0, [r0]
| ||||| 0x0800ec56 0121 movs r1, 1 ; 1
| ||||| 0x0800ec58 0174 strb r1, [r0, 0x10]
| ||||| 0x0800ec5a dff83808 ldr.w r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||| 0x0800ec5e 0068 ldr r0, [r0]
| ||||| 0x0800ec60 457a ldrb r5, [r0, 9]
| ||||| 0x0800ec62 dff83408 ldr.w r0, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| ||||| 0x0800ec66 0068 ldr r0, [r0]
| ||||| 0x0800ec68 007c ldrb r0, [r0, 0x10]
| ||||| 0x0800ec6a 0390 str r0, [sp, 0xc]
| ||||| 0x0800ec6c 0220 movs r0, 2 ; 2
| ||||| 0x0800ec6e 0290 str r0, [sp, 8]
| ||||| 0x0800ec70 5c20 movs r0, 0x5c ; '\' ; 92
| ||||| 0x0800ec72 0190 str r0, [sp, 4]
| ||||| 0x0800ec74 a020 movs r0, 0xa0 ; 160
| ||||| 0x0800ec76 0090 str r0, [sp]
| ||||| 0x0800ec78 1323 movs r3, 0x13 ; 19
| ||||| 0x0800ec7a 0022 movs r2, 0
| ||||| 0x0800ec7c dff82408 ldr.w r0, [0x0800f4a8] ; [0x800f4a8:4]=0xff1414
| ||||| 0x0800ec80 b0f90010 ldrsh.w r1, [r0]
| ||||| 0x0800ec84 dff81008 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||| 0x0800ec88 0068 ldr r0, [r0]
| ||||| 0x0800ec8a 19f081f9 bl menu_set_something
| ||||| 0x0800ec8e dff8081a ldr.w r1, [0x0800f69e] ; [0x800f69c:4]=0x2001e8f5 msg_status_flag1
| ||||| 0x0800ec92 0880 strh r0, [r1]
| ||||| 0x0800ec94 0021 movs r1, 0
| ||||| 0x0800ec96 dff8000a ldr.w r0, [0x0800f69e] ; [0x800f69c:4]=0x2001e8f5 msg_status_flag1
| ||||| 0x0800ec9a b0f90000 ldrsh.w r0, [r0]
| ||||| 0x0800ec9e 1bf00fff bl func_2aac0
| ||||| 0x0800eca2 0ef08efa bl gfx_1d1c2
| ||||| 0x0800eca6 dff8ec07 ldr.w r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||| 0x0800ecaa 0068 ldr r0, [r0]
| ||||| 0x0800ecac 4572 strb r5, [r0, 9]
| ||||| 0x0800ecae 0821 movs r1, 8 ; 8
| ||||| 0x0800ecb0 dff8e409 ldr.w r0, [0x0800f69c] ; [0x800f69c:4]=0x2001e8f5 msg_status_flag1
| ||||| 0x0800ecb4 b0f90000 ldrsh.w r0, [r0]
| ||||| 0x0800ecb8 1bf089ff bl func_2abce
| ||||| 0x0800ecbc 0621 movs r1, 6 ; 6
| ||||| 0x0800ecbe 00b2 sxth r0, r0
| ||||| 0x0800ecc0 1bf0a4ff bl func_2ac0c
| ||||| 0x0800ecc4 0ef07dfa bl gfx_1d1c2
| ||||| 0x0800ecc8 dff8c807 ldr.w r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||| 0x0800eccc 0068 ldr r0, [r0]
| ||||| 0x0800ecce 407a ldrb r0, [r0, 9]
| ||||| 0x0800ecd0 1421 movs r1, 0x14 ; 20
| ||||| 0x0800ecd2 dff8c027 ldr.w r2, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||| 0x0800ecd6 1268 ldr r2, [r2]
| ||||| 0x0800ecd8 5268 ldr r2, [r2, 4]
| ||||| 0x0800ecda 01fb0020 mla r0, r1, r0, r2
| ||||| 0x0800ecde dff8b817 ldr.w r1, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| ||||| 0x0800ece2 0860 str r0, [r1]
| ||||| 0x0800ece4 0ef06dfa bl gfx_1d1c2
| ||||| 0x0800ece8 fdf77efd bl func_0c7e8
| ,=``---> 0x0800ecec dbe2 b 0x800f2a6
| || |`-> 0x0800ecee dff8a807 ldr.w r0, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| || | 0x0800ecf2 0068 ldr r0, [r0]
| || | 0x0800ecf4 007b ldrb r0, [r0, 0xc]
| || | 0x0800ecf6 10f01f00 ands r0, r0, 0x1f
| || | 0x0800ecfa 0728 cmp r0, 7 ; 7
| || |,=< 0x0800ecfc 0ad1 bne 0x800ed14
| || || 0x0800ecfe dff89c09 ldr.w r0, [0x0800f6a2] ; [0x800f6a0:4]=0x2001e92f
| || || 0x0800ed02 0078 ldrb r0, [r0]
| || || 0x0800ed04 0928 cmp r0, 9 ; 9
| || ,===< 0x0800ed06 05d0 beq 0x800ed14
| || ||| 0x0800ed08 dff89009 ldr.w r0, [0x0800f6a0] ; [0x800f6a0:4]=0x2001e92f
| || ||| 0x0800ed0c 0078 ldrb r0, [r0]
| || ||| 0x0800ed0e 0a28 cmp r0, 0xa ; 10
| ||,====< 0x0800ed10 40f0c982 bne.w 0x800f2a6
| |||`-`-> 0x0800ed14 dff88007 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||| | 0x0800ed18 0068 ldr r0, [r0]
| ||| | 0x0800ed1a 007b ldrb r0, [r0, 0xc]
| ||| | 0x0800ed1c 0006 lsls r0, r0, 0x18
| ||| |,=< 0x0800ed1e 5fd5 bpl 0x800ede0
| ||| || 0x0800ed20 dff87407 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||| || 0x0800ed24 0068 ldr r0, [r0]
| ||| || 0x0800ed26 407b ldrb r0, [r0, 0xd]
| ||| || 0x0800ed28 10f00f00 ands r0, r0, 0xf
| ||| || 0x0800ed2c 0f28 cmp r0, 0xf ; 15
| |||,===< 0x0800ed2e 00f0ba82 beq.w 0x800f2a6
| |||||| 0x0800ed32 dff86407 ldr.w r0, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| |||||| 0x0800ed36 0068 ldr r0, [r0]
| |||||| 0x0800ed38 4068 ldr r0, [r0, 4]
| |||||| ;-- :
| |||||| 0x0800ed3a 8047 blx r0
| |||||| 0x0800ed3c dff89405 ldr.w r0, [0x0800f2d8] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| |||||| 0x0800ed40 0078 ldrb r0, [r0]
| |||||| 0x0800ed42 401c adds r0, r0, 1
| |||||| 0x0800ed44 dff88c15 ldr.w r1, [0x0800f2d8] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| |||||| 0x0800ed48 0870 strb r0, [r1]
| |||||| 0x0800ed4a dff88805 ldr.w r0, [0x0800f2da] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| |||||| 0x0800ed4e 0078 ldrb r0, [r0]
| |||||| 0x0800ed50 00f080ff bl menu_add_number_of_menuentries_counts
| |||||| 0x0800ed54 dff88c15 ldr.w r1, [0x0800f2e8] ; [0x800f2e8:4]=0x2001b274 md380_menu_mem_base
| |||||| 0x0800ed58 0870 strb r0, [r1]
| |||||| 0x0800ed5a dff87805 ldr.w r0, [0x0800f2da] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| |||||| 0x0800ed5e 0078 ldrb r0, [r0]
| |||||| 0x0800ed60 0c21 movs r1, 0xc ; 12
| |||||| 0x0800ed62 dff87425 ldr.w r2, [0x0800f2de] ; [0x800f2dc:4]=0x2001e6ec
| |||||| 0x0800ed66 01fb0020 mla r0, r1, r0, r2
| |||||| 0x0800ed6a dff82817 ldr.w r1, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| |||||| 0x0800ed6e 0860 str r0, [r1]
| |||||| 0x0800ed70 0025 movs r5, 0
| ,=======< 0x0800ed72 00e0 b 0x800ed76
| --------> 0x0800ed74 6d1c adds r5, r5, 1
| `-------> 0x0800ed76 dff81c07 ldr.w r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| |||||| 0x0800ed7a 0068 ldr r0, [r0]
| |||||| 0x0800ed7c 007a ldrb r0, [r0, 8]
| |||||| 0x0800ed7e edb2 uxtb r5, r5
| |||||| 0x0800ed80 8542 cmp r5, r0
| ,=======< 0x0800ed82 19d2 bhs 0x800edb8
| ||||||| 0x0800ed84 edb2 uxtb r5, r5
| ||||||| 0x0800ed86 1420 movs r0, 0x14 ; 20
| ||||||| 0x0800ed88 dff80817 ldr.w r1, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800ed8c 0968 ldr r1, [r1]
| ||||||| 0x0800ed8e 4968 ldr r1, [r1, 4]
| ||||||| 0x0800ed90 00fb0510 mla r0, r0, r5, r1
| ||||||| 0x0800ed94 c089 ldrh r0, [r0, 0xe]
| ||||||| 0x0800ed96 0028 cmp r0, 0
| ========< 0x0800ed98 ecd0 beq 0x800ed74
| ||||||| 0x0800ed9a edb2 uxtb r5, r5
| ||||||| 0x0800ed9c 1420 movs r0, 0x14 ; 20
| ||||||| 0x0800ed9e dff8f416 ldr.w r1, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800eda2 0968 ldr r1, [r1]
| ||||||| 0x0800eda4 4968 ldr r1, [r1, 4]
| ||||||| 0x0800eda6 00fb0514 mla r4, r0, r5, r1
| ||||||| 0x0800edaa dff8ec06 ldr.w r0, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800edae 0460 str r4, [r0]
| ||||||| 0x0800edb0 dff8e006 ldr.w r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800edb4 0068 ldr r0, [r0]
| ||||||| 0x0800edb6 4572 strb r5, [r0, 9]
| `-------> 0x0800edb8 dff8d806 ldr.w r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| |||||| 0x0800edbc 0068 ldr r0, [r0]
| |||||| 0x0800edbe 007a ldrb r0, [r0, 8]
| |||||| 0x0800edc0 edb2 uxtb r5, r5
| |||||| 0x0800edc2 8542 cmp r5, r0
| ,=======< 0x0800edc4 07d1 bne 0x800edd6
| ||||||| 0x0800edc6 dff8d808 ldr.w r0, [0x0800f6a6] ; [0x800f6a4:4]=0x2001e904
| ||||||| 0x0800edca 0078 ldrb r0, [r0]
| ||||||| 0x0800edcc 0028 cmp r0, 0
| ========< 0x0800edce 02d1 bne 0x800edd6
| ||||||| 0x0800edd0 00f06afc bl menu_func_0f6a8
| ========< 0x0800edd4 67e2 b 0x800f2a6
| `-------> 0x0800edd6 dff8bc06 ldr.w r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| |||||| 0x0800edda 0068 ldr r0, [r0]
| |||||| 0x0800eddc 457a ldrb r5, [r0, 9]
| ,=======< 0x0800edde 5de0 b 0x800ee9c
| ||||||`-> 0x0800ede0 dff8b406 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| |||||| 0x0800ede4 0068 ldr r0, [r0]
| |||||| 0x0800ede6 407b ldrb r0, [r0, 0xd]
| |||||| 0x0800ede8 10f00f00 ands r0, r0, 0xf
| |||||| 0x0800edec 0f28 cmp r0, 0xf ; 15
| ||||||,=< 0x0800edee 09d1 bne 0x800ee04
| ||||||| 0x0800edf0 dff8a406 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800edf4 0068 ldr r0, [r0]
| ||||||| 0x0800edf6 4068 ldr r0, [r0, 4]
| ||||||| 0x0800edf8 8047 blx r0
| ||||||| 0x0800edfa dff89806 ldr.w r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800edfe 0068 ldr r0, [r0]
| ||||||| 0x0800ee00 457a ldrb r5, [r0, 9]
| ========< 0x0800ee02 50e2 b 0x800f2a6
| ||||||`-> 0x0800ee04 dff8cc04 ldr.w r0, [0x0800f2d8] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| |||||| 0x0800ee08 0078 ldrb r0, [r0]
| |||||| 0x0800ee0a dff88c16 ldr.w r1, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| |||||| 0x0800ee0e 0968 ldr r1, [r1]
| |||||| 0x0800ee10 497b ldrb r1, [r1, 0xd]
| |||||| 0x0800ee12 11f00f01 ands r1, r1, 0xf
| |||||| 0x0800ee16 8842 cmp r0, r1
| ||||||,=< 0x0800ee18 02da bge 0x800ee20
| ||||||| 0x0800ee1a 00f03cff bl return_to_mode_1_from10
| ========< 0x0800ee1e 42e2 b 0x800f2a6
| ||||||`-> 0x0800ee20 dff87406 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| |||||| 0x0800ee24 0068 ldr r0, [r0]
| |||||| 0x0800ee26 407b ldrb r0, [r0, 0xd]
| |||||| 0x0800ee28 0f21 movs r1, 0xf ; 15
| |||||| 0x0800ee2a 0842 tst r0, r1
| ||||||,=< 0x0800ee2c 36d0 beq 0x800ee9c
| ||||||| 0x0800ee2e dff8a404 ldr.w r0, [0x0800f2da] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| ||||||| 0x0800ee32 0078 ldrb r0, [r0]
| ||||||| 0x0800ee34 dff86016 ldr.w r1, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800ee38 0968 ldr r1, [r1]
| ||||||| 0x0800ee3a 497b ldrb r1, [r1, 0xd]
| ||||||| 0x0800ee3c 11f00f01 ands r1, r1, 0xf
| ||||||| 0x0800ee40 401a subs r0, r0, r1
| ||||||| 0x0800ee42 dff89014 ldr.w r1, [0x0800f2da] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| ||||||| 0x0800ee46 0870 strb r0, [r1]
| ||||||| 0x0800ee48 dff88804 ldr.w r0, [0x0800f2d8] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| ||||||| 0x0800ee4c 0078 ldrb r0, [r0]
| ||||||| 0x0800ee4e 00f001ff bl menu_add_number_of_menuentries_counts
| ||||||| 0x0800ee52 dff89014 ldr.w r1, [0x0800f2ea] ; [0x800f2e8:4]=0x2001b274 md380_menu_mem_base
| ||||||| 0x0800ee56 0870 strb r0, [r1]
| ||||||| 0x0800ee58 dff87804 ldr.w r0, [0x0800f2d8] ; [0x800f2d8:4]=0x2001d5cc md380_menu_memory
| ||||||| 0x0800ee5c 0078 ldrb r0, [r0]
| ||||||| 0x0800ee5e 0c21 movs r1, 0xc ; 12
| ||||||| 0x0800ee60 dff87424 ldr.w r2, [0x0800f2dc] ; [0x800f2dc:4]=0x2001e6ec
| ||||||| 0x0800ee64 01fb0020 mla r0, r1, r0, r2
| ||||||| 0x0800ee68 dff82816 ldr.w r1, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800ee6c 0860 str r0, [r1]
| ||||||| 0x0800ee6e dff82406 ldr.w r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800ee72 0068 ldr r0, [r0]
| ||||||| 0x0800ee74 407a ldrb r0, [r0, 9]
| ||||||| 0x0800ee76 1421 movs r1, 0x14 ; 20
| ||||||| 0x0800ee78 dff81826 ldr.w r2, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800ee7c 1268 ldr r2, [r2]
| ||||||| 0x0800ee7e 5268 ldr r2, [r2, 4]
| ||||||| 0x0800ee80 01fb0024 mla r4, r1, r0, r2
| ||||||| 0x0800ee84 dff81006 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800ee88 0460 str r4, [r0]
| ||||||| 0x0800ee8a dff80806 ldr.w r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800ee8e 0068 ldr r0, [r0]
| ||||||| 0x0800ee90 457a ldrb r5, [r0, 9]
| ||||||| 0x0800ee92 dff80006 ldr.w r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800ee96 0068 ldr r0, [r0]
| ||||||| 0x0800ee98 0021 movs r1, 0
| ||||||| 0x0800ee9a 4172 strb r1, [r0, 9]
| `-----`-> 0x0800ee9c dff8f805 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||| 0x0800eea0 0068 ldr r0, [r0]
| ||||| 0x0800eea2 007b ldrb r0, [r0, 0xc]
| ||||| 0x0800eea4 0006 lsls r0, r0, 0x18
| |||||,=< 0x0800eea6 05d4 bmi 0x800eeb4
| |||||| 0x0800eea8 dff8f807 ldr.w r0, [menu_func_0f6a8] ; [0x800f6a8:4]=0x41ffe92d
| |||||| 0x0800eeac 0078 ldrb r0, [r0]
| |||||| 0x0800eeae 0028 cmp r0, 0
| ,=======< 0x0800eeb0 00f0e981 beq.w 0x800f286
| ||||||`-> 0x0800eeb4 dff8e005 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| |||||| 0x0800eeb8 0068 ldr r0, [r0]
| |||||| 0x0800eeba 007b ldrb r0, [r0, 0xc]
| |||||| 0x0800eebc 10f01f00 ands r0, r0, 0x1f
| |||||| 0x0800eec0 0a28 cmp r0, 0xa ; 10
| ||||||,=< 0x0800eec2 00f0c080 beq.w 0x800f046
| ||||||| 0x0800eec6 dff8d005 ldr.w r0, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800eeca 0068 ldr r0, [r0]
| ||||||| 0x0800eecc 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800eece 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800eed2 0328 cmp r0, 3 ; 3
| ========< 0x0800eed4 00f0b780 beq.w 0x800f046
| ||||||| 0x0800eed8 dff8bc05 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800eedc 0068 ldr r0, [r0]
| ||||||| 0x0800eede 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800eee0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800eee4 0b28 cmp r0, 0xb ; 11
| ========< 0x0800eee6 00f0ae80 beq.w 0x800f046
| ||||||| 0x0800eeea dff8ac05 ldr.w r0, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800eeee 0068 ldr r0, [r0]
| ||||||| 0x0800eef0 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800eef2 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800eef6 0c28 cmp r0, 0xc ; 12
| ========< 0x0800eef8 00f0a580 beq.w 0x800f046
| ||||||| 0x0800eefc dff89805 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800ef00 0068 ldr r0, [r0]
| ||||||| 0x0800ef02 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800ef04 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800ef08 0d28 cmp r0, 0xd ; 13
| ========< 0x0800ef0a 00f09c80 beq.w 0x800f046
| ||||||| 0x0800ef0e dff88805 ldr.w r0, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800ef12 0068 ldr r0, [r0]
| ||||||| 0x0800ef14 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800ef16 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800ef1a 0428 cmp r0, 4 ; 4
| ========< 0x0800ef1c 00f09380 beq.w 0x800f046
| ||||||| 0x0800ef20 dff87405 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800ef24 0068 ldr r0, [r0]
| ||||||| 0x0800ef26 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800ef28 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800ef2c 0e28 cmp r0, 0xe ; 14
| ========< 0x0800ef2e 00f08a80 beq.w 0x800f046
| ||||||| 0x0800ef32 dff86405 ldr.w r0, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800ef36 0068 ldr r0, [r0]
| ||||||| 0x0800ef38 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800ef3a 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800ef3e 0f28 cmp r0, 0xf ; 15
| ========< 0x0800ef40 00f08180 beq.w 0x800f046
| ||||||| 0x0800ef44 dff85005 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800ef48 0068 ldr r0, [r0]
| ||||||| 0x0800ef4a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800ef4c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800ef50 1028 cmp r0, 0x10 ; 16
| ========< 0x0800ef52 78d0 beq 0x800f046
| ||||||| 0x0800ef54 dff84005 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800ef58 0068 ldr r0, [r0]
| ||||||| 0x0800ef5a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800ef5c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800ef60 1128 cmp r0, 0x11 ; 17
| ========< 0x0800ef62 70d0 beq 0x800f046
| ||||||| 0x0800ef64 dff83005 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800ef68 0068 ldr r0, [r0]
| ||||||| 0x0800ef6a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800ef6c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800ef70 1228 cmp r0, 0x12 ; 18
| ========< 0x0800ef72 68d0 beq 0x800f046
| ||||||| 0x0800ef74 dff82005 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800ef78 0068 ldr r0, [r0]
| ||||||| 0x0800ef7a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800ef7c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800ef80 1428 cmp r0, 0x14 ; 20
| ========< 0x0800ef82 60d0 beq 0x800f046
| ||||||| 0x0800ef84 dff81005 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800ef88 0068 ldr r0, [r0]
| ||||||| 0x0800ef8a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800ef8c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800ef90 1328 cmp r0, 0x13 ; 19
| ========< 0x0800ef92 58d0 beq 0x800f046
| ||||||| 0x0800ef94 dff80005 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800ef98 0068 ldr r0, [r0]
| ||||||| 0x0800ef9a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800ef9c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800efa0 1528 cmp r0, 0x15 ; 21
| ========< 0x0800efa2 50d0 beq 0x800f046
| ||||||| 0x0800efa4 dff8f004 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800efa8 0068 ldr r0, [r0]
| ||||||| 0x0800efaa 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800efac 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800efb0 1628 cmp r0, 0x16 ; 22
| ========< 0x0800efb2 48d0 beq 0x800f046
| ||||||| 0x0800efb4 dff8e004 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800efb8 0068 ldr r0, [r0]
| ||||||| 0x0800efba 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800efbc 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800efc0 1728 cmp r0, 0x17 ; 23
| ========< 0x0800efc2 40d0 beq 0x800f046
| ||||||| 0x0800efc4 dff8d004 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800efc8 0068 ldr r0, [r0]
| ||||||| 0x0800efca 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800efcc 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800efd0 1828 cmp r0, 0x18 ; 24
| ========< 0x0800efd2 38d0 beq 0x800f046
| ||||||| 0x0800efd4 dff8c004 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800efd8 0068 ldr r0, [r0]
| ||||||| 0x0800efda 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800efdc 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800efe0 1928 cmp r0, 0x19 ; 25
| ========< 0x0800efe2 30d0 beq 0x800f046
| ||||||| 0x0800efe4 dff8b004 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800efe8 0068 ldr r0, [r0]
| ||||||| 0x0800efea 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800efec 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800eff0 1d28 cmp r0, 0x1d ; 29
| ========< 0x0800eff2 28d0 beq 0x800f046
| ||||||| 0x0800eff4 dff8a004 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800eff8 0068 ldr r0, [r0]
| ||||||| 0x0800effa 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800effc 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f000 1a28 cmp r0, 0x1a ; 26
| ========< 0x0800f002 20d0 beq 0x800f046
| ||||||| 0x0800f004 dff89004 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800f008 0068 ldr r0, [r0]
| ||||||| 0x0800f00a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f00c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f010 1b28 cmp r0, 0x1b ; 27
| ========< 0x0800f012 18d0 beq 0x800f046
| ||||||| 0x0800f014 dff88004 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800f018 0068 ldr r0, [r0]
| ||||||| 0x0800f01a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f01c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f020 1c28 cmp r0, 0x1c ; 28
| ========< 0x0800f022 10d0 beq 0x800f046
| ||||||| 0x0800f024 dff87004 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800f028 0068 ldr r0, [r0]
| ||||||| 0x0800f02a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f02c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f030 1e28 cmp r0, 0x1e ; 30
| ========< 0x0800f032 08d0 beq 0x800f046
| ||||||| 0x0800f034 dff86004 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800f038 0068 ldr r0, [r0]
| ||||||| 0x0800f03a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f03c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f040 1f28 cmp r0, 0x1f ; 31
| ========< 0x0800f042 40f02081 bne.w 0x800f286
| ------`-> 0x0800f046 dff85c06 ldr.w r0, [0x0800f6aa] ; [0x800f6a8:4]=0x41ffe92d
| |||||| 0x0800f04a 0021 movs r1, 0
| |||||| 0x0800f04c 0170 strb r1, [r0]
| |||||| 0x0800f04e dff85404 ldr.w r0, [0x0800f4aa] ; [0x800f4a8:4]=0xff1414
| |||||| 0x0800f052 b0f90000 ldrsh.w r0, [r0]
| |||||| 0x0800f056 0028 cmp r0, 0
| ||||||,=< 0x0800f058 01d1 bne 0x800f05e
| ||||||| 0x0800f05a fef747fe bl func_0dcec
| ||||||`-> 0x0800f05e fff725f8 bl F_786
| |||||| 0x0800f062 dff83404 ldr.w r0, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| |||||| 0x0800f066 0068 ldr r0, [r0]
| |||||| 0x0800f068 007c ldrb r0, [r0, 0x10]
| |||||| 0x0800f06a 0390 str r0, [sp, 0xc]
| |||||| 0x0800f06c 0220 movs r0, 2 ; 2
| |||||| 0x0800f06e 0290 str r0, [sp, 8]
| |||||| 0x0800f070 5c20 movs r0, 0x5c ; '\' ; 92
| |||||| 0x0800f072 0190 str r0, [sp, 4]
| |||||| 0x0800f074 a020 movs r0, 0xa0 ; 160
| |||||| 0x0800f076 0090 str r0, [sp]
| |||||| 0x0800f078 1323 movs r3, 0x13 ; 19
| |||||| 0x0800f07a 0022 movs r2, 0
| |||||| 0x0800f07c dff82404 ldr.w r0, [0x0800f4a8] ; [0x800f4a8:4]=0xff1414
| |||||| 0x0800f080 b0f90010 ldrsh.w r1, [r0]
| |||||| 0x0800f084 dff81004 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| |||||| 0x0800f088 0068 ldr r0, [r0]
| |||||| 0x0800f08a 18f081ff bl menu_set_something
| |||||| 0x0800f08e dff80816 ldr.w r1, [0x0800f69e] ; [0x800f69c:4]=0x2001e8f5 msg_status_flag1
| |||||| 0x0800f092 0880 strh r0, [r1]
| |||||| 0x0800f094 dff8fc03 ldr.w r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| |||||| 0x0800f098 0068 ldr r0, [r0]
| |||||| 0x0800f09a 4572 strb r5, [r0, 9]
| |||||| 0x0800f09c 0821 movs r1, 8 ; 8
| |||||| 0x0800f09e dff8f805 ldr.w r0, [0x0800f69e] ; [0x800f69c:4]=0x2001e8f5 msg_status_flag1
| |||||| 0x0800f0a2 b0f90000 ldrsh.w r0, [r0]
| |||||| 0x0800f0a6 1bf092fd bl func_2abce
| |||||| 0x0800f0aa 0621 movs r1, 6 ; 6
| |||||| 0x0800f0ac 00b2 sxth r0, r0
| |||||| 0x0800f0ae 1bf0adfd bl func_2ac0c
| |||||| 0x0800f0b2 dff8e403 ldr.w r0, [0x0800f49e] ; [0x800f49c:4]=0x2001e935
| |||||| 0x0800f0b6 0460 str r4, [r0]
| |||||| 0x0800f0b8 8648 ldr r0, [0x0800f2d4] ; [0x800f2d4:4]=0x20004acc md380_menu_depth
| |||||| 0x0800f0ba 0078 ldrb r0, [r0]
| |||||| 0x0800f0bc fe28 cmp r0, 0xfe ; 254
| ||||||,=< 0x0800f0be 27d0 beq 0x800f110
| ||||||| 0x0800f0c0 dff86806 ldr.w r0, [0x0800f730] ; [0x800f730:4]=0x2001e892 gui_opmode3
| ||||||| 0x0800f0c4 0078 ldrb r0, [r0]
| ||||||| 0x0800f0c6 0128 cmp r0, 1 ; 1
| ========< 0x0800f0c8 22d1 bne 0x800f110
| ||||||| 0x0800f0ca dff8c005 ldr.w r0, [0x0800f692] ; [0x800f690:4]=0x2001e907
| ||||||| 0x0800f0ce 0078 ldrb r0, [r0]
| ||||||| 0x0800f0d0 0a28 cmp r0, 0xa ; 10
| ========< 0x0800f0d2 0dd2 bhs 0x800f0f0
| ||||||| 0x0800f0d4 dff8b405 ldr.w r0, [0x0800f690] ; [0x800f690:4]=0x2001e907
| ||||||| 0x0800f0d8 0078 ldrb r0, [r0]
| ||||||| 0x0800f0da dff8dc1b ldr.w r1, [0x0800fcbe] ; [0x800fcbc:4]=0xb084b510
| ||||||| 0x0800f0de 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0800f0e2 808d ldrh r0, [r0, 0x2c]
| ||||||| 0x0800f0e4 401e subs r0, r0, 1
| ||||||| 0x0800f0e6 dff8ac13 ldr.w r1, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f0ea 0968 ldr r1, [r1]
| ||||||| 0x0800f0ec 4881 strh r0, [r1, 0xa]
| ========< 0x0800f0ee 04e0 b 0x800f0fa
| --------> 0x0800f0f0 dff8a003 ldr.w r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f0f4 0068 ldr r0, [r0]
| ||||||| 0x0800f0f6 0021 movs r1, 0
| ||||||| 0x0800f0f8 4181 strh r1, [r0, 0xa]
| --------> 0x0800f0fa dff89803 ldr.w r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f0fe 0068 ldr r0, [r0]
| ||||||| 0x0800f100 4189 ldrh r1, [r0, 0xa]
| ||||||| 0x0800f102 dff89405 ldr.w r0, [0x0800f69e] ; [0x800f69c:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0800f106 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800f10a 1bf0d9fc bl func_2aac0
| ========< 0x0800f10e bae0 b 0x800f286
| ------`-> 0x0800f110 dff88403 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| |||||| 0x0800f114 0068 ldr r0, [r0]
| |||||| 0x0800f116 007b ldrb r0, [r0, 0xc]
| |||||| 0x0800f118 10f01f00 ands r0, r0, 0x1f
| |||||| 0x0800f11c 0c28 cmp r0, 0xc ; 12
| ||||||,=< 0x0800f11e 66d0 beq 0x800f1ee
| ||||||| 0x0800f120 dff87403 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800f124 0068 ldr r0, [r0]
| ||||||| 0x0800f126 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f128 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f12c 0d28 cmp r0, 0xd ; 13
| ========< 0x0800f12e 5ed0 beq 0x800f1ee
| ||||||| 0x0800f130 dff86403 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800f134 0068 ldr r0, [r0]
| ||||||| 0x0800f136 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f138 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f13c 1628 cmp r0, 0x16 ; 22
| ========< 0x0800f13e 56d0 beq 0x800f1ee
| ||||||| 0x0800f140 dff85403 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800f144 0068 ldr r0, [r0]
| ||||||| 0x0800f146 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f148 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f14c 1e28 cmp r0, 0x1e ; 30
| ========< 0x0800f14e 4ed0 beq 0x800f1ee
| ||||||| 0x0800f150 dff84403 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800f154 0068 ldr r0, [r0]
| ||||||| 0x0800f156 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f158 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f15c 1928 cmp r0, 0x19 ; 25
| ========< 0x0800f15e 46d0 beq 0x800f1ee
| ||||||| 0x0800f160 dff83403 ldr.w r0, [0x0800f49c] ; [0x800f49c:4]=0x2001e935
| ||||||| 0x0800f164 0068 ldr r0, [r0]
| ||||||| 0x0800f166 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f168 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f16c 1d28 cmp r0, 0x1d ; 29
| ========< 0x0800f16e 3ed0 beq 0x800f1ee
| ||||||| 0x0800f170 c948 ldr r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f172 0068 ldr r0, [r0]
| ||||||| 0x0800f174 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f176 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f17a 1a28 cmp r0, 0x1a ; 26
| ========< 0x0800f17c 37d0 beq 0x800f1ee
| ||||||| 0x0800f17e c648 ldr r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f180 0068 ldr r0, [r0]
| ||||||| 0x0800f182 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f184 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f188 1b28 cmp r0, 0x1b ; 27
| ========< 0x0800f18a 30d0 beq 0x800f1ee
| ||||||| 0x0800f18c c248 ldr r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f18e 0068 ldr r0, [r0]
| ||||||| 0x0800f190 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f192 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f196 1c28 cmp r0, 0x1c ; 28
| ========< 0x0800f198 29d0 beq 0x800f1ee
| ||||||| 0x0800f19a bf48 ldr r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f19c 0068 ldr r0, [r0]
| ||||||| 0x0800f19e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f1a0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f1a4 1f28 cmp r0, 0x1f ; 31
| ========< 0x0800f1a6 22d0 beq 0x800f1ee
| ||||||| 0x0800f1a8 bb48 ldr r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f1aa 0068 ldr r0, [r0]
| ||||||| 0x0800f1ac 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f1ae 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f1b2 1028 cmp r0, 0x10 ; 16
| ========< 0x0800f1b4 1bd0 beq 0x800f1ee
| ||||||| 0x0800f1b6 b848 ldr r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f1b8 0068 ldr r0, [r0]
| ||||||| 0x0800f1ba 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f1bc 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f1c0 1228 cmp r0, 0x12 ; 18
| ========< 0x0800f1c2 14d0 beq 0x800f1ee
| ||||||| 0x0800f1c4 b448 ldr r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f1c6 0068 ldr r0, [r0]
| ||||||| 0x0800f1c8 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f1ca 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f1ce 1428 cmp r0, 0x14 ; 20
| ========< 0x0800f1d0 0dd0 beq 0x800f1ee
| ||||||| 0x0800f1d2 b148 ldr r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f1d4 0068 ldr r0, [r0]
| ||||||| 0x0800f1d6 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f1d8 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f1dc 1328 cmp r0, 0x13 ; 19
| ========< 0x0800f1de 06d0 beq 0x800f1ee
| ||||||| 0x0800f1e0 ad48 ldr r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f1e2 0068 ldr r0, [r0]
| ||||||| 0x0800f1e4 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f1e6 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f1ea 1528 cmp r0, 0x15 ; 21
| ========< 0x0800f1ec 09d1 bne 0x800f202
| ------`-> 0x0800f1ee a948 ldr r0, [0x0800f496] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| |||||| 0x0800f1f0 0068 ldr r0, [r0]
| |||||| 0x0800f1f2 4189 ldrh r1, [r0, 0xa]
| |||||| 0x0800f1f4 dff8a004 ldr.w r0, [0x0800f69c] ; [0x800f69c:4]=0x2001e8f5 msg_status_flag1
| |||||| 0x0800f1f8 b0f90000 ldrsh.w r0, [r0]
| |||||| 0x0800f1fc 1bf060fc bl func_2aac0
| ||||||,=< 0x0800f200 41e0 b 0x800f286
| --------> 0x0800f202 a548 ldr r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f204 0068 ldr r0, [r0]
| ||||||| 0x0800f206 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f208 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f20c 0b28 cmp r0, 0xb ; 11
| ========< 0x0800f20e 1ad1 bne 0x800f246
| ||||||| 0x0800f210 a048 ldr r0, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0800f212 0068 ldr r0, [r0]
| ||||||| 0x0800f214 dff8cc1b ldr.w r1, [menu_func_0fde8] ; [0x800fde8:4]=0x4821b5e0
| ||||||| 0x0800f218 0978 ldrb r1, [r1]
| ||||||| 0x0800f21a 4172 strb r1, [r0, 9]
| ||||||| 0x0800f21c 9d48 ldr r0, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0800f21e 0068 ldr r0, [r0]
| ||||||| 0x0800f220 407a ldrb r0, [r0, 9]
| ||||||| 0x0800f222 1421 movs r1, 0x14 ; 20
| ||||||| 0x0800f224 9b4a ldr r2, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0800f226 1268 ldr r2, [r2]
| ||||||| 0x0800f228 5268 ldr r2, [r2, 4]
| ||||||| 0x0800f22a 01fb0020 mla r0, r1, r0, r2
| ||||||| 0x0800f22e 9a49 ldr r1, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f230 0860 str r0, [r1]
| ||||||| 0x0800f232 dff8b00b ldr.w r0, [0x0800fdea] ; [0x800fde8:4]=0x4821b5e0
| ||||||| 0x0800f236 0178 ldrb r1, [r0]
| ||||||| 0x0800f238 dff85c04 ldr.w r0, [0x0800f69c] ; [0x800f69c:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0800f23c b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800f240 1bf03efc bl func_2aac0
| ========< 0x0800f244 1fe0 b 0x800f286
| --------> 0x0800f246 0020 movs r0, 0
| ||||||| 0x0800f248 0025 movs r5, 0
| ========< 0x0800f24a 0be0 b 0x800f264
| --------> 0x0800f24c edb2 uxtb r5, r5
| ||||||| 0x0800f24e 1421 movs r1, 0x14 ; 20
| ||||||| 0x0800f250 904a ldr r2, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0800f252 1268 ldr r2, [r2]
| ||||||| 0x0800f254 5268 ldr r2, [r2, 4]
| ||||||| 0x0800f256 01fb0521 mla r1, r1, r5, r2
| ||||||| 0x0800f25a c989 ldrh r1, [r1, 0xe]
| ||||||| 0x0800f25c 0029 cmp r1, 0
| ========< 0x0800f25e 00d1 bne 0x800f262
| ||||||| 0x0800f260 401c adds r0, r0, 1
| --------> 0x0800f262 6d1c adds r5, r5, 1
| --------> 0x0800f264 8b49 ldr r1, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0800f266 0968 ldr r1, [r1]
| ||||||| 0x0800f268 497a ldrb r1, [r1, 9]
| ||||||| 0x0800f26a edb2 uxtb r5, r5
| ||||||| 0x0800f26c 8d42 cmp r5, r1
| ========< 0x0800f26e edd3 blo 0x800f24c
| ||||||| 0x0800f270 8849 ldr r1, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0800f272 0968 ldr r1, [r1]
| ||||||| 0x0800f274 497a ldrb r1, [r1, 9]
| ||||||| 0x0800f276 c0b2 uxtb r0, r0
| ||||||| 0x0800f278 091a subs r1, r1, r0
| ||||||| 0x0800f27a dff81c04 ldr.w r0, [0x0800f69e] ; [0x800f69c:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x0800f27e b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800f282 1bf01dfc bl func_2aac0
| `-----`-> 0x0800f286 dff81804 ldr.w r0, [0x0800f6a6] ; [0x800f6a4:4]=0x2001e904
| ||||| 0x0800f28a 0078 ldrb r0, [r0]
| ||||| 0x0800f28c 0128 cmp r0, 1 ; 1
| |||||,=< 0x0800f28e 04d1 bne 0x800f29a
| |||||| 0x0800f290 dff80c04 ldr.w r0, [0x0800f6a4] ; [0x800f6a4:4]=0x2001e904
| |||||| 0x0800f294 0021 movs r1, 0
| |||||| 0x0800f296 0170 strb r1, [r0]
| ,=======< 0x0800f298 05e0 b 0x800f2a6
| ||||||`-> 0x0800f29a 7f48 ldr r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| |||||| 0x0800f29c 0068 ldr r0, [r0]
| |||||| 0x0800f29e 8068 ldr r0, [r0, 8]
| |||||| ;-- :
| |||||| 0x0800f2a0 8047 blx r0
| |||||| 0x0800f2a2 fdf7a1fa bl func_0c7e8
| ``````--> 0x0800f2a6 05b0 add sp, 0x14
\ 0x0800f2a8 30bd pop {r4, r5, pc}
/ (fcn) 410
| Caller: kb_enter_alpha
| menu_F_4144 ();
| 0x0800f2f8 10b5 push {r4, lr}
| 0x0800f2fa 0024 movs r4, 0
| 0x0800f2fc dff8640b ldr.w r0, [0x0800fe68] ; [0x800fe68:4]=0x2001e892 gui_opmode3
| 0x0800f300 0078 ldrb r0, [r0]
| 0x0800f302 0228 cmp r0, 2 ; 2
| ,=< 0x0800f304 1cd0 beq 0x800f340
| | 0x0800f306 dff85c0b ldr.w r0, [0x0800fe6a] ; [0x800fe68:4]=0x2001e892 gui_opmode3
| | 0x0800f30a 0078 ldrb r0, [r0]
| | 0x0800f30c 0428 cmp r0, 4 ; 4
| ,==< 0x0800f30e 17d0 beq 0x800f340
| || 0x0800f310 dff8540b ldr.w r0, [0x0800fe6c] ; [0x800fe6c:4]=0x2001e5f0 radio_status_1
| || 0x0800f314 0078 ldrb r0, [r0]
| || 0x0800f316 0128 cmp r0, 1 ; 1
| ,===< 0x0800f318 12d0 beq 0x800f340
| ||| 0x0800f31a dff8500b ldr.w r0, [0x0800fe72] ; [0x800fe70:4]=0x20004acc md380_menu_depth
| ||| 0x0800f31e 4078 ldrb r0, [r0, 1]
| ||| 0x0800f320 c007 lsls r0, r0, 0x1f
| ,====< 0x0800f322 0dd4 bmi 0x800f340
| |||| 0x0800f324 5c48 ldr r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| |||| 0x0800f326 0068 ldr r0, [r0]
| |||| 0x0800f328 007b ldrb r0, [r0, 0xc]
| |||| 0x0800f32a 10f01f00 ands r0, r0, 0x1f
| |||| 0x0800f32e 0728 cmp r0, 7 ; 7
| ,=====< 0x0800f330 06d0 beq 0x800f340
| ||||| 0x0800f332 5948 ldr r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||| 0x0800f334 0068 ldr r0, [r0]
| ||||| 0x0800f336 007b ldrb r0, [r0, 0xc]
| ||||| 0x0800f338 10f01f00 ands r0, r0, 0x1f
| ||||| 0x0800f33c 0628 cmp r0, 6 ; 6
| ,======< 0x0800f33e 00d1 bne 0x800f342
| ,=`````-> 0x0800f340 a6e0 b 0x800f490
| |`------> 0x0800f342 dff82c0b ldr.w r0, [0x0800fe76] ; [0x800fe74:4]=0xb084b510
| | 0x0800f346 0078 ldrb r0, [r0]
| | 0x0800f348 1028 cmp r0, 0x10 ; 16
| | ,=< 0x0800f34a 80f0a180 bhs.w 0x800f490
| | | 0x0800f34e 5248 ldr r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| | | 0x0800f350 0068 ldr r0, [r0]
| | | 0x0800f352 c089 ldrh r0, [r0, 0xe]
| | | 0x0800f354 0228 cmp r0, 2 ; 2
| | ,==< 0x0800f356 04d3 blo 0x800f362
| | || 0x0800f358 4e48 ldr r0, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | || 0x0800f35a 0068 ldr r0, [r0]
| | || 0x0800f35c 4089 ldrh r0, [r0, 0xa]
| | || 0x0800f35e 0028 cmp r0, 0
| | ,===< 0x0800f360 77d1 bne 0x800f452
| | .-`--> 0x0800f362 4c48 ldr r0, [0x0800f496] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | || | 0x0800f364 0068 ldr r0, [r0]
| | || | 0x0800f366 407a ldrb r0, [r0, 9]
| | || | 0x0800f368 0128 cmp r0, 1 ; 1
| | ||,==< 0x0800f36a 14d3 blo 0x800f396
| | |||| 0x0800f36c 641c adds r4, r4, 1
| | |||| 0x0800f36e 4948 ldr r0, [0x0800f496] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | |||| 0x0800f370 0068 ldr r0, [r0]
| | |||| 0x0800f372 407a ldrb r0, [r0, 9]
| | |||| 0x0800f374 401e subs r0, r0, 1
| | |||| 0x0800f376 4749 ldr r1, [0x0800f496] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | |||| 0x0800f378 0968 ldr r1, [r1]
| | |||| 0x0800f37a 4872 strb r0, [r1, 9]
| | |||| 0x0800f37c 4648 ldr r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| | |||| 0x0800f37e 0068 ldr r0, [r0]
| | |||| 0x0800f380 c089 ldrh r0, [r0, 0xe]
| | |||| 0x0800f382 0028 cmp r0, 0
| | ,=====< 0x0800f384 40d0 beq 0x800f408
| | ||||| 0x0800f386 c448 ldr r0, [0x0800f69a] ; [0x800f698:4]=0x2001e81e
| | ||||| 0x0800f388 b0f90000 ldrsh.w r0, [r0]
| | ||||| 0x0800f38c 1bf015fc bl func_2abba
| | ||||| 0x0800f390 0df017ff bl gfx_1d1c2
| |,======< 0x0800f394 38e0 b 0x800f408
| |||||`--> 0x0800f396 3f48 ldr r0, [0x0800f496] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| ||||| | 0x0800f398 0068 ldr r0, [r0]
| ||||| | 0x0800f39a 007a ldrb r0, [r0, 8]
| ||||| | 0x0800f39c 401e subs r0, r0, 1
| ||||| | 0x0800f39e 3d49 ldr r1, [0x0800f496] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| ||||| | 0x0800f3a0 0968 ldr r1, [r1]
| ||||| | 0x0800f3a2 4872 strb r0, [r1, 9]
| ||||| | 0x0800f3a4 3c48 ldr r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||| | 0x0800f3a6 0068 ldr r0, [r0]
| ||||| | 0x0800f3a8 007b ldrb r0, [r0, 0xc]
| ||||| | 0x0800f3aa 10f01f00 ands r0, r0, 0x1f
| ||||| | 0x0800f3ae 0128 cmp r0, 1 ; 1
| |||||,==< 0x0800f3b0 2ad0 beq 0x800f408
| ||||||| 0x0800f3b2 3948 ldr r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f3b4 0068 ldr r0, [r0]
| ||||||| 0x0800f3b6 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f3b8 1f21 movs r1, 0x1f ; 31
| ||||||| 0x0800f3ba 0842 tst r0, r1
| ========< 0x0800f3bc 24d0 beq 0x800f408
| ||||||| 0x0800f3be 3648 ldr r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f3c0 0068 ldr r0, [r0]
| ||||||| 0x0800f3c2 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f3c4 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f3c8 0828 cmp r0, 8 ; 8
| ========< 0x0800f3ca 1dd0 beq 0x800f408
| ||||||| 0x0800f3cc 3248 ldr r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f3ce 0068 ldr r0, [r0]
| ||||||| 0x0800f3d0 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f3d2 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f3d6 0928 cmp r0, 9 ; 9
| ========< 0x0800f3d8 16d0 beq 0x800f408
| ||||||| 0x0800f3da 2f48 ldr r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f3dc 0068 ldr r0, [r0]
| ||||||| 0x0800f3de 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f3e0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f3e4 0528 cmp r0, 5 ; 5
| ========< 0x0800f3e6 0fd0 beq 0x800f408
| ||||||| 0x0800f3e8 2b48 ldr r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| ||||||| 0x0800f3ea 0068 ldr r0, [r0]
| ||||||| 0x0800f3ec 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f3ee 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f3f2 0628 cmp r0, 6 ; 6
| ========< 0x0800f3f4 08d0 beq 0x800f408
| ||||||| 0x0800f3f6 2748 ldr r0, [0x0800f496] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0800f3f8 0068 ldr r0, [r0]
| ||||||| 0x0800f3fa 417a ldrb r1, [r0, 9]
| ||||||| 0x0800f3fc a648 ldr r0, [0x0800f698] ; [0x800f698:4]=0x2001e81e
| ||||||| 0x0800f3fe b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800f402 1bf05dfb bl func_2aac0
| ||||||| 0x0800f406 0124 movs r4, 1 ; 1
| -``--`--> 0x0800f408 2248 ldr r0, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | || | 0x0800f40a 0068 ldr r0, [r0]
| | || | 0x0800f40c 407a ldrb r0, [r0, 9]
| | || | 0x0800f40e 1421 movs r1, 0x14 ; 20
| | || | 0x0800f410 204a ldr r2, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | || | 0x0800f412 1268 ldr r2, [r2]
| | || | 0x0800f414 5268 ldr r2, [r2, 4]
| | || | 0x0800f416 01fb0020 mla r0, r1, r0, r2
| | || | 0x0800f41a 1f49 ldr r1, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| | || | 0x0800f41c 0860 str r0, [r1]
| | || | 0x0800f41e 1e48 ldr r0, [0x0800f49a] ; [0x800f498:4]=0x2001e6fc
| | || | 0x0800f420 0068 ldr r0, [r0]
| | || | 0x0800f422 c089 ldrh r0, [r0, 0xe]
| | || | 0x0800f424 0028 cmp r0, 0
| | `====< 0x0800f426 9cd0 beq 0x800f362
| | | | 0x0800f428 1b48 ldr r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| | | | 0x0800f42a 0068 ldr r0, [r0]
| | | | 0x0800f42c c089 ldrh r0, [r0, 0xe]
| | | | 0x0800f42e 401e subs r0, r0, 1
| | | | 0x0800f430 1849 ldr r1, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | | | 0x0800f432 0968 ldr r1, [r1]
| | | | 0x0800f434 4881 strh r0, [r1, 0xa]
| | | | 0x0800f436 1748 ldr r0, [0x0800f496] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | | | 0x0800f438 0068 ldr r0, [r0]
| | | | 0x0800f43a 4089 ldrh r0, [r0, 0xa]
| | | | 0x0800f43c 0128 cmp r0, 1 ; 1
| | |,==< 0x0800f43e 21d3 blo 0x800f484
| | ||| 0x0800f440 1448 ldr r0, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | ||| 0x0800f442 0068 ldr r0, [r0]
| | ||| 0x0800f444 4189 ldrh r1, [r0, 0xa]
| | ||| 0x0800f446 9448 ldr r0, [0x0800f69a] ; [0x800f698:4]=0x2001e81e
| | ||| 0x0800f448 b0f90000 ldrsh.w r0, [r0]
| | ||| 0x0800f44c 1bf038fb bl func_2aac0
| | ,====< 0x0800f450 18e0 b 0x800f484
| | |`---> 0x0800f452 1048 ldr r0, [0x0800f496] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | | || 0x0800f454 0068 ldr r0, [r0]
| | | || 0x0800f456 407a ldrb r0, [r0, 9]
| | | || 0x0800f458 1421 movs r1, 0x14 ; 20
| | | || 0x0800f45a 0e4a ldr r2, [0x0800f496] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | | || 0x0800f45c 1268 ldr r2, [r2]
| | | || 0x0800f45e 5268 ldr r2, [r2, 4]
| | | || 0x0800f460 01fb0020 mla r0, r1, r0, r2
| | | || 0x0800f464 0c49 ldr r1, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| | | || 0x0800f466 0860 str r0, [r1]
| | | || 0x0800f468 0a48 ldr r0, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | | || 0x0800f46a 0068 ldr r0, [r0]
| | | || 0x0800f46c 4089 ldrh r0, [r0, 0xa]
| | | || 0x0800f46e 401e subs r0, r0, 1
| | | || 0x0800f470 0849 ldr r1, [0x0800f494] ; [0x800f494:4]=0x2001e700 menu_memory_poi
| | | || 0x0800f472 0968 ldr r1, [r1]
| | | || 0x0800f474 4881 strh r0, [r1, 0xa]
| | | || 0x0800f476 8848 ldr r0, [0x0800f69a] ; [0x800f698:4]=0x2001e81e
| | | || 0x0800f478 b0f90000 ldrsh.w r0, [r0]
| | | || 0x0800f47c 1bf09dfb bl func_2abba
| | | || 0x0800f480 0df09ffe bl gfx_1d1c2
| | `-`--> 0x0800f484 0448 ldr r0, [0x0800f498] ; [0x800f498:4]=0x2001e6fc
| | | 0x0800f486 0068 ldr r0, [r0]
| | | 0x0800f488 8068 ldr r0, [r0, 8]
| | | 0x0800f48a 8047 blx r0
| | | 0x0800f48c fdf7acf9 bl func_0c7e8
\ `-----`-> 0x0800f490 10bd pop {r4, pc}
/ (fcn) 480
| Caller: kb_enter_alpha
| menu_func_0f4ac ();
| 0x0800f4ac 10b5 push {r4, lr}
| 0x0800f4ae 0024 movs r4, 0
| 0x0800f4b0 dff8b009 ldr.w r0, [0x0800fe68] ; [0x800fe68:4]=0x2001e892 gui_opmode3
| 0x0800f4b4 0078 ldrb r0, [r0]
| 0x0800f4b6 0228 cmp r0, 2 ; 2
| ,=< 0x0800f4b8 1ed0 beq 0x800f4f8
| | 0x0800f4ba dff8a809 ldr.w r0, [0x0800fe6a] ; [0x800fe68:4]=0x2001e892 gui_opmode3
| | 0x0800f4be 0078 ldrb r0, [r0]
| | 0x0800f4c0 0428 cmp r0, 4 ; 4
| ,==< 0x0800f4c2 19d0 beq 0x800f4f8
| || 0x0800f4c4 dff8a009 ldr.w r0, [0x0800fe6c] ; [0x800fe6c:4]=0x2001e5f0 radio_status_1
| || 0x0800f4c8 0078 ldrb r0, [r0]
| || 0x0800f4ca 0128 cmp r0, 1 ; 1
| ,===< 0x0800f4cc 14d0 beq 0x800f4f8
| ||| 0x0800f4ce dff89c09 ldr.w r0, [0x0800fe72] ; [0x800fe70:4]=0x20004acc md380_menu_depth
| ||| 0x0800f4d2 4078 ldrb r0, [r0, 1]
| ||| 0x0800f4d4 c007 lsls r0, r0, 0x1f
| ,====< 0x0800f4d6 0fd4 bmi 0x800f4f8
| |||| 0x0800f4d8 dff8d00c ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| |||| 0x0800f4dc 0068 ldr r0, [r0]
| |||| 0x0800f4de 007b ldrb r0, [r0, 0xc]
| |||| 0x0800f4e0 10f01f00 ands r0, r0, 0x1f
| |||| 0x0800f4e4 0728 cmp r0, 7 ; 7
| ,=====< 0x0800f4e6 07d0 beq 0x800f4f8
| ||||| 0x0800f4e8 dff8c00c ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||| 0x0800f4ec 0068 ldr r0, [r0]
| ||||| 0x0800f4ee 007b ldrb r0, [r0, 0xc]
| ||||| 0x0800f4f0 10f01f00 ands r0, r0, 0x1f
| ||||| 0x0800f4f4 0628 cmp r0, 6 ; 6
| ,======< 0x0800f4f6 00d1 bne 0x800f4fa
| ,=`````-> 0x0800f4f8 c7e0 b 0x800f68a
| |`------> 0x0800f4fa dff87409 ldr.w r0, [0x0800fe76] ; [0x800fe74:4]=0xb084b510
| | 0x0800f4fe 0078 ldrb r0, [r0]
| | 0x0800f500 1028 cmp r0, 0x10 ; 16
| | ,=< 0x0800f502 80f0c280 bhs.w 0x800f68a
| | | 0x0800f506 dff8a40c ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| | | 0x0800f50a 0068 ldr r0, [r0]
| | | 0x0800f50c c089 ldrh r0, [r0, 0xe]
| | | 0x0800f50e 0228 cmp r0, 2 ; 2
| | ,==< 0x0800f510 0bd3 blo 0x800f52a
| | || 0x0800f512 dff8140b ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | || 0x0800f516 0068 ldr r0, [r0]
| | || 0x0800f518 4089 ldrh r0, [r0, 0xa]
| | || 0x0800f51a dff8901c ldr.w r1, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| | || 0x0800f51e 0968 ldr r1, [r1]
| | || 0x0800f520 c989 ldrh r1, [r1, 0xe]
| | || 0x0800f522 491e subs r1, r1, 1
| | || 0x0800f524 8842 cmp r0, r1
| | ,===< 0x0800f526 c0f28b80 blt.w 0x800f640
| | .-`--> 0x0800f52a dff8fc0a ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | || | 0x0800f52e 0068 ldr r0, [r0]
| | || | 0x0800f530 407a ldrb r0, [r0, 9]
| | || | 0x0800f532 dff8f41a ldr.w r1, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | || | 0x0800f536 0968 ldr r1, [r1]
| | || | 0x0800f538 097a ldrb r1, [r1, 8]
| | || | 0x0800f53a 491e subs r1, r1, 1
| | || | 0x0800f53c 8842 cmp r0, r1
| | ||,==< 0x0800f53e 44db blt 0x800f5ca
| | |||| 0x0800f540 dff8e40a ldr.w r0, [0x0801002c] ; [0x801002c:4]=0xb084b510
| | |||| 0x0800f544 0068 ldr r0, [r0]
| | |||| 0x0800f546 0021 movs r1, 0
| | |||| 0x0800f548 4172 strb r1, [r0, 9]
| | |||| 0x0800f54a dff8dc0a ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | |||| 0x0800f54e 0068 ldr r0, [r0]
| | |||| 0x0800f550 4089 ldrh r0, [r0, 0xa]
| | |||| 0x0800f552 0028 cmp r0, 0
| | ,=====< 0x0800f554 4fd4 bmi 0x800f5f6
| | ||||| 0x0800f556 dff8540c ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| | ||||| 0x0800f55a 0068 ldr r0, [r0]
| | ||||| 0x0800f55c 007b ldrb r0, [r0, 0xc]
| | ||||| 0x0800f55e 10f01f00 ands r0, r0, 0x1f
| | ||||| 0x0800f562 0128 cmp r0, 1 ; 1
| |,======< 0x0800f564 47d0 beq 0x800f5f6
| ||||||| 0x0800f566 dff8440c ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f56a 0068 ldr r0, [r0]
| ||||||| 0x0800f56c 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f56e 1f21 movs r1, 0x1f ; 31
| ||||||| 0x0800f570 0842 tst r0, r1
| ========< 0x0800f572 40d0 beq 0x800f5f6
| ||||||| 0x0800f574 dff8340c ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f578 0068 ldr r0, [r0]
| ||||||| 0x0800f57a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f57c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f580 0828 cmp r0, 8 ; 8
| ========< 0x0800f582 38d0 beq 0x800f5f6
| ||||||| 0x0800f584 dff8240c ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f588 0068 ldr r0, [r0]
| ||||||| 0x0800f58a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f58c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f590 0928 cmp r0, 9 ; 9
| ========< 0x0800f592 30d0 beq 0x800f5f6
| ||||||| 0x0800f594 dff8140c ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f598 0068 ldr r0, [r0]
| ||||||| 0x0800f59a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f59c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f5a0 0528 cmp r0, 5 ; 5
| ========< 0x0800f5a2 28d0 beq 0x800f5f6
| ||||||| 0x0800f5a4 dff8040c ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f5a8 0068 ldr r0, [r0]
| ||||||| 0x0800f5aa 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f5ac 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f5b0 0628 cmp r0, 6 ; 6
| ========< 0x0800f5b2 20d0 beq 0x800f5f6
| ||||||| 0x0800f5b4 0124 movs r4, 1 ; 1
| ||||||| 0x0800f5b6 dff8700a ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| ||||||| 0x0800f5ba 0068 ldr r0, [r0]
| ||||||| 0x0800f5bc 417a ldrb r1, [r0, 9]
| ||||||| 0x0800f5be 3648 ldr r0, [0x0800f69a] ; [0x800f698:4]=0x2001e81e
| ||||||| 0x0800f5c0 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800f5c4 1bf07cfa bl func_2aac0
| ========< 0x0800f5c8 15e0 b 0x800f5f6
| |||||`--> 0x0800f5ca dff85c0a ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| ||||| | 0x0800f5ce 0068 ldr r0, [r0]
| ||||| | 0x0800f5d0 407a ldrb r0, [r0, 9]
| ||||| | 0x0800f5d2 401c adds r0, r0, 1
| ||||| | 0x0800f5d4 dff8501a ldr.w r1, [0x0801002c] ; [0x801002c:4]=0xb084b510
| ||||| | 0x0800f5d8 0968 ldr r1, [r1]
| ||||| | 0x0800f5da 4872 strb r0, [r1, 9]
| ||||| | 0x0800f5dc dff8cc0b ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||| | 0x0800f5e0 0068 ldr r0, [r0]
| ||||| | 0x0800f5e2 c089 ldrh r0, [r0, 0xe]
| ||||| | 0x0800f5e4 0028 cmp r0, 0
| |||||,==< 0x0800f5e6 06d0 beq 0x800f5f6
| ||||||| 0x0800f5e8 2b48 ldr r0, [0x0800f698] ; [0x800f698:4]=0x2001e81e
| ||||||| 0x0800f5ea b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800f5ee 1bf0dbfa bl func_2aba8
| ||||||| 0x0800f5f2 0df0e6fd bl gfx_1d1c2
| -``--`--> 0x0800f5f6 dff8300a ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | || | 0x0800f5fa 0068 ldr r0, [r0]
| | || | 0x0800f5fc 407a ldrb r0, [r0, 9]
| | || | 0x0800f5fe 1421 movs r1, 0x14 ; 20
| | || | 0x0800f600 dff8242a ldr.w r2, [0x0801002c] ; [0x801002c:4]=0xb084b510
| | || | 0x0800f604 1268 ldr r2, [r2]
| | || | 0x0800f606 5268 ldr r2, [r2, 4]
| | || | 0x0800f608 01fb0020 mla r0, r1, r0, r2
| | || | 0x0800f60c dff89c1b ldr.w r1, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| | || | 0x0800f610 0860 str r0, [r1]
| | || | 0x0800f612 dff8980b ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| | || | 0x0800f616 0068 ldr r0, [r0]
| | || | 0x0800f618 c089 ldrh r0, [r0, 0xe]
| | || | 0x0800f61a 0028 cmp r0, 0
| | `====< 0x0800f61c 85d0 beq 0x800f52a
| | | | 0x0800f61e e4b2 uxtb r4, r4
| | | | 0x0800f620 002c cmp r4, 0
| | |,==< 0x0800f622 07d0 beq 0x800f634
| | ||| 0x0800f624 0021 movs r1, 0
| | ||| 0x0800f626 1c48 ldr r0, [0x0800f69a] ; [0x800f698:4]=0x2001e81e
| | ||| 0x0800f628 b0f90000 ldrsh.w r0, [r0]
| | ||| 0x0800f62c 1bf048fa bl func_2aac0
| | ||| 0x0800f630 0df0c7fd bl gfx_1d1c2
| | |`--> 0x0800f634 dff8f009 ldr.w r0, [0x0801002c] ; [0x801002c:4]=0xb084b510
| | | | 0x0800f638 0068 ldr r0, [r0]
| | | | 0x0800f63a 0021 movs r1, 0
| | | | 0x0800f63c 4181 strh r1, [r0, 0xa]
| | |,==< 0x0800f63e 1de0 b 0x800f67c
| | `---> 0x0800f640 dff8e409 ldr.w r0, [0x0801002c] ; [0x801002c:4]=0xb084b510
| | || 0x0800f644 0068 ldr r0, [r0]
| | || 0x0800f646 407a ldrb r0, [r0, 9]
| | || 0x0800f648 1421 movs r1, 0x14 ; 20
| | || 0x0800f64a dff8dc29 ldr.w r2, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | || 0x0800f64e 1268 ldr r2, [r2]
| | || 0x0800f650 5268 ldr r2, [r2, 4]
| | || 0x0800f652 01fb0020 mla r0, r1, r0, r2
| | || 0x0800f656 dff8541b ldr.w r1, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| | || 0x0800f65a 0860 str r0, [r1]
| | || 0x0800f65c dff8c809 ldr.w r0, [0x0801002c] ; [0x801002c:4]=0xb084b510
| | || 0x0800f660 0068 ldr r0, [r0]
| | || 0x0800f662 4089 ldrh r0, [r0, 0xa]
| | || 0x0800f664 401c adds r0, r0, 1
| | || 0x0800f666 dff8c019 ldr.w r1, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | || 0x0800f66a 0968 ldr r1, [r1]
| | || 0x0800f66c 4881 strh r0, [r1, 0xa]
| | || 0x0800f66e 0a48 ldr r0, [0x0800f69a] ; [0x800f698:4]=0x2001e81e
| | || 0x0800f670 b0f90000 ldrsh.w r0, [r0]
| | || 0x0800f674 1bf098fa bl func_2aba8
| | || 0x0800f678 0df0a3fd bl gfx_1d1c2
| | `--> 0x0800f67c dff82c0b ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| | | 0x0800f680 0068 ldr r0, [r0]
| | | 0x0800f682 8068 ldr r0, [r0, 8]
| | | 0x0800f684 8047 blx r0
| | | 0x0800f686 fdf7aff8 bl func_0c7e8
\ `-----`-> 0x0800f68a 10bd pop {r4, pc}
/ (fcn) 1452
| Caller: kb_enter_alpha menu.dispatch.greenkey
| menu_func_0f6a8 ();
| || 0x0800f6a8 2de9ff41 push.w {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
| || 0x0800f6ac 0024 movs r4, 0
| || 0x0800f6ae dff8000b ldr.w r0, [0x080101b6] ; [0x80101b4:4]=0x2001e915 md380_menu_id
| || 0x0800f6b2 0021 movs r1, 0
| || 0x0800f6b4 0170 strb r1, [r0]
| || 0x0800f6b6 fef7f9fc bl F_786
| || 0x0800f6ba fef717fb bl func_0dcec
| || 0x0800f6be dff8b00d ldr.w r0, [0x08010476] ; [0x8010474:4]=0x2001e81c not_the_volume_knob
| || 0x0800f6c2 c078 ldrb r0, [r0, 3]
| || 0x0800f6c4 0006 lsls r0, r0, 0x18
| ,===< 0x0800f6c6 0cd4 bmi 0x800f6e2
| ||| 0x0800f6c8 1b48 ldr r0, [0x0800f738] ; [0x800f738:4]=0x2001e604 q_status_4
| ||| 0x0800f6ca 0078 ldrb r0, [r0]
| ||| 0x0800f6cc c0f34010 ubfx r0, r0, 5, 1
| ||| 0x0800f6d0 c007 lsls r0, r0, 0x1f
| ,====< 0x0800f6d2 06d5 bpl 0x800f6e2
| |||| 0x0800f6d4 1848 ldr r0, [0x0800f738] ; [0x800f738:4]=0x2001e604 q_status_4
| |||| 0x0800f6d6 0078 ldrb r0, [r0]
| |||| 0x0800f6d8 10f0df00 ands r0, r0, 0xdf
| |||| 0x0800f6dc 1649 ldr r1, [0x0800f738] ; [0x800f738:4]=0x2001e604 q_status_4
| |||| 0x0800f6de 0870 strb r0, [r1]
| ,=====< 0x0800f6e0 b6e2 b 0x800fc50
| |``---> 0x0800f6e2 1248 ldr r0, [0x0800f72e] ; [0x800f72c:4]=0x2001e94b gui_opmode2
| | || 0x0800f6e4 0078 ldrb r0, [r0]
| | || 0x0800f6e6 0228 cmp r0, 2 ; 2
| | ,===< 0x0800f6e8 0bd0 beq 0x800f702
| | ||| 0x0800f6ea 1048 ldr r0, [0x0800f72e] ; [0x800f72c:4]=0x2001e94b gui_opmode2
| | ||| 0x0800f6ec 0078 ldrb r0, [r0]
| | ||| 0x0800f6ee 0428 cmp r0, 4 ; 4
| |,====< 0x0800f6f0 07d0 beq 0x800f702
| ||||| 0x0800f6f2 0f48 ldr r0, [0x0800f732] ; [0x800f730:4]=0x2001e892 gui_opmode3
| ||||| 0x0800f6f4 0078 ldrb r0, [r0]
| ||||| 0x0800f6f6 0128 cmp r0, 1 ; 1
| ,======< 0x0800f6f8 03d0 beq 0x800f702
| |||||| 0x0800f6fa 0e48 ldr r0, [0x0800f736] ; [0x800f734:4]=0x2001e5f0 radio_status_1
| |||||| 0x0800f6fc 4078 ldrb r0, [r0, 1]
| |||||| 0x0800f6fe c007 lsls r0, r0, 0x1f
| ,=======< 0x0800f700 00d5 bpl 0x800f704
| =`-``---> 0x0800f702 a5e2 b 0x800fc50
| `-------> 0x0800f704 0a48 ldr r0, [0x0800f730] ; [0x800f730:4]=0x2001e892 gui_opmode3
| | || 0x0800f706 0078 ldrb r0, [r0]
| | || 0x0800f708 0428 cmp r0, 4 ; 4
| | ,===< 0x0800f70a 00f0a182 beq.w 0x800fc50
| | ||| 0x0800f70e dff86007 ldr.w r0, [0x0800fe76] ; [0x800fe74:4]=0xb084b510
| | ||| 0x0800f712 0078 ldrb r0, [r0]
| | ||| 0x0800f714 1028 cmp r0, 0x10 ; 16
| |,====< 0x0800f716 80f09b82 bhs.w 0x800fc50
| ||||| 0x0800f71a dff85407 ldr.w r0, [0x0800fe76] ; [0x800fe74:4]=0xb084b510
| ||||| 0x0800f71e 0078 ldrb r0, [r0]
| ||||| 0x0800f720 0028 cmp r0, 0
| ,======< 0x0800f722 0bd1 bne 0x800f73c
| |||||| 0x0800f724 00f0b7fa bl return_to_mode_1_from10
| ,=======< 0x0800f728 92e2 b 0x800fc50
| ||||||| 0x0800f72a 00bf nop
| ||||||| 0x0800f72c 4be90120 strd r2, r0, [fp, -0x4]
| ||||||| 0x0800f730 92e80120 ldm.w r2, {r0, sp}
| ||||||`=< 0x0800f734 f0e5 b 0x800f318 ; menu_F_4144+0x20
| |||||| 0x0800f736 0120 movs r0, 1 ; 1
| |||||`==< 0x0800f738 04e6 b 0x800f344 ; menu_F_4144+0x4c
| ||||| 0x0800f73a 0120 movs r0, 1 ; 1
| |`------> 0x0800f73c dff86c0a ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| | ||| 0x0800f740 0068 ldr r0, [r0]
| | ||| 0x0800f742 407b ldrb r0, [r0, 0xd]
| | ||| 0x0800f744 10f0f000 ands r0, r0, 0xf0
| | ||| 0x0800f748 f028 cmp r0, 0xf0 ; 240
| | ||| ,=< 0x0800f74a 02d1 bne 0x800f752
| | ||| | 0x0800f74c 00f0a3fa bl return_to_mode_1_from10
| | |||,==< 0x0800f750 7ee2 b 0x800fc50
| | ||||`-> 0x0800f752 dff8580a ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| | |||| 0x0800f756 0068 ldr r0, [r0]
| | |||| 0x0800f758 407b ldrb r0, [r0, 0xd]
| | |||| 0x0800f75a 10f0f000 ands r0, r0, 0xf0
| | |||| 0x0800f75e 1028 cmp r0, 0x10 ; 16
| | ||||,=< 0x0800f760 54d1 bne 0x800f80c
| | ||||| 0x0800f762 dff8e40d ldr.w r0, [0x0801054e] ; [0x801054c:4]=0x2001d5cc md380_menu_memory
| | ||||| 0x0800f766 ff21 movs r1, 0xff ; 255
| | ||||| 0x0800f768 0170 strb r1, [r0]
| | ||||| 0x0800f76a dff8400a ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| | ||||| 0x0800f76e 0068 ldr r0, [r0]
| | ||||| 0x0800f770 4068 ldr r0, [r0, 4]
| | ||||| 0x0800f772 8047 blx r0
| | ||||| 0x0800f774 dff8f806 ldr.w r0, [menu_func_0fe74] ; [0x800fe74:4]=0xb084b510
| | ||||| 0x0800f778 0078 ldrb r0, [r0]
| | ||||| 0x0800f77a 401c adds r0, r0, 1
| | ||||| 0x0800f77c dff8f016 ldr.w r1, [menu_func_0fe74] ; [0x800fe74:4]=0xb084b510
| | ||||| 0x0800f780 0870 strb r0, [r1]
| | ||||| 0x0800f782 dff8ec06 ldr.w r0, [0x0800fe76] ; [0x800fe74:4]=0xb084b510
| | ||||| 0x0800f786 0078 ldrb r0, [r0]
| | ||||| 0x0800f788 00f064fa bl menu_add_number_of_menuentries_counts
| | ||||| 0x0800f78c dff8241a ldr.w r1, [func_101b8_yet_another_menu] ; [0x80101b8:4]=0xb084b510
| | ||||| 0x0800f790 0870 strb r0, [r1]
| | ||||| 0x0800f792 dff8dc06 ldr.w r0, [0x0800fe76] ; [0x800fe74:4]=0xb084b510
| | ||||| 0x0800f796 0078 ldrb r0, [r0]
| | ||||| 0x0800f798 0c21 movs r1, 0xc ; 12
| | ||||| 0x0800f79a dff8b02d ldr.w r2, [0x08010552] ; [0x8010550:4]=0xb084b510
| | ||||| 0x0800f79e 01fb0020 mla r0, r1, r0, r2
| | ||||| 0x0800f7a2 dff88418 ldr.w r1, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | ||||| 0x0800f7a6 0860 str r0, [r1]
| | ||||| 0x0800f7a8 dff87c08 ldr.w r0, [0x0801002c] ; [0x801002c:4]=0xb084b510
| | ||||| 0x0800f7ac 0068 ldr r0, [r0]
| | ||||| 0x0800f7ae 407a ldrb r0, [r0, 9]
| | ||||| 0x0800f7b0 1421 movs r1, 0x14 ; 20
| | ||||| 0x0800f7b2 dff87428 ldr.w r2, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | ||||| 0x0800f7b6 1268 ldr r2, [r2]
| | ||||| 0x0800f7b8 5268 ldr r2, [r2, 4]
| | ||||| 0x0800f7ba 01fb0020 mla r0, r1, r0, r2
| | ||||| 0x0800f7be dff8ec19 ldr.w r1, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| | ||||| 0x0800f7c2 0860 str r0, [r1]
| | ||||| 0x0800f7c4 0025 movs r5, 0
| |,======< 0x0800f7c6 00e0 b 0x800f7ca
| --------> 0x0800f7c8 6d1c adds r5, r5, 1
| |`------> 0x0800f7ca dff85c08 ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | ||||| 0x0800f7ce 0068 ldr r0, [r0]
| | ||||| 0x0800f7d0 007a ldrb r0, [r0, 8]
| | ||||| 0x0800f7d2 edb2 uxtb r5, r5
| | ||||| 0x0800f7d4 8542 cmp r5, r0
| |,======< 0x0800f7d6 0ad2 bhs 0x800f7ee
| ||||||| 0x0800f7d8 edb2 uxtb r5, r5
| ||||||| 0x0800f7da 1420 movs r0, 0x14 ; 20
| ||||||| 0x0800f7dc dff84818 ldr.w r1, [0x0801002c] ; [0x801002c:4]=0xb084b510
| ||||||| 0x0800f7e0 0968 ldr r1, [r1]
| ||||||| 0x0800f7e2 4968 ldr r1, [r1, 4]
| ||||||| 0x0800f7e4 00fb0510 mla r0, r0, r5, r1
| ||||||| 0x0800f7e8 c089 ldrh r0, [r0, 0xe]
| ||||||| 0x0800f7ea 0028 cmp r0, 0
| ========< 0x0800f7ec ecd0 beq 0x800f7c8
| |`------> 0x0800f7ee dff8bc09 ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| | ||||| 0x0800f7f2 0668 ldr r6, [r0]
| | ||||| 0x0800f7f4 edb2 uxtb r5, r5
| | ||||| 0x0800f7f6 1420 movs r0, 0x14 ; 20
| | ||||| 0x0800f7f8 dff82c18 ldr.w r1, [0x0801002c] ; [0x801002c:4]=0xb084b510
| | ||||| 0x0800f7fc 0968 ldr r1, [r1]
| | ||||| 0x0800f7fe 4968 ldr r1, [r1, 4]
| | ||||| 0x0800f800 00fb0517 mla r7, r0, r5, r1
| | ||||| 0x0800f804 dff8a409 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| | ||||| 0x0800f808 0760 str r7, [r0]
| |,======< 0x0800f80a 77e0 b 0x800f8fc
| ||||||`-> 0x0800f80c dff8380d ldr.w r0, [0x0801054c] ; [0x801054c:4]=0x2001d5cc md380_menu_memory
| |||||| 0x0800f810 ff21 movs r1, 0xff ; 255
| |||||| 0x0800f812 0170 strb r1, [r0]
| |||||| 0x0800f814 dff81008 ldr.w r0, [0x0801002c] ; [0x801002c:4]=0xb084b510
| |||||| 0x0800f818 0068 ldr r0, [r0]
| |||||| 0x0800f81a 0021 movs r1, 0
| |||||| 0x0800f81c 4172 strb r1, [r0, 9]
| |||||| 0x0800f81e dff80808 ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| |||||| 0x0800f822 0068 ldr r0, [r0]
| |||||| 0x0800f824 0021 movs r1, 0
| |||||| 0x0800f826 4181 strh r1, [r0, 0xa]
| |||||| 0x0800f828 dff88009 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| |||||| 0x0800f82c 0068 ldr r0, [r0]
| |||||| 0x0800f82e 407b ldrb r0, [r0, 0xd]
| |||||| 0x0800f830 f021 movs r1, 0xf0 ; 240
| |||||| 0x0800f832 0842 tst r0, r1
| ||||||,=< 0x0800f834 11d1 bne 0x800f85a
| ||||||| 0x0800f836 dff83806 ldr.w r0, [0x0800fe76] ; [0x800fe74:4]=0xb084b510
| ||||||| 0x0800f83a 0078 ldrb r0, [r0]
| ||||||| 0x0800f83c 401e subs r0, r0, 1
| ||||||| 0x0800f83e dff83016 ldr.w r1, [0x0800fe76] ; [0x800fe74:4]=0xb084b510
| ||||||| 0x0800f842 0870 strb r0, [r1]
| ||||||| 0x0800f844 dff82806 ldr.w r0, [menu_func_0fe74] ; [0x800fe74:4]=0xb084b510
| ||||||| 0x0800f848 0078 ldrb r0, [r0]
| ||||||| 0x0800f84a 0028 cmp r0, 0
| ========< 0x0800f84c 12d1 bne 0x800f874
| ||||||| 0x0800f84e dff85c09 ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f852 0068 ldr r0, [r0]
| ||||||| 0x0800f854 0121 movs r1, 1 ; 1
| ||||||| 0x0800f856 0174 strb r1, [r0, 0x10]
| ========< 0x0800f858 0ce0 b 0x800f874
| ||||||`-> 0x0800f85a dff85009 ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| |||||| 0x0800f85e 0068 ldr r0, [r0]
| |||||| 0x0800f860 407b ldrb r0, [r0, 0xd]
| |||||| 0x0800f862 c0b2 uxtb r0, r0
| |||||| 0x0800f864 0009 lsrs r0, r0, 4
| |||||| 0x0800f866 dff80816 ldr.w r1, [0x0800fe76] ; [0x800fe74:4]=0xb084b510
| |||||| 0x0800f86a 0978 ldrb r1, [r1]
| |||||| 0x0800f86c 081a subs r0, r1, r0
| |||||| 0x0800f86e dff80016 ldr.w r1, [0x0800fe76] ; [0x800fe74:4]=0xb084b510
| |||||| 0x0800f872 0870 strb r0, [r1]
| --------> 0x0800f874 dff8f805 ldr.w r0, [menu_func_0fe74] ; [0x800fe74:4]=0xb084b510
| |||||| 0x0800f878 0078 ldrb r0, [r0]
| |||||| 0x0800f87a 00f0ebf9 bl menu_add_number_of_menuentries_counts
| |||||| 0x0800f87e dff83419 ldr.w r1, [0x080101ba] ; [0x80101b8:4]=0xb084b510
| |||||| 0x0800f882 0870 strb r0, [r1]
| |||||| 0x0800f884 dff8e805 ldr.w r0, [menu_func_0fe74] ; [0x800fe74:4]=0xb084b510
| |||||| 0x0800f888 0078 ldrb r0, [r0]
| |||||| 0x0800f88a 0c21 movs r1, 0xc ; 12
| |||||| 0x0800f88c dff8bc2c ldr.w r2, [0x08010550] ; [0x8010550:4]=0xb084b510
| |||||| 0x0800f890 01fb0020 mla r0, r1, r0, r2
| |||||| 0x0800f894 dff89017 ldr.w r1, [0x0801002c] ; [0x801002c:4]=0xb084b510
| |||||| 0x0800f898 0860 str r0, [r1]
| |||||| 0x0800f89a dff88c07 ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| |||||| 0x0800f89e 0068 ldr r0, [r0]
| |||||| 0x0800f8a0 407a ldrb r0, [r0, 9]
| |||||| 0x0800f8a2 1421 movs r1, 0x14 ; 20
| |||||| 0x0800f8a4 dff88027 ldr.w r2, [0x0801002c] ; [0x801002c:4]=0xb084b510
| |||||| 0x0800f8a8 1268 ldr r2, [r2]
| |||||| 0x0800f8aa 5268 ldr r2, [r2, 4]
| |||||| 0x0800f8ac 01fb0020 mla r0, r1, r0, r2
| |||||| 0x0800f8b0 dff8f818 ldr.w r1, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| |||||| 0x0800f8b4 0860 str r0, [r1]
| |||||| 0x0800f8b6 0025 movs r5, 0
| ||||||,=< 0x0800f8b8 00e0 b 0x800f8bc
| --------> 0x0800f8ba 6d1c adds r5, r5, 1
| ||||||`-> 0x0800f8bc dff86807 ldr.w r0, [0x0801002c] ; [0x801002c:4]=0xb084b510
| |||||| 0x0800f8c0 0068 ldr r0, [r0]
| |||||| 0x0800f8c2 007a ldrb r0, [r0, 8]
| |||||| 0x0800f8c4 edb2 uxtb r5, r5
| |||||| 0x0800f8c6 8542 cmp r5, r0
| ||||||,=< 0x0800f8c8 0ad2 bhs 0x800f8e0
| ||||||| 0x0800f8ca edb2 uxtb r5, r5
| ||||||| 0x0800f8cc 1420 movs r0, 0x14 ; 20
| ||||||| 0x0800f8ce dff85817 ldr.w r1, [0x0801002e] ; [0x801002c:4]=0xb084b510
| ||||||| 0x0800f8d2 0968 ldr r1, [r1]
| ||||||| 0x0800f8d4 4968 ldr r1, [r1, 4]
| ||||||| 0x0800f8d6 00fb0510 mla r0, r0, r5, r1
| ||||||| 0x0800f8da c089 ldrh r0, [r0, 0xe]
| ||||||| 0x0800f8dc 0028 cmp r0, 0
| ========< 0x0800f8de ecd0 beq 0x800f8ba
| ||||||`-> 0x0800f8e0 edb2 uxtb r5, r5
| |||||| 0x0800f8e2 1420 movs r0, 0x14 ; 20
| |||||| 0x0800f8e4 dff84017 ldr.w r1, [0x0801002c] ; [0x801002c:4]=0xb084b510
| |||||| 0x0800f8e8 0968 ldr r1, [r1]
| |||||| 0x0800f8ea 4968 ldr r1, [r1, 4]
| |||||| 0x0800f8ec 00fb0517 mla r7, r0, r5, r1
| |||||| 0x0800f8f0 dff8b808 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| |||||| 0x0800f8f4 0668 ldr r6, [r0]
| |||||| 0x0800f8f6 dff8b408 ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| |||||| 0x0800f8fa 0760 str r7, [r0]
| |`------> 0x0800f8fc dff8ac08 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| | |||| 0x0800f900 0068 ldr r0, [r0]
| | |||| 0x0800f902 007b ldrb r0, [r0, 0xc]
| | |||| 0x0800f904 10f01f00 ands r0, r0, 0x1f
| | |||| 0x0800f908 0a28 cmp r0, 0xa ; 10
| | ||||,=< 0x0800f90a 00f0ae80 beq.w 0x800fa6a
| | ||||| 0x0800f90e dff89c08 ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| | ||||| 0x0800f912 0068 ldr r0, [r0]
| | ||||| 0x0800f914 007b ldrb r0, [r0, 0xc]
| | ||||| 0x0800f916 10f01f00 ands r0, r0, 0x1f
| | ||||| 0x0800f91a 0328 cmp r0, 3 ; 3
| |,======< 0x0800f91c 00f0a580 beq.w 0x800fa6a
| ||||||| 0x0800f920 dff88808 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f924 0068 ldr r0, [r0]
| ||||||| 0x0800f926 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f928 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f92c 0b28 cmp r0, 0xb ; 11
| ========< 0x0800f92e 00f09c80 beq.w 0x800fa6a
| ||||||| 0x0800f932 dff87808 ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f936 0068 ldr r0, [r0]
| ||||||| 0x0800f938 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f93a 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f93e 0c28 cmp r0, 0xc ; 12
| ========< 0x0800f940 00f09380 beq.w 0x800fa6a
| ||||||| 0x0800f944 dff86408 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f948 0068 ldr r0, [r0]
| ||||||| 0x0800f94a 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f94c 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f950 0d28 cmp r0, 0xd ; 13
| ========< 0x0800f952 00f08a80 beq.w 0x800fa6a
| ||||||| 0x0800f956 dff85408 ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f95a 0068 ldr r0, [r0]
| ||||||| 0x0800f95c 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f95e 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f962 0f28 cmp r0, 0xf ; 15
| ========< 0x0800f964 00f08180 beq.w 0x800fa6a
| ||||||| 0x0800f968 dff84008 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f96c 0068 ldr r0, [r0]
| ||||||| 0x0800f96e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f970 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f974 1028 cmp r0, 0x10 ; 16
| ========< 0x0800f976 78d0 beq 0x800fa6a
| ||||||| 0x0800f978 dff83008 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f97c 0068 ldr r0, [r0]
| ||||||| 0x0800f97e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f980 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f984 1128 cmp r0, 0x11 ; 17
| ========< 0x0800f986 70d0 beq 0x800fa6a
| ||||||| 0x0800f988 dff82008 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f98c 0068 ldr r0, [r0]
| ||||||| 0x0800f98e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f990 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f994 1228 cmp r0, 0x12 ; 18
| ========< 0x0800f996 68d0 beq 0x800fa6a
| ||||||| 0x0800f998 dff81008 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f99c 0068 ldr r0, [r0]
| ||||||| 0x0800f99e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f9a0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f9a4 1428 cmp r0, 0x14 ; 20
| ========< 0x0800f9a6 60d0 beq 0x800fa6a
| ||||||| 0x0800f9a8 dff80008 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f9ac 0068 ldr r0, [r0]
| ||||||| 0x0800f9ae 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f9b0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f9b4 1328 cmp r0, 0x13 ; 19
| ========< 0x0800f9b6 58d0 beq 0x800fa6a
| ||||||| 0x0800f9b8 dff8f007 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f9bc 0068 ldr r0, [r0]
| ||||||| 0x0800f9be 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f9c0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f9c4 1528 cmp r0, 0x15 ; 21
| ========< 0x0800f9c6 50d0 beq 0x800fa6a
| ||||||| 0x0800f9c8 dff8e007 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f9cc 0068 ldr r0, [r0]
| ||||||| 0x0800f9ce 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f9d0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f9d4 1628 cmp r0, 0x16 ; 22
| ========< 0x0800f9d6 48d0 beq 0x800fa6a
| ||||||| 0x0800f9d8 dff8d007 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f9dc 0068 ldr r0, [r0]
| ||||||| 0x0800f9de 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f9e0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f9e4 1728 cmp r0, 0x17 ; 23
| ========< 0x0800f9e6 40d0 beq 0x800fa6a
| ||||||| 0x0800f9e8 dff8c007 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f9ec 0068 ldr r0, [r0]
| ||||||| 0x0800f9ee 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800f9f0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800f9f4 1828 cmp r0, 0x18 ; 24
| ========< 0x0800f9f6 38d0 beq 0x800fa6a
| ||||||| 0x0800f9f8 dff8b007 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800f9fc 0068 ldr r0, [r0]
| ||||||| 0x0800f9fe 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fa00 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fa04 1928 cmp r0, 0x19 ; 25
| ========< 0x0800fa06 30d0 beq 0x800fa6a
| ||||||| 0x0800fa08 dff8a007 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fa0c 0068 ldr r0, [r0]
| ||||||| 0x0800fa0e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fa10 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fa14 1d28 cmp r0, 0x1d ; 29
| ========< 0x0800fa16 28d0 beq 0x800fa6a
| ||||||| 0x0800fa18 dff89007 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fa1c 0068 ldr r0, [r0]
| ||||||| 0x0800fa1e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fa20 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fa24 1a28 cmp r0, 0x1a ; 26
| ========< 0x0800fa26 20d0 beq 0x800fa6a
| ||||||| 0x0800fa28 dff88007 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fa2c 0068 ldr r0, [r0]
| ||||||| 0x0800fa2e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fa30 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fa34 1b28 cmp r0, 0x1b ; 27
| ========< 0x0800fa36 18d0 beq 0x800fa6a
| ||||||| 0x0800fa38 dff87007 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fa3c 0068 ldr r0, [r0]
| ||||||| 0x0800fa3e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fa40 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fa44 1c28 cmp r0, 0x1c ; 28
| ========< 0x0800fa46 10d0 beq 0x800fa6a
| ||||||| 0x0800fa48 dff86007 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fa4c 0068 ldr r0, [r0]
| ||||||| 0x0800fa4e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fa50 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fa54 1e28 cmp r0, 0x1e ; 30
| ========< 0x0800fa56 08d0 beq 0x800fa6a
| ||||||| 0x0800fa58 dff85007 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fa5c 0068 ldr r0, [r0]
| ||||||| 0x0800fa5e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fa60 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fa64 1f28 cmp r0, 0x1f ; 31
| ========< 0x0800fa66 40f0e680 bne.w 0x800fc36
| -`----`-> 0x0800fa6a dff8080a ldr.w r0, [0x0801047a] ; [0x8010478:4]=0x2001e81e
| | |||| 0x0800fa6e b0f90000 ldrsh.w r0, [r0]
| | |||| 0x0800fa72 0028 cmp r0, 0
| | ||||,=< 0x0800fa74 01d1 bne 0x800fa7a
| | ||||| 0x0800fa76 fef739f9 bl func_0dcec
| | ||||`-> 0x0800fa7a dff8fc09 ldr.w r0, [0x0801047e] ; [0x801047c:4]=0xb084b510
| | |||| 0x0800fa7e b0f90000 ldrsh.w r0, [r0]
| | |||| 0x0800fa82 0cf0a7ff bl gfx_1c9d4
| | |||| 0x0800fa86 dff8a005 ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | |||| 0x0800fa8a 0068 ldr r0, [r0]
| | |||| 0x0800fa8c 90f80980 ldrb.w r8, [r0, 9]
| | |||| 0x0800fa90 dff89405 ldr.w r0, [0x0801002c] ; [0x801002c:4]=0xb084b510
| | |||| 0x0800fa94 0068 ldr r0, [r0]
| | |||| 0x0800fa96 4572 strb r5, [r0, 9]
| | |||| 0x0800fa98 dff81007 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| | |||| 0x0800fa9c 0068 ldr r0, [r0]
| | |||| 0x0800fa9e 007c ldrb r0, [r0, 0x10]
| | |||| 0x0800faa0 0390 str r0, [sp, 0xc]
| | |||| 0x0800faa2 0220 movs r0, 2 ; 2
| | |||| 0x0800faa4 0290 str r0, [sp, 8]
| | |||| 0x0800faa6 5c20 movs r0, 0x5c ; '\' ; 92
| | |||| 0x0800faa8 0190 str r0, [sp, 4]
| | |||| 0x0800faaa a020 movs r0, 0xa0 ; 160
| | |||| 0x0800faac 0090 str r0, [sp]
| | |||| 0x0800faae 1323 movs r3, 0x13 ; 19
| | |||| 0x0800fab0 0022 movs r2, 0
| | |||| 0x0800fab2 dff8c009 ldr.w r0, [0x0801047a] ; [0x8010478:4]=0x2001e81e
| | |||| 0x0800fab6 b0f90010 ldrsh.w r1, [r0]
| | |||| 0x0800faba 3800 movs r0, r7
| | |||| 0x0800fabc 18f068fa bl menu_set_something
| | |||| 0x0800fac0 dff8b419 ldr.w r1, [func_1047c] ; [0x801047c:4]=0xb084b510
| | |||| 0x0800fac4 0880 strh r0, [r1]
| | |||| 0x0800fac6 dff86005 ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | |||| 0x0800faca 0068 ldr r0, [r0]
| | |||| 0x0800facc 80f80980 strb.w r8, [r0, 9]
| | |||| 0x0800fad0 0821 movs r1, 8 ; 8
| | |||| 0x0800fad2 dff8a409 ldr.w r0, [0x0801047e] ; [0x801047c:4]=0xb084b510
| | |||| 0x0800fad6 b0f90000 ldrsh.w r0, [r0]
| | |||| 0x0800fada 1bf078f8 bl func_2abce
| | |||| 0x0800fade 0621 movs r1, 6 ; 6
| | |||| 0x0800fae0 00b2 sxth r0, r0
| | |||| 0x0800fae2 1bf093f8 bl func_2ac0c
| | |||| 0x0800fae6 dff8c406 ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| | |||| 0x0800faea 0660 str r6, [r0]
| | |||| 0x0800faec 0025 movs r5, 0
| | ||||,=< 0x0800faee 0ce0 b 0x800fb0a
| |.------> 0x0800faf0 edb2 uxtb r5, r5
| ||||||| 0x0800faf2 1420 movs r0, 0x14 ; 20
| ||||||| 0x0800faf4 dff83015 ldr.w r1, [0x0801002c] ; [0x801002c:4]=0xb084b510
| ||||||| 0x0800faf8 0968 ldr r1, [r1]
| ||||||| 0x0800fafa 4968 ldr r1, [r1, 4]
| ||||||| 0x0800fafc 00fb0510 mla r0, r0, r5, r1
| ||||||| 0x0800fb00 c089 ldrh r0, [r0, 0xe]
| ||||||| 0x0800fb02 0028 cmp r0, 0
| ========< 0x0800fb04 00d1 bne 0x800fb08
| ||||||| 0x0800fb06 641c adds r4, r4, 1
| --------> 0x0800fb08 6d1c adds r5, r5, 1
| ||||||`-> 0x0800fb0a dff81c05 ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| |||||| 0x0800fb0e 0068 ldr r0, [r0]
| |||||| 0x0800fb10 407a ldrb r0, [r0, 9]
| |||||| 0x0800fb12 edb2 uxtb r5, r5
| |||||| 0x0800fb14 8542 cmp r5, r0
| |`======< 0x0800fb16 ebd3 blo 0x800faf0
| | |||| 0x0800fb18 dff89006 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| | |||| 0x0800fb1c 0068 ldr r0, [r0]
| | |||| 0x0800fb1e 007b ldrb r0, [r0, 0xc]
| | |||| 0x0800fb20 10f01f00 ands r0, r0, 0x1f
| | |||| 0x0800fb24 0c28 cmp r0, 0xc ; 12
| | ||||,=< 0x0800fb26 6fd0 beq 0x800fc08
| | ||||| 0x0800fb28 dff88006 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| | ||||| 0x0800fb2c 0068 ldr r0, [r0]
| | ||||| 0x0800fb2e 007b ldrb r0, [r0, 0xc]
| | ||||| 0x0800fb30 10f01f00 ands r0, r0, 0x1f
| | ||||| 0x0800fb34 1028 cmp r0, 0x10 ; 16
| |,======< 0x0800fb36 67d0 beq 0x800fc08
| ||||||| 0x0800fb38 dff87006 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fb3c 0068 ldr r0, [r0]
| ||||||| 0x0800fb3e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fb40 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fb44 1228 cmp r0, 0x12 ; 18
| ========< 0x0800fb46 5fd0 beq 0x800fc08
| ||||||| 0x0800fb48 dff86006 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fb4c 0068 ldr r0, [r0]
| ||||||| 0x0800fb4e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fb50 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fb54 1428 cmp r0, 0x14 ; 20
| ========< 0x0800fb56 57d0 beq 0x800fc08
| ||||||| 0x0800fb58 dff85006 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fb5c 0068 ldr r0, [r0]
| ||||||| 0x0800fb5e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fb60 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fb64 1328 cmp r0, 0x13 ; 19
| ========< 0x0800fb66 4fd0 beq 0x800fc08
| ||||||| 0x0800fb68 dff84006 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fb6c 0068 ldr r0, [r0]
| ||||||| 0x0800fb6e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fb70 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fb74 1928 cmp r0, 0x19 ; 25
| ========< 0x0800fb76 47d0 beq 0x800fc08
| ||||||| 0x0800fb78 dff83006 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fb7c 0068 ldr r0, [r0]
| ||||||| 0x0800fb7e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fb80 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fb84 1d28 cmp r0, 0x1d ; 29
| ========< 0x0800fb86 3fd0 beq 0x800fc08
| ||||||| 0x0800fb88 dff82006 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fb8c 0068 ldr r0, [r0]
| ||||||| 0x0800fb8e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fb90 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fb94 1528 cmp r0, 0x15 ; 21
| ========< 0x0800fb96 37d0 beq 0x800fc08
| ||||||| 0x0800fb98 dff81006 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fb9c 0068 ldr r0, [r0]
| ||||||| 0x0800fb9e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fba0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fba4 1f28 cmp r0, 0x1f ; 31
| ========< 0x0800fba6 2fd0 beq 0x800fc08
| ||||||| 0x0800fba8 dff80006 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fbac 0068 ldr r0, [r0]
| ||||||| 0x0800fbae 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fbb0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fbb4 0d28 cmp r0, 0xd ; 13
| ========< 0x0800fbb6 27d0 beq 0x800fc08
| ||||||| 0x0800fbb8 dff8f005 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fbbc 0068 ldr r0, [r0]
| ||||||| 0x0800fbbe 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fbc0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fbc4 1628 cmp r0, 0x16 ; 22
| ========< 0x0800fbc6 1fd0 beq 0x800fc08
| ||||||| 0x0800fbc8 dff8e005 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fbcc 0068 ldr r0, [r0]
| ||||||| 0x0800fbce 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fbd0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fbd4 1e28 cmp r0, 0x1e ; 30
| ========< 0x0800fbd6 17d0 beq 0x800fc08
| ||||||| 0x0800fbd8 dff8d005 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fbdc 0068 ldr r0, [r0]
| ||||||| 0x0800fbde 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fbe0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fbe4 1a28 cmp r0, 0x1a ; 26
| ========< 0x0800fbe6 0fd0 beq 0x800fc08
| ||||||| 0x0800fbe8 dff8c005 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fbec 0068 ldr r0, [r0]
| ||||||| 0x0800fbee 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fbf0 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fbf4 1b28 cmp r0, 0x1b ; 27
| ========< 0x0800fbf6 07d0 beq 0x800fc08
| ||||||| 0x0800fbf8 dff8b005 ldr.w r0, [0x080101b0] ; [0x80101b0:4]=0x2001e90d
| ||||||| 0x0800fbfc 0068 ldr r0, [r0]
| ||||||| 0x0800fbfe 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0800fc00 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0800fc04 1c28 cmp r0, 0x1c ; 28
| ========< 0x0800fc06 0ad1 bne 0x800fc1e
| -`----`-> 0x0800fc08 dff81c04 ldr.w r0, [0x0801002c] ; [0x801002c:4]=0xb084b510
| | |||| 0x0800fc0c 0068 ldr r0, [r0]
| | |||| 0x0800fc0e 4189 ldrh r1, [r0, 0xa]
| | |||| 0x0800fc10 dff86408 ldr.w r0, [func_1047c] ; [0x801047c:4]=0xb084b510
| | |||| 0x0800fc14 b0f90000 ldrsh.w r0, [r0]
| | |||| 0x0800fc18 1af052ff bl func_2aac0
| | ||||,=< 0x0800fc1c 0be0 b 0x800fc36
| --------> 0x0800fc1e dff80804 ldr.w r0, [0x0801002e] ; [0x801002c:4]=0xb084b510
| | ||||| 0x0800fc22 0068 ldr r0, [r0]
| | ||||| 0x0800fc24 407a ldrb r0, [r0, 9]
| | ||||| 0x0800fc26 e4b2 uxtb r4, r4
| | ||||| 0x0800fc28 011b subs r1, r0, r4
| | ||||| 0x0800fc2a dff84c08 ldr.w r0, [0x0801047e] ; [0x801047c:4]=0xb084b510
| | ||||| 0x0800fc2e b0f90000 ldrsh.w r0, [r0]
| | ||||| 0x0800fc32 1af045ff bl func_2aac0
| ------`-> 0x0800fc36 dff87405 ldr.w r0, [0x080101b2] ; [0x80101b0:4]=0x2001e90d
| | |||| 0x0800fc3a 0068 ldr r0, [r0]
| | |||| 0x0800fc3c 8068 ldr r0, [r0, 8]
| | |||| 0x0800fc3e 8047 blx r0
| | |||| 0x0800fc40 0df0bffa bl gfx_1d1c2
| | |||| 0x0800fc44 fcf7d0fd bl func_0c7e8
| | |||| 0x0800fc48 dff8fc08 ldr.w r0, [0x0801054c] ; [0x801054c:4]=0x2001d5cc md380_menu_memory
| | |||| 0x0800fc4c 0021 movs r1, 0
| | |||| 0x0800fc4e 0170 strb r1, [r0]
\ `-````--> 0x0800fc50 bde8ff81 pop.w {r0, r1, r2, r3, r4, r5, r6, r7, r8, pc}
/ (fcn) 48
| Caller: md380_menu_12b78 menu_using_sms_and_edit_buf_1be2c md380_menu_13082 func_25790_menu_create_something
| menu_func_1aa60 menu_func_0f6a8 md380_menu_entry_programradio menu.dispatch.greenkey
| md380_menu_12e70 md380_menu_12a08 md380_menu_13114 md380_menu_12d08 func_213d0
| menu_6_1_1 func_1bf56 md380_menu_12fcc menucall.Utilities md380_f_4520
| func_27270 menu_cursor_related_1bb9c
| menu_add_number_of_menuentries_counts ();
| 0x0800fc54 10b4 push {r4}
| 0x0800fc56 0021 movs r1, 0
| 0x0800fc58 c0b2 uxtb r0, r0
| 0x0800fc5a 0f28 cmp r0, 0xf ; 15
| ,=< 0x0800fc5c 0ed2 bhs 0x800fc7c
| | 0x0800fc5e 0022 movs r2, 0
| ,==< 0x0800fc60 08e0 b 0x800fc74
| .---> 0x0800fc62 d2b2 uxtb r2, r2
| ||| 0x0800fc64 0c23 movs r3, 0xc ; 12
| ||| 0x0800fc66 dff8e448 ldr.w r4, [0x08010552] ; [0x8010550:4]=0xb084b510
| ||| 0x0800fc6a 03fb0243 mla r3, r3, r2, r4
| ||| 0x0800fc6e 1b7a ldrb r3, [r3, 8]
| ||| 0x0800fc70 5918 adds r1, r3, r1
| ||| 0x0800fc72 521c adds r2, r2, 1
| |`--> 0x0800fc74 c0b2 uxtb r0, r0
| | | 0x0800fc76 d2b2 uxtb r2, r2
| | | 0x0800fc78 9042 cmp r0, r2
| `===< 0x0800fc7a f2d2 bhs 0x800fc62
| `-> 0x0800fc7c 0800 movs r0, r1
| 0x0800fc7e c0b2 uxtb r0, r0
| 0x0800fc80 10bc pop {r4}
\ 0x0800fc82 7047 bx lr
| ;-- :
/ (fcn) 18
| md380_menu_entry_back ();
| 0x0800fc84 ~ dff8dc09 ldr.w r0, [0x08010668] ; [0x8010668:4]=0x2001e6ec
| 0x0800fc88 0078 ldrb r0, [r0]
| 0x0800fc8a 10f0fe00 ands r0, r0, 0xfe
| 0x0800fc8e dff8d419 ldr.w r1, [0x0801066a] ; [0x8010668:4]=0x2001e6ec
| 0x0800fc92 0870 strb r0, [r1]
\ 0x0800fc94 7047 bx lr
/ (fcn) return_to_mode_1_from10 32
| Caller: kb_enter_alpha func_2daf8 func_2e7bc scr_mode_stable menu.dispatch.greenkey
| menu_func_0f6a8 func_383f8 update_scr_19 func_383b8 func_214ea md380_f_4520
| return_to_mode_1_from10 ();
| 0x0800fc96 80b5 push {r7, lr}
| 0x0800fc98 fcf776fa bl md380_create_main_menu_entry
| 0x0800fc9c dff8d007 ldr.w r0, [0x08010474] ; [0x8010474:4]=0x2001e81c not_the_volume_knob
| 0x0800fca0 0078 ldrb r0, [r0]
| 0x0800fca2 10f00300 ands r0, r0, 3
| 0x0800fca6 0328 cmp r0, 3 ; 3
| ,=< 0x0800fca8 02d1 bne 0x800fcb0
| | 0x0800fcaa 1df067fc bl display_unprog_screen
| ,==< 0x0800fcae 01e0 b 0x800fcb4
| |`-> 0x0800fcb0 1df0a2fd bl display_idle_screen
\ `--> 0x0800fcb4 01bd pop {r0, pc}
/ (fcn) 294
| Caller: md380_f_4520
| menugreen.Contacts.800fcbc ();
| 0x0800fcbc 10b5 push {r4, lr}
| 0x0800fcbe 84b0 sub sp, 0x10
| 0x0800fcc0 0124 movs r4, 1 ; 1
| 0x0800fcc2 6b48 ldr r0, [0x0800fe72] ; [0x800fe70:4]=0x20004acc md380_menu_depth
| 0x0800fcc4 0078 ldrb r0, [r0]
| 0x0800fcc6 0c21 movs r1, 0xc ; 12
| 0x0800fcc8 dff88028 ldr.w r2, [0x08010550] ; [0x8010550:4]=0xb084b510
| 0x0800fccc 01fb0020 mla r0, r1, r0, r2
| 0x0800fcd0 0c30 adds r0, 0xc
| 0x0800fcd2 dff89419 ldr.w r1, [0x0801066e] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0800fcd6 0968 ldr r1, [r1]
| 0x0800fcd8 dff89029 ldr.w r2, [0x08010670] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
| 0x0800fcdc 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x0800fce0 c968 ldr r1, [r1, 0xc]
| 0x0800fce2 0160 str r1, [r0]
| 0x0800fce4 dff8cc14 ldr.w r1, [func_101b8_yet_another_menu] ; [0x80101b8:4]=0xb084b510
| 0x0800fce8 0978 ldrb r1, [r1]
| 0x0800fcea 1422 movs r2, 0x14 ; 20
| 0x0800fcec dff8203c ldr.w r3, [0x08010914] ; [0x8010914:4]=0x2001e398
| 0x0800fcf0 02fb0131 mla r1, r2, r1, r3
| 0x0800fcf4 4160 str r1, [r0, 4]
| 0x0800fcf6 0321 movs r1, 3 ; 3
| 0x0800fcf8 0172 strb r1, [r0, 8]
| 0x0800fcfa 0021 movs r1, 0
| 0x0800fcfc 4172 strb r1, [r0, 9]
| 0x0800fcfe 0021 movs r1, 0
| 0x0800fd00 4181 strh r1, [r0, 0xa]
| 0x0800fd02 dff86009 ldr.w r0, [0x0801066a] ; [0x8010668:4]=0x2001e6ec
| 0x0800fd06 0078 ldrb r0, [r0]
| 0x0800fd08 10f0fe00 ands r0, r0, 0xfe
| 0x0800fd0c dff85419 ldr.w r1, [0x08010668] ; [0x8010668:4]=0x2001e6ec
| 0x0800fd10 0870 strb r0, [r1]
| 0x0800fd12 01f06bfc bl func_115ec
| 0x0800fd16 0120 movs r0, 1 ; 1
| 0x0800fd18 0290 str r0, [sp, 8]
| 0x0800fd1a 0020 movs r0, 0
| 0x0800fd1c 0190 str r0, [sp, 4]
| 0x0800fd1e 8a20 movs r0, 0x8a ; 138
| 0x0800fd20 0090 str r0, [sp]
| 0x0800fd22 dff8f439 ldr.w r3, [0x0801071e] ; [0x801071c:4]=0x800fde9
| 0x0800fd26 dff8f429 ldr.w r2, [0x08010722] ; [0x8010720:4]=0x8016b35
| 0x0800fd2a dff83c09 ldr.w r0, [0x0801066e] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0800fd2e 0068 ldr r0, [r0]
| 0x0800fd30 dff83819 ldr.w r1, [0x08010670] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
| 0x0800fd34 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0800fd38 c168 ldr r1, [r0, 0xc]
| 0x0800fd3a dff87804 ldr.w r0, [0x080101ba] ; [0x80101b8:4]=0xb084b510
| 0x0800fd3e 0078 ldrb r0, [r0]
| 0x0800fd40 fcf7f5fc bl md380_create_menu_entry
| 0x0800fd44 0120 movs r0, 1 ; 1
| 0x0800fd46 0290 str r0, [sp, 8]
| 0x0800fd48 0020 movs r0, 0
| 0x0800fd4a 0190 str r0, [sp, 4]
| 0x0800fd4c 8a20 movs r0, 0x8a ; 138
| 0x0800fd4e 0090 str r0, [sp]
| 0x0800fd50 dff8c439 ldr.w r3, [0x0801071c] ; [0x801071c:4]=0x800fde9
| 0x0800fd54 dff8c829 ldr.w r2, [0x08010724] ; [0x8010724:4]=0x2001e574 md380_program_radio_unprohibited
| 0x0800fd58 dff80c09 ldr.w r0, [0x0801066c] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0800fd5c 0068 ldr r0, [r0]
| 0x0800fd5e dff80c19 ldr.w r1, [0x08010672] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
| 0x0800fd62 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0800fd66 416a ldr r1, [r0, 0x24]
| 0x0800fd68 dff84804 ldr.w r0, [func_101b8_yet_another_menu] ; [0x80101b8:4]=0xb084b510
| 0x0800fd6c 0078 ldrb r0, [r0]
| 0x0800fd6e 401c adds r0, r0, 1
| 0x0800fd70 c0b2 uxtb r0, r0
| 0x0800fd72 fcf7dcfc bl md380_create_menu_entry
| 0x0800fd76 dff8ac09 ldr.w r0, [0x0801072a] ; [0x8010728:4]=0x8017479
| 0x0800fd7a 4078 ldrb r0, [r0, 1]
| 0x0800fd7c c0f3c000 ubfx r0, r0, 3, 1
| 0x0800fd80 c007 lsls r0, r0, 0x1f
| ,=< 0x0800fd82 02d5 bpl 0x800fd8a
| | 0x0800fd84 54f00104 orrs r4, r4, 1
| ,==< 0x0800fd88 00e0 b 0x800fd8c
| |`-> 0x0800fd8a 0024 movs r4, 0
| `--> 0x0800fd8c e4b2 uxtb r4, r4
| 0x0800fd8e a4b2 uxth r4, r4
| 0x0800fd90 0294 str r4, [sp, 8]
| 0x0800fd92 0020 movs r0, 0
| 0x0800fd94 0190 str r0, [sp, 4]
| 0x0800fd96 8a20 movs r0, 0x8a ; 138
| 0x0800fd98 0090 str r0, [sp]
| 0x0800fd9a dff87c39 ldr.w r3, [0x0801071e] ; [0x801071c:4]=0x800fde9
| 0x0800fd9e dff88829 ldr.w r2, [0x0801072e] ; [0x801072c:4]=0x4843b5e0
| 0x0800fda2 dff8c408 ldr.w r0, [0x0801066e] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0800fda6 0068 ldr r0, [r0]
| 0x0800fda8 dff8c018 ldr.w r1, [0x08010670] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
| 0x0800fdac 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0800fdb0 816a ldr r1, [r0, 0x28]
| 0x0800fdb2 dff80004 ldr.w r0, [0x080101ba] ; [0x80101b8:4]=0xb084b510
| 0x0800fdb6 0078 ldrb r0, [r0]
| 0x0800fdb8 801c adds r0, r0, 2
| 0x0800fdba c0b2 uxtb r0, r0
| 0x0800fdbc fcf7b7fc bl md380_create_menu_entry
| 0x0800fdc0 0020 movs r0, 0
| ,=< 0x0800fdc2 0be0 b 0x800fddc
| .--> 0x0800fdc4 dff8ec13 ldr.w r1, [func_101b8_yet_another_menu] ; [0x80101b8:4]=0xb084b510
| || 0x0800fdc8 0978 ldrb r1, [r1]
| || 0x0800fdca 4118 adds r1, r0, r1
| || 0x0800fdcc 1422 movs r2, 0x14 ; 20
| || 0x0800fdce dff8403b ldr.w r3, [0x08010916] ; [0x8010914:4]=0x2001e398
| || 0x0800fdd2 02fb0131 mla r1, r2, r1, r3
| || 0x0800fdd6 0222 movs r2, 2 ; 2
| || 0x0800fdd8 0a74 strb r2, [r1, 0x10]
| || 0x0800fdda 401c adds r0, r0, 1
| |`-> 0x0800fddc 0328 cmp r0, 3 ; 3
| `==< 0x0800fdde f1db blt 0x800fdc4
\ 0x0800fde0 1fbd pop {r0, r1, r2, r3, r4, pc}
/ (fcn) 122
| menu_func_0fde8 ();
| 0x0800fde8 e0b5 push {r5, r6, r7, lr}
| 0x0800fdea 2148 ldr r0, [0x0800fe72] ; [0x800fe70:4]=0x20004acc md380_menu_depth
| 0x0800fdec 0078 ldrb r0, [r0]
| 0x0800fdee 0c21 movs r1, 0xc ; 12
| 0x0800fdf0 dff85827 ldr.w r2, [0x08010550] ; [0x8010550:4]=0xb084b510
| 0x0800fdf4 01fb0020 mla r0, r1, r0, r2
| 0x0800fdf8 0c30 adds r0, 0xc
| 0x0800fdfa dff89419 ldr.w r1, [0x08010796] ; [0x8010794:4]=0x2001e830
| 0x0800fdfe 0160 str r1, [r0]
| 0x0800fe00 dff8b013 ldr.w r1, [func_101b8_yet_another_menu] ; [0x80101b8:4]=0xb084b510
| 0x0800fe04 0978 ldrb r1, [r1]
| 0x0800fe06 1422 movs r2, 0x14 ; 20
| 0x0800fe08 dff8043b ldr.w r3, [0x08010914] ; [0x8010914:4]=0x2001e398
| 0x0800fe0c 02fb0131 mla r1, r2, r1, r3
| 0x0800fe10 4160 str r1, [r0, 4]
| 0x0800fe12 0121 movs r1, 1 ; 1
| 0x0800fe14 0172 strb r1, [r0, 8]
| 0x0800fe16 0021 movs r1, 0
| 0x0800fe18 4172 strb r1, [r0, 9]
| 0x0800fe1a 0021 movs r1, 0
| 0x0800fe1c 4181 strh r1, [r0, 0xa]
| 0x0800fe1e dff87409 ldr.w r0, [0x0801079a] ; [0x8010798:4]=0xf8dfb570
| 0x0800fe22 0088 ldrh r0, [r0]
| 0x0800fe24 0290 str r0, [sp, 8]
| 0x0800fe26 0020 movs r0, 0
| 0x0800fe28 0190 str r0, [sp, 4]
| 0x0800fe2a 8c20 movs r0, 0x8c ; 140
| 0x0800fe2c 0090 str r0, [sp]
| 0x0800fe2e dff8003a ldr.w r3, [0x08010836] ; [0x8010834:4]=0x8010c09
| 0x0800fe32 dff8002a ldr.w r2, [0x0801083a] ; [0x8010838:4]=0x2001cb58 selected_contact_name_wstring
| 0x0800fe36 dff8001a ldr.w r1, [0x0801083e] ; [0x801083c:4]=0x20004acc md380_menu_depth
| 0x0800fe3a de48 ldr r0, [0x080101b6] ; [0x80101b4:4]=0x2001e915 md380_menu_id
| 0x0800fe3c 0078 ldrb r0, [r0]
| 0x0800fe3e fcf776fc bl md380_create_menu_entry
| 0x0800fe42 0020 movs r0, 0
| ,=< 0x0800fe44 0ae0 b 0x800fe5c
| .--> 0x0800fe46 db49 ldr r1, [0x080101b6] ; [0x80101b4:4]=0x2001e915 md380_menu_id
| || 0x0800fe48 0978 ldrb r1, [r1]
| || 0x0800fe4a 4118 adds r1, r0, r1
| || 0x0800fe4c 1422 movs r2, 0x14 ; 20
| || 0x0800fe4e dff8c03a ldr.w r3, [0x08010916] ; [0x8010914:4]=0x2001e398
| || 0x0800fe52 02fb0131 mla r1, r2, r1, r3
| || 0x0800fe56 0522 movs r2, 5 ; 5
| || 0x0800fe58 0a74 strb r2, [r1, 0x10]
| || 0x0800fe5a 401c adds r0, r0, 1
| |`-> 0x0800fe5c 0128 cmp r0, 1 ; 1
| `==< 0x0800fe5e f2db blt 0x800fe46
\ 0x0800fe60 07bd pop {r0, r1, r2, pc}
/ (fcn) 238
| menu_func_0fe74 ();
| 0x0800fe74 10b5 push {r4, lr}
| 0x0800fe76 84b0 sub sp, 0x10
| 0x0800fe78 dff8c009 ldr.w r0, [0x08010840] ; [0x8010840:4]=0x2001e83c
| 0x0800fe7c 0078 ldrb r0, [r0]
| 0x0800fe7e 0c21 movs r1, 0xc ; 12
| 0x0800fe80 dff8c826 ldr.w r2, [0x08010550] ; [0x8010550:4]=0xb084b510
| 0x0800fe84 01fb0020 mla r0, r1, r0, r2
| 0x0800fe88 10f10c04 adds.w r4, r0, 0xc
| 0x0800fe8c 1ff0f4fa bl func_2f478
| 0x0800fe90 dff8ac09 ldr.w r0, [func_10844] ; [0x8010844:4]=0xf8dfb5e0
| 0x0800fe94 0088 ldrh r0, [r0]
| 0x0800fe96 0028 cmp r0, 0
| ,=< 0x0800fe98 2fd1 bne 0x800fefa
| | 0x0800fe9a dff8cc07 ldr.w r0, [0x0801066e] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0800fe9e 0068 ldr r0, [r0]
| | 0x0800fea0 dff8c817 ldr.w r1, [0x08010670] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
| | 0x0800fea4 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x0800fea8 d0f8c400 ldr.w r0, [r0, 0xc4]
| | 0x0800feac 2060 str r0, [r4]
| | 0x0800feae c148 ldr r0, [0x080101b6] ; [0x80101b4:4]=0x2001e915 md380_menu_id
| | 0x0800feb0 0078 ldrb r0, [r0]
| | 0x0800feb2 1421 movs r1, 0x14 ; 20
| | 0x0800feb4 dff8582a ldr.w r2, [0x08010914] ; [0x8010914:4]=0x2001e398
| | 0x0800feb8 01fb0020 mla r0, r1, r0, r2
| | 0x0800febc 6060 str r0, [r4, 4]
| | 0x0800febe 0120 movs r0, 1 ; 1
| | 0x0800fec0 2072 strb r0, [r4, 8]
| | 0x0800fec2 0020 movs r0, 0
| | 0x0800fec4 6072 strb r0, [r4, 9]
| | 0x0800fec6 0020 movs r0, 0
| | 0x0800fec8 6081 strh r0, [r4, 0xa]
| | 0x0800feca 0120 movs r0, 1 ; 1
| | 0x0800fecc 0290 str r0, [sp, 8]
| | 0x0800fece 0120 movs r0, 1 ; 1
| | 0x0800fed0 0190 str r0, [sp, 4]
| | 0x0800fed2 0620 movs r0, 6 ; 6
| | 0x0800fed4 0090 str r0, [sp]
| | 0x0800fed6 dff84038 ldr.w r3, [0x0801071e] ; [0x801071c:4]=0x800fde9
| | 0x0800feda dff83c28 ldr.w r2, [0x0801071e] ; [0x801071c:4]=0x800fde9
| | 0x0800fede dff88807 ldr.w r0, [0x0801066e] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0800fee2 0068 ldr r0, [r0]
| | 0x0800fee4 dff88417 ldr.w r1, [0x08010670] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
| | 0x0800fee8 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x0800feec d0f88812 ldr.w r1, [r0, 0x288]
| | 0x0800fef0 b048 ldr r0, [0x080101b4] ; [0x80101b4:4]=0x2001e915 md380_menu_id
| | 0x0800fef2 0078 ldrb r0, [r0]
| | 0x0800fef4 fcf71bfc bl md380_create_menu_entry
| ,==< 0x0800fef8 22e0 b 0x800ff40
| |`-> 0x0800fefa dff89408 ldr.w r0, [0x08010796] ; [0x8010794:4]=0x2001e830
| | 0x0800fefe 2060 str r0, [r4]
| | 0x0800ff00 ac48 ldr r0, [0x080101b4] ; [0x80101b4:4]=0x2001e915 md380_menu_id
| | 0x0800ff02 0078 ldrb r0, [r0]
| | 0x0800ff04 1421 movs r1, 0x14 ; 20
| | 0x0800ff06 dff8082a ldr.w r2, [0x08010916] ; [0x8010914:4]=0x2001e398
| | 0x0800ff0a 01fb0020 mla r0, r1, r0, r2
| | 0x0800ff0e 6060 str r0, [r4, 4]
| | 0x0800ff10 0120 movs r0, 1 ; 1
| | 0x0800ff12 2072 strb r0, [r4, 8]
| | 0x0800ff14 0020 movs r0, 0
| | 0x0800ff16 6072 strb r0, [r4, 9]
| | 0x0800ff18 0020 movs r0, 0
| | 0x0800ff1a 6081 strh r0, [r4, 0xa]
| | 0x0800ff1c dff82009 ldr.w r0, [func_10844] ; [0x8010844:4]=0xf8dfb5e0
| | 0x0800ff20 0088 ldrh r0, [r0]
| | 0x0800ff22 0290 str r0, [sp, 8]
| | 0x0800ff24 0020 movs r0, 0
| | 0x0800ff26 0190 str r0, [sp, 4]
| | 0x0800ff28 9920 movs r0, 0x99 ; 153
| | 0x0800ff2a 0090 str r0, [sp]
| | 0x0800ff2c dff8c839 ldr.w r3, [0x080108fc] ; [0x80108fc:4]=0x801002d
| | 0x0800ff30 dff8c829 ldr.w r2, [0x08010900] ; [0x8010900:4]=0x2001e30a
| | 0x0800ff34 dff8c819 ldr.w r1, [0x08010904] ; [0x8010904:4]=0x2001e82e
| | 0x0800ff38 9e48 ldr r0, [0x080101b4] ; [0x80101b4:4]=0x2001e915 md380_menu_id
| | 0x0800ff3a 0078 ldrb r0, [r0]
| | 0x0800ff3c fcf7f7fb bl md380_create_menu_entry
| `--> 0x0800ff40 0020 movs r0, 0
| ,=< 0x0800ff42 0ae0 b 0x800ff5a
| .--> 0x0800ff44 9b49 ldr r1, [0x080101b4] ; [0x80101b4:4]=0x2001e915 md380_menu_id
| || 0x0800ff46 0978 ldrb r1, [r1]
| || 0x0800ff48 4118 adds r1, r0, r1
| || 0x0800ff4a 1422 movs r2, 0x14 ; 20
| || 0x0800ff4c dff8c039 ldr.w r3, [0x08010914] ; [0x8010914:4]=0x2001e398
| || 0x0800ff50 02fb0131 mla r1, r2, r1, r3
| || 0x0800ff54 0422 movs r2, 4 ; 4
| || 0x0800ff56 0a74 strb r2, [r1, 0x10]
| || 0x0800ff58 401c adds r0, r0, 1
| |`-> 0x0800ff5a 217a ldrb r1, [r4, 8]
| | 0x0800ff5c 8842 cmp r0, r1
| `==< 0x0800ff5e f1db blt 0x800ff44
\ 0x0800ff60 1fbd pop {r0, r1, r2, r3, r4, pc}
/ (fcn) 256
| menu_func_0ff62 ();
| | 0x0800ff62 80b5 push {r7, lr}
| | 0x0800ff64 9148 ldr r0, [0x080101ac] ; [0x80101ac:4]=0x2001e6fc
| | 0x0800ff66 0068 ldr r0, [r0]
| | 0x0800ff68 dff8d418 ldr.w r1, [func_10844] ; [0x8010844:4]=0xf8dfb5e0
| | 0x0800ff6c 0988 ldrh r1, [r1]
| | 0x0800ff6e c181 strh r1, [r0, 0xe]
| | 0x0800ff70 8e48 ldr r0, [0x080101ac] ; [0x80101ac:4]=0x2001e6fc
| | 0x0800ff72 0068 ldr r0, [r0]
| | 0x0800ff74 c089 ldrh r0, [r0, 0xe]
| | 0x0800ff76 401e subs r0, r0, 1
| | 0x0800ff78 2b49 ldr r1, [0x08010028] ; [0x8010028:4]=0x2001e700 menu_memory_poi
| | 0x0800ff7a 0968 ldr r1, [r1]
| | 0x0800ff7c 4989 ldrh r1, [r1, 0xa]
| | 0x0800ff7e 8842 cmp r0, r1
| ,==< 0x0800ff80 06da bge 0x800ff90
| || 0x0800ff82 8a48 ldr r0, [0x080101ae] ; [0x80101ac:4]=0x2001e6fc
| || 0x0800ff84 0068 ldr r0, [r0]
| || 0x0800ff86 c089 ldrh r0, [r0, 0xe]
| || 0x0800ff88 401e subs r0, r0, 1
| || 0x0800ff8a 2749 ldr r1, [0x0801002a] ; [0x8010028:4]=0x2001e700 menu_memory_poi
| || 0x0800ff8c 0968 ldr r1, [r1]
| || 0x0800ff8e 4881 strh r0, [r1, 0xa]
| `--> 0x0800ff90 2548 ldr r0, [0x08010028] ; [0x8010028:4]=0x2001e700 menu_memory_poi
| | 0x0800ff92 0068 ldr r0, [r0]
| | 0x0800ff94 4089 ldrh r0, [r0, 0xa]
| | 0x0800ff96 401c adds r0, r0, 1
| | 0x0800ff98 80b2 uxth r0, r0
| | 0x0800ff9a 1ff0c1fa bl func_2f520
| | 0x0800ff9e dff86419 ldr.w r1, [0x0801090a] ; [0x8010908:4]=0x10006da8
| | 0x0800ffa2 0880 strh r0, [r1]
| | 0x0800ffa4 dff85c09 ldr.w r0, [0x08010908] ; [0x8010908:4]=0x10006da8
| | 0x0800ffa8 0088 ldrh r0, [r0]
| | 0x0800ffaa 0028 cmp r0, 0
| ,==< 0x0800ffac 05d1 bne 0x800ffba
| || 0x0800ffae 0120 movs r0, 1 ; 1
| || 0x0800ffb0 1ff0b6fa bl func_2f520
| || 0x0800ffb4 dff84c19 ldr.w r1, [0x08010908] ; [0x8010908:4]=0x10006da8
| || 0x0800ffb8 0880 strh r0, [r1]
| `--> 0x0800ffba 0020 movs r0, 0
| ,==< 0x0800ffbc 0fe0 b 0x800ffde
| .---> 0x0800ffbe dff84419 ldr.w r1, [0x0801090a] ; [0x8010908:4]=0x10006da8
| ||| 0x0800ffc2 0988 ldrh r1, [r1]
| ||| 0x0800ffc4 4901 lsls r1, r1, 5
| ||| 0x0800ffc6 51fa80f1 uxtab r1, r1, r0
| ||| 0x0800ffca dff83c29 ldr.w r2, [0x0801090e] ; [0x801090c:4]=0x2001e2fc
| ||| 0x0800ffce 8918 adds r1, r1, r2
| ||| 0x0800ffd0 11f8201c ldrb r1, [r1, -0x20]
| ||| 0x0800ffd4 c0b2 uxtb r0, r0
| ||| 0x0800ffd6 dff83429 ldr.w r2, [0x08010912] ; [0x8010910:4]=0x2001b274 md380_menu_mem_base
| ||| 0x0800ffda 8154 strb r1, [r0, r2]
| ||| 0x0800ffdc 401c adds r0, r0, 1
| |`--> 0x0800ffde c0b2 uxtb r0, r0
| | | 0x0800ffe0 2028 cmp r0, 0x20 ; 32
| `===< 0x0800ffe2 ecd3 blo 0x800ffbe
| | 0x0800ffe4 7148 ldr r0, [0x080101ac] ; [0x80101ac:4]=0x2001e6fc
| | 0x0800ffe6 0068 ldr r0, [r0]
| | 0x0800ffe8 dff81419 ldr.w r1, [0x08010904] ; [0x8010904:4]=0x2001e82e
| | 0x0800ffec 0160 str r1, [r0]
| | 0x0800ffee 0020 movs r0, 0
| ,==< 0x0800fff0 0be0 b 0x801000a
| .---> 0x0800fff2 c0b2 uxtb r0, r0
| ||| 0x0800fff4 dff81419 ldr.w r1, [0x08010910] ; [0x8010910:4]=0x2001b274 md380_menu_mem_base
| ||| 0x0800fff8 11eb4001 adds.w r1, r1, r0, lsl 1
| ||| 0x0800fffc c989 ldrh r1, [r1, 0xe]
| ||| 0x0800fffe c0b2 uxtb r0, r0
| ||| 0x08010000 dff81029 ldr.w r2, [0x08010918] ; [0x8010918:4]=0x2001e83a
| ||| 0x08010004 22f81010 strh.w r1, [r2, r0, lsl 1]
| ||| 0x08010008 401c adds r0, r0, 1
| |`--> 0x0801000a c0b2 uxtb r0, r0
| | | 0x0801000c 0928 cmp r0, 9 ; 9
| `===< 0x0801000e f0d3 blo 0x800fff2
| | 0x08010010 dff82c08 ldr.w r0, [func_10844] ; [0x8010844:4]=0xf8dfb5e0
| | 0x08010014 0188 ldrh r1, [r0]
| | 0x08010016 0448 ldr r0, [0x0801002a] ; [0x8010028:4]=0x2001e700 menu_memory_poi
| | 0x08010018 0068 ldr r0, [r0]
| | 0x0801001a 4089 ldrh r0, [r0, 0xa]
| | 0x0801001c 401c adds r0, r0, 1
| | 0x0801001e 80b2 uxth r0, r0
| | 0x08010020 00f0d3fc bl func_109ca
| | 0x08010024 01bd pop {r0, pc}
| | 0x08010026 0000 movs r0, r0
| `=< 0x08010028 00e7 b 0x800fe2c ; menu_func_0fde8+0x44
| 0x0801002a 0120 movs r0, 1 ; 1
| 0x0801002c 10b5 push {r4, lr}
| 0x0801002e 84b0 sub sp, 0x10
| 0x08010030 dff80808 ldr.w r0, [0x08010840] ; [0x8010840:4]=0x2001e83c
| 0x08010034 0078 ldrb r0, [r0]
| 0x08010036 0c21 movs r1, 0xc ; 12
| 0x08010038 dff81025 ldr.w r2, [0x08010550] ; [0x8010550:4]=0xb084b510
| 0x0801003c 01fb0020 mla r0, r1, r0, r2
| 0x08010040 10f10c04 adds.w r4, r0, 0xc
| 0x08010044 dff8c408 ldr.w r0, [0x08010910] ; [0x8010910:4]=0x2001b274 md380_menu_mem_base
| 0x08010048 0068 ldr r0, [r0]
| 0x0801004a 1ff0a0fa bl func_2f58e
| 0x0801004e dff8c808 ldr.w r0, [0x0801091e] ; [0x801091c:4]=0xf8dfb5e0
| 0x08010052 0088 ldrh r0, [r0]
| 0x08010054 0028 cmp r0, 0
| ,=< 0x08010056 2fd1 bne 0x80100b8 ; menu_func_1002c+0x8c
| | 0x08010058 dff80c06 ldr.w r0, [0x0801066c] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0801005c 0068 ldr r0, [r0]
\ | 0x0801005e dff80c16 ldr.w r1, [0x08010672] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
/ (fcn) 256
| menu_func_0ff62 ();
| | 0x0800ff62 80b5 push {r7, lr}
| | 0x0800ff64 9148 ldr r0, [0x080101ac] ; [0x80101ac:4]=0x2001e6fc
| | 0x0800ff66 0068 ldr r0, [r0]
| | 0x0800ff68 dff8d418 ldr.w r1, [func_10844] ; [0x8010844:4]=0xf8dfb5e0
| | 0x0800ff6c 0988 ldrh r1, [r1]
| | 0x0800ff6e c181 strh r1, [r0, 0xe]
| | 0x0800ff70 8e48 ldr r0, [0x080101ac] ; [0x80101ac:4]=0x2001e6fc
| | 0x0800ff72 0068 ldr r0, [r0]
| | 0x0800ff74 c089 ldrh r0, [r0, 0xe]
| | 0x0800ff76 401e subs r0, r0, 1
| | 0x0800ff78 2b49 ldr r1, [0x08010028] ; [0x8010028:4]=0x2001e700 menu_memory_poi
| | 0x0800ff7a 0968 ldr r1, [r1]
| | 0x0800ff7c 4989 ldrh r1, [r1, 0xa]
| | 0x0800ff7e 8842 cmp r0, r1
| ,==< 0x0800ff80 06da bge 0x800ff90
| || 0x0800ff82 8a48 ldr r0, [0x080101ae] ; [0x80101ac:4]=0x2001e6fc
| || 0x0800ff84 0068 ldr r0, [r0]
| || 0x0800ff86 c089 ldrh r0, [r0, 0xe]
| || 0x0800ff88 401e subs r0, r0, 1
| || 0x0800ff8a 2749 ldr r1, [0x0801002a] ; [0x8010028:4]=0x2001e700 menu_memory_poi
| || 0x0800ff8c 0968 ldr r1, [r1]
| || 0x0800ff8e 4881 strh r0, [r1, 0xa]
| `--> 0x0800ff90 2548 ldr r0, [0x08010028] ; [0x8010028:4]=0x2001e700 menu_memory_poi
| | 0x0800ff92 0068 ldr r0, [r0]
| | 0x0800ff94 4089 ldrh r0, [r0, 0xa]
| | 0x0800ff96 401c adds r0, r0, 1
| | 0x0800ff98 80b2 uxth r0, r0
| | 0x0800ff9a 1ff0c1fa bl func_2f520
| | 0x0800ff9e dff86419 ldr.w r1, [0x0801090a] ; [0x8010908:4]=0x10006da8
| | 0x0800ffa2 0880 strh r0, [r1]
| | 0x0800ffa4 dff85c09 ldr.w r0, [0x08010908] ; [0x8010908:4]=0x10006da8
| | 0x0800ffa8 0088 ldrh r0, [r0]
| | 0x0800ffaa 0028 cmp r0, 0
| ,==< 0x0800ffac 05d1 bne 0x800ffba
| || 0x0800ffae 0120 movs r0, 1 ; 1
| || 0x0800ffb0 1ff0b6fa bl func_2f520
| || 0x0800ffb4 dff84c19 ldr.w r1, [0x08010908] ; [0x8010908:4]=0x10006da8
| || 0x0800ffb8 0880 strh r0, [r1]
| `--> 0x0800ffba 0020 movs r0, 0
| ,==< 0x0800ffbc 0fe0 b 0x800ffde
| .---> 0x0800ffbe dff84419 ldr.w r1, [0x0801090a] ; [0x8010908:4]=0x10006da8
| ||| 0x0800ffc2 0988 ldrh r1, [r1]
| ||| 0x0800ffc4 4901 lsls r1, r1, 5
| ||| 0x0800ffc6 51fa80f1 uxtab r1, r1, r0
| ||| 0x0800ffca dff83c29 ldr.w r2, [0x0801090e] ; [0x801090c:4]=0x2001e2fc
| ||| 0x0800ffce 8918 adds r1, r1, r2
| ||| 0x0800ffd0 11f8201c ldrb r1, [r1, -0x20]
| ||| 0x0800ffd4 c0b2 uxtb r0, r0
| ||| 0x0800ffd6 dff83429 ldr.w r2, [0x08010912] ; [0x8010910:4]=0x2001b274 md380_menu_mem_base
| ||| 0x0800ffda 8154 strb r1, [r0, r2]
| ||| 0x0800ffdc 401c adds r0, r0, 1
| |`--> 0x0800ffde c0b2 uxtb r0, r0
| | | 0x0800ffe0 2028 cmp r0, 0x20 ; 32
| `===< 0x0800ffe2 ecd3 blo 0x800ffbe
| | 0x0800ffe4 7148 ldr r0, [0x080101ac] ; [0x80101ac:4]=0x2001e6fc
| | 0x0800ffe6 0068 ldr r0, [r0]
| | 0x0800ffe8 dff81419 ldr.w r1, [0x08010904] ; [0x8010904:4]=0x2001e82e
| | 0x0800ffec 0160 str r1, [r0]
| | 0x0800ffee 0020 movs r0, 0
| ,==< 0x0800fff0 0be0 b 0x801000a
| .---> 0x0800fff2 c0b2 uxtb r0, r0
| ||| 0x0800fff4 dff81419 ldr.w r1, [0x08010910] ; [0x8010910:4]=0x2001b274 md380_menu_mem_base
| ||| 0x0800fff8 11eb4001 adds.w r1, r1, r0, lsl 1
| ||| 0x0800fffc c989 ldrh r1, [r1, 0xe]
| ||| 0x0800fffe c0b2 uxtb r0, r0
| ||| 0x08010000 dff81029 ldr.w r2, [0x08010918] ; [0x8010918:4]=0x2001e83a
| ||| 0x08010004 22f81010 strh.w r1, [r2, r0, lsl 1]
| ||| 0x08010008 401c adds r0, r0, 1
| |`--> 0x0801000a c0b2 uxtb r0, r0
| | | 0x0801000c 0928 cmp r0, 9 ; 9
| `===< 0x0801000e f0d3 blo 0x800fff2
| | 0x08010010 dff82c08 ldr.w r0, [func_10844] ; [0x8010844:4]=0xf8dfb5e0
| | 0x08010014 0188 ldrh r1, [r0]
| | 0x08010016 0448 ldr r0, [0x0801002a] ; [0x8010028:4]=0x2001e700 menu_memory_poi
| | 0x08010018 0068 ldr r0, [r0]
| | 0x0801001a 4089 ldrh r0, [r0, 0xa]
| | 0x0801001c 401c adds r0, r0, 1
| | 0x0801001e 80b2 uxth r0, r0
| | 0x08010020 00f0d3fc bl func_109ca
| | 0x08010024 01bd pop {r0, pc}
| | 0x08010026 0000 movs r0, r0
| `=< 0x08010028 00e7 b 0x800fe2c ; menu_func_0fde8+0x44
| 0x0801002a 0120 movs r0, 1 ; 1
| 0x0801002c 10b5 push {r4, lr}
| 0x0801002e 84b0 sub sp, 0x10
| 0x08010030 dff80808 ldr.w r0, [0x08010840] ; [0x8010840:4]=0x2001e83c
| 0x08010034 0078 ldrb r0, [r0]
| 0x08010036 0c21 movs r1, 0xc ; 12
| 0x08010038 dff81025 ldr.w r2, [0x08010550] ; [0x8010550:4]=0xb084b510
| 0x0801003c 01fb0020 mla r0, r1, r0, r2
| 0x08010040 10f10c04 adds.w r4, r0, 0xc
| 0x08010044 dff8c408 ldr.w r0, [0x08010910] ; [0x8010910:4]=0x2001b274 md380_menu_mem_base
| 0x08010048 0068 ldr r0, [r0]
| 0x0801004a 1ff0a0fa bl func_2f58e
| 0x0801004e dff8c808 ldr.w r0, [0x0801091e] ; [0x801091c:4]=0xf8dfb5e0
| 0x08010052 0088 ldrh r0, [r0]
| 0x08010054 0028 cmp r0, 0
| ,=< 0x08010056 2fd1 bne 0x80100b8 ; menu_func_1002c+0x8c
| | 0x08010058 dff80c06 ldr.w r0, [0x0801066c] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0801005c 0068 ldr r0, [r0]
\ | 0x0801005e dff80c16 ldr.w r1, [0x08010672] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
/ (fcn) func_1044e 34
| Caller: update_scr_17
| func_1044e ();
| 0x0801044e dff89807 ldr.w r0, [0x08010bee] ; [0x8010bec:4]=0x2001e598
| 0x08010452 0021 movs r1, 0
| 0x08010454 0170 strb r1, [r0]
| 0x08010456 dff89407 ldr.w r0, [0x08010bf2] ; [0x8010bf0:4]=0x2001e875
| 0x0801045a 0021 movs r1, 0
| 0x0801045c 0160 str r1, [r0]
| 0x0801045e dff89007 ldr.w r0, [0x08010bf6] ; [0x8010bf4:4]=0x2001e59c
| 0x08010462 0021 movs r1, 0
| 0x08010464 0170 strb r1, [r0]
| 0x08010466 dff88c07 ldr.w r0, [0x08010bfa] ; [0x8010bf8:4]=0x8010395
| 0x0801046a 0021 movs r1, 0
| 0x0801046c 0160 str r1, [r0]
\ 0x0801046e 7047 bx lr
/ (fcn) 138
| menu_func_10120 ();
| 0x08010120 80b5 push {r7, lr}
| 0x08010122 2248 ldr r0, [0x080101ae] ; [0x80101ac:4]=0x2001e6fc
| 0x08010124 0068 ldr r0, [r0]
| 0x08010126 dff8f017 ldr.w r1, [0x0801091e] ; [0x801091c:4]=0xf8dfb5e0
| 0x0801012a 0988 ldrh r1, [r1]
| 0x0801012c c181 strh r1, [r0, 0xe]
| 0x0801012e 1f48 ldr r0, [0x080101ae] ; [0x80101ac:4]=0x2001e6fc
| 0x08010130 0068 ldr r0, [r0]
| 0x08010132 c089 ldrh r0, [r0, 0xe]
| 0x08010134 401e subs r0, r0, 1
| 0x08010136 dff8981a ldr.w r1, [0x08010bd6] ; [0x8010bd4:4]=0x8010607
| 0x0801013a 0968 ldr r1, [r1]
| 0x0801013c 4989 ldrh r1, [r1, 0xa]
| 0x0801013e 8842 cmp r0, r1
| ,=< 0x08010140 07da bge 0x8010152
| | 0x08010142 1a48 ldr r0, [0x080101ae] ; [0x80101ac:4]=0x2001e6fc
| | 0x08010144 0068 ldr r0, [r0]
| | 0x08010146 c089 ldrh r0, [r0, 0xe]
| | 0x08010148 401e subs r0, r0, 1
| | 0x0801014a dff8841a ldr.w r1, [0x08010bd6] ; [0x8010bd4:4]=0x8010607
| | 0x0801014e 0968 ldr r1, [r1]
| | 0x08010150 4881 strh r0, [r1, 0xa]
| `-> 0x08010152 dff8b807 ldr.w r0, [0x08010912] ; [0x8010910:4]=0x2001b274 md380_menu_mem_base
| 0x08010156 8268 ldr r2, [r0, 8]
| 0x08010158 dff8b007 ldr.w r0, [0x08010910] ; [0x8010910:4]=0x2001b274 md380_menu_mem_base
| 0x0801015c 0168 ldr r1, [r0]
| 0x0801015e dff8700a ldr.w r0, [0x08010bd6] ; [0x8010bd4:4]=0x8010607
| 0x08010162 0068 ldr r0, [r0]
| 0x08010164 4089 ldrh r0, [r0, 0xa]
| 0x08010166 401c adds r0, r0, 1
| 0x08010168 80b2 uxth r0, r0
| 0x0801016a 1ff0ccfa bl func_2f706
| 0x0801016e dff89417 ldr.w r1, [0x0801090a] ; [0x8010908:4]=0x10006da8
| 0x08010172 0880 strh r0, [r1]
| 0x08010174 dff89407 ldr.w r0, [0x08010910] ; [0x8010910:4]=0x2001b274 md380_menu_mem_base
| 0x08010178 0268 ldr r2, [r0]
| 0x0801017a dff88807 ldr.w r0, [0x0801090a] ; [0x8010908:4]=0x10006da8
| 0x0801017e 0188 ldrh r1, [r0]
| 0x08010180 dff85409 ldr.w r0, [0x08010adc] ; [0x8010adc:4]=0x2001df84
| 0x08010184 13f0e2f9 bl func_2354c
| 0x08010188 0848 ldr r0, [0x080101ac] ; [0x80101ac:4]=0x2001e6fc
| 0x0801018a 0068 ldr r0, [r0]
| 0x0801018c dff84c19 ldr.w r1, [func_10ae0] ; [0x8010ae0:4]=0xf8dfb510
| 0x08010190 0160 str r1, [r0]
| 0x08010192 dff88407 ldr.w r0, [0x0801091e] ; [0x801091c:4]=0xf8dfb5e0
| 0x08010196 0188 ldrh r1, [r0]
| 0x08010198 dff8340a ldr.w r0, [0x08010bd4] ; [0x8010bd4:4]=0x8010607
| 0x0801019c 0068 ldr r0, [r0]
| 0x0801019e 4089 ldrh r0, [r0, 0xa]
| 0x080101a0 401c adds r0, r0, 1
| 0x080101a2 80b2 uxth r0, r0
| 0x080101a4 00f05bfc bl func_10a5e
\ 0x080101a8 01bd pop {r0, pc}
/ (fcn) 476
| func_101b8_yet_another_menu ();
| 0x080101b8 10b5 push {r4, lr}
| 0x080101ba 84b0 sub sp, 0x10
| 0x080101bc dff87c06 ldr.w r0, [0x08010840] ; [0x8010840:4]=0x2001e83c
| 0x080101c0 0078 ldrb r0, [r0]
| 0x080101c2 0c21 movs r1, 0xc ; 12
| 0x080101c4 e14a ldr r2, [0x0801054c] ; [0x801054c:4]=0x2001d5cc md380_menu_memory
| 0x080101c6 01fb0020 mla r0, r1, r0, r2
| 0x080101ca 10f10c04 adds.w r4, r0, 0xc
| 0x080101ce 0020 movs r0, 0
| ,=< 0x080101d0 0be0 b 0x80101ea
| .--> 0x080101d2 c0b2 uxtb r0, r0
| || 0x080101d4 dff80019 ldr.w r1, [0x08010adc] ; [0x8010adc:4]=0x2001df84
| || 0x080101d8 11eb4001 adds.w r1, r1, r0, lsl 1
| || 0x080101dc 0989 ldrh r1, [r1, 8]
| || 0x080101de c0b2 uxtb r0, r0
| || 0x080101e0 dff8a429 ldr.w r2, [0x08010b8c] ; [0x8010b8c:4]=0x801044f
| || 0x080101e4 22f81010 strh.w r1, [r2, r0, lsl 1]
| || 0x080101e8 401c adds r0, r0, 1
| |`-> 0x080101ea c0b2 uxtb r0, r0
| | 0x080101ec 1028 cmp r0, 0x10 ; 16
| `==< 0x080101ee f0d3 blo 0x80101d2
| 0x080101f0 dff8e808 ldr.w r0, [func_10ae0] ; [0x8010ae0:4]=0xf8dfb510
| 0x080101f4 2060 str r0, [r4]
| 0x080101f6 dff89c09 ldr.w r0, [0x08010b9a] ; [0x8010b98:4]=0x801047d
| 0x080101fa 0078 ldrb r0, [r0]
| 0x080101fc 1421 movs r1, 0x14 ; 20
| 0x080101fe dff8cc29 ldr.w r2, [0x08010bd2] ; [0x8010bd0:4]=0x2001e700 menu_memory_poi
| 0x08010202 01fb0020 mla r0, r1, r0, r2
| 0x08010206 6060 str r0, [r4, 4]
| 0x08010208 0720 movs r0, 7 ; 7
| 0x0801020a 2072 strb r0, [r4, 8]
| 0x0801020c 0020 movs r0, 0
| 0x0801020e 6072 strb r0, [r4, 9]
| 0x08010210 0020 movs r0, 0
| 0x08010212 6081 strh r0, [r4, 0xa]
| 0x08010214 0120 movs r0, 1 ; 1
| 0x08010216 0290 str r0, [sp, 8]
| 0x08010218 0020 movs r0, 0
| 0x0801021a 0190 str r0, [sp, 4]
| 0x0801021c 8a20 movs r0, 0x8a ; 138
| 0x0801021e 0090 str r0, [sp]
| 0x08010220 dff86839 ldr.w r3, [0x08010b90] ; [0x8010b90:4]=0x80103e1
| 0x08010224 dff86829 ldr.w r2, [0x08010b94] ; [0x8010b94:4]=0x2001e915 md380_menu_id
| 0x08010228 dff83c04 ldr.w r0, [0x0801066c] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801022c 0068 ldr r0, [r0]
| 0x0801022e dff83c14 ldr.w r1, [0x08010672] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
| 0x08010232 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08010236 d0f8b012 ldr.w r1, [r0, 0x2b0]
| 0x0801023a dff85809 ldr.w r0, [0x08010b9a] ; [0x8010b98:4]=0x801047d
| 0x0801023e 0078 ldrb r0, [r0]
| 0x08010240 fcf775fa bl md380_create_menu_entry
| 0x08010244 0120 movs r0, 1 ; 1
| 0x08010246 0290 str r0, [sp, 8]
| 0x08010248 0020 movs r0, 0
| 0x0801024a 0190 str r0, [sp, 4]
| 0x0801024c 8a20 movs r0, 0x8a ; 138
| 0x0801024e 0090 str r0, [sp]
| 0x08010250 dff8c434 ldr.w r3, [0x0801071c] ; [0x801071c:4]=0x800fde9
| 0x08010254 dff84029 ldr.w r2, [0x08010b9c] ; [0x8010b9c:4]=0x8010551
| 0x08010258 dff80c04 ldr.w r0, [0x0801066c] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801025c 0068 ldr r0, [r0]
| 0x0801025e dff80c14 ldr.w r1, [0x08010672] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
| 0x08010262 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08010266 d0f8b412 ldr.w r1, [r0, 0x2b4]
| 0x0801026a dff82809 ldr.w r0, [0x08010b9a] ; [0x8010b98:4]=0x801047d
| 0x0801026e 0078 ldrb r0, [r0]
| 0x08010270 401c adds r0, r0, 1
| 0x08010272 c0b2 uxtb r0, r0
| 0x08010274 fcf75bfa bl md380_create_menu_entry
| 0x08010278 0120 movs r0, 1 ; 1
| 0x0801027a 0290 str r0, [sp, 8]
| 0x0801027c 0020 movs r0, 0
| 0x0801027e 0190 str r0, [sp, 4]
| 0x08010280 8a20 movs r0, 0x8a ; 138
| 0x08010282 0090 str r0, [sp]
| 0x08010284 dff89034 ldr.w r3, [0x0801071c] ; [0x801071c:4]=0x800fde9
| 0x08010288 dff81029 ldr.w r2, [func_10ba0] ; [0x8010ba0:4]=0xf8dfb580
| 0x0801028c dff8d803 ldr.w r0, [0x0801066c] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08010290 0068 ldr r0, [r0]
| 0x08010292 dff8d813 ldr.w r1, [0x08010672] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
| 0x08010296 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801029a d0f8b812 ldr.w r1, [r0, 0x2b8]
| 0x0801029e dff8f408 ldr.w r0, [0x08010b9a] ; [0x8010b98:4]=0x801047d
| 0x080102a2 0078 ldrb r0, [r0]
| 0x080102a4 801c adds r0, r0, 2
| 0x080102a6 c0b2 uxtb r0, r0
| 0x080102a8 fcf741fa bl md380_create_menu_entry
| 0x080102ac 0120 movs r0, 1 ; 1
| 0x080102ae 0290 str r0, [sp, 8]
| 0x080102b0 0020 movs r0, 0
| 0x080102b2 0190 str r0, [sp, 4]
| 0x080102b4 8a20 movs r0, 0x8a ; 138
| 0x080102b6 0090 str r0, [sp]
| 0x080102b8 dff85c34 ldr.w r3, [0x0801071c] ; [0x801071c:4]=0x800fde9
| 0x080102bc dff81429 ldr.w r2, [0x08010bd8] ; [0x8010bd8:4]=0x801072d
| 0x080102c0 dff8a403 ldr.w r0, [0x0801066c] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080102c4 0068 ldr r0, [r0]
| 0x080102c6 dff8a413 ldr.w r1, [0x08010672] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
| 0x080102ca 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080102ce d0f80013 ldr.w r1, [r0, 0x300]
| 0x080102d2 dff8c008 ldr.w r0, [0x08010b9a] ; [0x8010b98:4]=0x801047d
| 0x080102d6 0078 ldrb r0, [r0]
| 0x080102d8 c01c adds r0, r0, 3
| 0x080102da c0b2 uxtb r0, r0
| 0x080102dc fcf727fa bl md380_create_menu_entry
| 0x080102e0 0120 movs r0, 1 ; 1
| 0x080102e2 0290 str r0, [sp, 8]
| 0x080102e4 0020 movs r0, 0
| 0x080102e6 0190 str r0, [sp, 4]
| 0x080102e8 8a20 movs r0, 0x8a ; 138
| 0x080102ea 0090 str r0, [sp]
| 0x080102ec dff82834 ldr.w r3, [0x0801071c] ; [0x801071c:4]=0x800fde9
| 0x080102f0 dff8e428 ldr.w r2, [0x08010bdc] ; [0x8010bdc:4]=0x8010845
| 0x080102f4 dc48 ldr r0, [0x08010668] ; [0x8010668:4]=0x2001e6ec
| 0x080102f6 0068 ldr r0, [r0]
| 0x080102f8 dc49 ldr r1, [0x0801066c] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080102fa 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080102fe d0f8bc12 ldr.w r1, [r0, 0x2bc]
| 0x08010302 dff89008 ldr.w r0, [0x08010b9a] ; [0x8010b98:4]=0x801047d
| 0x08010306 0078 ldrb r0, [r0]
| 0x08010308 001d adds r0, r0, 4
| 0x0801030a c0b2 uxtb r0, r0
| 0x0801030c fcf70ffa bl md380_create_menu_entry
| 0x08010310 0120 movs r0, 1 ; 1
| 0x08010312 0290 str r0, [sp, 8]
| 0x08010314 0020 movs r0, 0
| 0x08010316 0190 str r0, [sp, 4]
| 0x08010318 8a20 movs r0, 0x8a ; 138
| 0x0801031a 0090 str r0, [sp]
| 0x0801031c dff8f833 ldr.w r3, [0x0801071c] ; [0x801071c:4]=0x800fde9
| 0x08010320 dff8b828 ldr.w r2, [0x08010be0] ; [0x8010be0:4]=0x801091d
| 0x08010324 d048 ldr r0, [0x08010668] ; [0x8010668:4]=0x2001e6ec
| 0x08010326 0068 ldr r0, [r0]
| 0x08010328 d049 ldr r1, [0x0801066c] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801032a 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801032e d0f8c012 ldr.w r1, [r0, 0x2c0]
| 0x08010332 dff86008 ldr.w r0, [0x08010b9a] ; [0x8010b98:4]=0x801047d
| 0x08010336 0078 ldrb r0, [r0]
| 0x08010338 401d adds r0, r0, 5
| 0x0801033a c0b2 uxtb r0, r0
| 0x0801033c fcf7f7f9 bl md380_create_menu_entry
| 0x08010340 0020 movs r0, 0
| 0x08010342 0290 str r0, [sp, 8]
| 0x08010344 0020 movs r0, 0
| 0x08010346 0190 str r0, [sp, 4]
| 0x08010348 8a20 movs r0, 0x8a ; 138
| 0x0801034a 0090 str r0, [sp]
| 0x0801034c dff8c833 ldr.w r3, [0x0801071c] ; [0x801071c:4]=0x800fde9
| 0x08010350 dff88c28 ldr.w r2, [0x08010be4] ; [0x8010be4:4]=0x2001e90e
| 0x08010354 c448 ldr r0, [0x08010668] ; [0x8010668:4]=0x2001e6ec
| 0x08010356 0068 ldr r0, [r0]
| 0x08010358 c449 ldr r1, [0x0801066c] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801035a 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801035e d0f8d810 ldr.w r1, [r0, 0xd8]
| 0x08010362 dff83008 ldr.w r0, [0x08010b9a] ; [0x8010b98:4]=0x801047d
| 0x08010366 0078 ldrb r0, [r0]
| 0x08010368 801d adds r0, r0, 6
| 0x0801036a c0b2 uxtb r0, r0
| 0x0801036c fcf7dff9 bl md380_create_menu_entry
| 0x08010370 0020 movs r0, 0
| ,=< 0x08010372 0be0 b 0x801038c
| .--> 0x08010374 dff81c18 ldr.w r1, [0x08010b98] ; [0x8010b98:4]=0x801047d
| || 0x08010378 0978 ldrb r1, [r1]
| || 0x0801037a 4118 adds r1, r0, r1
| || 0x0801037c 1422 movs r2, 0x14 ; 20
| || 0x0801037e dff84c38 ldr.w r3, [0x08010bd2] ; [0x8010bd0:4]=0x2001e700 menu_memory_poi
| || 0x08010382 02fb0131 mla r1, r2, r1, r3
| || 0x08010386 0222 movs r2, 2 ; 2
| || 0x08010388 0a74 strb r2, [r1, 0x10]
| || 0x0801038a 401c adds r0, r0, 1
| |`-> 0x0801038c 217a ldrb r1, [r4, 8]
| | 0x0801038e 8842 cmp r0, r1
| `==< 0x08010390 f0db blt 0x8010374
\ 0x08010392 1fbd pop {r0, r1, r2, r3, r4, pc}
/ (fcn) func_10606 94
| func_10606 ();
| 0x08010606 e0b5 push {r5, r6, r7, lr}
| 0x08010608 8c48 ldr r0, [0x0801083c] ; [0x801083c:4]=0x20004acc md380_menu_depth
| 0x0801060a 0078 ldrb r0, [r0]
| 0x0801060c 0c21 movs r1, 0xc ; 12
| 0x0801060e 184a ldr r2, [0x08010672] ; [0x8010670:4]=0x2001d5cc md380_menu_memory
| 0x08010610 01fb0020 mla r0, r1, r0, r2
| 0x08010614 0c30 adds r0, 0xc
| 0x08010616 1449 ldr r1, [0x0801066a] ; [0x8010668:4]=0x2001e6ec
| 0x08010618 0968 ldr r1, [r1]
| 0x0801061a 144a ldr r2, [0x0801066e] ; [0x801066c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801061c 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08010620 d1f8fc12 ldr.w r1, [r1, 0x2fc]
| 0x08010624 0160 str r1, [r0]
| 0x08010626 dff86c15 ldr.w r1, [0x08010b9a] ; [0x8010b98:4]=0x801047d
| 0x0801062a 0978 ldrb r1, [r1]
| 0x0801062c 1422 movs r2, 0x14 ; 20
| 0x0801062e dff8e032 ldr.w r3, [0x08010916] ; [0x8010914:4]=0x2001e398
| 0x08010632 02fb0131 mla r1, r2, r1, r3
| 0x08010636 4160 str r1, [r0, 4]
| 0x08010638 0121 movs r1, 1 ; 1
| 0x0801063a 0172 strb r1, [r0, 8]
| 0x0801063c 0021 movs r1, 0
| 0x0801063e 4172 strb r1, [r0, 9]
| 0x08010640 0021 movs r1, 0
| 0x08010642 4181 strh r1, [r0, 0xa]
| 0x08010644 0120 movs r0, 1 ; 1
| 0x08010646 0290 str r0, [sp, 8]
| 0x08010648 0020 movs r0, 0
| 0x0801064a 0190 str r0, [sp, 4]
| 0x0801064c 0520 movs r0, 5 ; 5
| 0x0801064e 0090 str r0, [sp]
| 0x08010650 dff8b035 ldr.w r3, [func_10c08_sms_menu_maybe] ; [0x8010c08:4]=0xb084b510
| 0x08010654 304a ldr r2, [0x08010718] ; [0x8010718:4]=0x800fc85 menu_entry_back_1
| 0x08010656 4e49 ldr r1, [0x08010792] ; [0x8010790:4]=0x2001e0d0 print_buffer
| 0x08010658 dff83805 ldr.w r0, [0x08010b98] ; [0x8010b98:4]=0x801047d
| 0x0801065c 0078 ldrb r0, [r0]
| 0x0801065e fcf766f8 bl md380_create_menu_entry
\ 0x08010662 07bd pop {r0, r1, r2, pc}
/ (fcn) func_10674 164
| func_10674 ();
| 0x08010674 70b5 push {r4, r5, r6, lr}
| 0x08010676 464c ldr r4, [0x08010792] ; [0x8010790:4]=0x2001e0d0 print_buffer
| 0x08010678 dff85c04 ldr.w r0, [0x08010adc] ; [0x8010adc:4]=0x2001df84
| 0x0801067c 806b ldr r0, [r0, 0x38]
| 0x0801067e c0f34460 ubfx r0, r0, 0x19, 5
| 0x08010682 dff85414 ldr.w r1, [0x08010ade] ; [0x8010adc:4]=0x2001df84
| 0x08010686 896b ldr r1, [r1, 0x38]
| 0x08010688 c1f34355 ubfx r5, r1, 0x15, 4
| 0x0801068c dff84814 ldr.w r1, [0x08010adc] ; [0x8010adc:4]=0x2001df84
| 0x08010690 896b ldr r1, [r1, 0x38]
| 0x08010692 c1f30446 ubfx r6, r1, 0x10, 5
| 0x08010696 3221 movs r1, 0x32 ; '2' ; 50
| 0x08010698 2180 strh r1, [r4]
| 0x0801069a a41c adds r4, r4, 2
| 0x0801069c 3021 movs r1, 0x30 ; '0' ; 48
| 0x0801069e 2180 strh r1, [r4]
| 0x080106a0 a41c adds r4, r4, 2
| 0x080106a2 0a28 cmp r0, 0xa ; 10
| ,=< 0x080106a4 08d2 bhs 0x80106b8
| | 0x080106a6 2100 movs r1, r4
| | 0x080106a8 16f098ff bl func_275dc
| | 0x080106ac 2088 ldrh r0, [r4]
| | 0x080106ae 6080 strh r0, [r4, 2]
| | 0x080106b0 3020 movs r0, 0x30 ; '0' ; 48
| | 0x080106b2 2080 strh r0, [r4]
| | 0x080106b4 241d adds r4, r4, 4
| ,==< 0x080106b6 03e0 b 0x80106c0
| |`-> 0x080106b8 2100 movs r1, r4
| | 0x080106ba 16f08fff bl func_275dc
| | 0x080106be 241d adds r4, r4, 4
| `--> 0x080106c0 2f20 movs r0, 0x2f ; '/' ; 47
| 0x080106c2 2080 strh r0, [r4]
| 0x080106c4 a41c adds r4, r4, 2
| 0x080106c6 0a2d cmp r5, 0xa ; 10
| ,=< 0x080106c8 09d2 bhs 0x80106de
| | 0x080106ca 2100 movs r1, r4
| | 0x080106cc 2800 movs r0, r5
| | 0x080106ce 16f085ff bl func_275dc
| | 0x080106d2 2088 ldrh r0, [r4]
| | 0x080106d4 6080 strh r0, [r4, 2]
| | 0x080106d6 3020 movs r0, 0x30 ; '0' ; 48
| | 0x080106d8 2080 strh r0, [r4]
| | 0x080106da 241d adds r4, r4, 4
| ,==< 0x080106dc 04e0 b 0x80106e8
| |`-> 0x080106de 2100 movs r1, r4
| | 0x080106e0 2800 movs r0, r5
| | 0x080106e2 16f07bff bl func_275dc
| | 0x080106e6 241d adds r4, r4, 4
| `--> 0x080106e8 2f20 movs r0, 0x2f ; '/' ; 47
| 0x080106ea 2080 strh r0, [r4]
| 0x080106ec a41c adds r4, r4, 2
| 0x080106ee 0a2e cmp r6, 0xa ; 10
| ,=< 0x080106f0 09d2 bhs 0x8010706
| | 0x080106f2 2100 movs r1, r4
| | 0x080106f4 3000 movs r0, r6
| | 0x080106f6 16f071ff bl func_275dc
| | 0x080106fa 2088 ldrh r0, [r4]
| | 0x080106fc 6080 strh r0, [r4, 2]
| | 0x080106fe 3020 movs r0, 0x30 ; '0' ; 48
| | 0x08010700 2080 strh r0, [r4]
| | 0x08010702 241d adds r4, r4, 4
| ,==< 0x08010704 04e0 b 0x8010710
| |`-> 0x08010706 2100 movs r1, r4
| | 0x08010708 3000 movs r0, r6
| | 0x0801070a 16f067ff bl func_275dc
| | 0x0801070e 241d adds r4, r4, 4
| `--> 0x08010710 0020 movs r0, 0
| 0x08010712 2080 strh r0, [r4]
| 0x08010714 a41c adds r4, r4, 2
\ 0x08010716 70bd pop {r4, r5, r6, pc}
/ (fcn) func_1072c 100
| func_1072c ();
| 0x0801072c e0b5 push {r5, r6, r7, lr}
| 0x0801072e 4348 ldr r0, [0x0801083e] ; [0x801083c:4]=0x20004acc md380_menu_depth
| 0x08010730 0078 ldrb r0, [r0]
| 0x08010732 0c21 movs r1, 0xc ; 12
| 0x08010734 dff8bc29 ldr.w r2, [0x080110f8] ; [0x80110f8:4]=0x2001e6ec
| 0x08010738 01fb0020 mla r0, r1, r0, r2
| 0x0801073c 0c30 adds r0, 0xc
| 0x0801073e dff8b819 ldr.w r1, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08010742 0968 ldr r1, [r1]
| 0x08010744 dff8b429 ldr.w r2, [0x08011100] ; [0x8011100:4]=0x8010799
| 0x08010748 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x0801074c d1f8d812 ldr.w r1, [r1, 0x2d8]
| 0x08010750 0160 str r1, [r0]
| 0x08010752 dff84014 ldr.w r1, [0x08010b9a] ; [0x8010b98:4]=0x801047d
| 0x08010756 0978 ldrb r1, [r1]
| 0x08010758 1422 movs r2, 0x14 ; 20
| 0x0801075a 6d4b ldr r3, [0x08010912] ; [0x8010910:4]=0x2001b274 md380_menu_mem_base
| 0x0801075c 02fb0131 mla r1, r2, r1, r3
| 0x08010760 4160 str r1, [r0, 4]
| 0x08010762 0121 movs r1, 1 ; 1
| 0x08010764 0172 strb r1, [r0, 8]
| 0x08010766 0021 movs r1, 0
| 0x08010768 4172 strb r1, [r0, 9]
| 0x0801076a 0021 movs r1, 0
| 0x0801076c 4181 strh r1, [r0, 0xa]
| 0x0801076e 0120 movs r0, 1 ; 1
| 0x08010770 0290 str r0, [sp, 8]
| 0x08010772 0020 movs r0, 0
| 0x08010774 0190 str r0, [sp, 4]
| 0x08010776 0520 movs r0, 5 ; 5
| 0x08010778 0090 str r0, [sp]
| 0x0801077a dff88439 ldr.w r3, [0x08011106] ; [0x8011104:4]=0x800fc85 menu_entry_back_1
| 0x0801077e dff88429 ldr.w r2, [0x0801110a] ; [0x8011108:4]=0x2000b5e0
| 0x08010782 0349 ldr r1, [0x08010792] ; [0x8010790:4]=0x2001e0d0 print_buffer
| 0x08010784 dff80c04 ldr.w r0, [0x08010b98] ; [0x8010b98:4]=0x801047d
| 0x08010788 0078 ldrb r0, [r0]
| 0x0801078a fbf7d0ff bl md380_create_menu_entry
\ 0x0801078e 07bd pop {r0, r1, r2, pc}
/ (fcn) func_10798 152
| func_10798 ();
| 0x08010798 70b5 push {r4, r5, r6, lr}
| 0x0801079a dff8104a ldr.w r4, [0x080111b2] ; [0x80111b0:4]=0x20004acc md380_menu_depth
| 0x0801079e dff83803 ldr.w r0, [0x08010ade] ; [0x8010adc:4]=0x2001df84
| 0x080107a2 806b ldr r0, [r0, 0x38]
| 0x080107a4 c0f3c420 ubfx r0, r0, 0xb, 5
| 0x080107a8 dff82c13 ldr.w r1, [0x08010adc] ; [0x8010adc:4]=0x2001df84
| 0x080107ac 896b ldr r1, [r1, 0x38]
| 0x080107ae c1f34516 ubfx r6, r1, 5, 6
| 0x080107b2 dff82413 ldr.w r1, [0x08010ade] ; [0x8010adc:4]=0x2001df84
| 0x080107b6 91f83c50 ldrb.w r5, [r1, 0x3c]
| 0x080107ba 0a28 cmp r0, 0xa ; 10
| ,=< 0x080107bc 08d2 bhs 0x80107d0
| | 0x080107be 2100 movs r1, r4
| | 0x080107c0 16f00cff bl func_275dc
| | 0x080107c4 2088 ldrh r0, [r4]
| | 0x080107c6 6080 strh r0, [r4, 2]
| | 0x080107c8 3020 movs r0, 0x30 ; '0' ; 48
| | 0x080107ca 2080 strh r0, [r4]
| | 0x080107cc 241d adds r4, r4, 4
| ,==< 0x080107ce 03e0 b 0x80107d8
| |`-> 0x080107d0 2100 movs r1, r4
| | 0x080107d2 16f003ff bl func_275dc
| | 0x080107d6 241d adds r4, r4, 4
| `--> 0x080107d8 3a20 movs r0, 0x3a ; ':' ; 58
| 0x080107da 2080 strh r0, [r4]
| 0x080107dc a41c adds r4, r4, 2
| 0x080107de 0a2e cmp r6, 0xa ; 10
| ,=< 0x080107e0 09d2 bhs 0x80107f6
| | 0x080107e2 2100 movs r1, r4
| | 0x080107e4 3000 movs r0, r6
| | 0x080107e6 16f0f9fe bl func_275dc
| | 0x080107ea 2088 ldrh r0, [r4]
| | 0x080107ec 6080 strh r0, [r4, 2]
| | 0x080107ee 3020 movs r0, 0x30 ; '0' ; 48
| | 0x080107f0 2080 strh r0, [r4]
| | 0x080107f2 241d adds r4, r4, 4
| ,==< 0x080107f4 04e0 b 0x8010800
| |`-> 0x080107f6 2100 movs r1, r4
| | 0x080107f8 3000 movs r0, r6
| | 0x080107fa 16f0effe bl func_275dc
| | 0x080107fe 241d adds r4, r4, 4
| `--> 0x08010800 3a20 movs r0, 0x3a ; ':' ; 58
| 0x08010802 2080 strh r0, [r4]
| 0x08010804 a41c adds r4, r4, 2
| 0x08010806 0a2d cmp r5, 0xa ; 10
| ,=< 0x08010808 09d2 bhs 0x801081e
| | 0x0801080a 2100 movs r1, r4
| | 0x0801080c 2800 movs r0, r5
| | 0x0801080e 16f0e5fe bl func_275dc
| | 0x08010812 2088 ldrh r0, [r4]
| | 0x08010814 6080 strh r0, [r4, 2]
| | 0x08010816 3020 movs r0, 0x30 ; '0' ; 48
| | 0x08010818 2080 strh r0, [r4]
| | 0x0801081a 241d adds r4, r4, 4
| ,==< 0x0801081c 04e0 b 0x8010828
| |`-> 0x0801081e 2100 movs r1, r4
| | 0x08010820 2800 movs r0, r5
| | 0x08010822 16f0dbfe bl func_275dc
| | 0x08010826 241d adds r4, r4, 4
| `--> 0x08010828 0020 movs r0, 0
| 0x0801082a 2080 strh r0, [r4]
| 0x0801082c a41c adds r4, r4, 2
\ 0x0801082e 70bd pop {r4, r5, r6, pc}
/ (fcn) func_10844 178
| func_10844 ();
| 0x08010844 e0b5 push {r5, r6, r7, lr}
| 0x08010846 dff86809 ldr.w r0, [0x080111b6] ; [0x80111b4:4]=0x2000b5e0
| 0x0801084a 0078 ldrb r0, [r0]
| 0x0801084c 0c21 movs r1, 0xc ; 12
| 0x0801084e dff8a428 ldr.w r2, [0x080110fa] ; [0x80110f8:4]=0x2001e6ec
| 0x08010852 01fb0020 mla r0, r1, r0, r2
| 0x08010856 0c30 adds r0, 0xc
| 0x08010858 dff89c18 ldr.w r1, [0x080110fc] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801085c 0968 ldr r1, [r1]
| 0x0801085e dff89c28 ldr.w r2, [0x08011102] ; [0x8011100:4]=0x8010799
| 0x08010862 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08010866 d1f8e012 ldr.w r1, [r1, 0x2e0]
| 0x0801086a 0160 str r1, [r0]
| 0x0801086c dff82413 ldr.w r1, [0x08010b98] ; [0x8010b98:4]=0x801047d
| 0x08010870 0978 ldrb r1, [r1]
| 0x08010872 1422 movs r2, 0x14 ; 20
| 0x08010874 264b ldr r3, [0x08010910] ; [0x8010910:4]=0x2001b274 md380_menu_mem_base
| 0x08010876 02fb0131 mla r1, r2, r1, r3
| 0x0801087a 4160 str r1, [r0, 4]
| 0x0801087c 0121 movs r1, 1 ; 1
| 0x0801087e 0172 strb r1, [r0, 8]
| 0x08010880 0021 movs r1, 0
| 0x08010882 4172 strb r1, [r0, 9]
| 0x08010884 0021 movs r1, 0
| 0x08010886 4181 strh r1, [r0, 0xa]
| 0x08010888 9348 ldr r0, [0x08010ad8] ; [0x8010ad8:4]=0x2001df78
| 0x0801088a 90f83d00 ldrb.w r0, [r0, 0x3d]
| 0x0801088e 0128 cmp r0, 1 ; 1
| ,=< 0x08010890 18d1 bne 0x80108c4
| | 0x08010892 0120 movs r0, 1 ; 1
| | 0x08010894 0290 str r0, [sp, 8]
| | 0x08010896 0020 movs r0, 0
| | 0x08010898 0190 str r0, [sp, 4]
| | 0x0801089a 0520 movs r0, 5 ; 5
| | 0x0801089c 0090 str r0, [sp]
| | 0x0801089e dff86438 ldr.w r3, [0x0801110a] ; [0x8011108:4]=0x2000b5e0
| | 0x080108a2 dff86028 ldr.w r2, [0x0801110a] ; [0x8011108:4]=0x2000b5e0
| | 0x080108a6 dff85008 ldr.w r0, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x080108aa 0068 ldr r0, [r0]
| | 0x080108ac dff84c18 ldr.w r1, [0x08011100] ; [0x8011100:4]=0x8010799
| | 0x080108b0 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x080108b4 d0f8c812 ldr.w r1, [r0, 0x2c8]
| | 0x080108b8 dff8d802 ldr.w r0, [0x08010b98] ; [0x8010b98:4]=0x801047d
| | 0x080108bc 0078 ldrb r0, [r0]
| | 0x080108be fbf736ff bl md380_create_menu_entry
| ,==< 0x080108c2 17e0 b 0x80108f4
| |`-> 0x080108c4 0120 movs r0, 1 ; 1
| | 0x080108c6 0290 str r0, [sp, 8]
| | 0x080108c8 0020 movs r0, 0
| | 0x080108ca 0190 str r0, [sp, 4]
| | 0x080108cc 0520 movs r0, 5 ; 5
| | 0x080108ce 0090 str r0, [sp]
| | 0x080108d0 dff83038 ldr.w r3, [func_11108] ; [0x8011108:4]=0x2000b5e0
| | 0x080108d4 dff82c28 ldr.w r2, [func_11108] ; [0x8011108:4]=0x2000b5e0
| | 0x080108d8 dff81c08 ldr.w r0, [0x080110fc] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x080108dc 0068 ldr r0, [r0]
| | 0x080108de dff81c18 ldr.w r1, [0x08011102] ; [0x8011100:4]=0x8010799
| | 0x080108e2 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x080108e6 d0f8c412 ldr.w r1, [r0, 0x2c4]
| | 0x080108ea dff8a802 ldr.w r0, [0x08010b9a] ; [0x8010b98:4]=0x801047d
| | 0x080108ee 0078 ldrb r0, [r0]
| | 0x080108f0 fbf71dff bl md380_create_menu_entry
\ `--> 0x080108f4 07bd pop {r0, r1, r2, pc}
/ (fcn) func_1091c 160
| func_1091c ();
| 0x0801091c e0b5 push {r5, r6, r7, lr}
| 0x0801091e dff89008 ldr.w r0, [0x080111b6] ; [0x80111b4:4]=0x2000b5e0
| 0x08010922 0078 ldrb r0, [r0]
| 0x08010924 0c21 movs r1, 0xc ; 12
| 0x08010926 dff8cc27 ldr.w r2, [0x080110fa] ; [0x80110f8:4]=0x2001e6ec
| 0x0801092a 01fb0020 mla r0, r1, r0, r2
| 0x0801092e 0c30 adds r0, 0xc
| 0x08010930 dff8c417 ldr.w r1, [0x080110fc] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08010934 0968 ldr r1, [r1]
| 0x08010936 dff8c427 ldr.w r2, [0x08011102] ; [0x8011100:4]=0x8010799
| 0x0801093a 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x0801093e d1f8e412 ldr.w r1, [r1, 0x2e4]
| 0x08010942 0160 str r1, [r0]
| 0x08010944 9349 ldr r1, [0x08010b94] ; [0x8010b94:4]=0x2001e915 md380_menu_id
| 0x08010946 0978 ldrb r1, [r1]
| 0x08010948 1422 movs r2, 0x14 ; 20
| 0x0801094a a04b ldr r3, [0x08010bce] ; [0x8010bcc:4]=0x2001b274 md380_menu_mem_base
| 0x0801094c 02fb0131 mla r1, r2, r1, r3
| 0x08010950 4160 str r1, [r0, 4]
| 0x08010952 0221 movs r1, 2 ; 2
| 0x08010954 0172 strb r1, [r0, 8]
| 0x08010956 0021 movs r1, 0
| 0x08010958 4172 strb r1, [r0, 9]
| 0x0801095a 0021 movs r1, 0
| 0x0801095c 4181 strh r1, [r0, 0xa]
| 0x0801095e 0120 movs r0, 1 ; 1
| 0x08010960 0290 str r0, [sp, 8]
| 0x08010962 0020 movs r0, 0
| 0x08010964 0190 str r0, [sp, 4]
| 0x08010966 8420 movs r0, 0x84 ; 132
| 0x08010968 0090 str r0, [sp]
| 0x0801096a dff89837 ldr.w r3, [0x0801110a] ; [0x8011108:4]=0x2000b5e0
| 0x0801096e dff8182a ldr.w r2, [0x0801138e] ; [0x801138c:4]=0x2001e6fc
| 0x08010972 dff88407 ldr.w r0, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08010976 0068 ldr r0, [r0]
| 0x08010978 dff88017 ldr.w r1, [0x08011100] ; [0x8011100:4]=0x8010799
| 0x0801097c 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08010980 016f ldr r1, [r0, 0x70]
| 0x08010982 8448 ldr r0, [0x08010b96] ; [0x8010b94:4]=0x2001e915 md380_menu_id
| 0x08010984 0078 ldrb r0, [r0]
| 0x08010986 fbf7d2fe bl md380_create_menu_entry
| 0x0801098a 0120 movs r0, 1 ; 1
| 0x0801098c 0290 str r0, [sp, 8]
| 0x0801098e 0120 movs r0, 1 ; 1
| 0x08010990 0190 str r0, [sp, 4]
| 0x08010992 0420 movs r0, 4 ; 4
| 0x08010994 0090 str r0, [sp]
| 0x08010996 dff86c37 ldr.w r3, [0x0801110a] ; [0x8011108:4]=0x2000b5e0
| 0x0801099a dff86827 ldr.w r2, [0x0801110a] ; [0x8011108:4]=0x2000b5e0
| 0x0801099e dff85807 ldr.w r0, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080109a2 0068 ldr r0, [r0]
| 0x080109a4 dff85417 ldr.w r1, [0x08011100] ; [0x8011100:4]=0x8010799
| 0x080109a8 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080109ac 416f ldr r1, [r0, 0x74]
| 0x080109ae 7948 ldr r0, [0x08010b96] ; [0x8010b94:4]=0x2001e915 md380_menu_id
| 0x080109b0 0078 ldrb r0, [r0]
| 0x080109b2 401c adds r0, r0, 1
| 0x080109b4 c0b2 uxtb r0, r0
| 0x080109b6 fbf7bafe bl md380_create_menu_entry
\ 0x080109ba 07bd pop {r0, r1, r2, pc}
/ (fcn) func_109ca 148
| Caller: menu_func_0ff62
| func_109ca ();
| 0x080109ca 38b5 push {r3, r4, r5, lr}
| 0x080109cc 0c00 movs r4, r1
| 0x080109ce dff8dc57 ldr.w r5, [0x080111b2] ; [0x80111b0:4]=0x20004acc md380_menu_depth
| 0x080109d2 dff8b019 ldr.w r1, [0x0801138a] ; [0x8011388:4]=0x80109c9
| 0x080109d6 0978 ldrb r1, [r1]
| 0x080109d8 0129 cmp r1, 1 ; 1
| ,=< 0x080109da 0cd1 bne 0x80109f6
| | 0x080109dc 46f63901 movw r1, 0x6839
| | 0x080109e0 2980 strh r1, [r5]
| | 0x080109e2 ad1c adds r5, r5, 2
| | 0x080109e4 47f2ee61 movw r1, 0x76ee
| | 0x080109e8 2980 strh r1, [r5]
| | 0x080109ea ad1c adds r5, r5, 2
| | 0x080109ec 45f65571 movw r1, 0x5f55
| | 0x080109f0 2980 strh r1, [r5]
| | 0x080109f2 ad1c adds r5, r5, 2
| ,==< 0x080109f4 1ae0 b 0x8010a2c
| |`-> 0x080109f6 4421 movs r1, 0x44 ; 'D' ; 68
| | 0x080109f8 2980 strh r1, [r5]
| | 0x080109fa ad1c adds r5, r5, 2
| | 0x080109fc 6921 movs r1, 0x69 ; 'i' ; 105
| | 0x080109fe 2980 strh r1, [r5]
| | 0x08010a00 ad1c adds r5, r5, 2
| | 0x08010a02 7221 movs r1, 0x72 ; 'r' ; 114
| | 0x08010a04 2980 strh r1, [r5]
| | 0x08010a06 ad1c adds r5, r5, 2
| | 0x08010a08 6521 movs r1, 0x65 ; 'e' ; 101
| | 0x08010a0a 2980 strh r1, [r5]
| | 0x08010a0c ad1c adds r5, r5, 2
| | 0x08010a0e 6321 movs r1, 0x63 ; 'c' ; 99
| | 0x08010a10 2980 strh r1, [r5]
| | 0x08010a12 ad1c adds r5, r5, 2
| | 0x08010a14 7421 movs r1, 0x74 ; 't' ; 116
| | 0x08010a16 2980 strh r1, [r5]
| | 0x08010a18 ad1c adds r5, r5, 2
| | 0x08010a1a 6f21 movs r1, 0x6f ; 'o' ; 111
| | 0x08010a1c 2980 strh r1, [r5]
| | 0x08010a1e ad1c adds r5, r5, 2
| | 0x08010a20 7221 movs r1, 0x72 ; 'r' ; 114
| | 0x08010a22 2980 strh r1, [r5]
| | 0x08010a24 ad1c adds r5, r5, 2
| | 0x08010a26 7921 movs r1, 0x79 ; 'y' ; 121
| | 0x08010a28 2980 strh r1, [r5]
| | 0x08010a2a ad1c adds r5, r5, 2
| `--> 0x08010a2c 2021 movs r1, 0x20 ; 32
| 0x08010a2e 2980 strh r1, [r5]
| 0x08010a30 ad1c adds r5, r5, 2
| 0x08010a32 2900 movs r1, r5
| 0x08010a34 80b2 uxth r0, r0
| 0x08010a36 16f0d1fd bl func_275dc
| 0x08010a3a c0b2 uxtb r0, r0
| 0x08010a3c 15eb4005 adds.w r5, r5, r0, lsl 1
| 0x08010a40 2f20 movs r0, 0x2f ; '/' ; 47
| 0x08010a42 2880 strh r0, [r5]
| 0x08010a44 ad1c adds r5, r5, 2
| 0x08010a46 2900 movs r1, r5
| 0x08010a48 a4b2 uxth r4, r4
| 0x08010a4a 2000 movs r0, r4
| 0x08010a4c 16f0c6fd bl func_275dc
| 0x08010a50 c0b2 uxtb r0, r0
| 0x08010a52 15eb4005 adds.w r5, r5, r0, lsl 1
| 0x08010a56 0020 movs r0, 0
| 0x08010a58 2880 strh r0, [r5]
| 0x08010a5a ad1c adds r5, r5, 2
\ 0x08010a5c 31bd pop {r0, r4, r5, pc}
/ (fcn) func_10a5e 122
| Caller: menu_func_10120
| func_10a5e ();
| 0x08010a5e 38b5 push {r3, r4, r5, lr}
| 0x08010a60 0c00 movs r4, r1
| 0x08010a62 dff84857 ldr.w r5, [0x080111b2] ; [0x80111b0:4]=0x20004acc md380_menu_depth
| 0x08010a66 dff81c19 ldr.w r1, [0x0801138a] ; [0x8011388:4]=0x80109c9
| 0x08010a6a 0978 ldrb r1, [r1]
| 0x08010a6c 0129 cmp r1, 1 ; 1
| ,=< 0x08010a6e 08d1 bne 0x8010a82
| | 0x08010a70 45f65571 movw r1, 0x5f55
| | 0x08010a74 2980 strh r1, [r5]
| | 0x08010a76 ad1c adds r5, r5, 2
| | 0x08010a78 49f2f371 movw r1, 0x97f3
| | 0x08010a7c 2980 strh r1, [r5]
| | 0x08010a7e ad1c adds r5, r5, 2
| ,==< 0x08010a80 11e0 b 0x8010aa6
| |`-> 0x08010a82 5221 movs r1, 0x52 ; 'R' ; 82
| | 0x08010a84 2980 strh r1, [r5]
| | 0x08010a86 ad1c adds r5, r5, 2
| | 0x08010a88 6521 movs r1, 0x65 ; 'e' ; 101
| | 0x08010a8a 2980 strh r1, [r5]
| | 0x08010a8c ad1c adds r5, r5, 2
| | 0x08010a8e 6321 movs r1, 0x63 ; 'c' ; 99
| | 0x08010a90 2980 strh r1, [r5]
| | 0x08010a92 ad1c adds r5, r5, 2
| | 0x08010a94 6f21 movs r1, 0x6f ; 'o' ; 111
| | 0x08010a96 2980 strh r1, [r5]
| | 0x08010a98 ad1c adds r5, r5, 2
| | 0x08010a9a 7221 movs r1, 0x72 ; 'r' ; 114
| | 0x08010a9c 2980 strh r1, [r5]
| | 0x08010a9e ad1c adds r5, r5, 2
| | 0x08010aa0 6421 movs r1, 0x64 ; 'd' ; 100
| | 0x08010aa2 2980 strh r1, [r5]
| | 0x08010aa4 ad1c adds r5, r5, 2
| `--> 0x08010aa6 2021 movs r1, 0x20 ; 32
| 0x08010aa8 2980 strh r1, [r5]
| 0x08010aaa ad1c adds r5, r5, 2
| 0x08010aac 2900 movs r1, r5
| 0x08010aae 80b2 uxth r0, r0
| 0x08010ab0 16f094fd bl func_275dc
| 0x08010ab4 c0b2 uxtb r0, r0
| 0x08010ab6 15eb4005 adds.w r5, r5, r0, lsl 1
| 0x08010aba 2f20 movs r0, 0x2f ; '/' ; 47
| 0x08010abc 2880 strh r0, [r5]
| 0x08010abe ad1c adds r5, r5, 2
| 0x08010ac0 2900 movs r1, r5
| 0x08010ac2 a4b2 uxth r4, r4
| 0x08010ac4 2000 movs r0, r4
| 0x08010ac6 16f089fd bl func_275dc
| 0x08010aca c0b2 uxtb r0, r0
| 0x08010acc 15eb4005 adds.w r5, r5, r0, lsl 1
| 0x08010ad0 0020 movs r0, 0
| 0x08010ad2 2880 strh r0, [r5]
| 0x08010ad4 ad1c adds r5, r5, 2
\ 0x08010ad6 31bd pop {r0, r4, r5, pc}
/ (fcn) func_10ae0 166
| func_10ae0 ();
| 0x08010ae0 10b5 push {r4, lr}
| 0x08010ae2 dff8a808 ldr.w r0, [0x08011392] ; [0x8011390:4]=0x2001e830
| 0x08010ae6 0068 ldr r0, [r0]
| 0x08010ae8 dff8a418 ldr.w r1, [0x08011394] ; [0x8011394:4]=0x2001e82c
| 0x08010aec 0988 ldrh r1, [r1]
| 0x08010aee c181 strh r1, [r0, 0xe]
| 0x08010af0 3748 ldr r0, [0x08010bd0] ; [0x8010bd0:4]=0x2001e700 menu_memory_poi
| 0x08010af2 0068 ldr r0, [r0]
| 0x08010af4 4089 ldrh r0, [r0, 0xa]
| 0x08010af6 dff89c18 ldr.w r1, [0x0801139a] ; [0x8011398:4]=0x2001e82e
| 0x08010afa 0880 strh r0, [r1]
| 0x08010afc 3448 ldr r0, [0x08010bd0] ; [0x8010bd0:4]=0x2001e700 menu_memory_poi
| 0x08010afe 0068 ldr r0, [r0]
| 0x08010b00 4089 ldrh r0, [r0, 0xa]
| 0x08010b02 401c adds r0, r0, 1
| 0x08010b04 80b2 uxth r0, r0
| 0x08010b06 00f0f5fd bl func_116f4
| 0x08010b0a dff88c18 ldr.w r1, [0x0801139e] ; [0x801139c:4]=0x2001e5f4
| 0x08010b0e 0880 strh r0, [r1]
| 0x08010b10 dff88408 ldr.w r0, [0x0801139c] ; [0x801139c:4]=0x2001e5f4
| 0x08010b14 0088 ldrh r0, [r0]
| 0x08010b16 0028 cmp r0, 0
| ,=< 0x08010b18 05d1 bne 0x8010b26
| | 0x08010b1a 0120 movs r0, 1 ; 1
| | 0x08010b1c 00f0eafd bl func_116f4
| | 0x08010b20 dff87418 ldr.w r1, [0x0801139c] ; [0x801139c:4]=0x2001e5f4
| | 0x08010b24 0880 strh r0, [r1]
| `-> 0x08010b26 dff87008 ldr.w r0, [0x0801139e] ; [0x801139c:4]=0x2001e5f4
| 0x08010b2a 0088 ldrh r0, [r0]
| 0x08010b2c 11f055ff bl func_229da
| 0x08010b30 dff86808 ldr.w r0, [0x080113a0] ; [0x80113a0:4]=0xf8dfb510
| 0x08010b34 0078 ldrb r0, [r0]
| 0x08010b36 50f00100 orrs r0, r0, 1
| 0x08010b3a dff86018 ldr.w r1, [0x080113a2] ; [0x80113a0:4]=0xf8dfb510
| 0x08010b3e 0870 strb r0, [r1]
| 0x08010b40 2e48 ldr r0, [0x08010bfc] ; [0x8010bfc:4]=0x2001cb54 msg_sms_hdr_prep
| 0x08010b42 c078 ldrb r0, [r0, 3]
| 0x08010b44 10f00f04 ands r4, r0, 0xf
| 0x08010b48 00f0f6fe bl func_11938
| 0x08010b4c dff8980a ldr.w r0, [func_115ec] ; [0x80115ec:4]=0xf8dfb5f8
| 0x08010b50 4078 ldrb r0, [r0, 1]
| 0x08010b52 c0f3c000 ubfx r0, r0, 3, 1
| 0x08010b56 c007 lsls r0, r0, 0x1f
| ,=< 0x08010b58 0ad5 bpl 0x8010b70
| | 0x08010b5a dff83408 ldr.w r0, [0x08011396] ; [0x8011394:4]=0x2001e82c
| | 0x08010b5e 0188 ldrh r1, [r0]
| | 0x08010b60 1b48 ldr r0, [0x08010bd0] ; [0x8010bd0:4]=0x2001e700 menu_memory_poi
| | 0x08010b62 0068 ldr r0, [r0]
| | 0x08010b64 4089 ldrh r0, [r0, 0xa]
| | 0x08010b66 401c adds r0, r0, 1
| | 0x08010b68 80b2 uxth r0, r0
| | 0x08010b6a 00f05ffe bl func_1182c
| ,==< 0x08010b6e 09e0 b 0x8010b84
| |`-> 0x08010b70 dff81c08 ldr.w r0, [0x08011394] ; [0x8011394:4]=0x2001e82c
| | 0x08010b74 0188 ldrh r1, [r0]
| | 0x08010b76 1648 ldr r0, [0x08010bd2] ; [0x8010bd0:4]=0x2001e700 menu_memory_poi
| | 0x08010b78 0068 ldr r0, [r0]
| | 0x08010b7a 4089 ldrh r0, [r0, 0xa]
| | 0x08010b7c 401c adds r0, r0, 1
| | 0x08010b7e 80b2 uxth r0, r0
| | 0x08010b80 00f054fe bl func_1182c
\ `--> 0x08010b84 10bd pop {r4, pc}
/ (fcn) func_10ba0 44
| func_10ba0 ();
| 0x08010ba0 80b5 push {r7, lr}
| 0x08010ba2 dff8f807 ldr.w r0, [0x080113a2] ; [0x80113a0:4]=0xf8dfb510
| 0x08010ba6 0078 ldrb r0, [r0]
| 0x08010ba8 10f0fe00 ands r0, r0, 0xfe
| 0x08010bac dff8ec17 ldr.w r1, [0x080113a0] ; [0x80113a0:4]=0xf8dfb510
| 0x08010bb0 0870 strb r0, [r1]
| 0x08010bb2 dff8dc07 ldr.w r0, [0x08011396] ; [0x8011394:4]=0x2001e82c
| 0x08010bb6 0088 ldrh r0, [r0]
| 0x08010bb8 c11c adds r1, r0, 3
| 0x08010bba 89b2 uxth r1, r1
| 0x08010bbc dff8d007 ldr.w r0, [0x08011394] ; [0x8011394:4]=0x2001e82c
| 0x08010bc0 0088 ldrh r0, [r0]
| 0x08010bc2 c01c adds r0, r0, 3
| 0x08010bc4 80b2 uxth r0, r0
| 0x08010bc6 00f031fe bl func_1182c
\ 0x08010bca 01bd pop {r0, pc}
/ (fcn) 1260
| func_10c08_sms_menu_maybe ();
| 0x08010c08 10b5 push {r4, lr}
| 0x08010c0a 84b0 sub sp, 0x10
| 0x08010c0c 0124 movs r4, 1 ; 1
| 0x08010c0e dff8a005 ldr.w r0, [0x080111b6] ; [0x80111b4:4]=0x2000b5e0
| 0x08010c12 0078 ldrb r0, [r0]
| 0x08010c14 0c21 movs r1, 0xc ; 12
| 0x08010c16 dff8dc24 ldr.w r2, [0x080110fa] ; [0x80110f8:4]=0x2001e6ec
| 0x08010c1a 01fb0020 mla r0, r1, r0, r2
| 0x08010c1e 0c30 adds r0, 0xc
| 0x08010c20 dff8cc1a ldr.w r1, [func_116f4] ; [0x80116f4:4]=0x2200b470
| 0x08010c24 0160 str r1, [r0]
| 0x08010c26 dff8481b ldr.w r1, [0x08011776] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| 0x08010c2a 0978 ldrb r1, [r1]
| 0x08010c2c 1422 movs r2, 0x14 ; 20
| 0x08010c2e dff8fc3c ldr.w r3, [0x08011932] ; [0x8011930:4]=0x8012f31
| 0x08010c32 02fb0131 mla r1, r2, r1, r3
| 0x08010c36 4160 str r1, [r0, 4]
| 0x08010c38 0021 movs r1, 0
| 0x08010c3a 4172 strb r1, [r0, 9]
| 0x08010c3c 0021 movs r1, 0
| 0x08010c3e 4181 strh r1, [r0, 0xa]
| 0x08010c40 dff85817 ldr.w r1, [0x080113a0] ; [0x80113a0:4]=0xf8dfb510
| 0x08010c44 0978 ldrb r1, [r1]
| 0x08010c46 11f0fe01 ands r1, r1, 0xfe
| 0x08010c4a dff85027 ldr.w r2, [0x080113a2] ; [0x80113a0:4]=0xf8dfb510
| 0x08010c4e 1170 strb r1, [r2]
| 0x08010c50 dff8201b ldr.w r1, [0x08011778] ; [0x8011778:4]=0x8012ddd
| 0x08010c54 c978 ldrb r1, [r1, 3]
| 0x08010c56 11f00f01 ands r1, r1, 0xf
| 0x08010c5a 0a29 cmp r1, 0xa ; 10
| ,=< 0x08010c5c 07d0 beq 0x8010c6e
| | 0x08010c5e dff8141b ldr.w r1, [0x0801177a] ; [0x8011778:4]=0x8012ddd
| | 0x08010c62 c978 ldrb r1, [r1, 3]
| | 0x08010c64 11f00f01 ands r1, r1, 0xf
| | 0x08010c68 0229 cmp r1, 2 ; 2
| ,==< 0x08010c6a 40f0a381 bne.w 0x8010fb4
| |`-> 0x08010c6e 0c21 movs r1, 0xc ; 12
| | 0x08010c70 0172 strb r1, [r0, 8]
| | 0x08010c72 dff87409 ldr.w r0, [0x080115ee] ; [0x80115ec:4]=0xf8dfb5f8
| | 0x08010c76 4078 ldrb r0, [r0, 1]
| | 0x08010c78 c0f34000 ubfx r0, r0, 1, 1
| | 0x08010c7c c007 lsls r0, r0, 0x1f
| |,=< 0x08010c7e 02d5 bpl 0x8010c86
| || 0x08010c80 54f00104 orrs r4, r4, 1
| ,===< 0x08010c84 00e0 b 0x8010c88
| ||`-> 0x08010c86 0024 movs r4, 0
| `---> 0x08010c88 e4b2 uxtb r4, r4
| | 0x08010c8a a4b2 uxth r4, r4
| | 0x08010c8c 0294 str r4, [sp, 8]
| | 0x08010c8e 0020 movs r0, 0
| | 0x08010c90 0190 str r0, [sp, 4]
| | 0x08010c92 8a20 movs r0, 0x8a ; 138
| | 0x08010c94 0090 str r0, [sp]
| | 0x08010c96 dff8e43a ldr.w r3, [0x08011782] ; [0x8011780:4]=0x80118bd
| | 0x08010c9a dff8dc2a ldr.w r2, [0x0801177e] ; [0x801177c:4]=0x8011939
| | 0x08010c9e dff85804 ldr.w r0, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08010ca2 0068 ldr r0, [r0]
| | 0x08010ca4 dff85414 ldr.w r1, [0x08011100] ; [0x8011100:4]=0x8010799
| | 0x08010ca8 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08010cac c16a ldr r1, [r0, 0x2c]
| | 0x08010cae dff8c00a ldr.w r0, [0x08011776] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x08010cb2 0078 ldrb r0, [r0]
| | 0x08010cb4 fbf73bfd bl md380_create_menu_entry
| | 0x08010cb8 0120 movs r0, 1 ; 1
| | 0x08010cba 0290 str r0, [sp, 8]
| | 0x08010cbc 0020 movs r0, 0
| | 0x08010cbe 0190 str r0, [sp, 4]
| | 0x08010cc0 8a20 movs r0, 0x8a ; 138
| | 0x08010cc2 0090 str r0, [sp]
| | 0x08010cc4 dff8b43a ldr.w r3, [0x08011780] ; [0x8011780:4]=0x80118bd
| | 0x08010cc8 dff8b42a ldr.w r2, [0x08011784] ; [0x8011784:4]=0x801225f
| | 0x08010ccc dff82804 ldr.w r0, [0x080110fc] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08010cd0 0068 ldr r0, [r0]
| | 0x08010cd2 dff82814 ldr.w r1, [0x08011102] ; [0x8011100:4]=0x8010799
| | 0x08010cd6 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08010cda 016b ldr r1, [r0, 0x30]
| | 0x08010cdc dff8900a ldr.w r0, [0x08011774] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x08010ce0 0078 ldrb r0, [r0]
| | 0x08010ce2 401c adds r0, r0, 1
| | 0x08010ce4 c0b2 uxtb r0, r0
| | 0x08010ce6 fbf722fd bl md380_create_menu_entry
| | 0x08010cea dff8fc08 ldr.w r0, [0x080115ee] ; [0x80115ec:4]=0xf8dfb5f8
| | 0x08010cee 4078 ldrb r0, [r0, 1]
| | 0x08010cf0 c0f38000 ubfx r0, r0, 2, 1
| | 0x08010cf4 c007 lsls r0, r0, 0x1f
| |,=< 0x08010cf6 01d4 bmi 0x8010cfc
| || 0x08010cf8 0024 movs r4, 0
| ,===< 0x08010cfa 01e0 b 0x8010d00
| ||`-> 0x08010cfc 54f00104 orrs r4, r4, 1
| `---> 0x08010d00 e4b2 uxtb r4, r4
| | 0x08010d02 a4b2 uxth r4, r4
| | 0x08010d04 0294 str r4, [sp, 8]
| | 0x08010d06 0020 movs r0, 0
| | 0x08010d08 0190 str r0, [sp, 4]
| | 0x08010d0a 8a20 movs r0, 0x8a ; 138
| | 0x08010d0c 0090 str r0, [sp]
| | 0x08010d0e dff86c3a ldr.w r3, [0x08011782] ; [0x8011780:4]=0x80118bd
| | 0x08010d12 dff8702a ldr.w r2, [0x0801178a] ; [0x8011788:4]=0x8012591
| | 0x08010d16 dff8e003 ldr.w r0, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08010d1a 0068 ldr r0, [r0]
| | 0x08010d1c dff8dc13 ldr.w r1, [0x08011100] ; [0x8011100:4]=0x8010799
| | 0x08010d20 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08010d24 416b ldr r1, [r0, 0x34]
| | 0x08010d26 dff8480a ldr.w r0, [0x08011776] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x08010d2a 0078 ldrb r0, [r0]
| | 0x08010d2c 801c adds r0, r0, 2
| | 0x08010d2e c0b2 uxtb r0, r0
| | 0x08010d30 fbf7fdfc bl md380_create_menu_entry
| | 0x08010d34 e4b2 uxtb r4, r4
| | 0x08010d36 a4b2 uxth r4, r4
| | 0x08010d38 0294 str r4, [sp, 8]
| | 0x08010d3a 0020 movs r0, 0
| | 0x08010d3c 0190 str r0, [sp, 4]
| | 0x08010d3e 8a20 movs r0, 0x8a ; 138
| | 0x08010d40 0090 str r0, [sp]
| | 0x08010d42 dff8383a ldr.w r3, [0x08011782] ; [0x8011780:4]=0x80118bd
| | 0x08010d46 dff8402a ldr.w r2, [0x0801178e] ; [0x801178c:4]=0x80119a1
| | 0x08010d4a dff8ac03 ldr.w r0, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08010d4e 0068 ldr r0, [r0]
| | 0x08010d50 dff8a813 ldr.w r1, [0x08011100] ; [0x8011100:4]=0x8010799
| | 0x08010d54 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08010d58 816b ldr r1, [r0, 0x38]
| | 0x08010d5a dff8140a ldr.w r0, [0x08011776] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x08010d5e 0078 ldrb r0, [r0]
| | 0x08010d60 c01c adds r0, r0, 3
| | 0x08010d62 c0b2 uxtb r0, r0
| | 0x08010d64 fbf7e3fc bl md380_create_menu_entry
| | 0x08010d68 0020 movs r0, 0
| | 0x08010d6a 0290 str r0, [sp, 8]
| | 0x08010d6c 0020 movs r0, 0
| | 0x08010d6e 0190 str r0, [sp, 4]
| | 0x08010d70 8a20 movs r0, 0x8a ; 138
| | 0x08010d72 0090 str r0, [sp]
| | 0x08010d74 dff8043a ldr.w r3, [0x08011780] ; [0x8011780:4]=0x80118bd
| | 0x08010d78 dff8102a ldr.w r2, [func_11790] ; [0x8011790:4]=0x2100b470
| | 0x08010d7c de48 ldr r0, [0x080110f8] ; [0x80110f8:4]=0x2001e6ec
| | 0x08010d7e 0068 ldr r0, [r0]
| | 0x08010d80 de49 ldr r1, [0x080110fc] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08010d82 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08010d86 c16b ldr r1, [r0, 0x3c]
| | 0x08010d88 dff8e409 ldr.w r0, [0x08011774] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x08010d8c 0078 ldrb r0, [r0]
| | 0x08010d8e 001d adds r0, r0, 4
| | 0x08010d90 c0b2 uxtb r0, r0
| | 0x08010d92 fbf7ccfc bl md380_create_menu_entry
| | 0x08010d96 dff85008 ldr.w r0, [0x080115ee] ; [0x80115ec:4]=0xf8dfb5f8
| | 0x08010d9a 8078 ldrb r0, [r0, 2]
| | 0x08010d9c c007 lsls r0, r0, 0x1f
| |,=< 0x08010d9e 02d5 bpl 0x8010da6
| || 0x08010da0 54f00104 orrs r4, r4, 1
| ,===< 0x08010da4 00e0 b 0x8010da8
| ||`-> 0x08010da6 0024 movs r4, 0
| `---> 0x08010da8 e4b2 uxtb r4, r4
| | 0x08010daa a4b2 uxth r4, r4
| | 0x08010dac 0294 str r4, [sp, 8]
| | 0x08010dae 0020 movs r0, 0
| | 0x08010db0 0190 str r0, [sp, 4]
| | 0x08010db2 8a20 movs r0, 0x8a ; 138
| | 0x08010db4 0090 str r0, [sp]
| | 0x08010db6 dff8c439 ldr.w r3, [0x08011782] ; [0x8011780:4]=0x80118bd
| | 0x08010dba dff86c2a ldr.w r2, [0x0801182e] ; [0x801182c:4]=0xcb538
| | 0x08010dbe ce48 ldr r0, [0x080110fa] ; [0x80110f8:4]=0x2001e6ec
| | 0x08010dc0 0068 ldr r0, [r0]
| | 0x08010dc2 ce49 ldr r1, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08010dc4 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08010dc8 016c ldr r1, [r0, 0x40]
| | 0x08010dca dff8a409 ldr.w r0, [0x08011776] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x08010dce 0078 ldrb r0, [r0]
| | 0x08010dd0 401d adds r0, r0, 5
| | 0x08010dd2 c0b2 uxtb r0, r0
| | 0x08010dd4 fbf7abfc bl md380_create_menu_entry
| | 0x08010dd8 dff89809 ldr.w r0, [0x08011778] ; [0x8011778:4]=0x8012ddd
| | 0x08010ddc c078 ldrb r0, [r0, 3]
| | 0x08010dde 10f00f00 ands r0, r0, 0xf
| | 0x08010de2 0a28 cmp r0, 0xa ; 10
| |,=< 0x08010de4 04d0 beq 0x8010df0
| || 0x08010de6 dff8a805 ldr.w r0, [0x08011396] ; [0x8011394:4]=0x2001e82c
| || 0x08010dea 0088 ldrh r0, [r0]
| || 0x08010dec 0228 cmp r0, 2 ; 2
| ,===< 0x08010dee 17d2 bhs 0x8010e20
| ||`-> 0x08010df0 0020 movs r0, 0
| || 0x08010df2 0290 str r0, [sp, 8]
| || 0x08010df4 0020 movs r0, 0
| || 0x08010df6 0190 str r0, [sp, 4]
| || 0x08010df8 8a20 movs r0, 0x8a ; 138
| || 0x08010dfa 0090 str r0, [sp]
| || 0x08010dfc dff87c39 ldr.w r3, [0x08011780] ; [0x8011780:4]=0x80118bd
| || 0x08010e00 dff8b02a ldr.w r2, [0x080118b8] ; [0x80118b8:4]=0x8012965
| || 0x08010e04 bc48 ldr r0, [0x080110f8] ; [0x80110f8:4]=0x2001e6ec
| || 0x08010e06 0068 ldr r0, [r0]
| || 0x08010e08 bc49 ldr r1, [0x080110fc] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x08010e0a 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x08010e0e 416c ldr r1, [r0, 0x44]
| || 0x08010e10 dff85c09 ldr.w r0, [0x08011774] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| || 0x08010e14 0078 ldrb r0, [r0]
| || 0x08010e16 801d adds r0, r0, 6
| || 0x08010e18 c0b2 uxtb r0, r0
| || 0x08010e1a fbf788fc bl md380_create_menu_entry
| ||,=< 0x08010e1e 16e0 b 0x8010e4e
| `---> 0x08010e20 0020 movs r0, 0
| || 0x08010e22 0290 str r0, [sp, 8]
| || 0x08010e24 0020 movs r0, 0
| || 0x08010e26 0190 str r0, [sp, 4]
| || 0x08010e28 8a20 movs r0, 0x8a ; 138
| || 0x08010e2a 0090 str r0, [sp]
| || 0x08010e2c dff84c39 ldr.w r3, [0x08011780] ; [0x8011780:4]=0x80118bd
| || 0x08010e30 dff8802a ldr.w r2, [0x080118b8] ; [0x80118b8:4]=0x8012965
| || 0x08010e34 b048 ldr r0, [0x080110f8] ; [0x80110f8:4]=0x2001e6ec
| || 0x08010e36 0068 ldr r0, [r0]
| || 0x08010e38 b049 ldr r1, [0x080110fc] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x08010e3a 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x08010e3e 416c ldr r1, [r0, 0x44]
| || 0x08010e40 dff82c09 ldr.w r0, [0x08011774] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| || 0x08010e44 0078 ldrb r0, [r0]
| || 0x08010e46 801d adds r0, r0, 6
| || 0x08010e48 c0b2 uxtb r0, r0
| || 0x08010e4a fbf770fc bl md380_create_menu_entry
| |`-> 0x08010e4e dff89807 ldr.w r0, [0x080115ee] ; [0x80115ec:4]=0xf8dfb5f8
| | 0x08010e52 4078 ldrb r0, [r0, 1]
| | 0x08010e54 c0f30010 ubfx r0, r0, 4, 1
| | 0x08010e58 c007 lsls r0, r0, 0x1f
| |,=< 0x08010e5a 02d5 bpl 0x8010e62
| || 0x08010e5c 54f00104 orrs r4, r4, 1
| ,===< 0x08010e60 00e0 b 0x8010e64
| ||`-> 0x08010e62 0024 movs r4, 0
| `---> 0x08010e64 e4b2 uxtb r4, r4
| | 0x08010e66 a4b2 uxth r4, r4
| | 0x08010e68 0294 str r4, [sp, 8]
| | 0x08010e6a 0020 movs r0, 0
| | 0x08010e6c 0190 str r0, [sp, 4]
| | 0x08010e6e 8a20 movs r0, 0x8a ; 138
| | 0x08010e70 0090 str r0, [sp]
| | 0x08010e72 dff80839 ldr.w r3, [0x08011782] ; [0x8011780:4]=0x80118bd
| | 0x08010e76 dff8402a ldr.w r2, [0x080118be] ; [0x80118bc:4]=0xb084b510
| | 0x08010e7a 9f48 ldr r0, [0x080110fa] ; [0x80110f8:4]=0x2001e6ec
| | 0x08010e7c 0068 ldr r0, [r0]
| | 0x08010e7e 9f49 ldr r1, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08010e80 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08010e84 816c ldr r1, [r0, 0x48]
| | 0x08010e86 dff8e808 ldr.w r0, [0x08011776] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x08010e8a 0078 ldrb r0, [r0]
| | 0x08010e8c c01d adds r0, r0, 7
| | 0x08010e8e c0b2 uxtb r0, r0
| | 0x08010e90 fbf74dfc bl md380_create_menu_entry
| | 0x08010e94 dff85007 ldr.w r0, [func_115ec] ; [0x80115ec:4]=0xf8dfb5f8
| | 0x08010e98 4078 ldrb r0, [r0, 1]
| | 0x08010e9a c0f34010 ubfx r0, r0, 5, 1
| | 0x08010e9e c007 lsls r0, r0, 0x1f
| |,=< 0x08010ea0 02d5 bpl 0x8010ea8
| || 0x08010ea2 54f00104 orrs r4, r4, 1
| ,===< 0x08010ea6 00e0 b 0x8010eaa
| ||`-> 0x08010ea8 0024 movs r4, 0
| `---> 0x08010eaa e4b2 uxtb r4, r4
| | 0x08010eac a4b2 uxth r4, r4
| | 0x08010eae 0294 str r4, [sp, 8]
| | 0x08010eb0 0020 movs r0, 0
| | 0x08010eb2 0190 str r0, [sp, 4]
| | 0x08010eb4 8a20 movs r0, 0x8a ; 138
| | 0x08010eb6 0090 str r0, [sp]
| | 0x08010eb8 dff8c038 ldr.w r3, [0x08011780] ; [0x8011780:4]=0x80118bd
| | 0x08010ebc dff8702a ldr.w r2, [0x08011934] ; [0x8011934:4]=0x8012adb
| | 0x08010ec0 8d48 ldr r0, [0x080110f8] ; [0x80110f8:4]=0x2001e6ec
| | 0x08010ec2 0068 ldr r0, [r0]
| | 0x08010ec4 8d49 ldr r1, [0x080110fc] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08010ec6 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08010eca c16c ldr r1, [r0, 0x4c]
| | 0x08010ecc dff8a008 ldr.w r0, [0x08011774] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x08010ed0 0078 ldrb r0, [r0]
| | 0x08010ed2 0830 adds r0, 8
| | 0x08010ed4 c0b2 uxtb r0, r0
| | 0x08010ed6 fbf72afc bl md380_create_menu_entry
| | 0x08010eda dff80c07 ldr.w r0, [0x080115ee] ; [0x80115ec:4]=0xf8dfb5f8
| | 0x08010ede 4078 ldrb r0, [r0, 1]
| | 0x08010ee0 c0f38010 ubfx r0, r0, 6, 1
| | 0x08010ee4 c007 lsls r0, r0, 0x1f
| |,=< 0x08010ee6 02d5 bpl 0x8010eee
| || 0x08010ee8 54f00104 orrs r4, r4, 1
| ,===< 0x08010eec 00e0 b 0x8010ef0
| ||`-> 0x08010eee 0024 movs r4, 0
| `---> 0x08010ef0 e4b2 uxtb r4, r4
| | 0x08010ef2 a4b2 uxth r4, r4
| | 0x08010ef4 0294 str r4, [sp, 8]
| | 0x08010ef6 0020 movs r0, 0
| | 0x08010ef8 0190 str r0, [sp, 4]
| | 0x08010efa 8a20 movs r0, 0x8a ; 138
| | 0x08010efc 0090 str r0, [sp]
| | 0x08010efe dff87c38 ldr.w r3, [0x08011782] ; [0x8011780:4]=0x80118bd
| | 0x08010f02 dff8302a ldr.w r2, [0x0801193a] ; [0x8011938:4]=0x9e4f8df
| | 0x08010f06 7c48 ldr r0, [0x080110fa] ; [0x80110f8:4]=0x2001e6ec
| | 0x08010f08 0068 ldr r0, [r0]
| | 0x08010f0a 7c49 ldr r1, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08010f0c 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08010f10 016d ldr r1, [r0, 0x50]
| | 0x08010f12 dff85c08 ldr.w r0, [0x08011776] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x08010f16 0078 ldrb r0, [r0]
| | 0x08010f18 0930 adds r0, 9
| | 0x08010f1a c0b2 uxtb r0, r0
| | 0x08010f1c fbf707fc bl md380_create_menu_entry
| | 0x08010f20 dff8c406 ldr.w r0, [func_115ec] ; [0x80115ec:4]=0xf8dfb5f8
| | 0x08010f24 4078 ldrb r0, [r0, 1]
| | 0x08010f26 0006 lsls r0, r0, 0x18
| |,=< 0x08010f28 02d5 bpl 0x8010f30
| || 0x08010f2a 54f00104 orrs r4, r4, 1
| ,===< 0x08010f2e 00e0 b 0x8010f32
| ||`-> 0x08010f30 0024 movs r4, 0
| `---> 0x08010f32 e4b2 uxtb r4, r4
| | 0x08010f34 a4b2 uxth r4, r4
| | 0x08010f36 0294 str r4, [sp, 8]
| | 0x08010f38 0020 movs r0, 0
| | 0x08010f3a 0190 str r0, [sp, 4]
| | 0x08010f3c 8a20 movs r0, 0x8a ; 138
| | 0x08010f3e 0090 str r0, [sp]
| | 0x08010f40 dff83838 ldr.w r3, [0x08011780] ; [0x8011780:4]=0x80118bd
| | 0x08010f44 dff8502a ldr.w r2, [0x0801199c] ; [0x801199c:4]=0x8011109
| | 0x08010f48 6b48 ldr r0, [0x080110f8] ; [0x80110f8:4]=0x2001e6ec
| | 0x08010f4a 0068 ldr r0, [r0]
| | 0x08010f4c 6b49 ldr r1, [0x080110fc] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08010f4e 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08010f52 416d ldr r1, [r0, 0x54]
| | 0x08010f54 dff81808 ldr.w r0, [0x08011774] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x08010f58 0078 ldrb r0, [r0]
| | 0x08010f5a 0a30 adds r0, 0xa
| | 0x08010f5c c0b2 uxtb r0, r0
| | 0x08010f5e fbf7e6fb bl md380_create_menu_entry
| | 0x08010f62 0020 movs r0, 0
| | 0x08010f64 0290 str r0, [sp, 8]
| | 0x08010f66 0020 movs r0, 0
| | 0x08010f68 0190 str r0, [sp, 4]
| | 0x08010f6a 8a20 movs r0, 0x8a ; 138
| | 0x08010f6c 0090 str r0, [sp]
| | 0x08010f6e dff80c38 ldr.w r3, [0x08011782] ; [0x8011780:4]=0x80118bd
| | 0x08010f72 dff8282a ldr.w r2, [0x080119a2] ; [0x80119a0:4]=0x489eb5e0
| | 0x08010f76 6048 ldr r0, [0x080110fa] ; [0x80110f8:4]=0x2001e6ec
| | 0x08010f78 0068 ldr r0, [r0]
| | 0x08010f7a 6049 ldr r1, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08010f7c 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08010f80 d0f8c813 ldr.w r1, [r0, 0x3c8]
| | 0x08010f84 dff8e807 ldr.w r0, [0x08011774] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x08010f88 0078 ldrb r0, [r0]
| | 0x08010f8a 0b30 adds r0, 0xb
| | 0x08010f8c c0b2 uxtb r0, r0
| | 0x08010f8e fbf7cefb bl md380_create_menu_entry
| | 0x08010f92 0020 movs r0, 0
| |.-> 0x08010f94 0c28 cmp r0, 0xc ; 12
| ,===< 0x08010f96 80f2aa80 bge.w 0x80110ee
| ||| 0x08010f9a dff8d417 ldr.w r1, [0x08011776] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| ||| 0x08010f9e 0978 ldrb r1, [r1]
| ||| 0x08010fa0 4118 adds r1, r0, r1
| ||| 0x08010fa2 1422 movs r2, 0x14 ; 20
| ||| 0x08010fa4 dff88439 ldr.w r3, [0x08011930] ; [0x8011930:4]=0x8012f31
| ||| 0x08010fa8 02fb0131 mla r1, r2, r1, r3
| ||| 0x08010fac 0222 movs r2, 2 ; 2
| ||| 0x08010fae 0a74 strb r2, [r1, 0x10]
| ||| 0x08010fb0 401c adds r0, r0, 1
| ||`=< 0x08010fb2 efe7 b 0x8010f94
| |`--> 0x08010fb4 dff8bc17 ldr.w r1, [0x08011778] ; [0x8011778:4]=0x8012ddd
| | 0x08010fb8 c978 ldrb r1, [r1, 3]
| | 0x08010fba 11f00f01 ands r1, r1, 0xf
| | 0x08010fbe 0429 cmp r1, 4 ; 4
| | ,=< 0x08010fc0 06d0 beq 0x8010fd0
| | | 0x08010fc2 dff8b017 ldr.w r1, [0x0801177a] ; [0x8011778:4]=0x8012ddd
| | | 0x08010fc6 c978 ldrb r1, [r1, 3]
| | | 0x08010fc8 11f00f01 ands r1, r1, 0xf
| | | 0x08010fcc 0529 cmp r1, 5 ; 5
| |,==< 0x08010fce 26d1 bne 0x801101e
| ||`-> 0x08010fd0 0121 movs r1, 1 ; 1
| || 0x08010fd2 0172 strb r1, [r0, 8]
| || 0x08010fd4 0120 movs r0, 1 ; 1
| || 0x08010fd6 0290 str r0, [sp, 8]
| || 0x08010fd8 0020 movs r0, 0
| || 0x08010fda 0190 str r0, [sp, 4]
| || 0x08010fdc 8a20 movs r0, 0x8a ; 138
| || 0x08010fde 0090 str r0, [sp]
| || 0x08010fe0 dff89837 ldr.w r3, [0x08011780] ; [0x8011780:4]=0x80118bd
| || 0x08010fe4 dff89827 ldr.w r2, [0x08011784] ; [0x8011784:4]=0x801225f
| || 0x08010fe8 4348 ldr r0, [0x080110f8] ; [0x80110f8:4]=0x2001e6ec
| || 0x08010fea 0068 ldr r0, [r0]
| || 0x08010fec 4349 ldr r1, [0x080110fc] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x08010fee 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x08010ff2 016b ldr r1, [r0, 0x30]
| || 0x08010ff4 dff87807 ldr.w r0, [0x08011774] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| || 0x08010ff8 0078 ldrb r0, [r0]
| || 0x08010ffa fbf798fb bl md380_create_menu_entry
| || 0x08010ffe 0020 movs r0, 0
| ||.-> 0x08011000 0128 cmp r0, 1 ; 1
| ,====< 0x08011002 74da bge 0x80110ee
| |||| 0x08011004 dff86817 ldr.w r1, [0x08011774] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| |||| 0x08011008 0978 ldrb r1, [r1]
| |||| 0x0801100a 4118 adds r1, r0, r1
| |||| 0x0801100c 1422 movs r2, 0x14 ; 20
| |||| 0x0801100e dff81c39 ldr.w r3, [0x08011932] ; [0x8011930:4]=0x8012f31
| |||| 0x08011012 02fb0131 mla r1, r2, r1, r3
| |||| 0x08011016 0222 movs r2, 2 ; 2
| |||| 0x08011018 0a74 strb r2, [r1, 0x10]
| |||| 0x0801101a 401c adds r0, r0, 1
| |||`=< 0x0801101c f0e7 b 0x8011000
| ||`--> 0x0801101e 0321 movs r1, 3 ; 3
| || 0x08011020 0172 strb r1, [r0, 8]
| || 0x08011022 0120 movs r0, 1 ; 1
| || 0x08011024 0290 str r0, [sp, 8]
| || 0x08011026 0020 movs r0, 0
| || 0x08011028 0190 str r0, [sp, 4]
| || 0x0801102a 8a20 movs r0, 0x8a ; 138
| || 0x0801102c 0090 str r0, [sp]
| || 0x0801102e dff84c37 ldr.w r3, [0x08011782] ; [0x8011780:4]=0x80118bd
| || 0x08011032 dff84c27 ldr.w r2, [0x08011786] ; [0x8011784:4]=0x801225f
| || 0x08011036 3048 ldr r0, [0x080110fa] ; [0x80110f8:4]=0x2001e6ec
| || 0x08011038 0068 ldr r0, [r0]
| || 0x0801103a 3049 ldr r1, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0801103c 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x08011040 016b ldr r1, [r0, 0x30]
| || 0x08011042 dff82c07 ldr.w r0, [0x08011776] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| || 0x08011046 0078 ldrb r0, [r0]
| || 0x08011048 fbf771fb bl md380_create_menu_entry
| || 0x0801104c 0120 movs r0, 1 ; 1
| || 0x0801104e 0290 str r0, [sp, 8]
| || 0x08011050 0020 movs r0, 0
| || 0x08011052 0190 str r0, [sp, 4]
| || 0x08011054 8a20 movs r0, 0x8a ; 138
| || 0x08011056 0090 str r0, [sp]
| || 0x08011058 dff82037 ldr.w r3, [0x08011780] ; [0x8011780:4]=0x80118bd
| || 0x0801105c dff8c827 ldr.w r2, [func_1182c] ; [0x801182c:4]=0xcb538
| || 0x08011060 2548 ldr r0, [0x080110f8] ; [0x80110f8:4]=0x2001e6ec
| || 0x08011062 0068 ldr r0, [r0]
| || 0x08011064 2549 ldr r1, [0x080110fc] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x08011066 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0801106a 016c ldr r1, [r0, 0x40]
| || 0x0801106c dff80007 ldr.w r0, [0x08011774] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| || 0x08011070 0078 ldrb r0, [r0]
| || 0x08011072 401c adds r0, r0, 1
| || 0x08011074 c0b2 uxtb r0, r0
| || 0x08011076 fbf75afb bl md380_create_menu_entry
| || 0x0801107a dff88009 ldr.w r0, [0x08011a02] ; [0x8011a00:4]=0x4c89b538
| || 0x0801107e 407b ldrb r0, [r0, 0xd]
| || 0x08011080 401e subs r0, r0, 1
| || 0x08011082 c0b2 uxtb r0, r0
| || 0x08011084 1028 cmp r0, 0x10 ; 16
| || ,=< 0x08011086 09d2 bhs 0x801109c
| || | 0x08011088 dff87009 ldr.w r0, [0x08011a00] ; [0x8011a00:4]=0x4c89b538
| || | 0x0801108c 0078 ldrb r0, [r0]
| || | 0x0801108e 10f00300 ands r0, r0, 3
| || | 0x08011092 0228 cmp r0, 2 ; 2
| ||,==< 0x08011094 02d1 bne 0x801109c
| |||| 0x08011096 54f00104 orrs r4, r4, 1
| ,=====< 0x0801109a 00e0 b 0x801109e
| |||``-> 0x0801109c 0024 movs r4, 0
| `-----> 0x0801109e 0020 movs r0, 0
| || 0x080110a0 0290 str r0, [sp, 8]
| || 0x080110a2 0020 movs r0, 0
| || 0x080110a4 0190 str r0, [sp, 4]
| || 0x080110a6 8a20 movs r0, 0x8a ; 138
| || 0x080110a8 0090 str r0, [sp]
| || 0x080110aa dff8d036 ldr.w r3, [0x08011782] ; [0x8011780:4]=0x80118bd
| || 0x080110ae dff8ec28 ldr.w r2, [0x080119a2] ; [0x80119a0:4]=0x489eb5e0
| || 0x080110b2 1148 ldr r0, [0x080110fa] ; [0x80110f8:4]=0x2001e6ec
| || 0x080110b4 0068 ldr r0, [r0]
| || 0x080110b6 1149 ldr r1, [0x080110fe] ; [0x80110fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x080110b8 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x080110bc d0f8c813 ldr.w r1, [r0, 0x3c8]
| || 0x080110c0 dff8ac06 ldr.w r0, [0x08011774] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| || 0x080110c4 0078 ldrb r0, [r0]
| || 0x080110c6 801c adds r0, r0, 2
| || 0x080110c8 c0b2 uxtb r0, r0
| || 0x080110ca fbf730fb bl md380_create_menu_entry
| || 0x080110ce 0020 movs r0, 0
| || ,=< 0x080110d0 0be0 b 0x80110ea
| ||.--> 0x080110d2 dff89c16 ldr.w r1, [0x08011776] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| |||| 0x080110d6 0978 ldrb r1, [r1]
| |||| 0x080110d8 4118 adds r1, r0, r1
| |||| 0x080110da 1422 movs r2, 0x14 ; 20
| |||| 0x080110dc dff84c38 ldr.w r3, [0x08011930] ; [0x8011930:4]=0x8012f31
| |||| 0x080110e0 02fb0131 mla r1, r2, r1, r3
| |||| 0x080110e4 0222 movs r2, 2 ; 2
| |||| 0x080110e6 0a74 strb r2, [r1, 0x10]
| |||| 0x080110e8 401c adds r0, r0, 1
| |||`-> 0x080110ea 0328 cmp r0, 3 ; 3
| ||`==< 0x080110ec f1db blt 0x80110d2
| ``---> 0x080110ee 00f023fc bl func_11938
\ 0x080110f2 1fbd pop {r0, r1, r2, r3, r4, pc}
/ (fcn) func_11108 162
| func_11108 ();
| 0x08011108 e0b5 push {r5, r6, r7, lr}
| 0x0801110a 0020 movs r0, 0
| ,=< 0x0801110c 08e0 b 0x8011120
| .--> 0x0801110e c0b2 uxtb r0, r0
| || 0x08011110 dff82c1a ldr.w r1, [0x08011b44] ; [0x8011b44:4]=0x2001e8ff
| || 0x08011114 c0b2 uxtb r0, r0
| || 0x08011116 dff85c26 ldr.w r2, [0x0801177a] ; [0x8011778:4]=0x8012ddd
| || 0x0801111a 825c ldrb r2, [r0, r2]
| || 0x0801111c 4254 strb r2, [r0, r1]
| || 0x0801111e 401c adds r0, r0, 1
| |`-> 0x08011120 c0b2 uxtb r0, r0
| | 0x08011122 2428 cmp r0, 0x24 ; '$' ; 36
| `==< 0x08011124 f3d3 blo 0x801110e
| 0x08011126 dff81c0a ldr.w r0, [0x08011b4a] ; [0x8011b48:4]=0x2001e8a9 event5_buffer
| 0x0801112a 0221 movs r1, 2 ; 2
| 0x0801112c 0170 strb r1, [r0]
| 0x0801112e dff8180a ldr.w r0, [0x08011b4e] ; [0x8011b4c:4]=0x2001e658 event5_mbox_poi
| 0x08011132 1521 movs r1, 0x15 ; 21
| 0x08011134 0170 strb r1, [r0]
| 0x08011136 dff8101a ldr.w r1, [0x08011b4e] ; [0x8011b4c:4]=0x2001e658 event5_mbox_poi
| 0x0801113a dff8100a ldr.w r0, [0x08011b52] ; [0x8011b50:4]=0x2001d5cc md380_menu_memory
| 0x0801113e 0068 ldr r0, [r0]
| 0x08011140 20f02cf8 bl md380_OSMboxPost
| 0x08011144 1a48 ldr r0, [0x080111b0] ; [0x80111b0:4]=0x20004acc md380_menu_depth
| 0x08011146 0078 ldrb r0, [r0]
| 0x08011148 0c21 movs r1, 0xc ; 12
| 0x0801114a dff8042a ldr.w r2, [0x08011b56] ; [0x8011b54:4]=0x2001e6ec
| 0x0801114e 01fb0020 mla r0, r1, r0, r2
| 0x08011152 0c30 adds r0, 0xc
| 0x08011154 dff8fc19 ldr.w r1, [0x08011b58] ; [0x8011b58:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08011158 0968 ldr r1, [r1]
| 0x0801115a dff8fc29 ldr.w r2, [0x08011b5e] ; [0x8011b5c:4]=0x800fc85 menu_entry_back_1
| 0x0801115e 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08011162 d1f8c813 ldr.w r1, [r1, 0x3c8]
| 0x08011166 0160 str r1, [r0]
| 0x08011168 dff80416 ldr.w r1, [0x08011774] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| 0x0801116c 0978 ldrb r1, [r1]
| 0x0801116e 1422 movs r2, 0x14 ; 20
| 0x08011170 dff8b837 ldr.w r3, [0x08011930] ; [0x8011930:4]=0x8012f31
| 0x08011174 02fb0131 mla r1, r2, r1, r3
| 0x08011178 4160 str r1, [r0, 4]
| 0x0801117a 0121 movs r1, 1 ; 1
| 0x0801117c 0172 strb r1, [r0, 8]
| 0x0801117e 0021 movs r1, 0
| 0x08011180 4172 strb r1, [r0, 9]
| 0x08011182 0021 movs r1, 0
| 0x08011184 4181 strh r1, [r0, 0xa]
| 0x08011186 0120 movs r0, 1 ; 1
| 0x08011188 0290 str r0, [sp, 8]
| 0x0801118a 0f20 movs r0, 0xf ; 15
| 0x0801118c 0190 str r0, [sp, 4]
| 0x0801118e 8720 movs r0, 0x87 ; 135
| 0x08011190 0090 str r0, [sp]
| 0x08011192 dff8c839 ldr.w r3, [0x08011b62] ; [0x8011b60:4]=0x801125d
| 0x08011196 dff8c829 ldr.w r2, [0x08011b66] ; [0x8011b64:4]=0x2001b274 md380_menu_mem_base
| 0x0801119a dff85415 ldr.w r1, [0x080116f6] ; [0x80116f4:4]=0x2200b470
| 0x0801119e dff8d005 ldr.w r0, [0x08011776] ; [0x8011774:4]=0x2001cb54 msg_sms_hdr_prep
| 0x080111a2 0078 ldrb r0, [r0]
| 0x080111a4 fbf7c3fa bl md380_create_menu_entry
\ 0x080111a8 07bd pop {r0, r1, r2, pc}
/ (fcn) func_115ec 260
| Caller: func_23464 func_232e4 menugreen.Contacts.800fcbc func_25ff4 md380_menu_12900
| func_23220
| func_115ec ();
| 0x080115ec f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x080115ee dff8d44a ldr.w r4, [0x080120ca] ; [0x80120c8:4]=0x2001e830
| 0x080115f2 0025 movs r5, 0
| 0x080115f4 dff8d00a ldr.w r0, [0x080120cc] ; [0x80120cc:4]=0x2001e832
| 0x080115f8 0021 movs r1, 0
| 0x080115fa 0180 strh r1, [r0]
| 0x080115fc dff8cc0a ldr.w r0, [0x080120d0] ; [0x80120d0:4]=0x2001e834
| 0x08011600 0021 movs r1, 0
| 0x08011602 0180 strh r1, [r0]
| 0x08011604 dff8c80a ldr.w r0, [0x080120d4] ; [0x80120d4:4]=0x2001e836
| 0x08011608 0021 movs r1, 0
| 0x0801160a 0180 strh r1, [r0]
| 0x0801160c dff8c40a ldr.w r0, [0x080120d8] ; [0x80120d8:4]=0xf8dfb5e0
| 0x08011610 0021 movs r1, 0
| 0x08011612 0180 strh r1, [r0]
| 0x08011614 dff8fc0c ldr.w r0, [0x08012318] ; [0x8012318:4]=0x2001cb58 selected_contact_name_wstring
| 0x08011618 0021 movs r1, 0
| 0x0801161a 0180 strh r1, [r0]
| 0x0801161c 45f68377 movw r7, 0x5f83
| 0x08011620 0026 movs r6, 0
| ,=< 0x08011622 06e0 b 0x8011632
| .--> 0x08011624 80b2 uxth r0, r0
| || 0x08011626 9df80010 ldrb.w r1, [sp]
| || 0x0801162a 11f00f01 ands r1, r1, 0xf
| || 0x0801162e 0155 strb r1, [r0, r4]
| .---> 0x08011630 761c adds r6, r6, 1
| ||`-> 0x08011632 b6b2 uxth r6, r6
| || 0x08011634 b6f57a7f cmp.w r6, 0x3e8 ; 1000
| ||,=< 0x08011638 59d2 bhs 0x80116ee
| ||| 0x0801163a 0122 movs r2, 1 ; 1
| ||| 0x0801163c 3900 movs r1, r7
| ||| 0x0801163e 00a8 add r0, sp, 0
| ||| 0x08011640 1ff019ff bl md380_spiflash_read
| ||| 0x08011644 2437 adds r7, 0x24
| ||| 0x08011646 9df80000 ldrb.w r0, [sp]
| ||| 0x0801164a 10f00700 ands r0, r0, 7
| ||| 0x0801164e 0228 cmp r0, 2 ; 2
| ,====< 0x08011650 07d1 bne 0x8011662
| |||| 0x08011652 dff87c0a ldr.w r0, [0x080120d6] ; [0x80120d4:4]=0x2001e836
| |||| 0x08011656 0088 ldrh r0, [r0]
| |||| 0x08011658 401c adds r0, r0, 1
| |||| 0x0801165a dff8741a ldr.w r1, [0x080120d6] ; [0x80120d4:4]=0x2001e836
| |||| 0x0801165e 0880 strh r0, [r1]
| ,=====< 0x08011660 0ce0 b 0x801167c
| |`----> 0x08011662 9df80000 ldrb.w r0, [sp]
| | ||| 0x08011666 10f00700 ands r0, r0, 7
| | ||| 0x0801166a 0128 cmp r0, 1 ; 1
| |,====< 0x0801166c 06d1 bne 0x801167c
| ||||| 0x0801166e dff8640a ldr.w r0, [0x080120da] ; [0x80120d8:4]=0xf8dfb5e0
| ||||| 0x08011672 0088 ldrh r0, [r0]
| ||||| 0x08011674 401c adds r0, r0, 1
| ||||| 0x08011676 dff85c1a ldr.w r1, [0x080120da] ; [0x80120d8:4]=0xf8dfb5e0
| ||||| 0x0801167a 0880 strh r0, [r1]
| ``----> 0x0801167c 9df80000 ldrb.w r0, [sp]
| ||| 0x08011680 10f00700 ands r0, r0, 7
| ||| 0x08011684 401e subs r0, r0, 1
| ||| 0x08011686 0528 cmp r0, 5 ; 5
| ,====< 0x08011688 14d2 bhs 0x80116b4
| |||| 0x0801168a dff83c0a ldr.w r0, [0x080120ce] ; [0x80120cc:4]=0x2001e832
| |||| 0x0801168e 0088 ldrh r0, [r0]
| |||| 0x08011690 401c adds r0, r0, 1
| |||| 0x08011692 dff8341a ldr.w r1, [0x080120ce] ; [0x80120cc:4]=0x2001e832
| |||| 0x08011696 0880 strh r0, [r1]
| |||| 0x08011698 9df80000 ldrb.w r0, [sp]
| |||| 0x0801169c 10f00700 ands r0, r0, 7
| |||| 0x080116a0 0328 cmp r0, 3 ; 3
| ,=====< 0x080116a2 0fd0 beq 0x80116c4
| ||||| 0x080116a4 dff8240a ldr.w r0, [0x080120d0] ; [0x80120d0:4]=0x2001e834
| ||||| 0x080116a8 0088 ldrh r0, [r0]
| ||||| 0x080116aa 401c adds r0, r0, 1
| ||||| 0x080116ac dff81c1a ldr.w r1, [0x080120d0] ; [0x80120d0:4]=0x2001e834
| ||||| 0x080116b0 0880 strh r0, [r1]
| ,======< 0x080116b2 07e0 b 0x80116c4
| ||`----> 0x080116b4 edb2 uxtb r5, r5
| || ||| 0x080116b6 002d cmp r5, 0
| ||,====< 0x080116b8 04d1 bne 0x80116c4
| |||||| 0x080116ba 701c adds r0, r6, 1
| |||||| 0x080116bc dff8541c ldr.w r1, [0x08012318] ; [0x8012318:4]=0x2001cb58 selected_contact_name_wstring
| |||||| 0x080116c0 0880 strh r0, [r1]
| |||||| 0x080116c2 0125 movs r5, 1 ; 1
| ```----> 0x080116c4 b6b2 uxth r6, r6
| ||| 0x080116c6 0220 movs r0, 2 ; 2
| ||| 0x080116c8 96fbf0f0 sdiv r0, r6, r0
| ||| 0x080116cc b6b2 uxth r6, r6
| ||| 0x080116ce 0221 movs r1, 2 ; 2
| ||| 0x080116d0 96fbf1f2 sdiv r2, r6, r1
| ||| 0x080116d4 02fb1162 mls r2, r2, r1, r6
| ||| 0x080116d8 002a cmp r2, 0
| |`==< 0x080116da a3d0 beq 0x8011624
| | | 0x080116dc 80b2 uxth r0, r0
| | | 0x080116de 015d ldrb r1, [r0, r4]
| | | 0x080116e0 9df80020 ldrb.w r2, [sp]
| | | 0x080116e4 51ea0211 orrs.w r1, r1, r2, lsl 4
| | | 0x080116e8 80b2 uxth r0, r0
| | | 0x080116ea 0155 strb r1, [r0, r4]
| `===< 0x080116ec a0e7 b 0x8011630
\ `-> 0x080116ee f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) func_116f4 124
| Caller: menu_draw_something md380_menu_12670 func_16ca4 func_0c7e8 func_10ae0
| func_170c4
| func_116f4 ();
| 0x080116f4 70b4 push {r4, r5, r6}
| 0x080116f6 0022 movs r2, 0
| 0x080116f8 dff8c819 ldr.w r1, [0x080120c8] ; [0x80120c8:4]=0x2001e830
| 0x080116fc dff8c839 ldr.w r3, [0x080120cc] ; [0x80120cc:4]=0x2001e832
| 0x08011700 1b88 ldrh r3, [r3]
| 0x08011702 80b2 uxth r0, r0
| 0x08011704 8342 cmp r3, r0
| ,=< 0x08011706 30d3 blo 0x801176a
| | 0x08011708 80b2 uxth r0, r0
| | 0x0801170a 0128 cmp r0, 1 ; 1
| ,==< 0x0801170c 2dd3 blo 0x801176a
| || 0x0801170e 0023 movs r3, 0
| ,===< 0x08011710 00e0 b 0x8011714
| .----> 0x08011712 5b1c adds r3, r3, 1
| |`---> 0x08011714 9bb2 uxth r3, r3
| | || 0x08011716 b3f57a7f cmp.w r3, 0x3e8 ; 1000
| |,===< 0x0801171a 24d2 bhs 0x8011766
| |||| 0x0801171c 9bb2 uxth r3, r3
| |||| 0x0801171e 0224 movs r4, 2 ; 2
| |||| 0x08011720 93fbf4f4 sdiv r4, r3, r4
| |||| 0x08011724 9bb2 uxth r3, r3
| |||| 0x08011726 0225 movs r5, 2 ; 2
| |||| 0x08011728 93fbf5f6 sdiv r6, r3, r5
| |||| 0x0801172c 06fb1536 mls r6, r6, r5, r3
| |||| 0x08011730 002e cmp r6, 0
| ,=====< 0x08011732 09d0 beq 0x8011748
| ||||| 0x08011734 a4b2 uxth r4, r4
| ||||| 0x08011736 645c ldrb r4, [r4, r1]
| ||||| 0x08011738 c4f30214 ubfx r4, r4, 4, 3
| ||||| 0x0801173c e4b2 uxtb r4, r4
| ||||| 0x0801173e 641e subs r4, r4, 1
| ||||| 0x08011740 052c cmp r4, 5 ; 5
| ,======< 0x08011742 09d2 bhs 0x8011758
| |||||| 0x08011744 521c adds r2, r2, 1
| ,=======< 0x08011746 07e0 b 0x8011758
| ||`-----> 0x08011748 a4b2 uxth r4, r4
| || |||| 0x0801174a 645c ldrb r4, [r4, r1]
| || |||| 0x0801174c 14f00704 ands r4, r4, 7
| || |||| 0x08011750 641e subs r4, r4, 1
| || |||| 0x08011752 052c cmp r4, 5 ; 5
| ||,=====< 0x08011754 00d2 bhs 0x8011758
| ||||||| 0x08011756 521c adds r2, r2, 1
| ```-----> 0x08011758 92b2 uxth r2, r2
| |||| 0x0801175a 80b2 uxth r0, r0
| |||| 0x0801175c 8242 cmp r2, r0
| `====< 0x0801175e d8d1 bne 0x8011712
| ||| 0x08011760 581c adds r0, r3, 1
| ||| 0x08011762 80b2 uxth r0, r0
| ,====< 0x08011764 02e0 b 0x801176c
| |`---> 0x08011766 0020 movs r0, 0
| |,===< 0x08011768 00e0 b 0x801176c
| ||``-> 0x0801176a 0020 movs r0, 0
| ``---> 0x0801176c 70bc pop {r4, r5, r6}
\ 0x0801176e 7047 bx lr
/ (fcn) func_11790 150
| Caller: menu_draw_something
| func_11790 ();
| 0x08011790 70b4 push {r4, r5, r6}
| 0x08011792 0021 movs r1, 0
| 0x08011794 dff82c29 ldr.w r2, [0x080120c8] ; [0x80120c8:4]=0x2001e830
| 0x08011798 dff83039 ldr.w r3, [0x080120d0] ; [0x80120d0:4]=0x2001e834
| 0x0801179c 1b88 ldrh r3, [r3]
| 0x0801179e 80b2 uxth r0, r0
| 0x080117a0 8342 cmp r3, r0
| ,=< 0x080117a2 3dd3 blo 0x8011820
| | 0x080117a4 80b2 uxth r0, r0
| | 0x080117a6 0128 cmp r0, 1 ; 1
| ,==< 0x080117a8 3ad3 blo 0x8011820
| || 0x080117aa 0023 movs r3, 0
| ,===< 0x080117ac 00e0 b 0x80117b0
| .----> 0x080117ae 5b1c adds r3, r3, 1
| |`---> 0x080117b0 9bb2 uxth r3, r3
| | || 0x080117b2 b3f57a7f cmp.w r3, 0x3e8 ; 1000
| |,===< 0x080117b6 31d2 bhs 0x801181c
| |||| 0x080117b8 9bb2 uxth r3, r3
| |||| 0x080117ba 0224 movs r4, 2 ; 2
| |||| 0x080117bc 93fbf4f4 sdiv r4, r3, r4
| |||| 0x080117c0 9bb2 uxth r3, r3
| |||| 0x080117c2 0225 movs r5, 2 ; 2
| |||| 0x080117c4 93fbf5f6 sdiv r6, r3, r5
| |||| 0x080117c8 06fb1536 mls r6, r6, r5, r3
| |||| 0x080117cc 002e cmp r6, 0
| ,=====< 0x080117ce 10d0 beq 0x80117f2
| ||||| 0x080117d0 a4b2 uxth r4, r4
| ||||| 0x080117d2 a55c ldrb r5, [r4, r2]
| ||||| 0x080117d4 c5f30215 ubfx r5, r5, 4, 3
| ||||| 0x080117d8 edb2 uxtb r5, r5
| ||||| 0x080117da 6d1e subs r5, r5, 1
| ||||| 0x080117dc 052d cmp r5, 5 ; 5
| ,======< 0x080117de 16d2 bhs 0x801180e
| |||||| 0x080117e0 a4b2 uxth r4, r4
| |||||| 0x080117e2 a45c ldrb r4, [r4, r2]
| |||||| 0x080117e4 c4f30214 ubfx r4, r4, 4, 3
| |||||| 0x080117e8 e4b2 uxtb r4, r4
| |||||| 0x080117ea 032c cmp r4, 3 ; 3
| ,=======< 0x080117ec 0fd0 beq 0x801180e
| ||||||| 0x080117ee 491c adds r1, r1, 1
| ========< 0x080117f0 0de0 b 0x801180e
| ||`-----> 0x080117f2 a4b2 uxth r4, r4
| || |||| 0x080117f4 a55c ldrb r5, [r4, r2]
| || |||| 0x080117f6 15f00705 ands r5, r5, 7
| || |||| 0x080117fa 6d1e subs r5, r5, 1
| || |||| 0x080117fc 052d cmp r5, 5 ; 5
| ||,=====< 0x080117fe 06d2 bhs 0x801180e
| ||||||| 0x08011800 a4b2 uxth r4, r4
| ||||||| 0x08011802 a45c ldrb r4, [r4, r2]
| ||||||| 0x08011804 14f00704 ands r4, r4, 7
| ||||||| 0x08011808 032c cmp r4, 3 ; 3
| ========< 0x0801180a 00d0 beq 0x801180e
| ||||||| 0x0801180c 491c adds r1, r1, 1
| ```-----> 0x0801180e 89b2 uxth r1, r1
| |||| 0x08011810 80b2 uxth r0, r0
| |||| 0x08011812 8142 cmp r1, r0
| `====< 0x08011814 cbd1 bne 0x80117ae
| ||| 0x08011816 581c adds r0, r3, 1
| ||| 0x08011818 80b2 uxth r0, r0
| ,====< 0x0801181a 02e0 b 0x8011822
| |`---> 0x0801181c 0020 movs r0, 0
| |,===< 0x0801181e 00e0 b 0x8011822
| ||``-> 0x08011820 0020 movs r0, 0
| ``---> 0x08011822 70bc pop {r4, r5, r6}
\ 0x08011824 7047 bx lr
/ (fcn) func_1182c 136
| Caller: func_10ba0 func_10ae0
| func_1182c ();
| 0x0801182c 38b5 push {r3, r4, r5, lr}
| 0x0801182e 0c00 movs r4, r1
| 0x08011830 dff8f453 ldr.w r5, [0x08011c2c] ; [0x8011c2c:4]=0x80113a1
| 0x08011834 dff8781c ldr.w r1, [0x080124b4] ; [0x80124b4:4]=0x8011a01
| 0x08011838 0978 ldrb r1, [r1]
| 0x0801183a 0129 cmp r1, 1 ; 1
| ,=< 0x0801183c 0cd1 bne 0x8011858
| | 0x0801183e 49f21a01 movw r1, 0x901a
| | 0x08011842 2980 strh r1, [r5]
| | 0x08011844 ad1c adds r5, r5, 2
| | 0x08011846 48f6af31 movw r1, 0x8baf
| | 0x0801184a 2980 strh r1, [r5]
| | 0x0801184c ad1c adds r5, r5, 2
| | 0x0801184e 45f65571 movw r1, 0x5f55
| | 0x08011852 2980 strh r1, [r5]
| | 0x08011854 ad1c adds r5, r5, 2
| ,==< 0x08011856 14e0 b 0x8011882
| |`-> 0x08011858 4321 movs r1, 0x43 ; 'C' ; 67
| | 0x0801185a 2980 strh r1, [r5]
| | 0x0801185c ad1c adds r5, r5, 2
| | 0x0801185e 6f21 movs r1, 0x6f ; 'o' ; 111
| | 0x08011860 2980 strh r1, [r5]
| | 0x08011862 ad1c adds r5, r5, 2
| | 0x08011864 6e21 movs r1, 0x6e ; 'n' ; 110
| | 0x08011866 2980 strh r1, [r5]
| | 0x08011868 ad1c adds r5, r5, 2
| | 0x0801186a 7421 movs r1, 0x74 ; 't' ; 116
| | 0x0801186c 2980 strh r1, [r5]
| | 0x0801186e ad1c adds r5, r5, 2
| | 0x08011870 6121 movs r1, 0x61 ; 'a' ; 97
| | 0x08011872 2980 strh r1, [r5]
| | 0x08011874 ad1c adds r5, r5, 2
| | 0x08011876 6321 movs r1, 0x63 ; 'c' ; 99
| | 0x08011878 2980 strh r1, [r5]
| | 0x0801187a ad1c adds r5, r5, 2
| | 0x0801187c 7421 movs r1, 0x74 ; 't' ; 116
| | 0x0801187e 2980 strh r1, [r5]
| | 0x08011880 ad1c adds r5, r5, 2
| `--> 0x08011882 2021 movs r1, 0x20 ; 32
| 0x08011884 2980 strh r1, [r5]
| 0x08011886 ad1c adds r5, r5, 2
| 0x08011888 2900 movs r1, r5
| 0x0801188a 80b2 uxth r0, r0
| 0x0801188c 15f0a6fe bl func_275dc
| 0x08011890 c0b2 uxtb r0, r0
| 0x08011892 15eb4005 adds.w r5, r5, r0, lsl 1
| 0x08011896 2f20 movs r0, 0x2f ; '/' ; 47
| 0x08011898 2880 strh r0, [r5]
| 0x0801189a ad1c adds r5, r5, 2
| 0x0801189c 2900 movs r1, r5
| 0x0801189e a4b2 uxth r4, r4
| 0x080118a0 2000 movs r0, r4
| 0x080118a2 15f09bfe bl func_275dc
| 0x080118a6 c0b2 uxtb r0, r0
| 0x080118a8 15eb4005 adds.w r5, r5, r0, lsl 1
| 0x080118ac 0020 movs r0, 0
| 0x080118ae 2880 strh r0, [r5]
| 0x080118b0 ad1c adds r5, r5, 2
\ 0x080118b2 31bd pop {r0, r4, r5, pc}
/ (fcn) func_11938 96
| Caller: menu_draw_something func_0c7e8 func_10ae0 func_10c08_sms_menu_maybe
| func_11938 ();
| 0x08011938 dff8e409 ldr.w r0, [0x08012324] ; [0x8012324:4]=0xb084b570
| 0x0801193c c078 ldrb r0, [r0, 3]
| 0x0801193e 10f00f00 ands r0, r0, 0xf
| 0x08011942 0228 cmp r0, 2 ; 2
| ,=< 0x08011944 06d0 beq 0x8011954
| | 0x08011946 dff8d809 ldr.w r0, [0x08012326] ; [0x8012324:4]=0xb084b570
| | 0x0801194a c078 ldrb r0, [r0, 3]
| | 0x0801194c 10f00f00 ands r0, r0, 0xf
| | 0x08011950 0a28 cmp r0, 0xa ; 10
| ,==< 0x08011952 04d1 bne 0x801195e
| |`-> 0x08011954 dff82c0c ldr.w r0, [0x08012588] ; [0x8012588:4]=0x20004acd
| | 0x08011958 0521 movs r1, 5 ; 5
| | 0x0801195a 0170 strb r1, [r0]
| |,=< 0x0801195c 1be0 b 0x8011996
| `--> 0x0801195e dff8c009 ldr.w r0, [0x08012326] ; [0x8012324:4]=0xb084b570
| | 0x08011962 c078 ldrb r0, [r0, 3]
| | 0x08011964 10f00f00 ands r0, r0, 0xf
| | 0x08011968 0428 cmp r0, 4 ; 4
| ,==< 0x0801196a 04d1 bne 0x8011976
| || 0x0801196c dff8140c ldr.w r0, [0x08012588] ; [0x8012588:4]=0x20004acd
| || 0x08011970 0721 movs r1, 7 ; 7
| || 0x08011972 0170 strb r1, [r0]
| ,===< 0x08011974 0fe0 b 0x8011996
| |`--> 0x08011976 dff8a809 ldr.w r0, [0x08012326] ; [0x8012324:4]=0xb084b570
| | | 0x0801197a c078 ldrb r0, [r0, 3]
| | | 0x0801197c 10f00f00 ands r0, r0, 0xf
| | | 0x08011980 0528 cmp r0, 5 ; 5
| |,==< 0x08011982 04d1 bne 0x801198e
| ||| 0x08011984 dff8fc0b ldr.w r0, [0x08012588] ; [0x8012588:4]=0x20004acd
| ||| 0x08011988 0621 movs r1, 6 ; 6
| ||| 0x0801198a 0170 strb r1, [r0]
| ,====< 0x0801198c 03e0 b 0x8011996
| ||`--> 0x0801198e dff8f40b ldr.w r0, [0x0801258a] ; [0x8012588:4]=0x20004acd
| || | 0x08011992 0421 movs r1, 4 ; 4
| || | 0x08011994 0170 strb r1, [r0]
\ ``-`-> 0x08011996 7047 bx lr
/ (fcn) func_16a96_copy_version_nr_to_print_buffer 58
| Caller: func_0c7e8
| func_16a96_copy_version_nr_to_print_buffer ();
| 0x08016a96 7c48 ldr r0, [0x08016c8a] ; [0x8016c88:4]=0x2001e0d0 print_buffer
| 0x08016a98 4421 movs r1, 0x44 ; 'D' ; 68
| 0x08016a9a 0180 strh r1, [r0]
| 0x08016a9c 801c adds r0, r0, 2
| 0x08016a9e 3021 movs r1, 0x30 ; '0' ; 48
| 0x08016aa0 0180 strh r1, [r0]
| 0x08016aa2 801c adds r0, r0, 2
| 0x08016aa4 3121 movs r1, 0x31 ; '1' ; 49
| 0x08016aa6 0180 strh r1, [r0]
| 0x08016aa8 801c adds r0, r0, 2
| 0x08016aaa 3321 movs r1, 0x33 ; '3' ; 51
| 0x08016aac 0180 strh r1, [r0]
| 0x08016aae 801c adds r0, r0, 2
| 0x08016ab0 2e21 movs r1, 0x2e ; '.' ; 46
| 0x08016ab2 0180 strh r1, [r0]
| 0x08016ab4 801c adds r0, r0, 2
| 0x08016ab6 3021 movs r1, 0x30 ; '0' ; 48
| 0x08016ab8 0180 strh r1, [r0]
| 0x08016aba 801c adds r0, r0, 2
| 0x08016abc 3221 movs r1, 0x32 ; '2' ; 50
| 0x08016abe 0180 strh r1, [r0]
| 0x08016ac0 801c adds r0, r0, 2
| 0x08016ac2 3021 movs r1, 0x30 ; '0' ; 48
| 0x08016ac4 0180 strh r1, [r0]
| 0x08016ac6 801c adds r0, r0, 2
| 0x08016ac8 0021 movs r1, 0
| 0x08016aca 0180 strh r1, [r0]
| 0x08016acc 801c adds r0, r0, 2
\ 0x08016ace 7047 bx lr
/ (fcn) func_16ad4 86
| Caller: func_0c7e8
| func_16ad4 ();
| 0x08016ad4 6c48 ldr r0, [0x08016c88] ; [0x8016c88:4]=0x2001e0d0 print_buffer
| 0x08016ad6 5621 movs r1, 0x56 ; 'V' ; 86
| 0x08016ad8 0180 strh r1, [r0]
| 0x08016ada 801c adds r0, r0, 2
| 0x08016adc dff8801a ldr.w r1, [0x08017564] ; [0x8017564:4]=0x2001e94a md380_menu_0x2001d3f4
| 0x08016ae0 0978 ldrb r1, [r1]
| 0x08016ae2 11f00f01 ands r1, r1, 0xf
| 0x08016ae6 3031 adds r1, 0x30
| 0x08016ae8 0180 strh r1, [r0]
| 0x08016aea 801c adds r0, r0, 2
| 0x08016aec dff8701a ldr.w r1, [0x08017564] ; [0x8017564:4]=0x2001e94a md380_menu_0x2001d3f4
| 0x08016af0 4978 ldrb r1, [r1, 1]
| 0x08016af2 11f00f01 ands r1, r1, 0xf
| 0x08016af6 3031 adds r1, 0x30
| 0x08016af8 0180 strh r1, [r0]
| 0x08016afa 801c adds r0, r0, 2
| 0x08016afc 2e21 movs r1, 0x2e ; '.' ; 46
| 0x08016afe 0180 strh r1, [r0]
| 0x08016b00 801c adds r0, r0, 2
| 0x08016b02 dff85c1a ldr.w r1, [0x08017566] ; [0x8017564:4]=0x2001e94a md380_menu_0x2001d3f4
| 0x08016b06 8978 ldrb r1, [r1, 2]
| 0x08016b08 11f00f01 ands r1, r1, 0xf
| 0x08016b0c 3031 adds r1, 0x30
| 0x08016b0e 0180 strh r1, [r0]
| 0x08016b10 801c adds r0, r0, 2
| 0x08016b12 dff84c1a ldr.w r1, [0x08017566] ; [0x8017564:4]=0x2001e94a md380_menu_0x2001d3f4
| 0x08016b16 c978 ldrb r1, [r1, 3]
| 0x08016b18 11f00f01 ands r1, r1, 0xf
| 0x08016b1c 3031 adds r1, 0x30
| 0x08016b1e 0180 strh r1, [r0]
| 0x08016b20 801c adds r0, r0, 2
| 0x08016b22 0021 movs r1, 0
| 0x08016b24 0180 strh r1, [r0]
| 0x08016b26 801c adds r0, r0, 2
\ 0x08016b28 7047 bx lr
/ (fcn) func_16b34 190
| func_16b34 ();
| 0x08016b34 e0b5 push {r5, r6, r7, lr}
| 0x08016b36 dff82c0a ldr.w r0, [0x0801756a] ; [0x8017568:4]=0x2001cb9a md380_menu_edit_buf
| 0x08016b3a 0021 movs r1, 0
| 0x08016b3c 0170 strb r1, [r0]
| 0x08016b3e 2d48 ldr r0, [0x08016bf6] ; [0x8016bf4:4]=0x200049fc mn_editbuffer_poi
| 0x08016b40 dff8241a ldr.w r1, [0x0801756c] ; [0x801756c:4]=0x2001e2dc
| 0x08016b44 0160 str r1, [r0]
| 0x08016b46 0020 movs r0, 0
| ,=< 0x08016b48 0ce0 b 0x8016b64
| .--> 0x08016b4a 40b2 sxtb r0, r0
| || 0x08016b4c 2949 ldr r1, [0x08016bf4] ; [0x8016bf4:4]=0x200049fc mn_editbuffer_poi
| || 0x08016b4e 0968 ldr r1, [r1]
| || 0x08016b50 0022 movs r2, 0
| || 0x08016b52 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x08016b56 40b2 sxtb r0, r0
| || 0x08016b58 dff8101a ldr.w r1, [0x08017570] ; [0x8017570:4]=0x2001e943 md380_menu_max_chars
| || 0x08016b5c 0022 movs r2, 0
| || 0x08016b5e 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x08016b62 401c adds r0, r0, 1
| |`-> 0x08016b64 40b2 sxtb r0, r0
| | 0x08016b66 0928 cmp r0, 9 ; 9
| `==< 0x08016b68 efdb blt 0x8016b4a
| 0x08016b6a dff8040a ldr.w r0, [0x08017576] ; [0x8017574:4]=0x2001e944 md380_menu_cursor_pos_1
| 0x08016b6e 0821 movs r1, 8 ; 8
| 0x08016b70 0170 strb r1, [r0]
| 0x08016b72 dff8000a ldr.w r0, [0x0801757a] ; [0x8017578:4]=0x2001e945 md380_menu_cursor_pos_2
| 0x08016b76 0021 movs r1, 0
| 0x08016b78 0170 strb r1, [r0]
| 0x08016b7a dff8fc09 ldr.w r0, [0x0801757e] ; [0x801757c:4]=0x2001e947 md380_menu_0x2001d3f1
| 0x08016b7e 0021 movs r1, 0
| 0x08016b80 0170 strb r1, [r0]
| 0x08016b82 dff8f809 ldr.w r0, [0x08017582] ; [0x8017580:4]=0x2001e946 md380_menu_field_type
| 0x08016b86 0021 movs r1, 0
| 0x08016b88 0170 strb r1, [r0]
| 0x08016b8a dff8f409 ldr.w r0, [0x08017586] ; [0x8017584:4]=0x8016c01
| 0x08016b8e 0321 movs r1, 3 ; 3
| 0x08016b90 0170 strb r1, [r0]
| 0x08016b92 1948 ldr r0, [0x08016bfa] ; [0x8016bf8:4]=0x20004acc md380_menu_depth
| 0x08016b94 0078 ldrb r0, [r0]
| 0x08016b96 0c21 movs r1, 0xc ; 12
| 0x08016b98 184a ldr r2, [0x08016bfc] ; [0x8016bfc:4]=0x2001d5cc md380_menu_memory
| 0x08016b9a 01fb0020 mla r0, r1, r0, r2
| 0x08016b9e 0c30 adds r0, 0xc
| 0x08016ba0 dff8f814 ldr.w r1, [0x080170a0] ; [0x80170a0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08016ba4 0968 ldr r1, [r1]
| 0x08016ba6 dff8f824 ldr.w r2, [0x080170a6] ; [0x80170a4:4]=0x2001b274 md380_menu_mem_base
| 0x08016baa 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08016bae d1f88011 ldr.w r1, [r1, 0x180]
| 0x08016bb2 0160 str r1, [r0]
| 0x08016bb4 3249 ldr r1, [0x08016c80] ; [0x8016c80:4]=0x2001e915 md380_menu_id
| 0x08016bb6 0978 ldrb r1, [r1]
| 0x08016bb8 1422 movs r2, 0x14 ; 20
| 0x08016bba dff8e834 ldr.w r3, [0x080170aa] ; [0x80170a8:4]=0x8016a25
| 0x08016bbe 02fb0131 mla r1, r2, r1, r3
| 0x08016bc2 4160 str r1, [r0, 4]
| 0x08016bc4 0121 movs r1, 1 ; 1
| 0x08016bc6 0172 strb r1, [r0, 8]
| 0x08016bc8 0021 movs r1, 0
| 0x08016bca 4172 strb r1, [r0, 9]
| 0x08016bcc 0021 movs r1, 0
| 0x08016bce 4181 strh r1, [r0, 0xa]
| 0x08016bd0 0120 movs r0, 1 ; 1
| 0x08016bd2 0290 str r0, [sp, 8]
| 0x08016bd4 0020 movs r0, 0
| 0x08016bd6 0190 str r0, [sp, 4]
| 0x08016bd8 8120 movs r0, 0x81 ; 129
| 0x08016bda 0090 str r0, [sp]
| 0x08016bdc dff8a439 ldr.w r3, [0x08017588] ; [0x8017588:4]=0x8016ca5
| 0x08016be0 dff8a429 ldr.w r2, [0x0801758c] ; [0x801758c:4]=0x2001e890 kb_keycode
| 0x08016be4 0348 ldr r0, [0x08016bf4] ; [0x8016bf4:4]=0x200049fc mn_editbuffer_poi
| 0x08016be6 0168 ldr r1, [r0]
| 0x08016be8 2548 ldr r0, [0x08016c80] ; [0x8016c80:4]=0x2001e915 md380_menu_id
| 0x08016bea 0078 ldrb r0, [r0]
| 0x08016bec f5f79ffd bl md380_create_menu_entry
\ 0x08016bf0 07bd pop {r0, r1, r2, pc}
/ (fcn) func_16c00 126
| func_16c00 ();
| 0x08016c00 80b5 push {r7, lr}
| 0x08016c02 dff88809 ldr.w r0, [0x08017592] ; [0x8017590:4]=0x2001e932
| 0x08016c06 0078 ldrb r0, [r0]
| 0x08016c08 07f0a8f8 bl often_called_something_keycode_menu
| 0x08016c0c 0028 cmp r0, 0
| ,=< 0x08016c0e 03d0 beq 0x8016c18
| | 0x08016c10 dff85009 ldr.w r0, [0x08017568] ; [0x8017568:4]=0x2001cb9a md380_menu_edit_buf
| | 0x08016c14 0121 movs r1, 1 ; 1
| | 0x08016c16 0170 strb r1, [r0]
| `-> 0x08016c18 dff8540d ldr.w r0, [0x08017974] ; [0x8017974:4]=0x2000b5e0
| 0x08016c1c 0078 ldrb r0, [r0]
| 0x08016c1e 0128 cmp r0, 1 ; 1
| ,=< 0x08016c20 2cd1 bne 0x8016c7c
| | 0x08016c22 dff84c09 ldr.w r0, [0x08017576] ; [0x8017574:4]=0x2001e944 md380_menu_cursor_pos_1
| | 0x08016c26 0821 movs r1, 8 ; 8
| | 0x08016c28 0170 strb r1, [r0]
| | 0x08016c2a dff84809 ldr.w r0, [0x0801757a] ; [0x8017578:4]=0x2001e945 md380_menu_cursor_pos_2
| | 0x08016c2e dff86019 ldr.w r1, [0x08017596] ; [0x8017594:4]=0x2001e933
| | 0x08016c32 0978 ldrb r1, [r1]
| | 0x08016c34 0170 strb r1, [r0]
| | 0x08016c36 dff84009 ldr.w r0, [0x0801757e] ; [0x801757c:4]=0x2001e947 md380_menu_0x2001d3f1
| | 0x08016c3a dff85819 ldr.w r1, [0x0801759a] ; [0x8017598:4]=0x200049fc mn_editbuffer_poi
| | 0x08016c3e 0978 ldrb r1, [r1]
| | 0x08016c40 0170 strb r1, [r0]
| | 0x08016c42 dff83809 ldr.w r0, [0x08017582] ; [0x8017580:4]=0x2001e946 md380_menu_field_type
| | 0x08016c46 0021 movs r1, 0
| | 0x08016c48 0170 strb r1, [r0]
| | 0x08016c4a dff83409 ldr.w r0, [0x08017586] ; [0x8017584:4]=0x8016c01
| | 0x08016c4e 0321 movs r1, 3 ; 3
| | 0x08016c50 0170 strb r1, [r0]
| | 0x08016c52 0020 movs r0, 0
| ,==< 0x08016c54 0be0 b 0x8016c6e
| .---> 0x08016c56 c0b2 uxtb r0, r0
| ||| 0x08016c58 dff83c19 ldr.w r1, [0x0801759c] ; [0x801759c:4]=0x2001e82a
| ||| 0x08016c5c 0968 ldr r1, [r1]
| ||| 0x08016c5e c0b2 uxtb r0, r0
| ||| 0x08016c60 dff80829 ldr.w r2, [0x08017570] ; [0x8017570:4]=0x2001e943 md380_menu_max_chars
| ||| 0x08016c64 32f81020 ldrh.w r2, [r2, r0, lsl 1]
| ||| 0x08016c68 21f81020 strh.w r2, [r1, r0, lsl 1]
| ||| 0x08016c6c 401c adds r0, r0, 1
| |`--> 0x08016c6e c0b2 uxtb r0, r0
| | | 0x08016c70 1028 cmp r0, 0x10 ; 16
| `===< 0x08016c72 f0d3 blo 0x8016c56
| | 0x08016c74 dff8f80c ldr.w r0, [0x08017974] ; [0x8017974:4]=0x2000b5e0
| | 0x08016c78 0021 movs r1, 0
| | 0x08016c7a 0170 strb r1, [r0]
\ `-> 0x08016c7c 01bd pop {r0, pc}
/ (fcn) func_16ca4 828
| func_16ca4 ();
| 0x08016ca4 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x08016ca8 91b0 sub sp, 0x44 ; 'D'
| 0x08016caa 0025 movs r5, 0
| 0x08016cac 0024 movs r4, 0
| 0x08016cae dff8ec08 ldr.w r0, [0x080175a2] ; [0x80175a0:4]=0x2001e830
| 0x08016cb2 b0f90000 ldrsh.w r0, [r0]
| 0x08016cb6 05f08dfe bl gfx_1c9d4
| 0x08016cba dff8e008 ldr.w r0, [0x080175a2] ; [0x80175a0:4]=0x2001e830
| 0x08016cbe 0021 movs r1, 0
| 0x08016cc0 0180 strh r1, [r0]
| 0x08016cc2 dff8d408 ldr.w r0, [0x0801759e] ; [0x801759c:4]=0x2001e82a
| 0x08016cc6 0168 ldr r1, [r0]
| 0x08016cc8 03a8 add r0, sp, 0xc
| 0x08016cca 10f0c4fc bl msg_convert
| 0x08016cce 0178 ldrb r1, [r0]
| 0x08016cd0 c9b2 uxtb r1, r1
| 0x08016cd2 0c43 orrs r4, r1
| 0x08016cd4 0168 ldr r1, [r0]
| 0x08016cd6 11f47f41 ands r1, r1, 0xff00
| 0x08016cda 0c43 orrs r4, r1
| 0x08016cdc 0168 ldr r1, [r0]
| 0x08016cde 11f47f01 ands r1, r1, 0xff0000
| 0x08016ce2 0c43 orrs r4, r1
| 0x08016ce4 0068 ldr r0, [r0]
| 0x08016ce6 10f07060 ands r0, r0, 0xf000000
| 0x08016cea 0443 orrs r4, r0
| 0x08016cec 0020 movs r0, 0
| ,=< 0x08016cee 00e0 b 0x8016cf2
| ..--> 0x08016cf0 401c adds r0, r0, 1
| ||`-> 0x08016cf2 40b2 sxtb r0, r0
| || 0x08016cf4 0828 cmp r0, 8 ; 8
| ||,=< 0x08016cf6 10da bge 0x8016d1a
| ||| 0x08016cf8 40b2 sxtb r0, r0
| ||| 0x08016cfa dff89c18 ldr.w r1, [0x0801759e] ; [0x801759c:4]=0x2001e82a
| ||| 0x08016cfe 0968 ldr r1, [r1]
| ||| 0x08016d00 31f81010 ldrh.w r1, [r1, r0, lsl 1]
| ||| 0x08016d04 3029 cmp r1, 0x30 ; '0' ; 48
| `===< 0x08016d06 f3d0 beq 0x8016cf0
| || 0x08016d08 40b2 sxtb r0, r0
| || 0x08016d0a dff88c18 ldr.w r1, [0x0801759e] ; [0x801759c:4]=0x2001e82a
| || 0x08016d0e 0968 ldr r1, [r1]
| || 0x08016d10 31f81010 ldrh.w r1, [r1, r0, lsl 1]
| || 0x08016d14 0029 cmp r1, 0
| `==< 0x08016d16 ebd0 beq 0x8016cf0
| | 0x08016d18 0125 movs r5, 1 ; 1
| `-> 0x08016d1a dff84c68 ldr.w r6, [0x0801756e] ; [0x801756c:4]=0x2001e2dc
| 0x08016d1e 0027 movs r7, 0
| ,=< 0x08016d20 00e0 b 0x8016d24
| .--> 0x08016d22 7f1c adds r7, r7, 1
| |`-> 0x08016d24 dff87808 ldr.w r0, [0x080175a4] ; [0x80175a4:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x08016d28 0088 ldrh r0, [r0]
| | 0x08016d2a bfb2 uxth r7, r7
| | 0x08016d2c 8742 cmp r7, r0
| |,=< 0x08016d2e 6dd2 bhs 0x8016e0c
| || 0x08016d30 0df11008 add.w r8, sp, 0x10
| || 0x08016d34 5ff00009 movs.w sb, 0
| || 0x08016d38 781c adds r0, r7, 1
| || 0x08016d3a 80b2 uxth r0, r0
| || 0x08016d3c faf7dafc bl func_116f4
| || 0x08016d40 80b2 uxth r0, r0
| || 0x08016d42 0028 cmp r0, 0
| ,===< 0x08016d44 02d1 bne 0x8016d4c
| ||| 0x08016d46 0120 movs r0, 1 ; 1
| ||| 0x08016d48 faf7d4fc bl func_116f4
| `---> 0x08016d4c 80b2 uxth r0, r0
| || 0x08016d4e 0bf044fe bl func_229da
| || 0x08016d52 4146 mov r1, r8
| || 0x08016d54 dff84c08 ldr.w r0, [0x080175a8] ; [0x80175a8:4]=0x20004acc md380_menu_depth
| || 0x08016d58 0068 ldr r0, [r0]
| || 0x08016d5a 0002 lsls r0, r0, 8
| || 0x08016d5c 000a lsrs r0, r0, 8
| || 0x08016d5e 10f03dfc bl func_275dc
| || 0x08016d62 c0b2 uxtb r0, r0
| || 0x08016d64 18eb4008 adds.w r8, r8, r0, lsl 1
| || 0x08016d68 0020 movs r0, 0
| || 0x08016d6a a8f80000 strh.w r0, [r8]
| || 0x08016d6e 18f10208 adds.w r8, r8, 2
| || 0x08016d72 04a8 add r0, sp, 0x10
| || 0x08016d74 5ff00009 movs.w sb, 0
| ,===< 0x08016d78 02e0 b 0x8016d80
| .----> 0x08016d7a 801c adds r0, r0, 2
| |||| 0x08016d7c 19f10109 adds.w sb, sb, 1
| .-`---> 0x08016d80 0188 ldrh r1, [r0]
| || || 0x08016d82 1ffa89f9 uxth.w sb, sb
| || || 0x08016d86 36f81920 ldrh.w r2, [r6, sb, lsl 1]
| || || 0x08016d8a 9142 cmp r1, r2
| || `==< 0x08016d8c c9d1 bne 0x8016d22
| || | 0x08016d8e 0188 ldrh r1, [r0]
| || | 0x08016d90 0029 cmp r1, 0
| |`====< 0x08016d92 f2d1 bne 0x8016d7a
| | | 0x08016d94 1ffa89f9 uxth.w sb, sb
| | | 0x08016d98 36f81910 ldrh.w r1, [r6, sb, lsl 1]
| | | 0x08016d9c 0029 cmp r1, 0
| `=====< 0x08016d9e efd1 bne 0x8016d80
| | 0x08016da0 dff80408 ldr.w r0, [0x080175ac] ; [0x80175ac:4]=0x2001d5cc md380_menu_memory
| | 0x08016da4 0078 ldrb r0, [r0]
| | 0x08016da6 0c21 movs r1, 0xc ; 12
| | 0x08016da8 dff80028 ldr.w r2, [0x080175b0] ; [0x80175b0:4]=0xfffce0
| | 0x08016dac 01fb0020 mla r0, r1, r0, r2
| | 0x08016db0 0c30 adds r0, 0xc
| | 0x08016db2 ba49 ldr r1, [0x0801709e] ; [0x801709c:4]=0x2001e6ec
| | 0x08016db4 0968 ldr r1, [r1]
| | 0x08016db6 ba4a ldr r2, [0x080170a2] ; [0x80170a0:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08016db8 12eb8101 adds.w r1, r2, r1, lsl 2
| | 0x08016dbc d1f8b812 ldr.w r1, [r1, 0x2b8]
| | 0x08016dc0 0160 str r1, [r0]
| | 0x08016dc2 dff8741d ldr.w r1, [0x08017b3e] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| | 0x08016dc6 0978 ldrb r1, [r1]
| | 0x08016dc8 1422 movs r2, 0x14 ; 20
| | 0x08016dca b64b ldr r3, [0x080170a6] ; [0x80170a4:4]=0x2001b274 md380_menu_mem_base
| | 0x08016dcc 02fb0131 mla r1, r2, r1, r3
| | 0x08016dd0 4160 str r1, [r0, 4]
| | 0x08016dd2 0121 movs r1, 1 ; 1
| | 0x08016dd4 0172 strb r1, [r0, 8]
| | 0x08016dd6 0021 movs r1, 0
| | 0x08016dd8 4172 strb r1, [r0, 9]
| | 0x08016dda 0021 movs r1, 0
| | 0x08016ddc 4181 strh r1, [r0, 0xa]
| | 0x08016dde 0120 movs r0, 1 ; 1
| | 0x08016de0 0290 str r0, [sp, 8]
| | 0x08016de2 0120 movs r0, 1 ; 1
| | 0x08016de4 0190 str r0, [sp, 4]
| | 0x08016de6 0620 movs r0, 6 ; 6
| | 0x08016de8 0090 str r0, [sp]
| | 0x08016dea dff88436 ldr.w r3, [0x08017476] ; [0x8017474:4]=0x2001db0c
| | 0x08016dee dff88026 ldr.w r2, [0x08017476] ; [0x8017474:4]=0x2001db0c
| | 0x08016df2 aa48 ldr r0, [0x0801709e] ; [0x801709c:4]=0x2001e6ec
| | 0x08016df4 0068 ldr r0, [r0]
| | 0x08016df6 aa49 ldr r1, [0x080170a2] ; [0x80170a0:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08016df8 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08016dfc d0f83413 ldr.w r1, [r0, 0x334]
| | 0x08016e00 dff8340d ldr.w r0, [0x08017b3c] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| | 0x08016e04 0078 ldrb r0, [r0]
| | 0x08016e06 f5f792fc bl md380_create_menu_entry
| ,==< 0x08016e0a e6e0 b 0x8016fda
| |`-> 0x08016e0c dff88807 ldr.w r0, [0x0801759c] ; [0x801759c:4]=0x2001e82a
| | 0x08016e10 0068 ldr r0, [r0]
| | 0x08016e12 0088 ldrh r0, [r0]
| | 0x08016e14 0028 cmp r0, 0
| |,=< 0x08016e16 06d0 beq 0x8016e26
| || 0x08016e18 6db2 sxtb r5, r5
| || 0x08016e1a 002d cmp r5, 0
| ,===< 0x08016e1c 03d0 beq 0x8016e26
| ||| 0x08016e1e dff89007 ldr.w r0, [0x080175b6] ; [0x80175b4:4]=0xb085b5f0
| ||| 0x08016e22 8442 cmp r4, r0
| ,====< 0x08016e24 5dd3 blo 0x8016ee2
| |`-`-> 0x08016e26 dff88007 ldr.w r0, [0x080175ae] ; [0x80175ac:4]=0x2001d5cc md380_menu_memory
| | | 0x08016e2a 0078 ldrb r0, [r0]
| | | 0x08016e2c 0c21 movs r1, 0xc ; 12
| | | 0x08016e2e dff87c27 ldr.w r2, [0x080175b2] ; [0x80175b0:4]=0xfffce0
| | | 0x08016e32 01fb0020 mla r0, r1, r0, r2
| | | 0x08016e36 0c30 adds r0, 0xc
| | | 0x08016e38 dff87417 ldr.w r1, [0x080175b4] ; [0x80175b4:4]=0xb085b5f0
| | | 0x08016e3c 8c42 cmp r4, r1
| | |,=< 0x08016e3e 08d3 blo 0x8016e52
| | || 0x08016e40 9649 ldr r1, [0x0801709c] ; [0x801709c:4]=0x2001e6ec
| | || 0x08016e42 0968 ldr r1, [r1]
| | || 0x08016e44 964a ldr r2, [0x080170a0] ; [0x80170a0:4]=0x20001704 md380_menu_ptr_to_80d032c
| | || 0x08016e46 12eb8101 adds.w r1, r2, r1, lsl 2
| | || 0x08016e4a d1f8b812 ldr.w r1, [r1, 0x2b8]
| | || 0x08016e4e 0160 str r1, [r0]
| |,===< 0x08016e50 07e0 b 0x8016e62
| |||`-> 0x08016e52 9249 ldr r1, [0x0801709e] ; [0x801709c:4]=0x2001e6ec
| ||| 0x08016e54 0968 ldr r1, [r1]
| ||| 0x08016e56 924a ldr r2, [0x080170a2] ; [0x80170a0:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x08016e58 12eb8101 adds.w r1, r2, r1, lsl 2
| ||| 0x08016e5c d1f86812 ldr.w r1, [r1, 0x268]
| ||| 0x08016e60 0160 str r1, [r0]
| |`---> 0x08016e62 dff8d41c ldr.w r1, [0x08017b3e] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| | | 0x08016e66 0978 ldrb r1, [r1]
| | | 0x08016e68 1422 movs r2, 0x14 ; 20
| | | 0x08016e6a 8e4b ldr r3, [0x080170a6] ; [0x80170a4:4]=0x2001b274 md380_menu_mem_base
| | | 0x08016e6c 02fb0131 mla r1, r2, r1, r3
| | | 0x08016e70 4160 str r1, [r0, 4]
| | | 0x08016e72 0121 movs r1, 1 ; 1
| | | 0x08016e74 0172 strb r1, [r0, 8]
| | | 0x08016e76 0021 movs r1, 0
| | | 0x08016e78 4172 strb r1, [r0, 9]
| | | 0x08016e7a 0021 movs r1, 0
| | | 0x08016e7c 4181 strh r1, [r0, 0xa]
| | | 0x08016e7e dff83007 ldr.w r0, [0x080175b6] ; [0x80175b4:4]=0xb085b5f0
| | | 0x08016e82 8442 cmp r4, r0
| | |,=< 0x08016e84 16d3 blo 0x8016eb4
| | || 0x08016e86 0120 movs r0, 1 ; 1
| | || 0x08016e88 0290 str r0, [sp, 8]
| | || 0x08016e8a 0120 movs r0, 1 ; 1
| | || 0x08016e8c 0190 str r0, [sp, 4]
| | || 0x08016e8e 0620 movs r0, 6 ; 6
| | || 0x08016e90 0090 str r0, [sp]
| | || 0x08016e92 dff8dc35 ldr.w r3, [0x08017476] ; [0x8017474:4]=0x2001db0c
| | || 0x08016e96 dff8d825 ldr.w r2, [0x08017476] ; [0x8017474:4]=0x2001db0c
| | || 0x08016e9a 8048 ldr r0, [0x0801709e] ; [0x801709c:4]=0x2001e6ec
| | || 0x08016e9c 0068 ldr r0, [r0]
| | || 0x08016e9e 8049 ldr r1, [0x080170a2] ; [0x80170a0:4]=0x20001704 md380_menu_ptr_to_80d032c
| | || 0x08016ea0 11eb8000 adds.w r0, r1, r0, lsl 2
| | || 0x08016ea4 d0f83c13 ldr.w r1, [r0, 0x33c]
| | || 0x08016ea8 dff88c0c ldr.w r0, [0x08017b3c] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| | || 0x08016eac 0078 ldrb r0, [r0]
| | || 0x08016eae f5f73efc bl md380_create_menu_entry
| |,===< 0x08016eb2 92e0 b 0x8016fda
| |||`-> 0x08016eb4 0120 movs r0, 1 ; 1
| ||| 0x08016eb6 0290 str r0, [sp, 8]
| ||| 0x08016eb8 0120 movs r0, 1 ; 1
| ||| 0x08016eba 0190 str r0, [sp, 4]
| ||| 0x08016ebc 0620 movs r0, 6 ; 6
| ||| 0x08016ebe 0090 str r0, [sp]
| ||| 0x08016ec0 dff8ac35 ldr.w r3, [0x08017474] ; [0x8017474:4]=0x2001db0c
| ||| 0x08016ec4 dff8a825 ldr.w r2, [0x08017474] ; [0x8017474:4]=0x2001db0c
| ||| 0x08016ec8 7448 ldr r0, [0x0801709c] ; [0x801709c:4]=0x2001e6ec
| ||| 0x08016eca 0068 ldr r0, [r0]
| ||| 0x08016ecc 7449 ldr r1, [0x080170a0] ; [0x80170a0:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x08016ece 11eb8000 adds.w r0, r1, r0, lsl 2
| ||| 0x08016ed2 d0f87812 ldr.w r1, [r0, 0x278]
| ||| 0x08016ed6 dff8600c ldr.w r0, [0x08017b3e] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| ||| 0x08016eda 0078 ldrb r0, [r0]
| ||| 0x08016edc f5f727fc bl md380_create_menu_entry
| |||,=< 0x08016ee0 7be0 b 0x8016fda
| `----> 0x08016ee2 dff88006 ldr.w r0, [0x0801756a] ; [0x8017568:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x08016ee6 0021 movs r1, 0
| ||| 0x08016ee8 0170 strb r1, [r0]
| ||| 0x08016eea dff8ac06 ldr.w r0, [0x0801759e] ; [0x801759c:4]=0x2001e82a
| ||| 0x08016eee dff87816 ldr.w r1, [0x0801756e] ; [0x801756c:4]=0x2001e2dc
| ||| 0x08016ef2 0160 str r1, [r0]
| ||| 0x08016ef4 0020 movs r0, 0
| ,====< 0x08016ef6 0be0 b 0x8016f10
| .-----> 0x08016ef8 40b2 sxtb r0, r0
| ||||| 0x08016efa dff89c16 ldr.w r1, [0x0801759e] ; [0x801759c:4]=0x2001e82a
| ||||| 0x08016efe 0968 ldr r1, [r1]
| ||||| 0x08016f00 31f81010 ldrh.w r1, [r1, r0, lsl 1]
| ||||| 0x08016f04 40b2 sxtb r0, r0
| ||||| 0x08016f06 dff86426 ldr.w r2, [0x08017572] ; [0x8017570:4]=0x2001e943 md380_menu_max_chars
| ||||| 0x08016f0a 22f81010 strh.w r1, [r2, r0, lsl 1]
| ||||| 0x08016f0e 401c adds r0, r0, 1
| |`----> 0x08016f10 40b2 sxtb r0, r0
| | ||| 0x08016f12 1028 cmp r0, 0x10 ; 16
| `=====< 0x08016f14 f0db blt 0x8016ef8
| ||| 0x08016f16 dff87806 ldr.w r0, [0x08017596] ; [0x8017594:4]=0x2001e933
| ||| 0x08016f1a dff85816 ldr.w r1, [0x0801757a] ; [0x8017578:4]=0x2001e945 md380_menu_cursor_pos_2
| ||| 0x08016f1e 0978 ldrb r1, [r1]
| ||| 0x08016f20 0170 strb r1, [r0]
| ||| 0x08016f22 dff87006 ldr.w r0, [0x0801759a] ; [0x8017598:4]=0x200049fc mn_editbuffer_poi
| ||| 0x08016f26 dff85016 ldr.w r1, [0x0801757e] ; [0x801757c:4]=0x2001e947 md380_menu_0x2001d3f1
| ||| 0x08016f2a 0978 ldrb r1, [r1]
| ||| 0x08016f2c 0170 strb r1, [r0]
| ||| 0x08016f2e dff8400a ldr.w r0, [0x08017976] ; [0x8017974:4]=0x2000b5e0
| ||| 0x08016f32 0121 movs r1, 1 ; 1
| ||| 0x08016f34 0170 strb r1, [r0]
| ||| 0x08016f36 0020 movs r0, 0
| ,====< 0x08016f38 07e0 b 0x8016f4a
| .-----> 0x08016f3a 40b2 sxtb r0, r0
| ||||| 0x08016f3c dff85816 ldr.w r1, [0x0801759c] ; [0x801759c:4]=0x2001e82a
| ||||| 0x08016f40 0968 ldr r1, [r1]
| ||||| 0x08016f42 0022 movs r2, 0
| ||||| 0x08016f44 21f81020 strh.w r2, [r1, r0, lsl 1]
| ||||| 0x08016f48 401c adds r0, r0, 1
| |`----> 0x08016f4a 40b2 sxtb r0, r0
| | ||| 0x08016f4c 1128 cmp r0, 0x11 ; 17
| `=====< 0x08016f4e f4db blt 0x8016f3a
| ||| 0x08016f50 dff81c06 ldr.w r0, [0x08017574] ; [0x8017574:4]=0x2001e944 md380_menu_cursor_pos_1
| ||| 0x08016f54 1021 movs r1, 0x10 ; 16
| ||| 0x08016f56 0170 strb r1, [r0]
| ||| 0x08016f58 dff81806 ldr.w r0, [0x08017578] ; [0x8017578:4]=0x2001e945 md380_menu_cursor_pos_2
| ||| 0x08016f5c 0021 movs r1, 0
| ||| 0x08016f5e 0170 strb r1, [r0]
| ||| 0x08016f60 dff81406 ldr.w r0, [0x0801757c] ; [0x801757c:4]=0x2001e947 md380_menu_0x2001d3f1
| ||| 0x08016f64 0021 movs r1, 0
| ||| 0x08016f66 0170 strb r1, [r0]
| ||| 0x08016f68 dff81006 ldr.w r0, [0x08017580] ; [0x8017580:4]=0x2001e946 md380_menu_field_type
| ||| 0x08016f6c 0021 movs r1, 0
| ||| 0x08016f6e 0170 strb r1, [r0]
| ||| 0x08016f70 dff80c06 ldr.w r0, [0x08017584] ; [0x8017584:4]=0x8016c01
| ||| 0x08016f74 0121 movs r1, 1 ; 1
| ||| 0x08016f76 0170 strb r1, [r0]
| ||| 0x08016f78 dff82c06 ldr.w r0, [0x080175ac] ; [0x80175ac:4]=0x2001d5cc md380_menu_memory
| ||| 0x08016f7c 0078 ldrb r0, [r0]
| ||| 0x08016f7e 0c21 movs r1, 0xc ; 12
| ||| 0x08016f80 dff82826 ldr.w r2, [0x080175b0] ; [0x80175b0:4]=0xfffce0
| ||| 0x08016f84 01fb0020 mla r0, r1, r0, r2
| ||| 0x08016f88 0c30 adds r0, 0xc
| ||| 0x08016f8a 4449 ldr r1, [0x0801709e] ; [0x801709c:4]=0x2001e6ec
| ||| 0x08016f8c 0968 ldr r1, [r1]
| ||| 0x08016f8e 444a ldr r2, [0x080170a2] ; [0x80170a0:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x08016f90 12eb8101 adds.w r1, r2, r1, lsl 2
| ||| 0x08016f94 d1f88411 ldr.w r1, [r1, 0x184]
| ||| 0x08016f98 0160 str r1, [r0]
| ||| 0x08016f9a dff89c1b ldr.w r1, [0x08017b3e] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| ||| 0x08016f9e 0978 ldrb r1, [r1]
| ||| 0x08016fa0 1422 movs r2, 0x14 ; 20
| ||| 0x08016fa2 404b ldr r3, [0x080170a6] ; [0x80170a4:4]=0x2001b274 md380_menu_mem_base
| ||| 0x08016fa4 02fb0131 mla r1, r2, r1, r3
| ||| 0x08016fa8 4160 str r1, [r0, 4]
| ||| 0x08016faa 0121 movs r1, 1 ; 1
| ||| 0x08016fac 0172 strb r1, [r0, 8]
| ||| 0x08016fae 0021 movs r1, 0
| ||| 0x08016fb0 4172 strb r1, [r0, 9]
| ||| 0x08016fb2 0021 movs r1, 0
| ||| 0x08016fb4 4181 strh r1, [r0, 0xa]
| ||| 0x08016fb6 0120 movs r0, 1 ; 1
| ||| 0x08016fb8 0290 str r0, [sp, 8]
| ||| 0x08016fba 0020 movs r0, 0
| ||| 0x08016fbc 0190 str r0, [sp, 4]
| ||| 0x08016fbe 8120 movs r0, 0x81 ; 129
| ||| 0x08016fc0 0090 str r0, [sp]
| ||| 0x08016fc2 dff8403a ldr.w r3, [0x08017a0a] ; [0x8017a08:4]=0x80170c5
| ||| 0x08016fc6 dff8402a ldr.w r2, [0x08017a0e] ; [0x8017a0c:4]=0x2000b5e0
| ||| 0x08016fca dff8cc05 ldr.w r0, [0x0801759e] ; [0x801759c:4]=0x2001e82a
| ||| 0x08016fce 0168 ldr r1, [r0]
| ||| 0x08016fd0 dff8640b ldr.w r0, [0x08017b3c] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| ||| 0x08016fd4 0078 ldrb r0, [r0]
| ||| 0x08016fd6 f5f7aafb bl md380_create_menu_entry
| ```-> 0x08016fda 11b0 add sp, 0x44
\ 0x08016fdc bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_16fe4 182
| func_16fe4 ();
| 0x08016fe4 00b5 push {lr}
| 0x08016fe6 89b0 sub sp, 0x24 ; '$'
| 0x08016fe8 dff8a005 ldr.w r0, [0x08017590] ; [0x8017590:4]=0x2001e932
| 0x08016fec 0078 ldrb r0, [r0]
| 0x08016fee 06f0b5fe bl often_called_something_keycode_menu
| 0x08016ff2 0028 cmp r0, 0
| ,=< 0x08016ff4 03d0 beq 0x8016ffe
| | 0x08016ff6 dff86c05 ldr.w r0, [0x0801756a] ; [0x8017568:4]=0x2001cb9a md380_menu_edit_buf
| | 0x08016ffa 0121 movs r1, 1 ; 1
| | 0x08016ffc 0170 strb r1, [r0]
| `-> 0x08016ffe dff89c0a ldr.w r0, [0x08017aa2] ; [0x8017aa0:4]=0x2001e700 menu_memory_poi
| 0x08017002 0078 ldrb r0, [r0]
| 0x08017004 0128 cmp r0, 1 ; 1
| ,=< 0x08017006 0cd0 beq 0x8017022
| | 0x08017008 dff8940a ldr.w r0, [0x08017aa4] ; [0x8017aa4:4]=0x2001e5f4
| | 0x0801700c 0068 ldr r0, [r0]
| | 0x0801700e 0068 ldr r0, [r0]
| | 0x08017010 2249 ldr r1, [0x0801709c] ; [0x801709c:4]=0x2001e6ec
| | 0x08017012 0968 ldr r1, [r1]
| | 0x08017014 224a ldr r2, [0x080170a0] ; [0x80170a0:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08017016 12eb8101 adds.w r1, r2, r1, lsl 2
| | 0x0801701a d1f88811 ldr.w r1, [r1, 0x188]
| | 0x0801701e 8842 cmp r0, r1
| ,==< 0x08017020 39d1 bne 0x8017096
| |`-> 0x08017022 dff87405 ldr.w r0, [0x0801759e] ; [0x801759c:4]=0x2001e82a
| | 0x08017026 0068 ldr r0, [r0]
| | 0x08017028 0088 ldrh r0, [r0]
| | 0x0801702a 0028 cmp r0, 0
| |,=< 0x0801702c 33d0 beq 0x8017096
| || 0x0801702e dff8740a ldr.w r0, [0x08017aaa] ; [0x8017aa8:4]=0x2000b5e0
| || 0x08017032 0078 ldrb r0, [r0]
| || 0x08017034 50f00100 orrs r0, r0, 1
| || 0x08017038 dff8681a ldr.w r1, [0x08017aa8] ; [0x8017aa8:4]=0x2000b5e0
| || 0x0801703c 0870 strb r0, [r1]
| || 0x0801703e dff85805 ldr.w r0, [0x0801759e] ; [0x801759c:4]=0x2001e82a
| || 0x08017042 0168 ldr r1, [r0]
| || 0x08017044 00a8 add r0, sp, 0
| || 0x08017046 10f006fb bl msg_convert
| || 0x0801704a 0020 movs r0, 0
| ,===< 0x0801704c 05e0 b 0x801705a
| .----> 0x0801704e c0b2 uxtb r0, r0
| |||| 0x08017050 dff85015 ldr.w r1, [0x080175a8] ; [0x80175a8:4]=0x20004acc md380_menu_depth
| |||| 0x08017054 0022 movs r2, 0
| |||| 0x08017056 4254 strb r2, [r0, r1]
| |||| 0x08017058 401c adds r0, r0, 1
| |`---> 0x0801705a c0b2 uxtb r0, r0
| | || 0x0801705c 2428 cmp r0, 0x24 ; '$' ; 36
| `====< 0x0801705e f6d3 blo 0x801704e
| || 0x08017060 0020 movs r0, 0
| ,===< 0x08017062 07e0 b 0x8017074
| .----> 0x08017064 c0b2 uxtb r0, r0
| |||| 0x08017066 dff83c15 ldr.w r1, [0x080175aa] ; [0x80175a8:4]=0x20004acc md380_menu_depth
| |||| 0x0801706a c0b2 uxtb r0, r0
| |||| 0x0801706c 00aa add r2, sp, 0
| |||| 0x0801706e 825c ldrb r2, [r0, r2]
| |||| 0x08017070 4254 strb r2, [r0, r1]
| |||| 0x08017072 401c adds r0, r0, 1
| |`---> 0x08017074 c0b2 uxtb r0, r0
| | || 0x08017076 0328 cmp r0, 3 ; 3
| `====< 0x08017078 f4d3 blo 0x8017064
| || 0x0801707a dff82805 ldr.w r0, [0x080175aa] ; [0x80175a8:4]=0x20004acc md380_menu_depth
| || 0x0801707e c078 ldrb r0, [r0, 3]
| || 0x08017080 50f00200 orrs r0, r0, 2
| || 0x08017084 dff81c15 ldr.w r1, [0x080175a8] ; [0x80175a8:4]=0x20004acc md380_menu_depth
| || 0x08017088 c870 strb r0, [r1, 3]
| || 0x0801708a dff81805 ldr.w r0, [0x080175aa] ; [0x80175a8:4]=0x20004acc md380_menu_depth
| || 0x0801708e dff81415 ldr.w r1, [0x080175aa] ; [0x80175a8:4]=0x20004acc md380_menu_depth
| || 0x08017092 c978 ldrb r1, [r1, 3]
| || 0x08017094 c170 strb r1, [r0, 3]
| ``-> 0x08017096 09b0 add sp, 0x24
\ 0x08017098 00bd pop {pc}
/ (fcn) func_170c4 448
| func_170c4 ();
| 0x080170c4 70b5 push {r4, r5, r6, lr}
| 0x080170c6 84b0 sub sp, 0x10
| 0x080170c8 0024 movs r4, 0
| ,=< 0x080170ca 00e0 b 0x80170ce
| .--> 0x080170cc 641c adds r4, r4, 1
| |`-> 0x080170ce dff8d004 ldr.w r0, [0x080175a6] ; [0x80175a4:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x080170d2 0088 ldrh r0, [r0]
| | 0x080170d4 a4b2 uxth r4, r4
| | 0x080170d6 8442 cmp r4, r0
| |,=< 0x080170d8 52d2 bhs 0x8017180
| || 0x080170da 601c adds r0, r4, 1
| || 0x080170dc 80b2 uxth r0, r0
| || 0x080170de faf709fb bl func_116f4
| || 0x080170e2 80b2 uxth r0, r0
| || 0x080170e4 0bf079fc bl func_229da
| || 0x080170e8 dff8505a ldr.w r5, [0x08017b40] ; [0x8017b40:4]=0x2001e6ec
| || 0x080170ec dff87864 ldr.w r6, [0x0801756c] ; [0x801756c:4]=0x2001e2dc
| ,===< 0x080170f0 01e0 b 0x80170f6
| .----> 0x080170f2 ad1c adds r5, r5, 2
| |||| 0x080170f4 b61c adds r6, r6, 2
| .-`---> 0x080170f6 3188 ldrh r1, [r6]
| || || 0x080170f8 2888 ldrh r0, [r5]
| || || 0x080170fa 1af001fc bl func_31900
| || || 0x080170fe 0028 cmp r0, 0
| || `==< 0x08017100 e4d1 bne 0x80170cc
| || | 0x08017102 2888 ldrh r0, [r5]
| || | 0x08017104 0028 cmp r0, 0
| |`====< 0x08017106 f4d1 bne 0x80170f2
| | | 0x08017108 3088 ldrh r0, [r6]
| | | 0x0801710a 0028 cmp r0, 0
| `=====< 0x0801710c f3d1 bne 0x80170f6
| | 0x0801710e dff89804 ldr.w r0, [0x080175ae] ; [0x80175ac:4]=0x2001d5cc md380_menu_memory
| | 0x08017112 0078 ldrb r0, [r0]
| | 0x08017114 0c21 movs r1, 0xc ; 12
| | 0x08017116 dff89424 ldr.w r2, [0x080175b2] ; [0x80175b0:4]=0xfffce0
| | 0x0801711a 01fb0020 mla r0, r1, r0, r2
| | 0x0801711e 0c30 adds r0, 0xc
| | 0x08017120 dff81c1a ldr.w r1, [0x08017b44] ; [0x8017b44:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08017124 0968 ldr r1, [r1]
| | 0x08017126 dff81c2a ldr.w r2, [0x08017b4a] ; [0x8017b48:4]=0x2000b5e0
| | 0x0801712a 12eb8101 adds.w r1, r2, r1, lsl 2
| | 0x0801712e d1f83813 ldr.w r1, [r1, 0x338]
| | 0x08017132 0160 str r1, [r0]
| | 0x08017134 dff8001a ldr.w r1, [0x08017b3c] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| | 0x08017138 0978 ldrb r1, [r1]
| | 0x0801713a 1422 movs r2, 0x14 ; 20
| | 0x0801713c dff83c3b ldr.w r3, [0x08017c80] ; [0x8017c80:4]=0x801733b
| | 0x08017140 02fb0131 mla r1, r2, r1, r3
| | 0x08017144 4160 str r1, [r0, 4]
| | 0x08017146 0121 movs r1, 1 ; 1
| | 0x08017148 0172 strb r1, [r0, 8]
| | 0x0801714a 0021 movs r1, 0
| | 0x0801714c 4172 strb r1, [r0, 9]
| | 0x0801714e 0021 movs r1, 0
| | 0x08017150 4181 strh r1, [r0, 0xa]
| | 0x08017152 0120 movs r0, 1 ; 1
| | 0x08017154 0290 str r0, [sp, 8]
| | 0x08017156 0120 movs r0, 1 ; 1
| | 0x08017158 0190 str r0, [sp, 4]
| | 0x0801715a 0620 movs r0, 6 ; 6
| | 0x0801715c 0090 str r0, [sp]
| | 0x0801715e c44b ldr r3, [0x08017472] ; [0x8017470:4]=0x800fc85 menu_entry_back_1
| | 0x08017160 c34a ldr r2, [0x08017470] ; [0x8017470:4]=0x800fc85 menu_entry_back_1
| | 0x08017162 dff8dc09 ldr.w r0, [0x08017b46] ; [0x8017b44:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08017166 0068 ldr r0, [r0]
| | 0x08017168 dff8d819 ldr.w r1, [0x08017b48] ; [0x8017b48:4]=0x2000b5e0
| | 0x0801716c 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08017170 d0f83413 ldr.w r1, [r0, 0x334]
| | 0x08017174 dff8c009 ldr.w r0, [0x08017b3c] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| | 0x08017178 0078 ldrb r0, [r0]
| | 0x0801717a f5f7d8fa bl md380_create_menu_entry
| ,==< 0x0801717e 80e0 b 0x8017282
| |`-> 0x08017180 dff81404 ldr.w r0, [0x0801759c] ; [0x801759c:4]=0x2001e82a
| | 0x08017184 0068 ldr r0, [r0]
| | 0x08017186 0088 ldrh r0, [r0]
| | 0x08017188 0028 cmp r0, 0
| |,=< 0x0801718a 38d1 bne 0x80171fe
| || 0x0801718c dff81804 ldr.w r0, [0x080175ac] ; [0x80175ac:4]=0x2001d5cc md380_menu_memory
| || 0x08017190 0078 ldrb r0, [r0]
| || 0x08017192 0c21 movs r1, 0xc ; 12
| || 0x08017194 dff81424 ldr.w r2, [0x080175b0] ; [0x80175b0:4]=0xfffce0
| || 0x08017198 01fb0020 mla r0, r1, r0, r2
| || 0x0801719c 0c30 adds r0, 0xc
| || 0x0801719e dff8a019 ldr.w r1, [0x08017b46] ; [0x8017b44:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x080171a2 0968 ldr r1, [r1]
| || 0x080171a4 dff89c29 ldr.w r2, [0x08017b48] ; [0x8017b48:4]=0x2000b5e0
| || 0x080171a8 12eb8101 adds.w r1, r2, r1, lsl 2
| || 0x080171ac d1f86812 ldr.w r1, [r1, 0x268]
| || 0x080171b0 0160 str r1, [r0]
| || 0x080171b2 dff88419 ldr.w r1, [0x08017b3e] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| || 0x080171b6 0978 ldrb r1, [r1]
| || 0x080171b8 1422 movs r2, 0x14 ; 20
| || 0x080171ba dff8c03a ldr.w r3, [0x08017c82] ; [0x8017c80:4]=0x801733b
| || 0x080171be 02fb0131 mla r1, r2, r1, r3
| || 0x080171c2 4160 str r1, [r0, 4]
| || 0x080171c4 0121 movs r1, 1 ; 1
| || 0x080171c6 0172 strb r1, [r0, 8]
| || 0x080171c8 0021 movs r1, 0
| || 0x080171ca 4172 strb r1, [r0, 9]
| || 0x080171cc 0021 movs r1, 0
| || 0x080171ce 4181 strh r1, [r0, 0xa]
| || 0x080171d0 0120 movs r0, 1 ; 1
| || 0x080171d2 0290 str r0, [sp, 8]
| || 0x080171d4 0120 movs r0, 1 ; 1
| || 0x080171d6 0190 str r0, [sp, 4]
| || 0x080171d8 0620 movs r0, 6 ; 6
| || 0x080171da 0090 str r0, [sp]
| || 0x080171dc a44b ldr r3, [0x08017470] ; [0x8017470:4]=0x800fc85 menu_entry_back_1
| || 0x080171de a44a ldr r2, [0x08017472] ; [0x8017470:4]=0x800fc85 menu_entry_back_1
| || 0x080171e0 dff85c09 ldr.w r0, [0x08017b44] ; [0x8017b44:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x080171e4 0068 ldr r0, [r0]
| || 0x080171e6 dff85c19 ldr.w r1, [0x08017b4a] ; [0x8017b48:4]=0x2000b5e0
| || 0x080171ea 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x080171ee d0f83813 ldr.w r1, [r0, 0x338]
| || 0x080171f2 dff84409 ldr.w r0, [0x08017b3e] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| || 0x080171f6 0078 ldrb r0, [r0]
| || 0x080171f8 f5f799fa bl md380_create_menu_entry
| ,===< 0x080171fc 41e0 b 0x8017282
| ||`-> 0x080171fe dff8a803 ldr.w r0, [0x080175ae] ; [0x80175ac:4]=0x2001d5cc md380_menu_memory
| || 0x08017202 0078 ldrb r0, [r0]
| || 0x08017204 0c21 movs r1, 0xc ; 12
| || 0x08017206 dff8a423 ldr.w r2, [0x080175b2] ; [0x80175b0:4]=0xfffce0
| || 0x0801720a 01fb0020 mla r0, r1, r0, r2
| || 0x0801720e 0c30 adds r0, 0xc
| || 0x08017210 dff82c19 ldr.w r1, [0x08017b44] ; [0x8017b44:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x08017214 0968 ldr r1, [r1]
| || 0x08017216 dff82c29 ldr.w r2, [0x08017b4a] ; [0x8017b48:4]=0x2000b5e0
| || 0x0801721a 12eb8101 adds.w r1, r2, r1, lsl 2
| || 0x0801721e 896d ldr r1, [r1, 0x58]
| || 0x08017220 0160 str r1, [r0]
| || 0x08017222 dff81419 ldr.w r1, [0x08017b3e] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| || 0x08017226 0978 ldrb r1, [r1]
| || 0x08017228 1422 movs r2, 0x14 ; 20
| || 0x0801722a dff8503a ldr.w r3, [0x08017c82] ; [0x8017c80:4]=0x801733b
| || 0x0801722e 02fb0131 mla r1, r2, r1, r3
| || 0x08017232 4160 str r1, [r0, 4]
| || 0x08017234 0121 movs r1, 1 ; 1
| || 0x08017236 0172 strb r1, [r0, 8]
| || 0x08017238 0021 movs r1, 0
| || 0x0801723a 4172 strb r1, [r0, 9]
| || 0x0801723c 0021 movs r1, 0
| || 0x0801723e 4181 strh r1, [r0, 0xa]
| || 0x08017240 0b20 movs r0, 0xb ; 11
| || 0x08017242 0290 str r0, [sp, 8]
| || 0x08017244 0020 movs r0, 0
| || 0x08017246 0190 str r0, [sp, 4]
| || 0x08017248 8e20 movs r0, 0x8e ; 142
| || 0x0801724a 0090 str r0, [sp]
| || 0x0801724c dff88c39 ldr.w r3, [0x08017be0] ; [0x8017be0:4]=0x8017289
| || 0x08017250 dff88c29 ldr.w r2, [0x08017be4] ; [0x8017be4:4]=0x2001e0d0 print_buffer
| || 0x08017254 dff88c19 ldr.w r1, [0x08017be8] ; [0x8017be8:4]=0x2000b5e0
| || 0x08017258 dff8dc08 ldr.w r0, [0x08017b3c] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| || 0x0801725c 0078 ldrb r0, [r0]
| || 0x0801725e f5f766fa bl md380_create_menu_entry
| || 0x08017262 0020 movs r0, 0
| ||,=< 0x08017264 0be0 b 0x801727e
| .----> 0x08017266 dff8d018 ldr.w r1, [0x08017b3e] ; [0x8017b3c:4]=0x2001cb58 selected_contact_name_wstring
| |||| 0x0801726a 0978 ldrb r1, [r1]
| |||| 0x0801726c 4118 adds r1, r0, r1
| |||| 0x0801726e 1422 movs r2, 0x14 ; 20
| |||| 0x08017270 dff8083a ldr.w r3, [0x08017c80] ; [0x8017c80:4]=0x801733b
| |||| 0x08017274 02fb0131 mla r1, r2, r1, r3
| |||| 0x08017278 0022 movs r2, 0
| |||| 0x0801727a 0a74 strb r2, [r1, 0x10]
| |||| 0x0801727c 401c adds r0, r0, 1
| |||`-> 0x0801727e 0128 cmp r0, 1 ; 1
| `====< 0x08017280 f1db blt 0x8017266
\ ``--> 0x08017282 7fbd pop {r0, r1, r2, r3, r4, r5, r6, pc}
;-- :
/ (fcn) 1404
| Create_Menu_Entry_RadioSettings ();
| 0x08017cbc 3eb5 push {r1, r2, r3, r4, r5, lr}
| 0x08017cbe 0124 movs r4, 1 ; 1
| 0x08017cc0 dff8340a ldr.w r0, [0x080186fc] ; [0x80186fc:4]=0x2001d5cc md380_menu_memory
| 0x08017cc4 0078 ldrb r0, [r0]
| 0x08017cc6 0c21 movs r1, 0xc ; 12
| 0x08017cc8 dff8302a ldr.w r2, [0x08018700] ; [0x8018700:4]=0x2001e935
| 0x08017ccc 01fb0020 mla r0, r1, r0, r2
| 0x08017cd0 10f10c05 adds.w r5, r0, 0xc
| 0x08017cd4 dff8280a ldr.w r0, [0x08018704] ; [0x8018704:4]=0xf8dfb5e0
| 0x08017cd8 0078 ldrb r0, [r0]
| 0x08017cda 0128 cmp r0, 1 ; 1
| ,=< 0x08017cdc 0ad1 bne 0x8017cf4
| | 0x08017cde dff8ec08 ldr.w r0, [0x080185d2] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08017ce2 0068 ldr r0, [r0]
| | 0x08017ce4 dff8e818 ldr.w r1, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| | 0x08017ce8 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08017cec d0f82001 ldr.w r0, [r0, 0x120]
| | 0x08017cf0 2860 str r0, [r5]
| ,==< 0x08017cf2 04e0 b 0x8017cfe
| |`-> 0x08017cf4 dff8d808 ldr.w r0, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| | 0x08017cf8 d0f82001 ldr.w r0, [r0, 0x120]
| | 0x08017cfc 2860 str r0, [r5]
| `--> 0x08017cfe dff8980a ldr.w r0, [0x0801879e] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08017d02 0078 ldrb r0, [r0]
| 0x08017d04 1421 movs r1, 0x14 ; 20
| 0x08017d06 dff8042e ldr.w r2, [0x08018b12] ; [0x8018b10:4]=0x8018869
| 0x08017d0a 01fb0020 mla r0, r1, r0, r2
| 0x08017d0e 6860 str r0, [r5, 4]
| 0x08017d10 dff8880a ldr.w r0, [0x080187a0] ; [0x80187a0:4]=0x2001e574 md380_program_radio_unprohibited
| 0x08017d14 0078 ldrb r0, [r0]
| 0x08017d16 10f00300 ands r0, r0, 3
| 0x08017d1a 0228 cmp r0, 2 ; 2
| ,=< 0x08017d1c 02d1 bne 0x8017d24
| | 0x08017d1e 1120 movs r0, 0x11 ; 17
| | 0x08017d20 2872 strb r0, [r5, 8]
| ,==< 0x08017d22 01e0 b 0x8017d28
| |`-> 0x08017d24 1020 movs r0, 0x10 ; 16
| | 0x08017d26 2872 strb r0, [r5, 8]
| `--> 0x08017d28 0020 movs r0, 0
| 0x08017d2a 6872 strb r0, [r5, 9]
| 0x08017d2c 0020 movs r0, 0
| 0x08017d2e 6881 strh r0, [r5, 0xa]
| 0x08017d30 dff86c0a ldr.w r0, [0x080187a4] ; [0x80187a4:4]=0x2001e892 gui_opmode3
| 0x08017d34 8078 ldrb r0, [r0, 2]
| 0x08017d36 c0f38010 ubfx r0, r0, 6, 1
| 0x08017d3a c007 lsls r0, r0, 0x1f
| ,=< 0x08017d3c 07d5 bpl 0x8017d4e
| | 0x08017d3e dff8640a ldr.w r0, [0x080187aa] ; [0x80187a8:4]=0x2001e904
| | 0x08017d42 0078 ldrb r0, [r0]
| | 0x08017d44 0028 cmp r0, 0
| ,==< 0x08017d46 02d1 bne 0x8017d4e
| || 0x08017d48 54f00104 orrs r4, r4, 1
| ,===< 0x08017d4c 00e0 b 0x8017d50
| |``-> 0x08017d4e 0024 movs r4, 0
| `---> 0x08017d50 dff8540a ldr.w r0, [0x080187ac] ; [0x80187ac:4]=0x2001e899
| 0x08017d54 0121 movs r1, 1 ; 1
| 0x08017d56 0170 strb r1, [r0]
| 0x08017d58 dff8500a ldr.w r0, [0x080187b0] ; [0x80187b0:4]=0x8019171
| 0x08017d5c 0078 ldrb r0, [r0]
| 0x08017d5e 0128 cmp r0, 1 ; 1
| ,=< 0x08017d60 1ed1 bne 0x8017da0
| | 0x08017d62 dff8380a ldr.w r0, [0x080187a2] ; [0x80187a0:4]=0x2001e574 md380_program_radio_unprohibited
| | 0x08017d66 4078 ldrb r0, [r0, 1]
| | 0x08017d68 c007 lsls r0, r0, 0x1f
| ,==< 0x08017d6a 19d5 bpl 0x8017da0
| || 0x08017d6c e4b2 uxtb r4, r4
| || 0x08017d6e a4b2 uxth r4, r4
| || 0x08017d70 0294 str r4, [sp, 8]
| || 0x08017d72 0020 movs r0, 0
| || 0x08017d74 0190 str r0, [sp, 4]
| || 0x08017d76 9820 movs r0, 0x98 ; 152
| || 0x08017d78 0090 str r0, [sp]
| || 0x08017d7a dff8dc3a ldr.w r3, [0x0801885e] ; [0x801885c:4]=0x8019799
| || 0x08017d7e dff8302a ldr.w r2, [0x080187b6] ; [0x80187b4:4]=0xf8dfb5e0
| || 0x08017d82 dff84808 ldr.w r0, [0x080185d2] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x08017d86 0068 ldr r0, [r0]
| || 0x08017d88 dff84418 ldr.w r1, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| || 0x08017d8c 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x08017d90 d0f88c11 ldr.w r1, [r0, 0x18c]
| || 0x08017d94 dff8000a ldr.w r0, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| || 0x08017d98 0078 ldrb r0, [r0]
| || 0x08017d9a f4f7c8fc bl md380_create_menu_entry
| ,===< 0x08017d9e 18e0 b 0x8017dd2
| |``-> 0x08017da0 e4b2 uxtb r4, r4
| | 0x08017da2 a4b2 uxth r4, r4
| | 0x08017da4 0294 str r4, [sp, 8]
| | 0x08017da6 0020 movs r0, 0
| | 0x08017da8 0190 str r0, [sp, 4]
| | 0x08017daa 1820 movs r0, 0x18 ; 24
| | 0x08017dac 0090 str r0, [sp]
| | 0x08017dae dff8a83a ldr.w r3, [0x0801885e] ; [0x801885c:4]=0x8019799
| | 0x08017db2 dff8fc29 ldr.w r2, [0x080187b6] ; [0x80187b4:4]=0xf8dfb5e0
| | 0x08017db6 dff81408 ldr.w r0, [0x080185d2] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08017dba 0068 ldr r0, [r0]
| | 0x08017dbc dff81018 ldr.w r1, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| | 0x08017dc0 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08017dc4 d0f88c11 ldr.w r1, [r0, 0x18c]
| | 0x08017dc8 dff8cc09 ldr.w r0, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| | 0x08017dcc 0078 ldrb r0, [r0]
| | 0x08017dce f4f7aefc bl md380_create_menu_entry
| `---> 0x08017dd2 dff8cc09 ldr.w r0, [0x080187a6] ; [0x80187a4:4]=0x2001e892 gui_opmode3
| 0x08017dd6 8078 ldrb r0, [r0, 2]
| 0x08017dd8 0006 lsls r0, r0, 0x18
| ,=< 0x08017dda 02d5 bpl 0x8017de2
| | 0x08017ddc 54f00104 orrs r4, r4, 1
| ,==< 0x08017de0 00e0 b 0x8017de4
| |`-> 0x08017de2 0024 movs r4, 0
| `--> 0x08017de4 e4b2 uxtb r4, r4
| 0x08017de6 a4b2 uxth r4, r4
| 0x08017de8 0294 str r4, [sp, 8]
| 0x08017dea 0020 movs r0, 0
| 0x08017dec 0190 str r0, [sp, 4]
| 0x08017dee 9820 movs r0, 0x98 ; 152
| 0x08017df0 0090 str r0, [sp]
| 0x08017df2 dff8643a ldr.w r3, [0x0801885e] ; [0x801885c:4]=0x8019799
| 0x08017df6 dff8642a ldr.w r2, [0x08018862] ; [0x8018860:4]=0x8019c7d
| 0x08017dfa dff8d007 ldr.w r0, [0x080185d2] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08017dfe 0068 ldr r0, [r0]
| 0x08017e00 dff8cc17 ldr.w r1, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| 0x08017e04 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08017e08 d0f89011 ldr.w r1, [r0, 0x190]
| 0x08017e0c dff88809 ldr.w r0, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08017e10 0078 ldrb r0, [r0]
| 0x08017e12 401c adds r0, r0, 1
| 0x08017e14 c0b2 uxtb r0, r0
| 0x08017e16 f4f78afc bl md380_create_menu_entry
| 0x08017e1a dff88409 ldr.w r0, [0x080187a6] ; [0x80187a4:4]=0x2001e892 gui_opmode3
| 0x08017e1e c078 ldrb r0, [r0, 3]
| 0x08017e20 c007 lsls r0, r0, 0x1f
| ,=< 0x08017e22 07d5 bpl 0x8017e34
| | 0x08017e24 dff87c09 ldr.w r0, [0x080187a8] ; [0x80187a8:4]=0x2001e904
| | 0x08017e28 0078 ldrb r0, [r0]
| | 0x08017e2a 0028 cmp r0, 0
| ,==< 0x08017e2c 02d1 bne 0x8017e34
| || 0x08017e2e 54f00104 orrs r4, r4, 1
| ,===< 0x08017e32 00e0 b 0x8017e36
| |``-> 0x08017e34 0024 movs r4, 0
| `---> 0x08017e36 e4b2 uxtb r4, r4
| 0x08017e38 a4b2 uxth r4, r4
| 0x08017e3a 0294 str r4, [sp, 8]
| 0x08017e3c 0020 movs r0, 0
| 0x08017e3e 0190 str r0, [sp, 4]
| 0x08017e40 9820 movs r0, 0x98 ; 152
| 0x08017e42 0090 str r0, [sp]
| 0x08017e44 dff8103a ldr.w r3, [0x0801885c] ; [0x801885c:4]=0x8019799
| 0x08017e48 dff8142a ldr.w r2, [0x08018864] ; [0x8018864:4]=0x8019eb1
| 0x08017e4c dff87c07 ldr.w r0, [0x080185d0] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08017e50 0068 ldr r0, [r0]
| 0x08017e52 dff87c17 ldr.w r1, [0x080185d6] ; [0x80185d4:4]=0x8012b79
| 0x08017e56 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08017e5a d0f89411 ldr.w r1, [r0, 0x194]
| 0x08017e5e dff83809 ldr.w r0, [0x0801879e] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08017e62 0078 ldrb r0, [r0]
| 0x08017e64 801c adds r0, r0, 2
| 0x08017e66 c0b2 uxtb r0, r0
| 0x08017e68 f4f761fc bl md380_create_menu_entry
| 0x08017e6c dff83009 ldr.w r0, [0x080187a4] ; [0x80187a4:4]=0x2001e892 gui_opmode3
| 0x08017e70 c078 ldrb r0, [r0, 3]
| 0x08017e72 c0f34000 ubfx r0, r0, 1, 1
| 0x08017e76 c007 lsls r0, r0, 0x1f
| ,=< 0x08017e78 02d5 bpl 0x8017e80
| | 0x08017e7a 54f00104 orrs r4, r4, 1
| ,==< 0x08017e7e 00e0 b 0x8017e82
| |`-> 0x08017e80 0024 movs r4, 0
| `--> 0x08017e82 e4b2 uxtb r4, r4
| 0x08017e84 a4b2 uxth r4, r4
| 0x08017e86 0294 str r4, [sp, 8]
| 0x08017e88 0020 movs r0, 0
| 0x08017e8a 0190 str r0, [sp, 4]
| 0x08017e8c 9820 movs r0, 0x98 ; 152
| 0x08017e8e 0090 str r0, [sp]
| 0x08017e90 dff8c439 ldr.w r3, [0x0801885c] ; [0x801885c:4]=0x8019799
| 0x08017e94 dff8cc29 ldr.w r2, [menugreen.Clock.8018868] ; [0x8018868:4]=0xf8dfb5e0 LEA menugreen.Clock.8018868 ; menugreen.Clock.8018868
| 0x08017e98 dff83007 ldr.w r0, [0x080185d0] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08017e9c 0068 ldr r0, [r0]
| 0x08017e9e dff83017 ldr.w r1, [0x080185d6] ; [0x80185d4:4]=0x8012b79
| 0x08017ea2 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08017ea6 d0f89811 ldr.w r1, [r0, 0x198]
| 0x08017eaa dff8ec08 ldr.w r0, [0x0801879e] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08017eae 0078 ldrb r0, [r0]
| 0x08017eb0 c01c adds r0, r0, 3
| 0x08017eb2 c0b2 uxtb r0, r0
| 0x08017eb4 f4f73bfc bl md380_create_menu_entry
| 0x08017eb8 dff8e408 ldr.w r0, [0x080187a4] ; [0x80187a4:4]=0x2001e892 gui_opmode3
| 0x08017ebc c078 ldrb r0, [r0, 3]
| 0x08017ebe c0f34010 ubfx r0, r0, 5, 1
| 0x08017ec2 c007 lsls r0, r0, 0x1f
| ,=< 0x08017ec4 07d5 bpl 0x8017ed6
| | 0x08017ec6 dff8dc08 ldr.w r0, [0x080187aa] ; [0x80187a8:4]=0x2001e904
| | 0x08017eca 0078 ldrb r0, [r0]
| | 0x08017ecc 0028 cmp r0, 0
| ,==< 0x08017ece 02d1 bne 0x8017ed6
| || 0x08017ed0 54f00104 orrs r4, r4, 1
| ,===< 0x08017ed4 00e0 b 0x8017ed8
| |``-> 0x08017ed6 0024 movs r4, 0
| `---> 0x08017ed8 e4b2 uxtb r4, r4
| 0x08017eda a4b2 uxth r4, r4
| 0x08017edc 0294 str r4, [sp, 8]
| 0x08017ede 0020 movs r0, 0
| 0x08017ee0 0190 str r0, [sp, 4]
| 0x08017ee2 9820 movs r0, 0x98 ; 152
| 0x08017ee4 0090 str r0, [sp]
| 0x08017ee6 dff87039 ldr.w r3, [0x0801885e] ; [0x801885c:4]=0x8019799
| 0x08017eea dff8442a ldr.w r2, [0x08018936] ; [0x8018934:4]=0x801a4c7
| 0x08017eee dff8dc06 ldr.w r0, [0x080185d2] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08017ef2 0068 ldr r0, [r0]
| 0x08017ef4 dff8d816 ldr.w r1, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| 0x08017ef8 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08017efc d0f86c12 ldr.w r1, [r0, 0x26c]
| 0x08017f00 dff89408 ldr.w r0, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08017f04 0078 ldrb r0, [r0]
| 0x08017f06 001d adds r0, r0, 4
| 0x08017f08 c0b2 uxtb r0, r0
| 0x08017f0a f4f710fc bl md380_create_menu_entry
| 0x08017f0e dff89008 ldr.w r0, [0x080187a6] ; [0x80187a4:4]=0x2001e892 gui_opmode3
| 0x08017f12 c078 ldrb r0, [r0, 3]
| 0x08017f14 c0f38000 ubfx r0, r0, 2, 1
| 0x08017f18 c007 lsls r0, r0, 0x1f
| ,=< 0x08017f1a 02d5 bpl 0x8017f22
| | 0x08017f1c 54f00104 orrs r4, r4, 1
| ,==< 0x08017f20 00e0 b 0x8017f24
| |`-> 0x08017f22 0024 movs r4, 0
| `--> 0x08017f24 e4b2 uxtb r4, r4
| 0x08017f26 a4b2 uxth r4, r4
| 0x08017f28 0294 str r4, [sp, 8]
| 0x08017f2a 0020 movs r0, 0
| 0x08017f2c 0190 str r0, [sp, 4]
| 0x08017f2e 9820 movs r0, 0x98 ; 152
| 0x08017f30 0090 str r0, [sp]
| 0x08017f32 dff82439 ldr.w r3, [0x0801885e] ; [0x801885c:4]=0x8019799
| 0x08017f36 dff8fc29 ldr.w r2, [0x0801893a] ; [0x8018938:4]=0xf8dfb5e0
| 0x08017f3a dff89006 ldr.w r0, [0x080185d2] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08017f3e 0068 ldr r0, [r0]
| 0x08017f40 dff88c16 ldr.w r1, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| 0x08017f44 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08017f48 d0f89c11 ldr.w r1, [r0, 0x19c] ; I.n.t.r.o...S.c.
| 0x08017f4c dff84808 ldr.w r0, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08017f50 0078 ldrb r0, [r0]
| 0x08017f52 401d adds r0, r0, 5
| 0x08017f54 c0b2 uxtb r0, r0
| 0x08017f56 f4f7eafb bl md380_create_menu_entry
| 0x08017f5a dff84408 ldr.w r0, [0x080187a6] ; [0x80187a4:4]=0x2001e892 gui_opmode3
| 0x08017f5e c078 ldrb r0, [r0, 3]
| 0x08017f60 c0f3c000 ubfx r0, r0, 3, 1
| 0x08017f64 c007 lsls r0, r0, 0x1f
| ,=< 0x08017f66 02d5 bpl 0x8017f6e
| | 0x08017f68 54f00104 orrs r4, r4, 1
| ,==< 0x08017f6c 00e0 b 0x8017f70
| |`-> 0x08017f6e 0024 movs r4, 0
| `--> 0x08017f70 e4b2 uxtb r4, r4
| 0x08017f72 a4b2 uxth r4, r4
| 0x08017f74 0294 str r4, [sp, 8]
| 0x08017f76 0020 movs r0, 0
| 0x08017f78 0190 str r0, [sp, 4]
| 0x08017f7a 9820 movs r0, 0x98 ; 152
| 0x08017f7c 0090 str r0, [sp]
| 0x08017f7e dff8d838 ldr.w r3, [0x0801885e] ; [0x801885c:4]=0x8019799
| 0x08017f82 dff8242a ldr.w r2, [0x080189ae] ; [0x80189ac:4]=0x801ab85
| 0x08017f86 dff84406 ldr.w r0, [0x080185d2] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08017f8a 0068 ldr r0, [r0]
| 0x08017f8c dff84016 ldr.w r1, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| 0x08017f90 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08017f94 d0f8a011 ldr.w r1, [r0, 0x1a0] ; K.e.y.p.a.d...L.
| 0x08017f98 dff8fc07 ldr.w r0, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08017f9c 0078 ldrb r0, [r0]
| 0x08017f9e 801d adds r0, r0, 6
| 0x08017fa0 c0b2 uxtb r0, r0
| 0x08017fa2 f4f7c4fb bl md380_create_menu_entry
| 0x08017fa6 0124 movs r4, 1 ; 1
| 0x08017fa8 e4b2 uxtb r4, r4
| 0x08017faa a4b2 uxth r4, r4
| 0x08017fac 0294 str r4, [sp, 8]
| 0x08017fae 0020 movs r0, 0
| 0x08017fb0 0190 str r0, [sp, 4]
| 0x08017fb2 9820 movs r0, 0x98 ; 152
| 0x08017fb4 0090 str r0, [sp]
| 0x08017fb6 dff8a038 ldr.w r3, [0x0801885e] ; [0x801885c:4]=0x8019799
| 0x08017fba dff8f029 ldr.w r2, [0x080189b2] ; [0x80189b0:4]=0x801ad57
| 0x08017fbe dff80c06 ldr.w r0, [0x080185d2] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08017fc2 0068 ldr r0, [r0]
| 0x08017fc4 dff80816 ldr.w r1, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| 0x08017fc8 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08017fcc d0f8a411 ldr.w r1, [r0, 0x1a4] ; L.a.n.g.u.a.g.e
| 0x08017fd0 dff8c407 ldr.w r0, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08017fd4 0078 ldrb r0, [r0]
| 0x08017fd6 c01d adds r0, r0, 7
| 0x08017fd8 c0b2 uxtb r0, r0
| 0x08017fda f4f7a8fb bl md380_create_menu_entry
| 0x08017fde dff8c007 ldr.w r0, [0x080187a6] ; [0x80187a4:4]=0x2001e892 gui_opmode3
| 0x08017fe2 c078 ldrb r0, [r0, 3]
| 0x08017fe4 c0f30010 ubfx r0, r0, 4, 1
| 0x08017fe8 c007 lsls r0, r0, 0x1f
| ,=< 0x08017fea 02d5 bpl 0x8017ff2
| | 0x08017fec 54f00104 orrs r4, r4, 1
| ,==< 0x08017ff0 00e0 b 0x8017ff4
| |`-> 0x08017ff2 0024 movs r4, 0
| `--> 0x08017ff4 e4b2 uxtb r4, r4
| 0x08017ff6 a4b2 uxth r4, r4
| 0x08017ff8 0294 str r4, [sp, 8]
| 0x08017ffa 0020 movs r0, 0
| 0x08017ffc 0190 str r0, [sp, 4]
| 0x08017ffe 9820 movs r0, 0x98 ; 152
| 0x08018000 0090 str r0, [sp]
| 0x08018002 dff85438 ldr.w r3, [0x0801885e] ; [0x801885c:4]=0x8019799
| 0x08018006 dff8a829 ldr.w r2, [0x080189b6] ; [0x80189b4:4]=0xf8dfb5e0
| 0x0801800a dff8c005 ldr.w r0, [0x080185d2] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801800e 0068 ldr r0, [r0]
| 0x08018010 dff8bc15 ldr.w r1, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| 0x08018014 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08018018 d0f8a811 ldr.w r1, [r0, 0x1a8] ; L.E.D...I.n.d.i.
| 0x0801801c dff87807 ldr.w r0, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08018020 0078 ldrb r0, [r0]
| 0x08018022 0830 adds r0, 8
| 0x08018024 c0b2 uxtb r0, r0
| 0x08018026 f4f782fb bl md380_create_menu_entry
| 0x0801802a dff87407 ldr.w r0, [0x080187a6] ; [0x80187a4:4]=0x2001e892 gui_opmode3
| 0x0801802e c078 ldrb r0, [r0, 3]
| 0x08018030 0006 lsls r0, r0, 0x18
| ,=< 0x08018032 07d5 bpl 0x8018044
| | 0x08018034 dff86c07 ldr.w r0, [0x080187a8] ; [0x80187a8:4]=0x2001e904
| | 0x08018038 0078 ldrb r0, [r0]
| | 0x0801803a 0028 cmp r0, 0
| ,==< 0x0801803c 02d1 bne 0x8018044
| || 0x0801803e 54f00104 orrs r4, r4, 1
| ,===< 0x08018042 00e0 b 0x8018046
| |``-> 0x08018044 0024 movs r4, 0
| `---> 0x08018046 e4b2 uxtb r4, r4
| 0x08018048 a4b2 uxth r4, r4
| 0x0801804a 0294 str r4, [sp, 8]
| 0x0801804c 0020 movs r0, 0
| 0x0801804e 0190 str r0, [sp, 4]
| 0x08018050 9820 movs r0, 0x98 ; 152
| 0x08018052 0090 str r0, [sp]
| 0x08018054 dff80038 ldr.w r3, [0x0801885c] ; [0x801885c:4]=0x8019799
| 0x08018058 dff8dc29 ldr.w r2, [0x08018a3c] ; [0x8018a3c:4]=0x801ae5d
| 0x0801805c dff86c05 ldr.w r0, [0x080185d0] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08018060 0068 ldr r0, [r0]
| 0x08018062 dff86c15 ldr.w r1, [0x080185d6] ; [0x80185d4:4]=0x8012b79
| 0x08018066 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801806a d0f8ac11 ldr.w r1, [r0, 0x1ac]
| 0x0801806e dff82807 ldr.w r0, [0x0801879e] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08018072 0078 ldrb r0, [r0]
| 0x08018074 0930 adds r0, 9
| 0x08018076 c0b2 uxtb r0, r0
| 0x08018078 f4f759fb bl md380_create_menu_entry
| 0x0801807c 0020 movs r0, 0
| 0x0801807e 0290 str r0, [sp, 8]
| 0x08018080 0020 movs r0, 0
| 0x08018082 0190 str r0, [sp, 4]
| 0x08018084 9820 movs r0, 0x98 ; 152
| 0x08018086 0090 str r0, [sp]
| 0x08018088 dff8cc37 ldr.w r3, [0x0801885c] ; [0x801885c:4]=0x8019799
| 0x0801808c dff8ac29 ldr.w r2, [func_18a40] ; [0x8018a40:4]=0x4c38b510
| 0x08018090 dff83c05 ldr.w r0, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| 0x08018094 d0f8b811 ldr.w r1, [r0, 0x1b8]
| 0x08018098 dff8fc06 ldr.w r0, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x0801809c 0078 ldrb r0, [r0]
| 0x0801809e 0a30 adds r0, 0xa
| 0x080180a0 c0b2 uxtb r0, r0
| 0x080180a2 f4f744fb bl md380_create_menu_entry
| 0x080180a6 dff8f806 ldr.w r0, [0x080187a6] ; [0x80187a4:4]=0x2001e892 gui_opmode3
| 0x080180aa 0079 ldrb r0, [r0, 4]
| 0x080180ac c007 lsls r0, r0, 0x1f
| ,=< 0x080180ae 02d5 bpl 0x80180b6
| | 0x080180b0 54f00104 orrs r4, r4, 1
| ,==< 0x080180b4 00e0 b 0x80180b8
| |`-> 0x080180b6 0024 movs r4, 0
| `--> 0x080180b8 e4b2 uxtb r4, r4
| 0x080180ba a4b2 uxth r4, r4
| 0x080180bc 0294 str r4, [sp, 8]
| 0x080180be 0020 movs r0, 0
| 0x080180c0 0190 str r0, [sp, 4]
| 0x080180c2 9820 movs r0, 0x98 ; 152
| 0x080180c4 0090 str r0, [sp]
| 0x080180c6 dff89037 ldr.w r3, [0x0801885e] ; [0x801885c:4]=0x8019799
| 0x080180ca dff8d029 ldr.w r2, [0x08018aa2] ; [0x8018aa0:4]=0x8018f05
| 0x080180ce dff8fc04 ldr.w r0, [0x080185d2] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080180d2 0068 ldr r0, [r0]
| 0x080180d4 dff8f814 ldr.w r1, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| 0x080180d8 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080180dc d0f8b411 ldr.w r1, [r0, 0x1b4]
| 0x080180e0 dff8b406 ldr.w r0, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x080180e4 0078 ldrb r0, [r0]
| 0x080180e6 0b30 adds r0, 0xb
| 0x080180e8 c0b2 uxtb r0, r0
| 0x080180ea f4f720fb bl md380_create_menu_entry
| 0x080180ee 0020 movs r0, 0
| 0x080180f0 0290 str r0, [sp, 8]
| 0x080180f2 0020 movs r0, 0
| 0x080180f4 0190 str r0, [sp, 4]
| 0x080180f6 1820 movs r0, 0x18 ; 24
| 0x080180f8 0090 str r0, [sp]
| 0x080180fa dff85c37 ldr.w r3, [0x0801885e] ; [0x801885c:4]=0x8019799
| 0x080180fe dff85827 ldr.w r2, [0x0801885e] ; [0x801885c:4]=0x8019799
| 0x08018102 dff8c804 ldr.w r0, [0x080185d2] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08018106 0068 ldr r0, [r0]
| 0x08018108 dff8c414 ldr.w r1, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| 0x0801810c 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08018110 d0f8b811 ldr.w r1, [r0, 0x1b8]
| 0x08018114 dff88006 ldr.w r0, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08018118 0078 ldrb r0, [r0]
| 0x0801811a 0c30 adds r0, 0xc
| 0x0801811c c0b2 uxtb r0, r0
| 0x0801811e f4f706fb bl md380_create_menu_entry
| 0x08018122 0024 movs r4, 0
| 0x08018124 e4b2 uxtb r4, r4
| 0x08018126 a4b2 uxth r4, r4
| 0x08018128 0294 str r4, [sp, 8]
| 0x0801812a 0020 movs r0, 0
| 0x0801812c 0190 str r0, [sp, 4]
| 0x0801812e 9820 movs r0, 0x98 ; 152
| 0x08018130 0090 str r0, [sp]
| 0x08018132 dff82437 ldr.w r3, [0x0801885e] ; [0x801885c:4]=0x8019799
| 0x08018136 dff86829 ldr.w r2, [0x08018aa6] ; [0x8018aa4:4]=0x4c1fb510
| 0x0801813a dff89004 ldr.w r0, [0x080185d2] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801813e 0068 ldr r0, [r0]
| 0x08018140 dff88c14 ldr.w r1, [0x080185d4] ; [0x80185d4:4]=0x8012b79
| 0x08018144 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08018148 d0f8a812 ldr.w r1, [r0, 0x2a8]
| 0x0801814c dff84806 ldr.w r0, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08018150 0078 ldrb r0, [r0]
| 0x08018152 0d30 adds r0, 0xd
| 0x08018154 c0b2 uxtb r0, r0
| 0x08018156 f4f7eafa bl md380_create_menu_entry
| 0x0801815a 0024 movs r4, 0
| 0x0801815c 0120 movs r0, 1 ; 1
| 0x0801815e 0290 str r0, [sp, 8]
| 0x08018160 0020 movs r0, 0
| 0x08018162 0190 str r0, [sp, 4]
| 0x08018164 9820 movs r0, 0x98 ; 152
| 0x08018166 0090 str r0, [sp]
| 0x08018168 dff8ec36 ldr.w r3, [0x0801885c] ; [0x801885c:4]=0x8019799
| 0x0801816c dff8a029 ldr.w r2, [0x08018b14] ; [0x8018b14:4]=0x801840d
| 0x08018170 dff85804 ldr.w r0, [0x080185d0] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08018174 0068 ldr r0, [r0]
| 0x08018176 dff85814 ldr.w r1, [0x080185d6] ; [0x80185d4:4]=0x8012b79
| 0x0801817a 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801817e d0f8f412 ldr.w r1, [r0, 0x2f4]
| 0x08018182 dff81406 ldr.w r0, [0x0801879e] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x08018186 0078 ldrb r0, [r0]
| 0x08018188 0e30 adds r0, 0xe
| 0x0801818a c0b2 uxtb r0, r0
| 0x0801818c f4f7cffa bl md380_create_menu_entry
| 0x08018190 dff80c06 ldr.w r0, [0x080187a4] ; [0x80187a4:4]=0x2001e892 gui_opmode3
| 0x08018194 0079 ldrb r0, [r0, 4]
| 0x08018196 c0f34000 ubfx r0, r0, 1, 1
| 0x0801819a c007 lsls r0, r0, 0x1f
| ,=< 0x0801819c 02d5 bpl 0x80181a4
| | 0x0801819e 54f00104 orrs r4, r4, 1
| ,==< 0x080181a2 00e0 b 0x80181a6
| |`-> 0x080181a4 0024 movs r4, 0
| `--> 0x080181a6 e4b2 uxtb r4, r4
| 0x080181a8 a4b2 uxth r4, r4
| 0x080181aa 0294 str r4, [sp, 8]
| 0x080181ac 0020 movs r0, 0
| 0x080181ae 0190 str r0, [sp, 4]
| 0x080181b0 9820 movs r0, 0x98 ; 152
| 0x080181b2 0090 str r0, [sp]
| 0x080181b4 dff8a036 ldr.w r3, [0x0801885c] ; [0x801885c:4]=0x8019799
| 0x080181b8 dff85829 ldr.w r2, [0x08018b18] ; [0x8018b18:4]=0x8018249
| 0x080181bc dff80c04 ldr.w r0, [0x080185d0] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080181c0 0068 ldr r0, [r0]
| 0x080181c2 dff80c14 ldr.w r1, [0x080185d6] ; [0x80185d4:4]=0x8012b79
| 0x080181c6 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080181ca d0f85c13 ldr.w r1, [r0, 0x35c]
| 0x080181ce dff8c805 ldr.w r0, [0x0801879e] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x080181d2 0078 ldrb r0, [r0]
| 0x080181d4 0f30 adds r0, 0xf
| 0x080181d6 c0b2 uxtb r0, r0
| 0x080181d8 f4f7a9fa bl md380_create_menu_entry
| 0x080181dc 0024 movs r4, 0
| 0x080181de e4b2 uxtb r4, r4
| 0x080181e0 a4b2 uxth r4, r4
| 0x080181e2 0294 str r4, [sp, 8]
| 0x080181e4 0020 movs r0, 0
| 0x080181e6 0190 str r0, [sp, 4]
| 0x080181e8 9820 movs r0, 0x98 ; 152
| 0x080181ea 0090 str r0, [sp]
| 0x080181ec dff86836 ldr.w r3, [0x0801885c] ; [0x801885c:4]=0x8019799
| 0x080181f0 dff82429 ldr.w r2, [0x08018b1c] ; [0x8018b1c:4]=0x80182f5
| 0x080181f4 dff8d403 ldr.w r0, [0x080185d0] ; [0x80185d0:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080181f8 0068 ldr r0, [r0]
| 0x080181fa dff8d413 ldr.w r1, [0x080185d6] ; [0x80185d4:4]=0x8012b79
| 0x080181fe 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08018202 d0f8d413 ldr.w r1, [r0, 0x3d4]
| 0x08018206 dff89005 ldr.w r0, [0x0801879e] ; [0x801879c:4]=0x2001deb8 current_channel_info
| 0x0801820a 0078 ldrb r0, [r0]
| 0x0801820c 1030 adds r0, 0x10
| 0x0801820e c0b2 uxtb r0, r0
| 0x08018210 f4f78dfa bl md380_create_menu_entry
| 0x08018214 0020 movs r0, 0
| ,=< 0x08018216 0be0 b 0x8018230
| .--> 0x08018218 dff87c15 ldr.w r1, [0x0801879c] ; [0x801879c:4]=0x2001deb8 current_channel_info
| || 0x0801821c 0978 ldrb r1, [r1]
| || 0x0801821e 4118 adds r1, r0, r1
| || 0x08018220 1422 movs r2, 0x14 ; 20
| || 0x08018222 dff8e838 ldr.w r3, [0x08018b12] ; [0x8018b10:4]=0x8018869
| || 0x08018226 02fb0131 mla r1, r2, r1, r3
| || 0x0801822a 0222 movs r2, 2 ; 2
| || 0x0801822c 0a74 strb r2, [r1, 0x10]
| || 0x0801822e 401c adds r0, r0, 1
| |`-> 0x08018230 297a ldrb r1, [r5, 8]
| | 0x08018232 8842 cmp r0, r1
| `==< 0x08018234 f0db blt 0x8018218
\ 0x08018236 37bd pop {r0, r1, r2, r4, r5, pc}
/ (fcn) func_18a40 90
| Caller: scr_mode_stable
| func_18a40 ();
| 0x08018a40 10b5 push {r4, lr}
| 0x08018a42 384c ldr r4, [0x08018b26] ; [0x8018b24:4]=0x2001e0d0 print_buffer
| 0x08018a44 dff86c06 ldr.w r0, [0x080190b8] ; [0x80190b8:4]=0x8018a41
| 0x08018a48 0121 movs r1, 1 ; 1
| 0x08018a4a 0170 strb r1, [r0]
| 0x08018a4c dff81818 ldr.w r1, [0x0801926c] ; [0x801926c:4]=0x2001e6f8
| 0x08018a50 0120 movs r0, 1 ; 1
| 0x08018a52 12f0d0fc bl md380_RTC_GetTime
| 0x08018a56 dff81008 ldr.w r0, [0x0801926e] ; [0x801926c:4]=0x2001e6f8
| 0x08018a5a 0178 ldrb r1, [r0]
| 0x08018a5c 89b2 uxth r1, r1
| 0x08018a5e 2000 movs r0, r4
| 0x08018a60 00f062f8 bl md380_itow
| 0x08018a64 241d adds r4, r4, 4
| 0x08018a66 3a20 movs r0, 0x3a ; ':' ; 58
| 0x08018a68 2080 strh r0, [r4]
| 0x08018a6a a41c adds r4, r4, 2
| 0x08018a6c dff8f807 ldr.w r0, [0x0801926c] ; [0x801926c:4]=0x2001e6f8
| 0x08018a70 4178 ldrb r1, [r0, 1]
| 0x08018a72 89b2 uxth r1, r1
| 0x08018a74 2000 movs r0, r4
| 0x08018a76 00f057f8 bl md380_itow
| 0x08018a7a 241d adds r4, r4, 4
| 0x08018a7c 3a20 movs r0, 0x3a ; ':' ; 58
| 0x08018a7e 2080 strh r0, [r4]
| 0x08018a80 a41c adds r4, r4, 2
| 0x08018a82 dff8e407 ldr.w r0, [0x0801926e] ; [0x801926c:4]=0x2001e6f8
| 0x08018a86 8178 ldrb r1, [r0, 2]
| 0x08018a88 89b2 uxth r1, r1
| 0x08018a8a 2000 movs r0, r4
| 0x08018a8c 00f04cf8 bl md380_itow
| 0x08018a90 241d adds r4, r4, 4
| 0x08018a92 0020 movs r0, 0
| 0x08018a94 2080 strh r0, [r4]
| 0x08018a96 a41c adds r4, r4, 2
\ 0x08018a98 10bd pop {r4, pc}
/ (fcn) func_18aa4_GetDateAndConv2String 102
| Caller: scr_mode_stable
| func_18aa4_GetDateAndConv2String ();
| 0x08018aa4 10b5 push {r4, lr}
| 0x08018aa6 1f4c ldr r4, [0x08018b26] ; [0x8018b24:4]=0x2001e0d0 print_buffer
| 0x08018aa8 dff81406 ldr.w r0, [0x080190c4] ; [0x80190c4:4]=0x8018aa5
| 0x08018aac 0121 movs r1, 1 ; 1
| 0x08018aae 0170 strb r1, [r0]
| 0x08018ab0 dff8b817 ldr.w r1, [0x08019270] ; [0x8019270:4]=0x8018e11
| 0x08018ab4 0120 movs r0, 1 ; 1
| 0x08018ab6 12f029fd bl md380_RTC_GetDate
| 0x08018aba 3220 movs r0, 0x32 ; '2' ; 50
| 0x08018abc 2080 strh r0, [r4]
| 0x08018abe a41c adds r4, r4, 2
| 0x08018ac0 3020 movs r0, 0x30 ; '0' ; 48
| 0x08018ac2 2080 strh r0, [r4]
| 0x08018ac4 a41c adds r4, r4, 2
| 0x08018ac6 dff8a407 ldr.w r0, [0x08019272] ; [0x8019270:4]=0x8018e11
| 0x08018aca c178 ldrb r1, [r0, 3]
| 0x08018acc 89b2 uxth r1, r1
| 0x08018ace 2000 movs r0, r4
| 0x08018ad0 00f02af8 bl md380_itow
| 0x08018ad4 241d adds r4, r4, 4
| 0x08018ad6 2f20 movs r0, 0x2f ; '/' ; 47
| 0x08018ad8 2080 strh r0, [r4]
| 0x08018ada a41c adds r4, r4, 2
| 0x08018adc dff88c07 ldr.w r0, [0x08019270] ; [0x8019270:4]=0x8018e11
| 0x08018ae0 4178 ldrb r1, [r0, 1]
| 0x08018ae2 89b2 uxth r1, r1
| 0x08018ae4 2000 movs r0, r4
| 0x08018ae6 00f01ff8 bl md380_itow
| 0x08018aea 241d adds r4, r4, 4
| 0x08018aec 2f20 movs r0, 0x2f ; '/' ; 47
| 0x08018aee 2080 strh r0, [r4]
| 0x08018af0 a41c adds r4, r4, 2
| 0x08018af2 dff87807 ldr.w r0, [0x08019272] ; [0x8019270:4]=0x8018e11
| 0x08018af6 8178 ldrb r1, [r0, 2]
| 0x08018af8 89b2 uxth r1, r1
| 0x08018afa 2000 movs r0, r4
| 0x08018afc 00f014f8 bl md380_itow
| 0x08018b00 241d adds r4, r4, 4
| 0x08018b02 0020 movs r0, 0
| 0x08018b04 2080 strh r0, [r4]
| 0x08018b06 a41c adds r4, r4, 2
\ 0x08018b08 10bd pop {r4, pc}
/ (fcn) func_1bf56 156
| Caller: kb_enter_alpha
| func_1bf56 ();
| 0x0801bf56 e0b5 push {r5, r6, r7, lr}
| 0x0801bf58 8348 ldr r0, [0x0801c168] ; [0x801c168:4]=0x20004acc md380_menu_depth
| 0x0801bf5a 0021 movs r1, 0
| 0x0801bf5c 0170 strb r1, [r0]
| 0x0801bf5e 7748 ldr r0, [0x0801c13e] ; [0x801c13c:4]=0x2001e915 md380_menu_id
| 0x0801bf60 0021 movs r1, 0
| 0x0801bf62 0170 strb r1, [r0]
| 0x0801bf64 8048 ldr r0, [0x0801c168] ; [0x801c168:4]=0x20004acc md380_menu_depth
| 0x0801bf66 0078 ldrb r0, [r0]
| 0x0801bf68 0c21 movs r1, 0xc ; 12
| 0x0801bf6a 234a ldr r2, [0x0801bffa] ; [0x801bff8:4]=0x2001d5cc md380_menu_memory
| 0x0801bf6c 01fb0020 mla r0, r1, r0, r2
| 0x0801bf70 8049 ldr r1, [0x0801c174] ; [0x801c174:4]=0x2001e700 menu_memory_poi
| 0x0801bf72 0860 str r0, [r1]
| 0x0801bf74 8b48 ldr r0, [0x0801c1a4] ; [0x801c1a4:4]=0x2001e6ec
| 0x0801bf76 0068 ldr r0, [r0]
| 0x0801bf78 7f49 ldr r1, [0x0801c178] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801bf7a 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801bf7e d0f80002 ldr.w r0, [r0, 0x200]
| 0x0801bf82 7c49 ldr r1, [0x0801c176] ; [0x801c174:4]=0x2001e700 menu_memory_poi
| 0x0801bf84 0968 ldr r1, [r1]
| 0x0801bf86 0860 str r0, [r1]
| 0x0801bf88 7a48 ldr r0, [0x0801c174] ; [0x801c174:4]=0x2001e700 menu_memory_poi
| 0x0801bf8a 0068 ldr r0, [r0]
| 0x0801bf8c 6c49 ldr r1, [0x0801c140] ; [0x801c140:4]=0x2001b274 md380_menu_mem_base
| 0x0801bf8e 4160 str r1, [r0, 4]
| 0x0801bf90 7848 ldr r0, [0x0801c174] ; [0x801c174:4]=0x2001e700 menu_memory_poi
| 0x0801bf92 0068 ldr r0, [r0]
| 0x0801bf94 0121 movs r1, 1 ; 1
| 0x0801bf96 0172 strb r1, [r0, 8]
| 0x0801bf98 7648 ldr r0, [0x0801c174] ; [0x801c174:4]=0x2001e700 menu_memory_poi
| 0x0801bf9a 0068 ldr r0, [r0]
| 0x0801bf9c 0021 movs r1, 0
| 0x0801bf9e 4172 strb r1, [r0, 9]
| 0x0801bfa0 7448 ldr r0, [0x0801c174] ; [0x801c174:4]=0x2001e700 menu_memory_poi
| 0x0801bfa2 0068 ldr r0, [r0]
| 0x0801bfa4 0021 movs r1, 0
| 0x0801bfa6 4181 strh r1, [r0, 0xa]
| 0x0801bfa8 7448 ldr r0, [0x0801c17c] ; [0x801c17c:4]=0x2001e90e
| 0x0801bfaa 0b21 movs r1, 0xb ; 11
| 0x0801bfac 0170 strb r1, [r0]
| 0x0801bfae 0120 movs r0, 1 ; 1
| 0x0801bfb0 0290 str r0, [sp, 8]
| 0x0801bfb2 0f20 movs r0, 0xf ; 15
| 0x0801bfb4 0190 str r0, [sp, 4]
| 0x0801bfb6 0620 movs r0, 6 ; 6
| 0x0801bfb8 0090 str r0, [sp]
| 0x0801bfba 6a4b ldr r3, [0x0801c166] ; [0x801c164:4]=0x800fc85 menu_entry_back_1
| 0x0801bfbc 7c4a ldr r2, [0x0801c1b0] ; [0x801c1b0:4]=0x8025add
| 0x0801bfbe 7948 ldr r0, [0x0801c1a6] ; [0x801c1a4:4]=0x2001e6ec
| 0x0801bfc0 0068 ldr r0, [r0]
| 0x0801bfc2 6d49 ldr r1, [0x0801c17a] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801bfc4 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801bfc8 d0f84012 ldr.w r1, [r0, 0x240]
| 0x0801bfcc 5b48 ldr r0, [0x0801c13c] ; [0x801c13c:4]=0x2001e915 md380_menu_id
| 0x0801bfce 0078 ldrb r0, [r0]
| 0x0801bfd0 f0f7adfb bl md380_create_menu_entry
| 0x0801bfd4 6448 ldr r0, [0x0801c168] ; [0x801c168:4]=0x20004acc md380_menu_depth
| 0x0801bfd6 0078 ldrb r0, [r0]
| 0x0801bfd8 f3f73cfe bl menu_add_number_of_menuentries_counts
| 0x0801bfdc 5749 ldr r1, [0x0801c13c] ; [0x801c13c:4]=0x2001e915 md380_menu_id
| 0x0801bfde 0870 strb r0, [r1]
| 0x0801bfe0 6448 ldr r0, [0x0801c174] ; [0x801c174:4]=0x2001e700 menu_memory_poi
| 0x0801bfe2 0068 ldr r0, [r0]
| 0x0801bfe4 4068 ldr r0, [r0, 4]
| 0x0801bfe6 6849 ldr r1, [0x0801c18a] ; [0x801c188:4]=0x2001e6fc
| 0x0801bfe8 0860 str r0, [r1]
| 0x0801bfea 5f48 ldr r0, [0x0801c16a] ; [0x801c168:4]=0x20004acc md380_menu_depth
| 0x0801bfec 0021 movs r1, 0
| 0x0801bfee 0170 strb r1, [r0]
\ 0x0801bff0 07bd pop {r0, r1, r2, pc}
/ (fcn) func_1cff2 56
| Caller: func_1d074
| func_1cff2 ();
| 0x0801cff2 38b5 push {r3, r4, r5, lr}
| 0x0801cff4 b0f90040 ldrsh.w r4, [r0]
| 0x0801cff8 4568 ldr r5, [r0, 4]
| 0x0801cffa a88b ldrh r0, [r5, 0x1c]
| 0x0801cffc 40f60101 movw r1, 0x801 ; 2049
| 0x0801d000 0840 ands r0, r1
| 0x0801d002 0128 cmp r0, 1 ; 1
| ,=< 0x0801d004 04d0 beq 0x801d010
| | 0x0801d006 2900 movs r1, r5
| | 0x0801d008 2000 movs r0, r4
| | 0x0801d00a 00b2 sxth r0, r0
| | 0x0801d00c fff708ff bl 0x801ce20
| `-> 0x0801d010 c148 ldr r0, [0x0801d318] ; [0x801d318:4]=0x2001e6b0
| 0x0801d012 0068 ldr r0, [r0]
| 0x0801d014 0028 cmp r0, 0
| ,=< 0x0801d016 07d0 beq 0x801d028
| | 0x0801d018 2800 movs r0, r5
| | 0x0801d01a fff78bff bl 0x801cf34
| | 0x0801d01e 2900 movs r1, r5
| | 0x0801d020 2000 movs r0, r4
| | 0x0801d022 00b2 sxth r0, r0
| | 0x0801d024 fff7bbff bl 0x801cf9e
\ `-> 0x0801d028 31bd pop {r0, r4, r5, pc}
/ (fcn) func_1d074 164
| func_1d074 ();
| 0x0801d074 37bd pop {r0, r1, r2, r4, r5, pc}
| 0x0801d076 0000 movs r0, r0
| ,=< 0x0801d078 1cda bge 0x801d0b4
| | 0x0801d07a 0120 movs r0, 1 ; 1
| | 0x0801d07c 70b5 push {r4, r5, r6, lr}
| | 0x0801d07e 86b0 sub sp, 0x18
| | 0x0801d080 0600 movs r6, r0
| | 0x0801d082 0c00 movs r4, r1
| | 0x0801d084 0025 movs r5, 0
| | 0x0801d086 207f ldrb r0, [r4, 0x1c]
| | 0x0801d088 8006 lsls r0, r0, 0x1a
| ,==< 0x0801d08a 42d5 bpl 0x801d112
| || 0x0801d08c 2069 ldr r0, [r4, 0x10]
| || 0x0801d08e 0028 cmp r0, 0
| ,===< 0x0801d090 2ed0 beq 0x801d0f0
| ||| 0x0801d092 3100 movs r1, r6
| ||| 0x0801d094 09b2 sxth r1, r1
| ||| 0x0801d096 14f10800 adds.w r0, r4, 8
| ||| 0x0801d09a fff723f9 bl gfx_bmp_s1_5
| ||| 0x0801d09e 0028 cmp r0, 0
| ,====< 0x0801d0a0 26d0 beq 0x801d0f0
| |||| 0x0801d0a2 adf80460 strh.w r6, [sp, 4]
| |||| 0x0801d0a6 0294 str r4, [sp, 8]
| |||| 0x0801d0a8 3000 movs r0, r6
| |||| 0x0801d0aa 00b2 sxth r0, r0
| |||| 0x0801d0ac fff7fafc bl gfx_1caa4
| |||| 0x0801d0b0 207f ldrb r0, [r4, 0x1c]
| |||| 0x0801d0b2 4007 lsls r0, r0, 0x1d
| ,===`-> 0x0801d0b4 18d5 bpl 0x801d0e8
| |||| 0x0801d0b6 03a8 add r0, sp, 0xc
| |||| 0x0801d0b8 14f10801 adds.w r1, r4, 8
| |||| 0x0801d0bc 0822 movs r2, 8 ; 8
| |||| 0x0801d0be 15f0b5fd bl gfx_memcpy
| |||| 0x0801d0c2 207f ldrb r0, [r4, 0x1c]
| |||| 0x0801d0c4 10f00100 ands r0, r0, 1
| |||| 0x0801d0c8 90f00100 eors r0, r0, 1
| |||| 0x0801d0cc c0b2 uxtb r0, r0
| |||| 0x0801d0ce b4f91610 ldrsh.w r1, [r4, 0x16]
| |||| 0x0801d0d2 0029 cmp r1, 0
| ||||,=< 0x0801d0d4 00d1 bne 0x801d0d8
| ||||| 0x0801d0d6 0020 movs r0, 0
| ||||`-> 0x0801d0d8 0090 str r0, [sp]
| |||| 0x0801d0da 0023 movs r3, 0
| |||| 0x0801d0dc 01aa add r2, sp, 4
| |||| 0x0801d0de 9649 ldr r1, [0x0801d33a] ; [0x801d338:4]=0x801d039
| |||| 0x0801d0e0 03a8 add r0, sp, 0xc
| |||| 0x0801d0e2 16f0b3f8 bl gfx_3324c
| ||||,=< 0x0801d0e6 03e0 b 0x801d0f0
| `-----> 0x0801d0e8 01a8 add r0, sp, 4
| |||| 0x0801d0ea fff782ff bl func_1cff2
| |||| 0x0801d0ee 0125 movs r5, 1 ; 1
| ``-`-> 0x0801d0f0 a08b ldrh r0, [r4, 0x1c]
| | 0x0801d0f2 4ff6df71 movw r1, 0xffdf
| | 0x0801d0f6 0840 ands r0, r1
| | 0x0801d0f8 a083 strh r0, [r4, 0x1c]
| | 0x0801d0fa a08b ldrh r0, [r4, 0x1c]
| | 0x0801d0fc 8004 lsls r0, r0, 0x12
| |,=< 0x0801d0fe 03d5 bpl 0x801d108
| || 0x0801d100 a08b ldrh r0, [r4, 0x1c]
| || 0x0801d102 50f00400 orrs r0, r0, 4
| || 0x0801d106 a083 strh r0, [r4, 0x1c]
| |`-> 0x0801d108 8c48 ldr r0, [0x0801d33c] ; [0x801d33c:4]=0x2001e7fe
| | 0x0801d10a 0088 ldrh r0, [r0]
| | 0x0801d10c 401e subs r0, r0, 1
| | 0x0801d10e 8b49 ldr r1, [0x0801d33e] ; [0x801d33c:4]=0x2001e7fe
| | 0x0801d110 0880 strh r0, [r1]
| `--> 0x0801d112 2800 movs r0, r5
| 0x0801d114 06b0 add sp, 0x18
\ 0x0801d116 70bd pop {r4, r5, r6, pc}
/ (fcn) func_1d118 92
| Caller: func_1d174
| func_1d118 ();
| 0x0801d118 70b5 push {r4, r5, r6, lr}
| 0x0801d11a 98b0 sub sp, 0x60 ; '`'
| 0x0801d11c 0124 movs r4, 1 ; 1
| 0x0801d11e 8848 ldr r0, [0x0801d342] ; [0x801d340:4]=0x2001e80c
| 0x0801d120 b0f90000 ldrsh.w r0, [r0]
| 0x0801d124 0028 cmp r0, 0
| ,=< 0x0801d126 03d1 bne 0x801d130
| | 0x0801d128 4248 ldr r0, [0x0801d234] ; [0x801d234:4]=0x2001e800
| | 0x0801d12a b0f90050 ldrsh.w r5, [r0]
| ,==< 0x0801d12e 02e0 b 0x801d136
| |`-> 0x0801d130 8348 ldr r0, [0x0801d340] ; [0x801d340:4]=0x2001e80c
| | 0x0801d132 b0f90050 ldrsh.w r5, [r0]
| `--> 0x0801d136 00a8 add r0, sp, 0
| 0x0801d138 16f016f9 bl gfx_33368
| ,=< 0x0801d13c 0ee0 b 0x801d15c
| .--> 0x0801d13e 2800 movs r0, r5
| || 0x0801d140 00b2 sxth r0, r0
| || 0x0801d142 15f08ffc bl gfx_draw_sub_32a64
| || 0x0801d146 0600 movs r6, r0
| || 0x0801d148 3100 movs r1, r6
| || 0x0801d14a 2800 movs r0, r5
| || 0x0801d14c 00b2 sxth r0, r0
| || 0x0801d14e fff795ff bl 0x801d07c ; func_1d074+0x8
| || 0x0801d152 0028 cmp r0, 0
| ,===< 0x0801d154 00d0 beq 0x801d158
| ||| 0x0801d156 641e subs r4, r4, 1
| `---> 0x0801d158 b6f91450 ldrsh.w r5, [r6, 0x14]
| |`-> 0x0801d15c 2db2 sxth r5, r5
| | 0x0801d15e 002d cmp r5, 0
| |,=< 0x0801d160 01d0 beq 0x801d166
| || 0x0801d162 002c cmp r4, 0
| `==< 0x0801d164 ebd1 bne 0x801d13e
| `-> 0x0801d166 7648 ldr r0, [0x0801d342] ; [0x801d340:4]=0x2001e80c
| 0x0801d168 0580 strh r5, [r0]
| 0x0801d16a 00a8 add r0, sp, 0
| 0x0801d16c 16f002f9 bl gfx_33374
| 0x0801d170 18b0 add sp, 0x60
\ 0x0801d172 70bd pop {r4, r5, r6, pc}
/ (fcn) func_1d174 78
| Caller: gfx_1d1c2
| func_1d174 ();
| 0x0801d174 80b5 push {r7, lr}
| 0x0801d176 7348 ldr r0, [0x0801d346] ; [0x801d344:4]=0x2001e6ac
| 0x0801d178 0068 ldr r0, [r0]
| 0x0801d17a 0028 cmp r0, 0
| ,=< 0x0801d17c 02d0 beq 0x801d184
| | 0x0801d17e 7148 ldr r0, [0x0801d346] ; [0x801d344:4]=0x2001e6ac
| | 0x0801d180 0068 ldr r0, [r0]
| | 0x0801d182 8047 blx r0
| `-> 0x0801d184 7048 ldr r0, [0x0801d348] ; [0x801d348:4]=0x2001e5a8
| 0x0801d186 0068 ldr r0, [r0]
| 0x0801d188 0028 cmp r0, 0
| ,=< 0x0801d18a 06d0 beq 0x801d19a
| | 0x0801d18c 6e48 ldr r0, [0x0801d348] ; [0x801d348:4]=0x2001e5a8
| | 0x0801d18e 0068 ldr r0, [r0]
| | 0x0801d190 8047 blx r0
| | 0x0801d192 0028 cmp r0, 0
| ,==< 0x0801d194 01d0 beq 0x801d19a
| || 0x0801d196 0120 movs r0, 1 ; 1
| ,===< 0x0801d198 12e0 b 0x801d1c0
| |``-> 0x0801d19a 16f0fcf8 bl gfx_33396
| | 0x0801d19e 0028 cmp r0, 0
| | ,=< 0x0801d1a0 01d0 beq 0x801d1a6
| | | 0x0801d1a2 0120 movs r0, 1 ; 1
| |,==< 0x0801d1a4 0ce0 b 0x801d1c0
| ||`-> 0x0801d1a6 6948 ldr r0, [0x0801d34e] ; [0x801d34c:4]=0x2001e8ee
| || 0x0801d1a8 0078 ldrb r0, [r0]
| || 0x0801d1aa 0028 cmp r0, 0
| ||,=< 0x0801d1ac 07d0 beq 0x801d1be
| ||| 0x0801d1ae 6348 ldr r0, [0x0801d33e] ; [0x801d33c:4]=0x2001e7fe
| ||| 0x0801d1b0 0088 ldrh r0, [r0]
| ||| 0x0801d1b2 0028 cmp r0, 0
| ,====< 0x0801d1b4 03d0 beq 0x801d1be
| |||| 0x0801d1b6 fff7afff bl func_1d118
| |||| 0x0801d1ba 0120 movs r0, 1 ; 1
| ,=====< 0x0801d1bc 00e0 b 0x801d1c0
| |`--`-> 0x0801d1be 0020 movs r0, 0
\ `-``--> 0x0801d1c0 02bd pop {r1, pc}
/ (fcn) 3408
| Caller: handle_keycode_F_4171
| func_1f0f0_menu_something ();
| 0x0801f0f0 10b5 push {r4, lr}
| 0x0801f0f2 dff84c0d ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| 0x0801f0f6 0078 ldrb r0, [r0]
| 0x0801f0f8 0328 cmp r0, 3 ; 3
| ,=< 0x0801f0fa 40f08580 bne.w 0x801f208
| | 0x0801f0fe dff8400d ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | 0x0801f102 0078 ldrb r0, [r0]
| | 0x0801f104 dff83c1d ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| | 0x0801f108 11eb4000 adds.w r0, r1, r0, lsl 1
| | 0x0801f10c 4089 ldrh r0, [r0, 0xa]
| | 0x0801f10e 3228 cmp r0, 0x32 ; '2' ; 50
| ,==< 0x0801f110 7ad1 bne 0x801f208
| || 0x0801f112 dff82c0d ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || 0x0801f116 0078 ldrb r0, [r0]
| || 0x0801f118 dff8281d ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| || 0x0801f11c 11eb4000 adds.w r0, r1, r0, lsl 1
| || 0x0801f120 8089 ldrh r0, [r0, 0xc]
| || 0x0801f122 3928 cmp r0, 0x39 ; '9' ; 57
| ,===< 0x0801f124 70d1 bne 0x801f208
| ||| 0x0801f126 dff8180d ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| 0x0801f12a 0078 ldrb r0, [r0]
| ||| 0x0801f12c dff8141d ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||| 0x0801f130 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| 0x0801f134 8088 ldrh r0, [r0, 4]
| ||| 0x0801f136 3028 cmp r0, 0x30 ; '0' ; 48
| ,====< 0x0801f138 66d1 bne 0x801f208
| |||| 0x0801f13a dff8040d ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| 0x0801f13e 0078 ldrb r0, [r0]
| |||| 0x0801f140 dff8001d ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||| 0x0801f144 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| 0x0801f148 c088 ldrh r0, [r0, 6]
| |||| 0x0801f14a 3228 cmp r0, 0x32 ; '2' ; 50
| ,=====< 0x0801f14c 5cd1 bne 0x801f208
| ||||| 0x0801f14e dff8f00c ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||| 0x0801f152 0078 ldrb r0, [r0]
| ||||| 0x0801f154 dff8b419 ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| ||||| 0x0801f158 0968 ldr r1, [r1]
| ||||| 0x0801f15a 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||| 0x0801f15e 30f8020c ldrh r0, [r0, -0x2]
| ||||| 0x0801f162 3028 cmp r0, 0x30 ; '0' ; 48
| ,======< 0x0801f164 21d1 bne 0x801f1aa
| |||||| 0x0801f166 dff8dc0c ldr.w r0, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801f16a c088 ldrh r0, [r0, 6]
| |||||| 0x0801f16c 3028 cmp r0, 0x30 ; '0' ; 48
| ,=======< 0x0801f16e 1cd1 bne 0x801f1aa
| ||||||| 0x0801f170 dff8cc0c ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f174 0078 ldrb r0, [r0]
| ||||||| 0x0801f176 dff8cc1c ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f17a 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f17e 4089 ldrh r0, [r0, 0xa]
| ||||||| 0x0801f180 3328 cmp r0, 0x33 ; '3' ; 51
| ========< 0x0801f182 41d3 blo 0x801f208
| ||||||| 0x0801f184 dff8b80c ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f188 0078 ldrb r0, [r0]
| ||||||| 0x0801f18a dff8b81c ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f18e 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f192 3221 movs r1, 0x32 ; '2' ; 50
| ||||||| 0x0801f194 4181 strh r1, [r0, 0xa]
| ||||||| 0x0801f196 dff8a80c ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f19a 0078 ldrb r0, [r0]
| ||||||| 0x0801f19c dff8a41c ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f1a0 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f1a4 3921 movs r1, 0x39 ; '9' ; 57
| ||||||| 0x0801f1a6 8181 strh r1, [r0, 0xc]
| ========< 0x0801f1a8 2ee0 b 0x801f208
| ``------> 0x0801f1aa dff8940c ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||| 0x0801f1ae 0078 ldrb r0, [r0]
| ||||| 0x0801f1b0 dff85819 ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| ||||| 0x0801f1b4 0968 ldr r1, [r1]
| ||||| 0x0801f1b6 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||| 0x0801f1ba 801e subs r0, r0, 2
| ||||| 0x0801f1bc 00f04afe bl func_1fe54
| ||||| 0x0801f1c0 0400 movs r4, r0
| ||||| 0x0801f1c2 dff8840c ldr.w r0, [0x0801fe4e] ; [0x801fe4c:4]=0x2001e0d4
| ||||| 0x0801f1c6 00f045fe bl func_1fe54
| ||||| 0x0801f1ca 0a21 movs r1, 0xa ; 10
| ||||| 0x0801f1cc 01fb0400 mla r0, r1, r4, r0
| ||||| 0x0801f1d0 10f5fa64 adds.w r4, r0, 0x7d0
| ||||| 0x0801f1d4 a4b2 uxth r4, r4
| ||||| 0x0801f1d6 0420 movs r0, 4 ; 4
| ||||| 0x0801f1d8 94fbf0f1 sdiv r1, r4, r0
| ||||| 0x0801f1dc 01fb1041 mls r1, r1, r0, r4
| ||||| 0x0801f1e0 0029 cmp r1, 0
| ,======< 0x0801f1e2 11d0 beq 0x801f208
| |||||| 0x0801f1e4 dff8580c ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801f1e8 0078 ldrb r0, [r0]
| |||||| 0x0801f1ea dff8581c ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801f1ee 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801f1f2 3221 movs r1, 0x32 ; '2' ; 50
| |||||| 0x0801f1f4 4181 strh r1, [r0, 0xa]
| |||||| 0x0801f1f6 dff8480c ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801f1fa 0078 ldrb r0, [r0]
| |||||| 0x0801f1fc dff8441c ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801f200 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801f204 3821 movs r1, 0x38 ; '8' ; 56
| |||||| 0x0801f206 8181 strh r1, [r0, 0xc]
| -``````-> 0x0801f208 dff8340c ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| 0x0801f20c 0078 ldrb r0, [r0]
| 0x0801f20e 0428 cmp r0, 4 ; 4
| ,=< 0x0801f210 40f08580 bne.w 0x801f31e
| | 0x0801f214 dff8280c ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | 0x0801f218 0078 ldrb r0, [r0]
| | 0x0801f21a dff8281c ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| | 0x0801f21e 11eb4000 adds.w r0, r1, r0, lsl 1
| | 0x0801f222 0089 ldrh r0, [r0, 8]
| | 0x0801f224 3228 cmp r0, 0x32 ; '2' ; 50
| ,==< 0x0801f226 7ad1 bne 0x801f31e
| || 0x0801f228 dff8140c ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || 0x0801f22c 0078 ldrb r0, [r0]
| || 0x0801f22e dff8141c ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| || 0x0801f232 11eb4000 adds.w r0, r1, r0, lsl 1
| || 0x0801f236 4089 ldrh r0, [r0, 0xa]
| || 0x0801f238 3928 cmp r0, 0x39 ; '9' ; 57
| ,===< 0x0801f23a 70d1 bne 0x801f31e
| ||| 0x0801f23c dff8000c ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| 0x0801f240 0078 ldrb r0, [r0]
| ||| 0x0801f242 dff8001c ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||| 0x0801f246 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| 0x0801f24a 4088 ldrh r0, [r0, 2]
| ||| 0x0801f24c 3028 cmp r0, 0x30 ; '0' ; 48
| ,====< 0x0801f24e 66d1 bne 0x801f31e
| |||| 0x0801f250 dff8ec0b ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| 0x0801f254 0078 ldrb r0, [r0]
| |||| 0x0801f256 dff8ec1b ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| |||| 0x0801f25a 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| 0x0801f25e 8088 ldrh r0, [r0, 4]
| |||| 0x0801f260 3228 cmp r0, 0x32 ; '2' ; 50
| ,=====< 0x0801f262 5cd1 bne 0x801f31e
| ||||| 0x0801f264 dff8d80b ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||| 0x0801f268 0078 ldrb r0, [r0]
| ||||| 0x0801f26a dff8a018 ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| ||||| 0x0801f26e 0968 ldr r1, [r1]
| ||||| 0x0801f270 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||| 0x0801f274 30f8020c ldrh r0, [r0, -0x2]
| ||||| 0x0801f278 3028 cmp r0, 0x30 ; '0' ; 48
| ,======< 0x0801f27a 21d1 bne 0x801f2c0
| |||||| 0x0801f27c dff8c40b ldr.w r0, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801f280 8088 ldrh r0, [r0, 4]
| |||||| 0x0801f282 3028 cmp r0, 0x30 ; '0' ; 48
| ,=======< 0x0801f284 1cd1 bne 0x801f2c0
| ||||||| 0x0801f286 dff8b80b ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f28a 0078 ldrb r0, [r0]
| ||||||| 0x0801f28c dff8b41b ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f290 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f294 0089 ldrh r0, [r0, 8]
| ||||||| 0x0801f296 3328 cmp r0, 0x33 ; '3' ; 51
| ========< 0x0801f298 41d3 blo 0x801f31e
| ||||||| 0x0801f29a dff8a40b ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f29e 0078 ldrb r0, [r0]
| ||||||| 0x0801f2a0 dff8a01b ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f2a4 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f2a8 3221 movs r1, 0x32 ; '2' ; 50
| ||||||| 0x0801f2aa 0181 strh r1, [r0, 8]
| ||||||| 0x0801f2ac dff8900b ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f2b0 0078 ldrb r0, [r0]
| ||||||| 0x0801f2b2 dff8901b ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f2b6 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f2ba 3921 movs r1, 0x39 ; '9' ; 57
| ||||||| 0x0801f2bc 4181 strh r1, [r0, 0xa]
| ========< 0x0801f2be 2ee0 b 0x801f31e
| ``------> 0x0801f2c0 dff8880b ldr.w r0, [0x0801fe50] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| ||||| 0x0801f2c4 00f0c6fd bl func_1fe54
| ||||| 0x0801f2c8 0400 movs r4, r0
| ||||| 0x0801f2ca dff8740b ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||| 0x0801f2ce 0078 ldrb r0, [r0]
| ||||| 0x0801f2d0 dff83818 ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| ||||| 0x0801f2d4 0968 ldr r1, [r1]
| ||||| 0x0801f2d6 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||| 0x0801f2da 801e subs r0, r0, 2
| ||||| 0x0801f2dc 00f0bafd bl func_1fe54
| ||||| 0x0801f2e0 0a21 movs r1, 0xa ; 10
| ||||| 0x0801f2e2 01fb0400 mla r0, r1, r4, r0
| ||||| 0x0801f2e6 10f5fa64 adds.w r4, r0, 0x7d0
| ||||| 0x0801f2ea a4b2 uxth r4, r4
| ||||| 0x0801f2ec 0420 movs r0, 4 ; 4
| ||||| 0x0801f2ee 94fbf0f1 sdiv r1, r4, r0
| ||||| 0x0801f2f2 01fb1041 mls r1, r1, r0, r4
| ||||| 0x0801f2f6 0029 cmp r1, 0
| ,======< 0x0801f2f8 11d0 beq 0x801f31e
| |||||| 0x0801f2fa dff8440b ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801f2fe 0078 ldrb r0, [r0]
| |||||| 0x0801f300 dff8401b ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801f304 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801f308 3221 movs r1, 0x32 ; '2' ; 50
| |||||| 0x0801f30a 0181 strh r1, [r0, 8]
| |||||| 0x0801f30c dff8300b ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801f310 0078 ldrb r0, [r0]
| |||||| 0x0801f312 dff8301b ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801f316 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801f31a 3821 movs r1, 0x38 ; '8' ; 56
| |||||| 0x0801f31c 4181 strh r1, [r0, 0xa]
| -``````-> 0x0801f31e dff8200b ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| 0x0801f322 0078 ldrb r0, [r0]
| 0x0801f324 0628 cmp r0, 6 ; 6
| ,=< 0x0801f326 40f07981 bne.w 0x801f61c
| | 0x0801f32a dff8140b ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | 0x0801f32e 0078 ldrb r0, [r0]
| | 0x0801f330 dff8d817 ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| | 0x0801f334 0968 ldr r1, [r1]
| | 0x0801f336 11eb4000 adds.w r0, r1, r0, lsl 1
| | 0x0801f33a 30f8020c ldrh r0, [r0, -0x2]
| | 0x0801f33e 3228 cmp r0, 0x32 ; '2' ; 50
| ,==< 0x0801f340 13d3 blo 0x801f36a
| || 0x0801f342 dff8fc0a ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || 0x0801f346 0078 ldrb r0, [r0]
| || 0x0801f348 dff8c017 ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| || 0x0801f34c 0968 ldr r1, [r1]
| || 0x0801f34e 11eb4000 adds.w r0, r1, r0, lsl 1
| || 0x0801f352 3121 movs r1, 0x31 ; '1' ; 49
| || 0x0801f354 20f8021c strh r1, [r0, -0x2]
| || 0x0801f358 dff8e40a ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || 0x0801f35c 0078 ldrb r0, [r0]
| || 0x0801f35e dff8e41a ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| || 0x0801f362 3222 movs r2, 0x32 ; '2' ; 50
| || 0x0801f364 21f81020 strh.w r2, [r1, r0, lsl 1]
| ,===< 0x0801f368 51e0 b 0x801f40e
| |`--> 0x0801f36a dff8d40a ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | | 0x0801f36e 0078 ldrb r0, [r0]
| | | 0x0801f370 dff89817 ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| | | 0x0801f374 0968 ldr r1, [r1]
| | | 0x0801f376 11eb4000 adds.w r0, r1, r0, lsl 1
| | | 0x0801f37a 30f8020c ldrh r0, [r0, -0x2]
| | | 0x0801f37e 3128 cmp r0, 0x31 ; '1' ; 49
| |,==< 0x0801f380 28d1 bne 0x801f3d4
| ||| 0x0801f382 dff8bc0a ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| 0x0801f386 0078 ldrb r0, [r0]
| ||| 0x0801f388 dff8b81a ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||| 0x0801f38c 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| ||| 0x0801f390 3328 cmp r0, 0x33 ; '3' ; 51
| ,====< 0x0801f392 13d3 blo 0x801f3bc
| |||| 0x0801f394 dff8a80a ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| 0x0801f398 0078 ldrb r0, [r0]
| |||| 0x0801f39a dff87017 ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| |||| 0x0801f39e 0968 ldr r1, [r1]
| |||| 0x0801f3a0 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| 0x0801f3a4 3121 movs r1, 0x31 ; '1' ; 49
| |||| 0x0801f3a6 20f8021c strh r1, [r0, -0x2]
| |||| 0x0801f3aa dff8940a ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| 0x0801f3ae 0078 ldrb r0, [r0]
| |||| 0x0801f3b0 dff8901a ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||| 0x0801f3b4 3222 movs r2, 0x32 ; '2' ; 50
| |||| 0x0801f3b6 21f81020 strh.w r2, [r1, r0, lsl 1]
| ,=====< 0x0801f3ba 28e0 b 0x801f40e
| |`----> 0x0801f3bc dff8800a ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | ||| 0x0801f3c0 0078 ldrb r0, [r0]
| | ||| 0x0801f3c2 dff84817 ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| | ||| 0x0801f3c6 0968 ldr r1, [r1]
| | ||| 0x0801f3c8 11eb4000 adds.w r0, r1, r0, lsl 1
| | ||| 0x0801f3cc 3121 movs r1, 0x31 ; '1' ; 49
| | ||| 0x0801f3ce 20f8021c strh r1, [r0, -0x2]
| |,====< 0x0801f3d2 1ce0 b 0x801f40e
| |||`--> 0x0801f3d4 dff8680a ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| | 0x0801f3d8 0078 ldrb r0, [r0]
| ||| | 0x0801f3da dff83017 ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| ||| | 0x0801f3de 0968 ldr r1, [r1]
| ||| | 0x0801f3e0 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| | 0x0801f3e4 30f8020c ldrh r0, [r0, -0x2]
| ||| | 0x0801f3e8 3028 cmp r0, 0x30 ; '0' ; 48
| |||,==< 0x0801f3ea 10d1 bne 0x801f40e
| ||||| 0x0801f3ec dff8500a ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||| 0x0801f3f0 0078 ldrb r0, [r0]
| ||||| 0x0801f3f2 dff8501a ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||| 0x0801f3f6 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| ||||| 0x0801f3fa 3028 cmp r0, 0x30 ; '0' ; 48
| ,======< 0x0801f3fc 07d1 bne 0x801f40e
| |||||| 0x0801f3fe dff8400a ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801f402 0078 ldrb r0, [r0]
| |||||| 0x0801f404 dff83c1a ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801f408 3122 movs r2, 0x31 ; '1' ; 49
| |||||| 0x0801f40a 21f81020 strh.w r2, [r1, r0, lsl 1]
| `````--> 0x0801f40e dff8300a ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | 0x0801f412 0078 ldrb r0, [r0]
| | 0x0801f414 dff8f416 ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| | 0x0801f418 0968 ldr r1, [r1]
| | 0x0801f41a 11eb4000 adds.w r0, r1, r0, lsl 1
| | 0x0801f41e 30f8020c ldrh r0, [r0, -0x2]
| | 0x0801f422 3028 cmp r0, 0x30 ; '0' ; 48
| ,==< 0x0801f424 40f0a180 bne.w 0x801f56a
| || 0x0801f428 dff8140a ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || 0x0801f42c 0078 ldrb r0, [r0]
| || 0x0801f42e dff8141a ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| || 0x0801f432 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| || 0x0801f436 3228 cmp r0, 0x32 ; '2' ; 50
| ,===< 0x0801f438 40f09780 bne.w 0x801f56a
| ||| 0x0801f43c dff8040a ldr.w r0, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||| 0x0801f440 8088 ldrh r0, [r0, 4]
| ||| 0x0801f442 3028 cmp r0, 0x30 ; '0' ; 48
| ,====< 0x0801f444 22d1 bne 0x801f48c
| |||| 0x0801f446 dff8fc09 ldr.w r0, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| |||| 0x0801f44a c088 ldrh r0, [r0, 6]
| |||| 0x0801f44c 3028 cmp r0, 0x30 ; '0' ; 48
| ,=====< 0x0801f44e 1dd1 bne 0x801f48c
| ||||| 0x0801f450 dff8ec09 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||| 0x0801f454 0078 ldrb r0, [r0]
| ||||| 0x0801f456 dff8ec19 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||| 0x0801f45a 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||| 0x0801f45e 8088 ldrh r0, [r0, 4]
| ||||| 0x0801f460 3328 cmp r0, 0x33 ; '3' ; 51
| ,======< 0x0801f462 c0f0db80 blo.w 0x801f61c
| |||||| 0x0801f466 dff8d809 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801f46a 0078 ldrb r0, [r0]
| |||||| 0x0801f46c dff8d419 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801f470 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801f474 3221 movs r1, 0x32 ; '2' ; 50
| |||||| 0x0801f476 8180 strh r1, [r0, 4]
| |||||| 0x0801f478 dff8c409 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801f47c 0078 ldrb r0, [r0]
| |||||| 0x0801f47e dff8c419 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801f482 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801f486 3921 movs r1, 0x39 ; '9' ; 57
| |||||| 0x0801f488 c180 strh r1, [r0, 6]
| ,=======< 0x0801f48a c7e0 b 0x801f61c
| ||``----> 0x0801f48c dff8bc09 ldr.w r0, [0x0801fe50] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| || ||| 0x0801f490 00f0e0fc bl func_1fe54
| || ||| 0x0801f494 0400 movs r4, r0
| || ||| 0x0801f496 dff8b009 ldr.w r0, [0x0801fe4e] ; [0x801fe4c:4]=0x2001e0d4
| || ||| 0x0801f49a 00f0dbfc bl func_1fe54
| || ||| 0x0801f49e 0a21 movs r1, 0xa ; 10
| || ||| 0x0801f4a0 01fb0400 mla r0, r1, r4, r0
| || ||| 0x0801f4a4 10f5fa64 adds.w r4, r0, 0x7d0
| || ||| 0x0801f4a8 a4b2 uxth r4, r4
| || ||| 0x0801f4aa 0420 movs r0, 4 ; 4
| || ||| 0x0801f4ac 94fbf0f1 sdiv r1, r4, r0
| || ||| 0x0801f4b0 01fb1041 mls r1, r1, r0, r4
| || ||| 0x0801f4b4 0029 cmp r1, 0
| || ,====< 0x0801f4b6 1dd1 bne 0x801f4f4
| || |||| 0x0801f4b8 dff88409 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || |||| 0x0801f4bc 0078 ldrb r0, [r0]
| || |||| 0x0801f4be dff88419 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| || |||| 0x0801f4c2 11eb4000 adds.w r0, r1, r0, lsl 1
| || |||| 0x0801f4c6 8088 ldrh r0, [r0, 4]
| || |||| 0x0801f4c8 3328 cmp r0, 0x33 ; '3' ; 51
| ||,=====< 0x0801f4ca c0f0a780 blo.w 0x801f61c
| ||||||| 0x0801f4ce dff87009 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f4d2 0078 ldrb r0, [r0]
| ||||||| 0x0801f4d4 dff86c19 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f4d8 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f4dc 3221 movs r1, 0x32 ; '2' ; 50
| ||||||| 0x0801f4de 8180 strh r1, [r0, 4]
| ||||||| 0x0801f4e0 dff85c09 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f4e4 0078 ldrb r0, [r0]
| ||||||| 0x0801f4e6 dff85c19 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f4ea 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f4ee 3921 movs r1, 0x39 ; '9' ; 57
| ||||||| 0x0801f4f0 c180 strh r1, [r0, 6]
| ========< 0x0801f4f2 93e0 b 0x801f61c
| |||`----> 0x0801f4f4 dff84809 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| ||| 0x0801f4f8 0078 ldrb r0, [r0]
| ||| ||| 0x0801f4fa dff84819 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||| ||| 0x0801f4fe 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| ||| 0x0801f502 8088 ldrh r0, [r0, 4]
| ||| ||| 0x0801f504 3328 cmp r0, 0x33 ; '3' ; 51
| |||,====< 0x0801f506 12d3 blo 0x801f52e
| ||||||| 0x0801f508 dff83409 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f50c 0078 ldrb r0, [r0]
| ||||||| 0x0801f50e dff83419 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f512 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f516 3221 movs r1, 0x32 ; '2' ; 50
| ||||||| 0x0801f518 8180 strh r1, [r0, 4]
| ||||||| 0x0801f51a dff82409 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f51e 0078 ldrb r0, [r0]
| ||||||| 0x0801f520 dff82019 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f524 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f528 3821 movs r1, 0x38 ; '8' ; 56
| ||||||| 0x0801f52a c180 strh r1, [r0, 6]
| ========< 0x0801f52c 76e0 b 0x801f61c
| |||`----> 0x0801f52e dff81009 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| ||| 0x0801f532 0078 ldrb r0, [r0]
| ||| ||| 0x0801f534 dff80c19 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||| ||| 0x0801f538 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| ||| 0x0801f53c 8088 ldrh r0, [r0, 4]
| ||| ||| 0x0801f53e 3228 cmp r0, 0x32 ; '2' ; 50
| |||,====< 0x0801f540 6cd1 bne 0x801f61c
| ||||||| 0x0801f542 dff8fc08 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f546 0078 ldrb r0, [r0]
| ||||||| 0x0801f548 dff8f818 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f54c 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f550 c088 ldrh r0, [r0, 6]
| ||||||| 0x0801f552 3928 cmp r0, 0x39 ; '9' ; 57
| ========< 0x0801f554 62d1 bne 0x801f61c
| ||||||| 0x0801f556 dff8e808 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f55a 0078 ldrb r0, [r0]
| ||||||| 0x0801f55c dff8e418 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f560 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f564 3821 movs r1, 0x38 ; '8' ; 56
| ||||||| 0x0801f566 c180 strh r1, [r0, 6]
| ========< 0x0801f568 58e0 b 0x801f61c
| ||||``--> 0x0801f56a dff8d408 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| | 0x0801f56e 0078 ldrb r0, [r0]
| |||| | 0x0801f570 dff89815 ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| |||| | 0x0801f574 0968 ldr r1, [r1]
| |||| | 0x0801f576 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| | 0x0801f57a 30f8020c ldrh r0, [r0, -0x2]
| |||| | 0x0801f57e 3028 cmp r0, 0x30 ; '0' ; 48
| |||| ,==< 0x0801f580 08d1 bne 0x801f594
| |||| || 0x0801f582 dff8bc08 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| || 0x0801f586 0078 ldrb r0, [r0]
| |||| || 0x0801f588 dff8b818 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||| || 0x0801f58c 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| |||| || 0x0801f590 3428 cmp r0, 0x34 ; '4' ; 52
| ||||,===< 0x0801f592 26d0 beq 0x801f5e2
| |||||`--> 0x0801f594 dff8a808 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||| | 0x0801f598 0078 ldrb r0, [r0]
| ||||| | 0x0801f59a dff8a818 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||| | 0x0801f59e 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| ||||| | 0x0801f5a2 3628 cmp r0, 0x36 ; '6' ; 54
| |||||,==< 0x0801f5a4 1dd0 beq 0x801f5e2
| ||||||| 0x0801f5a6 dff89808 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f5aa 0078 ldrb r0, [r0]
| ||||||| 0x0801f5ac dff89418 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f5b0 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| ||||||| 0x0801f5b4 3928 cmp r0, 0x39 ; '9' ; 57
| ========< 0x0801f5b6 14d0 beq 0x801f5e2
| ||||||| 0x0801f5b8 dff88408 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f5bc 0078 ldrb r0, [r0]
| ||||||| 0x0801f5be dff84c15 ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801f5c2 0968 ldr r1, [r1]
| ||||||| 0x0801f5c4 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f5c8 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801f5cc 3128 cmp r0, 0x31 ; '1' ; 49
| ========< 0x0801f5ce 25d1 bne 0x801f61c
| ||||||| 0x0801f5d0 dff86c08 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f5d4 0078 ldrb r0, [r0]
| ||||||| 0x0801f5d6 dff86c18 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f5da 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| ||||||| 0x0801f5de 3128 cmp r0, 0x31 ; '1' ; 49
| ========< 0x0801f5e0 1cd1 bne 0x801f61c
| ----``--> 0x0801f5e2 dff85c08 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| | 0x0801f5e6 0078 ldrb r0, [r0]
| |||| | 0x0801f5e8 dff85818 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||| | 0x0801f5ec 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| | 0x0801f5f0 8088 ldrh r0, [r0, 4]
| |||| | 0x0801f5f2 3328 cmp r0, 0x33 ; '3' ; 51
| |||| ,==< 0x0801f5f4 12d3 blo 0x801f61c
| |||| || 0x0801f5f6 dff84808 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| || 0x0801f5fa 0078 ldrb r0, [r0]
| |||| || 0x0801f5fc dff84418 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||| || 0x0801f600 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| || 0x0801f604 c088 ldrh r0, [r0, 6]
| |||| || 0x0801f606 3128 cmp r0, 0x31 ; '1' ; 49
| ||||,===< 0x0801f608 08d1 bne 0x801f61c
| ||||||| 0x0801f60a dff83408 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f60e 0078 ldrb r0, [r0]
| ||||||| 0x0801f610 dff83018 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f614 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f618 3021 movs r1, 0x30 ; '0' ; 48
| ||||||| 0x0801f61a c180 strh r1, [r0, 6]
| ```````-> 0x0801f61c dff82008 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| 0x0801f620 0078 ldrb r0, [r0]
| 0x0801f622 0728 cmp r0, 7 ; 7
| ,=< 0x0801f624 40f04881 bne.w 0x801f8b8
| | 0x0801f628 dff81408 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | 0x0801f62c 0078 ldrb r0, [r0]
| | 0x0801f62e dff81418 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| | 0x0801f632 11eb4000 adds.w r0, r1, r0, lsl 1
| | 0x0801f636 30f8040c ldrh r0, [r0, -0x4]
| | 0x0801f63a 3128 cmp r0, 0x31 ; '1' ; 49
| ,==< 0x0801f63c 16d1 bne 0x801f66c
| || 0x0801f63e dff80008 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || 0x0801f642 0078 ldrb r0, [r0]
| || 0x0801f644 dff8c414 ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| || 0x0801f648 0968 ldr r1, [r1]
| || 0x0801f64a 11eb4000 adds.w r0, r1, r0, lsl 1
| || 0x0801f64e 30f8020c ldrh r0, [r0, -0x2]
| || 0x0801f652 3328 cmp r0, 0x33 ; '3' ; 51
| ,===< 0x0801f654 0ad3 blo 0x801f66c
| ||| 0x0801f656 dff8e807 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| 0x0801f65a 0078 ldrb r0, [r0]
| ||| 0x0801f65c dff8ac14 ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| ||| 0x0801f660 0968 ldr r1, [r1]
| ||| 0x0801f662 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| 0x0801f666 3221 movs r1, 0x32 ; '2' ; 50
| ||| 0x0801f668 20f8021c strh r1, [r0, -0x2]
| ``--> 0x0801f66c dff8d007 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | 0x0801f670 0078 ldrb r0, [r0]
| | 0x0801f672 dff8d017 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| | 0x0801f676 11eb4000 adds.w r0, r1, r0, lsl 1
| | 0x0801f67a 30f8040c ldrh r0, [r0, -0x4]
| | 0x0801f67e 3028 cmp r0, 0x30 ; '0' ; 48
| ,==< 0x0801f680 16d1 bne 0x801f6b0
| || 0x0801f682 dff8bc07 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || 0x0801f686 0078 ldrb r0, [r0]
| || 0x0801f688 dff88014 ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| || 0x0801f68c 0968 ldr r1, [r1]
| || 0x0801f68e 11eb4000 adds.w r0, r1, r0, lsl 1
| || 0x0801f692 30f8020c ldrh r0, [r0, -0x2]
| || 0x0801f696 3028 cmp r0, 0x30 ; '0' ; 48
| ,===< 0x0801f698 0ad1 bne 0x801f6b0
| ||| 0x0801f69a dff8a407 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| 0x0801f69e 0078 ldrb r0, [r0]
| ||| 0x0801f6a0 dff86814 ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| ||| 0x0801f6a4 0968 ldr r1, [r1]
| ||| 0x0801f6a6 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| 0x0801f6aa 3121 movs r1, 0x31 ; '1' ; 49
| ||| 0x0801f6ac 20f8021c strh r1, [r0, -0x2]
| ``--> 0x0801f6b0 dff88c07 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | 0x0801f6b4 0078 ldrb r0, [r0]
| | 0x0801f6b6 dff85414 ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| | 0x0801f6ba 0968 ldr r1, [r1]
| | 0x0801f6bc 11eb4000 adds.w r0, r1, r0, lsl 1
| | 0x0801f6c0 30f8020c ldrh r0, [r0, -0x2]
| | 0x0801f6c4 3228 cmp r0, 0x32 ; '2' ; 50
| ,==< 0x0801f6c6 40f0a380 bne.w 0x801f810
| || 0x0801f6ca dff87407 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || 0x0801f6ce 0078 ldrb r0, [r0]
| || 0x0801f6d0 dff87017 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| || 0x0801f6d4 11eb4000 adds.w r0, r1, r0, lsl 1
| || 0x0801f6d8 30f8040c ldrh r0, [r0, -0x4]
| || 0x0801f6dc 3028 cmp r0, 0x30 ; '0' ; 48
| ,===< 0x0801f6de 40f09780 bne.w 0x801f810
| ||| 0x0801f6e2 dff86007 ldr.w r0, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||| 0x0801f6e6 8088 ldrh r0, [r0, 4]
| ||| 0x0801f6e8 3028 cmp r0, 0x30 ; '0' ; 48
| ,====< 0x0801f6ea 22d1 bne 0x801f732
| |||| 0x0801f6ec dff85407 ldr.w r0, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||| 0x0801f6f0 c088 ldrh r0, [r0, 6]
| |||| 0x0801f6f2 3028 cmp r0, 0x30 ; '0' ; 48
| ,=====< 0x0801f6f4 1dd1 bne 0x801f732
| ||||| 0x0801f6f6 dff84807 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||| 0x0801f6fa 0078 ldrb r0, [r0]
| ||||| 0x0801f6fc dff84417 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||| 0x0801f700 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||| 0x0801f704 4088 ldrh r0, [r0, 2]
| ||||| 0x0801f706 3328 cmp r0, 0x33 ; '3' ; 51
| ,======< 0x0801f708 c0f0d680 blo.w 0x801f8b8
| |||||| 0x0801f70c dff83007 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801f710 0078 ldrb r0, [r0]
| |||||| 0x0801f712 dff83017 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801f716 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801f71a 3221 movs r1, 0x32 ; '2' ; 50
| |||||| 0x0801f71c 4180 strh r1, [r0, 2]
| |||||| 0x0801f71e dff82007 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801f722 0078 ldrb r0, [r0]
| |||||| 0x0801f724 dff81c17 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801f728 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801f72c 3921 movs r1, 0x39 ; '9' ; 57
| |||||| 0x0801f72e 8180 strh r1, [r0, 4]
| ,=======< 0x0801f730 c2e0 b 0x801f8b8
| ||``----> 0x0801f732 dff81807 ldr.w r0, [0x0801fe52] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| || ||| 0x0801f736 00f08dfb bl func_1fe54
| || ||| 0x0801f73a 0400 movs r4, r0
| || ||| 0x0801f73c dff80807 ldr.w r0, [0x0801fe4c] ; [0x801fe4c:4]=0x2001e0d4
| || ||| 0x0801f740 00f088fb bl func_1fe54
| || ||| 0x0801f744 0a21 movs r1, 0xa ; 10
| || ||| 0x0801f746 01fb0400 mla r0, r1, r4, r0
| || ||| 0x0801f74a 10f5fa64 adds.w r4, r0, 0x7d0
| || ||| 0x0801f74e a4b2 uxth r4, r4
| || ||| 0x0801f750 0420 movs r0, 4 ; 4
| || ||| 0x0801f752 94fbf0f1 sdiv r1, r4, r0
| || ||| 0x0801f756 01fb1041 mls r1, r1, r0, r4
| || ||| 0x0801f75a 0029 cmp r1, 0
| || ,====< 0x0801f75c 1dd1 bne 0x801f79a
| || |||| 0x0801f75e dff8e006 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || |||| 0x0801f762 0078 ldrb r0, [r0]
| || |||| 0x0801f764 dff8dc16 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| || |||| 0x0801f768 11eb4000 adds.w r0, r1, r0, lsl 1
| || |||| 0x0801f76c 4088 ldrh r0, [r0, 2]
| || |||| 0x0801f76e 3328 cmp r0, 0x33 ; '3' ; 51
| ||,=====< 0x0801f770 c0f0a280 blo.w 0x801f8b8
| ||||||| 0x0801f774 dff8c806 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f778 0078 ldrb r0, [r0]
| ||||||| 0x0801f77a dff8c816 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f77e 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f782 3221 movs r1, 0x32 ; '2' ; 50
| ||||||| 0x0801f784 4180 strh r1, [r0, 2]
| ||||||| 0x0801f786 dff8b806 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f78a 0078 ldrb r0, [r0]
| ||||||| 0x0801f78c dff8b416 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f790 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f794 3921 movs r1, 0x39 ; '9' ; 57
| ||||||| 0x0801f796 8180 strh r1, [r0, 4]
| ========< 0x0801f798 8ee0 b 0x801f8b8
| |||`----> 0x0801f79a dff8a406 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| ||| 0x0801f79e 0078 ldrb r0, [r0]
| ||| ||| 0x0801f7a0 dff8a016 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||| ||| 0x0801f7a4 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| ||| 0x0801f7a8 4088 ldrh r0, [r0, 2]
| ||| ||| 0x0801f7aa 3328 cmp r0, 0x33 ; '3' ; 51
| |||,====< 0x0801f7ac 12d3 blo 0x801f7d4
| ||||||| 0x0801f7ae dff89006 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f7b2 0078 ldrb r0, [r0]
| ||||||| 0x0801f7b4 dff88c16 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f7b8 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f7bc 3221 movs r1, 0x32 ; '2' ; 50
| ||||||| 0x0801f7be 4180 strh r1, [r0, 2]
| ||||||| 0x0801f7c0 dff87c06 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f7c4 0078 ldrb r0, [r0]
| ||||||| 0x0801f7c6 dff87c16 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f7ca 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f7ce 3821 movs r1, 0x38 ; '8' ; 56
| ||||||| 0x0801f7d0 8180 strh r1, [r0, 4]
| ========< 0x0801f7d2 71e0 b 0x801f8b8
| |||`----> 0x0801f7d4 dff86806 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| ||| 0x0801f7d8 0078 ldrb r0, [r0]
| ||| ||| 0x0801f7da dff86816 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||| ||| 0x0801f7de 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| ||| 0x0801f7e2 4088 ldrh r0, [r0, 2]
| ||| ||| 0x0801f7e4 3228 cmp r0, 0x32 ; '2' ; 50
| |||,====< 0x0801f7e6 67d1 bne 0x801f8b8
| ||||||| 0x0801f7e8 dff85406 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f7ec 0078 ldrb r0, [r0]
| ||||||| 0x0801f7ee dff85416 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f7f2 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f7f6 8088 ldrh r0, [r0, 4]
| ||||||| 0x0801f7f8 3928 cmp r0, 0x39 ; '9' ; 57
| ========< 0x0801f7fa 5dd1 bne 0x801f8b8
| ||||||| 0x0801f7fc dff84006 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f800 0078 ldrb r0, [r0]
| ||||||| 0x0801f802 dff84016 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f806 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f80a 3821 movs r1, 0x38 ; '8' ; 56
| ||||||| 0x0801f80c 8180 strh r1, [r0, 4]
| ========< 0x0801f80e 53e0 b 0x801f8b8
| ||||``--> 0x0801f810 dff82c06 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| | 0x0801f814 0078 ldrb r0, [r0]
| |||| | 0x0801f816 bd49 ldr r1, [0x0801fb0e] ; [0x801fb0c:4]=0x200049fc mn_editbuffer_poi
| |||| | 0x0801f818 0968 ldr r1, [r1]
| |||| | 0x0801f81a 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| | 0x0801f81e 30f8020c ldrh r0, [r0, -0x2]
| |||| | 0x0801f822 3428 cmp r0, 0x34 ; '4' ; 52
| |||| ,==< 0x0801f824 2bd0 beq 0x801f87e
| |||| || 0x0801f826 dff81806 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| || 0x0801f82a 0078 ldrb r0, [r0]
| |||| || 0x0801f82c b749 ldr r1, [0x0801fb0c] ; [0x801fb0c:4]=0x200049fc mn_editbuffer_poi
| |||| || 0x0801f82e 0968 ldr r1, [r1]
| |||| || 0x0801f830 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| || 0x0801f834 30f8020c ldrh r0, [r0, -0x2]
| |||| || 0x0801f838 3628 cmp r0, 0x36 ; '6' ; 54
| ||||,===< 0x0801f83a 20d0 beq 0x801f87e
| ||||||| 0x0801f83c dff80006 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f840 0078 ldrb r0, [r0]
| ||||||| 0x0801f842 b249 ldr r1, [0x0801fb0e] ; [0x801fb0c:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801f844 0968 ldr r1, [r1]
| ||||||| 0x0801f846 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f84a 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801f84e 3928 cmp r0, 0x39 ; '9' ; 57
| ========< 0x0801f850 15d0 beq 0x801f87e
| ||||||| 0x0801f852 dff8ec05 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f856 0078 ldrb r0, [r0]
| ||||||| 0x0801f858 ac49 ldr r1, [0x0801fb0c] ; [0x801fb0c:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801f85a 0968 ldr r1, [r1]
| ||||||| 0x0801f85c 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f860 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801f864 3128 cmp r0, 0x31 ; '1' ; 49
| ========< 0x0801f866 27d1 bne 0x801f8b8
| ||||||| 0x0801f868 dff8d405 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f86c 0078 ldrb r0, [r0]
| ||||||| 0x0801f86e dff8d415 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f872 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f876 30f8040c ldrh r0, [r0, -0x4]
| ||||||| 0x0801f87a 3128 cmp r0, 0x31 ; '1' ; 49
| ========< 0x0801f87c 1cd1 bne 0x801f8b8
| ----``--> 0x0801f87e dff8c005 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| | 0x0801f882 0078 ldrb r0, [r0]
| |||| | 0x0801f884 dff8bc15 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||| | 0x0801f888 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| | 0x0801f88c 4088 ldrh r0, [r0, 2]
| |||| | 0x0801f88e 3328 cmp r0, 0x33 ; '3' ; 51
| |||| ,==< 0x0801f890 12d3 blo 0x801f8b8
| |||| || 0x0801f892 dff8ac05 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| || 0x0801f896 0078 ldrb r0, [r0]
| |||| || 0x0801f898 dff8a815 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||| || 0x0801f89c 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| || 0x0801f8a0 8088 ldrh r0, [r0, 4]
| |||| || 0x0801f8a2 3128 cmp r0, 0x31 ; '1' ; 49
| ||||,===< 0x0801f8a4 08d1 bne 0x801f8b8
| ||||||| 0x0801f8a6 dff89805 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801f8aa 0078 ldrb r0, [r0]
| ||||||| 0x0801f8ac dff89415 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801f8b0 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801f8b4 3021 movs r1, 0x30 ; '0' ; 48
| ||||||| 0x0801f8b6 8180 strh r1, [r0, 4]
| ```````-> 0x0801f8b8 dff88405 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| 0x0801f8bc 0078 ldrb r0, [r0]
| 0x0801f8be 0928 cmp r0, 9 ; 9
| ,=< 0x0801f8c0 40f06681 bne.w 0x801fb90
| | 0x0801f8c4 dff87805 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | 0x0801f8c8 0078 ldrb r0, [r0]
| | 0x0801f8ca 9049 ldr r1, [0x0801fb0e] ; [0x801fb0c:4]=0x200049fc mn_editbuffer_poi
| | 0x0801f8cc 0968 ldr r1, [r1]
| | 0x0801f8ce 11eb4000 adds.w r0, r1, r0, lsl 1
| | 0x0801f8d2 30f8020c ldrh r0, [r0, -0x2]
| | 0x0801f8d6 3028 cmp r0, 0x30 ; '0' ; 48
| ,==< 0x0801f8d8 10d1 bne 0x801f8fc
| || 0x0801f8da dff86405 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || 0x0801f8de 0078 ldrb r0, [r0]
| || 0x0801f8e0 dff86015 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| || 0x0801f8e4 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| || 0x0801f8e8 3028 cmp r0, 0x30 ; '0' ; 48
| ,===< 0x0801f8ea 07d1 bne 0x801f8fc
| ||| 0x0801f8ec dff85005 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| 0x0801f8f0 0078 ldrb r0, [r0]
| ||| 0x0801f8f2 dff85015 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||| 0x0801f8f6 3122 movs r2, 0x31 ; '1' ; 49
| ||| 0x0801f8f8 21f81020 strh.w r2, [r1, r0, lsl 1]
| ``--> 0x0801f8fc dff84005 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | 0x0801f900 0078 ldrb r0, [r0]
| | 0x0801f902 dff84015 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| | 0x0801f906 11eb4000 adds.w r0, r1, r0, lsl 1
| | 0x0801f90a 30f8060c ldrh r0, [r0, -0x6]
| | 0x0801f90e 3228 cmp r0, 0x32 ; '2' ; 50
| ,==< 0x0801f910 5bd1 bne 0x801f9ca
| || 0x0801f912 dff82c05 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || 0x0801f916 0078 ldrb r0, [r0]
| || 0x0801f918 dff82815 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| || 0x0801f91c 11eb4000 adds.w r0, r1, r0, lsl 1
| || 0x0801f920 30f8080c ldrh r0, [r0, -0x8]
| || 0x0801f924 3028 cmp r0, 0x30 ; '0' ; 48
| ,===< 0x0801f926 50d1 bne 0x801f9ca
| ||| 0x0801f928 dff81405 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| 0x0801f92c 0078 ldrb r0, [r0]
| ||| 0x0801f92e 7749 ldr r1, [0x0801fb0e] ; [0x801fb0c:4]=0x200049fc mn_editbuffer_poi
| ||| 0x0801f930 0968 ldr r1, [r1]
| ||| 0x0801f932 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| 0x0801f936 30f8020c ldrh r0, [r0, -0x2]
| ||| 0x0801f93a 3228 cmp r0, 0x32 ; '2' ; 50
| ,====< 0x0801f93c c0f02881 blo.w 0x801fb90
| |||| 0x0801f940 dff80805 ldr.w r0, [0x0801fe50] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| |||| 0x0801f944 00f086fa bl func_1fe54
| |||| 0x0801f948 0400 movs r4, r0
| |||| 0x0801f94a dff8fc04 ldr.w r0, [0x0801fe4e] ; [0x801fe4c:4]=0x2001e0d4
| |||| 0x0801f94e 00f081fa bl func_1fe54
| |||| 0x0801f952 0a21 movs r1, 0xa ; 10
| |||| 0x0801f954 01fb0400 mla r0, r1, r4, r0
| |||| 0x0801f958 10f5fa64 adds.w r4, r0, 0x7d0
| |||| 0x0801f95c dff8e004 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| 0x0801f960 0078 ldrb r0, [r0]
| |||| 0x0801f962 dff8e014 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| |||| 0x0801f966 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| |||| 0x0801f96a 3928 cmp r0, 0x39 ; '9' ; 57
| ,=====< 0x0801f96c 07d2 bhs 0x801f97e
| ||||| 0x0801f96e a4b2 uxth r4, r4
| ||||| 0x0801f970 0420 movs r0, 4 ; 4
| ||||| 0x0801f972 94fbf0f1 sdiv r1, r4, r0
| ||||| 0x0801f976 01fb1041 mls r1, r1, r0, r4
| ||||| 0x0801f97a 0029 cmp r1, 0
| ,======< 0x0801f97c 12d0 beq 0x801f9a4
| |`-----> 0x0801f97e dff8c004 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | |||| 0x0801f982 0078 ldrb r0, [r0]
| | |||| 0x0801f984 6149 ldr r1, [0x0801fb0c] ; [0x801fb0c:4]=0x200049fc mn_editbuffer_poi
| | |||| 0x0801f986 0968 ldr r1, [r1]
| | |||| 0x0801f988 11eb4000 adds.w r0, r1, r0, lsl 1
| | |||| 0x0801f98c 3221 movs r1, 0x32 ; '2' ; 50
| | |||| 0x0801f98e 20f8021c strh r1, [r0, -0x2]
| | |||| 0x0801f992 dff8ac04 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | |||| 0x0801f996 0078 ldrb r0, [r0]
| | |||| 0x0801f998 dff8a814 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| | |||| 0x0801f99c 3822 movs r2, 0x38 ; '8' ; 56
| | |||| 0x0801f99e 21f81020 strh.w r2, [r1, r0, lsl 1]
| |,=====< 0x0801f9a2 f5e0 b 0x801fb90
| `------> 0x0801f9a4 dff89804 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||| 0x0801f9a8 0078 ldrb r0, [r0]
| ||||| 0x0801f9aa 5849 ldr r1, [0x0801fb0e] ; [0x801fb0c:4]=0x200049fc mn_editbuffer_poi
| ||||| 0x0801f9ac 0968 ldr r1, [r1]
| ||||| 0x0801f9ae 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||| 0x0801f9b2 3221 movs r1, 0x32 ; '2' ; 50
| ||||| 0x0801f9b4 20f8021c strh r1, [r0, -0x2]
| ||||| 0x0801f9b8 dff88404 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||| 0x0801f9bc 0078 ldrb r0, [r0]
| ||||| 0x0801f9be dff88414 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||| 0x0801f9c2 3922 movs r2, 0x39 ; '9' ; 57
| ||||| 0x0801f9c4 21f81020 strh.w r2, [r1, r0, lsl 1]
| ,======< 0x0801f9c8 e2e0 b 0x801fb90
| |||``--> 0x0801f9ca dff87404 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| | 0x0801f9ce 0078 ldrb r0, [r0]
| ||| | 0x0801f9d0 4e49 ldr r1, [0x0801fb0c] ; [0x801fb0c:4]=0x200049fc mn_editbuffer_poi
| ||| | 0x0801f9d2 0968 ldr r1, [r1]
| ||| | 0x0801f9d4 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| | 0x0801f9d8 30f8020c ldrh r0, [r0, -0x2]
| ||| | 0x0801f9dc 3328 cmp r0, 0x33 ; '3' ; 51
| ||| ,==< 0x0801f9de c0f0d780 blo.w 0x801fb90
| ||| || 0x0801f9e2 dff85c04 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| || 0x0801f9e6 0078 ldrb r0, [r0]
| ||| || 0x0801f9e8 dff85814 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||| || 0x0801f9ec 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| || 0x0801f9f0 30f8060c ldrh r0, [r0, -0x6]
| ||| || 0x0801f9f4 3128 cmp r0, 0x31 ; '1' ; 49
| |||,===< 0x0801f9f6 0ad1 bne 0x801fa0e
| |||||| 0x0801f9f8 dff84404 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801f9fc 0078 ldrb r0, [r0]
| |||||| 0x0801f9fe dff84414 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801fa02 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801fa06 30f8080c ldrh r0, [r0, -0x8]
| |||||| 0x0801fa0a 3028 cmp r0, 0x30 ; '0' ; 48
| ,=======< 0x0801fa0c 57d0 beq 0x801fabe
| ||||`---> 0x0801fa0e dff83004 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| || 0x0801fa12 0078 ldrb r0, [r0]
| |||| || 0x0801fa14 dff82c14 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||| || 0x0801fa18 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| || 0x0801fa1c 30f8060c ldrh r0, [r0, -0x6]
| |||| || 0x0801fa20 3328 cmp r0, 0x33 ; '3' ; 51
| ||||,===< 0x0801fa22 4cd0 beq 0x801fabe
| ||||||| 0x0801fa24 dff81804 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fa28 0078 ldrb r0, [r0]
| ||||||| 0x0801fa2a dff81814 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801fa2e 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fa32 30f8060c ldrh r0, [r0, -0x6]
| ||||||| 0x0801fa36 3528 cmp r0, 0x35 ; '5' ; 53
| ========< 0x0801fa38 41d0 beq 0x801fabe
| ||||||| 0x0801fa3a dff80404 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fa3e 0078 ldrb r0, [r0]
| ||||||| 0x0801fa40 dff80014 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801fa44 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fa48 30f8060c ldrh r0, [r0, -0x6]
| ||||||| 0x0801fa4c 3728 cmp r0, 0x37 ; '7' ; 55
| ========< 0x0801fa4e 36d0 beq 0x801fabe
| ||||||| 0x0801fa50 dff8ec03 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fa54 0078 ldrb r0, [r0]
| ||||||| 0x0801fa56 dff8ec13 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801fa5a 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fa5e 30f8060c ldrh r0, [r0, -0x6]
| ||||||| 0x0801fa62 3828 cmp r0, 0x38 ; '8' ; 56
| ========< 0x0801fa64 2bd0 beq 0x801fabe
| ||||||| 0x0801fa66 dff8d803 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fa6a 0078 ldrb r0, [r0]
| ||||||| 0x0801fa6c dff8d413 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801fa70 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fa74 30f8080c ldrh r0, [r0, -0x8]
| ||||||| 0x0801fa78 3128 cmp r0, 0x31 ; '1' ; 49
| ========< 0x0801fa7a 0ad1 bne 0x801fa92
| ||||||| 0x0801fa7c dff8c003 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fa80 0078 ldrb r0, [r0]
| ||||||| 0x0801fa82 dff8c013 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801fa86 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fa8a 30f8060c ldrh r0, [r0, -0x6]
| ||||||| 0x0801fa8e 3028 cmp r0, 0x30 ; '0' ; 48
| ========< 0x0801fa90 15d0 beq 0x801fabe
| --------> 0x0801fa92 dff8ac03 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fa96 0078 ldrb r0, [r0]
| ||||||| 0x0801fa98 dff8a813 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801fa9c 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801faa0 30f8080c ldrh r0, [r0, -0x8]
| ||||||| 0x0801faa4 3128 cmp r0, 0x31 ; '1' ; 49
| ========< 0x0801faa6 33d1 bne 0x801fb10
| ||||||| 0x0801faa8 dff89403 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801faac 0078 ldrb r0, [r0]
| ||||||| 0x0801faae dff89413 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801fab2 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fab6 30f8060c ldrh r0, [r0, -0x6]
| ||||||| 0x0801faba 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x0801fabc 28d1 bne 0x801fb10
| `---`---> 0x0801fabe dff88003 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| || 0x0801fac2 0078 ldrb r0, [r0]
| ||| || 0x0801fac4 dff87c13 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||| || 0x0801fac8 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| ||| || 0x0801facc 3028 cmp r0, 0x30 ; '0' ; 48
| |||,===< 0x0801face 0ad1 bne 0x801fae6
| |||||| 0x0801fad0 dff86c03 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801fad4 0078 ldrb r0, [r0]
| |||||| 0x0801fad6 0d49 ldr r1, [0x0801fb0e] ; [0x801fb0c:4]=0x200049fc mn_editbuffer_poi
| |||||| 0x0801fad8 0968 ldr r1, [r1]
| |||||| 0x0801fada 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801fade 30f8020c ldrh r0, [r0, -0x2]
| |||||| 0x0801fae2 3428 cmp r0, 0x34 ; '4' ; 52
| ,=======< 0x0801fae4 07d3 blo 0x801faf6
| ||||`---> 0x0801fae6 dff85803 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| || 0x0801faea 0078 ldrb r0, [r0]
| |||| || 0x0801faec dff85413 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| |||| || 0x0801faf0 3122 movs r2, 0x31 ; '1' ; 49
| |||| || 0x0801faf2 21f81020 strh.w r2, [r1, r0, lsl 1]
| `-------> 0x0801faf6 dff84803 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| || 0x0801fafa 0078 ldrb r0, [r0]
| ||| || 0x0801fafc 0349 ldr r1, [0x0801fb0c] ; [0x801fb0c:4]=0x200049fc mn_editbuffer_poi
| ||| || 0x0801fafe 0968 ldr r1, [r1]
| ||| || 0x0801fb00 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| || 0x0801fb04 3321 movs r1, 0x33 ; '3' ; 51
| ||| || 0x0801fb06 20f8021c strh r1, [r0, -0x2]
| |||,===< 0x0801fb0a 41e0 b 0x801fb90
| |||||| 0x0801fb0c fc49 ldr r1, [0x0801ff00] ; [0x801ff00:4]=0x70012115
| |||||| 0x0801fb0e 0020 movs r0, 0
| --------> 0x0801fb10 dff82c03 ldr.w r0, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801fb14 0078 ldrb r0, [r0]
| |||||| 0x0801fb16 dff82c13 ldr.w r1, [0x0801fe4a] ; [0x801fe48:4]=0x2001e0d6
| |||||| 0x0801fb1a 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801fb1e 30f8060c ldrh r0, [r0, -0x6]
| |||||| 0x0801fb22 3428 cmp r0, 0x34 ; '4' ; 52
| ,=======< 0x0801fb24 25d0 beq 0x801fb72
| ||||||| 0x0801fb26 dff81803 ldr.w r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fb2a 0078 ldrb r0, [r0]
| ||||||| 0x0801fb2c dff81413 ldr.w r1, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801fb30 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fb34 30f8060c ldrh r0, [r0, -0x6]
| ||||||| 0x0801fb38 3628 cmp r0, 0x36 ; '6' ; 54
| ========< 0x0801fb3a 1ad0 beq 0x801fb72
| ||||||| 0x0801fb3c c048 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fb3e 0078 ldrb r0, [r0]
| ||||||| 0x0801fb40 c049 ldr r1, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fb42 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fb46 30f8060c ldrh r0, [r0, -0x6]
| ||||||| 0x0801fb4a 3928 cmp r0, 0x39 ; '9' ; 57
| ========< 0x0801fb4c 11d0 beq 0x801fb72
| ||||||| 0x0801fb4e bc48 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fb50 0078 ldrb r0, [r0]
| ||||||| 0x0801fb52 bc49 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fb54 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fb58 30f8060c ldrh r0, [r0, -0x6]
| ||||||| 0x0801fb5c 3128 cmp r0, 0x31 ; '1' ; 49
| ========< 0x0801fb5e 17d1 bne 0x801fb90
| ||||||| 0x0801fb60 b748 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fb62 0078 ldrb r0, [r0]
| ||||||| 0x0801fb64 b749 ldr r1, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fb66 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fb6a 30f8080c ldrh r0, [r0, -0x8]
| ||||||| 0x0801fb6e 3128 cmp r0, 0x31 ; '1' ; 49
| ========< 0x0801fb70 0ed1 bne 0x801fb90
| `-------> 0x0801fb72 b348 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| |||||| 0x0801fb74 0078 ldrb r0, [r0]
| |||||| 0x0801fb76 b649 ldr r1, [0x0801fe52] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| |||||| 0x0801fb78 0968 ldr r1, [r1]
| |||||| 0x0801fb7a 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801fb7e 3321 movs r1, 0x33 ; '3' ; 51
| |||||| 0x0801fb80 20f8021c strh r1, [r0, -0x2]
| |||||| 0x0801fb84 ae48 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| |||||| 0x0801fb86 0078 ldrb r0, [r0]
| |||||| 0x0801fb88 ae49 ldr r1, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801fb8a 3022 movs r2, 0x30 ; '0' ; 48
| |||||| 0x0801fb8c 21f81020 strh.w r2, [r1, r0, lsl 1]
| -``````-> 0x0801fb90 ab48 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| 0x0801fb92 0078 ldrb r0, [r0]
| 0x0801fb94 0a28 cmp r0, 0xa ; 10
| ,=< 0x0801fb96 40f05281 bne.w 0x801fe3e
| | 0x0801fb9a a948 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| | 0x0801fb9c 0078 ldrb r0, [r0]
| | 0x0801fb9e a949 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | 0x0801fba0 11eb4000 adds.w r0, r1, r0, lsl 1
| | 0x0801fba4 30f8040c ldrh r0, [r0, -0x4]
| | 0x0801fba8 3028 cmp r0, 0x30 ; '0' ; 48
| ,==< 0x0801fbaa 12d1 bne 0x801fbd2
| || 0x0801fbac a448 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| || 0x0801fbae 0078 ldrb r0, [r0]
| || 0x0801fbb0 a749 ldr r1, [0x0801fe50] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| || 0x0801fbb2 0968 ldr r1, [r1]
| || 0x0801fbb4 11eb4000 adds.w r0, r1, r0, lsl 1
| || 0x0801fbb8 30f8020c ldrh r0, [r0, -0x2]
| || 0x0801fbbc 3028 cmp r0, 0x30 ; '0' ; 48
| ,===< 0x0801fbbe 08d1 bne 0x801fbd2
| ||| 0x0801fbc0 9f48 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||| 0x0801fbc2 0078 ldrb r0, [r0]
| ||| 0x0801fbc4 a249 ldr r1, [0x0801fe50] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| ||| 0x0801fbc6 0968 ldr r1, [r1]
| ||| 0x0801fbc8 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| 0x0801fbcc 3121 movs r1, 0x31 ; '1' ; 49
| ||| 0x0801fbce 20f8021c strh r1, [r0, -0x2]
| ``--> 0x0801fbd2 9b48 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| | 0x0801fbd4 0078 ldrb r0, [r0]
| | 0x0801fbd6 9b49 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | 0x0801fbd8 11eb4000 adds.w r0, r1, r0, lsl 1
| | 0x0801fbdc 30f8080c ldrh r0, [r0, -0x8]
| | 0x0801fbe0 3128 cmp r0, 0x31 ; '1' ; 49
| ,==< 0x0801fbe2 08d1 bne 0x801fbf6
| || 0x0801fbe4 9648 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| || 0x0801fbe6 0078 ldrb r0, [r0]
| || 0x0801fbe8 9649 ldr r1, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| || 0x0801fbea 11eb4000 adds.w r0, r1, r0, lsl 1
| || 0x0801fbee 30f80a0c ldrh r0, [r0, -0xa]
| || 0x0801fbf2 3028 cmp r0, 0x30 ; '0' ; 48
| ,===< 0x0801fbf4 47d0 beq 0x801fc86
| |`--> 0x0801fbf6 9248 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| | | 0x0801fbf8 0078 ldrb r0, [r0]
| | | 0x0801fbfa 9249 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | | 0x0801fbfc 11eb4000 adds.w r0, r1, r0, lsl 1
| | | 0x0801fc00 30f8080c ldrh r0, [r0, -0x8]
| | | 0x0801fc04 3328 cmp r0, 0x33 ; '3' ; 51
| |,==< 0x0801fc06 3ed0 beq 0x801fc86
| ||| 0x0801fc08 8d48 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||| 0x0801fc0a 0078 ldrb r0, [r0]
| ||| 0x0801fc0c 8d49 ldr r1, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||| 0x0801fc0e 11eb4000 adds.w r0, r1, r0, lsl 1
| ||| 0x0801fc12 30f8080c ldrh r0, [r0, -0x8]
| ||| 0x0801fc16 3528 cmp r0, 0x35 ; '5' ; 53
| ,====< 0x0801fc18 35d0 beq 0x801fc86
| |||| 0x0801fc1a 8948 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| |||| 0x0801fc1c 0078 ldrb r0, [r0]
| |||| 0x0801fc1e 8949 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| 0x0801fc20 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| 0x0801fc24 30f8080c ldrh r0, [r0, -0x8]
| |||| 0x0801fc28 3728 cmp r0, 0x37 ; '7' ; 55
| ,=====< 0x0801fc2a 2cd0 beq 0x801fc86
| ||||| 0x0801fc2c 8448 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||| 0x0801fc2e 0078 ldrb r0, [r0]
| ||||| 0x0801fc30 8449 ldr r1, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||| 0x0801fc32 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||| 0x0801fc36 30f8080c ldrh r0, [r0, -0x8]
| ||||| 0x0801fc3a 3828 cmp r0, 0x38 ; '8' ; 56
| ,======< 0x0801fc3c 23d0 beq 0x801fc86
| |||||| 0x0801fc3e 8048 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| |||||| 0x0801fc40 0078 ldrb r0, [r0]
| |||||| 0x0801fc42 8049 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801fc44 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801fc48 30f80a0c ldrh r0, [r0, -0xa]
| |||||| 0x0801fc4c 3128 cmp r0, 0x31 ; '1' ; 49
| ,=======< 0x0801fc4e 08d1 bne 0x801fc62
| ||||||| 0x0801fc50 7b48 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fc52 0078 ldrb r0, [r0]
| ||||||| 0x0801fc54 7b49 ldr r1, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fc56 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fc5a 30f8080c ldrh r0, [r0, -0x8]
| ||||||| 0x0801fc5e 3028 cmp r0, 0x30 ; '0' ; 48
| ========< 0x0801fc60 11d0 beq 0x801fc86
| `-------> 0x0801fc62 7748 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| |||||| 0x0801fc64 0078 ldrb r0, [r0]
| |||||| 0x0801fc66 7749 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801fc68 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801fc6c 30f80a0c ldrh r0, [r0, -0xa]
| |||||| 0x0801fc70 3128 cmp r0, 0x31 ; '1' ; 49
| ,=======< 0x0801fc72 27d1 bne 0x801fcc4
| ||||||| 0x0801fc74 7248 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fc76 0078 ldrb r0, [r0]
| ||||||| 0x0801fc78 7249 ldr r1, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fc7a 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fc7e 30f8080c ldrh r0, [r0, -0x8]
| ||||||| 0x0801fc82 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x0801fc84 1ed1 bne 0x801fcc4
| -`````--> 0x0801fc86 6e48 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| | | 0x0801fc88 0078 ldrb r0, [r0]
| | | 0x0801fc8a 6e49 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| | | 0x0801fc8c 11eb4000 adds.w r0, r1, r0, lsl 1
| | | 0x0801fc90 30f8040c ldrh r0, [r0, -0x4]
| | | 0x0801fc94 3328 cmp r0, 0x33 ; '3' ; 51
| | ,==< 0x0801fc96 40f0d280 bne.w 0x801fe3e
| | || 0x0801fc9a 6948 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| | || 0x0801fc9c 0078 ldrb r0, [r0]
| | || 0x0801fc9e 6c49 ldr r1, [0x0801fe52] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| | || 0x0801fca0 0968 ldr r1, [r1]
| | || 0x0801fca2 11eb4000 adds.w r0, r1, r0, lsl 1
| | || 0x0801fca6 30f8020c ldrh r0, [r0, -0x2]
| | || 0x0801fcaa 3228 cmp r0, 0x32 ; '2' ; 50
| | ,===< 0x0801fcac c0f0c780 blo.w 0x801fe3e
| | ||| 0x0801fcb0 6348 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| | ||| 0x0801fcb2 0078 ldrb r0, [r0]
| | ||| 0x0801fcb4 6649 ldr r1, [0x0801fe50] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| | ||| 0x0801fcb6 0968 ldr r1, [r1]
| | ||| 0x0801fcb8 11eb4000 adds.w r0, r1, r0, lsl 1
| | ||| 0x0801fcbc 3121 movs r1, 0x31 ; '1' ; 49
| | ||| 0x0801fcbe 20f8021c strh r1, [r0, -0x2]
| | ,====< 0x0801fcc2 bce0 b 0x801fe3e
| `-------> 0x0801fcc4 5e48 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| |||| 0x0801fcc6 0078 ldrb r0, [r0]
| |||| 0x0801fcc8 5e49 ldr r1, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| 0x0801fcca 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| 0x0801fcce 30f8080c ldrh r0, [r0, -0x8]
| |||| 0x0801fcd2 3428 cmp r0, 0x34 ; '4' ; 52
| ,=====< 0x0801fcd4 23d0 beq 0x801fd1e
| ||||| 0x0801fcd6 5a48 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||| 0x0801fcd8 0078 ldrb r0, [r0]
| ||||| 0x0801fcda 5a49 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||| 0x0801fcdc 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||| 0x0801fce0 30f8080c ldrh r0, [r0, -0x8]
| ||||| 0x0801fce4 3628 cmp r0, 0x36 ; '6' ; 54
| ,======< 0x0801fce6 1ad0 beq 0x801fd1e
| |||||| 0x0801fce8 5548 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| |||||| 0x0801fcea 0078 ldrb r0, [r0]
| |||||| 0x0801fcec 5549 ldr r1, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||||| 0x0801fcee 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801fcf2 30f8080c ldrh r0, [r0, -0x8]
| |||||| 0x0801fcf6 3928 cmp r0, 0x39 ; '9' ; 57
| ,=======< 0x0801fcf8 11d0 beq 0x801fd1e
| ||||||| 0x0801fcfa 5148 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fcfc 0078 ldrb r0, [r0]
| ||||||| 0x0801fcfe 5149 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fd00 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fd04 30f8080c ldrh r0, [r0, -0x8]
| ||||||| 0x0801fd08 3128 cmp r0, 0x31 ; '1' ; 49
| ========< 0x0801fd0a 26d1 bne 0x801fd5a
| ||||||| 0x0801fd0c 4c48 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fd0e 0078 ldrb r0, [r0]
| ||||||| 0x0801fd10 4c49 ldr r1, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fd12 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fd16 30f80a0c ldrh r0, [r0, -0xa]
| ||||||| 0x0801fd1a 3128 cmp r0, 0x31 ; '1' ; 49
| ========< 0x0801fd1c 1dd1 bne 0x801fd5a
| ```-----> 0x0801fd1e 4848 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| |||| 0x0801fd20 0078 ldrb r0, [r0]
| |||| 0x0801fd22 4849 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| |||| 0x0801fd24 11eb4000 adds.w r0, r1, r0, lsl 1
| |||| 0x0801fd28 30f8040c ldrh r0, [r0, -0x4]
| |||| 0x0801fd2c 3328 cmp r0, 0x33 ; '3' ; 51
| ,=====< 0x0801fd2e 40f08680 bne.w 0x801fe3e
| ||||| 0x0801fd32 4348 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||| 0x0801fd34 0078 ldrb r0, [r0]
| ||||| 0x0801fd36 4649 ldr r1, [0x0801fe52] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| ||||| 0x0801fd38 0968 ldr r1, [r1]
| ||||| 0x0801fd3a 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||| 0x0801fd3e 30f8020c ldrh r0, [r0, -0x2]
| ||||| 0x0801fd42 3128 cmp r0, 0x31 ; '1' ; 49
| ,======< 0x0801fd44 7bd3 blo 0x801fe3e
| |||||| 0x0801fd46 3e48 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| |||||| 0x0801fd48 0078 ldrb r0, [r0]
| |||||| 0x0801fd4a 4149 ldr r1, [0x0801fe52] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| |||||| 0x0801fd4c 0968 ldr r1, [r1]
| |||||| 0x0801fd4e 11eb4000 adds.w r0, r1, r0, lsl 1
| |||||| 0x0801fd52 3021 movs r1, 0x30 ; '0' ; 48
| |||||| 0x0801fd54 20f8021c strh r1, [r0, -0x2]
| ,=======< 0x0801fd58 71e0 b 0x801fe3e
| --------> 0x0801fd5a 3a48 ldr r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fd5c 8088 ldrh r0, [r0, 4]
| ||||||| 0x0801fd5e 3028 cmp r0, 0x30 ; '0' ; 48
| ========< 0x0801fd60 20d1 bne 0x801fda4
| ||||||| 0x0801fd62 3848 ldr r0, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fd64 c088 ldrh r0, [r0, 6]
| ||||||| 0x0801fd66 3028 cmp r0, 0x30 ; '0' ; 48
| ========< 0x0801fd68 1cd1 bne 0x801fda4
| ||||||| 0x0801fd6a 3548 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fd6c 0078 ldrb r0, [r0]
| ||||||| 0x0801fd6e 3549 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fd70 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fd74 30f8040c ldrh r0, [r0, -0x4]
| ||||||| 0x0801fd78 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x0801fd7a 60d1 bne 0x801fe3e
| ||||||| 0x0801fd7c 3048 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fd7e 0078 ldrb r0, [r0]
| ||||||| 0x0801fd80 3349 ldr r1, [0x0801fe50] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801fd82 0968 ldr r1, [r1]
| ||||||| 0x0801fd84 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fd88 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801fd8c 3a28 cmp r0, 0x3a ; ':' ; 58
| ========< 0x0801fd8e 56d3 blo 0x801fe3e
| ||||||| 0x0801fd90 2b48 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fd92 0078 ldrb r0, [r0]
| ||||||| 0x0801fd94 2e49 ldr r1, [0x0801fe50] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801fd96 0968 ldr r1, [r1]
| ||||||| 0x0801fd98 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fd9c 3921 movs r1, 0x39 ; '9' ; 57
| ||||||| 0x0801fd9e 20f8021c strh r1, [r0, -0x2]
| ========< 0x0801fda2 4ce0 b 0x801fe3e
| --------> 0x0801fda4 2948 ldr r0, [0x0801fe4c] ; [0x801fe4c:4]=0x2001e0d4
| ||||||| 0x0801fda6 00f055f8 bl func_1fe54
| ||||||| 0x0801fdaa 0400 movs r4, r0
| ||||||| 0x0801fdac 2648 ldr r0, [0x0801fe48] ; [0x801fe48:4]=0x2001e0d6
| ||||||| 0x0801fdae 00f051f8 bl func_1fe54
| ||||||| 0x0801fdb2 0a21 movs r1, 0xa ; 10
| ||||||| 0x0801fdb4 01fb0400 mla r0, r1, r4, r0
| ||||||| 0x0801fdb8 10f5fa64 adds.w r4, r0, 0x7d0
| ||||||| 0x0801fdbc a4b2 uxth r4, r4
| ||||||| 0x0801fdbe 0420 movs r0, 4 ; 4
| ||||||| 0x0801fdc0 94fbf0f1 sdiv r1, r4, r0
| ||||||| 0x0801fdc4 01fb1041 mls r1, r1, r0, r4
| ||||||| 0x0801fdc8 0029 cmp r1, 0
| ========< 0x0801fdca 1cd1 bne 0x801fe06
| ||||||| 0x0801fdcc 1c48 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fdce 0078 ldrb r0, [r0]
| ||||||| 0x0801fdd0 1c49 ldr r1, [0x0801fe44] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fdd2 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fdd6 30f8040c ldrh r0, [r0, -0x4]
| ||||||| 0x0801fdda 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x0801fddc 2fd1 bne 0x801fe3e
| ||||||| 0x0801fdde 1848 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fde0 0078 ldrb r0, [r0]
| ||||||| 0x0801fde2 1b49 ldr r1, [0x0801fe52] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801fde4 0968 ldr r1, [r1]
| ||||||| 0x0801fde6 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fdea 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801fdee 3a28 cmp r0, 0x3a ; ':' ; 58
| ========< 0x0801fdf0 25d3 blo 0x801fe3e
| ||||||| 0x0801fdf2 1348 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fdf4 0078 ldrb r0, [r0]
| ||||||| 0x0801fdf6 1649 ldr r1, [0x0801fe52] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801fdf8 0968 ldr r1, [r1]
| ||||||| 0x0801fdfa 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fdfe 3921 movs r1, 0x39 ; '9' ; 57
| ||||||| 0x0801fe00 20f8021c strh r1, [r0, -0x2]
| ========< 0x0801fe04 1be0 b 0x801fe3e
| --------> 0x0801fe06 0e48 ldr r0, [0x0801fe42] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fe08 0078 ldrb r0, [r0]
| ||||||| 0x0801fe0a 0e49 ldr r1, [0x0801fe46] ; [0x801fe44:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801fe0c 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fe10 30f8040c ldrh r0, [r0, -0x4]
| ||||||| 0x0801fe14 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x0801fe16 12d1 bne 0x801fe3e
| ||||||| 0x0801fe18 0948 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fe1a 0078 ldrb r0, [r0]
| ||||||| 0x0801fe1c 0c49 ldr r1, [0x0801fe50] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801fe1e 0968 ldr r1, [r1]
| ||||||| 0x0801fe20 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fe24 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801fe28 3928 cmp r0, 0x39 ; '9' ; 57
| ========< 0x0801fe2a 08d3 blo 0x801fe3e
| ||||||| 0x0801fe2c 0448 ldr r0, [0x0801fe40] ; [0x801fe40:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801fe2e 0078 ldrb r0, [r0]
| ||||||| 0x0801fe30 0749 ldr r1, [0x0801fe50] ; [0x801fe50:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801fe32 0968 ldr r1, [r1]
| ||||||| 0x0801fe34 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801fe38 3821 movs r1, 0x38 ; '8' ; 56
| ||||||| 0x0801fe3a 20f8021c strh r1, [r0, -0x2]
\ ```````-> 0x0801fe3e 10bd pop {r4, pc}
/ (fcn) func_1fe54 8
| Caller: func_1f0f0_menu_something
| func_1fe54 ();
| 0x0801fe54 0088 ldrh r0, [r0]
| 0x0801fe56 3038 subs r0, 0x30
| 0x0801fe58 80b2 uxth r0, r0
\ 0x0801fe5a 7047 bx lr
/ (fcn) 650
| md380_menu_12670 ();
| 0x08012670 70b5 push {r4, r5, r6, lr}
| 0x08012672 90b0 sub sp, 0x40 ; '@'
| 0x08012674 0021 movs r1, 0
| 0x08012676 dff87046 ldr.w r4, [0x08012cee] ; [0x8012cec:4]=0x2001e943 md380_menu_max_chars
| 0x0801267a 0025 movs r5, 0
| ,=< 0x0801267c 00e0 b 0x8012680
| .--> 0x0801267e 6d1c adds r5, r5, 1
| |`-> 0x08012680 dff85007 ldr.w r0, [0x08012dd8] ; [0x8012dd8:4]=0x2001cb58 selected_contact_name_wstring
| | 0x08012684 0088 ldrh r0, [r0]
| | 0x08012686 adb2 uxth r5, r5
| | 0x08012688 8542 cmp r5, r0
| |,=< 0x0801268a 68d2 bhs 0x801275e
| || 0x0801268c 04ae add r6, sp, 0x10
| || 0x0801268e 681c adds r0, r5, 1
| || 0x08012690 80b2 uxth r0, r0
| || 0x08012692 fff72ff8 bl func_116f4
| || 0x08012696 80b2 uxth r0, r0
| || 0x08012698 0028 cmp r0, 0
| ,===< 0x0801269a 02d1 bne 0x80126a2
| ||| 0x0801269c 0120 movs r0, 1 ; 1
| ||| 0x0801269e fff729f8 bl func_116f4
| `---> 0x080126a2 80b2 uxth r0, r0
| || 0x080126a4 10f099f9 bl func_229da
| || 0x080126a8 3100 movs r1, r6
| || 0x080126aa dff88008 ldr.w r0, [0x08012f32] ; [0x8012f30:4]=0x2000b5e0
| || 0x080126ae 0068 ldr r0, [r0]
| || 0x080126b0 0002 lsls r0, r0, 8
| || 0x080126b2 000a lsrs r0, r0, 8
| || 0x080126b4 14f092ff bl func_275dc
| || 0x080126b8 c0b2 uxtb r0, r0
| || 0x080126ba 16eb4006 adds.w r6, r6, r0, lsl 1
| || 0x080126be 0020 movs r0, 0
| || 0x080126c0 3080 strh r0, [r6]
| || 0x080126c2 b61c adds r6, r6, 2
| || 0x080126c4 04a8 add r0, sp, 0x10
| || 0x080126c6 0021 movs r1, 0
| ,===< 0x080126c8 01e0 b 0x80126ce
| .----> 0x080126ca 801c adds r0, r0, 2
| |||| 0x080126cc 491c adds r1, r1, 1
| .-`---> 0x080126ce 0288 ldrh r2, [r0]
| || || 0x080126d0 89b2 uxth r1, r1
| || || 0x080126d2 34f81130 ldrh.w r3, [r4, r1, lsl 1]
| || || 0x080126d6 9a42 cmp r2, r3
| || `==< 0x080126d8 d1d1 bne 0x801267e
| || | 0x080126da 0288 ldrh r2, [r0]
| || | 0x080126dc 002a cmp r2, 0
| |`====< 0x080126de f4d1 bne 0x80126ca
| | | 0x080126e0 89b2 uxth r1, r1
| | | 0x080126e2 34f81120 ldrh.w r2, [r4, r1, lsl 1]
| | | 0x080126e6 002a cmp r2, 0
| `=====< 0x080126e8 f1d1 bne 0x80126ce
| | 0x080126ea dff8180a ldr.w r0, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| | 0x080126ee 0078 ldrb r0, [r0]
| | 0x080126f0 0c21 movs r1, 0xc ; 12
| | 0x080126f2 dff8d028 ldr.w r2, [0x08012fca] ; [0x8012fc8:4]=0x8012671
| | 0x080126f6 01fb0020 mla r0, r1, r0, r2
| | 0x080126fa 10f10c04 adds.w r4, r0, 0xc
| | 0x080126fe dff8080a ldr.w r0, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08012702 0068 ldr r0, [r0]
| | 0x08012704 dff8041a ldr.w r1, [0x08013110] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| | 0x08012708 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x0801270c d0f8b802 ldr.w r0, [r0, 0x2b8]
| | 0x08012710 2060 str r0, [r4]
| | 0x08012712 dff8ec09 ldr.w r0, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| | 0x08012716 0078 ldrb r0, [r0]
| | 0x08012718 1421 movs r1, 0x14 ; 20
| | 0x0801271a dff8f429 ldr.w r2, [0x08013116] ; [0x8013114:4]=0xf8dfb5e0
| | 0x0801271e 01fb0020 mla r0, r1, r0, r2
| | 0x08012722 6060 str r0, [r4, 4]
| | 0x08012724 0120 movs r0, 1 ; 1
| | 0x08012726 2072 strb r0, [r4, 8]
| | 0x08012728 0020 movs r0, 0
| | 0x0801272a 6072 strb r0, [r4, 9]
| | 0x0801272c 0020 movs r0, 0
| | 0x0801272e 6081 strh r0, [r4, 0xa]
| | 0x08012730 0120 movs r0, 1 ; 1
| | 0x08012732 0290 str r0, [sp, 8]
| | 0x08012734 0120 movs r0, 1 ; 1
| | 0x08012736 0190 str r0, [sp, 4]
| | 0x08012738 0620 movs r0, 6 ; 6
| | 0x0801273a 0090 str r0, [sp]
| | 0x0801273c 874b ldr r3, [0x0801295c] ; [0x801295c:4]=0x800fc85 menu_entry_back_1
| | 0x0801273e 874a ldr r2, [0x0801295e] ; [0x801295c:4]=0x800fc85 menu_entry_back_1
| | 0x08012740 dff8c409 ldr.w r0, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08012744 0068 ldr r0, [r0]
| | 0x08012746 dff8c419 ldr.w r1, [0x08013112] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| | 0x0801274a 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x0801274e d0f83413 ldr.w r1, [r0, 0x334]
| | 0x08012752 dff8ac09 ldr.w r0, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| | 0x08012756 0078 ldrb r0, [r0]
| | 0x08012758 f9f7e9ff bl md380_create_menu_entry
| ,==< 0x0801275c cbe0 b 0x80128f6
| |`-> 0x0801275e 0026 movs r6, 0
| | 0x08012760 dff8a009 ldr.w r0, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| | 0x08012764 0078 ldrb r0, [r0]
| | 0x08012766 0c21 movs r1, 0xc ; 12
| | 0x08012768 dff85828 ldr.w r2, [0x08012fc8] ; [0x8012fc8:4]=0x8012671
| | 0x0801276c 01fb0020 mla r0, r1, r0, r2
| | 0x08012770 10f10c04 adds.w r4, r0, 0xc
| | 0x08012774 dff86c05 ldr.w r0, [0x08012ce8] ; [0x8012ce8:4]=0x2001cb9a md380_menu_edit_buf
| | 0x08012778 0168 ldr r1, [r0]
| | 0x0801277a 03a8 add r0, sp, 0xc
| | 0x0801277c 14f06bff bl msg_convert
| | 0x08012780 0178 ldrb r1, [r0]
| | 0x08012782 c9b2 uxtb r1, r1
| | 0x08012784 0e43 orrs r6, r1
| | 0x08012786 0168 ldr r1, [r0]
| | 0x08012788 11f47f41 ands r1, r1, 0xff00
| | 0x0801278c 0e43 orrs r6, r1
| | 0x0801278e 0168 ldr r1, [r0]
| | 0x08012790 11f47f01 ands r1, r1, 0xff0000
| | 0x08012794 0e43 orrs r6, r1
| | 0x08012796 0068 ldr r0, [r0]
| | 0x08012798 10f07060 ands r0, r0, 0xf000000
| | 0x0801279c 0643 orrs r6, r0
| | 0x0801279e 0020 movs r0, 0
| |,=< 0x080127a0 00e0 b 0x80127a4
| ..---> 0x080127a2 401c adds r0, r0, 1
| |||`-> 0x080127a4 c0b2 uxtb r0, r0
| ||| 0x080127a6 0828 cmp r0, 8 ; 8
| |||,=< 0x080127a8 10d2 bhs 0x80127cc
| |||| 0x080127aa c0b2 uxtb r0, r0
| |||| 0x080127ac dff83415 ldr.w r1, [0x08012ce8] ; [0x8012ce8:4]=0x2001cb9a md380_menu_edit_buf
| |||| 0x080127b0 0968 ldr r1, [r1]
| |||| 0x080127b2 31f81010 ldrh.w r1, [r1, r0, lsl 1]
| |||| 0x080127b6 3029 cmp r1, 0x30 ; '0' ; 48
| `====< 0x080127b8 f3d0 beq 0x80127a2
| ||| 0x080127ba c0b2 uxtb r0, r0
| ||| 0x080127bc dff82415 ldr.w r1, [0x08012ce8] ; [0x8012ce8:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x080127c0 0968 ldr r1, [r1]
| ||| 0x080127c2 31f81010 ldrh.w r1, [r1, r0, lsl 1]
| ||| 0x080127c6 0029 cmp r1, 0
| `===< 0x080127c8 ebd0 beq 0x80127a2
| || 0x080127ca 0125 movs r5, 1 ; 1
| |`-> 0x080127cc dff81405 ldr.w r0, [0x08012ce8] ; [0x8012ce8:4]=0x2001cb9a md380_menu_edit_buf
| | 0x080127d0 0068 ldr r0, [r0]
| | 0x080127d2 0088 ldrh r0, [r0]
| | 0x080127d4 0028 cmp r0, 0
| |,=< 0x080127d6 06d0 beq 0x80127e6
| || 0x080127d8 edb2 uxtb r5, r5
| || 0x080127da 002d cmp r5, 0
| ,===< 0x080127dc 03d0 beq 0x80127e6
| ||| 0x080127de dff8c809 ldr.w r0, [0x080131ae] ; [0x80131ac:4]=0xf8dfb53e
| ||| 0x080127e2 8642 cmp r6, r0
| ,====< 0x080127e4 59d3 blo 0x801289a
| |`-`-> 0x080127e6 dff8c009 ldr.w r0, [0x080131ae] ; [0x80131ac:4]=0xf8dfb53e
| | | 0x080127ea 8642 cmp r6, r0
| | |,=< 0x080127ec 0ad3 blo 0x8012804
| | || 0x080127ee dff81809 ldr.w r0, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | || 0x080127f2 0068 ldr r0, [r0]
| | || 0x080127f4 dff81419 ldr.w r1, [0x08013110] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| | || 0x080127f8 11eb8000 adds.w r0, r1, r0, lsl 2
| | || 0x080127fc d0f8b802 ldr.w r0, [r0, 0x2b8]
| | || 0x08012800 2060 str r0, [r4]
| |,===< 0x08012802 09e0 b 0x8012818
| |||`-> 0x08012804 dff80009 ldr.w r0, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x08012808 0068 ldr r0, [r0]
| ||| 0x0801280a dff80019 ldr.w r1, [0x08013112] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| ||| 0x0801280e 11eb8000 adds.w r0, r1, r0, lsl 2
| ||| 0x08012812 d0f86802 ldr.w r0, [r0, 0x268]
| ||| 0x08012816 2060 str r0, [r4]
| |`---> 0x08012818 dff8e408 ldr.w r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| | | 0x0801281c 0078 ldrb r0, [r0]
| | | 0x0801281e 1421 movs r1, 0x14 ; 20
| | | 0x08012820 dff8ec28 ldr.w r2, [md380_menu_13114] ; [0x8013114:4]=0xf8dfb5e0
| | | 0x08012824 01fb0020 mla r0, r1, r0, r2
| | | 0x08012828 6060 str r0, [r4, 4]
| | | 0x0801282a 0120 movs r0, 1 ; 1
| | | 0x0801282c 2072 strb r0, [r4, 8]
| | | 0x0801282e 0020 movs r0, 0
| | | 0x08012830 6072 strb r0, [r4, 9]
| | | 0x08012832 0020 movs r0, 0
| | | 0x08012834 6081 strh r0, [r4, 0xa]
| | | 0x08012836 dff87009 ldr.w r0, [0x080131ae] ; [0x80131ac:4]=0xf8dfb53e
| | | 0x0801283a 8642 cmp r6, r0
| | |,=< 0x0801283c 16d3 blo 0x801286c
| | || 0x0801283e 0120 movs r0, 1 ; 1
| | || 0x08012840 0290 str r0, [sp, 8]
| | || 0x08012842 0120 movs r0, 1 ; 1
| | || 0x08012844 0190 str r0, [sp, 4]
| | || 0x08012846 0620 movs r0, 6 ; 6
| | || 0x08012848 0090 str r0, [sp]
| | || 0x0801284a 444b ldr r3, [0x0801295e] ; [0x801295c:4]=0x800fc85 menu_entry_back_1
| | || 0x0801284c 434a ldr r2, [0x0801295c] ; [0x801295c:4]=0x800fc85 menu_entry_back_1
| | || 0x0801284e dff8b808 ldr.w r0, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | || 0x08012852 0068 ldr r0, [r0]
| | || 0x08012854 dff8b418 ldr.w r1, [0x08013110] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| | || 0x08012858 11eb8000 adds.w r0, r1, r0, lsl 2
| | || 0x0801285c d0f83c13 ldr.w r1, [r0, 0x33c]
| | || 0x08012860 dff89c08 ldr.w r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| | || 0x08012864 0078 ldrb r0, [r0]
| | || 0x08012866 f9f762ff bl md380_create_menu_entry
| |,===< 0x0801286a 44e0 b 0x80128f6
| |||`-> 0x0801286c 0120 movs r0, 1 ; 1
| ||| 0x0801286e 0290 str r0, [sp, 8]
| ||| 0x08012870 0120 movs r0, 1 ; 1
| ||| 0x08012872 0190 str r0, [sp, 4]
| ||| 0x08012874 0620 movs r0, 6 ; 6
| ||| 0x08012876 0090 str r0, [sp]
| ||| 0x08012878 384b ldr r3, [0x0801295c] ; [0x801295c:4]=0x800fc85 menu_entry_back_1
| ||| 0x0801287a 384a ldr r2, [0x0801295e] ; [0x801295c:4]=0x800fc85 menu_entry_back_1
| ||| 0x0801287c dff88808 ldr.w r0, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x08012880 0068 ldr r0, [r0]
| ||| 0x08012882 dff88818 ldr.w r1, [0x08013112] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| ||| 0x08012886 11eb8000 adds.w r0, r1, r0, lsl 2
| ||| 0x0801288a d0f87812 ldr.w r1, [r0, 0x278]
| ||| 0x0801288e dff87008 ldr.w r0, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| ||| 0x08012892 0078 ldrb r0, [r0]
| ||| 0x08012894 f9f74bff bl md380_create_menu_entry
| |||,=< 0x08012898 2de0 b 0x80128f6
| `----> 0x0801289a dff86c08 ldr.w r0, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x0801289e 0068 ldr r0, [r0]
| ||| 0x080128a0 dff86818 ldr.w r1, [0x08013110] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| ||| 0x080128a4 11eb8000 adds.w r0, r1, r0, lsl 2
| ||| 0x080128a8 006e ldr r0, [r0, 0x60]
| ||| 0x080128aa 2060 str r0, [r4]
| ||| 0x080128ac dff85008 ldr.w r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| ||| 0x080128b0 0078 ldrb r0, [r0]
| ||| 0x080128b2 1421 movs r1, 0x14 ; 20
| ||| 0x080128b4 dff85828 ldr.w r2, [md380_menu_13114] ; [0x8013114:4]=0xf8dfb5e0
| ||| 0x080128b8 01fb0020 mla r0, r1, r0, r2
| ||| 0x080128bc 6060 str r0, [r4, 4]
| ||| 0x080128be 0120 movs r0, 1 ; 1
| ||| 0x080128c0 2072 strb r0, [r4, 8]
| ||| 0x080128c2 0020 movs r0, 0
| ||| 0x080128c4 6072 strb r0, [r4, 9]
| ||| 0x080128c6 0020 movs r0, 0
| ||| 0x080128c8 6081 strh r0, [r4, 0xa]
| ||| 0x080128ca 0120 movs r0, 1 ; 1
| ||| 0x080128cc 0290 str r0, [sp, 8]
| ||| 0x080128ce 0320 movs r0, 3 ; 3
| ||| 0x080128d0 0190 str r0, [sp, 4]
| ||| 0x080128d2 0620 movs r0, 6 ; 6
| ||| 0x080128d4 0090 str r0, [sp]
| ||| 0x080128d6 dff89439 ldr.w r3, [0x08013272] ; [0x8013270:4]=0xf8dfb510
| ||| 0x080128da 204a ldr r2, [0x0801295e] ; [0x801295c:4]=0x800fc85 menu_entry_back_1
| ||| 0x080128dc dff82808 ldr.w r0, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x080128e0 0068 ldr r0, [r0]
| ||| 0x080128e2 dff82818 ldr.w r1, [0x08013112] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| ||| 0x080128e6 11eb8000 adds.w r0, r1, r0, lsl 2
| ||| 0x080128ea 416e ldr r1, [r0, 0x64]
| ||| 0x080128ec dff81008 ldr.w r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| ||| 0x080128f0 0078 ldrb r0, [r0]
| ||| 0x080128f2 f9f71cff bl md380_create_menu_entry
| ```-> 0x080128f6 10b0 add sp, 0x40
\ 0x080128f8 70bd pop {r4, r5, r6, pc}
/ (fcn) 90
| md380_menu_12900 ();
| 0x08012900 80b5 push {r7, lr}
| 0x08012902 0020 movs r0, 0
| ,=< 0x08012904 04e0 b 0x8012910
| .--> 0x08012906 c0b2 uxtb r0, r0
| || 0x08012908 00a9 add r1, sp, 0
| || 0x0801290a 0022 movs r2, 0
| || 0x0801290c 4254 strb r2, [r0, r1]
| || 0x0801290e 401c adds r0, r0, 1
| |`-> 0x08012910 c0b2 uxtb r0, r0
| | 0x08012912 0328 cmp r0, 3 ; 3
| `==< 0x08012914 f7d3 blo 0x8012906
| 0x08012916 f348 ldr r0, [0x08012ce6] ; [0x8012ce4:4]=0x200049fc mn_editbuffer_poi
| 0x08012918 0168 ldr r1, [r0]
| 0x0801291a 00a8 add r0, sp, 0
| 0x0801291c 14f09bfe bl msg_convert
| 0x08012920 9df80010 ldrb.w r1, [sp]
| 0x08012924 0268 ldr r2, [r0]
| 0x08012926 1143 orrs r1, r2
| 0x08012928 8df80010 strb.w r1, [sp]
| 0x0801292c 9df80110 ldrb.w r1, [sp, 1]
| 0x08012930 0268 ldr r2, [r0]
| 0x08012932 120a lsrs r2, r2, 8
| 0x08012934 1143 orrs r1, r2
| 0x08012936 8df80110 strb.w r1, [sp, 1]
| 0x0801293a 9df80210 ldrb.w r1, [sp, 2]
| 0x0801293e 0068 ldr r0, [r0]
| 0x08012940 000c lsrs r0, r0, 0x10
| 0x08012942 0843 orrs r0, r1
| 0x08012944 8df80200 strb.w r0, [sp, 2]
| 0x08012948 dff85c0d ldr.w r0, [0x080136ac] ; [0x80136ac:4]=0x8012d09
| 0x0801294c 0188 ldrh r1, [r0]
| 0x0801294e 00a8 add r0, sp, 0
| 0x08012950 10f007fc bl func_23162_spiflash_wr_20
| 0x08012954 fef74afe bl func_115ec
\ 0x08012958 01bd pop {r0, pc}
/ (fcn) 156
| md380_menu_12964_uses_event5_buffer ();
| 0x08012964 e0b5 push {r5, r6, r7, lr}
| 0x08012966 0020 movs r0, 0
| ,=< 0x08012968 08e0 b 0x801297c
| .--> 0x0801296a c0b2 uxtb r0, r0
| || 0x0801296c dff89819 ldr.w r1, [0x0801330c] ; [0x801330c:4]=0x2001e8a9 event5_buffer
| || 0x08012970 c0b2 uxtb r0, r0
| || 0x08012972 dff8b825 ldr.w r2, [0x08012f32] ; [0x8012f30:4]=0x2000b5e0
| || 0x08012976 825c ldrb r2, [r0, r2]
| || 0x08012978 4254 strb r2, [r0, r1]
| || 0x0801297a 401c adds r0, r0, 1
| |`-> 0x0801297c c0b2 uxtb r0, r0
| | 0x0801297e 2428 cmp r0, 0x24 ; '$' ; 36
| `==< 0x08012980 f3d3 blo 0x801296a
| 0x08012982 dff88809 ldr.w r0, [0x08013312] ; [0x8013310:4]=0x2001e658 event5_mbox_poi
| 0x08012986 0621 movs r1, 6 ; 6
| 0x08012988 0170 strb r1, [r0]
| 0x0801298a dff88019 ldr.w r1, [0x08013312] ; [0x8013310:4]=0x2001e658 event5_mbox_poi
| 0x0801298e dff88009 ldr.w r0, [0x08013316] ; [0x8013314:4]=0xb082b570
| 0x08012992 0068 ldr r0, [r0]
| 0x08012994 1ef002fc bl md380_OSMboxPost
| 0x08012998 dff86807 ldr.w r0, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| 0x0801299c 0078 ldrb r0, [r0]
| 0x0801299e 0c21 movs r1, 0xc ; 12
| 0x080129a0 dff82026 ldr.w r2, [0x08012fc8] ; [0x8012fc8:4]=0x8012671
| 0x080129a4 01fb0020 mla r0, r1, r0, r2
| 0x080129a8 0c30 adds r0, 0xc
| 0x080129aa dff85c17 ldr.w r1, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080129ae 0968 ldr r1, [r1]
| 0x080129b0 dff85827 ldr.w r2, [0x08013110] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| 0x080129b4 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x080129b8 d1f8e010 ldr.w r1, [r1, 0xe0]
| 0x080129bc 0160 str r1, [r0]
| 0x080129be dff84017 ldr.w r1, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x080129c2 0978 ldrb r1, [r1]
| 0x080129c4 1422 movs r2, 0x14 ; 20
| 0x080129c6 dff84837 ldr.w r3, [0x08013116] ; [0x8013114:4]=0xf8dfb5e0
| 0x080129ca 02fb0131 mla r1, r2, r1, r3
| 0x080129ce 4160 str r1, [r0, 4]
| 0x080129d0 0121 movs r1, 1 ; 1
| 0x080129d2 0172 strb r1, [r0, 8]
| 0x080129d4 0021 movs r1, 0
| 0x080129d6 4172 strb r1, [r0, 9]
| 0x080129d8 0021 movs r1, 0
| 0x080129da 4181 strh r1, [r0, 0xa]
| 0x080129dc 0120 movs r0, 1 ; 1
| 0x080129de 0290 str r0, [sp, 8]
| 0x080129e0 0f20 movs r0, 0xf ; 15
| 0x080129e2 0190 str r0, [sp, 4]
| 0x080129e4 8720 movs r0, 0x87 ; 135
| 0x080129e6 0090 str r0, [sp]
| 0x080129e8 dff8bc39 ldr.w r3, [0x080133ac] ; [0x80133ac:4]=0x8012a09
| 0x080129ec dff8bc29 ldr.w r2, [md380_menu_curr_chn_related_133b0] ; [0x80133b0:4]=0x2400b470
| 0x080129f0 dff8e413 ldr.w r1, [md380_menu_12ddc] ; [0x8012ddc:4]=0x2000b5e0
| 0x080129f4 dff80807 ldr.w r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x080129f8 0078 ldrb r0, [r0]
| 0x080129fa f9f798fe bl md380_create_menu_entry
\ 0x080129fe 07bd pop {r0, r1, r2, pc}
/ (fcn) 210
| md380_menu_12a08 ();
| 0x08012a08 e0b5 push {r5, r6, r7, lr}
| 0x08012a0a dff8f806 ldr.w r0, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| 0x08012a0e 0078 ldrb r0, [r0]
| 0x08012a10 401e subs r0, r0, 1
| 0x08012a12 dff8f016 ldr.w r1, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| 0x08012a16 0870 strb r0, [r1]
| 0x08012a18 dff8e806 ldr.w r0, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| 0x08012a1c 0078 ldrb r0, [r0]
| 0x08012a1e fdf719f9 bl menu_add_number_of_menuentries_counts
| 0x08012a22 dff8dc16 ldr.w r1, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012a26 0870 strb r0, [r1]
| 0x08012a28 dff8d806 ldr.w r0, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| 0x08012a2c 0078 ldrb r0, [r0]
| 0x08012a2e 0c21 movs r1, 0xc ; 12
| 0x08012a30 dff89025 ldr.w r2, [0x08012fc8] ; [0x8012fc8:4]=0x8012671
| 0x08012a34 01fb0020 mla r0, r1, r0, r2
| 0x08012a38 0c30 adds r0, 0xc
| 0x08012a3a dff8cc16 ldr.w r1, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08012a3e 0968 ldr r1, [r1]
| 0x08012a40 dff8c826 ldr.w r2, [0x08013110] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| 0x08012a44 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08012a48 d1f8e410 ldr.w r1, [r1, 0xe4]
| 0x08012a4c 0160 str r1, [r0]
| 0x08012a4e dff8b016 ldr.w r1, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012a52 0978 ldrb r1, [r1]
| 0x08012a54 1422 movs r2, 0x14 ; 20
| 0x08012a56 dff8b836 ldr.w r3, [0x08013116] ; [0x8013114:4]=0xf8dfb5e0
| 0x08012a5a 02fb0131 mla r1, r2, r1, r3
| 0x08012a5e 4160 str r1, [r0, 4]
| 0x08012a60 0121 movs r1, 1 ; 1
| 0x08012a62 0172 strb r1, [r0, 8]
| 0x08012a64 0021 movs r1, 0
| 0x08012a66 4172 strb r1, [r0, 9]
| 0x08012a68 0021 movs r1, 0
| 0x08012a6a 4181 strh r1, [r0, 0xa]
| 0x08012a6c dff8a409 ldr.w r0, [md380_menu_apply_new_zone_maybe] ; [0x8013418:4]=0xf8dfb5e0
| 0x08012a70 0078 ldrb r0, [r0]
| 0x08012a72 0928 cmp r0, 9 ; 9
| ,=< 0x08012a74 18d1 bne 0x8012aa8
| | 0x08012a76 0120 movs r0, 1 ; 1
| | 0x08012a78 0290 str r0, [sp, 8]
| | 0x08012a7a 0120 movs r0, 1 ; 1
| | 0x08012a7c 0190 str r0, [sp, 4]
| | 0x08012a7e 0620 movs r0, 6 ; 6
| | 0x08012a80 0090 str r0, [sp]
| | 0x08012a82 dff82439 ldr.w r3, [0x080133ae] ; [0x80133ac:4]=0x8012a09
| | 0x08012a86 dff82029 ldr.w r2, [0x080133ae] ; [0x80133ac:4]=0x8012a09
| | 0x08012a8a dff87c06 ldr.w r0, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08012a8e 0068 ldr r0, [r0]
| | 0x08012a90 dff87816 ldr.w r1, [0x08013110] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| | 0x08012a94 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08012a98 d0f8ec10 ldr.w r1, [r0, 0xec]
| | 0x08012a9c dff86006 ldr.w r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| | 0x08012aa0 0078 ldrb r0, [r0]
| | 0x08012aa2 f9f744fe bl md380_create_menu_entry
| ,==< 0x08012aa6 17e0 b 0x8012ad8
| |`-> 0x08012aa8 0120 movs r0, 1 ; 1
| | 0x08012aaa 0290 str r0, [sp, 8]
| | 0x08012aac 0120 movs r0, 1 ; 1
| | 0x08012aae 0190 str r0, [sp, 4]
| | 0x08012ab0 0620 movs r0, 6 ; 6
| | 0x08012ab2 0090 str r0, [sp]
| | 0x08012ab4 dff8f038 ldr.w r3, [0x080133ac] ; [0x80133ac:4]=0x8012a09
| | 0x08012ab8 dff8ec28 ldr.w r2, [0x080133ac] ; [0x80133ac:4]=0x8012a09
| | 0x08012abc dff84806 ldr.w r0, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08012ac0 0068 ldr r0, [r0]
| | 0x08012ac2 dff84816 ldr.w r1, [0x08013112] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| | 0x08012ac6 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08012aca d0f8e810 ldr.w r1, [r0, 0xe8]
| | 0x08012ace dff83006 ldr.w r0, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| | 0x08012ad2 0078 ldrb r0, [r0]
| | 0x08012ad4 f9f72bfe bl md380_create_menu_entry
\ `--> 0x08012ad8 07bd pop {r0, r1, r2, pc}
/ (fcn) 154
| md380_menu_12ada ();
| 0x08012ada e0b5 push {r5, r6, r7, lr}
| 0x08012adc 0020 movs r0, 0
| ,=< 0x08012ade 08e0 b 0x8012af2
| .--> 0x08012ae0 c0b2 uxtb r0, r0
| || 0x08012ae2 dff82418 ldr.w r1, [0x0801330e] ; [0x801330c:4]=0x2001e8a9 event5_buffer
| || 0x08012ae6 c0b2 uxtb r0, r0
| || 0x08012ae8 dff84024 ldr.w r2, [md380_menu_12f30] ; [0x8012f30:4]=0x2000b5e0
| || 0x08012aec 825c ldrb r2, [r0, r2]
| || 0x08012aee 4254 strb r2, [r0, r1]
| || 0x08012af0 401c adds r0, r0, 1
| |`-> 0x08012af2 c0b2 uxtb r0, r0
| | 0x08012af4 2428 cmp r0, 0x24 ; '$' ; 36
| `==< 0x08012af6 f3d3 blo 0x8012ae0
| 0x08012af8 dff81008 ldr.w r0, [0x08013310] ; [0x8013310:4]=0x2001e658 event5_mbox_poi
| 0x08012afc 0521 movs r1, 5 ; 5
| 0x08012afe 0170 strb r1, [r0]
| 0x08012b00 dff80818 ldr.w r1, [0x08013310] ; [0x8013310:4]=0x2001e658 event5_mbox_poi
| 0x08012b04 dff80808 ldr.w r0, [md380_menu_channel_related_13314] ; [0x8013314:4]=0xb082b570
| 0x08012b08 0068 ldr r0, [r0]
| 0x08012b0a 1ef047fb bl md380_OSMboxPost
| 0x08012b0e dff8f405 ldr.w r0, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| 0x08012b12 0078 ldrb r0, [r0]
| 0x08012b14 0c21 movs r1, 0xc ; 12
| 0x08012b16 dff8ac24 ldr.w r2, [0x08012fca] ; [0x8012fc8:4]=0x8012671
| 0x08012b1a 01fb0020 mla r0, r1, r0, r2
| 0x08012b1e 0c30 adds r0, 0xc
| 0x08012b20 dff8e415 ldr.w r1, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08012b24 0968 ldr r1, [r1]
| 0x08012b26 dff8e425 ldr.w r2, [0x08013112] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| 0x08012b2a 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08012b2e d1f8f010 ldr.w r1, [r1, 0xf0]
| 0x08012b32 0160 str r1, [r0]
| 0x08012b34 dff8c815 ldr.w r1, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012b38 0978 ldrb r1, [r1]
| 0x08012b3a 1422 movs r2, 0x14 ; 20
| 0x08012b3c dff8d035 ldr.w r3, [md380_menu_13114] ; [0x8013114:4]=0xf8dfb5e0
| 0x08012b40 02fb0131 mla r1, r2, r1, r3
| 0x08012b44 4160 str r1, [r0, 4]
| 0x08012b46 0121 movs r1, 1 ; 1
| 0x08012b48 0172 strb r1, [r0, 8]
| 0x08012b4a 0021 movs r1, 0
| 0x08012b4c 4172 strb r1, [r0, 9]
| 0x08012b4e 0021 movs r1, 0
| 0x08012b50 4181 strh r1, [r0, 0xa]
| 0x08012b52 0120 movs r0, 1 ; 1
| 0x08012b54 0290 str r0, [sp, 8]
| 0x08012b56 0f20 movs r0, 0xf ; 15
| 0x08012b58 0190 str r0, [sp, 4]
| 0x08012b5a 8720 movs r0, 0x87 ; 135
| 0x08012b5c 0090 str r0, [sp]
| 0x08012b5e dff84838 ldr.w r3, [0x080133ae] ; [0x80133ac:4]=0x8012a09
| 0x08012b62 dff83829 ldr.w r2, [0x080134a2] ; [0x80134a0:4]=0x2401b53e LEA menugreen.Utilities.80134a0 ; ">..$...." @ 0x80134a0
| 0x08012b66 9c49 ldr r1, [0x08012dda] ; [0x8012dd8:4]=0x2001cb58 selected_contact_name_wstring
| 0x08012b68 dff89405 ldr.w r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012b6c 0078 ldrb r0, [r0]
| 0x08012b6e f9f7defd bl md380_create_menu_entry
\ 0x08012b72 07bd pop {r0, r1, r2, pc}
/ (fcn) 208
| md380_menu_12b78 ();
| 0x08012b78 e0b5 push {r5, r6, r7, lr}
| 0x08012b7a dff88805 ldr.w r0, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| 0x08012b7e 0078 ldrb r0, [r0]
| 0x08012b80 401e subs r0, r0, 1
| 0x08012b82 dff88015 ldr.w r1, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| 0x08012b86 0870 strb r0, [r1]
| 0x08012b88 dff87805 ldr.w r0, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| 0x08012b8c 0078 ldrb r0, [r0]
| 0x08012b8e fdf761f8 bl menu_add_number_of_menuentries_counts
| 0x08012b92 dff86c15 ldr.w r1, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012b96 0870 strb r0, [r1]
| 0x08012b98 dff86805 ldr.w r0, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| 0x08012b9c 0078 ldrb r0, [r0]
| 0x08012b9e 0c21 movs r1, 0xc ; 12
| 0x08012ba0 dff82024 ldr.w r2, [0x08012fc8] ; [0x8012fc8:4]=0x8012671
| 0x08012ba4 01fb0020 mla r0, r1, r0, r2
| 0x08012ba8 0c30 adds r0, 0xc
| 0x08012baa dff85c15 ldr.w r1, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08012bae 0968 ldr r1, [r1]
| 0x08012bb0 dff85825 ldr.w r2, [0x08013110] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| 0x08012bb4 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08012bb8 096d ldr r1, [r1, 0x50]
| 0x08012bba 0160 str r1, [r0]
| 0x08012bbc dff84015 ldr.w r1, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012bc0 0978 ldrb r1, [r1]
| 0x08012bc2 1422 movs r2, 0x14 ; 20
| 0x08012bc4 dff84835 ldr.w r3, [md380_menu_13114] ; [0x8013114:4]=0xf8dfb5e0
| 0x08012bc8 02fb0131 mla r1, r2, r1, r3
| 0x08012bcc 4160 str r1, [r0, 4]
| 0x08012bce 0121 movs r1, 1 ; 1
| 0x08012bd0 0172 strb r1, [r0, 8]
| 0x08012bd2 0021 movs r1, 0
| 0x08012bd4 4172 strb r1, [r0, 9]
| 0x08012bd6 0021 movs r1, 0
| 0x08012bd8 4181 strh r1, [r0, 0xa]
| 0x08012bda dff83808 ldr.w r0, [0x0801341a] ; [0x8013418:4]=0xf8dfb5e0
| 0x08012bde 0078 ldrb r0, [r0]
| 0x08012be0 0928 cmp r0, 9 ; 9
| ,=< 0x08012be2 18d1 bne 0x8012c16
| | 0x08012be4 0120 movs r0, 1 ; 1
| | 0x08012be6 0290 str r0, [sp, 8]
| | 0x08012be8 0120 movs r0, 1 ; 1
| | 0x08012bea 0190 str r0, [sp, 4]
| | 0x08012bec 0620 movs r0, 6 ; 6
| | 0x08012bee 0090 str r0, [sp]
| | 0x08012bf0 dff8b437 ldr.w r3, [0x080133ac] ; [0x80133ac:4]=0x8012a09
| | 0x08012bf4 dff8b027 ldr.w r2, [0x080133ac] ; [0x80133ac:4]=0x8012a09
| | 0x08012bf8 dff80c05 ldr.w r0, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08012bfc 0068 ldr r0, [r0]
| | 0x08012bfe dff80c15 ldr.w r1, [0x08013112] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| | 0x08012c02 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08012c06 d0f8fc10 ldr.w r1, [r0, 0xfc]
| | 0x08012c0a dff8f404 ldr.w r0, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| | 0x08012c0e 0078 ldrb r0, [r0]
| | 0x08012c10 f9f78dfd bl md380_create_menu_entry
| ,==< 0x08012c14 17e0 b 0x8012c46
| |`-> 0x08012c16 0120 movs r0, 1 ; 1
| | 0x08012c18 0290 str r0, [sp, 8]
| | 0x08012c1a 0120 movs r0, 1 ; 1
| | 0x08012c1c 0190 str r0, [sp, 4]
| | 0x08012c1e 0620 movs r0, 6 ; 6
| | 0x08012c20 0090 str r0, [sp]
| | 0x08012c22 dff88437 ldr.w r3, [0x080133ae] ; [0x80133ac:4]=0x8012a09
| | 0x08012c26 dff88027 ldr.w r2, [0x080133ae] ; [0x80133ac:4]=0x8012a09
| | 0x08012c2a dff8dc04 ldr.w r0, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08012c2e 0068 ldr r0, [r0]
| | 0x08012c30 dff8d814 ldr.w r1, [0x08013110] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| | 0x08012c34 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08012c38 d0f8f810 ldr.w r1, [r0, 0xf8]
| | 0x08012c3c dff8c004 ldr.w r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| | 0x08012c40 0078 ldrb r0, [r0]
| | 0x08012c42 f9f774fd bl md380_create_menu_entry
\ `--> 0x08012c46 07bd pop {r0, r1, r2, pc}
/ (fcn) 150
| md380_menu_12c4c ();
| 0x08012c4c e0b5 push {r5, r6, r7, lr}
| 0x08012c4e 0020 movs r0, 0
| ,=< 0x08012c50 07e0 b 0x8012c62
| .--> 0x08012c52 c0b2 uxtb r0, r0
| || 0x08012c54 dff8b016 ldr.w r1, [0x0801330c] ; [0x801330c:4]=0x2001e8a9 event5_buffer
| || 0x08012c58 c0b2 uxtb r0, r0
| || 0x08012c5a b44a ldr r2, [0x08012f2e] ; [0x8012f2c:4]=0x2001cb54 msg_sms_hdr_prep
| || 0x08012c5c 825c ldrb r2, [r0, r2]
| || 0x08012c5e 4254 strb r2, [r0, r1]
| || 0x08012c60 401c adds r0, r0, 1
| |`-> 0x08012c62 c0b2 uxtb r0, r0
| | 0x08012c64 2428 cmp r0, 0x24 ; '$' ; 36
| `==< 0x08012c66 f4d3 blo 0x8012c52
| 0x08012c68 dff8a006 ldr.w r0, [0x08013310] ; [0x8013310:4]=0x2001e658 event5_mbox_poi
| 0x08012c6c 0421 movs r1, 4 ; 4
| 0x08012c6e 0170 strb r1, [r0]
| 0x08012c70 dff89816 ldr.w r1, [0x08013310] ; [0x8013310:4]=0x2001e658 event5_mbox_poi
| 0x08012c74 dff89806 ldr.w r0, [md380_menu_channel_related_13314] ; [0x8013314:4]=0xb082b570
| 0x08012c78 0068 ldr r0, [r0]
| 0x08012c7a 1ef08ffa bl md380_OSMboxPost
| 0x08012c7e dff88404 ldr.w r0, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| 0x08012c82 0078 ldrb r0, [r0]
| 0x08012c84 0c21 movs r1, 0xc ; 12
| 0x08012c86 cf4a ldr r2, [0x08012fc6] ; [0x8012fc4:4]=0x2001d5cc md380_menu_memory
| 0x08012c88 01fb0020 mla r0, r1, r0, r2
| 0x08012c8c 0c30 adds r0, 0xc
| 0x08012c8e dff87814 ldr.w r1, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08012c92 0968 ldr r1, [r1]
| 0x08012c94 dff87424 ldr.w r2, [0x08013110] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| 0x08012c98 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08012c9c d1f8f410 ldr.w r1, [r1, 0xf4]
| 0x08012ca0 0160 str r1, [r0]
| 0x08012ca2 dff8c01d ldr.w r1, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08012ca6 0978 ldrb r1, [r1]
| 0x08012ca8 1422 movs r2, 0x14 ; 20
| 0x08012caa dff86434 ldr.w r3, [0x08013116] ; [0x8013114:4]=0xf8dfb5e0
| 0x08012cae 02fb0131 mla r1, r2, r1, r3
| 0x08012cb2 4160 str r1, [r0, 4]
| 0x08012cb4 0121 movs r1, 1 ; 1
| 0x08012cb6 0172 strb r1, [r0, 8]
| 0x08012cb8 0021 movs r1, 0
| 0x08012cba 4172 strb r1, [r0, 9]
| 0x08012cbc 0021 movs r1, 0
| 0x08012cbe 4181 strh r1, [r0, 0xa]
| 0x08012cc0 0120 movs r0, 1 ; 1
| 0x08012cc2 0290 str r0, [sp, 8]
| 0x08012cc4 0f20 movs r0, 0xf ; 15
| 0x08012cc6 0190 str r0, [sp, 4]
| 0x08012cc8 8720 movs r0, 0x87 ; 135
| 0x08012cca 0090 str r0, [sp]
| 0x08012ccc dff8d836 ldr.w r3, [0x080133ac] ; [0x80133ac:4]=0x8012a09
| 0x08012cd0 dff8d829 ldr.w r2, [0x080136b0] ; [0x80136b0:4]=0x8012e71
| 0x08012cd4 4049 ldr r1, [0x08012dd8] ; [0x8012dd8:4]=0x2001cb58 selected_contact_name_wstring
| 0x08012cd6 dff88c0d ldr.w r0, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08012cda 0078 ldrb r0, [r0]
| 0x08012cdc f9f727fd bl md380_create_menu_entry
\ 0x08012ce0 07bd pop {r0, r1, r2, pc}
/ (fcn) 202
| md380_menu_12d08 ();
| 0x08012d08 e0b5 push {r5, r6, r7, lr}
| 0x08012d0a dff8f803 ldr.w r0, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| 0x08012d0e 0078 ldrb r0, [r0]
| 0x08012d10 401e subs r0, r0, 1
| 0x08012d12 dff8f013 ldr.w r1, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| 0x08012d16 0870 strb r0, [r1]
| 0x08012d18 dff8e803 ldr.w r0, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| 0x08012d1c 0078 ldrb r0, [r0]
| 0x08012d1e fcf799ff bl menu_add_number_of_menuentries_counts
| 0x08012d22 dff8401d ldr.w r1, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08012d26 0870 strb r0, [r1]
| 0x08012d28 dff8d803 ldr.w r0, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| 0x08012d2c 0078 ldrb r0, [r0]
| 0x08012d2e 0c21 movs r1, 0xc ; 12
| 0x08012d30 a44a ldr r2, [0x08012fc4] ; [0x8012fc4:4]=0x2001d5cc md380_menu_memory
| 0x08012d32 01fb0020 mla r0, r1, r0, r2
| 0x08012d36 0c30 adds r0, 0xc
| 0x08012d38 dff8cc13 ldr.w r1, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08012d3c 0968 ldr r1, [r1]
| 0x08012d3e dff8cc23 ldr.w r2, [0x08013112] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| 0x08012d42 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08012d46 496d ldr r1, [r1, 0x54]
| 0x08012d48 0160 str r1, [r0]
| 0x08012d4a dff8181d ldr.w r1, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08012d4e 0978 ldrb r1, [r1]
| 0x08012d50 1422 movs r2, 0x14 ; 20
| 0x08012d52 dff8bc33 ldr.w r3, [0x08013116] ; [0x8013114:4]=0xf8dfb5e0
| 0x08012d56 02fb0131 mla r1, r2, r1, r3
| 0x08012d5a 4160 str r1, [r0, 4]
| 0x08012d5c 0121 movs r1, 1 ; 1
| 0x08012d5e 0172 strb r1, [r0, 8]
| 0x08012d60 0021 movs r1, 0
| 0x08012d62 4172 strb r1, [r0, 9]
| 0x08012d64 0021 movs r1, 0
| 0x08012d66 4181 strh r1, [r0, 0xa]
| 0x08012d68 dff8a806 ldr.w r0, [md380_menu_apply_new_zone_maybe] ; [0x8013418:4]=0xf8dfb5e0
| 0x08012d6c 0078 ldrb r0, [r0]
| 0x08012d6e 0928 cmp r0, 9 ; 9
| ,=< 0x08012d70 18d1 bne 0x8012da4
| | 0x08012d72 0120 movs r0, 1 ; 1
| | 0x08012d74 0290 str r0, [sp, 8]
| | 0x08012d76 0120 movs r0, 1 ; 1
| | 0x08012d78 0190 str r0, [sp, 4]
| | 0x08012d7a 0620 movs r0, 6 ; 6
| | 0x08012d7c 0090 str r0, [sp]
| | 0x08012d7e dff82836 ldr.w r3, [0x080133ae] ; [0x80133ac:4]=0x8012a09
| | 0x08012d82 dff82426 ldr.w r2, [0x080133ae] ; [0x80133ac:4]=0x8012a09
| | 0x08012d86 dff88003 ldr.w r0, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08012d8a 0068 ldr r0, [r0]
| | 0x08012d8c dff87c13 ldr.w r1, [0x08013110] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| | 0x08012d90 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08012d94 d0f8fc10 ldr.w r1, [r0, 0xfc]
| | 0x08012d98 dff8c80c ldr.w r0, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| | 0x08012d9c 0078 ldrb r0, [r0]
| | 0x08012d9e f9f7c6fc bl md380_create_menu_entry
| ,==< 0x08012da2 15e0 b 0x8012dd0
| |`-> 0x08012da4 0120 movs r0, 1 ; 1
| | 0x08012da6 0290 str r0, [sp, 8]
| | 0x08012da8 0120 movs r0, 1 ; 1
| | 0x08012daa 0190 str r0, [sp, 4]
| | 0x08012dac 0620 movs r0, 6 ; 6
| | 0x08012dae 0090 str r0, [sp]
| | 0x08012db0 dff8f435 ldr.w r3, [0x080133ac] ; [0x80133ac:4]=0x8012a09
| | 0x08012db4 dff8f025 ldr.w r2, [0x080133ac] ; [0x80133ac:4]=0x8012a09
| | 0x08012db8 d348 ldr r0, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| | 0x08012dba 0068 ldr r0, [r0]
| | 0x08012dbc d349 ldr r1, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08012dbe 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08012dc2 d0f8f810 ldr.w r1, [r0, 0xf8]
| | 0x08012dc6 dff89c0c ldr.w r0, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| | 0x08012dca 0078 ldrb r0, [r0]
| | 0x08012dcc f9f7affc bl md380_create_menu_entry
\ `--> 0x08012dd0 07bd pop {r0, r1, r2, pc}
/ (fcn) 144
| md380_menu_12ddc ();
| 0x08012ddc e0b5 push {r5, r6, r7, lr}
| 0x08012dde 0020 movs r0, 0
| ,=< 0x08012de0 07e0 b 0x8012df2
| .--> 0x08012de2 c0b2 uxtb r0, r0
| || 0x08012de4 dff82015 ldr.w r1, [0x0801330c] ; [0x801330c:4]=0x2001e8a9 event5_buffer
| || 0x08012de8 c0b2 uxtb r0, r0
| || 0x08012dea 504a ldr r2, [0x08012f2e] ; [0x8012f2c:4]=0x2001cb54 msg_sms_hdr_prep
| || 0x08012dec 825c ldrb r2, [r0, r2]
| || 0x08012dee 4254 strb r2, [r0, r1]
| || 0x08012df0 401c adds r0, r0, 1
| |`-> 0x08012df2 c0b2 uxtb r0, r0
| | 0x08012df4 2428 cmp r0, 0x24 ; '$' ; 36
| `==< 0x08012df6 f4d3 blo 0x8012de2
| 0x08012df8 dff81005 ldr.w r0, [0x08013310] ; [0x8013310:4]=0x2001e658 event5_mbox_poi
| 0x08012dfc 0721 movs r1, 7 ; 7
| 0x08012dfe 0170 strb r1, [r0]
| 0x08012e00 dff80815 ldr.w r1, [0x08013310] ; [0x8013310:4]=0x2001e658 event5_mbox_poi
| 0x08012e04 dff80805 ldr.w r0, [md380_menu_channel_related_13314] ; [0x8013314:4]=0xb082b570
| 0x08012e08 0068 ldr r0, [r0]
| 0x08012e0a 1ef0c7f9 bl md380_OSMboxPost
| 0x08012e0e bd48 ldr r0, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012e10 0078 ldrb r0, [r0]
| 0x08012e12 0c21 movs r1, 0xc ; 12
| 0x08012e14 6b4a ldr r2, [0x08012fc4] ; [0x8012fc4:4]=0x2001d5cc md380_menu_memory
| 0x08012e16 01fb0020 mla r0, r1, r0, r2
| 0x08012e1a 0c30 adds r0, 0xc
| 0x08012e1c ba49 ldr r1, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| 0x08012e1e 0968 ldr r1, [r1]
| 0x08012e20 ba4a ldr r2, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08012e22 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08012e26 d1f80011 ldr.w r1, [r1, 0x100]
| 0x08012e2a 0160 str r1, [r0]
| 0x08012e2c dff8341c ldr.w r1, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08012e30 0978 ldrb r1, [r1]
| 0x08012e32 1422 movs r2, 0x14 ; 20
| 0x08012e34 b64b ldr r3, [0x08013110] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| 0x08012e36 02fb0131 mla r1, r2, r1, r3
| 0x08012e3a 4160 str r1, [r0, 4]
| 0x08012e3c 0121 movs r1, 1 ; 1
| 0x08012e3e 0172 strb r1, [r0, 8]
| 0x08012e40 0021 movs r1, 0
| 0x08012e42 4172 strb r1, [r0, 9]
| 0x08012e44 0021 movs r1, 0
| 0x08012e46 4181 strh r1, [r0, 0xa]
| 0x08012e48 0120 movs r0, 1 ; 1
| 0x08012e4a 0290 str r0, [sp, 8]
| 0x08012e4c 0f20 movs r0, 0xf ; 15
| 0x08012e4e 0190 str r0, [sp, 4]
| 0x08012e50 8720 movs r0, 0x87 ; 135
| 0x08012e52 0090 str r0, [sp]
| 0x08012e54 dff85035 ldr.w r3, [0x080133ac] ; [0x80133ac:4]=0x8012a09
| 0x08012e58 dff85428 ldr.w r2, [0x080136b4] ; [0x80136b4:4]=0x2001cb58 selected_contact_name_wstring
| 0x08012e5c dff85418 ldr.w r1, [0x080136b8] ; [0x80136b8:4]=0x2001cb54 msg_sms_hdr_prep
| 0x08012e60 dff8000c ldr.w r0, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08012e64 0078 ldrb r0, [r0]
| 0x08012e66 f9f762fc bl md380_create_menu_entry
\ 0x08012e6a 07bd pop {r0, r1, r2, pc}
/ (fcn) 184
| md380_menu_12e70 ();
| 0x08012e70 e0b5 push {r5, r6, r7, lr}
| 0x08012e72 a448 ldr r0, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012e74 0078 ldrb r0, [r0]
| 0x08012e76 401e subs r0, r0, 1
| 0x08012e78 a249 ldr r1, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012e7a 0870 strb r0, [r1]
| 0x08012e7c a148 ldr r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012e7e 0078 ldrb r0, [r0]
| 0x08012e80 fcf7e8fe bl menu_add_number_of_menuentries_counts
| 0x08012e84 dff8dc1b ldr.w r1, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08012e88 0870 strb r0, [r1]
| 0x08012e8a 9e48 ldr r0, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012e8c 0078 ldrb r0, [r0]
| 0x08012e8e 0c21 movs r1, 0xc ; 12
| 0x08012e90 4c4a ldr r2, [0x08012fc4] ; [0x8012fc4:4]=0x2001d5cc md380_menu_memory
| 0x08012e92 01fb0020 mla r0, r1, r0, r2
| 0x08012e96 0c30 adds r0, 0xc
| 0x08012e98 9b49 ldr r1, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| 0x08012e9a 0968 ldr r1, [r1]
| 0x08012e9c 9b4a ldr r2, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08012e9e 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08012ea2 c96a ldr r1, [r1, 0x2c]
| 0x08012ea4 0160 str r1, [r0]
| 0x08012ea6 dff8bc1b ldr.w r1, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08012eaa 0978 ldrb r1, [r1]
| 0x08012eac 1422 movs r2, 0x14 ; 20
| 0x08012eae 984b ldr r3, [0x08013112] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| 0x08012eb0 02fb0131 mla r1, r2, r1, r3
| 0x08012eb4 4160 str r1, [r0, 4]
| 0x08012eb6 0121 movs r1, 1 ; 1
| 0x08012eb8 0172 strb r1, [r0, 8]
| 0x08012eba 0021 movs r1, 0
| 0x08012ebc 4172 strb r1, [r0, 9]
| 0x08012ebe 0021 movs r1, 0
| 0x08012ec0 4181 strh r1, [r0, 0xa]
| 0x08012ec2 dff85005 ldr.w r0, [0x0801341a] ; [0x8013418:4]=0xf8dfb5e0
| 0x08012ec6 0078 ldrb r0, [r0]
| 0x08012ec8 0928 cmp r0, 9 ; 9
| ,=< 0x08012eca 16d1 bne 0x8012efa
| | 0x08012ecc 0120 movs r0, 1 ; 1
| | 0x08012ece 0290 str r0, [sp, 8]
| | 0x08012ed0 0120 movs r0, 1 ; 1
| | 0x08012ed2 0190 str r0, [sp, 4]
| | 0x08012ed4 0620 movs r0, 6 ; 6
| | 0x08012ed6 0090 str r0, [sp]
| | 0x08012ed8 dff8cc34 ldr.w r3, [0x080133ac] ; [0x80133ac:4]=0x8012a09
| | 0x08012edc dff8c824 ldr.w r2, [0x080133ac] ; [0x80133ac:4]=0x8012a09
| | 0x08012ee0 8948 ldr r0, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| | 0x08012ee2 0068 ldr r0, [r0]
| | 0x08012ee4 8949 ldr r1, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08012ee6 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08012eea d0f8fc10 ldr.w r1, [r0, 0xfc]
| | 0x08012eee dff8740b ldr.w r0, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| | 0x08012ef2 0078 ldrb r0, [r0]
| | 0x08012ef4 f9f71bfc bl md380_create_menu_entry
| ,==< 0x08012ef8 15e0 b 0x8012f26
| |`-> 0x08012efa 0120 movs r0, 1 ; 1
| | 0x08012efc 0290 str r0, [sp, 8]
| | 0x08012efe 0120 movs r0, 1 ; 1
| | 0x08012f00 0190 str r0, [sp, 4]
| | 0x08012f02 0620 movs r0, 6 ; 6
| | 0x08012f04 0090 str r0, [sp]
| | 0x08012f06 dff8a034 ldr.w r3, [0x080133ae] ; [0x80133ac:4]=0x8012a09
| | 0x08012f0a dff89c24 ldr.w r2, [0x080133ae] ; [0x80133ac:4]=0x8012a09
| | 0x08012f0e 7e48 ldr r0, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| | 0x08012f10 0068 ldr r0, [r0]
| | 0x08012f12 7e49 ldr r1, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08012f14 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08012f18 d0f8f810 ldr.w r1, [r0, 0xf8]
| | 0x08012f1c dff8440b ldr.w r0, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| | 0x08012f20 0078 ldrb r0, [r0]
| | 0x08012f22 f9f704fc bl md380_create_menu_entry
\ `--> 0x08012f26 07bd pop {r0, r1, r2, pc}
/ (fcn) 146
| md380_menu_12f30 ();
| 0x08012f30 e0b5 push {r5, r6, r7, lr}
| 0x08012f32 0020 movs r0, 0
| ,=< 0x08012f34 08e0 b 0x8012f48
| .--> 0x08012f36 c0b2 uxtb r0, r0
| || 0x08012f38 dff8cc13 ldr.w r1, [0x0801330c] ; [0x801330c:4]=0x2001e8a9 event5_buffer
| || 0x08012f3c c0b2 uxtb r0, r0
| || 0x08012f3e dff87827 ldr.w r2, [0x080136be] ; [0x80136bc:4]=0x8012fcd
| || 0x08012f42 825c ldrb r2, [r0, r2]
| || 0x08012f44 4254 strb r2, [r0, r1]
| || 0x08012f46 401c adds r0, r0, 1
| |`-> 0x08012f48 c0b2 uxtb r0, r0
| | 0x08012f4a 2428 cmp r0, 0x24 ; '$' ; 36
| `==< 0x08012f4c f3d3 blo 0x8012f36
| 0x08012f4e dff8bc03 ldr.w r0, [0x08013312] ; [0x8013310:4]=0x2001e658 event5_mbox_poi
| 0x08012f52 0821 movs r1, 8 ; 8
| 0x08012f54 0170 strb r1, [r0]
| 0x08012f56 dff8b413 ldr.w r1, [0x08013312] ; [0x8013310:4]=0x2001e658 event5_mbox_poi
| 0x08012f5a dff8b403 ldr.w r0, [0x08013316] ; [0x8013314:4]=0xb082b570
| 0x08012f5e 0068 ldr r0, [r0]
| 0x08012f60 1ef01cf9 bl md380_OSMboxPost
| 0x08012f64 6748 ldr r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012f66 0078 ldrb r0, [r0]
| 0x08012f68 0c21 movs r1, 0xc ; 12
| 0x08012f6a 164a ldr r2, [0x08012fc6] ; [0x8012fc4:4]=0x2001d5cc md380_menu_memory
| 0x08012f6c 01fb0020 mla r0, r1, r0, r2
| 0x08012f70 0c30 adds r0, 0xc
| 0x08012f72 6549 ldr r1, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| 0x08012f74 0968 ldr r1, [r1]
| 0x08012f76 654a ldr r2, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08012f78 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08012f7c d1f80811 ldr.w r1, [r1, 0x108]
| 0x08012f80 0160 str r1, [r0]
| 0x08012f82 dff8e01a ldr.w r1, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08012f86 0978 ldrb r1, [r1]
| 0x08012f88 1422 movs r2, 0x14 ; 20
| 0x08012f8a 614b ldr r3, [0x08013112] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| 0x08012f8c 02fb0131 mla r1, r2, r1, r3
| 0x08012f90 4160 str r1, [r0, 4]
| 0x08012f92 0121 movs r1, 1 ; 1
| 0x08012f94 0172 strb r1, [r0, 8]
| 0x08012f96 0021 movs r1, 0
| 0x08012f98 4172 strb r1, [r0, 9]
| 0x08012f9a 0021 movs r1, 0
| 0x08012f9c 4181 strh r1, [r0, 0xa]
| 0x08012f9e 0120 movs r0, 1 ; 1
| 0x08012fa0 0290 str r0, [sp, 8]
| 0x08012fa2 0f20 movs r0, 0xf ; 15
| 0x08012fa4 0190 str r0, [sp, 4]
| 0x08012fa6 8720 movs r0, 0x87 ; 135
| 0x08012fa8 0090 str r0, [sp]
| 0x08012faa dff8fc33 ldr.w r3, [0x080133ae] ; [0x80133ac:4]=0x8012a09
| 0x08012fae dff80c27 ldr.w r2, [0x080136c2] ; [0x80136c0:4]=0xb084b510 LEA menugreen.prog.80136c0 ; menugreen.prog.80136c0
| 0x08012fb2 dff80017 ldr.w r1, [0x080136ba] ; [0x80136b8:4]=0x2001cb54 msg_sms_hdr_prep
| 0x08012fb6 dff8ac0a ldr.w r0, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08012fba 0078 ldrb r0, [r0]
| 0x08012fbc f9f7b7fb bl md380_create_menu_entry
\ 0x08012fc0 07bd pop {r0, r1, r2, pc}
/ (fcn) 182
| md380_menu_12fcc ();
| 0x08012fcc e0b5 push {r5, r6, r7, lr}
| 0x08012fce 4d48 ldr r0, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012fd0 0078 ldrb r0, [r0]
| 0x08012fd2 401e subs r0, r0, 1
| 0x08012fd4 4b49 ldr r1, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012fd6 0870 strb r0, [r1]
| 0x08012fd8 4a48 ldr r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012fda 0078 ldrb r0, [r0]
| 0x08012fdc fcf73afe bl menu_add_number_of_menuentries_counts
| 0x08012fe0 dff8801a ldr.w r1, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08012fe4 0870 strb r0, [r1]
| 0x08012fe6 4748 ldr r0, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08012fe8 0078 ldrb r0, [r0]
| 0x08012fea 0c21 movs r1, 0xc ; 12
| 0x08012fec dff8782a ldr.w r2, [0x08013a6c] ; [0x8013a6c:4]=0x8013083
| 0x08012ff0 01fb0020 mla r0, r1, r0, r2
| 0x08012ff4 0c30 adds r0, 0xc
| 0x08012ff6 4449 ldr r1, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| 0x08012ff8 0968 ldr r1, [r1]
| 0x08012ffa 444a ldr r2, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08012ffc 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08013000 d1f80411 ldr.w r1, [r1, 0x104]
| 0x08013004 0160 str r1, [r0]
| 0x08013006 dff85c1a ldr.w r1, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x0801300a 0978 ldrb r1, [r1]
| 0x0801300c 1422 movs r2, 0x14 ; 20
| 0x0801300e 404b ldr r3, [0x08013112] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| 0x08013010 02fb0131 mla r1, r2, r1, r3
| 0x08013014 4160 str r1, [r0, 4]
| 0x08013016 0121 movs r1, 1 ; 1
| 0x08013018 0172 strb r1, [r0, 8]
| 0x0801301a 0021 movs r1, 0
| 0x0801301c 4172 strb r1, [r0, 9]
| 0x0801301e 0021 movs r1, 0
| 0x08013020 4181 strh r1, [r0, 0xa]
| 0x08013022 dff8f003 ldr.w r0, [0x0801341a] ; [0x8013418:4]=0xf8dfb5e0
| 0x08013026 0078 ldrb r0, [r0]
| 0x08013028 0928 cmp r0, 9 ; 9
| ,=< 0x0801302a 15d1 bne 0x8013058
| | 0x0801302c 0120 movs r0, 1 ; 1
| | 0x0801302e 0290 str r0, [sp, 8]
| | 0x08013030 0020 movs r0, 0
| | 0x08013032 0190 str r0, [sp, 4]
| | 0x08013034 8620 movs r0, 0x86 ; 134
| | 0x08013036 0090 str r0, [sp]
| | 0x08013038 db4b ldr r3, [0x080133a8] ; [0x80133a8:4]=0x800fc85 menu_entry_back_1
| | 0x0801303a dff8302a ldr.w r2, [0x08013a72] ; [0x8013a70:4]=0x8013115
| | 0x0801303e 3248 ldr r0, [0x0801310a] ; [0x8013108:4]=0x2001e6ec
| | 0x08013040 0068 ldr r0, [r0]
| | 0x08013042 3249 ldr r1, [0x0801310e] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08013044 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08013048 d0f8fc10 ldr.w r1, [r0, 0xfc]
| | 0x0801304c dff8140a ldr.w r0, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| | 0x08013050 0078 ldrb r0, [r0]
| | 0x08013052 f9f76cfb bl md380_create_menu_entry
| ,==< 0x08013056 13e0 b 0x8013080
| |`-> 0x08013058 0120 movs r0, 1 ; 1
| | 0x0801305a 0290 str r0, [sp, 8]
| | 0x0801305c 0120 movs r0, 1 ; 1
| | 0x0801305e 0190 str r0, [sp, 4]
| | 0x08013060 0620 movs r0, 6 ; 6
| | 0x08013062 0090 str r0, [sp]
| | 0x08013064 d04b ldr r3, [0x080133a8] ; [0x80133a8:4]=0x800fc85 menu_entry_back_1
| | 0x08013066 d04a ldr r2, [0x080133aa] ; [0x80133a8:4]=0x800fc85 menu_entry_back_1
| | 0x08013068 2748 ldr r0, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| | 0x0801306a 0068 ldr r0, [r0]
| | 0x0801306c 2749 ldr r1, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0801306e 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08013072 d0f8f810 ldr.w r1, [r0, 0xf8]
| | 0x08013076 dff8ec09 ldr.w r0, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| | 0x0801307a 0078 ldrb r0, [r0]
| | 0x0801307c f9f757fb bl md380_create_menu_entry
\ `--> 0x08013080 07bd pop {r0, r1, r2, pc}
/ (fcn) 126
| md380_menu_13082 ();
| 0x08013082 e0b5 push {r5, r6, r7, lr}
| 0x08013084 1f48 ldr r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08013086 0078 ldrb r0, [r0]
| 0x08013088 401e subs r0, r0, 1
| 0x0801308a 1e49 ldr r1, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x0801308c 0870 strb r0, [r1]
| 0x0801308e 1d48 ldr r0, [0x08013106] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x08013090 0078 ldrb r0, [r0]
| 0x08013092 fcf7dffd bl menu_add_number_of_menuentries_counts
| 0x08013096 dff8cc19 ldr.w r1, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x0801309a 0870 strb r0, [r1]
| 0x0801309c 1948 ldr r0, [0x08013104] ; [0x8013104:4]=0x20004acc md380_menu_depth
| 0x0801309e 0078 ldrb r0, [r0]
| 0x080130a0 0c21 movs r1, 0xc ; 12
| 0x080130a2 dff8c429 ldr.w r2, [0x08013a6e] ; [0x8013a6c:4]=0x8013083
| 0x080130a6 01fb0020 mla r0, r1, r0, r2
| 0x080130aa 0c30 adds r0, 0xc
| 0x080130ac 1649 ldr r1, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| 0x080130ae 0968 ldr r1, [r1]
| 0x080130b0 164a ldr r2, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080130b2 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x080130b6 c96c ldr r1, [r1, 0x4c]
| 0x080130b8 0160 str r1, [r0]
| 0x080130ba dff8a819 ldr.w r1, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x080130be 0978 ldrb r1, [r1]
| 0x080130c0 1422 movs r2, 0x14 ; 20
| 0x080130c2 134b ldr r3, [0x08013112] ; [0x8013110:4]=0x2001b274 md380_menu_mem_base
| 0x080130c4 02fb0131 mla r1, r2, r1, r3
| 0x080130c8 4160 str r1, [r0, 4]
| 0x080130ca 0121 movs r1, 1 ; 1
| 0x080130cc 0172 strb r1, [r0, 8]
| 0x080130ce 0021 movs r1, 0
| 0x080130d0 4172 strb r1, [r0, 9]
| 0x080130d2 0021 movs r1, 0
| 0x080130d4 4181 strh r1, [r0, 0xa]
| 0x080130d6 0120 movs r0, 1 ; 1
| 0x080130d8 0290 str r0, [sp, 8]
| 0x080130da 0f20 movs r0, 0xf ; 15
| 0x080130dc 0190 str r0, [sp, 4]
| 0x080130de 8720 movs r0, 0x87 ; 135
| 0x080130e0 0090 str r0, [sp]
| 0x080130e2 b14b ldr r3, [0x080133aa] ; [0x80133a8:4]=0x800fc85 menu_entry_back_1
| 0x080130e4 dff88829 ldr.w r2, [0x08013a74] ; [0x8013a74:4]=0x20004acc md380_menu_depth
| 0x080130e8 0748 ldr r0, [0x08013108] ; [0x8013108:4]=0x2001e6ec
| 0x080130ea 0068 ldr r0, [r0]
| 0x080130ec 0749 ldr r1, [0x0801310c] ; [0x801310c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080130ee 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080130f2 c16c ldr r1, [r0, 0x4c]
| 0x080130f4 dff86c09 ldr.w r0, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x080130f8 0078 ldrb r0, [r0]
| 0x080130fa f9f718fb bl md380_create_menu_entry
\ 0x080130fe 07bd pop {r0, r1, r2, pc}
/ (fcn) 146
| md380_menu_13114 ();
| 0x08013114 e0b5 push {r5, r6, r7, lr}
| 0x08013116 dff85c09 ldr.w r0, [0x08013a7a] ; [0x8013a78:4]=0x2001e6ec
| 0x0801311a 0078 ldrb r0, [r0]
| 0x0801311c 401e subs r0, r0, 1
| 0x0801311e dff85419 ldr.w r1, [0x08013a7a] ; [0x8013a78:4]=0x2001e6ec
| 0x08013122 0870 strb r0, [r1]
| 0x08013124 dff84c09 ldr.w r0, [0x08013a78] ; [0x8013a78:4]=0x2001e6ec
| 0x08013128 0078 ldrb r0, [r0]
| 0x0801312a fcf793fd bl menu_add_number_of_menuentries_counts
| 0x0801312e dff83419 ldr.w r1, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08013132 0870 strb r0, [r1]
| 0x08013134 dff83c09 ldr.w r0, [0x08013a78] ; [0x8013a78:4]=0x2001e6ec
| 0x08013138 0078 ldrb r0, [r0]
| 0x0801313a 0c21 movs r1, 0xc ; 12
| 0x0801313c dff82829 ldr.w r2, [0x08013a6c] ; [0x8013a6c:4]=0x8013083
| 0x08013140 01fb0020 mla r0, r1, r0, r2
| 0x08013144 0c30 adds r0, 0xc
| 0x08013146 dff83019 ldr.w r1, [0x08013a7e] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801314a 0968 ldr r1, [r1]
| 0x0801314c dff82c29 ldr.w r2, [0x08013a80] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| 0x08013150 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08013154 d1f80411 ldr.w r1, [r1, 0x104]
| 0x08013158 0160 str r1, [r0]
| 0x0801315a dff80819 ldr.w r1, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x0801315e 0978 ldrb r1, [r1]
| 0x08013160 1422 movs r2, 0x14 ; 20
| 0x08013162 dff81c39 ldr.w r3, [0x08013a86] ; [0x8013a84:4]=0x2001e57c zone_number_in_byte_3
| 0x08013166 02fb0131 mla r1, r2, r1, r3
| 0x0801316a 4160 str r1, [r0, 4]
| 0x0801316c 0121 movs r1, 1 ; 1
| 0x0801316e 0172 strb r1, [r0, 8]
| 0x08013170 0021 movs r1, 0
| 0x08013172 4172 strb r1, [r0, 9]
| 0x08013174 0021 movs r1, 0
| 0x08013176 4181 strh r1, [r0, 0xa]
| 0x08013178 0120 movs r0, 1 ; 1
| 0x0801317a 0290 str r0, [sp, 8]
| 0x0801317c 0120 movs r0, 1 ; 1
| 0x0801317e 0190 str r0, [sp, 4]
| 0x08013180 0620 movs r0, 6 ; 6
| 0x08013182 0090 str r0, [sp]
| 0x08013184 884b ldr r3, [0x080133a8] ; [0x80133a8:4]=0x800fc85 menu_entry_back_1
| 0x08013186 884a ldr r2, [0x080133aa] ; [0x80133a8:4]=0x800fc85 menu_entry_back_1
| 0x08013188 dff8ec08 ldr.w r0, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801318c 0068 ldr r0, [r0]
| 0x0801318e dff8ec18 ldr.w r1, [0x08013a82] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| 0x08013192 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08013196 d0f8ec12 ldr.w r1, [r0, 0x2ec]
| 0x0801319a dff8c808 ldr.w r0, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x0801319e 0078 ldrb r0, [r0]
| 0x080131a0 f9f7c5fa bl md380_create_menu_entry
\ 0x080131a4 07bd pop {r0, r1, r2, pc}
/ (fcn) 192
| md380_menu_zone ();
| 0x080131ac 3eb5 push {r1, r2, r3, r4, r5, lr}
| 0x080131ae dff8c408 ldr.w r0, [0x08013a7a] ; [0x8013a78:4]=0x2001e6ec
| 0x080131b2 0078 ldrb r0, [r0]
| 0x080131b4 0c21 movs r1, 0xc ; 12
| 0x080131b6 dff8b028 ldr.w r2, [0x08013a6e] ; [0x8013a6c:4]=0x8013083
| 0x080131ba 01fb0020 mla r0, r1, r0, r2
| 0x080131be 10f10c04 adds.w r4, r0, 0xc
| 0x080131c2 dff8b408 ldr.w r0, [0x08013a7e] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080131c6 0068 ldr r0, [r0]
| 0x080131c8 dff8b018 ldr.w r1, [0x08013a80] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| 0x080131cc 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080131d0 4069 ldr r0, [r0, 0x14]
| 0x080131d2 2060 str r0, [r4]
| 0x080131d4 dff88c08 ldr.w r0, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x080131d8 0078 ldrb r0, [r0]
| 0x080131da 1421 movs r1, 0x14 ; 20
| 0x080131dc dff8a028 ldr.w r2, [0x08013a84] ; [0x8013a84:4]=0x2001e57c zone_number_in_byte_3
| 0x080131e0 01fb0020 mla r0, r1, r0, r2
| 0x080131e4 6060 str r0, [r4, 4]
| 0x080131e6 0120 movs r0, 1 ; 1
| 0x080131e8 2072 strb r0, [r4, 8]
| 0x080131ea 0020 movs r0, 0
| 0x080131ec 6072 strb r0, [r4, 9]
| 0x080131ee 0020 movs r0, 0
| 0x080131f0 6081 strh r0, [r4, 0xa]
| 0x080131f2 00f08ff8 bl md380_menu_channel_related_13314
| 0x080131f6 0125 movs r5, 1 ; 1
| ,=< 0x080131f8 00e0 b 0x80131fc
| .--> 0x080131fa 6d1c adds r5, r5, 1
| |`-> 0x080131fc dff8a80d ldr.w r0, [0x08013fac] ; [0x8013fac:4]=0x2001deb8 current_channel_info
| | 0x08013200 0078 ldrb r0, [r0]
| | 0x08013202 edb2 uxtb r5, r5
| | 0x08013204 a842 cmp r0, r5
| |,=< 0x08013206 0cd3 blo 0x8013222
| || 0x08013208 2800 movs r0, r5
| || 0x0801320a c0b2 uxtb r0, r0
| || 0x0801320c 00f0d0f8 bl md380_menu_curr_chn_related_133b0
| || 0x08013210 dff87018 ldr.w r1, [0x08013a88] ; [0x8013a88:4]=0x8013271
| || 0x08013214 c978 ldrb r1, [r1, 3]
| || 0x08013216 c0b2 uxtb r0, r0
| || 0x08013218 8142 cmp r1, r0
| `==< 0x0801321a eed1 bne 0x80131fa
| | 0x0801321c edb2 uxtb r5, r5
| | 0x0801321e 681e subs r0, r5, 1
| | 0x08013220 6081 strh r0, [r4, 0xa]
| `-> 0x08013222 dff8840d ldr.w r0, [0x08013fae] ; [0x8013fac:4]=0x2001deb8 current_channel_info
| 0x08013226 0078 ldrb r0, [r0]
| 0x08013228 80b2 uxth r0, r0
| 0x0801322a 0290 str r0, [sp, 8]
| 0x0801322c 0020 movs r0, 0
| 0x0801322e 0190 str r0, [sp, 4]
| 0x08013230 9620 movs r0, 0x96 ; 150
| 0x08013232 0090 str r0, [sp]
| 0x08013234 dff85038 ldr.w r3, [0x08013a8c] ; [0x8013a8c:4]=0x8013419 ; md380_menu_apply_new_zone_maybe
| 0x08013238 dff85028 ldr.w r2, [0x08013a90] ; [0x8013a90:4]=0x2001cddc zone_name
| 0x0801323c dff85018 ldr.w r1, [0x08013a94] ; [0x8013a94:4]=0x2001e700 menu_memory_poi
| 0x08013240 dff82008 ldr.w r0, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08013244 0078 ldrb r0, [r0]
| 0x08013246 f9f772fa bl md380_create_menu_entry
| 0x0801324a 0020 movs r0, 0
| ,=< 0x0801324c 0be0 b 0x8013266
| .--> 0x0801324e dff81418 ldr.w r1, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| || 0x08013252 0978 ldrb r1, [r1]
| || 0x08013254 4118 adds r1, r0, r1
| || 0x08013256 1422 movs r2, 0x14 ; 20
| || 0x08013258 dff82438 ldr.w r3, [0x08013a84] ; [0x8013a84:4]=0x2001e57c zone_number_in_byte_3
| || 0x0801325c 02fb0131 mla r1, r2, r1, r3
| || 0x08013260 0022 movs r2, 0
| || 0x08013262 0a74 strb r2, [r1, 0x10]
| || 0x08013264 401c adds r0, r0, 1
| |`-> 0x08013266 0128 cmp r0, 1 ; 1
| `==< 0x08013268 f1db blt 0x801324e
\ 0x0801326a 37bd pop {r0, r1, r2, r4, r5, pc}
/ (fcn) 152
| md380_menu_13270 ();
| 0x08013270 10b5 push {r4, lr}
| 0x08013272 dff82008 ldr.w r0, [0x08013a9a] ; [0x8013a98:4]=0x2001e90e
| 0x08013276 0068 ldr r0, [r0]
| 0x08013278 4089 ldrh r0, [r0, 0xa]
| 0x0801327a 401c adds r0, r0, 1
| 0x0801327c c0b2 uxtb r0, r0
| 0x0801327e 00f097f8 bl md380_menu_curr_chn_related_133b0
| 0x08013282 0400 movs r4, r0
| 0x08013284 2000 movs r0, r4
| 0x08013286 c0b2 uxtb r0, r0
| 0x08013288 0ff081fd bl spiflash_rd_something_zone_depending
| 0x0801328c dff8f407 ldr.w r0, [0x08013a88] ; [0x8013a88:4]=0x8013271
| 0x08013290 c078 ldrb r0, [r0, 3]
| 0x08013292 e4b2 uxtb r4, r4
| 0x08013294 a042 cmp r0, r4
| ,=< 0x08013296 22d1 bne 0x80132de
| | 0x08013298 dff8fc07 ldr.w r0, [0x08013a9c] ; [0x8013a9c:4]=0x2001e826
| | 0x0801329c 0821 movs r1, 8 ; 8
| | 0x0801329e 0170 strb r1, [r0]
| | 0x080132a0 dff8ec0d ldr.w r0, [0x08014094] ; [0x8014094:4]=0x80136c1
| | 0x080132a4 0068 ldr r0, [r0]
| | 0x080132a6 007b ldrb r0, [r0, 0xc]
| | 0x080132a8 10f08000 ands r0, r0, 0x80
| | 0x080132ac dff8e01d ldr.w r1, [0x08014094] ; [0x8014094:4]=0x80136c1
| | 0x080132b0 0968 ldr r1, [r1]
| | 0x080132b2 0873 strb r0, [r1, 0xc]
| | 0x080132b4 dff8d80d ldr.w r0, [0x08014094] ; [0x8014094:4]=0x80136c1
| | 0x080132b8 0068 ldr r0, [r0]
| | 0x080132ba 007b ldrb r0, [r0, 0xc]
| | 0x080132bc 50f01600 orrs r0, r0, 0x16
| | 0x080132c0 dff8cc1d ldr.w r1, [0x08014094] ; [0x8014094:4]=0x80136c1
| | 0x080132c4 0968 ldr r1, [r1]
| | 0x080132c6 0873 strb r0, [r1, 0xc]
| | 0x080132c8 dff8c807 ldr.w r0, [0x08013a98] ; [0x8013a98:4]=0x2001e90e
| | 0x080132cc 0068 ldr r0, [r0]
| | 0x080132ce 4189 ldrh r1, [r0, 0xa]
| | 0x080132d0 dff8c807 ldr.w r0, [0x08013aa0] ; [0x8013aa0:4]=0x2001e2bc
| | 0x080132d4 b0f90000 ldrsh.w r0, [r0]
| | 0x080132d8 1ef065fd bl func_31da6
| ,==< 0x080132dc 13e0 b 0x8013306
| |`-> 0x080132de dff8b00d ldr.w r0, [0x08014096] ; [0x8014094:4]=0x80136c1
| | 0x080132e2 0068 ldr r0, [r0]
| | 0x080132e4 007b ldrb r0, [r0, 0xc]
| | 0x080132e6 10f08000 ands r0, r0, 0x80
| | 0x080132ea dff8a41d ldr.w r1, [0x08014096] ; [0x8014094:4]=0x80136c1
| | 0x080132ee 0968 ldr r1, [r1]
| | 0x080132f0 0873 strb r0, [r1, 0xc]
| | 0x080132f2 dff89c0d ldr.w r0, [0x08014096] ; [0x8014094:4]=0x80136c1
| | 0x080132f6 0068 ldr r0, [r0]
| | 0x080132f8 007b ldrb r0, [r0, 0xc]
| | 0x080132fa 50f01600 orrs r0, r0, 0x16
| | 0x080132fe dff8901d ldr.w r1, [0x08014096] ; [0x8014094:4]=0x80136c1
| | 0x08013302 0968 ldr r1, [r1]
| | 0x08013304 0873 strb r0, [r1, 0xc]
\ `--> 0x08013306 10bd pop {r4, pc}
/ (fcn) 148
| Caller: menucall.Utilities md380_menu_zone func_2ea9e
| md380_menu_channel_related_13314 ();
| 0x08013314 70b5 push {r4, r5, r6, lr}
| 0x08013316 82b0 sub sp, 8
| 0x08013318 dff88447 ldr.w r4, [0x08013aa4] ; [0x8013aa4:4]=0xf8dfb5fe
| 0x0801331c dff8880c ldr.w r0, [0x08013fac] ; [0x8013fac:4]=0x2001deb8 current_channel_info
| 0x08013320 0021 movs r1, 0
| 0x08013322 0170 strb r1, [r0]
| 0x08013324 dff84c5b ldr.w r5, [menugreen.prog.TxContact.8013e78] ; [0x8013e78:4]=0xb084b510 LEA menugreen.prog.TxContact.8013e78 ; menugreen.prog.TxContact.8013e78
| 0x08013328 0026 movs r6, 0
| ,=< 0x0801332a 0fe0 b 0x801334c
| ..--> 0x0801332c c0b2 uxtb r0, r0
| ||| 0x0801332e 025d ldrb r2, [r0, r4]
| ||| 0x08013330 0123 movs r3, 1 ; 1
| ||| 0x08013332 13fa01f1 lsls.w r1, r3, r1
| ||| 0x08013336 1143 orrs r1, r2
| ||| 0x08013338 c0b2 uxtb r0, r0
| ||| 0x0801333a 0155 strb r1, [r0, r4]
| ||| 0x0801333c dff8680c ldr.w r0, [0x08013fac] ; [0x8013fac:4]=0x2001deb8 current_channel_info
| ||| 0x08013340 0078 ldrb r0, [r0]
| ||| 0x08013342 401c adds r0, r0, 1
| ||| 0x08013344 dff8601c ldr.w r1, [0x08013fac] ; [0x8013fac:4]=0x2001deb8 current_channel_info
| ||| 0x08013348 0870 strb r0, [r1]
| .----> 0x0801334a 761c adds r6, r6, 1
| |||`-> 0x0801334c f6b2 uxtb r6, r6
| ||| 0x0801334e fa2e cmp r6, 0xfa ; 250
| |||,=< 0x08013350 29d2 bhs 0x80133a6
| |||| 0x08013352 0222 movs r2, 2 ; 2
| |||| 0x08013354 2900 movs r1, r5
| |||| 0x08013356 00a8 add r0, sp, 0
| |||| 0x08013358 1ef08df8 bl md380_spiflash_read
| |||| 0x0801335c 4035 adds r5, 0x40
| |||| 0x0801335e f6b2 uxtb r6, r6
| |||| 0x08013360 0820 movs r0, 8 ; 8
| |||| 0x08013362 96fbf0f0 sdiv r0, r6, r0
| |||| 0x08013366 f6b2 uxtb r6, r6
| |||| 0x08013368 0822 movs r2, 8 ; 8
| |||| 0x0801336a 96fbf2f1 sdiv r1, r6, r2
| |||| 0x0801336e 01fb1261 mls r1, r1, r2, r6
| |||| 0x08013372 9df80020 ldrb.w r2, [sp]
| |||| 0x08013376 002a cmp r2, 0
| ,=====< 0x08013378 03d1 bne 0x8013382
| ||||| 0x0801337a 9df80120 ldrb.w r2, [sp, 1]
| ||||| 0x0801337e 002a cmp r2, 0
| ,======< 0x08013380 07d0 beq 0x8013392
| |`-----> 0x08013382 9df80020 ldrb.w r2, [sp]
| | |||| 0x08013386 ff2a cmp r2, 0xff ; 255
| | |`===< 0x08013388 d0d1 bne 0x801332c
| | | || 0x0801338a 9df80120 ldrb.w r2, [sp, 1]
| | | || 0x0801338e ff2a cmp r2, 0xff ; 255
| | | `==< 0x08013390 ccd1 bne 0x801332c
| `------> 0x08013392 c0b2 uxtb r0, r0
| | | 0x08013394 025d ldrb r2, [r0, r4]
| | | 0x08013396 0123 movs r3, 1 ; 1
| | | 0x08013398 13fa01f1 lsls.w r1, r3, r1
| | | 0x0801339c 32ea0101 bics.w r1, r2, r1
| | | 0x080133a0 c0b2 uxtb r0, r0
| | | 0x080133a2 0155 strb r1, [r0, r4]
| `====< 0x080133a4 d1e7 b 0x801334a
\ `-> 0x080133a6 73bd pop {r0, r1, r4, r5, r6, pc}
/ (fcn) 98
| Caller: md380_menu_13270 md380_menu_apply_new_zone_maybe md380_menu_zone func_2ea9e
| md380_menu_curr_chn_related_133b0 ();
| 0x080133b0 70b4 push {r4, r5, r6}
| 0x080133b2 0024 movs r4, 0
| 0x080133b4 dff8e856 ldr.w r5, [0x08013aa4] ; [0x8013aa4:4]=0xf8dfb5fe
| 0x080133b8 dff8ec1b ldr.w r1, [0x08013fac] ; [0x8013fac:4]=0x2001deb8 current_channel_info
| 0x080133bc 0978 ldrb r1, [r1]
| 0x080133be c0b2 uxtb r0, r0
| 0x080133c0 8142 cmp r1, r0
| ,=< 0x080133c2 23d3 blo 0x801340c
| | 0x080133c4 c0b2 uxtb r0, r0
| | 0x080133c6 0128 cmp r0, 1 ; 1
| ,==< 0x080133c8 20d3 blo 0x801340c
| || 0x080133ca 0021 movs r1, 0
| ,===< 0x080133cc 00e0 b 0x80133d0
| .----> 0x080133ce 491c adds r1, r1, 1
| |`---> 0x080133d0 c9b2 uxtb r1, r1
| | || 0x080133d2 fa29 cmp r1, 0xfa ; 250
| |,===< 0x080133d4 18d2 bhs 0x8013408
| |||| 0x080133d6 c9b2 uxtb r1, r1
| |||| 0x080133d8 0822 movs r2, 8 ; 8
| |||| 0x080133da 91fbf2f2 sdiv r2, r1, r2
| |||| 0x080133de c9b2 uxtb r1, r1
| |||| 0x080133e0 0826 movs r6, 8 ; 8
| |||| 0x080133e2 91fbf6f3 sdiv r3, r1, r6
| |||| 0x080133e6 03fb1613 mls r3, r3, r6, r1
| |||| 0x080133ea d2b2 uxtb r2, r2
| |||| 0x080133ec 525d ldrb r2, [r2, r5]
| |||| 0x080133ee 0126 movs r6, 1 ; 1
| |||| 0x080133f0 16fa03f3 lsls.w r3, r6, r3
| |||| 0x080133f4 1a42 tst r2, r3
| ,=====< 0x080133f6 00d0 beq 0x80133fa
| ||||| 0x080133f8 641c adds r4, r4, 1
| `-----> 0x080133fa e4b2 uxtb r4, r4
| |||| 0x080133fc c0b2 uxtb r0, r0
| |||| 0x080133fe 8442 cmp r4, r0
| `====< 0x08013400 e5d1 bne 0x80133ce
| ||| 0x08013402 481c adds r0, r1, 1
| ||| 0x08013404 c0b2 uxtb r0, r0
| ,====< 0x08013406 02e0 b 0x801340e
| |`---> 0x08013408 0120 movs r0, 1 ; 1
| |,===< 0x0801340a 00e0 b 0x801340e
| ||``-> 0x0801340c 0120 movs r0, 1 ; 1
| ``---> 0x0801340e 70bc pop {r4, r5, r6}
\ 0x08013410 7047 bx lr
/ (fcn) 132
| md380_menu_apply_new_zone_maybe ();
| 0x08013418 e0b5 push {r5, r6, r7, lr}
| 0x0801341a dff87806 ldr.w r0, [0x08013a9a] ; [0x8013a98:4]=0x2001e90e
| 0x0801341e 0068 ldr r0, [r0]
| 0x08013420 4089 ldrh r0, [r0, 0xa]
| 0x08013422 401c adds r0, r0, 1
| 0x08013424 c0b2 uxtb r0, r0
| 0x08013426 fff7c3ff bl md380_menu_curr_chn_related_133b0
| 0x0801342a dff85816 ldr.w r1, [0x08013a8a] ; [0x8013a88:4]=0x8013271
| 0x0801342e c870 strb r0, [r1, 3]
| 0x08013430 0ff04dfd bl md380_spiflash_write_zone_struct_with_number_in_byte3_maybe
| 0x08013434 dff83c06 ldr.w r0, [0x08013a78] ; [0x8013a78:4]=0x2001e6ec
| 0x08013438 0078 ldrb r0, [r0]
| 0x0801343a 0c21 movs r1, 0xc ; 12
| 0x0801343c dff82826 ldr.w r2, [0x08013a6c] ; [0x8013a6c:4]=0x8013083
| 0x08013440 01fb0020 mla r0, r1, r0, r2
| 0x08013444 0c30 adds r0, 0xc
| 0x08013446 dff84816 ldr.w r1, [0x08013a96] ; [0x8013a94:4]=0x2001e700 menu_memory_poi
| 0x0801344a 0160 str r1, [r0]
| 0x0801344c dff81416 ldr.w r1, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08013450 0978 ldrb r1, [r1]
| 0x08013452 1422 movs r2, 0x14 ; 20
| 0x08013454 dff82836 ldr.w r3, [0x08013a84] ; [0x8013a84:4]=0x2001e57c zone_number_in_byte_3
| 0x08013458 02fb0131 mla r1, r2, r1, r3
| 0x0801345c 4160 str r1, [r0, 4]
| 0x0801345e 0121 movs r1, 1 ; 1
| 0x08013460 0172 strb r1, [r0, 8]
| 0x08013462 0021 movs r1, 0
| 0x08013464 4172 strb r1, [r0, 9]
| 0x08013466 0021 movs r1, 0
| 0x08013468 4181 strh r1, [r0, 0xa]
| 0x0801346a 0120 movs r0, 1 ; 1
| 0x0801346c 0290 str r0, [sp, 8]
| 0x0801346e 0f20 movs r0, 0xf ; 15
| 0x08013470 0190 str r0, [sp, 4]
| 0x08013472 0620 movs r0, 6 ; 6
| 0x08013474 0090 str r0, [sp]
| 0x08013476 dff8883a ldr.w r3, [0x08013f06] ; [0x8013f04:4]=0x802d369
| 0x0801347a dff8882a ldr.w r2, [0x08013f0a] ; [0x8013f08:4]=0xf8dfb5e0
| 0x0801347e dff8f805 ldr.w r0, [0x08013a7e] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08013482 0068 ldr r0, [r0]
| 0x08013484 dff8f415 ldr.w r1, [0x08013a80] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| 0x08013488 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801348c d0f80c11 ldr.w r1, [r0, 0x10c]
| 0x08013490 dff8d005 ldr.w r0, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08013494 0078 ldrb r0, [r0]
| 0x08013496 f9f74af9 bl md380_create_menu_entry
\ 0x0801349a 07bd pop {r0, r1, r2, pc}
;-- :
/ (fcn) 408
| Create_Menu_Utilities ();
| 0x080134a0 3eb5 push {r1, r2, r3, r4, r5, lr}
| 0x080134a2 0124 movs r4, 1 ; 1
| 0x080134a4 dff8cc05 ldr.w r0, [0x08013a78] ; [0x8013a78:4]=0x2001e6ec
| 0x080134a8 0078 ldrb r0, [r0]
| 0x080134aa 0c21 movs r1, 0xc ; 12
| 0x080134ac dff8b825 ldr.w r2, [0x08013a6c] ; [0x8013a6c:4]=0x8013083
| 0x080134b0 01fb0020 mla r0, r1, r0, r2
| 0x080134b4 10f10c05 adds.w r5, r0, 0xc
| 0x080134b8 dff8bc05 ldr.w r0, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080134bc 0068 ldr r0, [r0]
| 0x080134be dff8bc15 ldr.w r1, [0x08013a82] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| 0x080134c2 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080134c6 006a ldr r0, [r0, 0x20]
| 0x080134c8 2860 str r0, [r5]
| 0x080134ca dff89805 ldr.w r0, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x080134ce 0078 ldrb r0, [r0]
| 0x080134d0 1421 movs r1, 0x14 ; 20
| 0x080134d2 dff8ac25 ldr.w r2, [0x08013a86] ; [0x8013a84:4]=0x2001e57c zone_number_in_byte_3
| 0x080134d6 01fb0020 mla r0, r1, r0, r2
| 0x080134da 6860 str r0, [r5, 4]
| 0x080134dc dff8cc0a ldr.w r0, [0x08013fb0] ; [0x8013fb0:4]=0x8017cbd
| 0x080134e0 0078 ldrb r0, [r0]
| 0x080134e2 10f00300 ands r0, r0, 3
| 0x080134e6 0228 cmp r0, 2 ; 2
| ,=< 0x080134e8 02d1 bne 0x80134f0
| | 0x080134ea 0520 movs r0, 5 ; 5
| | 0x080134ec 2872 strb r0, [r5, 8]
| ,==< 0x080134ee 01e0 b 0x80134f4
| |`-> 0x080134f0 0320 movs r0, 3 ; 3
| | 0x080134f2 2872 strb r0, [r5, 8]
| `--> 0x080134f4 0020 movs r0, 0
| 0x080134f6 6872 strb r0, [r5, 9]
| 0x080134f8 0020 movs r0, 0
| 0x080134fa 6881 strh r0, [r5, 0xa]
| 0x080134fc 0120 movs r0, 1 ; 1
| 0x080134fe 0290 str r0, [sp, 8]
| 0x08013500 0020 movs r0, 0
| 0x08013502 0190 str r0, [sp, 4]
| 0x08013504 8a20 movs r0, 0x8a ; 138
| 0x08013506 0090 str r0, [sp]
| 0x08013508 dff8f439 ldr.w r3, [0x08013f04] ; [0x8013f04:4]=0x802d369
| 0x0801350c dff8a02a ldr.w r2, [0x08013fb4] ; [0x8013fb4:4]=0x80165b9
| 0x08013510 dff86405 ldr.w r0, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08013514 0068 ldr r0, [r0]
| 0x08013516 dff86415 ldr.w r1, [0x08013a82] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| 0x0801351a 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801351e d0f82011 ldr.w r1, [r0, 0x120] ; R.a.d.i.o...S.e
| 0x08013522 dff84005 ldr.w r0, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08013526 0078 ldrb r0, [r0]
| ;-- :
| 0x08013528 f9f701f9 bl md380_create_menu_entry
| 0x0801352c 0120 movs r0, 1 ; 1
| 0x0801352e 0290 str r0, [sp, 8]
| 0x08013530 0020 movs r0, 0
| 0x08013532 0190 str r0, [sp, 4]
| 0x08013534 8a20 movs r0, 0x8a ; 138
| 0x08013536 0090 str r0, [sp]
| 0x08013538 dff8c439 ldr.w r3, [0x08013f04] ; [0x8013f04:4]=0x802d369
| 0x0801353c dff8742a ldr.w r2, [0x08013fb8] ; [0x8013fb8:4]=0x2001e574 md380_program_radio_unprohibited
| 0x08013540 dff83405 ldr.w r0, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08013544 0068 ldr r0, [r0]
| 0x08013546 dff83415 ldr.w r1, [0x08013a82] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| 0x0801354a 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801354e d0f82411 ldr.w r1, [r0, 0x124] ; R.a.d.i.o...I.n.
| 0x08013552 dff81005 ldr.w r0, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x08013556 0078 ldrb r0, [r0]
| 0x08013558 401c adds r0, r0, 1
| 0x0801355a c0b2 uxtb r0, r0
| ;-- :
| 0x0801355c f9f7e7f8 bl md380_create_menu_entry
| 0x08013560 dff8540a ldr.w r0, [menugreen.prog.GroupList.8013fbc] ; [0x8013fbc:4]=0xf8dfb53e LEA menugreen.prog.GroupList.8013fbc ; ">....." @ 0x8013fbc
| 0x08013564 0079 ldrb r0, [r0, 4]
| 0x08013566 c0f38000 ubfx r0, r0, 2, 1
| 0x0801356a c007 lsls r0, r0, 0x1f
| ,=< 0x0801356c 02d4 bmi 0x8013574
| | 0x0801356e 54f00104 orrs r4, r4, 1
| ,==< 0x08013572 00e0 b 0x8013576
| |`-> 0x08013574 0024 movs r4, 0
| `--> 0x08013576 e4b2 uxtb r4, r4
| 0x08013578 a4b2 uxth r4, r4
| 0x0801357a 0294 str r4, [sp, 8]
| 0x0801357c 0020 movs r0, 0
| 0x0801357e 0190 str r0, [sp, 4]
| 0x08013580 8a20 movs r0, 0x8a ; 138
| 0x08013582 0090 str r0, [sp]
| 0x08013584 dff87839 ldr.w r3, [0x08013f04] ; [0x8013f04:4]=0x802d369
| 0x08013588 dff8082b ldr.w r2, [0x08014098] ; [0x8014098:4]=0x8016689
| 0x0801358c dff8e804 ldr.w r0, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08013590 0068 ldr r0, [r0]
| 0x08013592 dff8e814 ldr.w r1, [0x08013a82] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| 0x08013596 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801359a d0f86c13 ldr.w r1, [r0, 0x36c] ; P.r.o.g.r.a.m..
| 0x0801359e dff8c404 ldr.w r0, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x080135a2 0078 ldrb r0, [r0]
| 0x080135a4 801c adds r0, r0, 2
| 0x080135a6 c0b2 uxtb r0, r0
| ;-- :
| 0x080135a8 f9f7c1f8 bl md380_create_menu_entry
| 0x080135ac 0020 movs r0, 0
| 0x080135ae 0290 str r0, [sp, 8]
| 0x080135b0 0020 movs r0, 0
| 0x080135b2 0190 str r0, [sp, 4]
| 0x080135b4 8a20 movs r0, 0x8a ; 138
| 0x080135b6 0090 str r0, [sp]
| 0x080135b8 dff84439 ldr.w r3, [0x08013f04] ; [0x8013f04:4]=0x802d369
| 0x080135bc dff8d82a ldr.w r2, [0x0801409c] ; [0x801409c:4]=0x8013639
| 0x080135c0 dff8b404 ldr.w r0, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080135c4 0068 ldr r0, [r0]
| 0x080135c6 dff8b414 ldr.w r1, [0x08013a82] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| 0x080135ca 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080135ce d0f8bc13 ldr.w r1, [r0, 0x3bc] ; G.P.S./.B.e.i.D
| 0x080135d2 dff89004 ldr.w r0, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x080135d6 0078 ldrb r0, [r0]
| 0x080135d8 c01c adds r0, r0, 3
| 0x080135da c0b2 uxtb r0, r0
| ;-- :
| 0x080135dc f9f7a7f8 bl md380_create_menu_entry
| 0x080135e0 0020 movs r0, 0
| 0x080135e2 0290 str r0, [sp, 8]
| 0x080135e4 0020 movs r0, 0
| 0x080135e6 0190 str r0, [sp, 4]
| 0x080135e8 8a20 movs r0, 0x8a ; 138
| 0x080135ea 0090 str r0, [sp]
| 0x080135ec dff81039 ldr.w r3, [0x08013f04] ; [0x8013f04:4]=0x802d369
| 0x080135f0 dff8a82a ldr.w r2, [0x080140a0] ; [0x80140a0:4]=0xf8dfb5e0
| 0x080135f4 dff88004 ldr.w r0, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080135f8 0068 ldr r0, [r0]
| 0x080135fa dff88014 ldr.w r1, [0x08013a82] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| 0x080135fe 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08013602 d0f8e013 ldr.w r1, [r0, 0x3e0] ; R.X...G.P.S.I.n.
| 0x08013606 dff85c04 ldr.w r0, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| 0x0801360a 0078 ldrb r0, [r0]
| 0x0801360c 001d adds r0, r0, 4
| 0x0801360e c0b2 uxtb r0, r0
| ;-- :
| 0x08013610 f9f78df8 bl md380_create_menu_entry
| 0x08013614 0020 movs r0, 0
| ,=< 0x08013616 0be0 b 0x8013630
| .--> 0x08013618 dff84814 ldr.w r1, [0x08013a68] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| || 0x0801361c 0978 ldrb r1, [r1]
| || 0x0801361e 4118 adds r1, r0, r1
| || 0x08013620 1422 movs r2, 0x14 ; 20
| || 0x08013622 dff85c34 ldr.w r3, [0x08013a86] ; [0x8013a84:4]=0x2001e57c zone_number_in_byte_3
| || 0x08013626 02fb0131 mla r1, r2, r1, r3
| || 0x0801362a 0222 movs r2, 2 ; 2
| || 0x0801362c 0a74 strb r2, [r1, 0x10]
| || 0x0801362e 401c adds r0, r0, 1
| |`-> 0x08013630 297a ldrb r1, [r5, 8]
| | 0x08013632 8842 cmp r0, r1
| `==< 0x08013634 f0db blt 0x8013618
\ 0x08013636 37bd pop {r0, r1, r2, r4, r5, pc}
;-- :
/ (fcn) 930
| md380_menu_entry_programradio ();
| 0x080136c0 10b5 push {r4, lr}
| 0x080136c2 84b0 sub sp, 0x10
| 0x080136c4 dff89c1a ldr.w r1, [0x08014168] ; [0x8014168:4]=0x2001de78 struct_channel_info2
| 0x080136c8 0020 movs r0, 0
| ,=< 0x080136ca 00e0 b 0x80136ce
| .--> 0x080136cc 401c adds r0, r0, 1
| |`-> 0x080136ce c0b2 uxtb r0, r0
| | 0x080136d0 0428 cmp r0, 4 ; 4
| |,=< 0x080136d2 03d2 bhs 0x80136dc
| || 0x080136d4 c0b2 uxtb r0, r0
| || 0x080136d6 425c ldrb r2, [r0, r1]
| || 0x080136d8 ff2a cmp r2, 0xff ; 255
| `==< 0x080136da f7d0 beq 0x80136cc
| `-> 0x080136dc c0b2 uxtb r0, r0
| 0x080136de 0428 cmp r0, 4 ; 4
| ,=< 0x080136e0 40f06181 bne.w 0x80139a6
| | 0x080136e4 dff88c03 ldr.w r0, [0x08013a78] ; [0x8013a78:4]=0x2001e6ec
| | 0x080136e8 0078 ldrb r0, [r0]
| | 0x080136ea 0c21 movs r1, 0xc ; 12
| | 0x080136ec dff87823 ldr.w r2, [0x08013a6c] ; [0x8013a6c:4]=0x8013083
| | 0x080136f0 01fb0020 mla r0, r1, r0, r2
| | 0x080136f4 10f10c04 adds.w r4, r0, 0xc
| | 0x080136f8 dff87803 ldr.w r0, [0x08013a78] ; [0x8013a78:4]=0x2001e6ec
| | 0x080136fc 0078 ldrb r0, [r0]
| | 0x080136fe fcf7a9fa bl menu_add_number_of_menuentries_counts
| | 0x08013702 d849 ldr r1, [0x08013a66] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| | 0x08013704 0870 strb r0, [r1]
| | 0x08013706 dc48 ldr r0, [0x08013a7a] ; [0x8013a78:4]=0x2001e6ec
| | 0x08013708 0068 ldr r0, [r0]
| | 0x0801370a dc49 ldr r1, [0x08013a7e] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0801370c 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08013710 d0f87403 ldr.w r0, [r0, 0x374] ; E.d.i.t...C.h.a.
| | 0x08013714 2060 str r0, [r4]
| | 0x08013716 d348 ldr r0, [0x08013a66] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| | 0x08013718 0078 ldrb r0, [r0]
| | 0x0801371a 1421 movs r1, 0x14 ; 20
| | 0x0801371c d84a ldr r2, [0x08013a80] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| | 0x0801371e 01fb0020 mla r0, r1, r0, r2
| | 0x08013722 6060 str r0, [r4, 4]
| | 0x08013724 dff8400a ldr.w r0, [0x0801416c] ; [0x801416c:4]=0x80156a5
| | 0x08013728 0078 ldrb r0, [r0]
| | 0x0801372a 10f00300 ands r0, r0, 3
| | 0x0801372e 0128 cmp r0, 1 ; 1
| ,==< 0x08013730 02d1 bne 0x8013738
| || 0x08013732 0720 movs r0, 7 ; 7
| || 0x08013734 2072 strb r0, [r4, 8]
| ,===< 0x08013736 01e0 b 0x801373c
| |`--> 0x08013738 0920 movs r0, 9 ; 9
| | | 0x0801373a 2072 strb r0, [r4, 8]
| `---> 0x0801373c 0020 movs r0, 0
| | 0x0801373e 6072 strb r0, [r4, 9]
| | 0x08013740 0020 movs r0, 0
| | 0x08013742 6081 strh r0, [r4, 0xa]
| | 0x08013744 0120 movs r0, 1 ; 1
| | 0x08013746 0290 str r0, [sp, 8]
| | 0x08013748 0020 movs r0, 0
| | 0x0801374a 0190 str r0, [sp, 4]
| | 0x0801374c 8a20 movs r0, 0x8a ; 138
| | 0x0801374e 0090 str r0, [sp]
| | 0x08013750 dff8ac37 ldr.w r3, [0x08013f04] ; [0x8013f04:4]=0x802d369
| | 0x08013754 dff8142a ldr.w r2, [0x08014170] ; [0x8014170:4]=0x8015b75
| | 0x08013758 c748 ldr r0, [0x08013a78] ; [0x8013a78:4]=0x2001e6ec
| | 0x0801375a 0068 ldr r0, [r0]
| | 0x0801375c c749 ldr r1, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0801375e 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08013762 d0f87813 ldr.w r1, [r0, 0x378] ; R.x...F.r.e.q.u
| | 0x08013766 bf48 ldr r0, [0x08013a66] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| | 0x08013768 0078 ldrb r0, [r0]
| | 0x0801376a f8f7e0ff bl md380_create_menu_entry
| | 0x0801376e 0120 movs r0, 1 ; 1
| | 0x08013770 0290 str r0, [sp, 8]
| | 0x08013772 0020 movs r0, 0
| | 0x08013774 0190 str r0, [sp, 4]
| | 0x08013776 8a20 movs r0, 0x8a ; 138
| | 0x08013778 0090 str r0, [sp]
| | 0x0801377a dff88437 ldr.w r3, [0x08013f06] ; [0x8013f04:4]=0x802d369
| | 0x0801377e dff8f029 ldr.w r2, [0x08014176] ; [0x8014174:4]=0xb084b510
| | 0x08013782 bd48 ldr r0, [0x08013a7a] ; [0x8013a78:4]=0x2001e6ec
| | 0x08013784 0068 ldr r0, [r0]
| | 0x08013786 bd49 ldr r1, [0x08013a7e] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08013788 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x0801378c d0f87c13 ldr.w r1, [r0, 0x37c]
| | 0x08013790 b448 ldr r0, [0x08013a64] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| | 0x08013792 0078 ldrb r0, [r0]
| | 0x08013794 401c adds r0, r0, 1
| | 0x08013796 c0b2 uxtb r0, r0
| | 0x08013798 f8f7c9ff bl md380_create_menu_entry
| | 0x0801379c 0120 movs r0, 1 ; 1
| | 0x0801379e 0290 str r0, [sp, 8]
| | 0x080137a0 0020 movs r0, 0
| | 0x080137a2 0190 str r0, [sp, 4]
| | 0x080137a4 8a20 movs r0, 0x8a ; 138
| | 0x080137a6 0090 str r0, [sp]
| | 0x080137a8 dff85437 ldr.w r3, [0x08013f04] ; [0x8013f04:4]=0x802d369
| | 0x080137ac dff8002b ldr.w r2, [0x080142b4] ; [0x80142b4:4]=0x8016321
| | 0x080137b0 b148 ldr r0, [0x08013a78] ; [0x8013a78:4]=0x2001e6ec
| | 0x080137b2 0068 ldr r0, [r0]
| | 0x080137b4 b149 ldr r1, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x080137b6 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x080137ba d0f88013 ldr.w r1, [r0, 0x380] ; C.h.a.n.n.e.l.
| | 0x080137be a948 ldr r0, [0x08013a66] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| | 0x080137c0 0078 ldrb r0, [r0]
| | 0x080137c2 801c adds r0, r0, 2
| | 0x080137c4 c0b2 uxtb r0, r0
| | 0x080137c6 f8f7b2ff bl md380_create_menu_entry
| | 0x080137ca 0120 movs r0, 1 ; 1
| | 0x080137cc 0290 str r0, [sp, 8]
| | 0x080137ce 0020 movs r0, 0
| | 0x080137d0 0190 str r0, [sp, 4]
| | 0x080137d2 8a20 movs r0, 0x8a ; 138
| | 0x080137d4 0090 str r0, [sp]
| | 0x080137d6 dff82837 ldr.w r3, [0x08013f06] ; [0x8013f04:4]=0x802d369
| | 0x080137da dff8d82a ldr.w r2, [0x080142ba] ; [0x80142b8:4]=0x8014175
| | 0x080137de a648 ldr r0, [0x08013a7a] ; [0x8013a78:4]=0x2001e6ec
| | 0x080137e0 0068 ldr r0, [r0]
| | 0x080137e2 a649 ldr r1, [0x08013a7e] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x080137e4 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x080137e8 d0f88413 ldr.w r1, [r0, 0x384] ; T.i.m.e...O.u.t
| | 0x080137ec 9d48 ldr r0, [0x08013a64] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| | 0x080137ee 0078 ldrb r0, [r0]
| | 0x080137f0 c01c adds r0, r0, 3
| | 0x080137f2 c0b2 uxtb r0, r0
| | 0x080137f4 f8f79bff bl md380_create_menu_entry
| | 0x080137f8 dff86c09 ldr.w r0, [0x0801416c] ; [0x801416c:4]=0x80156a5
| | 0x080137fc 0078 ldrb r0, [r0]
| | 0x080137fe 10f00300 ands r0, r0, 3
| | 0x08013802 0128 cmp r0, 1 ; 1
| ,==< 0x08013804 17d1 bne 0x8013836
| || 0x08013806 0120 movs r0, 1 ; 1
| || 0x08013808 0290 str r0, [sp, 8]
| || 0x0801380a 0020 movs r0, 0
| || 0x0801380c 0190 str r0, [sp, 4]
| || 0x0801380e 8a20 movs r0, 0x8a ; 138
| || 0x08013810 0090 str r0, [sp]
| || 0x08013812 dff8ec36 ldr.w r3, [0x08013f06] ; [0x8013f04:4]=0x802d369
| || 0x08013816 dff8a02a ldr.w r2, [0x080142be] ; [0x80142bc:4]=0x8015541
| || 0x0801381a 9748 ldr r0, [0x08013a7a] ; [0x8013a78:4]=0x2001e6ec
| || 0x0801381c 0068 ldr r0, [r0]
| || 0x0801381e 9749 ldr r1, [0x08013a7e] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x08013820 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x08013824 d0f87013 ldr.w r1, [r0, 0x370] ; C.T.C./.D.C.S
| || 0x08013828 8e48 ldr r0, [0x08013a64] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| || 0x0801382a 0078 ldrb r0, [r0]
| || 0x0801382c 001d adds r0, r0, 4
| || 0x0801382e c0b2 uxtb r0, r0
| || 0x08013830 f8f77dff bl md380_create_menu_entry
| ,===< 0x08013834 16e0 b 0x8013864
| |`--> 0x08013836 0120 movs r0, 1 ; 1
| | | 0x08013838 0290 str r0, [sp, 8]
| | | 0x0801383a 0020 movs r0, 0
| | | 0x0801383c 0190 str r0, [sp, 4]
| | | 0x0801383e 0a20 movs r0, 0xa ; 10
| | | 0x08013840 0090 str r0, [sp]
| | | 0x08013842 dff8bc36 ldr.w r3, [0x08013f06] ; [0x8013f04:4]=0x802d369
| | | 0x08013846 dff8b826 ldr.w r2, [0x08013f06] ; [0x8013f04:4]=0x802d369
| | | 0x0801384a 8b48 ldr r0, [0x08013a7a] ; [0x8013a78:4]=0x2001e6ec
| | | 0x0801384c 0068 ldr r0, [r0]
| | | 0x0801384e 8b49 ldr r1, [0x08013a7e] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | | 0x08013850 11eb8000 adds.w r0, r1, r0, lsl 2
| | | 0x08013854 d0f87013 ldr.w r1, [r0, 0x370]
| | | 0x08013858 8248 ldr r0, [0x08013a64] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| | | 0x0801385a 0078 ldrb r0, [r0]
| | | 0x0801385c 001d adds r0, r0, 4
| | | 0x0801385e c0b2 uxtb r0, r0
| | | 0x08013860 f8f765ff bl md380_create_menu_entry
| `---> 0x08013864 dff80009 ldr.w r0, [0x0801416c] ; [0x801416c:4]=0x80156a5
| | 0x08013868 0078 ldrb r0, [r0]
| | 0x0801386a 10f00300 ands r0, r0, 3
| | 0x0801386e 0228 cmp r0, 2 ; 2
| ,==< 0x08013870 5cd1 bne 0x801392c
| || 0x08013872 0120 movs r0, 1 ; 1
| || 0x08013874 0290 str r0, [sp, 8]
| || 0x08013876 0020 movs r0, 0
| || 0x08013878 0190 str r0, [sp, 4]
| || 0x0801387a 8a20 movs r0, 0x8a ; 138
| || 0x0801387c 0090 str r0, [sp]
| || 0x0801387e dff88036 ldr.w r3, [0x08013f06] ; [0x8013f04:4]=0x802d369
| || 0x08013882 dff8382a ldr.w r2, [0x080142c2] ; [0x80142c0:4]=0x80153dd
| || 0x08013886 7c48 ldr r0, [0x08013a7a] ; [0x8013a78:4]=0x2001e6ec
| || 0x08013888 0068 ldr r0, [r0]
| || 0x0801388a 7c49 ldr r1, [0x08013a7e] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0801388c 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x08013890 d0f8a413 ldr.w r1, [r0, 0x3a4] ; C.o.l.o.r...C.o
| || 0x08013894 7348 ldr r0, [0x08013a64] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| || 0x08013896 0078 ldrb r0, [r0]
| || 0x08013898 401d adds r0, r0, 5
| || 0x0801389a c0b2 uxtb r0, r0
| || 0x0801389c f8f747ff bl md380_create_menu_entry
| || 0x080138a0 0120 movs r0, 1 ; 1
| || 0x080138a2 0290 str r0, [sp, 8]
| || 0x080138a4 0020 movs r0, 0
| || 0x080138a6 0190 str r0, [sp, 4]
| || 0x080138a8 8a20 movs r0, 0x8a ; 138
| || 0x080138aa 0090 str r0, [sp]
| || 0x080138ac dff85036 ldr.w r3, [0x08013f04] ; [0x8013f04:4]=0x802d369
| || 0x080138b0 dff80c2a ldr.w r2, [0x080142c4] ; [0x80142c4:4]=0x8013e79
| || 0x080138b4 7048 ldr r0, [0x08013a78] ; [0x8013a78:4]=0x2001e6ec
| || 0x080138b6 0068 ldr r0, [r0]
| || 0x080138b8 7049 ldr r1, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x080138ba 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x080138be d0f8a813 ldr.w r1, [r0, 0x3a8] ; R.e.p.e.a.t.e.r.
| || 0x080138c2 6848 ldr r0, [0x08013a66] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| || 0x080138c4 0078 ldrb r0, [r0]
| || 0x080138c6 801d adds r0, r0, 6
| || 0x080138c8 c0b2 uxtb r0, r0
| || 0x080138ca f8f730ff bl md380_create_menu_entry
| || 0x080138ce 0120 movs r0, 1 ; 1
| || 0x080138d0 0290 str r0, [sp, 8]
| || 0x080138d2 2020 movs r0, 0x20 ; 32
| || 0x080138d4 0190 str r0, [sp, 4]
| || 0x080138d6 8a20 movs r0, 0x8a ; 138
| || 0x080138d8 0090 str r0, [sp]
| || 0x080138da dff82436 ldr.w r3, [0x08013f06] ; [0x8013f04:4]=0x802d369
| || 0x080138de dff8e429 ldr.w r2, [0x080142ca] ; [0x80142c8:4]=0x48b7b5fe
| || 0x080138e2 6548 ldr r0, [0x08013a7a] ; [0x8013a78:4]=0x2001e6ec
| || 0x080138e4 0068 ldr r0, [r0]
| || 0x080138e6 6549 ldr r1, [0x08013a7e] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x080138e8 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x080138ec d0f8d813 ldr.w r1, [r0, 0x3d8] ; T.x.C.o.n.t.a.
| || 0x080138f0 5c48 ldr r0, [0x08013a64] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| || 0x080138f2 0078 ldrb r0, [r0]
| || 0x080138f4 c01d adds r0, r0, 7
| || 0x080138f6 c0b2 uxtb r0, r0
| || 0x080138f8 f8f719ff bl md380_create_menu_entry
| || 0x080138fc 0120 movs r0, 1 ; 1
| || 0x080138fe 0290 str r0, [sp, 8]
| || 0x08013900 2020 movs r0, 0x20 ; 32
| || 0x08013902 0190 str r0, [sp, 4]
| || 0x08013904 8a20 movs r0, 0x8a ; 138
| || 0x08013906 0090 str r0, [sp]
| || 0x08013908 dff8f435 ldr.w r3, [0x08013f04] ; [0x8013f04:4]=0x802d369
| || 0x0801390c dff8ec2a ldr.w r2, [0x08014400] ; [0x8014400:4]=0x2001e914 md380_menu_0x2001d3c1
| || 0x08013910 5948 ldr r0, [0x08013a78] ; [0x8013a78:4]=0x2001e6ec
| || 0x08013912 0068 ldr r0, [r0]
| || 0x08013914 5949 ldr r1, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x08013916 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0801391a d0f8dc13 ldr.w r1, [r0, 0x3dc] ; G.r.o.u.p.L.i.s
| || 0x0801391e 5148 ldr r0, [0x08013a66] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| || 0x08013920 0078 ldrb r0, [r0]
| || 0x08013922 0830 adds r0, 8
| || 0x08013924 c0b2 uxtb r0, r0
| || 0x08013926 f8f702ff bl md380_create_menu_entry
| ,===< 0x0801392a 2de0 b 0x8013988
| |`--> 0x0801392c 0120 movs r0, 1 ; 1
| | | 0x0801392e 0290 str r0, [sp, 8]
| | | 0x08013930 0020 movs r0, 0
| | | 0x08013932 0190 str r0, [sp, 4]
| | | 0x08013934 0a20 movs r0, 0xa ; 10
| | | 0x08013936 0090 str r0, [sp]
| | | 0x08013938 dff8c435 ldr.w r3, [0x08013f04] ; [0x8013f04:4]=0x802d369
| | | 0x0801393c dff8c025 ldr.w r2, [0x08013f04] ; [0x8013f04:4]=0x802d369
| | | 0x08013940 4d48 ldr r0, [0x08013a78] ; [0x8013a78:4]=0x2001e6ec
| | | 0x08013942 0068 ldr r0, [r0]
| | | 0x08013944 4d49 ldr r1, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | | 0x08013946 11eb8000 adds.w r0, r1, r0, lsl 2
| | | 0x0801394a d0f8a413 ldr.w r1, [r0, 0x3a4] ; C.o.l.o.r...C.o
| | | 0x0801394e 4548 ldr r0, [0x08013a66] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| | | 0x08013950 0078 ldrb r0, [r0]
| | | 0x08013952 401d adds r0, r0, 5
| | | 0x08013954 c0b2 uxtb r0, r0
| | | 0x08013956 f8f7eafe bl md380_create_menu_entry
| | | 0x0801395a 0120 movs r0, 1 ; 1
| | | 0x0801395c 0290 str r0, [sp, 8]
| | | 0x0801395e 0020 movs r0, 0
| | | 0x08013960 0190 str r0, [sp, 4]
| | | 0x08013962 0a20 movs r0, 0xa ; 10
| | | 0x08013964 0090 str r0, [sp]
| | | 0x08013966 dff89835 ldr.w r3, [0x08013f06] ; [0x8013f04:4]=0x802d369
| | | 0x0801396a dff85429 ldr.w r2, [0x080142c6] ; [0x80142c4:4]=0x8013e79
| | | 0x0801396e 4248 ldr r0, [0x08013a7a] ; [0x8013a78:4]=0x2001e6ec
| | | 0x08013970 0068 ldr r0, [r0]
| | | 0x08013972 4249 ldr r1, [0x08013a7e] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | | 0x08013974 11eb8000 adds.w r0, r1, r0, lsl 2
| | | 0x08013978 d0f8a813 ldr.w r1, [r0, 0x3a8] ; R.e.p.e.a.t.e.r
| | | 0x0801397c 3948 ldr r0, [0x08013a64] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| | | 0x0801397e 0078 ldrb r0, [r0]
| | | 0x08013980 801d adds r0, r0, 6
| | | 0x08013982 c0b2 uxtb r0, r0
| | | 0x08013984 f8f7d3fe bl md380_create_menu_entry
| `---> 0x08013988 0020 movs r0, 0
| .--> 0x0801398a 217a ldrb r1, [r4, 8]
| || 0x0801398c 8842 cmp r0, r1
| ,===< 0x0801398e 67da bge 0x8013a60
| ||| 0x08013990 3449 ldr r1, [0x08013a64] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| ||| 0x08013992 0978 ldrb r1, [r1]
| ||| 0x08013994 4118 adds r1, r0, r1
| ||| 0x08013996 1422 movs r2, 0x14 ; 20
| ||| 0x08013998 394b ldr r3, [0x08013a80] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| ||| 0x0801399a 02fb0131 mla r1, r2, r1, r3
| ||| 0x0801399e 0222 movs r2, 2 ; 2
| ||| 0x080139a0 0a74 strb r2, [r1, 0x10]
| ||| 0x080139a2 401c adds r0, r0, 1
| |`==< 0x080139a4 f1e7 b 0x801398a
| | `-> 0x080139a6 dff8580a ldr.w r0, [0x08014406] ; [0x8014404:4]=0x2001e94a md380_menu_0x2001d3f4
| | 0x080139aa 3249 ldr r1, [0x08013a76] ; [0x8013a74:4]=0x20004acc md380_menu_depth
| | 0x080139ac 0978 ldrb r1, [r1]
| | 0x080139ae 0170 strb r1, [r0]
| | 0x080139b0 dff8500a ldr.w r0, [0x08014408] ; [0x8014408:4]=0x2001cb9a md380_menu_edit_buf
| | 0x080139b4 0021 movs r1, 0
| | 0x080139b6 0170 strb r1, [r0]
| | 0x080139b8 dff8440b ldr.w r0, [0x08014504] ; [0x8014504:4]=0x2001e943 md380_menu_max_chars
| | 0x080139bc dff8481a ldr.w r1, [0x0801440c] ; [0x801440c:4]=0xa10f8df
| | 0x080139c0 0160 str r1, [r0]
| | 0x080139c2 0020 movs r0, 0
| | ,=< 0x080139c4 07e0 b 0x80139d6
| |.--> 0x080139c6 c0b2 uxtb r0, r0
| ||| 0x080139c8 dff8341b ldr.w r1, [0x08014504] ; [0x8014504:4]=0x2001e943 md380_menu_max_chars
| ||| 0x080139cc 0968 ldr r1, [r1]
| ||| 0x080139ce 0022 movs r2, 0
| ||| 0x080139d0 21f81020 strh.w r2, [r1, r0, lsl 1]
| ||| 0x080139d4 401c adds r0, r0, 1
| ||`-> 0x080139d6 c0b2 uxtb r0, r0
| || 0x080139d8 1128 cmp r0, 0x11 ; 17
| |`==< 0x080139da f4d3 blo 0x80139c6
| | 0x080139dc dff8240b ldr.w r0, [0x08014508] ; [0x8014508:4]=0x2001e944 md380_menu_cursor_pos_1
| | 0x080139e0 0821 movs r1, 8 ; 8
| | 0x080139e2 0170 strb r1, [r0]
| | 0x080139e4 dff8200b ldr.w r0, [0x0801450c] ; [0x801450c:4]=0x2001e945 md380_menu_cursor_pos_2
| | 0x080139e8 0021 movs r1, 0
| | 0x080139ea 0170 strb r1, [r0]
| | 0x080139ec dff81c0b ldr.w r0, [0x08014510] ; [0x8014510:4]=0x2001e947 md380_menu_0x2001d3f1
| | 0x080139f0 0021 movs r1, 0
| | 0x080139f2 0170 strb r1, [r0]
| | 0x080139f4 dff8180b ldr.w r0, [0x08014514] ; [0x8014514:4]=0x2001e946 md380_menu_field_type
| | 0x080139f8 0021 movs r1, 0
| | 0x080139fa 0170 strb r1, [r0]
| | 0x080139fc dff8140b ldr.w r0, [0x08014518] ; [0x8014518:4]=0x801b043
| | 0x08013a00 0321 movs r1, 3 ; 3
| | 0x08013a02 0170 strb r1, [r0]
| | 0x08013a04 1b48 ldr r0, [0x08013a74] ; [0x8013a74:4]=0x20004acc md380_menu_depth
| | 0x08013a06 0078 ldrb r0, [r0]
| | 0x08013a08 0c21 movs r1, 0xc ; 12
| | 0x08013a0a 174a ldr r2, [0x08013a6a] ; [0x8013a68:4]=0x2001d5cc md380_menu_memory
| | 0x08013a0c 01fb0020 mla r0, r1, r0, r2
| | 0x08013a10 10f10c04 adds.w r4, r0, 0xc
| | 0x08013a14 1848 ldr r0, [0x08013a78] ; [0x8013a78:4]=0x2001e6ec
| | 0x08013a16 0068 ldr r0, [r0]
| | 0x08013a18 1849 ldr r1, [0x08013a7c] ; [0x8013a7c:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x08013a1a 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x08013a1e d0f84003 ldr.w r0, [r0, 0x340] ; E.n.t.e.r...P.
| | 0x08013a22 2060 str r0, [r4]
| | 0x08013a24 0f48 ldr r0, [0x08013a64] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| | 0x08013a26 0078 ldrb r0, [r0]
| | 0x08013a28 1421 movs r1, 0x14 ; 20
| | 0x08013a2a 154a ldr r2, [0x08013a82] ; [0x8013a80:4]=0x2001b274 md380_menu_mem_base
| | 0x08013a2c 01fb0020 mla r0, r1, r0, r2
| | 0x08013a30 6060 str r0, [r4, 4]
| | 0x08013a32 0120 movs r0, 1 ; 1
| | 0x08013a34 2072 strb r0, [r4, 8]
| | 0x08013a36 0020 movs r0, 0
| | 0x08013a38 6072 strb r0, [r4, 9]
| | 0x08013a3a 0020 movs r0, 0
| | 0x08013a3c 6081 strh r0, [r4, 0xa]
| | 0x08013a3e 0120 movs r0, 1 ; 1
| | 0x08013a40 0290 str r0, [sp, 8]
| | 0x08013a42 0020 movs r0, 0
| | 0x08013a44 0190 str r0, [sp, 4]
| | 0x08013a46 8120 movs r0, 0x81 ; 129
| | 0x08013a48 0090 str r0, [sp]
| | 0x08013a4a dff8cc3a ldr.w r3, [0x0801451e] ; [0x801451c:4]=0x8013aa5
| | 0x08013a4e dff8cc2a ldr.w r2, [0x08014522] ; [0x8014520:4]=0x4821b5e0
| | 0x08013a52 dff8ac0a ldr.w r0, [0x08014506] ; [0x8014504:4]=0x2001e943 md380_menu_max_chars
| | 0x08013a56 0168 ldr r1, [r0]
| | 0x08013a58 0248 ldr r0, [0x08013a64] ; [0x8013a64:4]=0x2001e915 md380_menu_id
| | 0x08013a5a 0078 ldrb r0, [r0]
| | 0x08013a5c f8f767fe bl md380_create_menu_entry
\ `---> 0x08013a60 1fbd pop {r0, r1, r2, r3, r4, pc}
;-- :
/ (fcn) 104
| Create_Menu_Entry_RX_QRG_shown ();
| 0x080156a4 e0b5 push {r5, r6, r7, lr}
| 0x080156a6 1b48 ldr r0, [0x08015716] ; [0x8015714:4]=0x20004acc md380_menu_depth
| 0x080156a8 0078 ldrb r0, [r0]
| 0x080156aa 0c21 movs r1, 0xc ; 12
| 0x080156ac 1a4a ldr r2, [0x08015718] ; [0x8015718:4]=0x2001d5cc md380_menu_memory
| 0x080156ae 01fb0020 mla r0, r1, r0, r2
| 0x080156b2 0c30 adds r0, 0xc
| 0x080156b4 9049 ldr r1, [0x080158f8] ; [0x80158f8:4]=0x2001e6ec
| 0x080156b6 0968 ldr r1, [r1]
| 0x080156b8 904a ldr r2, [0x080158fc] ; [0x80158fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080156ba 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x080156be d1f87813 ldr.w r1, [r1, 0x378]
| 0x080156c2 0160 str r1, [r0]
| 0x080156c4 dff81815 ldr.w r1, [0x08015be4] ; [0x8015be4:4]=0x800fc85 menu_entry_back_1
| 0x080156c8 0978 ldrb r1, [r1]
| 0x080156ca 1422 movs r2, 0x14 ; 20
| 0x080156cc 894b ldr r3, [0x080158f4] ; [0x80158f4:4]=0x2001b274 md380_menu_mem_base
| 0x080156ce 02fb0131 mla r1, r2, r1, r3
| 0x080156d2 4160 str r1, [r0, 4]
| 0x080156d4 0121 movs r1, 1 ; 1
| 0x080156d6 0172 strb r1, [r0, 8]
| 0x080156d8 0021 movs r1, 0
| 0x080156da 4172 strb r1, [r0, 9]
| 0x080156dc 0021 movs r1, 0
| 0x080156de 4181 strh r1, [r0, 0xa]
| 0x080156e0 0120 movs r0, 1 ; 1
| 0x080156e2 0290 str r0, [sp, 8]
| 0x080156e4 0020 movs r0, 0
| 0x080156e6 0190 str r0, [sp, 4]
| 0x080156e8 8520 movs r0, 0x85 ; 133
| 0x080156ea 0090 str r0, [sp]
| 0x080156ec dff8f434 ldr.w r3, [menugreen.prog.txf.show.8015be8] ; [0x8015be8:4]=0xf8dfb5e0 LEA menugreen.prog.txf.show.8015be8 ; menugreen.prog.txf.show.8015be8
| 0x080156f0 dff8002a ldr.w r2, [0x080160f8] ; [0x80160f8:4]=0x20004acc md380_menu_depth
| 0x080156f4 dff82819 ldr.w r1, [menugreen.prog.Channel_N.8016024] ; [0x8016024:4]=0xf8dfb5e0 LEA menugreen.prog.Channel_N.8016024 ; menugreen.prog.Channel_N.8016024
| 0x080156f8 dff8e404 ldr.w r0, [0x08015be4] ; [0x8015be4:4]=0x800fc85 menu_entry_back_1
| 0x080156fc 0078 ldrb r0, [r0]
| 0x080156fe f7f716f8 bl md380_create_menu_entry
| 0x08015702 dff81c09 ldr.w r0, [0x08016026] ; [0x8016024:4]=0xf8dfb5e0 LEA menugreen.prog.Channel_N.8016024 ; menugreen.prog.Channel_N.8016024
| 0x08015706 f8f7f6ff bl menu_RX_QRG_to_str
\ 0x0801570a 07bd pop {r0, r1, r2, pc}
;-- :
/ (fcn) 220
| Create_Menu_Entry_RX_QRG_1 ();
| 0x08015720 e0b5 push {r5, r6, r7, lr}
| 0x08015722 dff8d409 ldr.w r0, [0x080160fe] ; [0x80160fc:4]=0x2001e94a md380_menu_0x2001d3f4
| 0x08015726 0078 ldrb r0, [r0]
| 0x08015728 401e subs r0, r0, 1
| 0x0801572a dff8cc19 ldr.w r1, [0x080160fe] ; [0x80160fc:4]=0x2001e94a md380_menu_0x2001d3f4
| 0x0801572e 0870 strb r0, [r1]
| 0x08015730 dff8c809 ldr.w r0, [0x08016100] ; [0x8016100:4]=0x200049fc mn_editbuffer_poi
| 0x08015734 0021 movs r1, 0
| 0x08015736 0170 strb r1, [r0]
| 0x08015738 dff8c409 ldr.w r0, [0x08016104] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| 0x0801573c dff8c419 ldr.w r1, [0x08016108] ; [0x8016108:4]=0x2001e2dc
| 0x08015740 0160 str r1, [r0]
| 0x08015742 0020 movs r0, 0
| ,=< 0x08015744 0de0 b 0x8015762
| .--> 0x08015746 40b2 sxtb r0, r0
| || 0x08015748 dff8b419 ldr.w r1, [0x08016104] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| || 0x0801574c 0968 ldr r1, [r1]
| || 0x0801574e 0022 movs r2, 0
| || 0x08015750 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x08015754 40b2 sxtb r0, r0
| || 0x08015756 dff8b019 ldr.w r1, [0x0801610e] ; [0x801610c:4]=0x2001e943 md380_menu_max_chars
| || 0x0801575a 0022 movs r2, 0
| || 0x0801575c 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x08015760 401c adds r0, r0, 1
| |`-> 0x08015762 40b2 sxtb r0, r0
| | 0x08015764 0928 cmp r0, 9 ; 9
| `==< 0x08015766 eedb blt 0x8015746
| 0x08015768 dff89809 ldr.w r0, [0x08016108] ; [0x8016108:4]=0x2001e2dc
| 0x0801576c f8f7c3ff bl menu_RX_QRG_to_str
| 0x08015770 dff89809 ldr.w r0, [0x08016110] ; [0x8016110:4]=0x2001e944 md380_menu_cursor_pos_1
| 0x08015774 0921 movs r1, 9 ; 9
| 0x08015776 0170 strb r1, [r0]
| 0x08015778 dff89409 ldr.w r0, [0x08016114] ; [0x8016114:4]=0x2001e945 md380_menu_cursor_pos_2
| 0x0801577c 0921 movs r1, 9 ; 9
| 0x0801577e 0170 strb r1, [r0]
| 0x08015780 dff89009 ldr.w r0, [0x08016118] ; [0x8016118:4]=0x2001e947 md380_menu_0x2001d3f1
| 0x08015784 0921 movs r1, 9 ; 9
| 0x08015786 0170 strb r1, [r0]
| 0x08015788 dff88c09 ldr.w r0, [0x0801611c] ; [0x801611c:4]=0x2001e946 md380_menu_field_type
| 0x0801578c 0921 movs r1, 9 ; 9
| 0x0801578e 0170 strb r1, [r0]
| 0x08015790 dff88809 ldr.w r0, [0x08016120] ; [0x8016120:4]=0x2001d5cc md380_menu_memory
| 0x08015794 0321 movs r1, 3 ; 3
| 0x08015796 0170 strb r1, [r0]
| 0x08015798 dff85c09 ldr.w r0, [0x080160fc] ; [0x80160fc:4]=0x2001e94a md380_menu_0x2001d3f4
| 0x0801579c 0078 ldrb r0, [r0]
| 0x0801579e 0c21 movs r1, 0xc ; 12
| 0x080157a0 dff87c29 ldr.w r2, [0x08016124] ; [0x8016124:4]=0xf8dfb5e0
| 0x080157a4 01fb0020 mla r0, r1, r0, r2
| 0x080157a8 0c30 adds r0, 0xc
| 0x080157aa 5349 ldr r1, [0x080158fa] ; [0x80158f8:4]=0x2001e6ec
| 0x080157ac 0968 ldr r1, [r1]
| 0x080157ae 534a ldr r2, [0x080158fe] ; [0x80158fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080157b0 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x080157b4 d1f87813 ldr.w r1, [r1, 0x378]
| 0x080157b8 0160 str r1, [r0]
| 0x080157ba dff82414 ldr.w r1, [0x08015be6] ; [0x8015be4:4]=0x800fc85 menu_entry_back_1
| 0x080157be 0978 ldrb r1, [r1]
| 0x080157c0 1422 movs r2, 0x14 ; 20
| 0x080157c2 4c4b ldr r3, [0x080158f6] ; [0x80158f4:4]=0x2001b274 md380_menu_mem_base
| 0x080157c4 02fb0131 mla r1, r2, r1, r3
| 0x080157c8 4160 str r1, [r0, 4]
| 0x080157ca 0121 movs r1, 1 ; 1
| 0x080157cc 0172 strb r1, [r0, 8]
| 0x080157ce 0021 movs r1, 0
| 0x080157d0 4172 strb r1, [r0, 9]
| 0x080157d2 0021 movs r1, 0
| 0x080157d4 4181 strh r1, [r0, 0xa]
| 0x080157d6 0120 movs r0, 1 ; 1
| 0x080157d8 0290 str r0, [sp, 8]
| 0x080157da 0020 movs r0, 0
| 0x080157dc 0190 str r0, [sp, 4]
| 0x080157de 8120 movs r0, 0x81 ; 129
| 0x080157e0 0090 str r0, [sp]
| 0x080157e2 dff83c3a ldr.w r3, [0x08016226] ; [0x8016224:4]=0x801587b ; _Create_Menu_Entry_RX_QRG_2
| 0x080157e6 dff83c2a ldr.w r2, [0x0801622a] ; [0x8016228:4]=0x2001e890 kb_keycode
| 0x080157ea dff81409 ldr.w r0, [0x08016106] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| 0x080157ee 0168 ldr r1, [r0]
| 0x080157f0 dff8ec03 ldr.w r0, [0x08015be4] ; [0x8015be4:4]=0x800fc85 menu_entry_back_1
| 0x080157f4 0078 ldrb r0, [r0]
| 0x080157f6 f6f79aff bl md380_create_menu_entry
\ 0x080157fa 07bd pop {r0, r1, r2, pc}
/ (fcn) 126
| Create_Menu_Entry_RX_QRG_2 ();
| 0x080157fc 80b5 push {r7, lr}
| 0x080157fe dff8280a ldr.w r0, [0x0801622e] ; [0x801622c:4]=0x2001e932
| 0x08015802 0078 ldrb r0, [r0]
| 0x08015804 08f0aafa bl often_called_something_keycode_menu
| 0x08015808 0028 cmp r0, 0
| ,=< 0x0801580a 03d0 beq 0x8015814
| | 0x0801580c dff8ec08 ldr.w r0, [0x08016100] ; [0x8016100:4]=0x200049fc mn_editbuffer_poi
| | 0x08015810 0121 movs r1, 1 ; 1
| | 0x08015812 0170 strb r1, [r0]
| `-> 0x08015814 dff88c0d ldr.w r0, [0x080165a8] ; [0x80165a8:4]=0x2001e6ec
| 0x08015818 0078 ldrb r0, [r0]
| 0x0801581a 0128 cmp r0, 1 ; 1
| ,=< 0x0801581c 2cd1 bne 0x8015878
| | 0x0801581e dff8ec08 ldr.w r0, [0x08016112] ; [0x8016110:4]=0x2001e944 md380_menu_cursor_pos_1
| | 0x08015822 0921 movs r1, 9 ; 9
| | 0x08015824 0170 strb r1, [r0]
| | 0x08015826 dff8e808 ldr.w r0, [0x08016116] ; [0x8016114:4]=0x2001e945 md380_menu_cursor_pos_2
| | 0x0801582a dff8001a ldr.w r1, [0x08016232] ; [0x8016230:4]=0x2001e933
| | 0x0801582e 0978 ldrb r1, [r1]
| | 0x08015830 0170 strb r1, [r0]
| | 0x08015832 dff8e008 ldr.w r0, [0x0801611a] ; [0x8016118:4]=0x2001e947 md380_menu_0x2001d3f1
| | 0x08015836 dff8f819 ldr.w r1, [0x08016236] ; [0x8016234:4]=0xb089b530
| | 0x0801583a 0978 ldrb r1, [r1]
| | 0x0801583c 0170 strb r1, [r0]
| | 0x0801583e dff8d808 ldr.w r0, [0x0801611e] ; [0x801611c:4]=0x2001e946 md380_menu_field_type
| | 0x08015842 0021 movs r1, 0
| | 0x08015844 0170 strb r1, [r0]
| | 0x08015846 dff8d408 ldr.w r0, [0x08016122] ; [0x8016120:4]=0x2001d5cc md380_menu_memory
| | 0x0801584a 0321 movs r1, 3 ; 3
| | 0x0801584c 0170 strb r1, [r0]
| | 0x0801584e 0020 movs r0, 0
| ,==< 0x08015850 0be0 b 0x801586a
| .---> 0x08015852 c0b2 uxtb r0, r0
| ||| 0x08015854 dff8a818 ldr.w r1, [0x08016104] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x08015858 0968 ldr r1, [r1]
| ||| 0x0801585a c0b2 uxtb r0, r0
| ||| 0x0801585c dff8a828 ldr.w r2, [0x0801610c] ; [0x801610c:4]=0x2001e943 md380_menu_max_chars
| ||| 0x08015860 32f81020 ldrh.w r2, [r2, r0, lsl 1]
| ||| 0x08015864 21f81020 strh.w r2, [r1, r0, lsl 1]
| ||| 0x08015868 401c adds r0, r0, 1
| |`--> 0x0801586a c0b2 uxtb r0, r0
| | | 0x0801586c 1028 cmp r0, 0x10 ; 16
| `===< 0x0801586e f0d3 blo 0x8015852
| | 0x08015870 dff8300d ldr.w r0, [0x080165a8] ; [0x80165a8:4]=0x2001e6ec
| | 0x08015874 0021 movs r1, 0
| | 0x08015876 0170 strb r1, [r0]
\ `-> 0x08015878 01bd pop {r0, pc}
;-- :
/ (fcn) 102
| Create_Menu_Entry_RX_QRG_3 ();
| 0x0801587a e0b5 push {r5, r6, r7, lr}
| 0x0801587c dff87808 ldr.w r0, [0x080160fc] ; [0x80160fc:4]=0x2001e94a md380_menu_0x2001d3f4
| 0x08015880 0078 ldrb r0, [r0]
| 0x08015882 0c21 movs r1, 0xc ; 12
| 0x08015884 dff89828 ldr.w r2, [0x08016124] ; [0x8016124:4]=0xf8dfb5e0
| 0x08015888 01fb0020 mla r0, r1, r0, r2
| 0x0801588c 0c30 adds r0, 0xc
| 0x0801588e 1a49 ldr r1, [0x080158fa] ; [0x80158f8:4]=0x2001e6ec
| 0x08015890 0968 ldr r1, [r1]
| 0x08015892 1a4a ldr r2, [0x080158fe] ; [0x80158fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08015894 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08015898 d1f87813 ldr.w r1, [r1, 0x378]
| 0x0801589c 0160 str r1, [r0]
| 0x0801589e d049 ldr r1, [0x08015be2] ; [0x8015be0:4]=0x2001e915 md380_menu_id
| 0x080158a0 0978 ldrb r1, [r1]
| 0x080158a2 1422 movs r2, 0x14 ; 20
| 0x080158a4 134b ldr r3, [0x080158f4] ; [0x80158f4:4]=0x2001b274 md380_menu_mem_base
| 0x080158a6 02fb0131 mla r1, r2, r1, r3
| 0x080158aa 4160 str r1, [r0, 4]
| 0x080158ac 0121 movs r1, 1 ; 1
| 0x080158ae 0172 strb r1, [r0, 8]
| 0x080158b0 0021 movs r1, 0
| 0x080158b2 4172 strb r1, [r0, 9]
| 0x080158b4 0021 movs r1, 0
| 0x080158b6 4181 strh r1, [r0, 0xa]
| 0x080158b8 0120 movs r0, 1 ; 1
| 0x080158ba 0290 str r0, [sp, 8]
| 0x080158bc 0120 movs r0, 1 ; 1
| 0x080158be 0190 str r0, [sp, 4]
| 0x080158c0 0620 movs r0, 6 ; 6
| 0x080158c2 0090 str r0, [sp]
| 0x080158c4 dff8543a ldr.w r3, [menugreen.prog.Time_Out_.8016320] ; [0x8016320:4]=0xb084b510 LEA menugreen.prog.Time_Out_.8016320 ; menugreen.prog.Time_Out_.8016320 ; _Create_Menu_Entry_RX_QRG_4
| 0x080158c8 c64a ldr r2, [0x08015be4] ; [0x8015be4:4]=0x800fc85 menu_entry_back_1
| 0x080158ca 0b48 ldr r0, [0x080158fa] ; [0x80158f8:4]=0x2001e6ec
| 0x080158cc 0068 ldr r0, [r0]
| 0x080158ce 0b49 ldr r1, [0x080158fe] ; [0x80158fc:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080158d0 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080158d4 416e ldr r1, [r0, 0x64]
| 0x080158d6 c248 ldr r0, [0x08015be2] ; [0x8015be0:4]=0x2001e915 md380_menu_id
| 0x080158d8 0078 ldrb r0, [r0]
| 0x080158da f6f728ff bl md380_create_menu_entry
\ 0x080158de 07bd pop {r0, r1, r2, pc}
/ (fcn) 628
| Create_Menu_Entry_RX_QRG_4 ();
| 0x08015900 38b5 push {r3, r4, r5, lr}
| 0x08015902 dff81c07 ldr.w r0, [0x08016026] ; [0x8016024:4]=0xf8dfb5e0 LEA menugreen.prog.Channel_N.8016024 ; menugreen.prog.Channel_N.8016024
| 0x08015906 0021 movs r1, 0
| ,=< 0x08015908 0de0 b 0x8015926
| .--> 0x0801590a dff8f407 ldr.w r0, [0x08016106] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| || 0x0801590e 0068 ldr r0, [r0]
| || 0x08015910 30f81100 ldrh.w r0, [r0, r1, lsl 1]
| || 0x08015914 0028 cmp r0, 0
| ,===< 0x08015916 05d1 bne 0x8015924
| ||| 0x08015918 dff8e407 ldr.w r0, [0x08016104] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x0801591c 0068 ldr r0, [r0]
| ||| 0x0801591e 3022 movs r2, 0x30 ; '0' ; 48
| ||| 0x08015920 20f81120 strh.w r2, [r0, r1, lsl 1]
| `---> 0x08015924 491c adds r1, r1, 1
| |`-> 0x08015926 0529 cmp r1, 5 ; 5
| `==< 0x08015928 efdb blt 0x801590a
| 0x0801592a dff8e807 ldr.w r0, [0x0801611a] ; [0x8016118:4]=0x2001e947 md380_menu_0x2001d3f1
| 0x0801592e 0078 ldrb r0, [r0]
| 0x08015930 0428 cmp r0, 4 ; 4
| ,=< 0x08015932 04d2 bhs 0x801593e
| | 0x08015934 dff8840a ldr.w r0, [0x080163c0] ; [0x80163c0:4]=0x2001e7c6
| | 0x08015938 0088 ldrh r0, [r0]
| | 0x0801593a 0004 lsls r0, r0, 0x10
| ,==< 0x0801593c fce0 b 0x8015b38
| |`-> 0x0801593e dff87c0a ldr.w r0, [0x080163c2] ; [0x80163c0:4]=0x2001e7c6
| | 0x08015942 0088 ldrh r0, [r0]
| | 0x08015944 80b2 uxth r0, r0
| | 0x08015946 000a lsrs r0, r0, 8
| | 0x08015948 80b2 uxth r0, r0
| | 0x0801594a 1021 movs r1, 0x10 ; 16
| | 0x0801594c 90fbf1f0 sdiv r0, r0, r1
| | 0x08015950 4ff47a71 mov.w r1, 0x3e8 ; 1000
| | 0x08015954 10fb01f0 smulbb r0, r0, r1
| | 0x08015958 dff8601a ldr.w r1, [0x080163c0] ; [0x80163c0:4]=0x2001e7c6
| | 0x0801595c 0988 ldrh r1, [r1]
| | 0x0801595e 89b2 uxth r1, r1
| | 0x08015960 090a lsrs r1, r1, 8
| | 0x08015962 89b2 uxth r1, r1
| | 0x08015964 1022 movs r2, 0x10 ; 16
| | 0x08015966 91fbf2f3 sdiv r3, r1, r2
| | 0x0801596a 03fb1213 mls r3, r3, r2, r1
| | 0x0801596e 6421 movs r1, 0x64 ; 'd' ; 100
| | 0x08015970 13fb0100 smlabb r0, r3, r1, r0
| | 0x08015974 dff8441a ldr.w r1, [0x080163c0] ; [0x80163c0:4]=0x2001e7c6
| | 0x08015978 0978 ldrb r1, [r1]
| | 0x0801597a c9b2 uxtb r1, r1
| | 0x0801597c 1022 movs r2, 0x10 ; 16
| | 0x0801597e 91fbf2f1 sdiv r1, r1, r2
| | 0x08015982 0a22 movs r2, 0xa ; 10
| | 0x08015984 11fb0200 smlabb r0, r1, r2, r0
| | 0x08015988 dff8301a ldr.w r1, [0x080163c0] ; [0x80163c0:4]=0x2001e7c6
| | 0x0801598c 0978 ldrb r1, [r1]
| | 0x0801598e c9b2 uxtb r1, r1
| | 0x08015990 1022 movs r2, 0x10 ; 16
| | 0x08015992 91fbf2f3 sdiv r3, r1, r2
| | 0x08015996 03fb1213 mls r3, r3, r2, r1
| | 0x0801599a 1818 adds r0, r3, r0
| | 0x0801599c dff8201a ldr.w r1, [0x080163c4] ; [0x80163c4:4]=0xf8dfb510
| | 0x080159a0 0988 ldrh r1, [r1]
| | 0x080159a2 89b2 uxth r1, r1
| | 0x080159a4 090a lsrs r1, r1, 8
| | 0x080159a6 89b2 uxth r1, r1
| | 0x080159a8 1022 movs r2, 0x10 ; 16
| | 0x080159aa 91fbf2f1 sdiv r1, r1, r2
| | 0x080159ae 4ff47a72 mov.w r2, 0x3e8 ; 1000
| | 0x080159b2 11fb02f1 smulbb r1, r1, r2
| | 0x080159b6 dff8082a ldr.w r2, [0x080163c6] ; [0x80163c4:4]=0xf8dfb510
| | 0x080159ba 1288 ldrh r2, [r2]
| | 0x080159bc 92b2 uxth r2, r2
| | 0x080159be 120a lsrs r2, r2, 8
| | 0x080159c0 92b2 uxth r2, r2
| | 0x080159c2 1023 movs r3, 0x10 ; 16
| | 0x080159c4 92fbf3f4 sdiv r4, r2, r3
| | 0x080159c8 04fb1324 mls r4, r4, r3, r2
| | 0x080159cc 6422 movs r2, 0x64 ; 'd' ; 100
| | 0x080159ce 14fb0211 smlabb r1, r4, r2, r1
| | 0x080159d2 dff8ec29 ldr.w r2, [0x080163c6] ; [0x80163c4:4]=0xf8dfb510
| | 0x080159d6 1278 ldrb r2, [r2]
| | 0x080159d8 d2b2 uxtb r2, r2
| | 0x080159da 1023 movs r3, 0x10 ; 16
| | 0x080159dc 92fbf3f2 sdiv r2, r2, r3
| | 0x080159e0 0a23 movs r3, 0xa ; 10
| | 0x080159e2 12fb0311 smlabb r1, r2, r3, r1
| | 0x080159e6 dff8d829 ldr.w r2, [0x080163c6] ; [0x80163c4:4]=0xf8dfb510
| | 0x080159ea 1278 ldrb r2, [r2]
| | 0x080159ec d2b2 uxtb r2, r2
| | 0x080159ee 1023 movs r3, 0x10 ; 16
| | 0x080159f0 92fbf3f4 sdiv r4, r2, r3
| | 0x080159f4 04fb1324 mls r4, r4, r3, r2
| | 0x080159f8 6118 adds r1, r4, r1
| | 0x080159fa dff80427 ldr.w r2, [0x08016106] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| | 0x080159fe 1268 ldr r2, [r2]
| | 0x08015a00 1288 ldrh r2, [r2]
| | 0x08015a02 4ff47a73 mov.w r3, 0x3e8 ; 1000
| | 0x08015a06 dff8f846 ldr.w r4, [0x08016106] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| | 0x08015a0a 2468 ldr r4, [r4]
| | 0x08015a0c 6488 ldrh r4, [r4, 2]
| | 0x08015a0e 6425 movs r5, 0x64 ; 'd' ; 100
| | 0x08015a10 6c43 muls r4, r5, r4
| | 0x08015a12 03fb0242 mla r2, r3, r2, r4
| | 0x08015a16 dff8e836 ldr.w r3, [0x08016106] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| | 0x08015a1a 1b68 ldr r3, [r3]
| | 0x08015a1c 9b88 ldrh r3, [r3, 4]
| | 0x08015a1e 0a24 movs r4, 0xa ; 10
| | 0x08015a20 04fb0322 mla r2, r4, r3, r2
| | 0x08015a24 dff8d836 ldr.w r3, [0x08016104] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| | 0x08015a28 1b68 ldr r3, [r3]
| | 0x08015a2a 1b89 ldrh r3, [r3, 8]
| | 0x08015a2c 12fa83f2 uxtah r2, r2, r3
| | 0x08015a30 dff84c3a ldr.w r3, [0x08016484] ; [0x8016484:4]=0xf8dfb5e0
| | 0x08015a34 9a18 adds r2, r3, r2
| | 0x08015a36 80b2 uxth r0, r0
| | 0x08015a38 8242 cmp r2, r0
| |,=< 0x08015a3a 04da bge 0x8015a46
| || 0x08015a3c dff87c09 ldr.w r0, [0x080163c0] ; [0x80163c0:4]=0x2001e7c6
| || 0x08015a40 0088 ldrh r0, [r0]
| || 0x08015a42 0004 lsls r0, r0, 0x10
| ,===< 0x08015a44 78e0 b 0x8015b38
| ||`-> 0x08015a46 dff8b806 ldr.w r0, [0x08016106] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| || 0x08015a4a 0068 ldr r0, [r0]
| || 0x08015a4c 0088 ldrh r0, [r0]
| || 0x08015a4e 4ff47a72 mov.w r2, 0x3e8 ; 1000
| || 0x08015a52 dff8ac36 ldr.w r3, [0x08016106] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| || 0x08015a56 1b68 ldr r3, [r3]
| || 0x08015a58 5b88 ldrh r3, [r3, 2]
| || 0x08015a5a 6424 movs r4, 0x64 ; 'd' ; 100
| || 0x08015a5c 6343 muls r3, r4, r3
| || 0x08015a5e 02fb0030 mla r0, r2, r0, r3
| || 0x08015a62 dff89c26 ldr.w r2, [0x08016106] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| || 0x08015a66 1268 ldr r2, [r2]
| || 0x08015a68 9288 ldrh r2, [r2, 4]
| || 0x08015a6a 0a23 movs r3, 0xa ; 10
| || 0x08015a6c 03fb0200 mla r0, r3, r2, r0
| || 0x08015a70 dff88c26 ldr.w r2, [0x08016104] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| || 0x08015a74 1268 ldr r2, [r2]
| || 0x08015a76 1289 ldrh r2, [r2, 8]
| || 0x08015a78 10fa82f0 uxtah r0, r0, r2
| || 0x08015a7c dff8002a ldr.w r2, [0x08016484] ; [0x8016484:4]=0xf8dfb5e0
| || 0x08015a80 1018 adds r0, r2, r0
| || 0x08015a82 89b2 uxth r1, r1
| || 0x08015a84 8842 cmp r0, r1
| ||,=< 0x08015a86 04db blt 0x8015a92
| ||| 0x08015a88 dff83409 ldr.w r0, [0x080163c4] ; [0x80163c4:4]=0xf8dfb510
| ||| 0x08015a8c 0088 ldrh r0, [r0]
| ||| 0x08015a8e 0004 lsls r0, r0, 0x10
| ,====< 0x08015a90 52e0 b 0x8015b38
| |||`-> 0x08015a92 0420 movs r0, 4 ; 4
| |||,=< 0x08015a94 00e0 b 0x8015a98
| .-----> 0x08015a96 401c adds r0, r0, 1
| ||||`-> 0x08015a98 0928 cmp r0, 9 ; 9
| ||||,=< 0x08015a9a 10da bge 0x8015abe
| ||||| 0x08015a9c dff86016 ldr.w r1, [0x08016104] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| ||||| 0x08015aa0 0968 ldr r1, [r1]
| ||||| 0x08015aa2 31f81010 ldrh.w r1, [r1, r0, lsl 1]
| ||||| 0x08015aa6 0029 cmp r1, 0
| `=====< 0x08015aa8 f5d1 bne 0x8015a96
| ,=====< 0x08015aaa 06e0 b 0x8015aba
| .------> 0x08015aac dff85016 ldr.w r1, [0x08016104] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| |||||| 0x08015ab0 0968 ldr r1, [r1]
| |||||| 0x08015ab2 3022 movs r2, 0x30 ; '0' ; 48
| |||||| 0x08015ab4 21f81020 strh.w r2, [r1, r0, lsl 1]
| |||||| 0x08015ab8 401c adds r0, r0, 1
| |`-----> 0x08015aba 0928 cmp r0, 9 ; 9
| `======< 0x08015abc f6db blt 0x8015aac
| |||`-> 0x08015abe dff84006 ldr.w r0, [0x08016106] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x08015ac2 0068 ldr r0, [r0]
| ||| 0x08015ac4 0088 ldrh r0, [r0]
| ||| 0x08015ac6 0001 lsls r0, r0, 4
| ||| 0x08015ac8 dff83416 ldr.w r1, [0x08016104] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x08015acc 0968 ldr r1, [r1]
| ||| 0x08015ace 4988 ldrh r1, [r1, 2]
| ||| 0x08015ad0 10fa81f0 uxtah r0, r0, r1
| ||| 0x08015ad4 b0f54c70 subs.w r0, r0, 0x330
| ||| 0x08015ad8 dff82416 ldr.w r1, [0x08016104] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x08015adc 0968 ldr r1, [r1]
| ||| 0x08015ade 8988 ldrh r1, [r1, 4]
| ||| 0x08015ae0 0901 lsls r1, r1, 4
| ||| 0x08015ae2 dff81c26 ldr.w r2, [0x08016106] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x08015ae6 1268 ldr r2, [r2]
| ||| 0x08015ae8 1289 ldrh r2, [r2, 8]
| ||| 0x08015aea 11fa82f1 uxtah r1, r1, r2
| ||| 0x08015aee b1f54c71 subs.w r1, r1, 0x330
| ||| 0x08015af2 dff80c26 ldr.w r2, [0x08016106] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x08015af6 1268 ldr r2, [r2]
| ||| 0x08015af8 5289 ldrh r2, [r2, 0xa]
| ||| 0x08015afa 1201 lsls r2, r2, 4
| ||| 0x08015afc dff80036 ldr.w r3, [0x08016104] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x08015b00 1b68 ldr r3, [r3]
| ||| 0x08015b02 9b89 ldrh r3, [r3, 0xc]
| ||| 0x08015b04 12fa83f2 uxtah r2, r2, r3
| ||| 0x08015b08 b2f54c72 subs.w r2, r2, 0x330
| ||| 0x08015b0c dff8f035 ldr.w r3, [0x08016104] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x08015b10 1b68 ldr r3, [r3]
| ||| 0x08015b12 db89 ldrh r3, [r3, 0xe]
| ||| 0x08015b14 1b01 lsls r3, r3, 4
| ||| 0x08015b16 dff8e845 ldr.w r4, [0x08016106] ; [0x8016104:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x08015b1a 2468 ldr r4, [r4]
| ||| 0x08015b1c 248a ldrh r4, [r4, 0x10]
| ||| 0x08015b1e 13fa84f3 uxtah r3, r3, r4
| ||| 0x08015b22 b3f54c73 subs.w r3, r3, 0x330
| ||| 0x08015b26 0904 lsls r1, r1, 0x10
| ||| 0x08015b28 11eb0060 adds.w r0, r1, r0, lsl 24
| ||| 0x08015b2c 1102 lsls r1, r2, 8
| ||| 0x08015b2e 11f47f41 ands r1, r1, 0xff00
| ||| 0x08015b32 0818 adds r0, r1, r0
| ||| 0x08015b34 d9b2 uxtb r1, r3
| ||| 0x08015b36 0818 adds r0, r1, r0
| ```--> 0x08015b38 dff8d019 ldr.w r1, [0x08016510] ; [0x8016510:4]=0x2001deb8 current_channel_info
| 0x08015b3c 0978 ldrb r1, [r1]
| 0x08015b3e 0229 cmp r1, 2 ; 2
| ,=< 0x08015b40 08d1 bne 0x8015b54
| | 0x08015b42 dff8cc19 ldr.w r1, [0x08016516] ; [0x8016514:4]=0x2001de78 struct_channel_info2
| | 0x08015b46 0861 str r0, [r1, 0x10]
| | 0x08015b48 dff8100c ldr.w r0, [0x08016760] ; [0x8016760:4]=0x8015dd9
| | 0x08015b4c 0088 ldrh r0, [r0]
| | 0x08015b4e 0df0adf8 bl write_current_channel_info_to_spi
| ,==< 0x08015b52 07e0 b 0x8015b64
| |`-> 0x08015b54 dff8bc19 ldr.w r1, [0x08016518] ; [0x8016518:4]=0xf8dfb5e0
| | 0x08015b58 0861 str r0, [r1, 0x10]
| | 0x08015b5a dff8000c ldr.w r0, [0x08016762] ; [0x8016760:4]=0x8015dd9
| | 0x08015b5e 0088 ldrh r0, [r0]
| | 0x08015b60 0df022fb bl write_current_channel_info_to_spi_long
| `--> 0x08015b64 dff8f40b ldr.w r0, [0x08016760] ; [0x8016760:4]=0x8015dd9
| 0x08015b68 0088 ldrh r0, [r0]
| 0x08015b6a 0cf09cff bl channel_info_read_spi_init
| 0x08015b6e 1cf0d5f9 bl func_31f1c
\ 0x08015b72 31bd pop {r0, r4, r5, pc}
/ (fcn) md380_itow 236
| Caller: func_18a40 draw_datetime_row func_18aa4_GetDateAndConv2String
| md380_itow ();
| 0x08018b28 0a1e subs r2, r1, 0
| 0x08018b2a 92b2 uxth r2, r2
| 0x08018b2c 0a2a cmp r2, 0xa ; 10
| ,=< 0x08018b2e 06d2 bhs 0x8018b3e
| | 0x08018b30 3022 movs r2, 0x30 ; '0' ; 48
| | 0x08018b32 0280 strh r2, [r0]
| | 0x08018b34 801c adds r0, r0, 2
| | 0x08018b36 3031 adds r1, 0x30
| | 0x08018b38 0180 strh r1, [r0]
| | 0x08018b3a 801c adds r0, r0, 2
| ,==< 0x08018b3c 69e0 b 0x8018c12
| |`-> 0x08018b3e b1f11002 subs.w r2, r1, 0x10
| | 0x08018b42 92b2 uxth r2, r2
| | 0x08018b44 0a2a cmp r2, 0xa ; 10
| |,=< 0x08018b46 06d2 bhs 0x8018b56
| || 0x08018b48 3122 movs r2, 0x31 ; '1' ; 49
| || 0x08018b4a 0280 strh r2, [r0]
| || 0x08018b4c 801c adds r0, r0, 2
| || 0x08018b4e 2031 adds r1, 0x20
| || 0x08018b50 0180 strh r1, [r0]
| || 0x08018b52 801c adds r0, r0, 2
| ,===< 0x08018b54 5de0 b 0x8018c12
| ||`-> 0x08018b56 b1f12002 subs.w r2, r1, 0x20
| || 0x08018b5a 92b2 uxth r2, r2
| || 0x08018b5c 0a2a cmp r2, 0xa ; 10
| ||,=< 0x08018b5e 06d2 bhs 0x8018b6e
| ||| 0x08018b60 3222 movs r2, 0x32 ; '2' ; 50
| ||| 0x08018b62 0280 strh r2, [r0]
| ||| 0x08018b64 801c adds r0, r0, 2
| ||| 0x08018b66 1031 adds r1, 0x10
| ||| 0x08018b68 0180 strh r1, [r0]
| ||| 0x08018b6a 801c adds r0, r0, 2
| ,====< 0x08018b6c 51e0 b 0x8018c12
| |||`-> 0x08018b6e b1f13002 subs.w r2, r1, 0x30
| ||| 0x08018b72 92b2 uxth r2, r2
| ||| 0x08018b74 0a2a cmp r2, 0xa ; 10
| |||,=< 0x08018b76 05d2 bhs 0x8018b84
| |||| 0x08018b78 3322 movs r2, 0x33 ; '3' ; 51
| |||| 0x08018b7a 0280 strh r2, [r0]
| |||| 0x08018b7c 801c adds r0, r0, 2
| |||| 0x08018b7e 0180 strh r1, [r0]
| |||| 0x08018b80 801c adds r0, r0, 2
| ,=====< 0x08018b82 46e0 b 0x8018c12
| ||||`-> 0x08018b84 b1f14002 subs.w r2, r1, 0x40
| |||| 0x08018b88 92b2 uxth r2, r2
| |||| 0x08018b8a 0a2a cmp r2, 0xa ; 10
| ||||,=< 0x08018b8c 06d2 bhs 0x8018b9c
| ||||| 0x08018b8e 3422 movs r2, 0x34 ; '4' ; 52
| ||||| 0x08018b90 0280 strh r2, [r0]
| ||||| 0x08018b92 801c adds r0, r0, 2
| ||||| 0x08018b94 1039 subs r1, 0x10
| ||||| 0x08018b96 0180 strh r1, [r0]
| ||||| 0x08018b98 801c adds r0, r0, 2
| ,======< 0x08018b9a 3ae0 b 0x8018c12
| |||||`-> 0x08018b9c b1f15002 subs.w r2, r1, 0x50
| ||||| 0x08018ba0 92b2 uxth r2, r2
| ||||| 0x08018ba2 0a2a cmp r2, 0xa ; 10
| |||||,=< 0x08018ba4 06d2 bhs 0x8018bb4
| |||||| 0x08018ba6 3522 movs r2, 0x35 ; '5' ; 53
| |||||| 0x08018ba8 0280 strh r2, [r0]
| |||||| 0x08018baa 801c adds r0, r0, 2
| |||||| 0x08018bac 2039 subs r1, 0x20
| |||||| 0x08018bae 0180 strh r1, [r0]
| |||||| 0x08018bb0 801c adds r0, r0, 2
| ,=======< 0x08018bb2 2ee0 b 0x8018c12
| ||||||`-> 0x08018bb4 b1f16002 subs.w r2, r1, 0x60
| |||||| 0x08018bb8 92b2 uxth r2, r2
| |||||| 0x08018bba 0a2a cmp r2, 0xa ; 10
| ||||||,=< 0x08018bbc 06d2 bhs 0x8018bcc
| ||||||| 0x08018bbe 3622 movs r2, 0x36 ; '6' ; 54
| ||||||| 0x08018bc0 0280 strh r2, [r0]
| ||||||| 0x08018bc2 801c adds r0, r0, 2
| ||||||| 0x08018bc4 3039 subs r1, 0x30
| ||||||| 0x08018bc6 0180 strh r1, [r0]
| ||||||| 0x08018bc8 801c adds r0, r0, 2
| ========< 0x08018bca 22e0 b 0x8018c12
| ||||||`-> 0x08018bcc b1f17002 subs.w r2, r1, 0x70
| |||||| 0x08018bd0 92b2 uxth r2, r2
| |||||| 0x08018bd2 0a2a cmp r2, 0xa ; 10
| ||||||,=< 0x08018bd4 06d2 bhs 0x8018be4
| ||||||| 0x08018bd6 3722 movs r2, 0x37 ; '7' ; 55
| ||||||| 0x08018bd8 0280 strh r2, [r0]
| ||||||| 0x08018bda 801c adds r0, r0, 2
| ||||||| 0x08018bdc 4039 subs r1, 0x40
| ||||||| 0x08018bde 0180 strh r1, [r0]
| ||||||| 0x08018be0 801c adds r0, r0, 2
| ========< 0x08018be2 16e0 b 0x8018c12
| ||||||`-> 0x08018be4 b1f18002 subs.w r2, r1, 0x80
| |||||| 0x08018be8 92b2 uxth r2, r2
| |||||| 0x08018bea 0a2a cmp r2, 0xa ; 10
| ||||||,=< 0x08018bec 06d2 bhs 0x8018bfc
| ||||||| 0x08018bee 3822 movs r2, 0x38 ; '8' ; 56
| ||||||| 0x08018bf0 0280 strh r2, [r0]
| ||||||| 0x08018bf2 801c adds r0, r0, 2
| ||||||| 0x08018bf4 5039 subs r1, 0x50
| ||||||| 0x08018bf6 0180 strh r1, [r0]
| ||||||| 0x08018bf8 801c adds r0, r0, 2
| ========< 0x08018bfa 0ae0 b 0x8018c12
| ||||||`-> 0x08018bfc b1f19002 subs.w r2, r1, 0x90
| |||||| 0x08018c00 92b2 uxth r2, r2
| |||||| 0x08018c02 0a2a cmp r2, 0xa ; 10
| ||||||,=< 0x08018c04 05d2 bhs 0x8018c12
| ||||||| 0x08018c06 3922 movs r2, 0x39 ; '9' ; 57
| ||||||| 0x08018c08 0280 strh r2, [r0]
| ||||||| 0x08018c0a 801c adds r0, r0, 2
| ||||||| 0x08018c0c 6039 subs r1, 0x60
| ||||||| 0x08018c0e 0180 strh r1, [r0]
| ||||||| 0x08018c10 801c adds r0, r0, 2
\ ```````-> 0x08018c12 7047 bx lr
;-- :
/ (fcn) 246
| Create_Menu_Entry_LEDIndicator ();
| 0x0801ad56 e0b5 push {r5, r6, r7, lr}
| 0x0801ad58 dff8b808 ldr.w r0, [0x0801b618] ; [0x801b618:4]=0x2001d5cc md380_menu_memory
| 0x0801ad5c 0078 ldrb r0, [r0]
| 0x0801ad5e 0c21 movs r1, 0xc ; 12
| 0x0801ad60 dff8b428 ldr.w r2, [0x0801b61c] ; [0x801b61c:4]=0x4887b5e0
| 0x0801ad64 01fb0020 mla r0, r1, r0, r2
| 0x0801ad68 0c30 adds r0, 0xc
| 0x0801ad6a bc49 ldr r1, [0x0801b05e] ; [0x801b05c:4]=0x2001e935
| 0x0801ad6c 0978 ldrb r1, [r1]
| 0x0801ad6e 0129 cmp r1, 1 ; 1
| ,=< 0x0801ad70 0ad1 bne 0x801ad88
| | 0x0801ad72 dff8e814 ldr.w r1, [0x0801b262] ; [0x801b260:4]=0x800fc97
| | 0x0801ad76 0968 ldr r1, [r1]
| | 0x0801ad78 dff84424 ldr.w r2, [0x0801b1c4] ; [0x801b1c4:4]=0xf8dfb5e0
| | 0x0801ad7c 12eb8101 adds.w r1, r2, r1, lsl 2
| | 0x0801ad80 d1f8a811 ldr.w r1, [r1, 0x1a8]
| | 0x0801ad84 0160 str r1, [r0]
| ,==< 0x0801ad86 04e0 b 0x801ad92
| |`-> 0x0801ad88 dff83414 ldr.w r1, [0x0801b1c4] ; [0x801b1c4:4]=0xf8dfb5e0
| | 0x0801ad8c d1f8a811 ldr.w r1, [r1, 0x1a8]
| | 0x0801ad90 0160 str r1, [r0]
| `--> 0x0801ad92 7849 ldr r1, [0x0801af76] ; [0x801af74:4]=0x2001e915 md380_menu_id
| 0x0801ad94 0978 ldrb r1, [r1]
| 0x0801ad96 1422 movs r2, 0x14 ; 20
| 0x0801ad98 dff8bc34 ldr.w r3, [0x0801b25c] ; [0x801b25c:4]=0x2001e6ec
| 0x0801ad9c 02fb0131 mla r1, r2, r1, r3
| 0x0801ada0 4160 str r1, [r0, 4]
| 0x0801ada2 0221 movs r1, 2 ; 2
| 0x0801ada4 0172 strb r1, [r0, 8]
| 0x0801ada6 0021 movs r1, 0
| 0x0801ada8 4172 strb r1, [r0, 9]
| 0x0801adaa 0021 movs r1, 0
| 0x0801adac 4181 strh r1, [r0, 0xa]
| 0x0801adae 2748 ldr r0, [0x0801ae4e] ; [0x801ae4c:4]=0x2001dadc md380_radio_config
| 0x0801adb0 0078 ldrb r0, [r0]
| 0x0801adb2 c0f38000 ubfx r0, r0, 2, 1
| 0x0801adb6 c007 lsls r0, r0, 0x1f
| ,=< 0x0801adb8 03d4 bmi 0x801adc2
| | 0x0801adba 2548 ldr r0, [0x0801ae52] ; [0x801ae50:4]=0x2001e903 md380_menu_entry_selected
| | 0x0801adbc 0121 movs r1, 1 ; 1
| | 0x0801adbe 0170 strb r1, [r0]
| ,==< 0x0801adc0 02e0 b 0x801adc8
| |`-> 0x0801adc2 2348 ldr r0, [0x0801ae52] ; [0x801ae50:4]=0x2001e903 md380_menu_entry_selected
| | 0x0801adc4 0021 movs r1, 0
| | 0x0801adc6 0170 strb r1, [r0]
| `--> 0x0801adc8 0120 movs r0, 1 ; 1
| 0x0801adca 0290 str r0, [sp, 8]
| 0x0801adcc 0020 movs r0, 0
| 0x0801adce 0190 str r0, [sp, 4]
| 0x0801add0 8b20 movs r0, 0x8b ; 139
| 0x0801add2 0090 str r0, [sp]
| 0x0801add4 684b ldr r3, [0x0801af78] ; [0x801af78:4]=0x800fc85 menu_entry_back_1
| 0x0801add6 dff8fc28 ldr.w r2, [0x0801b6da] ; [0x801b6d8:4]=0x80194f5
| 0x0801adda dff88004 ldr.w r0, [0x0801b262] ; [0x801b260:4]=0x800fc97
| 0x0801adde 0068 ldr r0, [r0]
| 0x0801ade0 dff8dc13 ldr.w r1, [0x0801b1c4] ; [0x801b1c4:4]=0xf8dfb5e0
| 0x0801ade4 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801ade8 d0f84c11 ldr.w r1, [r0, 0x14c]
| 0x0801adec 6148 ldr r0, [0x0801af74] ; [0x801af74:4]=0x2001e915 md380_menu_id
| 0x0801adee 0078 ldrb r0, [r0]
| 0x0801adf0 f1f79dfc bl md380_create_menu_entry
| 0x0801adf4 0120 movs r0, 1 ; 1
| 0x0801adf6 0290 str r0, [sp, 8]
| 0x0801adf8 0020 movs r0, 0
| 0x0801adfa 0190 str r0, [sp, 4]
| 0x0801adfc 8b20 movs r0, 0x8b ; 139
| 0x0801adfe 0090 str r0, [sp]
| 0x0801ae00 5d4b ldr r3, [0x0801af78] ; [0x801af78:4]=0x800fc85 menu_entry_back_1
| 0x0801ae02 dff8d428 ldr.w r2, [0x0801b6de] ; [0x801b6dc:4]=0x2001e92e
| 0x0801ae06 dff85404 ldr.w r0, [0x0801b262] ; [0x801b260:4]=0x800fc97
| 0x0801ae0a 0068 ldr r0, [r0]
| 0x0801ae0c dff8b013 ldr.w r1, [0x0801b1c4] ; [0x801b1c4:4]=0xf8dfb5e0
| 0x0801ae10 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801ae14 d0f85011 ldr.w r1, [r0, 0x150]
| 0x0801ae18 5648 ldr r0, [0x0801af74] ; [0x801af74:4]=0x2001e915 md380_menu_id
| 0x0801ae1a 0078 ldrb r0, [r0]
| 0x0801ae1c 401c adds r0, r0, 1
| 0x0801ae1e c0b2 uxtb r0, r0
| 0x0801ae20 f1f785fc bl md380_create_menu_entry
| 0x0801ae24 dff8b408 ldr.w r0, [0x0801b6e0] ; [0x801b6e0:4]=0xb084b510
| 0x0801ae28 0a21 movs r1, 0xa ; 10
| 0x0801ae2a 0170 strb r1, [r0]
| 0x0801ae2c 0020 movs r0, 0
| ,=< 0x0801ae2e 0ae0 b 0x801ae46
| .--> 0x0801ae30 5049 ldr r1, [0x0801af74] ; [0x801af74:4]=0x2001e915 md380_menu_id
| || 0x0801ae32 0978 ldrb r1, [r1]
| || 0x0801ae34 4118 adds r1, r0, r1
| || 0x0801ae36 1422 movs r2, 0x14 ; 20
| || 0x0801ae38 dff81c34 ldr.w r3, [0x0801b25c] ; [0x801b25c:4]=0x2001e6ec
| || 0x0801ae3c 02fb0131 mla r1, r2, r1, r3
| || 0x0801ae40 0022 movs r2, 0
| || 0x0801ae42 0a74 strb r2, [r1, 0x10]
| || 0x0801ae44 401c adds r0, r0, 1
| |`-> 0x0801ae46 0228 cmp r0, 2 ; 2
| `==< 0x0801ae48 f2db blt 0x801ae30
\ 0x0801ae4a 07bd pop {r0, r1, r2, pc}
/ (fcn) 26
| md380_menu_numerical_input ();
| 0x0801b042 80b5 push {r7, lr}
| 0x0801b044 dff89c09 ldr.w r0, [0x0801b9e8] ; [0x801b9e8:4]=0x800fc85 menu_entry_back_1
| 0x0801b048 0078 ldrb r0, [r0]
| 0x0801b04a 02f087fe bl often_called_something_keycode_menu
| 0x0801b04e 0028 cmp r0, 0
| ,=< 0x0801b050 03d0 beq 0x801b05a
| | 0x0801b052 dff8ec07 ldr.w r0, [0x0801b846] ; [0x801b844:4]=0x2001cb9a md380_menu_edit_buf
| | 0x0801b056 0121 movs r1, 1 ; 1
| | 0x0801b058 0170 strb r1, [r0]
\ `-> 0x0801b05a 01bd pop {r0, pc}
/ (fcn) md380_create_main_menu_entry 1446
| Caller: scr_mode_stable some_init Start return_to_mode_1_from10 update_scr_35
| update_scr_17 update_scr_21
| md380_create_main_menu_entry ();
| 0x0800c188 e0b5 push {r5, r6, r7, lr}
| 0x0800c18a dff8f805 ldr.w r0, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| 0x0800c18e 0021 movs r1, 0
| 0x0800c190 0170 strb r1, [r0]
| 0x0800c192 dff8f405 ldr.w r0, [0x0800c78e] ; [0x800c78c:4]=0x2001e5f4
| 0x0800c196 0021 movs r1, 0
| 0x0800c198 0170 strb r1, [r0]
| 0x0800c19a dff8f005 ldr.w r0, [0x0800c792] ; [0x800c790:4]=0x2001e907
| 0x0800c19e 0078 ldrb r0, [r0]
| 0x0800c1a0 10f0fe00 ands r0, r0, 0xfe
| 0x0800c1a4 dff8e415 ldr.w r1, [0x0800c790] ; [0x800c790:4]=0x2001e907
| 0x0800c1a8 0870 strb r0, [r1]
| 0x0800c1aa dff8e405 ldr.w r0, [0x0800c796] ; [0x800c794:4]=0x2001e906
| 0x0800c1ae dff8e415 ldr.w r1, [0x0800c79a] ; [0x800c798:4]=0x2001e936
| 0x0800c1b2 0978 ldrb r1, [r1]
| 0x0800c1b4 0170 strb r1, [r0]
| 0x0800c1b6 dff8e005 ldr.w r0, [0x0800c79e] ; [0x800c79c:4]=0x2001e93b
| 0x0800c1ba 0021 movs r1, 0
| 0x0800c1bc 0170 strb r1, [r0]
| 0x0800c1be dff8dc05 ldr.w r0, [0x0800c7a2] ; [0x800c7a0:4]=0x2001e93c
| 0x0800c1c2 0021 movs r1, 0
| 0x0800c1c4 0170 strb r1, [r0]
| 0x0800c1c6 dff8d805 ldr.w r0, [0x0800c7a6] ; [0x800c7a4:4]=0x2001d5cc md380_menu_memory
| 0x0800c1ca 0021 movs r1, 0
| 0x0800c1cc 0170 strb r1, [r0]
| 0x0800c1ce dff8b405 ldr.w r0, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| 0x0800c1d2 0078 ldrb r0, [r0]
| 0x0800c1d4 0c21 movs r1, 0xc ; 12
| 0x0800c1d6 dff8cc25 ldr.w r2, [0x0800c7aa] ; [0x800c7a8:4]=0x2001e700 menu_memory_poi
| 0x0800c1da 01fb0020 mla r0, r1, r0, r2
| 0x0800c1de dff8c815 ldr.w r1, [0x0800c7ae] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| 0x0800c1e2 0860 str r0, [r1]
| 0x0800c1e4 dff8c005 ldr.w r0, [0x0800c7ac] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| 0x0800c1e8 0068 ldr r0, [r0]
| 0x0800c1ea dff8c015 ldr.w r1, [0x0800c7b2] ; [0x800c7b0:4]=0x2001deb8 current_channel_info
| 0x0800c1ee 4160 str r1, [r0, 4]
| 0x0800c1f0 dff8b405 ldr.w r0, [0x0800c7ac] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| 0x0800c1f4 0068 ldr r0, [r0]
| 0x0800c1f6 0621 movs r1, 6 ; 6
| 0x0800c1f8 0172 strb r1, [r0, 8]
| 0x0800c1fa dff8ac05 ldr.w r0, [0x0800c7ae] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| 0x0800c1fe 0068 ldr r0, [r0]
| 0x0800c200 0021 movs r1, 0
| 0x0800c202 4181 strh r1, [r0, 0xa]
| 0x0800c204 dff8a805 ldr.w r0, [0x0800c7b4] ; [0x800c7b4:4]=0x200049bc
| 0x0800c208 0078 ldrb r0, [r0]
| 0x0800c20a 10f00300 ands r0, r0, 3
| 0x0800c20e 0128 cmp r0, 1 ; 1
| ,=< 0x0800c210 40f0f180 bne.w 0x800c3f6
| | 0x0800c214 dff89c05 ldr.w r0, [0x0800c7b8] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| | 0x0800c218 2121 movs r1, 0x21 ; '!' ; 33
| | 0x0800c21a 0170 strb r1, [r0]
| | 0x0800c21c dff89405 ldr.w r0, [0x0800c7b8] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| | 0x0800c220 0221 movs r1, 2 ; 2
| | 0x0800c222 4170 strb r1, [r0, 1]
| | 0x0800c224 dff88c05 ldr.w r0, [0x0800c7b8] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| | 0x0800c228 0321 movs r1, 3 ; 3
| | 0x0800c22a 8170 strb r1, [r0, 2]
| | 0x0800c22c dff88405 ldr.w r0, [0x0800c7b8] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| | 0x0800c230 2421 movs r1, 0x24 ; '$' ; 36
| | 0x0800c232 c170 strb r1, [r0, 3]
| | 0x0800c234 dff87c05 ldr.w r0, [0x0800c7b8] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| | 0x0800c238 2521 movs r1, 0x25 ; '%' ; 37
| | 0x0800c23a 0171 strb r1, [r0, 4]
| | 0x0800c23c dff87405 ldr.w r0, [0x0800c7b8] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| | 0x0800c240 0621 movs r1, 6 ; 6
| | 0x0800c242 4171 strb r1, [r0, 5]
| | 0x0800c244 dff86005 ldr.w r0, [0x0800c7ac] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| | 0x0800c248 0068 ldr r0, [r0]
| | 0x0800c24a 0121 movs r1, 1 ; 1
| | 0x0800c24c 4172 strb r1, [r0, 9]
| | 0x0800c24e 0020 movs r0, 0
| | 0x0800c250 0290 str r0, [sp, 8]
| | 0x0800c252 0020 movs r0, 0
| | 0x0800c254 0190 str r0, [sp, 4]
| | 0x0800c256 0320 movs r0, 3 ; 3
| | 0x0800c258 0090 str r0, [sp]
| | 0x0800c25a dff85c35 ldr.w r3, [0x0800c7be] ; [0x800c7bc:4]=0x800fcbd
| | 0x0800c25e dff85c25 ldr.w r2, [0x0800c7c2] ; [0x800c7c0:4]=0x2001e6ec
| | 0x0800c262 dff85c05 ldr.w r0, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0800c266 0068 ldr r0, [r0]
| | 0x0800c268 dff85815 ldr.w r1, [0x0800c7c8] ; [0x800c7c8:4]=0x2001e574 md380_program_radio_unprohibited
| | 0x0800c26c 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x0800c270 c168 ldr r1, [r0, 0xc]
| | 0x0800c272 dff81405 ldr.w r0, [0x0800c78e] ; [0x800c78c:4]=0x2001e5f4
| | 0x0800c276 0078 ldrb r0, [r0]
| | ;-- :
| | 0x0800c278 00f059fa bl md380_create_menu_entry
| | 0x0800c27c dff83005 ldr.w r0, [0x0800c7b4] ; [0x800c7b4:4]=0x200049bc
| | 0x0800c280 c07a ldrb r0, [r0, 0xb]
| | 0x0800c282 0028 cmp r0, 0
| ,==< 0x0800c284 05d0 beq 0x800c292
| || 0x0800c286 dff84005 ldr.w r0, [0x0800c7ce] ; [0x800c7cc:4]=0x8037e35
| || 0x0800c28a 8078 ldrb r0, [r0, 2]
| || 0x0800c28c 0621 movs r1, 6 ; 6
| || 0x0800c28e 0842 tst r0, r1
| ,===< 0x0800c290 19d1 bne 0x800c2c6
| |`--> 0x0800c292 0120 movs r0, 1 ; 1
| | | 0x0800c294 0290 str r0, [sp, 8]
| | | 0x0800c296 0020 movs r0, 0
| | | 0x0800c298 0190 str r0, [sp, 4]
| | | 0x0800c29a 0320 movs r0, 3 ; 3
| | | 0x0800c29c 0090 str r0, [sp]
| | | 0x0800c29e dff81835 ldr.w r3, [0x0800c7be] ; [0x800c7bc:4]=0x800fcbd
| | | 0x0800c2a2 dff82825 ldr.w r2, [0x0800c7d2] ; [0x800c7d0:4]=0x80131ad
| | | 0x0800c2a6 dff81805 ldr.w r0, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| | | 0x0800c2aa 0068 ldr r0, [r0]
| | | 0x0800c2ac dff81415 ldr.w r1, [0x0800c7c8] ; [0x800c7c8:4]=0x2001e574 md380_program_radio_unprohibited
| | | 0x0800c2b0 11eb8000 adds.w r0, r1, r0, lsl 2
| | | 0x0800c2b4 0169 ldr r1, [r0, 0x10]
| | | 0x0800c2b6 dff8d004 ldr.w r0, [0x0800c78e] ; [0x800c78c:4]=0x2001e5f4
| | | 0x0800c2ba 0078 ldrb r0, [r0]
| | | 0x0800c2bc 401c adds r0, r0, 1
| | | 0x0800c2be c0b2 uxtb r0, r0
| | | 0x0800c2c0 00f035fa bl md380_create_menu_entry
| |,==< 0x0800c2c4 18e0 b 0x800c2f8
| `---> 0x0800c2c6 0120 movs r0, 1 ; 1
| || 0x0800c2c8 0290 str r0, [sp, 8]
| || 0x0800c2ca 0020 movs r0, 0
| || 0x0800c2cc 0190 str r0, [sp, 4]
| || 0x0800c2ce 8320 movs r0, 0x83 ; 131
| || 0x0800c2d0 0090 str r0, [sp]
| || 0x0800c2d2 dff8e434 ldr.w r3, [0x0800c7be] ; [0x800c7bc:4]=0x800fcbd
| || 0x0800c2d6 dff8f424 ldr.w r2, [0x0800c7d2] ; [0x800c7d0:4]=0x80131ad
| || 0x0800c2da dff8e404 ldr.w r0, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c2de 0068 ldr r0, [r0]
| || 0x0800c2e0 dff8e014 ldr.w r1, [0x0800c7c8] ; [0x800c7c8:4]=0x2001e574 md380_program_radio_unprohibited
| || 0x0800c2e4 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0800c2e8 0169 ldr r1, [r0, 0x10]
| || 0x0800c2ea dff89c04 ldr.w r0, [0x0800c78e] ; [0x800c78c:4]=0x2001e5f4
| || 0x0800c2ee 0078 ldrb r0, [r0]
| || 0x0800c2f0 401c adds r0, r0, 1
| || 0x0800c2f2 c0b2 uxtb r0, r0
| || ;-- :
| || 0x0800c2f4 00f01bfa bl md380_create_menu_entry
| `--> 0x0800c2f8 0120 movs r0, 1 ; 1
| | 0x0800c2fa 0290 str r0, [sp, 8]
| | 0x0800c2fc 0020 movs r0, 0
| | 0x0800c2fe 0190 str r0, [sp, 4]
| | 0x0800c300 8320 movs r0, 0x83 ; 131
| | 0x0800c302 0090 str r0, [sp]
| | 0x0800c304 dff8b034 ldr.w r3, [0x0800c7bc] ; [0x800c7bc:4]=0x800fcbd
| | 0x0800c308 dff8c424 ldr.w r2, [0x0800c7d4] ; [0x800c7d4:4]=0x8023859
| | 0x0800c30c dff8b004 ldr.w r0, [0x0800c7c4] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0800c310 0068 ldr r0, [r0]
| | 0x0800c312 dff8b014 ldr.w r1, [0x0800c7ca] ; [0x800c7c8:4]=0x2001e574 md380_program_radio_unprohibited
| | 0x0800c316 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x0800c31a 4169 ldr r1, [r0, 0x14]
| | 0x0800c31c dff86804 ldr.w r0, [0x0800c78c] ; [0x800c78c:4]=0x2001e5f4
| | 0x0800c320 0078 ldrb r0, [r0]
| | 0x0800c322 801c adds r0, r0, 2
| | 0x0800c324 c0b2 uxtb r0, r0
| | ;-- :
| | 0x0800c326 00f002fa bl md380_create_menu_entry
| | 0x0800c32a 0020 movs r0, 0
| | 0x0800c32c 0290 str r0, [sp, 8]
| | 0x0800c32e 0020 movs r0, 0
| | 0x0800c330 0190 str r0, [sp, 4]
| | 0x0800c332 0320 movs r0, 3 ; 3
| | 0x0800c334 0090 str r0, [sp]
| | 0x0800c336 dff88034 ldr.w r3, [0x0800c7be] ; [0x800c7bc:4]=0x800fcbd
| | 0x0800c33a dff89824 ldr.w r2, [0x0800c7da] ; [0x800c7d8:4]=0x80134a1
| | 0x0800c33e dff88004 ldr.w r0, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0800c342 0068 ldr r0, [r0]
| | 0x0800c344 dff87c14 ldr.w r1, [0x0800c7c8] ; [0x800c7c8:4]=0x2001e574 md380_program_radio_unprohibited
| | 0x0800c348 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x0800c34c 8169 ldr r1, [r0, 0x18]
| | 0x0800c34e dff83804 ldr.w r0, [0x0800c78e] ; [0x800c78c:4]=0x2001e5f4
| | 0x0800c352 0078 ldrb r0, [r0]
| | 0x0800c354 c01c adds r0, r0, 3
| | 0x0800c356 c0b2 uxtb r0, r0
| | ;-- :
| | 0x0800c358 00f0e9f9 bl md380_create_menu_entry
| | 0x0800c35c 0020 movs r0, 0
| | 0x0800c35e 0290 str r0, [sp, 8]
| | 0x0800c360 0020 movs r0, 0
| | 0x0800c362 0190 str r0, [sp, 4]
| | 0x0800c364 0320 movs r0, 3 ; 3
| | 0x0800c366 0090 str r0, [sp]
| | 0x0800c368 dff84c34 ldr.w r3, [0x0800c7bc] ; [0x800c7bc:4]=0x800fcbd
| | 0x0800c36c dff84824 ldr.w r2, [0x0800c7bc] ; [0x800c7bc:4]=0x800fcbd
| | 0x0800c370 dff84c04 ldr.w r0, [0x0800c7c4] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0800c374 0068 ldr r0, [r0]
| | 0x0800c376 dff84c14 ldr.w r1, [0x0800c7ca] ; [0x800c7c8:4]=0x2001e574 md380_program_radio_unprohibited
| | 0x0800c37a 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x0800c37e c169 ldr r1, [r0, 0x1c]
| | 0x0800c380 dff80404 ldr.w r0, [0x0800c78c] ; [0x800c78c:4]=0x2001e5f4
| | 0x0800c384 0078 ldrb r0, [r0]
| | 0x0800c386 001d adds r0, r0, 4
| | 0x0800c388 c0b2 uxtb r0, r0
| | ;-- :
| | 0x0800c38a 00f0d0f9 bl md380_create_menu_entry
| | 0x0800c38e 0120 movs r0, 1 ; 1
| | 0x0800c390 0290 str r0, [sp, 8]
| | 0x0800c392 0020 movs r0, 0
| | 0x0800c394 0190 str r0, [sp, 4]
| | 0x0800c396 8320 movs r0, 0x83 ; 131
| | 0x0800c398 0090 str r0, [sp]
| | 0x0800c39a dff81c34 ldr.w r3, [0x0800c7be] ; [0x800c7bc:4]=0x800fcbd
| | 0x0800c39e dff83824 ldr.w r2, [0x0800c7de] ; [0x800c7dc:4]=0x2001e6fc
| | 0x0800c3a2 dff81c04 ldr.w r0, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0800c3a6 0068 ldr r0, [r0]
| | 0x0800c3a8 dff81814 ldr.w r1, [0x0800c7c8] ; [0x800c7c8:4]=0x2001e574 md380_program_radio_unprohibited
| | 0x0800c3ac 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x0800c3b0 016a ldr r1, [r0, 0x20]
| | 0x0800c3b2 dff8d403 ldr.w r0, [0x0800c78e] ; [0x800c78c:4]=0x2001e5f4
| | 0x0800c3b6 0078 ldrb r0, [r0]
| | 0x0800c3b8 401d adds r0, r0, 5
| | 0x0800c3ba c0b2 uxtb r0, r0
| | ;-- :
| | 0x0800c3bc 00f0b7f9 bl md380_create_menu_entry
| | 0x0800c3c0 dff8c003 ldr.w r0, [0x0800c788] ; [0x800c788:4]=0x2001e915 md380_menu_id
| | 0x0800c3c4 0078 ldrb r0, [r0]
| | 0x0800c3c6 03f045fc bl menu_add_number_of_menuentries_counts
| | 0x0800c3ca dff8bc13 ldr.w r1, [0x0800c78e] ; [0x800c78c:4]=0x2001e5f4
| | 0x0800c3ce 0870 strb r0, [r1]
| | 0x0800c3d0 dff8d403 ldr.w r0, [0x0800c7ac] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| | 0x0800c3d4 0068 ldr r0, [r0]
| | 0x0800c3d6 407a ldrb r0, [r0, 9]
| | 0x0800c3d8 1421 movs r1, 0x14 ; 20
| | 0x0800c3da dff8cc23 ldr.w r2, [0x0800c7ae] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| | 0x0800c3de 1268 ldr r2, [r2]
| | 0x0800c3e0 5268 ldr r2, [r2, 4]
| | 0x0800c3e2 01fb0020 mla r0, r1, r0, r2
| | 0x0800c3e6 dff8f413 ldr.w r1, [0x0800c7e2] ; [0x800c7e0:4]=0x8034275
| | 0x0800c3ea 0860 str r0, [r1]
| | 0x0800c3ec dff89403 ldr.w r0, [0x0800c788] ; [0x800c788:4]=0x2001e915 md380_menu_id
| | 0x0800c3f0 ff21 movs r1, 0xff ; 255
| | 0x0800c3f2 0170 strb r1, [r0]
| ,==< 0x0800c3f4 8fe1 b 0x800c716
| |`-> 0x0800c3f6 dff8b803 ldr.w r0, [0x0800c7b6] ; [0x800c7b4:4]=0x200049bc
| | 0x0800c3fa 0078 ldrb r0, [r0]
| | 0x0800c3fc 10f00300 ands r0, r0, 3
| | 0x0800c400 0228 cmp r0, 2 ; 2
| |,=< 0x0800c402 40f0cd80 bne.w 0x800c5a0
| || 0x0800c406 dff8ac03 ldr.w r0, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c40a 0121 movs r1, 1 ; 1
| || 0x0800c40c 0170 strb r1, [r0]
| || 0x0800c40e dff8a403 ldr.w r0, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c412 0221 movs r1, 2 ; 2
| || 0x0800c414 4170 strb r1, [r0, 1]
| || 0x0800c416 dff89c03 ldr.w r0, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c41a 0321 movs r1, 3 ; 3
| || 0x0800c41c 8170 strb r1, [r0, 2]
| || 0x0800c41e dff89403 ldr.w r0, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c422 0421 movs r1, 4 ; 4
| || 0x0800c424 c170 strb r1, [r0, 3]
| || 0x0800c426 dff88c03 ldr.w r0, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c42a 0521 movs r1, 5 ; 5
| || 0x0800c42c 0171 strb r1, [r0, 4]
| || 0x0800c42e dff88403 ldr.w r0, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c432 0621 movs r1, 6 ; 6
| || 0x0800c434 4171 strb r1, [r0, 5]
| || 0x0800c436 dff87003 ldr.w r0, [0x0800c7ae] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| || 0x0800c43a 0068 ldr r0, [r0]
| || 0x0800c43c 0021 movs r1, 0
| || 0x0800c43e 4172 strb r1, [r0, 9]
| || 0x0800c440 0120 movs r0, 1 ; 1
| || 0x0800c442 0290 str r0, [sp, 8]
| || 0x0800c444 0020 movs r0, 0
| || 0x0800c446 0190 str r0, [sp, 4]
| || 0x0800c448 8320 movs r0, 0x83 ; 131
| || 0x0800c44a 0090 str r0, [sp]
| || 0x0800c44c dff86833 ldr.w r3, [0x0800c7bc] ; [0x800c7bc:4]=0x800fcbd
| || 0x0800c450 dff86823 ldr.w r2, [0x0800c7c0] ; [0x800c7c0:4]=0x2001e6ec
| || 0x0800c454 dff86803 ldr.w r0, [0x0800c7c4] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c458 0068 ldr r0, [r0]
| || 0x0800c45a dff86813 ldr.w r1, [0x0800c7ca] ; [0x800c7c8:4]=0x2001e574 md380_program_radio_unprohibited
| || 0x0800c45e 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0800c462 c168 ldr r1, [r0, 0xc]
| || 0x0800c464 c848 ldr r0, [0x0800c788] ; [0x800c788:4]=0x2001e915 md380_menu_id
| || 0x0800c466 0078 ldrb r0, [r0]
| || 0x0800c468 00f061f9 bl md380_create_menu_entry
| || 0x0800c46c dff84003 ldr.w r0, [0x0800c7b4] ; [0x800c7b4:4]=0x200049bc
| || 0x0800c470 c07a ldrb r0, [r0, 0xb]
| || 0x0800c472 0028 cmp r0, 0
| ,===< 0x0800c474 05d0 beq 0x800c482
| ||| 0x0800c476 dff85003 ldr.w r0, [0x0800c7ce] ; [0x800c7cc:4]=0x8037e35
| ||| 0x0800c47a 8078 ldrb r0, [r0, 2]
| ||| 0x0800c47c 0621 movs r1, 6 ; 6
| ||| 0x0800c47e 0842 tst r0, r1
| ,====< 0x0800c480 15d1 bne 0x800c4ae
| |`---> 0x0800c482 0120 movs r0, 1 ; 1
| | || 0x0800c484 0290 str r0, [sp, 8]
| | || 0x0800c486 0020 movs r0, 0
| | || 0x0800c488 0190 str r0, [sp, 4]
| | || 0x0800c48a 0320 movs r0, 3 ; 3
| | || 0x0800c48c 0090 str r0, [sp]
| | || 0x0800c48e ca4b ldr r3, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| | || 0x0800c490 dff83823 ldr.w r2, [0x0800c7d0] ; [0x800c7d0:4]=0x80131ad
| | || 0x0800c494 ca48 ldr r0, [0x0800c7c0] ; [0x800c7c0:4]=0x2001e6ec
| | || 0x0800c496 0068 ldr r0, [r0]
| | || 0x0800c498 ca49 ldr r1, [0x0800c7c4] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| | || 0x0800c49a 11eb8000 adds.w r0, r1, r0, lsl 2
| | || 0x0800c49e 0169 ldr r1, [r0, 0x10]
| | || 0x0800c4a0 b948 ldr r0, [0x0800c788] ; [0x800c788:4]=0x2001e915 md380_menu_id
| | || 0x0800c4a2 0078 ldrb r0, [r0]
| | || 0x0800c4a4 401c adds r0, r0, 1
| | || 0x0800c4a6 c0b2 uxtb r0, r0
| | || 0x0800c4a8 00f041f9 bl md380_create_menu_entry
| |,===< 0x0800c4ac 13e0 b 0x800c4d6
| `----> 0x0800c4ae 0120 movs r0, 1 ; 1
| ||| 0x0800c4b0 0290 str r0, [sp, 8]
| ||| 0x0800c4b2 0020 movs r0, 0
| ||| 0x0800c4b4 0190 str r0, [sp, 4]
| ||| 0x0800c4b6 8320 movs r0, 0x83 ; 131
| ||| 0x0800c4b8 0090 str r0, [sp]
| ||| 0x0800c4ba bf4b ldr r3, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| ||| 0x0800c4bc c34a ldr r2, [0x0800c7cc] ; [0x800c7cc:4]=0x8037e35
| ||| 0x0800c4be c048 ldr r0, [0x0800c7c2] ; [0x800c7c0:4]=0x2001e6ec
| ||| 0x0800c4c0 0068 ldr r0, [r0]
| ||| 0x0800c4c2 c049 ldr r1, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x0800c4c4 11eb8000 adds.w r0, r1, r0, lsl 2
| ||| 0x0800c4c8 0169 ldr r1, [r0, 0x10]
| ||| 0x0800c4ca af48 ldr r0, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| ||| 0x0800c4cc 0078 ldrb r0, [r0]
| ||| 0x0800c4ce 401c adds r0, r0, 1
| ||| 0x0800c4d0 c0b2 uxtb r0, r0
| ||| 0x0800c4d2 00f02cf9 bl md380_create_menu_entry
| `---> 0x0800c4d6 0120 movs r0, 1 ; 1
| || 0x0800c4d8 0290 str r0, [sp, 8]
| || 0x0800c4da 0020 movs r0, 0
| || 0x0800c4dc 0190 str r0, [sp, 4]
| || 0x0800c4de 8320 movs r0, 0x83 ; 131
| || 0x0800c4e0 0090 str r0, [sp]
| || 0x0800c4e2 b54b ldr r3, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c4e4 ba4a ldr r2, [0x0800c7d0] ; [0x800c7d0:4]=0x80131ad
| || 0x0800c4e6 b648 ldr r0, [0x0800c7c2] ; [0x800c7c0:4]=0x2001e6ec
| || 0x0800c4e8 0068 ldr r0, [r0]
| || 0x0800c4ea b649 ldr r1, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c4ec 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0800c4f0 4169 ldr r1, [r0, 0x14]
| || 0x0800c4f2 a548 ldr r0, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| || 0x0800c4f4 0078 ldrb r0, [r0]
| || 0x0800c4f6 801c adds r0, r0, 2
| || 0x0800c4f8 c0b2 uxtb r0, r0
| || 0x0800c4fa 00f018f9 bl md380_create_menu_entry
| || 0x0800c4fe 0120 movs r0, 1 ; 1
| || 0x0800c500 0290 str r0, [sp, 8]
| || 0x0800c502 0020 movs r0, 0
| || 0x0800c504 0190 str r0, [sp, 4]
| || 0x0800c506 8320 movs r0, 0x83 ; 131
| || 0x0800c508 0090 str r0, [sp]
| || 0x0800c50a ab4b ldr r3, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c50c b14a ldr r2, [0x0800c7d4] ; [0x800c7d4:4]=0x8023859
| || 0x0800c50e ac48 ldr r0, [0x0800c7c2] ; [0x800c7c0:4]=0x2001e6ec
| || 0x0800c510 0068 ldr r0, [r0]
| || 0x0800c512 ac49 ldr r1, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c514 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0800c518 8169 ldr r1, [r0, 0x18]
| || 0x0800c51a 9b48 ldr r0, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| || 0x0800c51c 0078 ldrb r0, [r0]
| || 0x0800c51e c01c adds r0, r0, 3
| || 0x0800c520 c0b2 uxtb r0, r0
| || 0x0800c522 00f004f9 bl md380_create_menu_entry
| || 0x0800c526 0120 movs r0, 1 ; 1
| || 0x0800c528 0290 str r0, [sp, 8]
| || 0x0800c52a 0020 movs r0, 0
| || 0x0800c52c 0190 str r0, [sp, 4]
| || 0x0800c52e 8320 movs r0, 0x83 ; 131
| || 0x0800c530 0090 str r0, [sp]
| || 0x0800c532 a14b ldr r3, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c534 aa4a ldr r2, [0x0800c7e0] ; [0x800c7e0:4]=0x8034275
| || 0x0800c536 a248 ldr r0, [0x0800c7c2] ; [0x800c7c0:4]=0x2001e6ec
| || 0x0800c538 0068 ldr r0, [r0]
| || 0x0800c53a a249 ldr r1, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c53c 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0800c540 c169 ldr r1, [r0, 0x1c]
| || 0x0800c542 9148 ldr r0, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| || 0x0800c544 0078 ldrb r0, [r0]
| || 0x0800c546 001d adds r0, r0, 4
| || 0x0800c548 c0b2 uxtb r0, r0
| || 0x0800c54a 00f0f0f8 bl md380_create_menu_entry
| || 0x0800c54e 0120 movs r0, 1 ; 1
| || 0x0800c550 0290 str r0, [sp, 8]
| || 0x0800c552 0020 movs r0, 0
| || 0x0800c554 0190 str r0, [sp, 4]
| || 0x0800c556 8320 movs r0, 0x83 ; 131
| || 0x0800c558 0090 str r0, [sp]
| || 0x0800c55a 974b ldr r3, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c55c 9e4a ldr r2, [0x0800c7d8] ; [0x800c7d8:4]=0x80134a1
| || 0x0800c55e 9848 ldr r0, [0x0800c7c2] ; [0x800c7c0:4]=0x2001e6ec
| || 0x0800c560 0068 ldr r0, [r0]
| || 0x0800c562 9849 ldr r1, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c564 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0800c568 016a ldr r1, [r0, 0x20]
| || 0x0800c56a 8748 ldr r0, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| || 0x0800c56c 0078 ldrb r0, [r0]
| || 0x0800c56e 401d adds r0, r0, 5
| || 0x0800c570 c0b2 uxtb r0, r0
| || 0x0800c572 00f0dcf8 bl md380_create_menu_entry
| || 0x0800c576 8348 ldr r0, [0x0800c786] ; [0x800c784:4]=0x20004acc md380_menu_depth
| || 0x0800c578 0078 ldrb r0, [r0]
| || 0x0800c57a 03f06bfb bl menu_add_number_of_menuentries_counts
| || 0x0800c57e 8249 ldr r1, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| || 0x0800c580 0870 strb r0, [r1]
| || 0x0800c582 8948 ldr r0, [0x0800c7aa] ; [0x800c7a8:4]=0x2001e700 menu_memory_poi
| || 0x0800c584 0068 ldr r0, [r0]
| || 0x0800c586 407a ldrb r0, [r0, 9]
| || 0x0800c588 1421 movs r1, 0x14 ; 20
| || 0x0800c58a 874a ldr r2, [0x0800c7aa] ; [0x800c7a8:4]=0x2001e700 menu_memory_poi
| || 0x0800c58c 1268 ldr r2, [r2]
| || 0x0800c58e 5268 ldr r2, [r2, 4]
| || 0x0800c590 01fb0020 mla r0, r1, r0, r2
| || 0x0800c594 9149 ldr r1, [0x0800c7dc] ; [0x800c7dc:4]=0x2001e6fc
| || 0x0800c596 0860 str r0, [r1]
| || 0x0800c598 7a48 ldr r0, [0x0800c784] ; [0x800c784:4]=0x20004acc md380_menu_depth
| || 0x0800c59a ff21 movs r1, 0xff ; 255
| || 0x0800c59c 0170 strb r1, [r0]
| ,===< 0x0800c59e bae0 b 0x800c716
| ||`-> 0x0800c5a0 8448 ldr r0, [0x0800c7b4] ; [0x800c7b4:4]=0x200049bc
| || 0x0800c5a2 2121 movs r1, 0x21 ; '!' ; 33
| || 0x0800c5a4 0170 strb r1, [r0]
| || 0x0800c5a6 8348 ldr r0, [0x0800c7b6] ; [0x800c7b4:4]=0x200049bc
| || 0x0800c5a8 2221 movs r1, 0x22 ; '"' ; 34
| || 0x0800c5aa 4170 strb r1, [r0, 1]
| || 0x0800c5ac 8148 ldr r0, [0x0800c7b4] ; [0x800c7b4:4]=0x200049bc
| || 0x0800c5ae 0321 movs r1, 3 ; 3
| || 0x0800c5b0 8170 strb r1, [r0, 2]
| || 0x0800c5b2 8048 ldr r0, [0x0800c7b6] ; [0x800c7b4:4]=0x200049bc
| || 0x0800c5b4 2421 movs r1, 0x24 ; '$' ; 36
| || 0x0800c5b6 c170 strb r1, [r0, 3]
| || 0x0800c5b8 7e48 ldr r0, [0x0800c7b4] ; [0x800c7b4:4]=0x200049bc
| || 0x0800c5ba 2521 movs r1, 0x25 ; '%' ; 37
| || 0x0800c5bc 0171 strb r1, [r0, 4]
| || 0x0800c5be 7d48 ldr r0, [0x0800c7b6] ; [0x800c7b4:4]=0x200049bc
| || 0x0800c5c0 2621 movs r1, 0x26 ; '&' ; 38
| || 0x0800c5c2 4171 strb r1, [r0, 5]
| || 0x0800c5c4 7848 ldr r0, [0x0800c7a8] ; [0x800c7a8:4]=0x2001e700 menu_memory_poi
| || 0x0800c5c6 0068 ldr r0, [r0]
| || 0x0800c5c8 0221 movs r1, 2 ; 2
| || 0x0800c5ca 4172 strb r1, [r0, 9]
| || 0x0800c5cc 0020 movs r0, 0
| || 0x0800c5ce 0290 str r0, [sp, 8]
| || 0x0800c5d0 0020 movs r0, 0
| || 0x0800c5d2 0190 str r0, [sp, 4]
| || 0x0800c5d4 0320 movs r0, 3 ; 3
| || 0x0800c5d6 0090 str r0, [sp]
| || 0x0800c5d8 774b ldr r3, [0x0800c7b8] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c5da 784a ldr r2, [0x0800c7be] ; [0x800c7bc:4]=0x800fcbd
| || 0x0800c5dc 7848 ldr r0, [0x0800c7c0] ; [0x800c7c0:4]=0x2001e6ec
| || 0x0800c5de 0068 ldr r0, [r0]
| || 0x0800c5e0 7849 ldr r1, [0x0800c7c4] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c5e2 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0800c5e6 c168 ldr r1, [r0, 0xc]
| || 0x0800c5e8 6748 ldr r0, [0x0800c788] ; [0x800c788:4]=0x2001e915 md380_menu_id
| || 0x0800c5ea 0078 ldrb r0, [r0]
| || 0x0800c5ec 00f09ff8 bl md380_create_menu_entry
| || 0x0800c5f0 0020 movs r0, 0
| || 0x0800c5f2 0290 str r0, [sp, 8]
| || 0x0800c5f4 0020 movs r0, 0
| || 0x0800c5f6 0190 str r0, [sp, 4]
| || 0x0800c5f8 0320 movs r0, 3 ; 3
| || 0x0800c5fa 0090 str r0, [sp]
| || 0x0800c5fc 6e4b ldr r3, [0x0800c7b8] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c5fe 734a ldr r2, [0x0800c7ce] ; [0x800c7cc:4]=0x8037e35
| || 0x0800c600 6f48 ldr r0, [0x0800c7c0] ; [0x800c7c0:4]=0x2001e6ec
| || 0x0800c602 0068 ldr r0, [r0]
| || 0x0800c604 6f49 ldr r1, [0x0800c7c4] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c606 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0800c60a 0169 ldr r1, [r0, 0x10]
| || 0x0800c60c 5e48 ldr r0, [0x0800c788] ; [0x800c788:4]=0x2001e915 md380_menu_id
| || 0x0800c60e 0078 ldrb r0, [r0]
| || 0x0800c610 401c adds r0, r0, 1
| || 0x0800c612 c0b2 uxtb r0, r0
| || 0x0800c614 00f08bf8 bl md380_create_menu_entry
| || 0x0800c618 06f07cfe bl md380_menu_channel_related_13314
| || 0x0800c61c 7148 ldr r0, [0x0800c7e4] ; [0x800c7e4:4]=0x2001e937
| || 0x0800c61e 0078 ldrb r0, [r0]
| || 0x0800c620 0028 cmp r0, 0
| ||,=< 0x0800c622 14d0 beq 0x800c64e
| ||| 0x0800c624 0120 movs r0, 1 ; 1
| ||| 0x0800c626 0290 str r0, [sp, 8]
| ||| 0x0800c628 0020 movs r0, 0
| ||| 0x0800c62a 0190 str r0, [sp, 4]
| ||| 0x0800c62c 8320 movs r0, 0x83 ; 131
| ||| 0x0800c62e 0090 str r0, [sp]
| ||| 0x0800c630 614b ldr r3, [0x0800c7b8] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| ||| 0x0800c632 674a ldr r2, [0x0800c7d2] ; [0x800c7d0:4]=0x80131ad
| ||| 0x0800c634 6248 ldr r0, [0x0800c7c0] ; [0x800c7c0:4]=0x2001e6ec
| ||| 0x0800c636 0068 ldr r0, [r0]
| ||| 0x0800c638 6249 ldr r1, [0x0800c7c4] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x0800c63a 11eb8000 adds.w r0, r1, r0, lsl 2
| ||| 0x0800c63e 4169 ldr r1, [r0, 0x14]
| ||| 0x0800c640 5148 ldr r0, [0x0800c788] ; [0x800c788:4]=0x2001e915 md380_menu_id
| ||| 0x0800c642 0078 ldrb r0, [r0]
| ||| 0x0800c644 801c adds r0, r0, 2
| ||| 0x0800c646 c0b2 uxtb r0, r0
| ||| 0x0800c648 00f071f8 bl md380_create_menu_entry
| ,====< 0x0800c64c 13e0 b 0x800c676
| |||`-> 0x0800c64e 0120 movs r0, 1 ; 1
| ||| 0x0800c650 0290 str r0, [sp, 8]
| ||| 0x0800c652 0020 movs r0, 0
| ||| 0x0800c654 0190 str r0, [sp, 4]
| ||| 0x0800c656 0320 movs r0, 3 ; 3
| ||| 0x0800c658 0090 str r0, [sp]
| ||| 0x0800c65a 574b ldr r3, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| ||| 0x0800c65c 5c4a ldr r2, [0x0800c7d0] ; [0x800c7d0:4]=0x80131ad
| ||| 0x0800c65e 5848 ldr r0, [0x0800c7c2] ; [0x800c7c0:4]=0x2001e6ec
| ||| 0x0800c660 0068 ldr r0, [r0]
| ||| 0x0800c662 5849 ldr r1, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x0800c664 11eb8000 adds.w r0, r1, r0, lsl 2
| ||| 0x0800c668 4169 ldr r1, [r0, 0x14]
| ||| 0x0800c66a 4748 ldr r0, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| ||| 0x0800c66c 0078 ldrb r0, [r0]
| ||| 0x0800c66e 801c adds r0, r0, 2
| ||| 0x0800c670 c0b2 uxtb r0, r0
| ||| 0x0800c672 00f05cf8 bl md380_create_menu_entry
| `----> 0x0800c676 0020 movs r0, 0
| || 0x0800c678 0290 str r0, [sp, 8]
| || 0x0800c67a 0020 movs r0, 0
| || 0x0800c67c 0190 str r0, [sp, 4]
| || 0x0800c67e 0320 movs r0, 3 ; 3
| || 0x0800c680 0090 str r0, [sp]
| || 0x0800c682 4d4b ldr r3, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c684 534a ldr r2, [0x0800c7d4] ; [0x800c7d4:4]=0x8023859
| || 0x0800c686 4e48 ldr r0, [0x0800c7c2] ; [0x800c7c0:4]=0x2001e6ec
| || 0x0800c688 0068 ldr r0, [r0]
| || 0x0800c68a 4e49 ldr r1, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c68c 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0800c690 8169 ldr r1, [r0, 0x18]
| || 0x0800c692 3d48 ldr r0, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| || 0x0800c694 0078 ldrb r0, [r0]
| || 0x0800c696 c01c adds r0, r0, 3
| || 0x0800c698 c0b2 uxtb r0, r0
| || 0x0800c69a 00f048f8 bl md380_create_menu_entry
| || 0x0800c69e 0020 movs r0, 0
| || 0x0800c6a0 0290 str r0, [sp, 8]
| || 0x0800c6a2 0020 movs r0, 0
| || 0x0800c6a4 0190 str r0, [sp, 4]
| || 0x0800c6a6 0320 movs r0, 3 ; 3
| || 0x0800c6a8 0090 str r0, [sp]
| || 0x0800c6aa 434b ldr r3, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c6ac 4c4a ldr r2, [0x0800c7e0] ; [0x800c7e0:4]=0x8034275
| || 0x0800c6ae 4448 ldr r0, [0x0800c7c2] ; [0x800c7c0:4]=0x2001e6ec
| || 0x0800c6b0 0068 ldr r0, [r0]
| || 0x0800c6b2 4449 ldr r1, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c6b4 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0800c6b8 c169 ldr r1, [r0, 0x1c]
| || 0x0800c6ba 3348 ldr r0, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| || 0x0800c6bc 0078 ldrb r0, [r0]
| || 0x0800c6be 001d adds r0, r0, 4
| || 0x0800c6c0 c0b2 uxtb r0, r0
| || 0x0800c6c2 00f034f8 bl md380_create_menu_entry
| || 0x0800c6c6 0020 movs r0, 0
| || 0x0800c6c8 0290 str r0, [sp, 8]
| || 0x0800c6ca 0020 movs r0, 0
| || 0x0800c6cc 0190 str r0, [sp, 4]
| || 0x0800c6ce 0320 movs r0, 3 ; 3
| || 0x0800c6d0 0090 str r0, [sp]
| || 0x0800c6d2 394b ldr r3, [0x0800c7ba] ; [0x800c7b8:4]=0x800fc85 menu_entry_back_1
| || 0x0800c6d4 404a ldr r2, [0x0800c7d8] ; [0x800c7d8:4]=0x80134a1
| || 0x0800c6d6 3a48 ldr r0, [0x0800c7c2] ; [0x800c7c0:4]=0x2001e6ec
| || 0x0800c6d8 0068 ldr r0, [r0]
| || 0x0800c6da 3a49 ldr r1, [0x0800c7c6] ; [0x800c7c4:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c6dc 11eb8000 adds.w r0, r1, r0, lsl 2
| || 0x0800c6e0 016a ldr r1, [r0, 0x20]
| || 0x0800c6e2 2948 ldr r0, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| || 0x0800c6e4 0078 ldrb r0, [r0]
| || 0x0800c6e6 401d adds r0, r0, 5
| || 0x0800c6e8 c0b2 uxtb r0, r0
| || 0x0800c6ea 00f020f8 bl md380_create_menu_entry
| || 0x0800c6ee 2548 ldr r0, [0x0800c786] ; [0x800c784:4]=0x20004acc md380_menu_depth
| || 0x0800c6f0 0078 ldrb r0, [r0]
| || 0x0800c6f2 03f0affa bl menu_add_number_of_menuentries_counts
| || 0x0800c6f6 2449 ldr r1, [0x0800c78a] ; [0x800c788:4]=0x2001e915 md380_menu_id
| || 0x0800c6f8 0870 strb r0, [r1]
| || 0x0800c6fa 2b48 ldr r0, [0x0800c7aa] ; [0x800c7a8:4]=0x2001e700 menu_memory_poi
| || 0x0800c6fc 0068 ldr r0, [r0]
| || 0x0800c6fe 407a ldrb r0, [r0, 9]
| || 0x0800c700 1421 movs r1, 0x14 ; 20
| || 0x0800c702 294a ldr r2, [0x0800c7aa] ; [0x800c7a8:4]=0x2001e700 menu_memory_poi
| || 0x0800c704 1268 ldr r2, [r2]
| || 0x0800c706 5268 ldr r2, [r2, 4]
| || 0x0800c708 01fb0020 mla r0, r1, r0, r2
| || 0x0800c70c 3349 ldr r1, [0x0800c7dc] ; [0x800c7dc:4]=0x2001e6fc
| || 0x0800c70e 0860 str r0, [r1]
| || 0x0800c710 1c48 ldr r0, [0x0800c784] ; [0x800c784:4]=0x20004acc md380_menu_depth
| || 0x0800c712 ff21 movs r1, 0xff ; 255
| || 0x0800c714 0170 strb r1, [r0]
| ``--> 0x0800c716 0020 movs r0, 0
| ,=< 0x0800c718 06e0 b 0x800c728
| .--> 0x0800c71a 1421 movs r1, 0x14 ; 20
| || 0x0800c71c 234a ldr r2, [0x0800c7ac] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| || 0x0800c71e 01fb0021 mla r1, r1, r0, r2
| || 0x0800c722 0122 movs r2, 1 ; 1
| || 0x0800c724 0a74 strb r2, [r1, 0x10]
| || 0x0800c726 401c adds r0, r0, 1
| |`-> 0x0800c728 0628 cmp r0, 6 ; 6
| `==< 0x0800c72a f6db blt 0x800c71a
\ 0x0800c72c 07bd pop {r0, r1, r2, pc}
/ (fcn) 86
| Caller: func_101b8_yet_another_menu menucall.Zone func_16b34 md380_menu_12670 func_10c08_sms_menu_maybe
| md380_menu_12fcc menugreen.Contacts.800fcbc menu_func_0fe74 menucall.Call_Log
| func_27270 md380_menu_12b78 menucall.Radio_Inf func_25790_menu_create_something
| md380_menu_12e70 menucall.GPS_BeiDo func_25e8e menu_func_0fde8 menu_using_sms_and_edit_buf_1be2c
| Create_Menu_Entry_RX_QRG_1 func_10606 md380_menu_12d08 Create_Menu_Entry_RadioSettings
| func_170c4 md380_menu_12ada Create_Menu_Entry_RX_QRG_shown md380_menu_apply_new_zone_maybe
| Create_Menu_Entry_RX_QRG_3 md380_menu_13082 menu_func_1aa60 menucall.RX_GPSInf
| menu_6_15_1 menucall.Utilities md380_menu_12a08 md380_menu_12964_uses_event5_buffer
| func_1091c menucall.Scan menucall.Program_R func_10844 menucall.Radio_Set
| md380_menu_12c4c md380_menu_zone Create_Menu_Entry_LEDIndicator func_1072c
| md380_menu_entry_programradio md380_menu_13114 md380_menu_12ddc func_16ca4
| menucall.Contacts menucall.Messages md380_menu_12f30 func_213d0 menu_6_1_1
| func_1bf56 func_11108 menu_cursor_related_1bb9c
| md380_create_menu_entry ();
| 0x0800c72e f0b4 push {r4, r5, r6, r7} ; in: R0=menuId, R1=label, R2=OnConfirm, R3=OnCancel, more args on stack
| 0x0800c730 049c ldr r4, [sp, 0x10] ; arg4 = 'e', listed in a table in menu.c
| 0x0800c732 059d ldr r5, [sp, 0x14] ; arg5 = 'f' 0=stable, 2=remove after timeout
| 0x0800c734 069e ldr r6, [sp, 0x18] ; arg6 = item_count or 'enable' ? 0=not visible
| 0x0800c736 c0b2 uxtb r0, r0 ; 'menuId' = index into md380_menu_mem_base[]
| 0x0800c738 1427 movs r7, 0x14 ; 20
| 0x0800c73a dff870c0 ldr.w ip, [0x0800c7b2] ; [0x800c7b0:4]=0x2001deb8 current_channel_info
| 0x0800c73e 07fb00c7 mla r7, r7, r0, ip
| 0x0800c742 3960 str r1, [r7]
| 0x0800c744 c0b2 uxtb r0, r0
| 0x0800c746 1421 movs r1, 0x14 ; 20
| 0x0800c748 184f ldr r7, [0x0800c7ac] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| 0x0800c74a 01fb0071 mla r1, r1, r0, r7
| 0x0800c74e 4a60 str r2, [r1, 4]
| 0x0800c750 c0b2 uxtb r0, r0
| 0x0800c752 1421 movs r1, 0x14 ; 20
| 0x0800c754 154a ldr r2, [0x0800c7ac] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| 0x0800c756 01fb0021 mla r1, r1, r0, r2
| 0x0800c75a 8b60 str r3, [r1, 8]
| 0x0800c75c c0b2 uxtb r0, r0
| 0x0800c75e 1421 movs r1, 0x14 ; 20
| 0x0800c760 124a ldr r2, [0x0800c7ac] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| 0x0800c762 01fb0021 mla r1, r1, r0, r2
| 0x0800c766 0c73 strb r4, [r1, 0xc]
| 0x0800c768 c0b2 uxtb r0, r0
| 0x0800c76a 1421 movs r1, 0x14 ; 20
| 0x0800c76c 0f4a ldr r2, [0x0800c7ac] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| 0x0800c76e 01fb0021 mla r1, r1, r0, r2
| 0x0800c772 4d73 strb r5, [r1, 0xd]
| 0x0800c774 c0b2 uxtb r0, r0
| 0x0800c776 1421 movs r1, 0x14 ; 20
| 0x0800c778 0c4a ldr r2, [0x0800c7ac] ; [0x800c7ac:4]=0x2001b274 md380_menu_mem_base
| 0x0800c77a 01fb0020 mla r0, r1, r0, r2
| 0x0800c77e c681 strh r6, [r0, 0xe]
| 0x0800c780 f0bc pop {r4, r5, r6, r7}
\ 0x0800c782 7047 bx lr
| ;-- :
/ (fcn) 18
| md380_menu_entry_back ();
| 0x0800fc84 ~ dff8dc09 ldr.w r0, [0x08010668] ; [0x8010668:4]=0x2001e6ec
| 0x0800fc88 0078 ldrb r0, [r0]
| 0x0800fc8a 10f0fe00 ands r0, r0, 0xfe
| 0x0800fc8e dff8d419 ldr.w r1, [0x0801066a] ; [0x8010668:4]=0x2001e6ec
| 0x0800fc92 0870 strb r0, [r1]
\ 0x0800fc94 7047 bx lr
/ (fcn) 1130
| Caller: menu_draw_something2
| menu_draw_something ();
| 0x0802872c 70b5 push {r4, r5, r6, lr}
| 0x0802872e 0400 movs r4, r0
| 0x08028730 0d00 movs r5, r1
| 0x08028732 dff8a404 ldr.w r0, [0x08028bde] ; [0x8028bdc:4]=0x20004414
| 0x08028736 0078 ldrb r0, [r0]
| 0x08028738 0028 cmp r0, 0
| ,=< 0x0802873a 0ad0 beq 0x8028752
| | 0x0802873c 0228 cmp r0, 2 ; 2
| ,==< 0x0802873e 4dd0 beq 0x80287dc
| ,===< 0x08028740 0cd3 blo 0x802875c
| ||| 0x08028742 0428 cmp r0, 4 ; 4
| ,====< 0x08028744 00f09780 beq.w 0x8028876
| ,=====< 0x08028748 57d3 blo 0x80287fa
| ||||| 0x0802874a 0528 cmp r0, 5 ; 5
| ,======< 0x0802874c 00f07381 beq.w 0x8028a36
| ,=======< 0x08028750 20e2 b 0x8028b94
| ||||||`-> 0x08028752 2100 movs r1, r4
| |||||| 0x08028754 2800 movs r0, r5
| |||||| 0x08028756 fff76efd bl 0x8028236
| ||||||,=< 0x0802875a 1be2 b 0x8028b94
| ||||`---> 0x0802875c dff85004 ldr.w r0, [0x08028bb4] ; [0x8028bb4:4]=0x2001e57c zone_number_in_byte_3
| |||| || 0x08028760 0078 ldrb r0, [r0]
| |||| || 0x08028762 10f00300 ands r0, r0, 3
| |||| || 0x08028766 0128 cmp r0, 1 ; 1
| ||||,===< 0x08028768 0dd1 bne 0x8028786
| ||||||| 0x0802876a 1620 movs r0, 0x16 ; 22
| ||||||| 0x0802876c 00fb04f0 mul r0, r0, r4
| ||||||| 0x08028770 021d adds r2, r0, 4
| ||||||| 0x08028772 0321 movs r1, 3 ; 3
| ||||||| 0x08028774 686b ldr r0, [r5, 0x34]
| ||||||| 0x08028776 2018 adds r0, r4, r0
| ||||||| 0x08028778 1423 movs r3, 0x14 ; 20
| ||||||| 0x0802877a dff86064 ldr.w r6, [0x08028be2] ; [0x8028be0:4]=0x20003774
| ||||||| 0x0802877e 03fb0060 mla r0, r3, r0, r6
| ||||||| 0x08028782 fbf73cf8 bl gfx_drawbmp
| ||||`---> 0x08028786 dff82804 ldr.w r0, [0x08028bb6] ; [0x8028bb4:4]=0x2001e57c zone_number_in_byte_3
| |||| || 0x0802878a 0078 ldrb r0, [r0]
| |||| || 0x0802878c 10f00300 ands r0, r0, 3
| |||| || 0x08028790 0228 cmp r0, 2 ; 2
| ||||,===< 0x08028792 0dd1 bne 0x80287b0
| ||||||| 0x08028794 1620 movs r0, 0x16 ; 22
| ||||||| 0x08028796 00fb04f0 mul r0, r0, r4
| ||||||| 0x0802879a 021d adds r2, r0, 4
| ||||||| 0x0802879c 0321 movs r1, 3 ; 3
| ||||||| 0x0802879e 686b ldr r0, [r5, 0x34]
| ||||||| 0x080287a0 2018 adds r0, r4, r0
| ||||||| 0x080287a2 1423 movs r3, 0x14 ; 20
| ||||||| 0x080287a4 dff83864 ldr.w r6, [0x08028be4] ; [0x8028be4:4]=0x2000495c
| ||||||| 0x080287a8 03fb0060 mla r0, r3, r0, r6
| ||||||| 0x080287ac fbf727f8 bl gfx_drawbmp
| ||||`---> 0x080287b0 dff8fc03 ldr.w r0, [0x08028bb4] ; [0x8028bb4:4]=0x2001e57c zone_number_in_byte_3
| |||| || 0x080287b4 0078 ldrb r0, [r0]
| |||| || 0x080287b6 10f00300 ands r0, r0, 3
| |||| || 0x080287ba 0328 cmp r0, 3 ; 3
| ||||,===< 0x080287bc 0dd1 bne 0x80287da
| ||||||| 0x080287be 1620 movs r0, 0x16 ; 22
| ||||||| 0x080287c0 00fb04f0 mul r0, r0, r4
| ||||||| 0x080287c4 021d adds r2, r0, 4
| ||||||| 0x080287c6 0321 movs r1, 3 ; 3
| ||||||| 0x080287c8 686b ldr r0, [r5, 0x34]
| ||||||| 0x080287ca 2018 adds r0, r4, r0
| ||||||| 0x080287cc 1423 movs r3, 0x14 ; 20
| ||||||| 0x080287ce dff81444 ldr.w r4, [0x08028bea] ; [0x8028be8:4]=0x47ffe92d
| ||||||| 0x080287d2 03fb0040 mla r0, r3, r0, r4
| ||||||| 0x080287d6 fbf712f8 bl gfx_drawbmp
| ====`---> 0x080287da dbe1 b 0x8028b94
| |||| `--> 0x080287dc 1620 movs r0, 0x16 ; 22
| |||| | 0x080287de 00fb04f0 mul r0, r0, r4
| |||| | 0x080287e2 421d adds r2, r0, 5
| |||| | 0x080287e4 0321 movs r1, 3 ; 3
| |||| | 0x080287e6 686b ldr r0, [r5, 0x34]
| |||| | 0x080287e8 2018 adds r0, r4, r0
| |||| | 0x080287ea 1423 movs r3, 0x14 ; 20
| |||| | 0x080287ec dff8404d ldr.w r4, [0x08029534] ; [0x8029534:4]=0x2001e82e
| |||| | 0x080287f0 03fb0040 mla r0, r3, r0, r4
| |||| | 0x080287f4 fbf703f8 bl gfx_drawbmp
| |||| ,==< 0x080287f8 cce1 b 0x8028b94
| ||`-----> 0x080287fa 686b ldr r0, [r5, 0x34]
| || | || 0x080287fc 2018 adds r0, r4, r0
| || | || 0x080287fe 0028 cmp r0, 0
| || |,===< 0x08028800 1bd0 beq 0x802883a
| || |||| 0x08028802 dff8300d ldr.w r0, [0x0802953a] ; [0x8029538:4]=0x2001def8 menu_pointer_maybe_channel_data
| || |||| 0x08028806 0088 ldrh r0, [r0]
| || |||| 0x08028808 696b ldr r1, [r5, 0x34]
| || |||| 0x0802880a 6118 adds r1, r4, r1
| || |||| 0x0802880c dff8282d ldr.w r2, [0x0802953c] ; [0x802953c:4]=0x2001e564
| || |||| 0x08028810 12eb4101 adds.w r1, r2, r1, lsl 1
| || |||| 0x08028814 498d ldrh r1, [r1, 0x2a]
| || |||| 0x08028816 8842 cmp r0, r1
| ||,=====< 0x08028818 07d1 bne 0x802882a
| ||||||| 0x0802881a 0121 movs r1, 1 ; 1
| ||||||| 0x0802881c dff81c0d ldr.w r0, [0x08029540] ; [0x8029540:4]=0x2001d950
| ||||||| 0x08028820 30f91400 ldrsh.w r0, [r0, r4, lsl 1]
| ||||||| 0x08028824 0ff0f1fa bl menu_37e0a
| --------> 0x08028828 b4e1 b 0x8028b94
| ||`-----> 0x0802882a 0021 movs r1, 0
| || |||| 0x0802882c dff80c0d ldr.w r0, [0x08029540] ; [0x8029540:4]=0x2001d950
| || |||| 0x08028830 30f91400 ldrsh.w r0, [r0, r4, lsl 1]
| || |||| 0x08028834 0ff0e9fa bl menu_37e0a
| ========< 0x08028838 f6e7 b 0x8028828
| || |`---> 0x0802883a 0024 movs r4, 0
| || |,===< 0x0802883c 07e0 b 0x802884e
| ||.-----> 0x0802883e 0121 movs r1, 1 ; 1
| ||||||| 0x08028840 dff8f80c ldr.w r0, [0x08029540] ; [0x8029540:4]=0x2001d950
| ||||||| 0x08028844 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x08028848 0ff0dffa bl menu_37e0a
| ||||||| 0x0802884c 641c adds r4, r4, 1
| ||||`---> 0x0802884e 0a2c cmp r4, 0xa ; 10
| ========< 0x08028850 eada bge 0x8028828
| |||| || 0x08028852 dff8e00c ldr.w r0, [0x0802953a] ; [0x8029538:4]=0x2001def8 menu_pointer_maybe_channel_data
| |||| || 0x08028856 0088 ldrh r0, [r0]
| |||| || 0x08028858 dff8dc1c ldr.w r1, [0x0802953c] ; [0x802953c:4]=0x2001e564
| |||| || 0x0802885c 11eb4401 adds.w r1, r1, r4, lsl 1
| |||| || 0x08028860 898d ldrh r1, [r1, 0x2c]
| |||| || 0x08028862 8842 cmp r0, r1
| ||`=====< 0x08028864 ebd1 bne 0x802883e
| || | || 0x08028866 0021 movs r1, 0
| || | || 0x08028868 dff8d00c ldr.w r0, [0x08029540] ; [0x8029540:4]=0x2001d950
| || | || 0x0802886c b0f90000 ldrsh.w r0, [r0]
| || | || 0x08028870 0ff0cbfa bl menu_37e0a
| || |,===< 0x08028874 8ee1 b 0x8028b94
| || `----> 0x08028876 c948 ldr r0, [0x08028b9e] ; [0x8028b9c:4]=0x2001e6fc
| || ||| 0x08028878 0068 ldr r0, [r0]
| || ||| 0x0802887a 007b ldrb r0, [r0, 0xc]
| || ||| 0x0802887c 10f01f00 ands r0, r0, 0x1f
| || ||| 0x08028880 1f28 cmp r0, 0x1f ; 31
| || ,====< 0x08028882 2fd1 bne 0x80288e4
| || |||| 0x08028884 686b ldr r0, [r5, 0x34]
| || |||| 0x08028886 2018 adds r0, r4, r0
| || |||| 0x08028888 401c adds r0, r0, 1
| || |||| 0x0802888a c0b2 uxtb r0, r0
| || |||| 0x0802888c 10f0a0ff bl func_397d0
| || |||| 0x08028890 c0b2 uxtb r0, r0
| || |||| 0x08028892 dff8ac1c ldr.w r1, [0x08029546] ; [0x8029544:4]=0x8098648
| || |||| 0x08028896 11eb4000 adds.w r0, r1, r0, lsl 1
| || |||| 0x0802889a 008d ldrh r0, [r0, 0x28]
| || |||| 0x0802889c 80b2 uxth r0, r0
| || |||| 0x0802889e 0ff014fd bl func_382ca
| || |||| 0x080288a2 1620 movs r0, 0x16 ; 22
| || |||| 0x080288a4 00fb04f0 mul r0, r0, r4
| || |||| 0x080288a8 421d adds r2, r0, 5
| || |||| 0x080288aa 0321 movs r1, 3 ; 3
| || |||| 0x080288ac dff88c0d ldr.w r0, [0x08029640] ; [0x8029640:4]=0x80f863c
| || |||| 0x080288b0 0078 ldrb r0, [r0]
| || |||| 0x080288b2 1423 movs r3, 0x14 ; 20
| || |||| 0x080288b4 dff88c4c ldr.w r4, [0x08029548] ; [0x8029548:4]=0x4b5f8
| || |||| 0x080288b8 03fb0040 mla r0, r3, r0, r4
| || |||| 0x080288bc a038 subs r0, 0xa0
| || |||| 0x080288be faf79eff bl gfx_drawbmp
| || |||| 0x080288c2 b748 ldr r0, [0x08028ba2] ; [0x8028ba0:4]=0x2001e700 menu_memory_poi
| || |||| 0x080288c4 0068 ldr r0, [r0]
| || |||| 0x080288c6 4089 ldrh r0, [r0, 0xa]
| || |||| 0x080288c8 401c adds r0, r0, 1
| || |||| 0x080288ca c0b2 uxtb r0, r0
| || |||| 0x080288cc 10f080ff bl func_397d0
| || |||| 0x080288d0 c0b2 uxtb r0, r0
| || |||| 0x080288d2 dff86c1c ldr.w r1, [0x08029546] ; [0x8029544:4]=0x8098648
| || |||| 0x080288d6 11eb4000 adds.w r0, r1, r0, lsl 1
| || |||| 0x080288da 008d ldrh r0, [r0, 0x28]
| || |||| 0x080288dc 80b2 uxth r0, r0
| || |||| 0x080288de 0ff0f4fc bl func_382ca
| ||,=====< 0x080288e2 57e1 b 0x8028b94
| |||`----> 0x080288e4 ad48 ldr r0, [0x08028b9c] ; [0x8028b9c:4]=0x2001e6fc
| ||| ||| 0x080288e6 0068 ldr r0, [r0]
| ||| ||| 0x080288e8 007b ldrb r0, [r0, 0xc]
| ||| ||| 0x080288ea 10f01f00 ands r0, r0, 0x1f
| ||| ||| 0x080288ee 1928 cmp r0, 0x19 ; 25
| |||,====< 0x080288f0 09d1 bne 0x8028906
| ||||||| 0x080288f2 1620 movs r0, 0x16 ; 22
| ||||||| 0x080288f4 00fb04f0 mul r0, r0, r4
| ||||||| 0x080288f8 021d adds r2, r0, 4
| ||||||| 0x080288fa 0321 movs r1, 3 ; 3
| ||||||| 0x080288fc dff8400d ldr.w r0, [0x08029644] ; [0x8029644:4]=0x80f8588
| ||||||| 0x08028900 faf77dff bl gfx_drawbmp
| ========< 0x08028904 46e1 b 0x8028b94
| |||`----> 0x08028906 a548 ldr r0, [0x08028b9e] ; [0x8028b9c:4]=0x2001e6fc
| ||| ||| 0x08028908 0068 ldr r0, [r0]
| ||| ||| 0x0802890a 007b ldrb r0, [r0, 0xc]
| ||| ||| 0x0802890c 10f01f00 ands r0, r0, 0x1f
| ||| ||| 0x08028910 1028 cmp r0, 0x10 ; 16
| |||,====< 0x08028912 0ad1 bne 0x802892a
| ||||||| 0x08028914 1620 movs r0, 0x16 ; 22
| ||||||| 0x08028916 00fb04f0 mul r0, r0, r4
| ||||||| 0x0802891a 10f10802 adds.w r2, r0, 8
| ||||||| 0x0802891e 0321 movs r1, 3 ; 3
| ||||||| 0x08028920 dff8200d ldr.w r0, [0x08029648] ; [0x8029648:4]=0x2001e911
| ||||||| 0x08028924 faf76bff bl gfx_drawbmp
| ========< 0x08028928 34e1 b 0x8028b94
| |||`----> 0x0802892a 9c48 ldr r0, [0x08028b9e] ; [0x8028b9c:4]=0x2001e6fc
| ||| ||| 0x0802892c 0068 ldr r0, [r0]
| ||| ||| 0x0802892e 007b ldrb r0, [r0, 0xc]
| ||| ||| 0x08028930 10f01f00 ands r0, r0, 0x1f
| ||| ||| 0x08028934 1228 cmp r0, 0x12 ; 18
| |||,====< 0x08028936 32d1 bne 0x802899e
| ||||||| 0x08028938 686b ldr r0, [r5, 0x34]
| ||||||| 0x0802893a 2018 adds r0, r4, r0
| ||||||| 0x0802893c 401c adds r0, r0, 1
| ||||||| 0x0802893e 40b2 sxtb r0, r0
| ||||||| 0x08028940 11f04ffa bl menu_39de2
| ||||||| 0x08028944 dff8001d ldr.w r1, [0x0802964c] ; [0x802964c:4]=0x2001d43c
| ||||||| 0x08028948 0870 strb r0, [r1]
| ||||||| 0x0802894a dff8fc0c ldr.w r0, [0x0802964e] ; [0x802964c:4]=0x2001d43c
| ||||||| 0x0802894e 0078 ldrb r0, [r0]
| ||||||| 0x08028950 dff8f81c ldr.w r1, [0x08029650] ; [0x8029650:4]=0x80f85b0
| ||||||| 0x08028954 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||||| 0x08028958 10f8030c ldrb r0, [r0, -0x3]
| ||||||| 0x0802895c 0228 cmp r0, 2 ; 2
| ========< 0x0802895e 0ad1 bne 0x8028976
| ||||||| 0x08028960 1620 movs r0, 0x16 ; 22
| ||||||| 0x08028962 00fb04f0 mul r0, r0, r4
| ||||||| 0x08028966 10f10802 adds.w r2, r0, 8
| ||||||| 0x0802896a 0321 movs r1, 3 ; 3
| ||||||| 0x0802896c dff8e00c ldr.w r0, [0x08029654] ; [0x8029654:4]=0x80f85c4
| ||||||| 0x08028970 faf745ff bl gfx_drawbmp
| ========< 0x08028974 08e0 b 0x8028988
| --------> 0x08028976 1620 movs r0, 0x16 ; 22
| ||||||| 0x08028978 00fb04f0 mul r0, r0, r4
| ||||||| 0x0802897c 421d adds r2, r0, 5
| ||||||| 0x0802897e 0321 movs r1, 3 ; 3
| ||||||| 0x08028980 dff8d00c ldr.w r0, [0x08029658] ; [0x8029658:4]=0x2001e910
| ||||||| 0x08028984 faf73bff bl gfx_drawbmp
| --------> 0x08028988 8548 ldr r0, [0x08028ba0] ; [0x8028ba0:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0802898a 0068 ldr r0, [r0]
| ||||||| 0x0802898c 4089 ldrh r0, [r0, 0xa]
| ||||||| 0x0802898e 401c adds r0, r0, 1
| ||||||| 0x08028990 40b2 sxtb r0, r0
| ||||||| 0x08028992 11f026fa bl menu_39de2
| ||||||| 0x08028996 dff8b01c ldr.w r1, [0x0802964e] ; [0x802964c:4]=0x2001d43c
| ||||||| 0x0802899a 0870 strb r0, [r1]
| ========< 0x0802899c fae0 b 0x8028b94
| |||`----> 0x0802899e 7f48 ldr r0, [0x08028b9e] ; [0x8028b9c:4]=0x2001e6fc
| ||| ||| 0x080289a0 0068 ldr r0, [r0]
| ||| ||| 0x080289a2 007b ldrb r0, [r0, 0xc]
| ||| ||| 0x080289a4 10f01f00 ands r0, r0, 0x1f
| ||| ||| 0x080289a8 1328 cmp r0, 0x13 ; 19
| |||,====< 0x080289aa 32d1 bne 0x8028a12
| ||||||| 0x080289ac 686b ldr r0, [r5, 0x34]
| ||||||| 0x080289ae 2018 adds r0, r4, r0
| ||||||| 0x080289b0 401c adds r0, r0, 1
| ||||||| 0x080289b2 40b2 sxtb r0, r0
| ||||||| 0x080289b4 fdf73cfc bl func_26230
| ||||||| 0x080289b8 dff89c1c ldr.w r1, [0x0802965c] ; [0x802965c:4]=0x2001d374
| ||||||| 0x080289bc 0870 strb r0, [r1]
| ||||||| 0x080289be dff8980c ldr.w r0, [0x0802965e] ; [0x802965c:4]=0x2001d374
| ||||||| 0x080289c2 0078 ldrb r0, [r0]
| ||||||| 0x080289c4 dff8941c ldr.w r1, [0x08029660] ; [0x8029660:4]=0x80f859c
| ||||||| 0x080289c8 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||||| 0x080289cc 10f8030c ldrb r0, [r0, -0x3]
| ||||||| 0x080289d0 0228 cmp r0, 2 ; 2
| ========< 0x080289d2 0ad1 bne 0x80289ea
| ||||||| 0x080289d4 1620 movs r0, 0x16 ; 22
| ||||||| 0x080289d6 00fb04f0 mul r0, r0, r4
| ||||||| 0x080289da 10f10802 adds.w r2, r0, 8
| ||||||| 0x080289de 0321 movs r1, 3 ; 3
| ||||||| 0x080289e0 dff8600c ldr.w r0, [0x08029648] ; [0x8029648:4]=0x2001e911
| ||||||| 0x080289e4 faf70bff bl gfx_drawbmp
| ========< 0x080289e8 08e0 b 0x80289fc
| --------> 0x080289ea 1620 movs r0, 0x16 ; 22
| ||||||| 0x080289ec 00fb04f0 mul r0, r0, r4
| ||||||| 0x080289f0 421d adds r2, r0, 5
| ||||||| 0x080289f2 0321 movs r1, 3 ; 3
| ||||||| 0x080289f4 dff8680c ldr.w r0, [0x08029664] ; [0x8029664:4]=0x20004198
| ||||||| 0x080289f8 faf701ff bl gfx_drawbmp
| --------> 0x080289fc 6848 ldr r0, [0x08028ba0] ; [0x8028ba0:4]=0x2001e700 menu_memory_poi
| ||||||| 0x080289fe 0068 ldr r0, [r0]
| ||||||| 0x08028a00 4089 ldrh r0, [r0, 0xa]
| ||||||| 0x08028a02 401c adds r0, r0, 1
| ||||||| 0x08028a04 40b2 sxtb r0, r0
| ||||||| 0x08028a06 fdf713fc bl func_26230
| ||||||| 0x08028a0a dff84c1c ldr.w r1, [0x0802965e] ; [0x802965c:4]=0x2001d374
| ||||||| 0x08028a0e 0870 strb r0, [r1]
| ========< 0x08028a10 c0e0 b 0x8028b94
| |||`----> 0x08028a12 6248 ldr r0, [0x08028b9e] ; [0x8028b9c:4]=0x2001e6fc
| ||| ||| 0x08028a14 0068 ldr r0, [r0]
| ||| ||| 0x08028a16 007b ldrb r0, [r0, 0xc]
| ||| ||| 0x08028a18 10f01f00 ands r0, r0, 0x1f
| ||| ||| 0x08028a1c 1428 cmp r0, 0x14 ; 20
| |||,====< 0x08028a1e 0ad1 bne 0x8028a36
| ||||||| 0x08028a20 1620 movs r0, 0x16 ; 22
| ||||||| 0x08028a22 00fb04f0 mul r0, r0, r4
| ||||||| 0x08028a26 10f10802 adds.w r2, r0, 8
| ||||||| 0x08028a2a 0321 movs r1, 3 ; 3
| ||||||| 0x08028a2c dff8140c ldr.w r0, [0x08029648] ; [0x8029648:4]=0x2001e911
| ||||||| 0x08028a30 faf7e5fe bl gfx_drawbmp
| ========< 0x08028a34 aee0 b 0x8028b94
| |`-`----> 0x08028a36 5948 ldr r0, [0x08028b9e] ; [0x8028b9c:4]=0x2001e6fc
| | | ||| 0x08028a38 0068 ldr r0, [r0]
| | | ||| 0x08028a3a 007b ldrb r0, [r0, 0xc]
| | | ||| 0x08028a3c 10f01f00 ands r0, r0, 0x1f
| | | ||| 0x08028a40 1a28 cmp r0, 0x1a ; 26
| | |,====< 0x08028a42 0dd0 beq 0x8028a60
| | ||||| 0x08028a44 5548 ldr r0, [0x08028b9c] ; [0x8028b9c:4]=0x2001e6fc
| | ||||| 0x08028a46 0068 ldr r0, [r0]
| | ||||| 0x08028a48 007b ldrb r0, [r0, 0xc]
| | ||||| 0x08028a4a 10f01f00 ands r0, r0, 0x1f
| | ||||| 0x08028a4e 1b28 cmp r0, 0x1b ; 27
| |,======< 0x08028a50 06d0 beq 0x8028a60
| ||||||| 0x08028a52 5248 ldr r0, [0x08028b9e] ; [0x8028b9c:4]=0x2001e6fc
| ||||||| 0x08028a54 0068 ldr r0, [r0]
| ||||||| 0x08028a56 007b ldrb r0, [r0, 0xc]
| ||||||| 0x08028a58 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x08028a5c 1c28 cmp r0, 0x1c ; 28
| ========< 0x08028a5e 09d1 bne 0x8028a74
| |`-`----> 0x08028a60 1620 movs r0, 0x16 ; 22
| | | ||| 0x08028a62 00fb04f0 mul r0, r0, r4
| | | ||| 0x08028a66 021d adds r2, r0, 4
| | | ||| 0x08028a68 0321 movs r1, 3 ; 3
| | | ||| 0x08028a6a dff8f80b ldr.w r0, [0x0802966a] ; [0x8029668:4]=0x20004184
| | | ||| 0x08028a6e faf7c6fe bl gfx_drawbmp
| | |,====< 0x08028a72 8fe0 b 0x8028b94
| --------> 0x08028a74 4948 ldr r0, [0x08028b9c] ; [0x8028b9c:4]=0x2001e6fc
| | ||||| 0x08028a76 0068 ldr r0, [r0]
| | ||||| 0x08028a78 007b ldrb r0, [r0, 0xc]
| | ||||| 0x08028a7a 10f01f00 ands r0, r0, 0x1f
| | ||||| 0x08028a7e 1128 cmp r0, 0x11 ; 17
| |,======< 0x08028a80 2fd1 bne 0x8028ae2
| ||||||| 0x08028a82 686b ldr r0, [r5, 0x34]
| ||||||| 0x08028a84 2018 adds r0, r4, r0
| ||||||| 0x08028a86 401c adds r0, r0, 1
| ||||||| 0x08028a88 80b2 uxth r0, r0
| ||||||| 0x08028a8a e8f781fe bl func_11790
| ||||||| 0x08028a8e dff8a41a ldr.w r1, [0x0802953a] ; [0x8029538:4]=0x2001def8 menu_pointer_maybe_channel_data
| ||||||| 0x08028a92 0880 strh r0, [r1]
| ||||||| 0x08028a94 dff89c0a ldr.w r0, [0x08029538] ; [0x8029538:4]=0x2001def8 menu_pointer_maybe_channel_data
| ||||||| 0x08028a98 0088 ldrh r0, [r0]
| ||||||| 0x08028a9a f9f79eff bl func_229da
| ||||||| 0x08028a9e e8f74bff bl func_11938
| ||||||| 0x08028aa2 1620 movs r0, 0x16 ; 22
| ||||||| 0x08028aa4 00fb04f0 mul r0, r0, r4
| ||||||| 0x08028aa8 021d adds r2, r0, 4
| ||||||| 0x08028aaa 0321 movs r1, 3 ; 3
| ||||||| 0x08028aac dff88c0b ldr.w r0, [0x08029640] ; [0x8029640:4]=0x80f863c
| ||||||| 0x08028ab0 0078 ldrb r0, [r0]
| ||||||| 0x08028ab2 1423 movs r3, 0x14 ; 20
| ||||||| 0x08028ab4 dff8b04b ldr.w r4, [0x0802966c] ; [0x802966c:4]=0x8029237
| ||||||| 0x08028ab8 03fb0040 mla r0, r3, r0, r4
| ||||||| 0x08028abc 5038 subs r0, 0x50
| ||||||| 0x08028abe faf79efe bl gfx_drawbmp
| ||||||| 0x08028ac2 3748 ldr r0, [0x08028ba2] ; [0x8028ba0:4]=0x2001e700 menu_memory_poi
| ||||||| 0x08028ac4 0068 ldr r0, [r0]
| ||||||| 0x08028ac6 4089 ldrh r0, [r0, 0xa]
| ||||||| 0x08028ac8 401c adds r0, r0, 1
| ||||||| 0x08028aca 80b2 uxth r0, r0
| ||||||| 0x08028acc e8f760fe bl func_11790
| ||||||| 0x08028ad0 dff8601a ldr.w r1, [0x08029538] ; [0x8029538:4]=0x2001def8 menu_pointer_maybe_channel_data
| ||||||| 0x08028ad4 0880 strh r0, [r1]
| ||||||| 0x08028ad6 dff85c0a ldr.w r0, [0x0802953a] ; [0x8029538:4]=0x2001def8 menu_pointer_maybe_channel_data
| ||||||| 0x08028ada 0088 ldrh r0, [r0]
| ||||||| 0x08028adc f9f77dff bl func_229da
| ========< 0x08028ae0 58e0 b 0x8028b94
| |`------> 0x08028ae2 2e48 ldr r0, [0x08028b9e] ; [0x8028b9c:4]=0x2001e6fc
| | ||||| 0x08028ae4 0068 ldr r0, [r0]
| | ||||| 0x08028ae6 007b ldrb r0, [r0, 0xc]
| | ||||| 0x08028ae8 10f01f00 ands r0, r0, 0x1f
| | ||||| 0x08028aec 1d28 cmp r0, 0x1d ; 29
| |,======< 0x08028aee 09d1 bne 0x8028b04
| ||||||| 0x08028af0 1620 movs r0, 0x16 ; 22
| ||||||| 0x08028af2 00fb04f0 mul r0, r0, r4
| ||||||| 0x08028af6 021d adds r2, r0, 4
| ||||||| 0x08028af8 0321 movs r1, 3 ; 3
| ||||||| 0x08028afa dff8440b ldr.w r0, [0x08029646] ; [0x8029644:4]=0x80f8588
| ||||||| 0x08028afe faf77efe bl gfx_drawbmp
| ========< 0x08028b02 47e0 b 0x8028b94
| |`------> 0x08028b04 2648 ldr r0, [0x08028ba0] ; [0x8028ba0:4]=0x2001e700 menu_memory_poi
| | ||||| 0x08028b06 0068 ldr r0, [r0]
| | ||||| 0x08028b08 0068 ldr r0, [r0]
| | ||||| 0x08028b0a 2749 ldr r1, [0x08028baa] ; [0x8028ba8:4]=0x2001e6ec
| | ||||| 0x08028b0c 0968 ldr r1, [r1]
| | ||||| 0x08028b0e 274a ldr r2, [0x08028bae] ; [0x8028bac:4]=0x20001704 md380_menu_ptr_to_80d032c
| | ||||| 0x08028b10 12eb8101 adds.w r1, r2, r1, lsl 2
| | ||||| 0x08028b14 d1f8b410 ldr.w r1, [r1, 0xb4]
| | ||||| 0x08028b18 8842 cmp r0, r1
| |,======< 0x08028b1a 0dd0 beq 0x8028b38
| ||||||| 0x08028b1c 686b ldr r0, [r5, 0x34]
| ||||||| 0x08028b1e 2018 adds r0, r4, r0
| ||||||| 0x08028b20 401c adds r0, r0, 1
| ||||||| 0x08028b22 80b2 uxth r0, r0
| ||||||| 0x08028b24 e8f7e6fd bl func_116f4
| ||||||| 0x08028b28 dff8081a ldr.w r1, [0x08029538] ; [0x8029538:4]=0x2001def8 menu_pointer_maybe_channel_data
| ||||||| 0x08028b2c 0880 strh r0, [r1]
| ||||||| 0x08028b2e dff8040a ldr.w r0, [0x0802953a] ; [0x8029538:4]=0x2001def8 menu_pointer_maybe_channel_data
| ||||||| 0x08028b32 0088 ldrh r0, [r0]
| ||||||| 0x08028b34 f9f751ff bl func_229da
| |`------> 0x08028b38 e8f7fefe bl func_11938
| | ||||| 0x08028b3c 1620 movs r0, 0x16 ; 22
| | ||||| 0x08028b3e 00fb04f0 mul r0, r0, r4
| | ||||| 0x08028b42 021d adds r2, r0, 4
| | ||||| 0x08028b44 0321 movs r1, 3 ; 3
| | ||||| 0x08028b46 dff8f40a ldr.w r0, [0x08029642] ; [0x8029640:4]=0x80f863c
| | ||||| 0x08028b4a 0078 ldrb r0, [r0]
| | ||||| 0x08028b4c 1423 movs r3, 0x14 ; 20
| | ||||| 0x08028b4e dff8184b ldr.w r4, [0x0802966e] ; [0x802966c:4]=0x8029237
| | ||||| 0x08028b52 03fb0040 mla r0, r3, r0, r4
| | ||||| 0x08028b56 5038 subs r0, 0x50
| | ||||| 0x08028b58 faf751fe bl gfx_drawbmp
| | ||||| 0x08028b5c 1048 ldr r0, [0x08028ba0] ; [0x8028ba0:4]=0x2001e700 menu_memory_poi
| | ||||| 0x08028b5e 0068 ldr r0, [r0]
| | ||||| 0x08028b60 0068 ldr r0, [r0]
| | ||||| 0x08028b62 1149 ldr r1, [0x08028baa] ; [0x8028ba8:4]=0x2001e6ec
| | ||||| 0x08028b64 0968 ldr r1, [r1]
| | ||||| 0x08028b66 114a ldr r2, [0x08028bae] ; [0x8028bac:4]=0x20001704 md380_menu_ptr_to_80d032c
| | ||||| 0x08028b68 12eb8101 adds.w r1, r2, r1, lsl 2
| | ||||| 0x08028b6c d1f8b410 ldr.w r1, [r1, 0xb4]
| | ||||| 0x08028b70 8842 cmp r0, r1
| |,======< 0x08028b72 0ed0 beq 0x8028b92
| ||||||| 0x08028b74 0a48 ldr r0, [0x08028ba0] ; [0x8028ba0:4]=0x2001e700 menu_memory_poi
| ||||||| 0x08028b76 0068 ldr r0, [r0]
| ||||||| 0x08028b78 4089 ldrh r0, [r0, 0xa]
| ||||||| 0x08028b7a 401c adds r0, r0, 1
| ||||||| 0x08028b7c 80b2 uxth r0, r0
| ||||||| 0x08028b7e e8f7b9fd bl func_116f4
| ||||||| 0x08028b82 dff8b019 ldr.w r1, [0x0802953a] ; [0x8029538:4]=0x2001def8 menu_pointer_maybe_channel_data
| ||||||| 0x08028b86 0880 strh r0, [r1]
| ||||||| 0x08028b88 dff8a809 ldr.w r0, [0x08029538] ; [0x8029538:4]=0x2001def8 menu_pointer_maybe_channel_data
| ||||||| 0x08028b8c 0088 ldrh r0, [r0]
| ||||||| 0x08028b8e f9f724ff bl func_229da
| =`------> 0x08028b92 ffe7 b 0x8028b94
\ `-`````-> 0x08028b94 70bd pop {r4, r5, r6, pc}
/ (fcn) 408
| Caller: menu_draw_something3
| menu_draw_something2 ();
| 0x08028be8 2de9ff47 push.w {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, lr}
| 0x08028bec 0500 movs r5, r0
| 0x08028bee 6868 ldr r0, [r5, 4]
| 0x08028bf0 0028 cmp r0, 0
| ,=< 0x08028bf2 25d0 beq 0x8028c40
| | 0x08028bf4 0228 cmp r0, 2 ; 2
| ,==< 0x08028bf6 16d0 beq 0x8028c26
| ,===< 0x08028bf8 80f0be80 bhs.w 0x8028d78
| ||| 0x08028bfc b5f90000 ldrsh.w r0, [r5]
| ||| 0x08028c00 09f030ff bl gfx_draw_sub_32a64
| ||| 0x08028c04 0400 movs r4, r0
| ||| 0x08028c06 a06c ldr r0, [r4, 0x48]
| ||| 0x08028c08 f8f734fe bl gfx_select_font
| ||| 0x08028c0c 0600 movs r6, r0
| ||| 0x08028c0e a968 ldr r1, [r5, 8]
| ||| 0x08028c10 2000 movs r0, r4
| ||| 0x08028c12 fff7f2f9 bl menu_draw_sub_27ffa
| ||| 0x08028c16 11f0c7ff bl menu_draw_sub_3aba8
| ||| 0x08028c1a 0400 movs r4, r0
| ||| 0x08028c1c 3000 movs r0, r6
| ||| 0x08028c1e f8f729fe bl gfx_select_font
| ||| 0x08028c22 2000 movs r0, r4
| ,====< 0x08028c24 a9e0 b 0x8028d7a
| ||`--> 0x08028c26 b5f90000 ldrsh.w r0, [r5]
| || | 0x08028c2a 09f01bff bl gfx_draw_sub_32a64
| || | 0x08028c2e 0400 movs r4, r0
| || | 0x08028c30 a06c ldr r0, [r4, 0x48]
| || | 0x08028c32 0ef02fff bl MultiplySomethingFromStruct
| || | 0x08028c36 b4f87610 ldrh.w r1, [r4, 0x76]
| || | 0x08028c3a 10fa81f0 uxtah r0, r0, r1
| ||,==< 0x08028c3e 9ce0 b 0x8028d7a
| |||`-> 0x08028c40 d5f80880 ldr.w r8, [r5, 8]
| ||| 0x08028c44 b5f90000 ldrsh.w r0, [r5]
| ||| 0x08028c48 09f00cff bl gfx_draw_sub_32a64
| ||| 0x08028c4c 0400 movs r4, r0
| ||| 0x08028c4e 4146 mov r1, r8
| ||| 0x08028c50 14f12800 adds.w r0, r4, 0x28
| ||| 0x08028c54 0ff055f8 bl menu_draw_sub_37d02
| ||| 0x08028c58 00b2 sxth r0, r0
| ||| 0x08028c5a 09f003ff bl gfx_draw_sub_32a64
| ||| 0x08028c5e 0600 movs r6, r0
| ||| 0x08028c60 02a8 add r0, sp, 8
| ||| 0x08028c62 11f0b4ff bl menu_draw_sub_3abce
| ||| 0x08028c66 0bf016f8 bl gfx_get_font_height
| ||| 0x08028c6a 0700 movs r7, r0
| ||| 0x08028c6c 3079 ldrb r0, [r6, 4]
| ||| 0x08028c6e c0f34000 ubfx r0, r0, 1, 1
| ||| 0x08028c72 10f00100 ands r0, r0, 1
| ||| 0x08028c76 3179 ldrb r1, [r6, 4]
| ||| 0x08028c78 11f00101 ands r1, r1, 1
| ||| 0x08028c7c 94f87420 ldrb.w r2, [r4, 0x74]
| ||| 0x08028c80 5207 lsls r2, r2, 0x1d
| |||,=< 0x08028c82 0bd5 bpl 0x8028c9c
| |||| 0x08028c84 c0b2 uxtb r0, r0
| |||| 0x08028c86 0028 cmp r0, 0
| ,=====< 0x08028c88 01d0 beq 0x8028c8e
| ||||| 0x08028c8a 0326 movs r6, 3 ; 3
| ,======< 0x08028c8c 18e0 b 0x8028cc0
| |`-----> 0x08028c8e c9b2 uxtb r1, r1
| | |||| 0x08028c90 0029 cmp r1, 0
| |,=====< 0x08028c92 01d0 beq 0x8028c98
| |||||| 0x08028c94 0226 movs r6, 2 ; 2
| ,=======< 0x08028c96 13e0 b 0x8028cc0
| ||`-----> 0x08028c98 0026 movs r6, 0
| ||,=====< 0x08028c9a 11e0 b 0x8028cc0
| ||||||`-> 0x08028c9c c0b2 uxtb r0, r0
| |||||| 0x08028c9e 0028 cmp r0, 0
| ||||||,=< 0x08028ca0 01d0 beq 0x8028ca6
| ||||||| 0x08028ca2 0326 movs r6, 3 ; 3
| ========< 0x08028ca4 0ce0 b 0x8028cc0
| ||||||`-> 0x08028ca6 b4f97200 ldrsh.w r0, [r4, 0x72]
| |||||| 0x08028caa 8045 cmp r8, r0
| ||||||,=< 0x08028cac 07d1 bne 0x8028cbe
| ||||||| 0x08028cae 94f82600 ldrb.w r0, [r4, 0x26]
| ||||||| 0x08028cb2 c007 lsls r0, r0, 0x1f
| ========< 0x08028cb4 01d5 bpl 0x8028cba
| ||||||| 0x08028cb6 0226 movs r6, 2 ; 2
| ========< 0x08028cb8 02e0 b 0x8028cc0
| --------> 0x08028cba 0126 movs r6, 1 ; 1
| ========< 0x08028cbc 00e0 b 0x8028cc0
| ||||||`-> 0x08028cbe 0026 movs r6, 0
| ```-----> 0x08028cc0 14eb8600 adds.w r0, r4, r6, lsl 2
| ||| 0x08028cc4 006d ldr r0, [r0, 0x50]
| ||| 0x08028cc6 0af07ffa bl gfx_set_bg_color2
| ||| 0x08028cca 14eb8600 adds.w r0, r4, r6, lsl 2
| ||| 0x08028cce 006e ldr r0, [r0, 0x60]
| ||| 0x08028cd0 0af086fa bl gfx_set_fg_color2
| ||| 0x08028cd4 4146 mov r1, r8
| ||| 0x08028cd6 2000 movs r0, r4
| ||| 0x08028cd8 fff78ff9 bl menu_draw_sub_27ffa
| ||| 0x08028cdc 8146 mov sb, r0
| ||| 0x08028cde 0220 movs r0, 2 ; 2
| ||| 0x08028ce0 11f080ff bl menu_draw_sub_3abe4
| ||| 0x08028ce4 0af0d7fb bl gfx_33496
| ||| 0x08028ce8 2869 ldr r0, [r5, 0x10]
| ||| 0x08028cea 021d adds r2, r0, 4
| ||| 0x08028cec e868 ldr r0, [r5, 0xc]
| ||| 0x08028cee 10f11801 adds.w r1, r0, 0x18
| ||| 0x08028cf2 4846 mov r0, sb
| ||| 0x08028cf4 fef765fd bl gfx_drawtext7
| ||| 0x08028cf8 5ff00009 movs.w sb, 0
| ||| 0x08028cfc 2000 movs r0, r4
| ||| 0x08028cfe fff777f9 bl menu_draw_sub_27ff0
| ||| 0x08028d02 8246 mov sl, r0
| ||| 0x08028d04 baf1050f cmp.w sl, 5 ; 5
| |||,=< 0x08028d08 0fdb blt 0x8028d2a
| .-----> 0x08028d0a b9f1040f cmp.w sb, 4 ; 4
| ,======< 0x08028d0e 0eda bge 0x8028d2e
| |||||| 0x08028d10 2100 movs r1, r4
| |||||| 0x08028d12 4846 mov r0, sb
| |||||| 0x08028d14 fff70afd bl menu_draw_something
| |||||| 0x08028d18 19f10109 adds.w sb, sb, 1
| |`=====< 0x08028d1c f5e7 b 0x8028d0a
| |.-----> 0x08028d1e 2100 movs r1, r4
| |||||| 0x08028d20 4846 mov r0, sb
| |||||| 0x08028d22 fff703fd bl menu_draw_something
| |||||| 0x08028d26 19f10109 adds.w sb, sb, 1
| |||||`-> 0x08028d2a d145 cmp sb, sl
| |`=====< 0x08028d2c f7db blt 0x8028d1e
| `------> 0x08028d2e 94f87400 ldrb.w r0, [r4, 0x74]
| ||| 0x08028d32 4007 lsls r0, r0, 0x1d
| |||,=< 0x08028d34 1ed5 bpl 0x8028d74
| |||| 0x08028d36 b4f97200 ldrsh.w r0, [r4, 0x72]
| |||| 0x08028d3a 8045 cmp r8, r0
| ,=====< 0x08028d3c 1ad1 bne 0x8028d74
| ||||| 0x08028d3e e868 ldr r0, [r5, 0xc]
| ||||| 0x08028d40 adf80000 strh.w r0, [sp]
| ||||| 0x08028d44 2869 ldr r0, [r5, 0x10]
| ||||| 0x08028d46 adf80200 strh.w r0, [sp, 2]
| ||||| 0x08028d4a bdf80c00 ldrh.w r0, [sp, 0xc]
| ||||| 0x08028d4e adf80400 strh.w r0, [sp, 4]
| ||||| 0x08028d52 2869 ldr r0, [r5, 0x10]
| ||||| 0x08028d54 3818 adds r0, r7, r0
| ||||| 0x08028d56 401e subs r0, r0, 1
| ||||| 0x08028d58 adf80600 strh.w r0, [sp, 6]
| ||||| 0x08028d5c 7ff07f40 mvns r0, 0xff000000
| ||||| 0x08028d60 14eb8601 adds.w r1, r4, r6, lsl 2
| ||||| 0x08028d64 096d ldr r1, [r1, 0x50]
| ||||| 0x08028d66 401a subs r0, r0, r1
| ||||| 0x08028d68 0af03afa bl gfx_set_fg_color2
| ||||| 0x08028d6c 0021 movs r1, 0
| ||||| 0x08028d6e 00a8 add r0, sp, 0
| ||||| 0x08028d70 11f069ff bl menu_draw_sub_3ac46
| `---`-> 0x08028d74 0020 movs r0, 0
| |||,=< 0x08028d76 00e0 b 0x8028d7a
| |`---> 0x08028d78 0020 movs r0, 0
| `-``-> 0x08028d7a 04b0 add sp, 0x10
\ 0x08028d7c bde8f087 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}
/ (fcn) 54
| Caller: func_0dda8 menu.dispatch.greenkey menu.dispatcher.unkn1 menu_func_0f6a8 func_0db88
| menu_set_something ();
| 0x08027f90 f0b5 push {r4, r5, r6, r7, lr}
| 0x08027f92 85b0 sub sp, 0x14
| 0x08027f94 0400 movs r4, r0
| 0x08027f96 0800 movs r0, r1
| 0x08027f98 1600 movs r6, r2
| 0x08027f9a 1900 movs r1, r3
| 0x08027f9c 0a9a ldr r2, [sp, 0x28]
| 0x08027f9e 0b9b ldr r3, [sp, 0x2c]
| 0x08027fa0 0c9f ldr r7, [sp, 0x30]
| 0x08027fa2 0d9d ldr r5, [sp, 0x34]
| 0x08027fa4 dff820c0 ldr.w ip, [menu_draw_something3] ; [0x8027fcc:4]=0xb085b500
| 0x08027fa8 8cf80050 strb.w r5, [ip]
| 0x08027fac 0494 str r4, [sp, 0x10]
| 0x08027fae 0024 movs r4, 0
| 0x08027fb0 0394 str r4, [sp, 0xc]
| 0x08027fb2 0024 movs r4, 0
| 0x08027fb4 0294 str r4, [sp, 8]
| 0x08027fb6 0197 str r7, [sp, 4]
| 0x08027fb8 00b2 sxth r0, r0
| 0x08027fba 0090 str r0, [sp]
| 0x08027fbc 3000 movs r0, r6
| 0x08027fbe 01f07efa bl 0x80294be
| 0x08027fc2 05b0 add sp, 0x14
\ 0x08027fc4 f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) 36
| Caller: menu_draw_something4
| menu_draw_something3 ();
| 0x08027fcc 00b5 push {lr}
| 0x08027fce 85b0 sub sp, 0x14
| 0x08027fd0 0192 str r2, [sp, 4]
| 0x08027fd2 adf80000 strh.w r0, [sp]
| 0x08027fd6 0293 str r3, [sp, 8]
| 0x08027fd8 c86a ldr r0, [r1, 0x2c]
| 0x08027fda 0028 cmp r0, 0
| ,=< 0x08027fdc 03d0 beq 0x8027fe6
| | 0x08027fde 00a8 add r0, sp, 0
| | 0x08027fe0 c96a ldr r1, [r1, 0x2c]
| | 0x08027fe2 8847 blx r1
| ,==< 0x08027fe4 02e0 b 0x8027fec
| |`-> 0x08027fe6 00a8 add r0, sp, 0
| | 0x08027fe8 00f0fefd bl menu_draw_something2
| `--> 0x08027fec 05b0 add sp, 0x14
\ 0x08027fee 00bd pop {pc}
/ (fcn) 84
| Caller: menu_draw_something5
| menu_draw_something4 ();
| 0x0802802a 2de9f843 push.w {r3, r4, r5, r6, r7, r8, sb, lr}
| 0x0802802e 0400 movs r4, r0
| 0x08028030 0d00 movs r5, r1
| 0x08028032 1600 movs r6, r2
| 0x08028034 5ff00008 movs.w r8, 0
| 0x08028038 3100 movs r1, r6
| 0x0802803a 15f12800 adds.w r0, r5, 0x28
| 0x0802803e 0ff074fe bl menu_draw_sub_37d2a
| 0x08028042 0700 movs r7, r0
| 0x08028044 002f cmp r7, 0
| ,=< 0x08028046 01d0 beq 0x802804c
| | 0x08028048 b7f80080 ldrh.w r8, [r7]
| `-> 0x0802804c b8f1000f cmp.w r8, 0
| ,=< 0x08028050 0ed1 bne 0x8028070
| | 0x08028052 a86c ldr r0, [r5, 0x48]
| | 0x08028054 f9f70efc bl gfx_select_font
| | 0x08028058 8146 mov sb, r0
| | 0x0802805a 3300 movs r3, r6
| | 0x0802805c 0122 movs r2, 1 ; 1
| | 0x0802805e 2900 movs r1, r5
| | 0x08028060 2000 movs r0, r4
| | 0x08028062 00b2 sxth r0, r0
| | 0x08028064 fff7b2ff bl menu_draw_something3
| | 0x08028068 8046 mov r8, r0
| | 0x0802806a 4846 mov r0, sb
| | 0x0802806c f9f702fc bl gfx_select_font
| `-> 0x08028070 002f cmp r7, 0
| ,=< 0x08028072 01d0 beq 0x8028078
| | 0x08028074 a7f80080 strh.w r8, [r7]
| `-> 0x08028078 4046 mov r0, r8
\ 0x0802807a bde8f283 pop.w {r1, r4, r5, r6, r7, r8, sb, pc}
/ (fcn) 62
| menu_draw_something5 ();
| 0x080280d2 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x080280d6 0400 movs r4, r0
| 0x080280d8 5ff00008 movs.w r8, 0
| 0x080280dc 2000 movs r0, r4
| 0x080280de 00b2 sxth r0, r0
| 0x080280e0 0af0c0fc bl gfx_draw_sub_32a64
| 0x080280e4 0500 movs r5, r0
| 0x080280e6 2800 movs r0, r5
| 0x080280e8 fff782ff bl menu_draw_sub_27ff0
| 0x080280ec 0700 movs r7, r0
| 0x080280ee 0026 movs r6, 0
| ,=< 0x080280f0 09e0 b 0x8028106
| .--> 0x080280f2 3200 movs r2, r6
| || 0x080280f4 2900 movs r1, r5
| || 0x080280f6 2000 movs r0, r4
| || 0x080280f8 00b2 sxth r0, r0
| || 0x080280fa fff796ff bl menu_draw_something4
| || 0x080280fe 8045 cmp r8, r0
| ,===< 0x08028100 00da bge 0x8028104
| ||| 0x08028102 8046 mov r8, r0
| `---> 0x08028104 761c adds r6, r6, 1
| |`-> 0x08028106 be42 cmp r6, r7
| `==< 0x08028108 f3db blt 0x80280f2
| 0x0802810a 4046 mov r0, r8
\ 0x0802810c bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) 16
| Caller: menu_32a7c
| menu_328ec ();
| 0x080328ec 80b5 push {r7, lr}
| 0x080328ee 7f48 ldr r0, [0x08032aee] ; [0x8032aec:4]=0x2001e876
| 0x080328f0 0078 ldrb r0, [r0]
| 0x080328f2 0028 cmp r0, 0
| ,=< 0x080328f4 01d1 bne 0x80328fa
| | 0x080328f6 00f08bf8 bl func_32a10
\ `-> 0x080328fa 01bd pop {r0, pc}
/ (fcn) gfx_draw_sub_32a64 24
| Caller: func_37ab8 func_26f64 gfx_1c4c2 gfx_32d8c func_486be gfx_32d60
| gfx_1c7bc func_48832 func_4bc80 func_523d8 gfx_1c2a0 func_4870c
| menu_37e0a func_27e6c func_54188 func_37a9e gfx_1c840 func_48934
| func_4841e func_4851e gfx_1c45e gfx_1c9d4 gfx_1c63c func_542d8
| gfx_1c378 func_4855c func_37b0a func_3b5a0 gfx_bmp_sub1 gfx_4be40
| gfx_1d238 menu_draw_something5 func_484a8 func_2aac0 func_4bb2c func_2b726
| gfx_bmp_s1_1 menu_draw_something2 func_488dc gfx_1c406 gfx_1caf2 func_523a8
| func_4c344 func_4c148 func_5414c gfx_1c58a func_37892 gfx_1c6d4
| gfx_1c86c draw_some_bitmap_and_text menu_draw_sub_37d2a gfx_4bd40 func_37b74
| menu_draw_sub_37d02 func_48908 gfx_1c758 gfx_1c530 func_52596 gfx_4bac4
| func_541ae func_4c304 func_36f9a func_3b42a func_4850a func_44846
| func_3b5d6 func_37a74 func_525f4 gfx_1c4fa gfx_1c1fe func_484f0
| gfx_1c48a func_484d6 func_48654 gfx_4be14 func_1d118 gfx_1caa4
| gfx_bmp_s1_5 func_48990 func_4c0ea func_37bb8
| gfx_draw_sub_32a64 ();
| 0x08032a64 00b2 sxth r0, r0
| 0x08032a66 0028 cmp r0, 0
| ,=< 0x08032a68 01d1 bne 0x8032a6e
| | 0x08032a6a 0020 movs r0, 0
| ,==< 0x08032a6c 05e0 b 0x8032a7a
| |`-> 0x08032a6e 00b2 sxth r0, r0
| | 0x08032a70 1b49 ldr r1, [0x08032ae0] ; [0x8032ae0:4]=0x10003dc0
| | 0x08032a72 31f93000 ldrsh.w r0, [r1, r0, lsl 3] ; ARM brain teaser. some table access ?
| | 0x08032a76 1c49 ldr r1, [0x08032aea] ; [0x8032ae8:4]=0x20004ae8
| | 0x08032a78 4018 adds r0, r0, r1
\ `--> 0x08032a7a 7047 bx lr
/ (fcn) 98
| Caller: func_4855c
| menu_32a7c ();
| 0x08032a7c 10b5 push {r4, lr}
| 0x08032a7e 0024 movs r4, 0
| 0x08032a80 fff734ff bl menu_328ec
| 0x08032a84 0020 movs r0, 0
| ,=< 0x08032a86 11e0 b 0x8032aac
| .--> 0x08032a88 154a ldr r2, [0x08032ae0] ; [0x8032ae0:4]=0x10003dc0
| || 0x08032a8a 32f83120 ldrh.w r2, [r2, r1, lsl 3]
| || 0x08032a8e 144b ldr r3, [0x08032ae2] ; [0x8032ae0:4]=0x10003dc0
| || 0x08032a90 33f83030 ldrh.w r3, [r3, r0, lsl 3]
| || 0x08032a94 d21a subs r2, r2, r3
| || 0x08032a96 124b ldr r3, [0x08032ae2] ; [0x8032ae0:4]=0x10003dc0
| || 0x08032a98 13ebc000 adds.w r0, r3, r0, lsl 3
| || 0x08032a9c 4088 ldrh r0, [r0, 2]
| || 0x08032a9e 101a subs r0, r2, r0
| || 0x08032aa0 24b2 sxth r4, r4
| || 0x08032aa2 00b2 sxth r0, r0
| || 0x08032aa4 8442 cmp r4, r0
| ,===< 0x08032aa6 00da bge 0x8032aaa
| ||| 0x08032aa8 0400 movs r4, r0
| `---> 0x08032aaa 0800 movs r0, r1
| |`-> 0x08032aac 0c49 ldr r1, [0x08032ae0] ; [0x8032ae0:4]=0x10003dc0
| | 0x08032aae 11ebc001 adds.w r1, r1, r0, lsl 3
| | 0x08032ab2 8988 ldrh r1, [r1, 4]
| | 0x08032ab4 0029 cmp r1, 0
| `==< 0x08032ab6 e7d1 bne 0x8032a88
| 0x08032ab8 45f6b471 movw r1, 0x5fb4
| 0x08032abc 084a ldr r2, [0x08032ae0] ; [0x8032ae0:4]=0x10003dc0
| 0x08032abe 32f83020 ldrh.w r2, [r2, r0, lsl 3]
| 0x08032ac2 891a subs r1, r1, r2
| 0x08032ac4 064a ldr r2, [0x08032ae0] ; [0x8032ae0:4]=0x10003dc0
| 0x08032ac6 12ebc000 adds.w r0, r2, r0, lsl 3
| 0x08032aca 4088 ldrh r0, [r0, 2]
| 0x08032acc 081a subs r0, r1, r0
| 0x08032ace 24b2 sxth r4, r4
| 0x08032ad0 00b2 sxth r0, r0
| 0x08032ad2 8442 cmp r4, r0
| ,=< 0x08032ad4 00da bge 0x8032ad8
| | 0x08032ad6 0400 movs r4, r0
| `-> 0x08032ad8 2000 movs r0, r4
| 0x08032ada 00b2 sxth r0, r0
\ 0x08032adc 10bd pop {r4, pc}
/ (fcn) 10
| Caller: menu_draw_something5 func_2aac0 menu_draw_something2
| menu_draw_sub_27ff0 ();
| 0x08027ff0 80b5 push {r7, lr}
| 0x08027ff2 2830 adds r0, 0x28
| 0x08027ff4 0ff034fe bl func_37c60
\ 0x08027ff8 02bd pop {r1, pc}
/ (fcn) 22
| Caller: menu_draw_something2
| menu_draw_sub_27ffa ();
| 0x08027ffa 10b5 push {r4, lr}
| 0x08027ffc 0024 movs r4, 0
| 0x08027ffe 2830 adds r0, 0x28
| 0x08028000 0ff093fe bl menu_draw_sub_37d2a
| 0x08028004 0028 cmp r0, 0
| ,=< 0x08028006 01d0 beq 0x802800c
| | 0x08028008 00f20504 addw r4, r0, 5
| `-> 0x0802800c 2000 movs r0, r4
\ 0x0802800e 10bd pop {r4, pc}
/ (fcn) handle_keycode_F_4171 1436
| Caller: func_0c7e8
| handle_keycode_F_4171 ();
| 0x0801eb00 38b5 push {r3, r4, r5, lr}
| 0x0801eb02 0024 movs r4, 0
| 0x0801eb04 c0b2 uxtb r0, r0
| 0x0801eb06 f128 cmp r0, 0xf1 ; 241
| ,=< 0x0801eb08 18d3 blo 0x801eb3c
| | 0x0801eb0a dff8bc05 ldr.w r0, [0x0801f0ce] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| | 0x0801eb0e 0078 ldrb r0, [r0]
| | 0x0801eb10 0128 cmp r0, 1 ; 1
| ,==< 0x0801eb12 10d3 blo 0x801eb36
| || 0x0801eb14 dff8bc05 ldr.w r0, [0x0801f0d8] ; [0x801f0d8:4]=0x2001e700 menu_memory_poi
| || 0x0801eb18 0078 ldrb r0, [r0]
| || 0x0801eb1a 10f00f00 ands r0, r0, 0xf
| || 0x0801eb1e 0328 cmp r0, 3 ; 3
| ,===< 0x0801eb20 05d0 beq 0x801eb2e
| ||| 0x0801eb22 dff8b005 ldr.w r0, [0x0801f0da] ; [0x801f0d8:4]=0x2001e700 menu_memory_poi
| ||| 0x0801eb26 0078 ldrb r0, [r0]
| ||| 0x0801eb28 0f21 movs r1, 0xf ; 15
| ||| 0x0801eb2a 0842 tst r0, r1
| ,====< 0x0801eb2c 03d1 bne 0x801eb36
| |`---> 0x0801eb2e dff89805 ldr.w r0, [0x0801f0ce] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| | || 0x0801eb32 0021 movs r1, 0
| | || 0x0801eb34 0170 strb r1, [r0]
| `-`--> 0x0801eb36 2000 movs r0, r4
| | 0x0801eb38 c0b2 uxtb r0, r0
| ,==< 0x0801eb3a aee2 b 0x801f09a
| |`-> 0x0801eb3c c0b2 uxtb r0, r0
| | 0x0801eb3e 0100 movs r1, r0
| | 0x0801eb40 0b29 cmp r1, 0xb ; 11
| |,=< 0x0801eb42 08d0 beq 0x801eb56
| || 0x0801eb44 0c29 cmp r1, 0xc ; 12
| ,===< 0x0801eb46 7ad0 beq 0x801ec3e
| ||| 0x0801eb48 0e29 cmp r1, 0xe ; 14
| ,====< 0x0801eb4a 00f0ec80 beq.w 0x801ed26
| |||| 0x0801eb4e 0f29 cmp r1, 0xf ; 15
| ,=====< 0x0801eb50 00f0ea80 beq.w 0x801ed28
| ,======< 0x0801eb54 e9e0 b 0x801ed2a
| |||||`-> 0x0801eb56 dff88005 ldr.w r0, [0x0801f0de] ; [0x801f0dc:4]=0x2001e6ec
| ||||| 0x0801eb5a 0068 ldr r0, [r0]
| ||||| 0x0801eb5c 0068 ldr r0, [r0]
| ||||| 0x0801eb5e dff87c15 ldr.w r1, [0x0801f0e2] ; [0x801f0e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||| 0x0801eb62 0968 ldr r1, [r1]
| ||||| 0x0801eb64 dff87825 ldr.w r2, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||| 0x0801eb68 12eb8101 adds.w r1, r2, r1, lsl 2
| ||||| 0x0801eb6c d1f8f812 ldr.w r1, [r1, 0x2f8]
| ||||| 0x0801eb70 8842 cmp r0, r1
| |||||,=< 0x0801eb72 2ad1 bne 0x801ebca
| |||||| 0x0801eb74 dff86c05 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| |||||| 0x0801eb78 0078 ldrb r0, [r0]
| |||||| 0x0801eb7a 0028 cmp r0, 0
| ,=======< 0x0801eb7c 0ad4 bmi 0x801eb94
| ||||||| 0x0801eb7e dff86405 ldr.w r0, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801eb82 0078 ldrb r0, [r0]
| ||||||| 0x0801eb84 401e subs r0, r0, 1
| ||||||| 0x0801eb86 dff85c15 ldr.w r1, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801eb8a 0870 strb r0, [r1]
| ||||||| 0x0801eb8c dff83805 ldr.w r0, [0x0801f0cc] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| ||||||| 0x0801eb90 0021 movs r1, 0
| ||||||| 0x0801eb92 0170 strb r1, [r0]
| `-------> 0x0801eb94 dff84c05 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| |||||| 0x0801eb98 0078 ldrb r0, [r0]
| |||||| 0x0801eb9a 0228 cmp r0, 2 ; 2
| ,=======< 0x0801eb9c 04d0 beq 0x801eba8
| ||||||| 0x0801eb9e dff84405 ldr.w r0, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801eba2 0078 ldrb r0, [r0]
| ||||||| 0x0801eba4 0528 cmp r0, 5 ; 5
| ========< 0x0801eba6 06d1 bne 0x801ebb6
| `-------> 0x0801eba8 dff83805 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| |||||| 0x0801ebac 0078 ldrb r0, [r0]
| |||||| 0x0801ebae 401e subs r0, r0, 1
| |||||| 0x0801ebb0 dff83015 ldr.w r1, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| |||||| 0x0801ebb4 0870 strb r0, [r1]
| --------> 0x0801ebb6 dff82c05 ldr.w r0, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| |||||| 0x0801ebba 0078 ldrb r0, [r0]
| |||||| 0x0801ebbc ff28 cmp r0, 0xff ; 255
| ,=======< 0x0801ebbe 3dd1 bne 0x801ec3c
| ||||||| 0x0801ebc0 dff82005 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ebc4 0721 movs r1, 7 ; 7
| ||||||| 0x0801ebc6 0170 strb r1, [r0]
| ========< 0x0801ebc8 38e0 b 0x801ec3c
| ||||||`-> 0x0801ebca dff80c05 ldr.w r0, [0x0801f0de] ; [0x801f0dc:4]=0x2001e6ec
| |||||| 0x0801ebce 0068 ldr r0, [r0]
| |||||| 0x0801ebd0 0068 ldr r0, [r0]
| |||||| 0x0801ebd2 dff80815 ldr.w r1, [0x0801f0e2] ; [0x801f0e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| |||||| 0x0801ebd6 0968 ldr r1, [r1]
| |||||| 0x0801ebd8 dff80425 ldr.w r2, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| |||||| 0x0801ebdc 12eb8101 adds.w r1, r2, r1, lsl 2
| |||||| 0x0801ebe0 d1f80413 ldr.w r1, [r1, 0x304]
| |||||| 0x0801ebe4 8842 cmp r0, r1
| ||||||,=< 0x0801ebe6 29d1 bne 0x801ec3c
| ||||||| 0x0801ebe8 dff8f804 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ebec 0078 ldrb r0, [r0]
| ||||||| 0x0801ebee 0228 cmp r0, 2 ; 2
| ========< 0x0801ebf0 0ad3 blo 0x801ec08
| ||||||| 0x0801ebf2 dff8f004 ldr.w r0, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ebf6 0078 ldrb r0, [r0]
| ||||||| 0x0801ebf8 401e subs r0, r0, 1
| ||||||| 0x0801ebfa dff8e814 ldr.w r1, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ebfe 0870 strb r0, [r1]
| ||||||| 0x0801ec00 dff8c404 ldr.w r0, [0x0801f0cc] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| ||||||| 0x0801ec04 0021 movs r1, 0
| ||||||| 0x0801ec06 0170 strb r1, [r0]
| --------> 0x0801ec08 dff8d804 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ec0c 0078 ldrb r0, [r0]
| ||||||| 0x0801ec0e 0428 cmp r0, 4 ; 4
| ========< 0x0801ec10 04d0 beq 0x801ec1c
| ||||||| 0x0801ec12 dff8d004 ldr.w r0, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ec16 0078 ldrb r0, [r0]
| ||||||| 0x0801ec18 0728 cmp r0, 7 ; 7
| ========< 0x0801ec1a 06d1 bne 0x801ec2a
| --------> 0x0801ec1c dff8c404 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ec20 0078 ldrb r0, [r0]
| ||||||| 0x0801ec22 401e subs r0, r0, 1
| ||||||| 0x0801ec24 dff8bc14 ldr.w r1, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ec28 0870 strb r0, [r1]
| --------> 0x0801ec2a dff8b804 ldr.w r0, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ec2e 0078 ldrb r0, [r0]
| ||||||| 0x0801ec30 0128 cmp r0, 1 ; 1
| ========< 0x0801ec32 03d1 bne 0x801ec3c
| ||||||| 0x0801ec34 dff8ac04 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ec38 0921 movs r1, 9 ; 9
| ||||||| 0x0801ec3a 0170 strb r1, [r0]
| `-----`-> 0x0801ec3c dee1 b 0x801effc
| |||`---> 0x0801ec3e dff89804 ldr.w r0, [0x0801f0de] ; [0x801f0dc:4]=0x2001e6ec
| ||| | 0x0801ec42 0068 ldr r0, [r0]
| ||| | 0x0801ec44 0068 ldr r0, [r0]
| ||| | 0x0801ec46 dff89414 ldr.w r1, [0x0801f0e2] ; [0x801f0e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| | 0x0801ec4a 0968 ldr r1, [r1]
| ||| | 0x0801ec4c dff89024 ldr.w r2, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||| | 0x0801ec50 12eb8101 adds.w r1, r2, r1, lsl 2
| ||| | 0x0801ec54 d1f8f812 ldr.w r1, [r1, 0x2f8]
| ||| | 0x0801ec58 8842 cmp r0, r1
| ||| |,=< 0x0801ec5a 2ad1 bne 0x801ecb2
| ||| || 0x0801ec5c dff88404 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||| || 0x0801ec60 0078 ldrb r0, [r0]
| ||| || 0x0801ec62 0828 cmp r0, 8 ; 8
| |||,===< 0x0801ec64 0ad2 bhs 0x801ec7c
| |||||| 0x0801ec66 dff87c04 ldr.w r0, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| |||||| 0x0801ec6a 0078 ldrb r0, [r0]
| |||||| 0x0801ec6c 401c adds r0, r0, 1
| |||||| 0x0801ec6e dff87414 ldr.w r1, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| |||||| 0x0801ec72 0870 strb r0, [r1]
| |||||| 0x0801ec74 dff85004 ldr.w r0, [0x0801f0cc] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| |||||| 0x0801ec78 0021 movs r1, 0
| |||||| 0x0801ec7a 0170 strb r1, [r0]
| |||`---> 0x0801ec7c dff86404 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||| || 0x0801ec80 0078 ldrb r0, [r0]
| ||| || 0x0801ec82 0228 cmp r0, 2 ; 2
| |||,===< 0x0801ec84 04d0 beq 0x801ec90
| |||||| 0x0801ec86 dff85c04 ldr.w r0, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| |||||| 0x0801ec8a 0078 ldrb r0, [r0]
| |||||| 0x0801ec8c 0528 cmp r0, 5 ; 5
| ,=======< 0x0801ec8e 06d1 bne 0x801ec9e
| ||||`---> 0x0801ec90 dff85004 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| |||| || 0x0801ec94 0078 ldrb r0, [r0]
| |||| || 0x0801ec96 401c adds r0, r0, 1
| |||| || 0x0801ec98 dff84814 ldr.w r1, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| |||| || 0x0801ec9c 0870 strb r0, [r1]
| `-------> 0x0801ec9e dff84404 ldr.w r0, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| ||| || 0x0801eca2 0078 ldrb r0, [r0]
| ||| || 0x0801eca4 0828 cmp r0, 8 ; 8
| |||,===< 0x0801eca6 3dd1 bne 0x801ed24
| |||||| 0x0801eca8 dff83804 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| |||||| 0x0801ecac 0021 movs r1, 0
| |||||| 0x0801ecae 0170 strb r1, [r0]
| ,=======< 0x0801ecb0 38e0 b 0x801ed24
| ||||||`-> 0x0801ecb2 dff82404 ldr.w r0, [0x0801f0de] ; [0x801f0dc:4]=0x2001e6ec
| |||||| 0x0801ecb6 0068 ldr r0, [r0]
| |||||| 0x0801ecb8 0068 ldr r0, [r0]
| |||||| 0x0801ecba dff82014 ldr.w r1, [0x0801f0e2] ; [0x801f0e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| |||||| 0x0801ecbe 0968 ldr r1, [r1]
| |||||| 0x0801ecc0 dff81c24 ldr.w r2, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| |||||| 0x0801ecc4 12eb8101 adds.w r1, r2, r1, lsl 2
| |||||| 0x0801ecc8 d1f80413 ldr.w r1, [r1, 0x304]
| |||||| 0x0801eccc 8842 cmp r0, r1
| ||||||,=< 0x0801ecce 29d1 bne 0x801ed24
| ||||||| 0x0801ecd0 dff81004 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ecd4 0078 ldrb r0, [r0]
| ||||||| 0x0801ecd6 0a28 cmp r0, 0xa ; 10
| ========< 0x0801ecd8 0ad2 bhs 0x801ecf0
| ||||||| 0x0801ecda dff80804 ldr.w r0, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ecde 0078 ldrb r0, [r0]
| ||||||| 0x0801ece0 401c adds r0, r0, 1
| ||||||| 0x0801ece2 dff80014 ldr.w r1, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ece6 0870 strb r0, [r1]
| ||||||| 0x0801ece8 dff8dc03 ldr.w r0, [0x0801f0cc] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| ||||||| 0x0801ecec 0021 movs r1, 0
| ||||||| 0x0801ecee 0170 strb r1, [r0]
| --------> 0x0801ecf0 dff8f003 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ecf4 0078 ldrb r0, [r0]
| ||||||| 0x0801ecf6 0428 cmp r0, 4 ; 4
| ========< 0x0801ecf8 04d0 beq 0x801ed04
| ||||||| 0x0801ecfa dff8e803 ldr.w r0, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ecfe 0078 ldrb r0, [r0]
| ||||||| 0x0801ed00 0728 cmp r0, 7 ; 7
| ========< 0x0801ed02 06d1 bne 0x801ed12
| --------> 0x0801ed04 dff8dc03 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ed08 0078 ldrb r0, [r0]
| ||||||| 0x0801ed0a 401c adds r0, r0, 1
| ||||||| 0x0801ed0c dff8d413 ldr.w r1, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ed10 0870 strb r0, [r1]
| --------> 0x0801ed12 dff8d003 ldr.w r0, [0x0801f0ea] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ed16 0078 ldrb r0, [r0]
| ||||||| 0x0801ed18 0a28 cmp r0, 0xa ; 10
| ========< 0x0801ed1a 03d1 bne 0x801ed24
| ||||||| 0x0801ed1c dff8c403 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ed20 0221 movs r1, 2 ; 2
| ||||||| 0x0801ed22 0170 strb r1, [r0]
| `---`-`-> 0x0801ed24 6ae1 b 0x801effc
| ||`--,=< 0x0801ed26 69e1 b 0x801effc
| |`-,===< 0x0801ed28 68e1 b 0x801effc
| `------> 0x0801ed2a dff8ac13 ldr.w r1, [0x0801f0de] ; [0x801f0dc:4]=0x2001e6ec
| ||| 0x0801ed2e 0968 ldr r1, [r1]
| ||| 0x0801ed30 0968 ldr r1, [r1]
| ||| 0x0801ed32 dff8a823 ldr.w r2, [0x0801f0e2] ; [0x801f0e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x0801ed36 1268 ldr r2, [r2]
| ||| 0x0801ed38 dff8a433 ldr.w r3, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||| 0x0801ed3c 13eb8202 adds.w r2, r3, r2, lsl 2
| ||| 0x0801ed40 d2f8f822 ldr.w r2, [r2, 0x2f8]
| ||| 0x0801ed44 9142 cmp r1, r2
| ,====< 0x0801ed46 40f0ef80 bne.w 0x801ef28
| |||| 0x0801ed4a c0b2 uxtb r0, r0
| |||| 0x0801ed4c 0a28 cmp r0, 0xa ; 10
| ,=====< 0x0801ed4e 80f05581 bhs.w 0x801effc
| ||||| 0x0801ed52 dff87413 ldr.w r1, [0x0801f0ce] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| ||||| 0x0801ed56 0978 ldrb r1, [r1]
| ||||| 0x0801ed58 0029 cmp r1, 0
| ,======< 0x0801ed5a 0ad1 bne 0x801ed72
| |||||| 0x0801ed5c dff88413 ldr.w r1, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| |||||| 0x0801ed60 0978 ldrb r1, [r1]
| |||||| 0x0801ed62 491c adds r1, r1, 1
| |||||| 0x0801ed64 dff87c23 ldr.w r2, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| |||||| 0x0801ed68 1170 strb r1, [r2]
| |||||| 0x0801ed6a dff85c13 ldr.w r1, [0x0801f0ce] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| |||||| 0x0801ed6e 0022 movs r2, 0
| |||||| 0x0801ed70 0a70 strb r2, [r1]
| `------> 0x0801ed72 c0b2 uxtb r0, r0
| ||||| 0x0801ed74 dff87013 ldr.w r1, [0x0801f0ec] ; [0x801f0ec:4]=0x809772c
| ||||| 0x0801ed78 455c ldrb r5, [r0, r1]
| ||||| 0x0801ed7a dff85813 ldr.w r1, [0x0801f0da] ; [0x801f0d8:4]=0x2001e700 menu_memory_poi
| ||||| 0x0801ed7e 0978 ldrb r1, [r1]
| ||||| 0x0801ed80 11f00f01 ands r1, r1, 0xf
| ||||| 0x0801ed84 0329 cmp r1, 3 ; 3
| ,======< 0x0801ed86 06d0 beq 0x801ed96
| |||||| 0x0801ed88 dff84813 ldr.w r1, [0x0801f0d8] ; [0x801f0d8:4]=0x2001e700 menu_memory_poi
| |||||| 0x0801ed8c 0978 ldrb r1, [r1]
| |||||| 0x0801ed8e 0f22 movs r2, 0xf ; 15
| |||||| 0x0801ed90 1142 tst r1, r2
| ,=======< 0x0801ed92 40f0ba80 bne.w 0x801ef0a
| |`------> 0x0801ed96 c0b2 uxtb r0, r0
| | ||||| 0x0801ed98 dff84c13 ldr.w r1, [0x0801f0ec] ; [0x801f0ec:4]=0x809772c
| | ||||| 0x0801ed9c 4018 adds r0, r0, r1
| | ||||| 0x0801ed9e 807f ldrb r0, [r0, 0x1e]
| | ||||| 0x0801eda0 dff84013 ldr.w r1, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| | ||||| 0x0801eda4 0978 ldrb r1, [r1]
| | ||||| 0x0801eda6 dff8642d ldr.w r2, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| | ||||| 0x0801edaa 1268 ldr r2, [r2]
| | ||||| 0x0801edac 12eb4101 adds.w r1, r2, r1, lsl 1
| | ||||| 0x0801edb0 c0b2 uxtb r0, r0
| | ||||| 0x0801edb2 dff83823 ldr.w r2, [0x0801f0f2] ; [0x801f0f0:4]=0xf8dfb510
| | ||||| 0x0801edb6 805c ldrb r0, [r0, r2]
| | ||||| 0x0801edb8 21f8020c strh r0, [r1, -0x2]
| | ||||| 0x0801edbc dff82403 ldr.w r0, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| | ||||| 0x0801edc0 0078 ldrb r0, [r0]
| | ||||| 0x0801edc2 0128 cmp r0, 1 ; 1
| |,======< 0x0801edc4 2cd1 bne 0x801ee20
| ||||||| 0x0801edc6 c748 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801edc8 0078 ldrb r0, [r0]
| ||||||| 0x0801edca dff8401d ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801edce 0968 ldr r1, [r1]
| ||||||| 0x0801edd0 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801edd4 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801edd8 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x0801edda 21d3 blo 0x801ee20
| ||||||| 0x0801eddc c148 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801edde 0078 ldrb r0, [r0]
| ||||||| 0x0801ede0 b849 ldr r1, [0x0801f0c4] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801ede2 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| ||||||| 0x0801ede6 3428 cmp r0, 0x34 ; '4' ; 52
| ========< 0x0801ede8 0ad2 bhs 0x801ee00
| ||||||| 0x0801edea be48 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801edec 0078 ldrb r0, [r0]
| ||||||| 0x0801edee dff81c1d ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801edf2 0968 ldr r1, [r1]
| ||||||| 0x0801edf4 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801edf8 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801edfc 3328 cmp r0, 0x33 ; '3' ; 51
| ========< 0x0801edfe 05d3 blo 0x801ee0c
| --------> 0x0801ee00 b848 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801ee02 0078 ldrb r0, [r0]
| ||||||| 0x0801ee04 af49 ldr r1, [0x0801f0c4] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801ee06 3322 movs r2, 0x33 ; '3' ; 51
| ||||||| 0x0801ee08 21f81020 strh.w r2, [r1, r0, lsl 1]
| --------> 0x0801ee0c b548 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801ee0e 0078 ldrb r0, [r0]
| ||||||| 0x0801ee10 dff8f81c ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801ee14 0968 ldr r1, [r1]
| ||||||| 0x0801ee16 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801ee1a 3221 movs r1, 0x32 ; '2' ; 50
| ||||||| 0x0801ee1c 20f8021c strh r1, [r0, -0x2]
| -`------> 0x0801ee20 b048 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| | ||||| 0x0801ee22 0078 ldrb r0, [r0]
| | ||||| 0x0801ee24 0228 cmp r0, 2 ; 2
| |,======< 0x0801ee26 1dd1 bne 0x801ee64
| ||||||| 0x0801ee28 ae48 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801ee2a 0078 ldrb r0, [r0]
| ||||||| 0x0801ee2c a549 ldr r1, [0x0801f0c4] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801ee2e 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801ee32 30f8040c ldrh r0, [r0, -0x4]
| ||||||| 0x0801ee36 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x0801ee38 14d1 bne 0x801ee64
| ||||||| 0x0801ee3a aa48 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801ee3c 0078 ldrb r0, [r0]
| ||||||| 0x0801ee3e dff8cc1c ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801ee42 0968 ldr r1, [r1]
| ||||||| 0x0801ee44 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801ee48 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801ee4c 3428 cmp r0, 0x34 ; '4' ; 52
| ========< 0x0801ee4e 09d3 blo 0x801ee64
| ||||||| 0x0801ee50 a448 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801ee52 0078 ldrb r0, [r0]
| ||||||| 0x0801ee54 dff8b41c ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801ee58 0968 ldr r1, [r1]
| ||||||| 0x0801ee5a 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801ee5e 3321 movs r1, 0x33 ; '3' ; 51
| ||||||| 0x0801ee60 20f8021c strh r1, [r0, -0x2]
| -`------> 0x0801ee64 9f48 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| | ||||| 0x0801ee66 0078 ldrb r0, [r0]
| | ||||| 0x0801ee68 0428 cmp r0, 4 ; 4
| |,======< 0x0801ee6a 14d1 bne 0x801ee96
| ||||||| 0x0801ee6c 9d48 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801ee6e 0078 ldrb r0, [r0]
| ||||||| 0x0801ee70 dff8981c ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801ee74 0968 ldr r1, [r1]
| ||||||| 0x0801ee76 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801ee7a 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801ee7e 3628 cmp r0, 0x36 ; '6' ; 54
| ========< 0x0801ee80 09d3 blo 0x801ee96
| ||||||| 0x0801ee82 9848 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801ee84 0078 ldrb r0, [r0]
| ||||||| 0x0801ee86 dff8841c ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801ee8a 0968 ldr r1, [r1]
| ||||||| 0x0801ee8c 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801ee90 3521 movs r1, 0x35 ; '5' ; 53
| ||||||| 0x0801ee92 20f8021c strh r1, [r0, -0x2]
| -`------> 0x0801ee96 9348 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| | ||||| 0x0801ee98 0078 ldrb r0, [r0]
| | ||||| 0x0801ee9a 0728 cmp r0, 7 ; 7
| |,======< 0x0801ee9c 14d1 bne 0x801eec8
| ||||||| 0x0801ee9e 9148 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801eea0 0078 ldrb r0, [r0]
| ||||||| 0x0801eea2 dff8681c ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801eea6 0968 ldr r1, [r1]
| ||||||| 0x0801eea8 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801eeac 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801eeb0 3628 cmp r0, 0x36 ; '6' ; 54
| ========< 0x0801eeb2 09d3 blo 0x801eec8
| ||||||| 0x0801eeb4 8b48 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801eeb6 0078 ldrb r0, [r0]
| ||||||| 0x0801eeb8 dff8501c ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801eebc 0968 ldr r1, [r1]
| ||||||| 0x0801eebe 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801eec2 3521 movs r1, 0x35 ; '5' ; 53
| ||||||| 0x0801eec4 20f8021c strh r1, [r0, -0x2]
| -`------> 0x0801eec8 8648 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| | ||||| 0x0801eeca 0078 ldrb r0, [r0]
| | ||||| 0x0801eecc 0328 cmp r0, 3 ; 3
| |,======< 0x0801eece 03d0 beq 0x801eed8
| ||||||| 0x0801eed0 8448 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801eed2 0078 ldrb r0, [r0]
| ||||||| 0x0801eed4 0628 cmp r0, 6 ; 6
| ========< 0x0801eed6 08d1 bne 0x801eeea
| |`------> 0x0801eed8 8248 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| | ||||| 0x0801eeda 0078 ldrb r0, [r0]
| | ||||| 0x0801eedc dff82c1c ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| | ||||| 0x0801eee0 0968 ldr r1, [r1]
| | ||||| 0x0801eee2 3a22 movs r2, 0x3a ; ':' ; 58
| | ||||| 0x0801eee4 21f81020 strh.w r2, [r1, r0, lsl 1]
| |,======< 0x0801eee8 0fe0 b 0x801ef0a
| --------> 0x0801eeea 7e48 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801eeec 0078 ldrb r0, [r0]
| ||||||| 0x0801eeee dff81c1c ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801eef2 0968 ldr r1, [r1]
| ||||||| 0x0801eef4 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801eef8 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801eefc 7949 ldr r1, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801eefe 0978 ldrb r1, [r1]
| ||||||| 0x0801ef00 704a ldr r2, [0x0801f0c4] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801ef02 12eb4101 adds.w r1, r2, r1, lsl 1
| ||||||| 0x0801ef06 21f8020c strh r0, [r1, -0x2]
| ``------> 0x0801ef0a 7648 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||| 0x0801ef0c 0078 ldrb r0, [r0]
| ||||| 0x0801ef0e 0828 cmp r0, 8 ; 8
| ,======< 0x0801ef10 02d1 bne 0x801ef18
| |||||| 0x0801ef12 7448 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| |||||| 0x0801ef14 0021 movs r1, 0
| |||||| 0x0801ef16 0170 strb r1, [r0]
| `------> 0x0801ef18 0124 movs r4, 1 ; 1
| ||||| 0x0801ef1a edb2 uxtb r5, r5
| ||||| 0x0801ef1c 012d cmp r5, 1 ; 1
| ,======< 0x0801ef1e 6dd1 bne 0x801effc
| |||||| 0x0801ef20 6948 ldr r0, [0x0801f0c8] ; [0x801f0c8:4]=0x2001e947 md380_menu_0x2001d3f1
| |||||| 0x0801ef22 0021 movs r1, 0
| |||||| 0x0801ef24 0170 strb r1, [r0]
| ,=======< 0x0801ef26 69e0 b 0x801effc
| |||`----> 0x0801ef28 6b49 ldr r1, [0x0801f0d8] ; [0x801f0d8:4]=0x2001e700 menu_memory_poi
| ||| ||| 0x0801ef2a 0968 ldr r1, [r1]
| ||| ||| 0x0801ef2c 0968 ldr r1, [r1]
| ||| ||| 0x0801ef2e 6b4a ldr r2, [0x0801f0de] ; [0x801f0dc:4]=0x2001e6ec
| ||| ||| 0x0801ef30 1268 ldr r2, [r2]
| ||| ||| 0x0801ef32 6b4b ldr r3, [0x0801f0e2] ; [0x801f0e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| ||| 0x0801ef34 13eb8202 adds.w r2, r3, r2, lsl 2
| ||| ||| 0x0801ef38 d2f80423 ldr.w r2, [r2, 0x304]
| ||| ||| 0x0801ef3c 9142 cmp r1, r2
| |||,====< 0x0801ef3e 5dd1 bne 0x801effc
| ||||||| 0x0801ef40 c0b2 uxtb r0, r0
| ||||||| 0x0801ef42 0a28 cmp r0, 0xa ; 10
| ========< 0x0801ef44 5ad2 bhs 0x801effc
| ||||||| 0x0801ef46 6049 ldr r1, [0x0801f0ca] ; [0x801f0c8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||||||| 0x0801ef48 0978 ldrb r1, [r1]
| ||||||| 0x0801ef4a 0029 cmp r1, 0
| ========< 0x0801ef4c 07d1 bne 0x801ef5e
| ||||||| 0x0801ef4e 6549 ldr r1, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801ef50 0978 ldrb r1, [r1]
| ||||||| 0x0801ef52 491c adds r1, r1, 1
| ||||||| 0x0801ef54 634a ldr r2, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801ef56 1170 strb r1, [r2]
| ||||||| 0x0801ef58 5b49 ldr r1, [0x0801f0c8] ; [0x801f0c8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||||||| 0x0801ef5a 0022 movs r2, 0
| ||||||| 0x0801ef5c 0a70 strb r2, [r1]
| --------> 0x0801ef5e c0b2 uxtb r0, r0
| ||||||| 0x0801ef60 6149 ldr r1, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ef62 455c ldrb r5, [r0, r1]
| ||||||| 0x0801ef64 5b49 ldr r1, [0x0801f0d4] ; [0x801f0d4:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801ef66 0978 ldrb r1, [r1]
| ||||||| 0x0801ef68 11f00f01 ands r1, r1, 0xf
| ||||||| 0x0801ef6c 0329 cmp r1, 3 ; 3
| ========< 0x0801ef6e 04d0 beq 0x801ef7a
| ||||||| 0x0801ef70 5849 ldr r1, [0x0801f0d4] ; [0x801f0d4:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801ef72 0978 ldrb r1, [r1]
| ||||||| 0x0801ef74 0f22 movs r2, 0xf ; 15
| ||||||| 0x0801ef76 1142 tst r1, r2
| ========< 0x0801ef78 32d1 bne 0x801efe0
| --------> 0x0801ef7a c0b2 uxtb r0, r0
| ||||||| 0x0801ef7c 5a49 ldr r1, [0x0801f0e8] ; [0x801f0e8:4]=0x8099974
| ||||||| 0x0801ef7e 4018 adds r0, r0, r1
| ||||||| 0x0801ef80 807f ldrb r0, [r0, 0x1e]
| ||||||| 0x0801ef82 5849 ldr r1, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801ef84 0978 ldrb r1, [r1]
| ||||||| 0x0801ef86 dff8842b ldr.w r2, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801ef8a 1268 ldr r2, [r2]
| ||||||| 0x0801ef8c 12eb4101 adds.w r1, r2, r1, lsl 1
| ||||||| 0x0801ef90 c0b2 uxtb r0, r0
| ||||||| 0x0801ef92 564a ldr r2, [0x0801f0ee] ; [0x801f0ec:4]=0x809772c
| ||||||| 0x0801ef94 805c ldrb r0, [r0, r2]
| ||||||| 0x0801ef96 21f8020c strh r0, [r1, -0x2]
| ||||||| 0x0801ef9a 00f0a9f8 bl func_1f0f0_menu_something
| ||||||| 0x0801ef9e 5148 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801efa0 0078 ldrb r0, [r0]
| ||||||| 0x0801efa2 0528 cmp r0, 5 ; 5
| ========< 0x0801efa4 03d0 beq 0x801efae
| ||||||| 0x0801efa6 4f48 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801efa8 0078 ldrb r0, [r0]
| ||||||| 0x0801efaa 0828 cmp r0, 8 ; 8
| ========< 0x0801efac 08d1 bne 0x801efc0
| --------> 0x0801efae 4d48 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801efb0 0078 ldrb r0, [r0]
| ||||||| 0x0801efb2 dff8581b ldr.w r1, [0x0801fb12] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801efb6 0968 ldr r1, [r1]
| ||||||| 0x0801efb8 2f22 movs r2, 0x2f ; '/' ; 47
| ||||||| 0x0801efba 21f81020 strh.w r2, [r1, r0, lsl 1]
| ========< 0x0801efbe 0fe0 b 0x801efe0
| --------> 0x0801efc0 4848 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801efc2 0078 ldrb r0, [r0]
| ||||||| 0x0801efc4 dff8441b ldr.w r1, [0x0801fb10] ; [0x801fb10:4]=0x32cf8df
| ||||||| 0x0801efc8 0968 ldr r1, [r1]
| ||||||| 0x0801efca 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801efce 30f8020c ldrh r0, [r0, -0x2]
| ||||||| 0x0801efd2 4449 ldr r1, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801efd4 0978 ldrb r1, [r1]
| ||||||| 0x0801efd6 3b4a ldr r2, [0x0801f0c6] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| ||||||| 0x0801efd8 12eb4101 adds.w r1, r2, r1, lsl 1
| ||||||| 0x0801efdc 21f8020c strh r0, [r1, -0x2]
| --------> 0x0801efe0 4048 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801efe2 0078 ldrb r0, [r0]
| ||||||| 0x0801efe4 0a28 cmp r0, 0xa ; 10
| ========< 0x0801efe6 02d1 bne 0x801efee
| ||||||| 0x0801efe8 3e48 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801efea 0221 movs r1, 2 ; 2
| ||||||| 0x0801efec 0170 strb r1, [r0]
| --------> 0x0801efee 0124 movs r4, 1 ; 1
| ||||||| 0x0801eff0 edb2 uxtb r5, r5
| ||||||| 0x0801eff2 012d cmp r5, 1 ; 1
| ========< 0x0801eff4 02d1 bne 0x801effc
| ||||||| 0x0801eff6 3448 ldr r0, [0x0801f0ca] ; [0x801f0c8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||||||| 0x0801eff8 0021 movs r1, 0
| ||||||| 0x0801effa 0170 strb r1, [r0]
| `````-`-> 0x0801effc 3648 ldr r0, [0x0801f0d8] ; [0x801f0d8:4]=0x2001e700 menu_memory_poi
| | 0x0801effe 0068 ldr r0, [r0]
| | 0x0801f000 0068 ldr r0, [r0]
| | 0x0801f002 3649 ldr r1, [0x0801f0de] ; [0x801f0dc:4]=0x2001e6ec
| | 0x0801f004 0968 ldr r1, [r1]
| | 0x0801f006 364a ldr r2, [0x0801f0e2] ; [0x801f0e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| | 0x0801f008 12eb8101 adds.w r1, r2, r1, lsl 2
| | 0x0801f00c d1f8f812 ldr.w r1, [r1, 0x2f8]
| | 0x0801f010 8842 cmp r0, r1
| |,=< 0x0801f012 1ad1 bne 0x801f04a
| || 0x0801f014 3348 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| || 0x0801f016 0078 ldrb r0, [r0]
| || 0x0801f018 0228 cmp r0, 2 ; 2
| ,===< 0x0801f01a 03d0 beq 0x801f024
| ||| 0x0801f01c 3148 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||| 0x0801f01e 0078 ldrb r0, [r0]
| ||| 0x0801f020 0528 cmp r0, 5 ; 5
| ,====< 0x0801f022 0bd1 bne 0x801f03c
| |`---> 0x0801f024 9f23 movs r3, 0x9f ; 159
| | || 0x0801f026 3722 movs r2, 0x37 ; '7' ; 55
| | || 0x0801f028 1e21 movs r1, 0x1e ; 30
| | || 0x0801f02a 2648 ldr r0, [0x0801f0c6] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| | || 0x0801f02c fef76cfe bl gfx_drawtext2
| | || 0x0801f030 2c48 ldr r0, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| | || 0x0801f032 0078 ldrb r0, [r0]
| | || 0x0801f034 401c adds r0, r0, 1
| | || 0x0801f036 2b49 ldr r1, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| | || 0x0801f038 0870 strb r0, [r1]
| |,===< 0x0801f03a 2ce0 b 0x801f096
| `----> 0x0801f03c 9f23 movs r3, 0x9f ; 159
| ||| 0x0801f03e 3722 movs r2, 0x37 ; '7' ; 55
| ||| 0x0801f040 1e21 movs r1, 0x1e ; 30
| ||| 0x0801f042 2048 ldr r0, [0x0801f0c6] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| ||| 0x0801f044 fef760fe bl gfx_drawtext2
| ,====< 0x0801f048 25e0 b 0x801f096
| |||`-> 0x0801f04a 2348 ldr r0, [0x0801f0da] ; [0x801f0d8:4]=0x2001e700 menu_memory_poi
| ||| 0x0801f04c 0068 ldr r0, [r0]
| ||| 0x0801f04e 0068 ldr r0, [r0]
| ||| 0x0801f050 2249 ldr r1, [0x0801f0dc] ; [0x801f0dc:4]=0x2001e6ec
| ||| 0x0801f052 0968 ldr r1, [r1]
| ||| 0x0801f054 224a ldr r2, [0x0801f0e0] ; [0x801f0e0:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x0801f056 12eb8101 adds.w r1, r2, r1, lsl 2
| ||| 0x0801f05a d1f80413 ldr.w r1, [r1, 0x304]
| ||| 0x0801f05e 8842 cmp r0, r1
| |||,=< 0x0801f060 19d1 bne 0x801f096
| |||| 0x0801f062 2048 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| |||| 0x0801f064 0078 ldrb r0, [r0]
| |||| 0x0801f066 0428 cmp r0, 4 ; 4
| ,=====< 0x0801f068 03d0 beq 0x801f072
| ||||| 0x0801f06a 1e48 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||| 0x0801f06c 0078 ldrb r0, [r0]
| ||||| 0x0801f06e 0728 cmp r0, 7 ; 7
| ,======< 0x0801f070 0bd1 bne 0x801f08a
| |`-----> 0x0801f072 9f23 movs r3, 0x9f ; 159
| | |||| 0x0801f074 3722 movs r2, 0x37 ; '7' ; 55
| | |||| 0x0801f076 1e21 movs r1, 0x1e ; 30
| | |||| 0x0801f078 1248 ldr r0, [0x0801f0c4] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| | |||| 0x0801f07a fef745fe bl gfx_drawtext2
| | |||| 0x0801f07e 1948 ldr r0, [0x0801f0e6] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| | |||| 0x0801f080 0078 ldrb r0, [r0]
| | |||| 0x0801f082 401c adds r0, r0, 1
| | |||| 0x0801f084 1749 ldr r1, [0x0801f0e4] ; [0x801f0e4:4]=0x2001e945 md380_menu_cursor_pos_2
| | |||| 0x0801f086 0870 strb r0, [r1]
| |,=====< 0x0801f088 05e0 b 0x801f096
| `------> 0x0801f08a 9f23 movs r3, 0x9f ; 159
| ||||| 0x0801f08c 3722 movs r2, 0x37 ; '7' ; 55
| ||||| 0x0801f08e 1e21 movs r1, 0x1e ; 30
| ||||| 0x0801f090 0c48 ldr r0, [0x0801f0c4] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| ||||| 0x0801f092 fef739fe bl gfx_drawtext2
| ```-`-> 0x0801f096 2000 movs r0, r4
| | 0x0801f098 c0b2 uxtb r0, r0
\ `--> 0x0801f09a 32bd pop {r1, r4, r5, pc}
/ (fcn) F_4315 888
| Caller: update_scr_17
| F_4315 ();
| 0x08025ae4 30b5 push {r4, r5, lr}
| 0x08025ae6 85b0 sub sp, 0x14
| 0x08025ae8 dff80c0a ldr.w r0, [menugreen.msg.Inbox.80264fc] ; [0x80264fc:4]=0xb084b510 LEA menugreen.msg.Inbox.80264fc ; menugreen.msg.Inbox.80264fc
| 0x08025aec b0f90000 ldrsh.w r0, [r0]
| 0x08025af0 f6f770ff bl gfx_1c9d4
| 0x08025af4 dff8000a ldr.w r0, [menugreen.msg.Inbox.80264fc] ; [0x80264fc:4]=0xb084b510 LEA menugreen.msg.Inbox.80264fc ; menugreen.msg.Inbox.80264fc
| 0x08025af8 0021 movs r1, 0
| 0x08025afa 0180 strh r1, [r0]
| 0x08025afc dff8f40b ldr.w r0, [0x080266f8] ; [0x80266f8:4]=0x2001e82a
| 0x08025b00 b0f90000 ldrsh.w r0, [r0]
| 0x08025b04 f6f766ff bl gfx_1c9d4
| 0x08025b08 dff8e80b ldr.w r0, [0x080266f8] ; [0x80266f8:4]=0x2001e82a
| 0x08025b0c 0021 movs r1, 0
| 0x08025b0e 0180 strh r1, [r0]
| 0x08025b10 dff8e40b ldr.w r0, [0x080266fc] ; [0x80266fc:4]=0x2001e81c not_the_volume_knob
| 0x08025b14 b0f90000 ldrsh.w r0, [r0]
| 0x08025b18 f6f75cff bl gfx_1c9d4
| 0x08025b1c dff8d80b ldr.w r0, [0x080266fc] ; [0x80266fc:4]=0x2001e81c not_the_volume_knob
| 0x08025b20 0021 movs r1, 0
| 0x08025b22 0180 strh r1, [r0]
| 0x08025b24 dff8d40b ldr.w r0, [0x08026700] ; [0x8026700:4]=0x2001e822
| 0x08025b28 b0f90000 ldrsh.w r0, [r0]
| 0x08025b2c f6f752ff bl gfx_1c9d4
| 0x08025b30 dff8c80b ldr.w r0, [0x08026700] ; [0x8026700:4]=0x2001e822
| 0x08025b34 0021 movs r1, 0
| 0x08025b36 0180 strh r1, [r0]
| 0x08025b38 dff8580d ldr.w r0, [0x08026898] ; [0x8026898:4]=0x80f854c
| 0x08025b3c f7f718fc bl gfx_set_fg_color
| 0x08025b40 4523 movs r3, 0x45 ; 'E' ; 69
| 0x08025b42 9e22 movs r2, 0x9e ; 158
| 0x08025b44 1021 movs r1, 0x10 ; 16
| 0x08025b46 0220 movs r0, 2 ; 2
| 0x08025b48 f7f7a0fe bl gfx_blockfill
| 0x08025b4c 0020 movs r0, 0
| 0x08025b4e f7f70ffc bl gfx_set_fg_color
| 0x08025b52 dff8ac0b ldr.w r0, [0x08026706] ; [0x8026704:4]=0xf8dfb5e0
| 0x08025b56 b0f90000 ldrsh.w r0, [r0]
| 0x08025b5a 0028 cmp r0, 0
| ,=< 0x08025b5c 4ed1 bne 0x8025bfc
| | 0x08025b5e dff8340d ldr.w r0, [0x0802689a] ; [0x8026898:4]=0x80f854c
| | 0x08025b62 f7f705fc bl gfx_set_fg_color
| | 0x08025b66 4523 movs r3, 0x45 ; 'E' ; 69
| | 0x08025b68 9e22 movs r2, 0x9e ; 158
| | 0x08025b6a 1021 movs r1, 0x10 ; 16
| | 0x08025b6c 0220 movs r0, 2 ; 2
| | 0x08025b6e f7f78dfe bl gfx_blockfill
| | 0x08025b72 0020 movs r0, 0
| | 0x08025b74 f7f7fcfb bl gfx_set_fg_color
| | 0x08025b78 0e20 movs r0, 0xe ; 14
| | 0x08025b7a 0390 str r0, [sp, 0xc]
| | 0x08025b7c bfa0 adr r0, 0x2fc
| | 0x08025b7e 0290 str r0, [sp, 8]
| | 0x08025b80 0620 movs r0, 6 ; 6
| | 0x08025b82 0190 str r0, [sp, 4]
| | 0x08025b84 4ff4b070 mov.w r0, 0x160 ; 352
| | 0x08025b88 0090 str r0, [sp]
| | 0x08025b8a 0123 movs r3, 1 ; 1
| | 0x08025b8c 9c22 movs r2, 0x9c ; 156
| | 0x08025b8e 0f21 movs r1, 0xf ; 15
| | 0x08025b90 0220 movs r0, 2 ; 2
| | 0x08025b92 02f09df9 bl func_27ed0
| | 0x08025b96 dff8681b ldr.w r1, [0x08026706] ; [0x8026704:4]=0xf8dfb5e0
| | 0x08025b9a 0880 strh r0, [r1]
| | 0x08025b9c 0e20 movs r0, 0xe ; 14
| | 0x08025b9e 0390 str r0, [sp, 0xc]
| | 0x08025ba0 b6a0 adr r0, 0x2d8
| | 0x08025ba2 0290 str r0, [sp, 8]
| | 0x08025ba4 0620 movs r0, 6 ; 6
| | 0x08025ba6 0190 str r0, [sp, 4]
| | 0x08025ba8 4ff4b070 mov.w r0, 0x160 ; 352
| | 0x08025bac 0090 str r0, [sp]
| | 0x08025bae 0123 movs r3, 1 ; 1
| | 0x08025bb0 9c22 movs r2, 0x9c ; 156
| | 0x08025bb2 0f21 movs r1, 0xf ; 15
| | 0x08025bb4 0220 movs r0, 2 ; 2
| | 0x08025bb6 02f08bf9 bl func_27ed0
| | 0x08025bba dff8cc1b ldr.w r1, [0x0802678e] ; [0x802678c:4]=0x2001e894
| | 0x08025bbe 0880 strh r0, [r1]
| | 0x08025bc0 dff8d01c ldr.w r1, [0x08026898] ; [0x8026898:4]=0x80f854c
| | 0x08025bc4 dff8380b ldr.w r0, [0x08026704] ; [0x8026704:4]=0xf8dfb5e0
| | 0x08025bc8 b0f90000 ldrsh.w r0, [r0]
| | 0x08025bcc 05f0abfd bl func_2b726
| | 0x08025bd0 dff8c01c ldr.w r1, [0x08026898] ; [0x8026898:4]=0x80f854c
| | 0x08025bd4 dff8b00b ldr.w r0, [0x0802678c] ; [0x802678c:4]=0x2001e894
| | 0x08025bd8 b0f90000 ldrsh.w r0, [r0]
| | 0x08025bdc 05f0a3fd bl func_2b726
| | 0x08025be0 0021 movs r1, 0
| | 0x08025be2 dff81c0b ldr.w r0, [0x08026706] ; [0x8026704:4]=0xf8dfb5e0
| | 0x08025be6 b0f90000 ldrsh.w r0, [r0]
| | 0x08025bea 11f0d6f9 bl func_36f9a
| | 0x08025bee 0021 movs r1, 0
| | 0x08025bf0 dff8940b ldr.w r0, [0x0802678c] ; [0x802678c:4]=0x2001e894
| | 0x08025bf4 b0f90000 ldrsh.w r0, [r0]
| | 0x08025bf8 11f0cff9 bl func_36f9a
| `-> 0x08025bfc fbf74afd bl draw_statusline_more
| 0x08025c00 7ff07f40 mvns r0, 0xff000000
| 0x08025c04 f7f7b4fb bl gfx_set_fg_color
| 0x08025c08 0f23 movs r3, 0xf ; 15
| 0x08025c0a 9e22 movs r2, 0x9e ; 158
| 0x08025c0c 0f21 movs r1, 0xf ; 15
| 0x08025c0e 0220 movs r0, 2 ; 2
| 0x08025c10 f7f73cfe bl gfx_blockfill
| 0x08025c14 0020 movs r0, 0
| 0x08025c16 f7f7abfb bl gfx_set_fg_color
| 0x08025c1a dff8700b ldr.w r0, [0x08026792] ; [0x8026790:4]=0x2001e895 msg_sms_flags_shifted
| 0x08025c1e 0078 ldrb r0, [r0]
| 0x08025c20 0828 cmp r0, 8 ; 8
| ,=< 0x08025c22 04d0 beq 0x8025c2e
| | 0x08025c24 dff8680b ldr.w r0, [0x08026794] ; [0x8026794:4]=0x2001e5e0
| | 0x08025c28 0078 ldrb r0, [r0]
| | 0x08025c2a 2028 cmp r0, 0x20 ; 32
| ,==< 0x08025c2c 32d1 bne 0x8025c94
| |`-> 0x08025c2e dff85c0b ldr.w r0, [0x08026792] ; [0x8026790:4]=0x2001e895 msg_sms_flags_shifted
| | 0x08025c32 0078 ldrb r0, [r0]
| | 0x08025c34 0728 cmp r0, 7 ; 7
| |,=< 0x08025c36 03d1 bne 0x8025c40
| || 0x08025c38 dff85406 ldr.w r0, [0x08026294] ; [0x8026294:4]=0x2001cb58 selected_contact_name_wstring
| || 0x08025c3c 0568 ldr r5, [r0]
| ,===< 0x08025c3e 02e0 b 0x8025c46
| ||`-> 0x08025c40 dff8500b ldr.w r0, [0x08026798] ; [0x8026798:4]=0x2001e1d4
| || 0x08025c44 0568 ldr r5, [r0]
| `---> 0x08025c46 2800 movs r0, r5
| | 0x08025c48 00f0d4f9 bl func_25ff4
| | 0x08025c4c dff8484b ldr.w r4, [0x0802679c] ; [0x802679c:4]=0x80f8574
| | 0x08025c50 80b2 uxth r0, r0
| | 0x08025c52 0028 cmp r0, 0
| |,=< 0x08025c54 03d0 beq 0x8025c5e
| || 0x08025c56 80b2 uxth r0, r0
| || 0x08025c58 fcf7adfe bl func_229b6
| ,===< 0x08025c5c 0ae0 b 0x8025c74
| ||`-> 0x08025c5e 2100 movs r1, r4
| || 0x08025c60 2802 lsls r0, r5, 8
| || 0x08025c62 000a lsrs r0, r0, 8
| || 0x08025c64 01f0bafc bl func_275dc
| || 0x08025c68 c0b2 uxtb r0, r0
| || 0x08025c6a 14eb4004 adds.w r4, r4, r0, lsl 1
| || 0x08025c6e 0020 movs r0, 0
| || 0x08025c70 2080 strh r0, [r4]
| || 0x08025c72 a41c adds r4, r4, 2
| `---> 0x08025c74 dff81c0c ldr.w r0, [0x08026898] ; [0x8026898:4]=0x80f854c
| | 0x08025c78 f7f776fb bl gfx_set_bg_color
| | 0x08025c7c 0020 movs r0, 0
| | 0x08025c7e f7f777fb bl gfx_set_fg_color
| | 0x08025c82 4520 movs r0, 0x45 ; 'E' ; 69
| | 0x08025c84 0090 str r0, [sp]
| | 0x08025c86 9e23 movs r3, 0x9e ; 158
| | 0x08025c88 3222 movs r2, 0x32 ; '2' ; 50
| | 0x08025c8a 0221 movs r1, 2 ; 2
| | 0x08025c8c dff8080b ldr.w r0, [0x0802679c] ; [0x802679c:4]=0x80f8574
| | 0x08025c90 e8f722f9 bl gfx_drawtext10
| `--> 0x08025c94 dff8fc0b ldr.w r0, [0x08026898] ; [0x8026898:4]=0x80f854c
| 0x08025c98 f7f76afb bl gfx_set_fg_color
| 0x08025c9c 6823 movs r3, 0x68 ; 'h' ; 104
| 0x08025c9e 2722 movs r2, 0x27 ; ''' ; 39
| 0x08025ca0 4621 movs r1, 0x46 ; 'F' ; 70
| 0x08025ca2 0020 movs r0, 0
| 0x08025ca4 f7f7f2fd bl gfx_blockfill
| 0x08025ca8 0020 movs r0, 0
| 0x08025caa f7f761fb bl gfx_set_fg_color
| 0x08025cae 7ff07f40 mvns r0, 0xff000000
| 0x08025cb2 f7f75dfb bl gfx_set_fg_color
| 0x08025cb6 7f23 movs r3, 0x7f ; 127
| 0x08025cb8 0122 movs r2, 1 ; 1
| 0x08025cba 1021 movs r1, 0x10 ; 16
| 0x08025cbc 0020 movs r0, 0
| 0x08025cbe f7f7e5fd bl gfx_blockfill
| 0x08025cc2 7f23 movs r3, 0x7f ; 127
| 0x08025cc4 9f22 movs r2, 0x9f ; 159
| 0x08025cc6 1021 movs r1, 0x10 ; 16
| 0x08025cc8 9e20 movs r0, 0x9e ; 158
| 0x08025cca f7f7dffd bl gfx_blockfill
| 0x08025cce 7f23 movs r3, 0x7f ; 127
| 0x08025cd0 9f22 movs r2, 0x9f ; 159
| 0x08025cd2 7e21 movs r1, 0x7e ; '~' ; 126
| 0x08025cd4 0020 movs r0, 0
| 0x08025cd6 f7f7d9fd bl gfx_blockfill
| 0x08025cda 0020 movs r0, 0
| 0x08025cdc f7f748fb bl gfx_set_fg_color
| 0x08025ce0 dff8ac0a ldr.w r0, [0x08026794] ; [0x8026794:4]=0x2001e5e0
| 0x08025ce4 0078 ldrb r0, [r0]
| 0x08025ce6 2028 cmp r0, 0x20 ; 32
| ,=< 0x08025ce8 21d1 bne 0x8025d2e
| | 0x08025cea dff8fc05 ldr.w r0, [0x080262ee] ; [0x80262ec:4]=0xf8dfb510
| | 0x08025cee 0521 movs r1, 5 ; 5
| | 0x08025cf0 0170 strb r1, [r0]
| | 0x08025cf2 4622 movs r2, 0x46 ; 'F' ; 70
| | 0x08025cf4 2821 movs r1, 0x28 ; '(' ; 40
| | 0x08025cf6 dff8a40a ldr.w r0, [0x080267a2] ; [0x80267a0:4]=0xf8dfb5e0
| | 0x08025cfa fdf780fd bl gfx_drawbmp
| | 0x08025cfe dff8940b ldr.w r0, [0x0802689a] ; [0x8026898:4]=0x80f854c
| | 0x08025d02 f7f731fb bl gfx_set_bg_color
| | 0x08025d06 0020 movs r0, 0
| | 0x08025d08 f7f732fb bl gfx_set_fg_color
| | 0x08025d0c 3120 movs r0, 0x31 ; '1' ; 49
| | 0x08025d0e 0090 str r0, [sp]
| | 0x08025d10 9e23 movs r3, 0x9e ; 158
| | 0x08025d12 1022 movs r2, 0x10 ; 16
| | 0x08025d14 0221 movs r1, 2 ; 2
| | 0x08025d16 dff8ac06 ldr.w r0, [0x080263ca] ; [0x80263c8:4]=0xf8dfb580
| | 0x08025d1a 0068 ldr r0, [r0]
| | 0x08025d1c dff8e846 ldr.w r4, [0x0802640c] ; [0x802640c:4]=0x8025941
| | 0x08025d20 14eb8000 adds.w r0, r4, r0, lsl 2
| | 0x08025d24 d0f8c001 ldr.w r0, [r0, 0x1c0]
| | 0x08025d28 e8f7d6f8 bl gfx_drawtext10
| ,==< 0x08025d2c 59e0 b 0x8025de2
| |`-> 0x08025d2e dff8600a ldr.w r0, [0x08026796] ; [0x8026794:4]=0x2001e5e0
| | 0x08025d32 0078 ldrb r0, [r0]
| | 0x08025d34 3028 cmp r0, 0x30 ; '0' ; 48
| |,=< 0x08025d36 27d1 bne 0x8025d88
| || 0x08025d38 dff8ac05 ldr.w r0, [0x080262ec] ; [0x80262ec:4]=0xf8dfb510
| || 0x08025d3c 0421 movs r1, 4 ; 4
| || 0x08025d3e 0170 strb r1, [r0]
| || 0x08025d40 4622 movs r2, 0x46 ; 'F' ; 70
| || 0x08025d42 2821 movs r1, 0x28 ; '(' ; 40
| || 0x08025d44 dff8500b ldr.w r0, [0x0802689c] ; [0x802689c:4]=0x80f8664
| || 0x08025d48 fdf759fd bl gfx_drawbmp
| || 0x08025d4c 4622 movs r2, 0x46 ; 'F' ; 70
| || 0x08025d4e 5f21 movs r1, 0x5f ; '_' ; 95
| || 0x08025d50 dff8480b ldr.w r0, [0x080268a0] ; [0x80268a0:4]=0x2001e79e
| || 0x08025d54 fdf753fd bl gfx_drawbmp
| || 0x08025d58 dff8380b ldr.w r0, [0x08026898] ; [0x8026898:4]=0x80f854c
| || 0x08025d5c f7f704fb bl gfx_set_bg_color
| || 0x08025d60 0020 movs r0, 0
| || 0x08025d62 f7f705fb bl gfx_set_fg_color
| || 0x08025d66 3120 movs r0, 0x31 ; '1' ; 49
| || 0x08025d68 0090 str r0, [sp]
| || 0x08025d6a 9e23 movs r3, 0x9e ; 158
| || 0x08025d6c 1022 movs r2, 0x10 ; 16
| || 0x08025d6e 0221 movs r1, 2 ; 2
| || 0x08025d70 dff85006 ldr.w r0, [0x080263c8] ; [0x80263c8:4]=0xf8dfb580
| || 0x08025d74 0068 ldr r0, [r0]
| || 0x08025d76 dff89046 ldr.w r4, [0x0802640e] ; [0x802640c:4]=0x8025941
| || 0x08025d7a 14eb8000 adds.w r0, r4, r0, lsl 2
| || 0x08025d7e d0f81001 ldr.w r0, [r0, 0x110]
| || 0x08025d82 e8f7a9f8 bl gfx_drawtext10
| ,===< 0x08025d86 2ce0 b 0x8025de2
| ||`-> 0x08025d88 dff80c4a ldr.w r4, [0x0802679c] ; [0x802679c:4]=0x80f8574
| || 0x08025d8c dff8100b ldr.w r0, [0x080268a4] ; [0x80268a4:4]=0x80f8678
| || 0x08025d90 0088 ldrh r0, [r0]
| || 0x08025d92 0028 cmp r0, 0
| ||,=< 0x08025d94 05d0 beq 0x8025da2
| ||| 0x08025d96 dff8080b ldr.w r0, [0x080268a6] ; [0x80268a4:4]=0x80f8678
| ||| 0x08025d9a 0088 ldrh r0, [r0]
| ||| 0x08025d9c fcf70bfe bl func_229b6
| ,====< 0x08025da0 05e0 b 0x8025dae
| |||`-> 0x08025da2 2020 movs r0, 0x20 ; 32
| ||| 0x08025da4 2080 strh r0, [r4]
| ||| 0x08025da6 a41c adds r4, r4, 2
| ||| 0x08025da8 0020 movs r0, 0
| ||| 0x08025daa 2080 strh r0, [r4]
| ||| 0x08025dac a41c adds r4, r4, 2
| `----> 0x08025dae dff83805 ldr.w r0, [0x080262ee] ; [0x80262ec:4]=0xf8dfb510
| || 0x08025db2 0421 movs r1, 4 ; 4
| || 0x08025db4 0170 strb r1, [r0]
| || 0x08025db6 4622 movs r2, 0x46 ; 'F' ; 70
| || 0x08025db8 2821 movs r1, 0x28 ; '(' ; 40
| || 0x08025dba dff8dc0a ldr.w r0, [0x0802689e] ; [0x802689c:4]=0x80f8664
| || 0x08025dbe fdf71efd bl gfx_drawbmp
| || 0x08025dc2 dff8d00a ldr.w r0, [0x0802689a] ; [0x8026898:4]=0x80f854c
| || 0x08025dc6 f7f7cffa bl gfx_set_bg_color
| || 0x08025dca 0020 movs r0, 0
| || 0x08025dcc f7f7d0fa bl gfx_set_fg_color
| || 0x08025dd0 3120 movs r0, 0x31 ; '1' ; 49
| || 0x08025dd2 0090 str r0, [sp]
| || 0x08025dd4 9e23 movs r3, 0x9e ; 158
| || 0x08025dd6 1022 movs r2, 0x10 ; 16
| || 0x08025dd8 0221 movs r1, 2 ; 2
| || 0x08025dda dff8bc09 ldr.w r0, [0x0802679e] ; [0x802679c:4]=0x80f8574
| || 0x08025dde e8f77bf8 bl gfx_drawtext10
| ``--> 0x08025de2 dff8b00a ldr.w r0, [0x0802689a] ; [0x8026898:4]=0x80f854c
| 0x08025de6 f7f7c3fa bl gfx_set_fg_color
| 0x08025dea 6823 movs r3, 0x68 ; 'h' ; 104
| 0x08025dec 5e22 movs r2, 0x5e ; '^' ; 94
| 0x08025dee 4621 movs r1, 0x46 ; 'F' ; 70
| 0x08025df0 5520 movs r0, 0x55 ; 'U' ; 85
| 0x08025df2 f7f74bfd bl gfx_blockfill
| 0x08025df6 0020 movs r0, 0
| 0x08025df8 f7f7bafa bl gfx_set_fg_color
| 0x08025dfc dff88c09 ldr.w r0, [0x08026790] ; [0x8026790:4]=0x2001e895 msg_sms_flags_shifted
| 0x08025e00 0078 ldrb r0, [r0]
| 0x08025e02 0728 cmp r0, 7 ; 7
| ,=< 0x08025e04 06d1 bne 0x8025e14
| | 0x08025e06 4622 movs r2, 0x46 ; 'F' ; 70
| | 0x08025e08 5f21 movs r1, 0x5f ; '_' ; 95
| | 0x08025e0a dff8980a ldr.w r0, [0x080268aa] ; [0x80268a8:4]=0x2001e905
| | 0x08025e0e fdf7f6fc bl gfx_drawbmp
| ,==< 0x08025e12 0ae0 b 0x8025e2a
| |`-> 0x08025e14 dff87409 ldr.w r0, [0x08026790] ; [0x8026790:4]=0x2001e895 msg_sms_flags_shifted
| | 0x08025e18 0078 ldrb r0, [r0]
| | 0x08025e1a 0828 cmp r0, 8 ; 8
| |,=< 0x08025e1c 05d1 bne 0x8025e2a
| || 0x08025e1e 4622 movs r2, 0x46 ; 'F' ; 70
| || 0x08025e20 5f21 movs r1, 0x5f ; '_' ; 95
| || 0x08025e22 dff8780a ldr.w r0, [0x080268a2] ; [0x80268a0:4]=0x2001e79e
| || 0x08025e26 fdf7eafc bl gfx_drawbmp
| ``-> 0x08025e2a dff87c0a ldr.w r0, [0x080268ae] ; [0x80268ac:4]=0xf8dfb510
| 0x08025e2e 0121 movs r1, 1 ; 1
| 0x08025e30 0170 strb r1, [r0]
| 0x08025e32 dff8600a ldr.w r0, [0x0802689a] ; [0x8026898:4]=0x80f854c
| 0x08025e36 f7f79bfa bl gfx_set_fg_color
| 0x08025e3a 6823 movs r3, 0x68 ; 'h' ; 104
| 0x08025e3c 9d22 movs r2, 0x9d ; 157
| 0x08025e3e 4621 movs r1, 0x46 ; 'F' ; 70
| 0x08025e40 8220 movs r0, 0x82 ; 130
| 0x08025e42 f7f723fd bl gfx_blockfill
| 0x08025e46 7d23 movs r3, 0x7d ; '}' ; 125
| 0x08025e48 9d22 movs r2, 0x9d ; 157
| 0x08025e4a 6921 movs r1, 0x69 ; 'i' ; 105
| 0x08025e4c 0220 movs r0, 2 ; 2
| 0x08025e4e f7f71dfd bl gfx_blockfill
| 0x08025e52 0020 movs r0, 0
| 0x08025e54 f7f78cfa bl gfx_set_fg_color
| 0x08025e58 05b0 add sp, 0x14
\ 0x08025e5a 30bd pop {r4, r5, pc}
/ (fcn) 284
| Caller: md380_f_4520
| menu_cursor_related_1bb9c ();
| 0x0801bb9c e0b5 push {r5, r6, r7, lr}
| 0x0801bb9e dff8c805 ldr.w r0, [0x0801c16e] ; [0x801c16c:4]=0x200049fc mn_editbuffer_poi
| 0x0801bba2 0021 movs r1, 0
| 0x0801bba4 0170 strb r1, [r0]
| 0x0801bba6 dff89405 ldr.w r0, [0x0801c142] ; [0x801c140:4]=0x2001b274 md380_menu_mem_base
| 0x0801bbaa 0021 movs r1, 0
| 0x0801bbac 0170 strb r1, [r0]
| 0x0801bbae dff89c05 ldr.w r0, [0x0801c152] ; [0x801c150:4]=0x2001e94a md380_menu_0x2001d3f4
| 0x0801bbb2 dff8b415 ldr.w r1, [0x0801c16e] ; [0x801c16c:4]=0x200049fc mn_editbuffer_poi
| 0x0801bbb6 0978 ldrb r1, [r1]
| 0x0801bbb8 0170 strb r1, [r0]
| 0x0801bbba dff89405 ldr.w r0, [0x0801c156] ; [0x801c154:4]=0x2001e943 md380_menu_max_chars
| 0x0801bbbe 0021 movs r1, 0
| 0x0801bbc0 0170 strb r1, [r0]
| 0x0801bbc2 dff8a805 ldr.w r0, [0x0801c172] ; [0x801c170:4]=0x2001e946 md380_menu_field_type
| 0x0801bbc6 dff87c15 ldr.w r1, [0x0801c14a] ; [0x801c148:4]=0x2001e944 md380_menu_cursor_pos_1
| 0x0801bbca 0160 str r1, [r0]
| 0x0801bbcc 0020 movs r0, 0
| ,=< 0x0801bbce 07e0 b 0x801bbe0
| .--> 0x0801bbd0 40b2 sxtb r0, r0
| || 0x0801bbd2 dff89815 ldr.w r1, [0x0801c172] ; [0x801c170:4]=0x2001e946 md380_menu_field_type
| || 0x0801bbd6 0968 ldr r1, [r1]
| || 0x0801bbd8 0022 movs r2, 0
| || 0x0801bbda 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x0801bbde 401c adds r0, r0, 1
| |`-> 0x0801bbe0 40b2 sxtb r0, r0
| | 0x0801bbe2 0928 cmp r0, 9 ; 9
| `==< 0x0801bbe4 f4db blt 0x801bbd0
| 0x0801bbe6 dff86c05 ldr.w r0, [0x0801c15a] ; [0x801c158:4]=0x2001e945 md380_menu_cursor_pos_2
| 0x0801bbea 0821 movs r1, 8 ; 8
| 0x0801bbec 0170 strb r1, [r0]
| 0x0801bbee dff85805 ldr.w r0, [0x0801c14e] ; [0x801c14c:4]=0x2001e914 md380_menu_0x2001d3c1
| 0x0801bbf2 0021 movs r1, 0
| 0x0801bbf4 0170 strb r1, [r0]
| 0x0801bbf6 dff86005 ldr.w r0, [0x0801c15e] ; [0x801c15c:4]=0x2001e947 md380_menu_0x2001d3f1
| 0x0801bbfa 0021 movs r1, 0
| 0x0801bbfc 0170 strb r1, [r0]
| 0x0801bbfe dff85c05 ldr.w r0, [0x0801c162] ; [0x801c160:4]=0x801b9ed
| 0x0801bc02 0021 movs r1, 0
| 0x0801bc04 0170 strb r1, [r0]
| 0x0801bc06 dff86805 ldr.w r0, [0x0801c176] ; [0x801c174:4]=0x2001e700 menu_memory_poi
| 0x0801bc0a 0321 movs r1, 3 ; 3
| 0x0801bc0c 0170 strb r1, [r0]
| 0x0801bc0e dff85805 ldr.w r0, [0x0801c16e] ; [0x801c16c:4]=0x200049fc mn_editbuffer_poi
| 0x0801bc12 0078 ldrb r0, [r0]
| 0x0801bc14 0c21 movs r1, 0xc ; 12
| 0x0801bc16 dff8e023 ldr.w r2, [0x0801bffe] ; [0x801bffc:4]=0x485ab5e0
| 0x0801bc1a 01fb0020 mla r0, r1, r0, r2
| 0x0801bc1e dff85415 ldr.w r1, [0x0801c17a] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801bc22 0860 str r0, [r1]
| 0x0801bc24 2848 ldr r0, [0x0801bcc8] ; [0x801bcc8:4]=0x2001e6ec
| 0x0801bc26 0068 ldr r0, [r0]
| 0x0801bc28 dff84c15 ldr.w r1, [0x0801c17c] ; [0x801c17c:4]=0x2001e90e
| 0x0801bc2c 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801bc30 d0f84003 ldr.w r0, [r0, 0x340]
| 0x0801bc34 dff83c15 ldr.w r1, [0x0801c178] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801bc38 0968 ldr r1, [r1]
| 0x0801bc3a 0860 str r0, [r1]
| 0x0801bc3c dff83405 ldr.w r0, [0x0801c178] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801bc40 0068 ldr r0, [r0]
| 0x0801bc42 1d49 ldr r1, [0x0801bcba] ; [0x801bcb8:4]=0x2001b274 md380_menu_mem_base
| 0x0801bc44 4160 str r1, [r0, 4]
| 0x0801bc46 dff82c05 ldr.w r0, [0x0801c17a] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801bc4a 0068 ldr r0, [r0]
| 0x0801bc4c 0121 movs r1, 1 ; 1
| 0x0801bc4e 0172 strb r1, [r0, 8]
| 0x0801bc50 dff82005 ldr.w r0, [0x0801c178] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801bc54 0068 ldr r0, [r0]
| 0x0801bc56 0021 movs r1, 0
| 0x0801bc58 4172 strb r1, [r0, 9]
| 0x0801bc5a dff81805 ldr.w r0, [0x0801c17a] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801bc5e 0068 ldr r0, [r0]
| 0x0801bc60 0021 movs r1, 0
| 0x0801bc62 4181 strh r1, [r0, 0xa]
| 0x0801bc64 dff81405 ldr.w r0, [0x0801c180] ; [0x801c180:4]=0x801b043
| 0x0801bc68 0b21 movs r1, 0xb ; 11
| 0x0801bc6a 0170 strb r1, [r0]
| 0x0801bc6c 0120 movs r0, 1 ; 1
| 0x0801bc6e 0290 str r0, [sp, 8]
| 0x0801bc70 0020 movs r0, 0
| 0x0801bc72 0190 str r0, [sp, 4]
| 0x0801bc74 8120 movs r0, 0x81 ; 129
| 0x0801bc76 0090 str r0, [sp]
| 0x0801bc78 dff80435 ldr.w r3, [0x0801c184] ; [0x801c184:4]=0x801bcd9
| 0x0801bc7c dff80425 ldr.w r2, [0x0801c188] ; [0x801c188:4]=0x2001e6fc
| 0x0801bc80 dff8e804 ldr.w r0, [0x0801c170] ; [0x801c170:4]=0x2001e946 md380_menu_field_type
| 0x0801bc84 0168 ldr r1, [r0]
| 0x0801bc86 dff8b404 ldr.w r0, [0x0801c142] ; [0x801c140:4]=0x2001b274 md380_menu_mem_base
| 0x0801bc8a 0078 ldrb r0, [r0]
| 0x0801bc8c f0f74ffd bl md380_create_menu_entry
| 0x0801bc90 dff8d404 ldr.w r0, [0x0801c16c] ; [0x801c16c:4]=0x200049fc mn_editbuffer_poi
| 0x0801bc94 0078 ldrb r0, [r0]
| 0x0801bc96 f3f7ddff bl menu_add_number_of_menuentries_counts
| 0x0801bc9a dff8a014 ldr.w r1, [0x0801c142] ; [0x801c140:4]=0x2001b274 md380_menu_mem_base
| 0x0801bc9e 0870 strb r0, [r1]
| 0x0801bca0 dff8d004 ldr.w r0, [0x0801c178] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801bca4 0068 ldr r0, [r0]
| 0x0801bca6 4068 ldr r0, [r0, 4]
| 0x0801bca8 dff8dc14 ldr.w r1, [0x0801c18c] ; [0x801c18c:4]=0x2001cb54 msg_sms_hdr_prep
| 0x0801bcac 0860 str r0, [r1]
| 0x0801bcae dff8b804 ldr.w r0, [0x0801c16e] ; [0x801c16c:4]=0x200049fc mn_editbuffer_poi
| 0x0801bcb2 0021 movs r1, 0
| 0x0801bcb4 0170 strb r1, [r0]
\ 0x0801bcb6 07bd pop {r0, r1, r2, pc}
/ (fcn) 278
| Caller: scr_mode_stable md380_f_4520
| menu_func_1aa60 ();
| 0x0801aa60 e0b5 push {r5, r6, r7, lr}
| 0x0801aa62 9c48 ldr r0, [0x0801acd6] ; [0x801acd4:4]=0x20004acc md380_menu_depth
| 0x0801aa64 0078 ldrb r0, [r0]
| 0x0801aa66 ff28 cmp r0, 0xff ; 255
| ,=< 0x0801aa68 02d1 bne 0x801aa70
| | 0x0801aa6a 9a48 ldr r0, [0x0801acd6] ; [0x801acd4:4]=0x20004acc md380_menu_depth
| | 0x0801aa6c 0021 movs r1, 0
| | 0x0801aa6e 0170 strb r1, [r0]
| `-> 0x0801aa70 9848 ldr r0, [0x0801acd4] ; [0x801acd4:4]=0x20004acc md380_menu_depth
| 0x0801aa72 0078 ldrb r0, [r0]
| 0x0801aa74 0c21 movs r1, 0xc ; 12
| 0x0801aa76 984a ldr r2, [0x0801acda] ; [0x801acd8:4]=0x2001d5cc md380_menu_memory
| 0x0801aa78 01fb0020 mla r0, r1, r0, r2
| 0x0801aa7c 0c30 adds r0, 0xc
| 0x0801aa7e dff8dc17 ldr.w r1, [0x0801b262] ; [0x801b260:4]=0x800fc97
| 0x0801aa82 0968 ldr r1, [r1]
| 0x0801aa84 dff83827 ldr.w r2, [0x0801b1c4] ; [0x801b1c4:4]=0xf8dfb5e0
| 0x0801aa88 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x0801aa8c d1f8a011 ldr.w r1, [r1, 0x1a0]
| 0x0801aa90 0160 str r1, [r0]
| 0x0801aa92 dff8e014 ldr.w r1, [0x0801af7a] ; [0x801af78:4]=0x800fc85 menu_entry_back_1
| 0x0801aa96 0978 ldrb r1, [r1]
| 0x0801aa98 1422 movs r2, 0x14 ; 20
| 0x0801aa9a dff8bc37 ldr.w r3, [0x0801b25e] ; [0x801b25c:4]=0x2001e6ec
| 0x0801aa9e 02fb0131 mla r1, r2, r1, r3
| 0x0801aaa2 4160 str r1, [r0, 4]
| 0x0801aaa4 0121 movs r1, 1 ; 1
| 0x0801aaa6 0172 strb r1, [r0, 8]
| 0x0801aaa8 0021 movs r1, 0
| 0x0801aaaa 4172 strb r1, [r0, 9]
| 0x0801aaac 0021 movs r1, 0
| 0x0801aaae 4181 strh r1, [r0, 0xa]
| 0x0801aab0 0120 movs r0, 1 ; 1
| 0x0801aab2 0290 str r0, [sp, 8]
| 0x0801aab4 0f20 movs r0, 0xf ; 15
| 0x0801aab6 0190 str r0, [sp, 4]
| 0x0801aab8 0620 movs r0, 6 ; 6
| 0x0801aaba 0090 str r0, [sp]
| 0x0801aabc dff8b834 ldr.w r3, [menugreen.Passwd_Lo.801af7c] ; [0x801af7c:4]=0xf8dfb5e0 LEA menugreen.Passwd_Lo.801af7c ; menugreen.Passwd_Lo.801af7c
| 0x0801aac0 dff89c27 ldr.w r2, [0x0801b264] ; [0x801b264:4]=0xf8dfb5fe
| 0x0801aac4 dff89407 ldr.w r0, [0x0801b260] ; [0x801b260:4]=0x800fc97
| 0x0801aac8 0068 ldr r0, [r0]
| 0x0801aaca dff8f416 ldr.w r1, [0x0801b1c6] ; [0x801b1c4:4]=0xf8dfb5e0
| 0x0801aace 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801aad2 d0f80412 ldr.w r1, [r0, 0x204]
| 0x0801aad6 dff89c04 ldr.w r0, [0x0801af7a] ; [0x801af78:4]=0x800fc85 menu_entry_back_1
| 0x0801aada 0078 ldrb r0, [r0]
| 0x0801aadc f1f727fe bl md380_create_menu_entry
| 0x0801aae0 dff8b809 ldr.w r0, [0x0801b4a0] ; [0x801b4a0:4]=0x20004ab2
| 0x0801aae4 0121 movs r1, 1 ; 1
| 0x0801aae6 0170 strb r1, [r0]
| 0x0801aae8 d848 ldr r0, [0x0801ae4c] ; [0x801ae4c:4]=0x2001dadc md380_radio_config
| 0x0801aaea 807d ldrb r0, [r0, 0x16]
| 0x0801aaec 4ff4fa71 mov.w r1, 0x1f4 ; 500
| 0x0801aaf0 10fb01f0 smulbb r0, r0, r1
| 0x0801aaf4 dff8a819 ldr.w r1, [0x0801b4a4] ; [0x801b4a4:4]=0x2001e700 menu_memory_poi
| 0x0801aaf8 0880 strh r0, [r1]
| 0x0801aafa 7648 ldr r0, [0x0801acd6] ; [0x801acd4:4]=0x20004acc md380_menu_depth
| 0x0801aafc 0078 ldrb r0, [r0]
| 0x0801aafe 401c adds r0, r0, 1
| 0x0801ab00 7449 ldr r1, [0x0801acd4] ; [0x801acd4:4]=0x20004acc md380_menu_depth
| 0x0801ab02 0870 strb r0, [r1]
| 0x0801ab04 7348 ldr r0, [0x0801acd4] ; [0x801acd4:4]=0x20004acc md380_menu_depth
| 0x0801ab06 0078 ldrb r0, [r0]
| 0x0801ab08 f5f7a4f8 bl menu_add_number_of_menuentries_counts
| 0x0801ab0c dff86414 ldr.w r1, [0x0801af78] ; [0x801af78:4]=0x800fc85 menu_entry_back_1
| 0x0801ab10 0870 strb r0, [r1]
| 0x0801ab12 7048 ldr r0, [0x0801acd6] ; [0x801acd4:4]=0x20004acc md380_menu_depth
| 0x0801ab14 0078 ldrb r0, [r0]
| 0x0801ab16 0c21 movs r1, 0xc ; 12
| 0x0801ab18 6f4a ldr r2, [0x0801acd8] ; [0x801acd8:4]=0x2001d5cc md380_menu_memory
| 0x0801ab1a 01fb0020 mla r0, r1, r0, r2
| 0x0801ab1e dff88419 ldr.w r1, [0x0801b4aa] ; [0x801b4a8:4]=0xb084b510
| 0x0801ab22 0860 str r0, [r1]
| 0x0801ab24 0020 movs r0, 0
| ,=< 0x0801ab26 00e0 b 0x801ab2a
| .--> 0x0801ab28 401c adds r0, r0, 1
| |`-> 0x0801ab2a dff87819 ldr.w r1, [0x0801b4aa] ; [0x801b4a8:4]=0xb084b510
| | 0x0801ab2e 0968 ldr r1, [r1]
| | 0x0801ab30 097a ldrb r1, [r1, 8]
| | 0x0801ab32 8842 cmp r0, r1
| |,=< 0x0801ab34 17da bge 0x801ab66
| || 0x0801ab36 1421 movs r1, 0x14 ; 20
| || 0x0801ab38 dff86829 ldr.w r2, [0x0801b4a8] ; [0x801b4a8:4]=0xb084b510
| || 0x0801ab3c 1268 ldr r2, [r2]
| || 0x0801ab3e 5268 ldr r2, [r2, 4]
| || 0x0801ab40 01fb0021 mla r1, r1, r0, r2
| || 0x0801ab44 c989 ldrh r1, [r1, 0xe]
| || 0x0801ab46 0029 cmp r1, 0
| `==< 0x0801ab48 eed0 beq 0x801ab28
| | 0x0801ab4a 1421 movs r1, 0x14 ; 20
| | 0x0801ab4c dff85429 ldr.w r2, [0x0801b4a8] ; [0x801b4a8:4]=0xb084b510
| | 0x0801ab50 1268 ldr r2, [r2]
| | 0x0801ab52 5268 ldr r2, [r2, 4]
| | 0x0801ab54 01fb0021 mla r1, r1, r0, r2
| | 0x0801ab58 dff8c82c ldr.w r2, [0x0801b828] ; [0x801b828:4]=0x2001e90e
| | 0x0801ab5c 1160 str r1, [r2]
| | 0x0801ab5e dff84419 ldr.w r1, [0x0801b4aa] ; [0x801b4a8:4]=0xb084b510
| | 0x0801ab62 0968 ldr r1, [r1]
| | 0x0801ab64 4872 strb r0, [r1, 9]
| `-> 0x0801ab66 dff8bc0c ldr.w r0, [0x0801b82a] ; [0x801b828:4]=0x2001e90e
| 0x0801ab6a 0068 ldr r0, [r0]
| 0x0801ab6c 8068 ldr r0, [r0, 8]
| 0x0801ab6e 8047 blx r0
| 0x0801ab70 f1f73afe bl func_0c7e8
\ 0x0801ab74 07bd pop {r0, r1, r2, pc}
/ (fcn) menu_using_sms_and_edit_buf_1be2c 194
| Caller: kb_enter_alpha
| menu_using_sms_and_edit_buf_1be2c ();
| 0x0801be2c e0b5 push {r5, r6, r7, lr}
| 0x0801be2e dff83803 ldr.w r0, [0x0801c16e] ; [0x801c16c:4]=0x200049fc mn_editbuffer_poi
| 0x0801be32 0021 movs r1, 0
| 0x0801be34 0170 strb r1, [r0]
| 0x0801be36 dff80403 ldr.w r0, [0x0801c142] ; [0x801c140:4]=0x2001b274 md380_menu_mem_base
| 0x0801be3a 0021 movs r1, 0
| 0x0801be3c 0170 strb r1, [r0]
| 0x0801be3e dff82803 ldr.w r0, [0x0801c16e] ; [0x801c16c:4]=0x200049fc mn_editbuffer_poi
| 0x0801be42 0078 ldrb r0, [r0]
| 0x0801be44 0c21 movs r1, 0xc ; 12
| 0x0801be46 6c4a ldr r2, [0x0801bffa] ; [0x801bff8:4]=0x2001d5cc md380_menu_memory
| 0x0801be48 01fb0020 mla r0, r1, r0, r2
| 0x0801be4c dff82413 ldr.w r1, [0x0801c178] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801be50 0860 str r0, [r1]
| 0x0801be52 dff85003 ldr.w r0, [0x0801c1aa] ; [0x801c1a8:4]=0x801be11
| 0x0801be56 0068 ldr r0, [r0]
| 0x0801be58 dff81c13 ldr.w r1, [0x0801c17c] ; [0x801c17c:4]=0x2001e90e
| 0x0801be5c 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801be60 d0f80002 ldr.w r0, [r0, 0x200]
| 0x0801be64 dff80c13 ldr.w r1, [0x0801c178] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801be68 0968 ldr r1, [r1]
| 0x0801be6a 0860 str r0, [r1]
| 0x0801be6c dff80403 ldr.w r0, [0x0801c178] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801be70 0068 ldr r0, [r0]
| 0x0801be72 dff8cc12 ldr.w r1, [0x0801c146] ; [0x801c144:4]=0x2001cb9a md380_menu_edit_buf
| 0x0801be76 4160 str r1, [r0, 4]
| 0x0801be78 dff8f802 ldr.w r0, [0x0801c178] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801be7c 0068 ldr r0, [r0]
| 0x0801be7e 0121 movs r1, 1 ; 1
| 0x0801be80 0172 strb r1, [r0, 8]
| 0x0801be82 dff8f002 ldr.w r0, [0x0801c17a] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801be86 0068 ldr r0, [r0]
| 0x0801be88 0021 movs r1, 0
| 0x0801be8a 4172 strb r1, [r0, 9]
| 0x0801be8c dff8e402 ldr.w r0, [0x0801c178] ; [0x801c178:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0801be90 0068 ldr r0, [r0]
| 0x0801be92 0021 movs r1, 0
| 0x0801be94 4181 strh r1, [r0, 0xa]
| 0x0801be96 dff8e402 ldr.w r0, [0x0801c182] ; [0x801c180:4]=0x801b043
| 0x0801be9a 0b21 movs r1, 0xb ; 11
| 0x0801be9c 0170 strb r1, [r0]
| 0x0801be9e 0120 movs r0, 1 ; 1
| 0x0801bea0 0290 str r0, [sp, 8]
| 0x0801bea2 0020 movs r0, 0
| 0x0801bea4 0190 str r0, [sp, 4]
| 0x0801bea6 8620 movs r0, 0x86 ; 134
| 0x0801bea8 0090 str r0, [sp]
| 0x0801beaa dff8b832 ldr.w r3, [0x0801c16a] ; [0x801c168:4]=0x20004acc md380_menu_depth
| 0x0801beae dff8fc22 ldr.w r2, [0x0801c1b2] ; [0x801c1b0:4]=0x8025add
| 0x0801beb2 dff8f002 ldr.w r0, [0x0801c1aa] ; [0x801c1a8:4]=0x801be11
| 0x0801beb6 0068 ldr r0, [r0]
| 0x0801beb8 dff8bc12 ldr.w r1, [0x0801c17c] ; [0x801c17c:4]=0x2001e90e
| 0x0801bebc 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0801bec0 d0f80412 ldr.w r1, [r0, 0x204]
| 0x0801bec4 9d48 ldr r0, [0x0801c13c] ; [0x801c13c:4]=0x2001e915 md380_menu_id
| 0x0801bec6 0078 ldrb r0, [r0]
| 0x0801bec8 f0f731fc bl md380_create_menu_entry
| 0x0801becc dff89802 ldr.w r0, [0x0801c16c] ; [0x801c16c:4]=0x200049fc mn_editbuffer_poi
| 0x0801bed0 0078 ldrb r0, [r0]
| 0x0801bed2 f3f7bffe bl menu_add_number_of_menuentries_counts
| 0x0801bed6 9949 ldr r1, [0x0801c13e] ; [0x801c13c:4]=0x2001e915 md380_menu_id
| 0x0801bed8 0870 strb r0, [r1]
| 0x0801beda a648 ldr r0, [0x0801c176] ; [0x801c174:4]=0x2001e700 menu_memory_poi
| 0x0801bedc 0068 ldr r0, [r0]
| 0x0801bede 4068 ldr r0, [r0, 4]
| 0x0801bee0 dff8a412 ldr.w r1, [0x0801c18c] ; [0x801c18c:4]=0x2001cb54 msg_sms_hdr_prep
| 0x0801bee4 0860 str r0, [r1]
| 0x0801bee6 a048 ldr r0, [0x0801c16a] ; [0x801c168:4]=0x20004acc md380_menu_depth
| 0x0801bee8 0021 movs r1, 0
| 0x0801beea 0170 strb r1, [r0]
\ 0x0801beec 07bd pop {r0, r1, r2, pc}
/ (fcn) gfx_get_xpos 8
| Caller: func_0c7e8 paint_a_lot disp_something
| gfx_get_xpos ();
| 0x08021888 0348 ldr r0, [0x08021898] ; [0x8021898:4]=0x2001da1c gfx_info
| 0x0802188a b0f92200 ldrsh.w r0, [r0, 0x22] ; [r0+34] = gfx_info.xpos
\ 0x0802188e 7047 bx lr
/ (fcn) gfx_get_ypos 8
| Caller: paint_a_lot
| gfx_get_ypos ();
| 0x08021890 0148 ldr r0, [0x08021898] ; [0x8021898:4]=0x2001da1c gfx_info
| 0x08021892 b0f92400 ldrsh.w r0, [r0, 0x24] ; set [r0+36] = gfx_info.ypos
\ 0x08021896 7047 bx lr
/ (fcn) func_22a8c 26
| Caller: some_init func_475b8
| func_22a8c ();
| 0x08022a8c 80b5 push {r7, lr}
| 0x08022a8e c0b2 uxtb r0, r0
| 0x08022a90 6821 movs r1, 0x68 ; 'h' ; 104
| 0x08022a92 dff8a42a ldr.w r2, [0x0802353e] ; [0x802353c:4]=0x1edc0
| 0x08022a96 01fb0021 mla r1, r1, r0, r2
| 0x08022a9a 6822 movs r2, 0x68 ; 'h' ; 104
| 0x08022a9c dff8340b ldr.w r0, [0x080235d8] ; [0x80235d8:4]=0x2001e899
| 0x08022aa0 0ef0e9fc bl md380_spiflash_read
\ 0x08022aa4 01bd pop {r0, pc}
/ (fcn) func_36672 134
| Caller: update_scr_19
| func_36672 ();
| 0x08036672 10b5 push {r4, lr}
| 0x08036674 bd4c ldr r4, [0x0803696c] ; [0x803696c:4]=0x2001d2ac
| 0x08036676 fff77dff bl func_36574
| 0x0803667a be48 ldr r0, [0x08036976] ; [0x8036974:4]=0x2001e926
| 0x0803667c 0078 ldrb r0, [r0]
| 0x0803667e 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x08036682 10f8040c ldrb r0, [r0, -0x4]
| 0x08036686 0128 cmp r0, 1 ; 1
| ,=< 0x08036688 03d1 bne 0x8036692
| | 0x0803668a ba48 ldr r0, [0x08036976] ; [0x8036974:4]=0x2001e926
| | 0x0803668c 0078 ldrb r0, [r0]
| | 0x0803668e 00f052f8 bl func_36736
| `-> 0x08036692 b848 ldr r0, [0x08036976] ; [0x8036974:4]=0x2001e926
| 0x08036694 0078 ldrb r0, [r0]
| 0x08036696 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x0803669a 0021 movs r1, 0
| 0x0803669c 00f8021c strb r1, [r0, -0x2]
| 0x080366a0 b448 ldr r0, [0x08036974] ; [0x8036974:4]=0x2001e926
| 0x080366a2 0078 ldrb r0, [r0]
| 0x080366a4 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x080366a8 0121 movs r1, 1 ; 1
| 0x080366aa 00f8041c strb r1, [r0, -0x4]
| 0x080366ae b048 ldr r0, [0x08036972] ; [0x8036970:4]=0x2001e925
| 0x080366b0 0078 ldrb r0, [r0]
| 0x080366b2 0028 cmp r0, 0
| ,=< 0x080366b4 10d0 beq 0x80366d8
| | 0x080366b6 af48 ldr r0, [0x08036976] ; [0x8036974:4]=0x2001e926
| | 0x080366b8 0078 ldrb r0, [r0]
| | 0x080366ba 14eb8000 adds.w r0, r4, r0, lsl 2
| | 0x080366be ac49 ldr r1, [0x08036972] ; [0x8036970:4]=0x2001e925
| | 0x080366c0 0978 ldrb r1, [r1]
| | 0x080366c2 00f8011c strb r1, [r0, -0x1]
| | 0x080366c6 aa48 ldr r0, [0x08036972] ; [0x8036970:4]=0x2001e925
| | 0x080366c8 0078 ldrb r0, [r0]
| | 0x080366ca 14eb8000 adds.w r0, r4, r0, lsl 2
| | 0x080366ce a949 ldr r1, [0x08036976] ; [0x8036974:4]=0x2001e926
| | 0x080366d0 0978 ldrb r1, [r1]
| | 0x080366d2 00f8021c strb r1, [r0, -0x2]
| ,==< 0x080366d6 06e0 b 0x80366e6
| |`-> 0x080366d8 a648 ldr r0, [0x08036974] ; [0x8036974:4]=0x2001e926
| | 0x080366da 0078 ldrb r0, [r0]
| | 0x080366dc 14eb8000 adds.w r0, r4, r0, lsl 2
| | 0x080366e0 0021 movs r1, 0
| | 0x080366e2 00f8011c strb r1, [r0, -0x1]
| `--> 0x080366e6 a348 ldr r0, [0x08036976] ; [0x8036974:4]=0x2001e926
| 0x080366e8 0078 ldrb r0, [r0]
| 0x080366ea ecf705ff bl func_234f8
| 0x080366ee ecf7fafe bl func_234e6
| 0x080366f2 fff73fff bl func_36574
\ 0x080366f6 10bd pop {r4, pc}
/ (fcn) func_36736 210
| Caller: func_36672
| func_36736 ();
| 0x08036736 10b5 push {r4, lr}
| 0x08036738 8c49 ldr r1, [0x0803696c] ; [0x803696c:4]=0x2001d2ac
| 0x0803673a c0b2 uxtb r0, r0
| 0x0803673c 11eb8002 adds.w r2, r1, r0, lsl 2
| 0x08036740 12f8022c ldrb r2, [r2, -0x2]
| 0x08036744 002a cmp r2, 0
| ,=< 0x08036746 06d0 beq 0x8036756
| | 0x08036748 c0b2 uxtb r0, r0
| | 0x0803674a 11eb8002 adds.w r2, r1, r0, lsl 2
| | 0x0803674e 12f8022c ldrb r2, [r2, -0x2]
| | 0x08036752 152a cmp r2, 0x15 ; 21
| ,==< 0x08036754 0fd3 blo 0x8036776
| |`-> 0x08036756 c0b2 uxtb r0, r0
| | 0x08036758 11eb8002 adds.w r2, r1, r0, lsl 2
| | 0x0803675c 12f8012c ldrb r2, [r2, -0x1]
| | 0x08036760 531e subs r3, r2, 1
| | 0x08036762 dbb2 uxtb r3, r3
| | 0x08036764 142b cmp r3, 0x14 ; 20
| |,=< 0x08036766 38d2 bhs 0x80367da
| || 0x08036768 d2b2 uxtb r2, r2
| || 0x0803676a 11eb8202 adds.w r2, r1, r2, lsl 2
| || 0x0803676e 0023 movs r3, 0
| || 0x08036770 02f8023c strb r3, [r2, -0x2]
| ,===< 0x08036774 31e0 b 0x80367da
| |`--> 0x08036776 c0b2 uxtb r0, r0
| | | 0x08036778 11eb8002 adds.w r2, r1, r0, lsl 2
| | | 0x0803677c 12f8012c ldrb r2, [r2, -0x1]
| | | 0x08036780 002a cmp r2, 0
| |,==< 0x08036782 06d0 beq 0x8036792
| ||| 0x08036784 c0b2 uxtb r0, r0
| ||| 0x08036786 11eb8002 adds.w r2, r1, r0, lsl 2
| ||| 0x0803678a 12f8012c ldrb r2, [r2, -0x1]
| ||| 0x0803678e 152a cmp r2, 0x15 ; 21
| ,====< 0x08036790 0fd3 blo 0x80367b2
| ||`--> 0x08036792 c0b2 uxtb r0, r0
| || | 0x08036794 11eb8002 adds.w r2, r1, r0, lsl 2
| || | 0x08036798 12f8022c ldrb r2, [r2, -0x2]
| || | 0x0803679c 531e subs r3, r2, 1
| || | 0x0803679e dbb2 uxtb r3, r3
| || | 0x080367a0 142b cmp r3, 0x14 ; 20
| ||,==< 0x080367a2 1ad2 bhs 0x80367da
| |||| 0x080367a4 d2b2 uxtb r2, r2
| |||| 0x080367a6 11eb8202 adds.w r2, r1, r2, lsl 2
| |||| 0x080367aa 0023 movs r3, 0
| |||| 0x080367ac 02f8013c strb r3, [r2, -0x1]
| ,=====< 0x080367b0 13e0 b 0x80367da
| |`----> 0x080367b2 c0b2 uxtb r0, r0
| | ||| 0x080367b4 11eb8002 adds.w r2, r1, r0, lsl 2
| | ||| 0x080367b8 12f8012c ldrb r2, [r2, -0x1]
| | ||| 0x080367bc c0b2 uxtb r0, r0
| | ||| 0x080367be 11eb8003 adds.w r3, r1, r0, lsl 2
| | ||| 0x080367c2 13f8023c ldrb r3, [r3, -0x2]
| | ||| 0x080367c6 d2b2 uxtb r2, r2
| | ||| 0x080367c8 11eb8204 adds.w r4, r1, r2, lsl 2
| | ||| 0x080367cc 04f8023c strb r3, [r4, -0x2]
| | ||| 0x080367d0 dbb2 uxtb r3, r3
| | ||| 0x080367d2 11eb8303 adds.w r3, r1, r3, lsl 2
| | ||| 0x080367d6 03f8012c strb r2, [r3, -0x1]
| `-```-> 0x080367da c0b2 uxtb r0, r0
| 0x080367dc 11eb8002 adds.w r2, r1, r0, lsl 2
| 0x080367e0 0023 movs r3, 0
| 0x080367e2 02f8023c strb r3, [r2, -0x2]
| 0x080367e6 c0b2 uxtb r0, r0
| 0x080367e8 11eb8002 adds.w r2, r1, r0, lsl 2
| 0x080367ec 0023 movs r3, 0
| 0x080367ee 02f8013c strb r3, [r2, -0x1]
| 0x080367f2 c0b2 uxtb r0, r0
| 0x080367f4 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080367f8 0021 movs r1, 0
| 0x080367fa 00f8041c strb r1, [r0, -0x4]
| 0x080367fe ecf772fe bl func_234e6
| 0x08036802 fff7b7fe bl func_36574
\ 0x08036806 10bd pop {r4, pc}
/ (fcn) func_369bc 10
| Caller: init_more_and_start_watchdog
| func_369bc ();
| 0x080369bc dff82012 ldr.w r1, [0x08036be4] ; [0x8036be4:4]=0xf42400
| 0x080369c0 c0b2 uxtb r0, r0
| 0x080369c2 0860 str r0, [r1]
\ 0x080369c4 7047 bx lr
/ (fcn) func_369c6 226
| Caller: func_4e2e0 func_5267c
| func_369c6 ();
| 0x080369c6 f0b4 push {r4, r5, r6, r7}
| 0x080369c8 0021 movs r1, 0
| 0x080369ca 0022 movs r2, 0
| 0x080369cc 0023 movs r3, 0
| 0x080369ce 0224 movs r4, 2 ; 2
| 0x080369d0 0025 movs r5, 0
| 0x080369d2 0226 movs r6, 2 ; 2
| 0x080369d4 dff8f871 ldr.w r7, [0x08036bd4] ; [0x8036bd4:4]=0x40023804 io_RCC_PLLCFG
| 0x080369d8 3f68 ldr r7, [r7]
| 0x080369da 17f00c07 ands r7, r7, 0xc
| 0x080369de 3900 movs r1, r7
| 0x080369e0 0029 cmp r1, 0
| ,=< 0x080369e2 04d0 beq 0x80369ee
| | 0x080369e4 0429 cmp r1, 4 ; 4
| ,==< 0x080369e6 06d0 beq 0x80369f6
| || 0x080369e8 0829 cmp r1, 8 ; 8
| ,===< 0x080369ea 08d0 beq 0x80369fe
| ,====< 0x080369ec 35e0 b 0x8036a5a
| |||`-> 0x080369ee dff8f411 ldr.w r1, [0x08036bea] ; [0x8036be8:4]=0xb71b00
| ||| 0x080369f2 0160 str r1, [r0]
| |||,=< 0x080369f4 34e0 b 0x8036a60
| ||`--> 0x080369f6 dff8f011 ldr.w r1, [0x08036bee] ; [0x8036bec:4]=0x20004984
| || | 0x080369fa 0160 str r1, [r0]
| ||,==< 0x080369fc 30e0 b 0x8036a60
| |`---> 0x080369fe dff8d411 ldr.w r1, [0x08036bda] ; [0x8036bd8:4]=0x40023870 io_RCC_APB1
| | || 0x08036a02 0968 ldr r1, [r1]
| | || 0x08036a04 c1f38055 ubfx r5, r1, 0x16, 1
| | || 0x08036a08 dff8c811 ldr.w r1, [0x08036bd8] ; [0x8036bd8:4]=0x40023870 io_RCC_APB1
| | || 0x08036a0c 0968 ldr r1, [r1]
| | || 0x08036a0e 11f03f06 ands r6, r1, 0x3f
| | || 0x08036a12 002d cmp r5, 0
| |,===< 0x08036a14 0bd0 beq 0x8036a2e
| |||| 0x08036a16 dff8d011 ldr.w r1, [0x08036bee] ; [0x8036bec:4]=0x20004984
| |||| 0x08036a1a b1fbf6f1 udiv r1, r1, r6
| |||| 0x08036a1e dff8b421 ldr.w r2, [0x08036bda] ; [0x8036bd8:4]=0x40023870 io_RCC_APB1
| |||| 0x08036a22 1268 ldr r2, [r2]
| |||| 0x08036a24 c2f38812 ubfx r2, r2, 6, 9
| |||| 0x08036a28 02fb01f3 mul r3, r2, r1
| ,=====< 0x08036a2c 0ae0 b 0x8036a44
| ||`---> 0x08036a2e dff8b411 ldr.w r1, [0x08036bea] ; [0x8036be8:4]=0xb71b00
| || || 0x08036a32 b1fbf6f1 udiv r1, r1, r6
| || || 0x08036a36 dff89c21 ldr.w r2, [0x08036bda] ; [0x8036bd8:4]=0x40023870 io_RCC_APB1
| || || 0x08036a3a 1268 ldr r2, [r2]
| || || 0x08036a3c c2f38812 ubfx r2, r2, 6, 9
| || || 0x08036a40 02fb01f3 mul r3, r2, r1
| `-----> 0x08036a44 dff88c11 ldr.w r1, [0x08036bd8] ; [0x8036bd8:4]=0x40023870 io_RCC_APB1
| | || 0x08036a48 0968 ldr r1, [r1]
| | || 0x08036a4a c1f30141 ubfx r1, r1, 0x10, 2
| | || 0x08036a4e 491c adds r1, r1, 1
| | || 0x08036a50 4c00 lsls r4, r1, 1
| | || 0x08036a52 b3fbf4f1 udiv r1, r3, r4
| | || 0x08036a56 0160 str r1, [r0]
| |,===< 0x08036a58 02e0 b 0x8036a60
| `----> 0x08036a5a dff88811 ldr.w r1, [0x08036bea] ; [0x8036be8:4]=0xb71b00
| ||| 0x08036a5e 0160 str r1, [r0]
| ```-> 0x08036a60 dff86c11 ldr.w r1, [0x08036bd4] ; [0x8036bd4:4]=0x40023804 io_RCC_PLLCFG
| 0x08036a64 0968 ldr r1, [r1]
| 0x08036a66 11f0f001 ands r1, r1, 0xf0
| 0x08036a6a 0909 lsrs r1, r1, 4
| 0x08036a6c dff87c21 ldr.w r2, [0x08036bf0] ; [0x8036bf0:4]=0xffffcff
| 0x08036a70 8a5c ldrb r2, [r1, r2]
| 0x08036a72 0168 ldr r1, [r0]
| 0x08036a74 d140 lsrs r1, r2
| 0x08036a76 4160 str r1, [r0, 4]
| 0x08036a78 5549 ldr r1, [0x08036bd0] ; [0x8036bd0:4]=0x40023808 io_RCC_CFGR
| 0x08036a7a 0968 ldr r1, [r1]
| 0x08036a7c 11f4e051 ands r1, r1, 0x1c00
| 0x08036a80 890a lsrs r1, r1, 0xa
| 0x08036a82 dff86821 ldr.w r2, [0x08036bf2] ; [0x8036bf0:4]=0xffffcff
| 0x08036a86 8a5c ldrb r2, [r1, r2]
| 0x08036a88 4168 ldr r1, [r0, 4]
| 0x08036a8a d140 lsrs r1, r2
| 0x08036a8c 8160 str r1, [r0, 8]
| 0x08036a8e 5049 ldr r1, [0x08036bd2] ; [0x8036bd0:4]=0x40023808 io_RCC_CFGR
| 0x08036a90 0968 ldr r1, [r1]
| 0x08036a92 11f46041 ands r1, r1, 0xe000
| 0x08036a96 490b lsrs r1, r1, 0xd
| 0x08036a98 dff85021 ldr.w r2, [0x08036bf0] ; [0x8036bf0:4]=0xffffcff
| 0x08036a9c 8a5c ldrb r2, [r1, r2]
| 0x08036a9e 4168 ldr r1, [r0, 4]
| 0x08036aa0 d140 lsrs r1, r2
| 0x08036aa2 c160 str r1, [r0, 0xc]
| 0x08036aa4 f0bc pop {r4, r5, r6, r7}
\ 0x08036aa6 7047 bx lr
/ (fcn) func_36ade 8
| Caller: usb_dnld_handle
| func_36ade ();
| 0x08036ade 4649 ldr r1, [0x08036bfa] ; [0x8036bf8:4]=0x42470e40
| 0x08036ae0 c0b2 uxtb r0, r0
| 0x08036ae2 0860 str r0, [r1]
\ 0x08036ae4 7047 bx lr
/ (fcn) func_36ae6 32
| Caller: func_477a4 func_4ccbc init_more_and_start_watchdog func_499e2 adc1_adc2_and_dma2s3_init
| aes_startup_check func_4dc0c_more_bitbang_io func_48ade func_46f8e func_591bc
| func_4915c
| func_36ae6 ();
| 0x08036ae6 c9b2 uxtb r1, r1
| 0x08036ae8 0029 cmp r1, 0
| ,=< 0x08036aea 05d0 beq 0x8036af8
| | 0x08036aec 4349 ldr r1, [0x08036bfc] ; [0x8036bfc:4]=0x40023830 io_RCC_AHB1
| | 0x08036aee 0968 ldr r1, [r1]
| | 0x08036af0 0843 orrs r0, r1
| | 0x08036af2 4249 ldr r1, [0x08036bfe] ; [0x8036bfc:4]=0x40023830 io_RCC_AHB1
| | 0x08036af4 0860 str r0, [r1]
| ,==< 0x08036af6 05e0 b 0x8036b04
| |`-> 0x08036af8 4049 ldr r1, [0x08036bfc] ; [0x8036bfc:4]=0x40023830 io_RCC_AHB1
| | 0x08036afa 0968 ldr r1, [r1]
| | 0x08036afc 31ea0000 bics.w r0, r1, r0
| | 0x08036b00 3e49 ldr r1, [0x08036bfc] ; [0x8036bfc:4]=0x40023830 io_RCC_AHB1
| | 0x08036b02 0860 str r0, [r1]
\ `--> 0x08036b04 7047 bx lr
/ (fcn) func_36b06 32
| Caller: func_591bc
| func_36b06 ();
| 0x08036b06 c9b2 uxtb r1, r1
| 0x08036b08 0029 cmp r1, 0
| ,=< 0x08036b0a 05d0 beq 0x8036b18
| | 0x08036b0c 3c49 ldr r1, [0x08036c00] ; [0x8036c00:4]=0x40023834 io_RCC_AHB2
| | 0x08036b0e 0968 ldr r1, [r1]
| | 0x08036b10 0843 orrs r0, r1
| | 0x08036b12 3b49 ldr r1, [0x08036c02] ; [0x8036c00:4]=0x40023834 io_RCC_AHB2
| | 0x08036b14 0860 str r0, [r1]
| ,==< 0x08036b16 05e0 b 0x8036b24
| |`-> 0x08036b18 3949 ldr r1, [0x08036c00] ; [0x8036c00:4]=0x40023834 io_RCC_AHB2
| | 0x08036b1a 0968 ldr r1, [r1]
| | 0x08036b1c 31ea0000 bics.w r0, r1, r0
| | 0x08036b20 3749 ldr r1, [0x08036c00] ; [0x8036c00:4]=0x40023834 io_RCC_AHB2
| | 0x08036b22 0860 str r0, [r1]
\ `--> 0x08036b24 7047 bx lr
/ (fcn) func_36b26 32
| Caller: func_4729c
| func_36b26 ();
| 0x08036b26 c9b2 uxtb r1, r1
| 0x08036b28 0029 cmp r1, 0
| ,=< 0x08036b2a 05d0 beq 0x8036b38
| | 0x08036b2c 3549 ldr r1, [0x08036c04] ; [0x8036c04:4]=0x40023838 io_RCC_AHB3
| | 0x08036b2e 0968 ldr r1, [r1]
| | 0x08036b30 0843 orrs r0, r1
| | 0x08036b32 3449 ldr r1, [0x08036c06] ; [0x8036c04:4]=0x40023838 io_RCC_AHB3
| | 0x08036b34 0860 str r0, [r1]
| ,==< 0x08036b36 05e0 b 0x8036b44
| |`-> 0x08036b38 3249 ldr r1, [0x08036c04] ; [0x8036c04:4]=0x40023838 io_RCC_AHB3
| | 0x08036b3a 0968 ldr r1, [r1]
| | 0x08036b3c 31ea0000 bics.w r0, r1, r0
| | 0x08036b40 3049 ldr r1, [0x08036c04] ; [0x8036c04:4]=0x40023838 io_RCC_AHB3
| | 0x08036b42 0860 str r0, [r1]
\ `--> 0x08036b44 7047 bx lr
/ (fcn) func_36b46 32
| Caller: init_more_and_start_watchdog func_49ca8 func_499e2 func_51c6a func_48ade
| func_4915c
| func_36b46 ();
| 0x08036b46 c9b2 uxtb r1, r1
| 0x08036b48 0029 cmp r1, 0
| ,=< 0x08036b4a 05d0 beq 0x8036b58
| | 0x08036b4c 2e49 ldr r1, [0x08036c08] ; [0x8036c08:4]=0x40023840
| | 0x08036b4e 0968 ldr r1, [r1]
| | 0x08036b50 0843 orrs r0, r1
| | 0x08036b52 2d49 ldr r1, [0x08036c0a] ; [0x8036c08:4]=0x40023840
| | 0x08036b54 0860 str r0, [r1]
| ,==< 0x08036b56 05e0 b 0x8036b64
| |`-> 0x08036b58 2b49 ldr r1, [0x08036c08] ; [0x8036c08:4]=0x40023840
| | 0x08036b5a 0968 ldr r1, [r1]
| | 0x08036b5c 31ea0000 bics.w r0, r1, r0
| | 0x08036b60 2949 ldr r1, [0x08036c08] ; [0x8036c08:4]=0x40023840
| | 0x08036b62 0860 str r0, [r1]
\ `--> 0x08036b64 7047 bx lr
/ (fcn) func_36b66 32
| Caller: func_591bc init_more_and_start_watchdog func_499e2 adc1_adc2_and_dma2s3_init
| func_36b66 ();
| 0x08036b66 c9b2 uxtb r1, r1
| 0x08036b68 0029 cmp r1, 0
| ,=< 0x08036b6a 05d0 beq 0x8036b78
| | 0x08036b6c 2749 ldr r1, [0x08036c0c] ; [0x8036c0c:4]=0x40023844 io_RCC_APB2
| | 0x08036b6e 0968 ldr r1, [r1]
| | 0x08036b70 0843 orrs r0, r1
| | 0x08036b72 2649 ldr r1, [0x08036c0e] ; [0x8036c0c:4]=0x40023844 io_RCC_APB2
| | 0x08036b74 0860 str r0, [r1]
| ,==< 0x08036b76 05e0 b 0x8036b84
| |`-> 0x08036b78 2449 ldr r1, [0x08036c0c] ; [0x8036c0c:4]=0x40023844 io_RCC_APB2
| | 0x08036b7a 0968 ldr r1, [r1]
| | 0x08036b7c 31ea0000 bics.w r0, r1, r0
| | 0x08036b80 2249 ldr r1, [0x08036c0c] ; [0x8036c0c:4]=0x40023844 io_RCC_APB2
| | 0x08036b82 0860 str r0, [r1]
\ `--> 0x08036b84 7047 bx lr
/ (fcn) func_36b86 68
| Caller: func_51c6a
| func_36b86 ();
| 0x08036b86 10b4 push {r4}
| 0x08036b88 0022 movs r2, 0
| 0x08036b8a 0023 movs r3, 0
| 0x08036b8c 0021 movs r1, 0
| 0x08036b8e c0b2 uxtb r0, r0
| 0x08036b90 4409 lsrs r4, r0, 5
| 0x08036b92 e4b2 uxtb r4, r4
| 0x08036b94 2200 movs r2, r4
| 0x08036b96 012a cmp r2, 1 ; 1
| ,=< 0x08036b98 02d1 bne 0x8036ba0
| | 0x08036b9a 0c49 ldr r1, [0x08036bce] ; [0x8036bcc:4]=0x40023800 io_RCC
| | 0x08036b9c 0b68 ldr r3, [r1]
| ,==< 0x08036b9e 06e0 b 0x8036bae
| |`-> 0x08036ba0 022a cmp r2, 2 ; 2
| |,=< 0x08036ba2 02d1 bne 0x8036baa
| || 0x08036ba4 0c49 ldr r1, [0x08036bd8] ; [0x8036bd8:4]=0x40023870 io_RCC_APB1
| || 0x08036ba6 0b68 ldr r3, [r1]
| ,===< 0x08036ba8 01e0 b 0x8036bae
| ||`-> 0x08036baa 1949 ldr r1, [0x08036c12] ; [0x8036c10:4]=0x40023874 io_RCC_CSR
| || 0x08036bac 0b68 ldr r3, [r1]
| ``--> 0x08036bae c0b2 uxtb r0, r0
| 0x08036bb0 10f01f02 ands r2, r0, 0x1f
| 0x08036bb4 0120 movs r0, 1 ; 1
| 0x08036bb6 9040 lsls r0, r2
| 0x08036bb8 0342 tst r3, r0
| ,=< 0x08036bba 01d0 beq 0x8036bc0
| | 0x08036bbc 0121 movs r1, 1 ; 1
| ,==< 0x08036bbe 00e0 b 0x8036bc2
| |`-> 0x08036bc0 0021 movs r1, 0
| `--> 0x08036bc2 0800 movs r0, r1
| 0x08036bc4 c0b2 uxtb r0, r0
| 0x08036bc6 10bc pop {r4}
\ 0x08036bc8 7047 bx lr
/ (fcn) func_36dac 92
| Caller: func_36e76
| func_36dac ();
| 0x08036dac 18b4 push {r3, r4}
| 0x08036dae 0a00 movs r2, r1
| 0x08036db0 0021 movs r1, 0
| 0x08036db2 8df80020 strb.w r2, [sp]
| 0x08036db6 0122 movs r2, 1 ; 1
| ,=< 0x08036db8 13e0 b 0x8036de2
| .--> 0x08036dba 00ab add r3, sp, 0
| || 0x08036dbc d318 adds r3, r2, r3
| || 0x08036dbe 13f8013c ldrb r3, [r3, -0x1]
| || 0x08036dc2 5b00 lsls r3, r3, 1
| || 0x08036dc4 00ac add r4, sp, 0
| || 0x08036dc6 1355 strb r3, [r2, r4]
| || 0x08036dc8 00ab add r3, sp, 0
| || 0x08036dca d318 adds r3, r2, r3
| || 0x08036dcc 13f8013c ldrb r3, [r3, -0x1]
| || 0x08036dd0 1b06 lsls r3, r3, 0x18
| ,===< 0x08036dd2 05d5 bpl 0x8036de0
| ||| 0x08036dd4 00ab add r3, sp, 0
| ||| 0x08036dd6 d35c ldrb r3, [r2, r3]
| ||| 0x08036dd8 93f01b03 eors r3, r3, 0x1b
| ||| 0x08036ddc 00ac add r4, sp, 0
| ||| 0x08036dde 1355 strb r3, [r2, r4]
| `---> 0x08036de0 521c adds r2, r2, 1
| |`-> 0x08036de2 042a cmp r2, 4 ; 4
| `==< 0x08036de4 e9db blt 0x8036dba
| 0x08036de6 0022 movs r2, 0
| ,=< 0x08036de8 08e0 b 0x8036dfc
| .--> 0x08036dea c0b2 uxtb r0, r0
| || 0x08036dec 50fa02f3 asrs.w r3, r0, r2
| || 0x08036df0 db07 lsls r3, r3, 0x1f
| ,===< 0x08036df2 02d5 bpl 0x8036dfa
| ||| 0x08036df4 00ab add r3, sp, 0
| ||| 0x08036df6 d35c ldrb r3, [r2, r3]
| ||| 0x08036df8 5940 eors r1, r3
| `---> 0x08036dfa 521c adds r2, r2, 1
| |`-> 0x08036dfc 042a cmp r2, 4 ; 4
| `==< 0x08036dfe f4db blt 0x8036dea
| 0x08036e00 0800 movs r0, r1
| 0x08036e02 c0b2 uxtb r0, r0
| 0x08036e04 12bc pop {r1, r4}
\ 0x08036e06 7047 bx lr
/ (fcn) func_36e08 42
| Caller: aes_cipher
| func_36e08 ();
| 0x08036e08 10b4 push {r4}
| 0x08036e0a 0021 movs r1, 0
| ,=< 0x08036e0c 0be0 b 0x8036e26
| .--> 0x08036e0e 10eb8103 adds.w r3, r0, r1, lsl 2
| || 0x08036e12 d35c ldrb r3, [r2, r3]
| || 0x08036e14 4a4c ldr r4, [0x08036f40] ; [0x8036f40:4]=0x20002c88
| || 0x08036e16 1b5d ldrb r3, [r3, r4]
| || 0x08036e18 10eb8104 adds.w r4, r0, r1, lsl 2
| || 0x08036e1c 1355 strb r3, [r2, r4]
| || 0x08036e1e 521c adds r2, r2, 1
| .---> 0x08036e20 042a cmp r2, 4 ; 4
| |`==< 0x08036e22 f4db blt 0x8036e0e
| | | 0x08036e24 491c adds r1, r1, 1
| | `-> 0x08036e26 0429 cmp r1, 4 ; 4
| | ,=< 0x08036e28 01da bge 0x8036e2e
| | | 0x08036e2a 0022 movs r2, 0
| `===< 0x08036e2c f8e7 b 0x8036e20
| `-> 0x08036e2e 10bc pop {r4}
\ 0x08036e30 7047 bx lr
/ (fcn) func_36e32 68
| Caller: aes_cipher
| func_36e32 ();
| 0x08036e32 38b4 push {r3, r4, r5}
| 0x08036e34 0121 movs r1, 1 ; 1
| ,=< 0x08036e36 08e0 b 0x8036e4a
| .--> 0x08036e38 10eb8103 adds.w r3, r0, r1, lsl 2
| || 0x08036e3c 00ac add r4, sp, 0
| || 0x08036e3e 145d ldrb r4, [r2, r4]
| || 0x08036e40 d454 strb r4, [r2, r3]
| || 0x08036e42 521c adds r2, r2, 1
| .---> 0x08036e44 042a cmp r2, 4 ; 4
| |`==< 0x08036e46 f7db blt 0x8036e38
| | | 0x08036e48 491c adds r1, r1, 1
| | `-> 0x08036e4a 0429 cmp r1, 4 ; 4
| | ,=< 0x08036e4c 11da bge 0x8036e72
| | | 0x08036e4e 0022 movs r2, 0
| |,==< 0x08036e50 0be0 b 0x8036e6a
| .----> 0x08036e52 8b18 adds r3, r1, r2
| |||| 0x08036e54 0424 movs r4, 4 ; 4
| |||| 0x08036e56 93fbf4f5 sdiv r5, r3, r4
| |||| 0x08036e5a 05fb1435 mls r5, r5, r4, r3
| |||| 0x08036e5e 10eb8103 adds.w r3, r0, r1, lsl 2
| |||| 0x08036e62 eb5c ldrb r3, [r5, r3]
| |||| 0x08036e64 00ac add r4, sp, 0
| |||| 0x08036e66 1355 strb r3, [r2, r4]
| |||| 0x08036e68 521c adds r2, r2, 1
| ||`--> 0x08036e6a 042a cmp r2, 4 ; 4
| `====< 0x08036e6c f1db blt 0x8036e52
| | | 0x08036e6e 0022 movs r2, 0
| `===< 0x08036e70 e8e7 b 0x8036e44
| `-> 0x08036e72 31bc pop {r0, r4, r5}
\ 0x08036e74 7047 bx lr
/ (fcn) func_36e76 148
| Caller: aes_cipher
| func_36e76 ();
| 0x08036e76 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x08036e7a 82b0 sub sp, 8
| 0x08036e7c 0400 movs r4, r0
| 0x08036e7e 0025 movs r5, 0
| ,=< 0x08036e80 33e0 b 0x8036eea
| .--> 0x08036e82 00a8 add r0, sp, 0
| || 0x08036e84 315c ldrb r1, [r6, r0]
| || 0x08036e86 0220 movs r0, 2 ; 2
| || 0x08036e88 fff790ff bl func_36dac
| || 0x08036e8c 0700 movs r7, r0
| || 0x08036e8e 701c adds r0, r6, 1
| || 0x08036e90 0421 movs r1, 4 ; 4
| || 0x08036e92 90fbf1f2 sdiv r2, r0, r1
| || 0x08036e96 02fb1102 mls r2, r2, r1, r0
| || 0x08036e9a 00a8 add r0, sp, 0
| || 0x08036e9c 115c ldrb r1, [r2, r0]
| || 0x08036e9e 0320 movs r0, 3 ; 3
| || 0x08036ea0 fff784ff bl func_36dac
| || 0x08036ea4 8046 mov r8, r0
| || 0x08036ea6 b01c adds r0, r6, 2
| || 0x08036ea8 0421 movs r1, 4 ; 4
| || 0x08036eaa 90fbf1f2 sdiv r2, r0, r1
| || 0x08036eae 02fb1102 mls r2, r2, r1, r0
| || 0x08036eb2 00a8 add r0, sp, 0
| || 0x08036eb4 115c ldrb r1, [r2, r0]
| || 0x08036eb6 0120 movs r0, 1 ; 1
| || 0x08036eb8 fff778ff bl func_36dac
| || 0x08036ebc 98ea0701 eors.w r1, r8, r7
| || 0x08036ec0 90ea0107 eors.w r7, r0, r1
| || 0x08036ec4 f01c adds r0, r6, 3
| || 0x08036ec6 0421 movs r1, 4 ; 4
| || 0x08036ec8 90fbf1f2 sdiv r2, r0, r1
| || 0x08036ecc 02fb1102 mls r2, r2, r1, r0
| || 0x08036ed0 00a8 add r0, sp, 0
| || 0x08036ed2 115c ldrb r1, [r2, r0]
| || 0x08036ed4 0120 movs r0, 1 ; 1
| || 0x08036ed6 fff769ff bl func_36dac
| || 0x08036eda 7840 eors r0, r7
| || 0x08036edc 14eb8601 adds.w r1, r4, r6, lsl 2
| || 0x08036ee0 6854 strb r0, [r5, r1]
| || 0x08036ee2 761c adds r6, r6, 1
| .---> 0x08036ee4 042e cmp r6, 4 ; 4
| |`==< 0x08036ee6 ccdb blt 0x8036e82
| | | 0x08036ee8 6d1c adds r5, r5, 1
| | `-> 0x08036eea 042d cmp r5, 4 ; 4
| | ,=< 0x08036eec 0bda bge 0x8036f06
| | | 0x08036eee 0026 movs r6, 0
| |,==< 0x08036ef0 05e0 b 0x8036efe
| .----> 0x08036ef2 14eb8600 adds.w r0, r4, r6, lsl 2
| |||| 0x08036ef6 285c ldrb r0, [r5, r0]
| |||| 0x08036ef8 00a9 add r1, sp, 0
| |||| 0x08036efa 7054 strb r0, [r6, r1]
| |||| 0x08036efc 761c adds r6, r6, 1
| ||`--> 0x08036efe 042e cmp r6, 4 ; 4
| `====< 0x08036f00 f7db blt 0x8036ef2
| | | 0x08036f02 0026 movs r6, 0
| `===< 0x08036f04 eee7 b 0x8036ee4
\ `-> 0x08036f06 bde8f381 pop.w {r0, r1, r4, r5, r6, r7, r8, pc}
/ (fcn) func_36f0a 46
| Caller: aes_cipher
| func_36f0a ();
| 0x08036f0a 30b4 push {r4, r5}
| 0x08036f0c 0023 movs r3, 0
| ,=< 0x08036f0e 0de0 b 0x8036f2c
| .--> 0x08036f10 10eb8204 adds.w r4, r0, r2, lsl 2
| || 0x08036f14 1c5d ldrb r4, [r3, r4]
| || 0x08036f16 11eb8205 adds.w r5, r1, r2, lsl 2
| || 0x08036f1a 5d5d ldrb r5, [r3, r5]
| || 0x08036f1c 6c40 eors r4, r5
| || 0x08036f1e 10eb8205 adds.w r5, r0, r2, lsl 2
| || 0x08036f22 5c55 strb r4, [r3, r5]
| || 0x08036f24 521c adds r2, r2, 1
| .---> 0x08036f26 042a cmp r2, 4 ; 4
| |`==< 0x08036f28 f2db blt 0x8036f10
| | | 0x08036f2a 5b1c adds r3, r3, 1
| | `-> 0x08036f2c 042b cmp r3, 4 ; 4
| | ,=< 0x08036f2e 01da bge 0x8036f34
| | | 0x08036f30 0022 movs r2, 0
| `===< 0x08036f32 f8e7 b 0x8036f26
| `-> 0x08036f34 30bc pop {r4, r5}
\ 0x08036f36 7047 bx lr
/ (fcn) func_36f90 8
| Caller: gfx_bmp_sub2
| func_36f90 ();
| 0x08036f90 80b5 push {r7, lr}
| 0x08036f92 fff7dbff bl func_36f4c
\ 0x08036f96 02bd pop {r1, pc}
/ (fcn) func_36f9a 32
| Caller: F_4315
| func_36f9a ();
| 0x08036f9a 38b5 push {r3, r4, r5, lr}
| 0x08036f9c 0400 movs r4, r0
| 0x08036f9e 0d00 movs r5, r1
| 0x08036fa0 24b2 sxth r4, r4
| 0x08036fa2 002c cmp r4, 0
| ,=< 0x08036fa4 08d0 beq 0x8036fb8
| | 0x08036fa6 2000 movs r0, r4
| | 0x08036fa8 00b2 sxth r0, r0
| | 0x08036faa fbf75bfd bl gfx_draw_sub_32a64
| | 0x08036fae 4563 str r5, [r0, 0x34]
| | 0x08036fb0 2000 movs r0, r4
| | 0x08036fb2 00b2 sxth r0, r0
| | 0x08036fb4 e5f73efc bl gfx_1c834
\ `-> 0x08036fb8 31bd pop {r0, r4, r5, pc}
/ (fcn) func_37886 12
| Caller: func_3b42a func_4c148 func_37bb8
| func_37886 ();
| 0x08037886 7a4b ldr r3, [0x08037a72] ; [0x8037a70:4]=0x200049f4
| 0x08037888 1b68 ldr r3, [r3]
| 0x0803788a 0362 str r3, [r0, 0x20]
| 0x0803788c c284 strh r2, [r0, 0x26]
| 0x0803788e 8184 strh r1, [r0, 0x24]
\ 0x08037890 7047 bx lr
/ (fcn) func_37892 122
| Caller: func_37b74 func_4c0ea
| func_37892 ();
| 0x08037892 38b5 push {r3, r4, r5, lr}
| 0x08037894 0400 movs r4, r0
| 0x08037896 0d00 movs r5, r1
| 0x08037898 2000 movs r0, r4
| 0x0803789a 00b2 sxth r0, r0
| 0x0803789c fbf7e2f8 bl gfx_draw_sub_32a64
| 0x080378a0 2968 ldr r1, [r5]
| 0x080378a2 0d29 cmp r1, 0xd ; 13
| ,=< 0x080378a4 32d0 beq 0x803790c
| | 0x080378a6 1129 cmp r1, 0x11 ; 17
| ,==< 0x080378a8 22d0 beq 0x80378f0
| || 0x080378aa 1429 cmp r1, 0x14 ; 20
| ,===< 0x080378ac 64d0 beq 0x8037978
| ||| 0x080378ae 1529 cmp r1, 0x15 ; 21
| ,====< 0x080378b0 19d0 beq 0x80378e6
| |||| 0x080378b2 1629 cmp r1, 0x16 ; 22
| ,=====< 0x080378b4 38d0 beq 0x8037928
| ||||| 0x080378b6 1f29 cmp r1, 0x1f ; 31
| ,======< 0x080378b8 3ad0 beq 0x8037930
| |||||| 0x080378ba 2029 cmp r1, 0x20 ; 32
| ,=======< 0x080378bc 54d0 beq 0x8037968
| ||||||| 0x080378be b1f5407f cmp.w r1, 0x300 ; 768
| ========< 0x080378c2 21d1 bne 0x8037908
| ||||||| 0x080378c4 016a ldr r1, [r0, 0x20]
| ||||||| 0x080378c6 4969 ldr r1, [r1, 0x14]
| ||||||| 0x080378c8 aa68 ldr r2, [r5, 8]
| ||||||| 0x080378ca 0262 str r2, [r0, 0x20]
| ||||||| 0x080378cc 006a ldr r0, [r0, 0x20]
| ||||||| 0x080378ce 4069 ldr r0, [r0, 0x14]
| ||||||| 0x080378d0 091a subs r1, r1, r0
| ||||||| 0x080378d2 2000 movs r0, r4
| ||||||| 0x080378d4 00b2 sxth r0, r0
| ||||||| 0x080378d6 fff7ebfe bl func_376b0
| ||||||| 0x080378da 2000 movs r0, r4
| ||||||| 0x080378dc 00b2 sxth r0, r0
| ||||||| 0x080378de e4f7a9ff bl gfx_1c834
| ||||||| 0x080378e2 0020 movs r0, 0
| ========< 0x080378e4 11e0 b 0x803790a
| |||`----> 0x080378e6 b0f92400 ldrsh.w r0, [r0, 0x24]
| ||| ||| 0x080378ea a860 str r0, [r5, 8]
| ||| ||| 0x080378ec 0020 movs r0, 0
| |||,====< 0x080378ee 0ce0 b 0x803790a
| |||||`--> 0x080378f0 90f82600 ldrb.w r0, [r0, 0x26]
| ||||| | 0x080378f4 c006 lsls r0, r0, 0x1b
| |||||,==< 0x080378f6 07d5 bpl 0x8037908
| ||||||| 0x080378f8 a868 ldr r0, [r5, 8]
| ||||||| 0x080378fa 007a ldrb r0, [r0, 8]
| ||||||| 0x080378fc 0028 cmp r0, 0
| ========< 0x080378fe 03d0 beq 0x8037908
| ||||||| 0x08037900 2000 movs r0, r4
| ||||||| 0x08037902 00b2 sxth r0, r0
| ||||||| 0x08037904 fff71efc bl func_37144
| -----`--> 0x08037908 0120 movs r0, 1 ; 1
\ ---`----> 0x0803790a 32bd pop {r1, r4, r5, pc}
/ (fcn) func_379b0 34
| Caller: draw_some_bitmap_and_text
| func_379b0 ();
| 0x080379b0 1cb5 push {r2, r3, r4, lr}
| 0x080379b2 0b00 movs r3, r1
| 0x080379b4 1400 movs r4, r2
| 0x080379b6 90f82610 ldrb.w r1, [r0, 0x26]
| 0x080379ba 0907 lsls r1, r1, 0x1c
| ,=< 0x080379bc 04d5 bpl 0x80379c8
| | 0x080379be 1a00 movs r2, r3
| | 0x080379c0 00a9 add r1, sp, 0
| | 0x080379c2 fff7b8fe bl func_37736
| | 0x080379c6 00ab add r3, sp, 0
| `-> 0x080379c8 2100 movs r1, r4
| 0x080379ca 1800 movs r0, r3
| 0x080379cc 03f03bf9 bl menu_draw_sub_3ac46
\ 0x080379d0 13bd pop {r0, r1, r4, pc}
/ (fcn) func_379f0 62
| Caller: draw_some_bitmap_and_text
| func_379f0 ();
| 0x080379f0 30b5 push {r4, r5, lr}
| 0x080379f2 83b0 sub sp, 0xc
| 0x080379f4 0400 movs r4, r0
| 0x080379f6 0d00 movs r5, r1
| 0x080379f8 002d cmp r5, 0
| ,=< 0x080379fa 03d1 bne 0x8037a04
| | 0x080379fc 00a8 add r0, sp, 0
| | 0x080379fe 14f04df9 bl func_4bc9c
| | 0x08037a02 00ad add r5, sp, 0
| `-> 0x08037a04 94f82600 ldrb.w r0, [r4, 0x26]
| 0x08037a08 0007 lsls r0, r0, 0x1c
| ,=< 0x08037a0a 05d5 bpl 0x8037a18
| | 0x08037a0c 2a00 movs r2, r5
| | 0x08037a0e 00a9 add r1, sp, 0
| | 0x08037a10 2000 movs r0, r4
| | 0x08037a12 fff790fe bl func_37736
| | 0x08037a16 00ad add r5, sp, 0
| `-> 0x08037a18 2900 movs r1, r5
| 0x08037a1a 2000 movs r0, r4
| 0x08037a1c fff755fe bl func_376ca
| 0x08037a20 0028 cmp r0, 0
| ,=< 0x08037a22 03d0 beq 0x8037a2c
| | 0x08037a24 2800 movs r0, r5
| | 0x08037a26 216a ldr r1, [r4, 0x20]
| | 0x08037a28 c968 ldr r1, [r1, 0xc]
| | 0x08037a2a 8847 blx r1
\ `-> 0x08037a2c 37bd pop {r0, r1, r2, r4, r5, pc}
/ (fcn) func_37a74 22
| Caller: func_523a8 func_4c2cc gfx_32d8c gfx_334f8 func_3b376 func_37792
| func_37a74 ();
| 0x08037a74 80b5 push {r7, lr}
| 0x08037a76 00b2 sxth r0, r0
| 0x08037a78 0028 cmp r0, 0
| ,=< 0x08037a7a 04d0 beq 0x8037a86
| | 0x08037a7c 00b2 sxth r0, r0
| | 0x08037a7e faf7f1ff bl gfx_draw_sub_32a64
| | 0x08037a82 b0f91600 ldrsh.w r0, [r0, 0x16]
| `-> 0x08037a86 00b2 sxth r0, r0
\ 0x08037a88 02bd pop {r1, pc}
/ (fcn) func_37a8a 10
| func_37a8a ();
| 0x08037a8a 017d ldrb r1, [r0, 0x14]
| 0x08037a8c c07d ldrb r0, [r0, 0x17]
| 0x08037a8e 00fb01f0 mul r0, r0, r1
\ 0x08037a92 7047 bx lr
/ (fcn) MultiplySomethingFromStruct 10
| Caller: menu_draw_something2
| MultiplySomethingFromStruct ();
| 0x08037a94 417d ldrb r1, [r0, 0x15]
| 0x08037a96 c07d ldrb r0, [r0, 0x17]
| 0x08037a98 00fb01f0 mul r0, r0, r1
\ 0x08037a9c 7047 bx lr
/ (fcn) func_37a9e 26
| func_37a9e ();
| 0x08037a9e 80b5 push {r7, lr}
| 0x08037aa0 00b2 sxth r0, r0
| 0x08037aa2 0028 cmp r0, 0
| ,=< 0x08037aa4 07d0 beq 0x8037ab6
| | 0x08037aa6 00b2 sxth r0, r0
| | 0x08037aa8 faf7dcff bl gfx_draw_sub_32a64
| | 0x08037aac 818b ldrh r1, [r0, 0x1c]
| | 0x08037aae 4df6fb72 movw r2, 0xdffb
| | 0x08037ab2 1140 ands r1, r2
| | 0x08037ab4 8183 strh r1, [r0, 0x1c]
\ `-> 0x08037ab6 01bd pop {r0, pc}
/ (fcn) func_37ab8 72
| Caller: func_26f64 func_27e6c
| func_37ab8 ();
| 0x08037ab8 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x08037aba 0400 movs r4, r0
| 0x08037abc 0d00 movs r5, r1
| 0x08037abe 0026 movs r6, 0
| 0x08037ac0 2900 movs r1, r5
| 0x08037ac2 b4f90000 ldrsh.w r0, [r4]
| 0x08037ac6 14f03bf9 bl gfx_4bd40
| 0x08037aca 0028 cmp r0, 0
| ,=< 0x08037acc 16d0 beq 0x8037afc
| | 0x08037ace 2800 movs r0, r5
| | 0x08037ad0 14f045f9 bl gfx_4bd5e
| | 0x08037ad4 401c adds r0, r0, 1
| | 0x08037ad6 00b2 sxth r0, r0
| | 0x08037ad8 faf7b9ff bl func_32a4e
| | 0x08037adc 0700 movs r7, r0
| | 0x08037ade 3fb2 sxth r7, r7
| | 0x08037ae0 002f cmp r7, 0
| ,==< 0x08037ae2 0bd0 beq 0x8037afc
| || 0x08037ae4 3800 movs r0, r7
| || 0x08037ae6 00b2 sxth r0, r0
| || 0x08037ae8 faf7bcff bl gfx_draw_sub_32a64
| || 0x08037aec 2900 movs r1, r5
| || 0x08037aee 03f0bbf9 bl func_3ae68
| || 0x08037af2 2000 movs r0, r4
| || 0x08037af4 fbf70ef8 bl gfx_32b14
| || 0x08037af8 2780 strh r7, [r4]
| || 0x08037afa 0126 movs r6, 1 ; 1
| ``-> 0x08037afc 3000 movs r0, r6
\ 0x08037afe f2bd pop {r1, r4, r5, r6, r7, pc}
/ (fcn) func_37b00 10
| Caller: func_37b6c
| func_37b00 ();
| 0x08037b00 80b5 push {r7, lr}
| 0x08037b02 2830 adds r0, 0x28
| 0x08037b04 fbf706f8 bl gfx_32b14
\ 0x08037b08 01bd pop {r0, pc}
/ (fcn) func_37b74 68
| func_37b74 ();
| 0x08037b74 70b5 push {r4, r5, r6, lr}
| 0x08037b76 0400 movs r4, r0
| 0x08037b78 b4f90450 ldrsh.w r5, [r4, 4]
| 0x08037b7c 2800 movs r0, r5
| 0x08037b7e 00b2 sxth r0, r0
| 0x08037b80 faf770ff bl gfx_draw_sub_32a64
| 0x08037b84 0600 movs r6, r0
| 0x08037b86 2100 movs r1, r4
| 0x08037b88 2800 movs r0, r5
| 0x08037b8a 00b2 sxth r0, r0
| 0x08037b8c fff781fe bl func_37892
| 0x08037b90 0028 cmp r0, 0
| ,=< 0x08037b92 10d0 beq 0x8037bb6
| | 0x08037b94 2068 ldr r0, [r4]
| | 0x08037b96 0b28 cmp r0, 0xb ; 11
| ,==< 0x08037b98 07d0 beq 0x8037baa
| || 0x08037b9a 0f28 cmp r0, 0xf ; 15
| ,===< 0x08037b9c 08d1 bne 0x8037bb0
| ||| 0x08037b9e 3100 movs r1, r6
| ||| 0x08037ba0 2800 movs r0, r5
| ||| 0x08037ba2 00b2 sxth r0, r0
| ||| 0x08037ba4 fff7b1ff bl func_37b0a
| ,====< 0x08037ba8 05e0 b 0x8037bb6
| ||`--> 0x08037baa 3000 movs r0, r6
| || | 0x08037bac fff7deff bl func_37b6c
| |`---> 0x08037bb0 2000 movs r0, r4
| | | 0x08037bb2 e5f741fb bl gfx_1d238
\ `--`-> 0x08037bb6 70bd pop {r4, r5, r6, pc}
/ (fcn) func_37bb8 152
| Caller: func_27ed0
| func_37bb8 ();
| 0x08037bb8 2de9ff41 push.w {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
| 0x08037bbc bdf92860 ldrsh.w r6, [sp, 0x28]
| 0x08037bc0 0b9f ldr r7, [sp, 0x2c]
| 0x08037bc2 0c9c ldr r4, [sp, 0x30]
| 0x08037bc4 0d9d ldr r5, [sp, 0x34]
| 0x08037bc6 5ff01c0c movs.w ip, 0x1c ; 28
| 0x08037bca cdf80cc0 str.w ip, [sp, 0xc]
| 0x08037bce dff880c0 ldr.w ip, [0x08037c56] ; [0x8037c54:4]=0x200049f0
| 0x08037bd2 cdf808c0 str.w ip, [sp, 8]
| 0x08037bd6 bfb2 uxth r7, r7
| 0x08037bd8 0197 str r7, [sp, 4]
| 0x08037bda 36b2 sxth r6, r6
| 0x08037bdc 0096 str r6, [sp]
| 0x08037bde e4f745fe bl gfx_1c86c
| 0x08037be2 0600 movs r6, r0
| 0x08037be4 36b2 sxth r6, r6
| 0x08037be6 002e cmp r6, 0
| ,=< 0x08037be8 2dd0 beq 0x8037c46
| | 0x08037bea 5ff00008 movs.w r8, 0
| | 0x08037bee 3000 movs r0, r6
| | 0x08037bf0 00b2 sxth r0, r0
| | 0x08037bf2 faf737ff bl gfx_draw_sub_32a64
| | 0x08037bf6 0700 movs r7, r0
| | 0x08037bf8 0022 movs r2, 0
| | 0x08037bfa 2900 movs r1, r5
| | 0x08037bfc 3800 movs r0, r7
| | 0x08037bfe fff742fe bl func_37886
| | 0x08037c02 0e9d ldr r5, [sp, 0x38]
| | 0x08037c04 002d cmp r5, 0
| ,==< 0x08037c06 13d0 beq 0x8037c30
| || 0x08037c08 2800 movs r0, r5
| || 0x08037c0a 03f011f9 bl gfx_3ae30
| || 0x08037c0e 401c adds r0, r0, 1
| || 0x08037c10 00b2 sxth r0, r0
| || 0x08037c12 fbf7a5f8 bl gfx_32d60
| || 0x08037c16 8046 mov r8, r0
| || 0x08037c18 0ffa88f8 sxth.w r8, r8
| || 0x08037c1c b8f1000f cmp.w r8, 0
| ,===< 0x08037c20 06d0 beq 0x8037c30
| ||| 0x08037c22 4046 mov r0, r8
| ||| 0x08037c24 00b2 sxth r0, r0
| ||| 0x08037c26 faf71dff bl gfx_draw_sub_32a64
| ||| 0x08037c2a 2900 movs r1, r5
| ||| 0x08037c2c 03f01cf9 bl func_3ae68
| ``--> 0x08037c30 a7f82880 strh.w r8, [r7, 0x28]
| | 0x08037c34 3c86 strh r4, [r7, 0x30]
| | 0x08037c36 0748 ldr r0, [0x08037c56] ; [0x8037c54:4]=0x200049f0
| | 0x08037c38 0068 ldr r0, [r0]
| | 0x08037c3a f862 str r0, [r7, 0x2c]
| | 0x08037c3c 0648 ldr r0, [0x08037c58] ; [0x8037c58:4]=0xd3d3d3
| | 0x08037c3e b863 str r0, [r7, 0x38]
| | 0x08037c40 0648 ldr r0, [0x08037c5c] ; [0x8037c5c:4]=0x2001e5cc
| | 0x08037c42 0068 ldr r0, [r0]
| | 0x08037c44 7863 str r0, [r7, 0x34]
| `-> 0x08037c46 3000 movs r0, r6
| 0x08037c48 00b2 sxth r0, r0
| 0x08037c4a 04b0 add sp, 0x10
\ 0x08037c4c bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) 40
| Caller: func_2aac0 menu_draw_sub_37d2a menu_draw_something2
| menu_draw_sub_37d02 ();
| 0x08037d02 10b5 push {r4, lr}
| 0x08037d04 0200 movs r2, r0
| 0x08037d06 0c00 movs r4, r1
| 0x08037d08 0020 movs r0, 0
| 0x08037d0a 1188 ldrh r1, [r2]
| 0x08037d0c 8c42 cmp r4, r1
| ,=< 0x08037d0e 0ad2 bhs 0x8037d26
| | 0x08037d10 b2f90210 ldrsh.w r1, [r2, 2]
| | 0x08037d14 09b2 sxth r1, r1
| | 0x08037d16 0029 cmp r1, 0
| ,==< 0x08037d18 05d0 beq 0x8037d26
| || 0x08037d1a 0800 movs r0, r1
| || 0x08037d1c 00b2 sxth r0, r0
| || 0x08037d1e faf7a1fe bl gfx_draw_sub_32a64
| || 0x08037d22 30f91400 ldrsh.w r0, [r0, r4, lsl 1]
| ``-> 0x08037d26 00b2 sxth r0, r0
\ 0x08037d28 10bd pop {r4, pc}
/ (fcn) 26
| Caller: menu_draw_something4 menu_draw_sub_27ffa
| menu_draw_sub_37d2a ();
| 0x08037d2a 10b5 push {r4, lr}
| 0x08037d2c 0024 movs r4, 0
| 0x08037d2e fff7e8ff bl menu_draw_sub_37d02
| 0x08037d32 00b2 sxth r0, r0
| 0x08037d34 0028 cmp r0, 0
| ,=< 0x08037d36 03d0 beq 0x8037d40
| | 0x08037d38 00b2 sxth r0, r0
| | 0x08037d3a faf793fe bl gfx_draw_sub_32a64
| | 0x08037d3e 0400 movs r4, r0
| `-> 0x08037d40 2000 movs r0, r4
\ 0x08037d42 10bd pop {r4, pc}
/ (fcn) 198
| Caller: menu_28010
| menu_37d44 ();
| 0x08037d44 f0b5 push {r4, r5, r6, r7, lr}
| 0x08037d46 87b0 sub sp, 0x1c
| 0x08037d48 0600 movs r6, r0
| 0x08037d4a 0c00 movs r4, r1
| 0x08037d4c 36b2 sxth r6, r6
| 0x08037d4e 002e cmp r6, 0
| ,=< 0x08037d50 59d0 beq 0x8037e06
| | 0x08037d52 002c cmp r4, 0
| ,==< 0x08037d54 57d0 beq 0x8037e06
| || 0x08037d56 ff21 movs r1, 0xff ; 255
| || 0x08037d58 3000 movs r0, r6
| || 0x08037d5a 00b2 sxth r0, r0
| || 0x08037d5c 02f0eeff bl func_3ad3c
| || 0x08037d60 0500 movs r5, r0
| || 0x08037d62 fe21 movs r1, 0xfe ; 254
| || 0x08037d64 3000 movs r0, r6
| || 0x08037d66 00b2 sxth r0, r0
| || 0x08037d68 02f0e8ff bl func_3ad3c
| || 0x08037d6c 0700 movs r7, r0
| || 0x08037d6e 02a9 add r1, sp, 8
| || 0x08037d70 3000 movs r0, r6
| || 0x08037d72 00b2 sxth r0, r0
| || 0x08037d74 13f0a6fe bl gfx_4bac4
| || 0x08037d78 04a9 add r1, sp, 0x10
| || 0x08037d7a 3000 movs r0, r6
| || 0x08037d7c 00b2 sxth r0, r0
| || 0x08037d7e 02f01dff bl menu_draw_sub_3abbc
| || 0x08037d82 3fb2 sxth r7, r7
| || 0x08037d84 002f cmp r7, 0
| ,===< 0x08037d86 1ad0 beq 0x8037dbe
| ||| 0x08037d88 00a9 add r1, sp, 0
| ||| 0x08037d8a 3800 movs r0, r7
| ||| 0x08037d8c 00b2 sxth r0, r0
| ||| 0x08037d8e 13f099fe bl gfx_4bac4
| ||| 0x08037d92 bdf90a00 ldrsh.w r0, [sp, 0xa]
| ||| 0x08037d96 4242 rsbs r2, r0, 0
| ||| 0x08037d98 bdf90800 ldrsh.w r0, [sp, 8]
| ||| 0x08037d9c 4142 rsbs r1, r0, 0
| ||| 0x08037d9e 00a8 add r0, sp, 0
| ||| 0x08037da0 faf7b3ff bl some_long_adding
| ||| 0x08037da4 3800 movs r0, r7
| ||| 0x08037da6 00b2 sxth r0, r0
| ||| 0x08037da8 14f034f8 bl gfx_4be14
| ||| 0x08037dac 10f08200 ands r0, r0, 0x82
| ||| 0x08037db0 8228 cmp r0, 0x82 ; 130
| ,====< 0x08037db2 04d1 bne 0x8037dbe
| |||| 0x08037db4 bdf80000 ldrh.w r0, [sp]
| |||| 0x08037db8 401e subs r0, r0, 1
| |||| 0x08037dba adf81400 strh.w r0, [sp, 0x14]
| ``---> 0x08037dbe 2db2 sxth r5, r5
| || 0x08037dc0 002d cmp r5, 0
| ,===< 0x08037dc2 1bd0 beq 0x8037dfc
| ||| 0x08037dc4 00a9 add r1, sp, 0
| ||| 0x08037dc6 2800 movs r0, r5
| ||| 0x08037dc8 00b2 sxth r0, r0
| ||| 0x08037dca 13f07bfe bl gfx_4bac4
| ||| 0x08037dce bdf90a00 ldrsh.w r0, [sp, 0xa]
| ||| 0x08037dd2 4242 rsbs r2, r0, 0
| ||| 0x08037dd4 bdf90800 ldrsh.w r0, [sp, 8]
| ||| 0x08037dd8 4142 rsbs r1, r0, 0
| ||| 0x08037dda 00a8 add r0, sp, 0
| ||| 0x08037ddc faf795ff bl some_long_adding
| ||| 0x08037de0 2800 movs r0, r5
| ||| 0x08037de2 00b2 sxth r0, r0
| ||| 0x08037de4 14f016f8 bl gfx_4be14
| ||| 0x08037de8 10f48170 ands r0, r0, 0x102
| ||| 0x08037dec b0f5817f cmp.w r0, 0x102 ; 258
| ,====< 0x08037df0 04d1 bne 0x8037dfc
| |||| 0x08037df2 bdf80200 ldrh.w r0, [sp, 2]
| |||| 0x08037df6 401e subs r0, r0, 1
| |||| 0x08037df8 adf81600 strh.w r0, [sp, 0x16]
| ``---> 0x08037dfc 2000 movs r0, r4
| || 0x08037dfe 04a9 add r1, sp, 0x10
| || 0x08037e00 0822 movs r2, 8 ; 8
| || 0x08037e02 faf713ff bl gfx_memcpy
| ``-> 0x08037e06 07b0 add sp, 0x1c
\ 0x08037e08 f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) 42
| Caller: menu_draw_something
| menu_37e0a ();
| 0x08037e0a 38b5 push {r3, r4, r5, lr}
| 0x08037e0c 0400 movs r4, r0
| 0x08037e0e 0d00 movs r5, r1
| 0x08037e10 24b2 sxth r4, r4
| 0x08037e12 002c cmp r4, 0
| ,=< 0x08037e14 0dd0 beq 0x8037e32
| | 0x08037e16 2000 movs r0, r4
| | 0x08037e18 00b2 sxth r0, r0
| | 0x08037e1a faf723fe bl gfx_draw_sub_32a64
| | 0x08037e1e 90f85010 ldrb.w r1, [r0, 0x50]
| | 0x08037e22 a942 cmp r1, r5
| ,==< 0x08037e24 05d3 blo 0x8037e32
| || 0x08037e26 80f85150 strb.w r5, [r0, 0x51]
| || 0x08037e2a 2000 movs r0, r4
| || 0x08037e2c 00b2 sxth r0, r0
| || 0x08037e2e e4f701fd bl gfx_1c834
\ ``-> 0x08037e32 31bd pop {r0, r4, r5, pc}
/ (fcn) func_37b6c 8
| Caller: func_37b74
| func_37b6c ();
| 0x08037b6c 80b5 push {r7, lr}
| 0x08037b6e fff7c7ff bl func_37b00
\ 0x08037b72 01bd pop {r0, pc}
/ (fcn) func_37c60 4
| Caller: menu_draw_sub_27ff0
| func_37c60 ();
| 0x08037c60 0088 ldrh r0, [r0]
\ 0x08037c62 7047 bx lr
/ (fcn) func_382ca 238
| Caller: menu_draw_something
| func_382ca ();
| 0x080382ca 8049 ldr r1, [0x080384ce] ; [0x80384cc:4]=0x2001d950
| 0x080382cc 098c ldrh r1, [r1, 0x20]
| 0x080382ce 0029 cmp r1, 0
| ,=< 0x080382d0 24d1 bne 0x803831c
| | 0x080382d2 7f49 ldr r1, [0x080384d2] ; [0x80384d0:4]=0x2001e850 selected_channel
| | 0x080382d4 0988 ldrh r1, [r1]
| | 0x080382d6 80b2 uxth r0, r0
| | 0x080382d8 8842 cmp r0, r1
| ,==< 0x080382da 08d1 bne 0x80382ee
| || 0x080382dc 7948 ldr r0, [0x080384c4] ; [0x80384c4:4]=0x2001e6fc
| || 0x080382de 0068 ldr r0, [r0]
| || 0x080382e0 9f21 movs r1, 0x9f ; 159
| || 0x080382e2 0173 strb r1, [r0, 0xc]
| || 0x080382e4 dff8e80c ldr.w r0, [0x08038fd4] ; [0x8038fd4:4]=0x2001e854
| || 0x080382e8 0921 movs r1, 9 ; 9
| || 0x080382ea 0170 strb r1, [r0]
| ,===< 0x080382ec 63e0 b 0x80383b6
| |`--> 0x080382ee 7749 ldr r1, [0x080384ce] ; [0x80384cc:4]=0x2001d950
| | | 0x080382f0 498c ldrh r1, [r1, 0x22]
| | | 0x080382f2 80b2 uxth r0, r0
| | | 0x080382f4 8842 cmp r0, r1
| |,==< 0x080382f6 08d1 bne 0x803830a
| ||| 0x080382f8 7248 ldr r0, [0x080384c4] ; [0x80384c4:4]=0x2001e6fc
| ||| 0x080382fa 0068 ldr r0, [r0]
| ||| 0x080382fc 9f21 movs r1, 0x9f ; 159
| ||| 0x080382fe 0173 strb r1, [r0, 0xc]
| ||| 0x08038300 dff8cc0c ldr.w r0, [0x08038fd4] ; [0x8038fd4:4]=0x2001e854
| ||| 0x08038304 0a21 movs r1, 0xa ; 10
| ||| 0x08038306 0170 strb r1, [r0]
| ,====< 0x08038308 55e0 b 0x80383b6
| ||`--> 0x0803830a 6e48 ldr r0, [0x080384c6] ; [0x80384c4:4]=0x2001e6fc
| || | 0x0803830c 0068 ldr r0, [r0]
| || | 0x0803830e 9f21 movs r1, 0x9f ; 159
| || | 0x08038310 0173 strb r1, [r0, 0xc]
| || | 0x08038312 dff8bc0c ldr.w r0, [0x08038fd6] ; [0x8038fd4:4]=0x2001e854
| || | 0x08038316 0821 movs r1, 8 ; 8
| || | 0x08038318 0170 strb r1, [r0]
| ||,==< 0x0803831a 4ce0 b 0x80383b6
| |||`-> 0x0803831c 6b49 ldr r1, [0x080384cc] ; [0x80384cc:4]=0x2001d950
| ||| 0x0803831e 498c ldrh r1, [r1, 0x22]
| ||| 0x08038320 0029 cmp r1, 0
| |||,=< 0x08038322 24d1 bne 0x803836e
| |||| 0x08038324 6a49 ldr r1, [0x080384d0] ; [0x80384d0:4]=0x2001e850 selected_channel
| |||| 0x08038326 0988 ldrh r1, [r1]
| |||| 0x08038328 80b2 uxth r0, r0
| |||| 0x0803832a 8842 cmp r0, r1
| ,=====< 0x0803832c 08d1 bne 0x8038340
| ||||| 0x0803832e 6548 ldr r0, [0x080384c6] ; [0x80384c4:4]=0x2001e6fc
| ||||| 0x08038330 0068 ldr r0, [r0]
| ||||| 0x08038332 9f21 movs r1, 0x9f ; 159
| ||||| 0x08038334 0173 strb r1, [r0, 0xc]
| ||||| 0x08038336 dff8980c ldr.w r0, [0x08038fd6] ; [0x8038fd4:4]=0x2001e854
| ||||| 0x0803833a 0a21 movs r1, 0xa ; 10
| ||||| 0x0803833c 0170 strb r1, [r0]
| ,======< 0x0803833e 3ae0 b 0x80383b6
| |`-----> 0x08038340 6249 ldr r1, [0x080384cc] ; [0x80384cc:4]=0x2001d950
| | |||| 0x08038342 098c ldrh r1, [r1, 0x20]
| | |||| 0x08038344 80b2 uxth r0, r0
| | |||| 0x08038346 8842 cmp r0, r1
| |,=====< 0x08038348 08d1 bne 0x803835c
| |||||| 0x0803834a 5e48 ldr r0, [0x080384c6] ; [0x80384c4:4]=0x2001e6fc
| |||||| 0x0803834c 0068 ldr r0, [r0]
| |||||| 0x0803834e 9f21 movs r1, 0x9f ; 159
| |||||| 0x08038350 0173 strb r1, [r0, 0xc]
| |||||| 0x08038352 dff87c0c ldr.w r0, [0x08038fd6] ; [0x8038fd4:4]=0x2001e854
| |||||| 0x08038356 0921 movs r1, 9 ; 9
| |||||| 0x08038358 0170 strb r1, [r0]
| ,=======< 0x0803835a 2ce0 b 0x80383b6
| ||`-----> 0x0803835c 5948 ldr r0, [0x080384c4] ; [0x80384c4:4]=0x2001e6fc
| || |||| 0x0803835e 0068 ldr r0, [r0]
| || |||| 0x08038360 9f21 movs r1, 0x9f ; 159
| || |||| 0x08038362 0173 strb r1, [r0, 0xc]
| || |||| 0x08038364 dff8680c ldr.w r0, [0x08038fd4] ; [0x8038fd4:4]=0x2001e854
| || |||| 0x08038368 0821 movs r1, 8 ; 8
| || |||| 0x0803836a 0170 strb r1, [r0]
| ||,=====< 0x0803836c 23e0 b 0x80383b6
| ||||||`-> 0x0803836e 5749 ldr r1, [0x080384ce] ; [0x80384cc:4]=0x2001d950
| |||||| 0x08038370 098c ldrh r1, [r1, 0x20]
| |||||| 0x08038372 80b2 uxth r0, r0
| |||||| 0x08038374 8842 cmp r0, r1
| ||||||,=< 0x08038376 08d1 bne 0x803838a
| ||||||| 0x08038378 5248 ldr r0, [0x080384c4] ; [0x80384c4:4]=0x2001e6fc
| ||||||| 0x0803837a 0068 ldr r0, [r0]
| ||||||| 0x0803837c 9f21 movs r1, 0x9f ; 159
| ||||||| 0x0803837e 0173 strb r1, [r0, 0xc]
| ||||||| 0x08038380 dff84c0c ldr.w r0, [0x08038fd4] ; [0x8038fd4:4]=0x2001e854
| ||||||| 0x08038384 0921 movs r1, 9 ; 9
| ||||||| 0x08038386 0170 strb r1, [r0]
| ========< 0x08038388 15e0 b 0x80383b6
| ||||||`-> 0x0803838a 5049 ldr r1, [0x080384ce] ; [0x80384cc:4]=0x2001d950
| |||||| 0x0803838c 498c ldrh r1, [r1, 0x22]
| |||||| 0x0803838e 80b2 uxth r0, r0
| |||||| 0x08038390 8842 cmp r0, r1
| ||||||,=< 0x08038392 08d1 bne 0x80383a6
| ||||||| 0x08038394 4b48 ldr r0, [0x080384c4] ; [0x80384c4:4]=0x2001e6fc
| ||||||| 0x08038396 0068 ldr r0, [r0]
| ||||||| 0x08038398 9f21 movs r1, 0x9f ; 159
| ||||||| 0x0803839a 0173 strb r1, [r0, 0xc]
| ||||||| 0x0803839c dff8300c ldr.w r0, [0x08038fd4] ; [0x8038fd4:4]=0x2001e854
| ||||||| 0x080383a0 0a21 movs r1, 0xa ; 10
| ||||||| 0x080383a2 0170 strb r1, [r0]
| ========< 0x080383a4 07e0 b 0x80383b6
| ||||||`-> 0x080383a6 4748 ldr r0, [0x080384c6] ; [0x80384c4:4]=0x2001e6fc
| |||||| 0x080383a8 0068 ldr r0, [r0]
| |||||| 0x080383aa 9f21 movs r1, 0x9f ; 159
| |||||| 0x080383ac 0173 strb r1, [r0, 0xc]
| |||||| 0x080383ae dff8200c ldr.w r0, [0x08038fd6] ; [0x8038fd4:4]=0x2001e854
| |||||| 0x080383b2 0821 movs r1, 8 ; 8
| |||||| 0x080383b4 0170 strb r1, [r0]
\ ``````--> 0x080383b6 7047 bx lr
/ (fcn) func_383b8 64
| Caller: func_2e73c_uses_menu_cursor_pos_1 ev5_17 call_F_4225_1 ev5_rest func_2e860
| func_383b8 ();
| 0x080383b8 80b5 push {r7, lr}
| 0x080383ba 3c48 ldr r0, [0x080384ae] ; [0x80384ac:4]=0x2001e892 gui_opmode3
| 0x080383bc 0021 movs r1, 0
| 0x080383be 0170 strb r1, [r0]
| 0x080383c0 dff8100c ldr.w r0, [0x08038fd8] ; [0x8038fd8:4]=0x2001e893
| 0x080383c4 4249 ldr r1, [0x080384d0] ; [0x80384d0:4]=0x2001e850 selected_channel
| 0x080383c6 0988 ldrh r1, [r1]
| 0x080383c8 0180 strh r1, [r0]
| 0x080383ca 4148 ldr r0, [0x080384d2] ; [0x80384d0:4]=0x2001e850 selected_channel
| 0x080383cc 0088 ldrh r0, [r0]
| 0x080383ce eaf7b8fb bl func_22b42
| 0x080383d2 3f48 ldr r0, [0x080384d2] ; [0x80384d0:4]=0x2001e850 selected_channel
| 0x080383d4 0088 ldrh r0, [r0]
| 0x080383d6 eaf776fc bl func_22cc6_spiflash_rd_6
| 0x080383da f9f79ffd bl func_31f1c
| 0x080383de dff8f80b ldr.w r0, [0x08038fde] ; [0x8038fdc:4]=0x2001e5d0 msg_timer_500
| 0x080383e2 0421 movs r1, 4 ; 4
| 0x080383e4 0170 strb r1, [r0]
| 0x080383e6 dff8f40b ldr.w r0, [0x08038fe2] ; [0x8038fe0:4]=0x2001e5e8
| 0x080383ea 4ff4fa71 mov.w r1, 0x1f4 ; 500
| 0x080383ee 0160 str r1, [r0]
| 0x080383f0 d7f751fc bl return_to_mode_1_from10
| 0x080383f4 01bd pop {r0, pc}
\ 0x080383f6 0000 movs r0, r0
/ (fcn) func_383f8 140
| Caller: some_init func_2e73c_uses_menu_cursor_pos_1
| func_383f8 ();
| 0x080383f8 80b5 push {r7, lr}
| 0x080383fa 2c48 ldr r0, [0x080384ae] ; [0x80384ac:4]=0x2001e892 gui_opmode3
| 0x080383fc 0221 movs r1, 2 ; 2
| 0x080383fe 0170 strb r1, [r0]
| 0x08038400 dff8dc0b ldr.w r0, [0x08038fe4] ; [0x8038fe4:4]=0x2001e8a5
| 0x08038404 0121 movs r1, 1 ; 1
| 0x08038406 0160 str r1, [r0]
| 0x08038408 dff8d80b ldr.w r0, [0x08038fe8] ; [0x8038fe8:4]=0x2001e8b8 some_state_var
| 0x0803840c 0021 movs r1, 0
| 0x0803840e 0170 strb r1, [r0]
| 0x08038410 0120 movs r0, 1 ; 1
| ,=< 0x08038412 1ae0 b 0x803844a
| .--> 0x08038414 c0b2 uxtb r0, r0
| || 0x08038416 2d49 ldr r1, [0x080384ce] ; [0x80384cc:4]=0x2001d950
| || 0x08038418 11eb4001 adds.w r1, r1, r0, lsl 1
| || 0x0803841c 098d ldrh r1, [r1, 0x28]
| || 0x0803841e 491e subs r1, r1, 1
| || 0x08038420 89b2 uxth r1, r1
| || 0x08038422 b1f57a7f cmp.w r1, 0x3e8 ; 1000
| ,===< 0x08038426 0fd2 bhs 0x8038448
| ||| 0x08038428 dff8b81b ldr.w r1, [0x08038fe8] ; [0x8038fe8:4]=0x2001e8b8 some_state_var
| ||| 0x0803842c 0978 ldrb r1, [r1]
| ||| 0x0803842e 491c adds r1, r1, 1
| ||| 0x08038430 dff8b02b ldr.w r2, [0x08038fe8] ; [0x8038fe8:4]=0x2001e8b8 some_state_var
| ||| 0x08038434 1170 strb r1, [r2]
| ||| 0x08038436 dff8a81b ldr.w r1, [0x08038fe6] ; [0x8038fe4:4]=0x2001e8a5
| ||| 0x0803843a 0968 ldr r1, [r1]
| ||| 0x0803843c 0122 movs r2, 1 ; 1
| ||| 0x0803843e 8240 lsls r2, r0
| ||| 0x08038440 1143 orrs r1, r2
| ||| 0x08038442 dff89c2b ldr.w r2, [0x08038fe6] ; [0x8038fe4:4]=0x2001e8a5
| ||| 0x08038446 1160 str r1, [r2]
| `---> 0x08038448 401c adds r0, r0, 1
| |`-> 0x0803844a c0b2 uxtb r0, r0
| | 0x0803844c 2028 cmp r0, 0x20 ; 32
| `==< 0x0803844e e1d3 blo 0x8038414
| 0x08038450 dff8940b ldr.w r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| 0x08038454 0021 movs r1, 0
| 0x08038456 0170 strb r1, [r0]
| 0x08038458 dff8900b ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| 0x0803845c 4021 movs r1, 0x40 ; '@' ; 64
| 0x0803845e 0170 strb r1, [r0]
| 0x08038460 dff8700b ldr.w r0, [0x08038fd8] ; [0x8038fd8:4]=0x2001e893
| 0x08038464 1a49 ldr r1, [0x080384d0] ; [0x80384d0:4]=0x2001e850 selected_channel
| 0x08038466 0988 ldrh r1, [r1]
| 0x08038468 0180 strh r1, [r0]
| 0x0803846a dff8840b ldr.w r0, [0x08038ff6] ; [0x8038ff4:4]=0x2001e856
| 0x0803846e 1849 ldr r1, [0x080384d2] ; [0x80384d0:4]=0x2001e850 selected_channel
| 0x08038470 0988 ldrh r1, [r1]
| 0x08038472 0180 strh r1, [r0]
| 0x08038474 dff87c0b ldr.w r0, [0x08038ff8] ; [0x8038ff8:4]=0x2001e892 gui_opmode3
| 0x08038478 1549 ldr r1, [0x080384d0] ; [0x80384d0:4]=0x2001e850 selected_channel
| 0x0803847a 0988 ldrh r1, [r1]
| 0x0803847c 0180 strh r1, [r0]
| 0x0803847e d7f70afc bl return_to_mode_1_from10
\ 0x08038482 01bd pop {r0, pc}
/ (fcn) func_384d4 2810
| Caller: call_F_4225_2
| func_384d4 ();
| 0x080384d4 80b5 push {r7, lr}
| 0x080384d6 dff8200b ldr.w r0, [0x08038ffe] ; [0x8038ffc:4]=0x2001e5f0 radio_status_1
| 0x080384da 0078 ldrb r0, [r0]
| 0x080384dc 0228 cmp r0, 2 ; 2
| ,=< 0x080384de 40f07585 bne.w 0x8038fcc
| | 0x080384e2 dff8180b ldr.w r0, [0x08039002] ; [0x8039000:4]=0x4873b580
| | 0x080384e6 4078 ldrb r0, [r0, 1]
| | 0x080384e8 c007 lsls r0, r0, 0x1f
| ,==< 0x080384ea 11d5 bpl 0x8038510
| || 0x080384ec dff8d00c ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| || 0x080384f0 0021 movs r1, 0
| || 0x080384f2 0180 strh r1, [r0]
| || 0x080384f4 dff8cc0c ldr.w r0, [0x080391c8] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| || 0x080384f8 0021 movs r1, 0
| || 0x080384fa 0180 strh r1, [r0]
| || 0x080384fc dff8e80a ldr.w r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| || 0x08038500 0c21 movs r1, 0xc ; 12
| || 0x08038502 0170 strb r1, [r0]
| || 0x08038504 dff8e40a ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| || 0x08038508 4121 movs r1, 0x41 ; 'A' ; 65
| || 0x0803850a 0170 strb r1, [r0]
| ,===< 0x0803850c 00f05ebd b.w 0x8038fcc
| |`--> 0x08038510 dff8b40c ldr.w r0, [0x080391cc] ; [0x80391cc:4]=0x2001d950
| | | 0x08038514 0078 ldrb r0, [r0]
| | | 0x08038516 401e subs r0, r0, 1
| | | 0x08038518 c0b2 uxtb r0, r0
| | | 0x0803851a 0828 cmp r0, 8 ; 8
| |,==< 0x0803851c c0f05685 blo.w 0x8038fcc
| ||| 0x08038520 dff8c40a ldr.w r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| ||| 0x08038524 0078 ldrb r0, [r0]
| ||| 0x08038526 0028 cmp r0, 0
| ,====< 0x08038528 22d0 beq 0x8038570
| |||| 0x0803852a 0128 cmp r0, 1 ; 1
| ,=====< 0x0803852c 00f08a80 beq.w 0x8038644
| ||||| 0x08038530 0228 cmp r0, 2 ; 2
| ,======< 0x08038532 00f01181 beq.w 0x8038758
| |||||| 0x08038536 0328 cmp r0, 3 ; 3
| ,=======< 0x08038538 00f08480 beq.w 0x8038644
| ||||||| 0x0803853c 0428 cmp r0, 4 ; 4
| ========< 0x0803853e 00f00b81 beq.w 0x8038758
| ||||||| 0x08038542 0528 cmp r0, 5 ; 5
| ========< 0x08038544 00f09b81 beq.w 0x803887e
| ||||||| 0x08038548 0628 cmp r0, 6 ; 6
| ========< 0x0803854a 00f09182 beq.w 0x8038a70
| ||||||| 0x0803854e 0828 cmp r0, 8 ; 8
| ========< 0x08038550 00f08e82 beq.w 0x8038a70
| ||||||| 0x08038554 0928 cmp r0, 9 ; 9
| ========< 0x08038556 00f01e83 beq.w 0x8038b96
| ||||||| 0x0803855a 0a28 cmp r0, 0xa ; 10
| ========< 0x0803855c 00f01484 beq.w 0x8038d88
| ||||||| 0x08038560 0b28 cmp r0, 0xb ; 11
| ========< 0x08038562 00f08f84 beq.w 0x8038e84
| ||||||| 0x08038566 0c28 cmp r0, 0xc ; 12
| ========< 0x08038568 00f0d884 beq.w 0x8038f1c
| ========< 0x0803856c 00f02ebd b.w 0x8038fcc
| |||`----> 0x08038570 dff8580c ldr.w r0, [0x080391d0] ; [0x80391d0:4]=0x2001e8bb
| ||| ||| 0x08038574 008c ldrh r0, [r0, 0x20]
| ||| ||| 0x08038576 4ff6ff71 movw r1, 0xffff
| ||| ||| 0x0803857a 8842 cmp r0, r1
| |||,====< 0x0803857c 0ad1 bne 0x8038594
| ||||||| 0x0803857e dff8500c ldr.w r0, [0x080391d6] ; [0x80391d4:4]=0x2001e8ba
| ||||||| 0x08038582 0021 movs r1, 0
| ||||||| 0x08038584 0170 strb r1, [r0]
| ||||||| 0x08038586 dff84c0c ldr.w r0, [0x080391da] ; [0x80391d8:4]=0x2001e850 selected_channel
| ||||||| 0x0803858a 0021 movs r1, 0
| ||||||| 0x0803858c 0170 strb r1, [r0]
| ||||||| 0x0803858e 00f025ff bl func_393dc
| ========< 0x08038592 51e0 b 0x8038638
| |||`----> 0x08038594 dff8340c ldr.w r0, [0x080391d0] ; [0x80391d0:4]=0x2001e8bb
| ||| ||| 0x08038598 008c ldrh r0, [r0, 0x20]
| ||| ||| 0x0803859a 0028 cmp r0, 0
| |||,====< 0x0803859c 26d1 bne 0x80385ec
| ||||||| 0x0803859e dff8480a ldr.w r0, [0x08038fee] ; [0x8038fec:4]=0x2001e8b9
| ||||||| 0x080385a2 0221 movs r1, 2 ; 2
| ||||||| 0x080385a4 0170 strb r1, [r0]
| ||||||| 0x080385a6 dff8280c ldr.w r0, [0x080391d6] ; [0x80391d4:4]=0x2001e8ba
| ||||||| 0x080385aa 0121 movs r1, 1 ; 1
| ||||||| 0x080385ac 0170 strb r1, [r0]
| ||||||| 0x080385ae dff83c0a ldr.w r0, [0x08038ff2] ; [0x8038ff0:4]=0x2001e852
| ||||||| 0x080385b2 4221 movs r1, 0x42 ; 'B' ; 66
| ||||||| 0x080385b4 0170 strb r1, [r0]
| ||||||| 0x080385b6 dff81c0c ldr.w r0, [0x080391da] ; [0x80391d8:4]=0x2001e850 selected_channel
| ||||||| 0x080385ba 0121 movs r1, 1 ; 1
| ||||||| 0x080385bc 0170 strb r1, [r0]
| ||||||| 0x080385be dff8140a ldr.w r0, [0x08038fda] ; [0x8038fd8:4]=0x2001e893
| ||||||| 0x080385c2 dff8141c ldr.w r1, [0x080391de] ; [0x80391dc:4]=0x2001e600 q_struct_1
| ||||||| 0x080385c6 0988 ldrh r1, [r1]
| ||||||| 0x080385c8 0180 strh r1, [r0]
| ||||||| 0x080385ca dff80c0c ldr.w r0, [0x080391de] ; [0x80391dc:4]=0x2001e600 q_struct_1
| ||||||| 0x080385ce 0088 ldrh r0, [r0]
| ||||||| 0x080385d0 eaf7b7fa bl func_22b42
| ||||||| 0x080385d4 f9f7a2fc bl func_31f1c
| ||||||| 0x080385d8 dff8fc09 ldr.w r0, [0x08038fdc] ; [0x8038fdc:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x080385dc 0421 movs r1, 4 ; 4
| ||||||| 0x080385de 0170 strb r1, [r0]
| ||||||| 0x080385e0 dff8f809 ldr.w r0, [0x08038fe0] ; [0x8038fe0:4]=0x2001e5e8
| ||||||| 0x080385e4 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x080385e8 0160 str r1, [r0]
| ========< 0x080385ea 25e0 b 0x8038638
| |||`----> 0x080385ec dff8f809 ldr.w r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| ||| ||| 0x080385f0 0221 movs r1, 2 ; 2
| ||| ||| 0x080385f2 0170 strb r1, [r0]
| ||| ||| 0x080385f4 dff8d80b ldr.w r0, [0x080391d4] ; [0x80391d4:4]=0x2001e8ba
| ||| ||| 0x080385f8 0121 movs r1, 1 ; 1
| ||| ||| 0x080385fa 0170 strb r1, [r0]
| ||| ||| 0x080385fc dff8ec09 ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| ||| ||| 0x08038600 4221 movs r1, 0x42 ; 'B' ; 66
| ||| ||| 0x08038602 0170 strb r1, [r0]
| ||| ||| 0x08038604 dff8cc0b ldr.w r0, [0x080391d8] ; [0x80391d8:4]=0x2001e850 selected_channel
| ||| ||| 0x08038608 0021 movs r1, 0
| ||| ||| 0x0803860a 0170 strb r1, [r0]
| ||| ||| 0x0803860c dff8bc0b ldr.w r0, [0x080391d0] ; [0x80391d0:4]=0x2001e8bb
| ||| ||| 0x08038610 008c ldrh r0, [r0, 0x20]
| ||| ||| 0x08038612 dff8c019 ldr.w r1, [0x08038fda] ; [0x8038fd8:4]=0x2001e893
| ||| ||| 0x08038616 0880 strh r0, [r1]
| ||| ||| 0x08038618 dff8b00b ldr.w r0, [0x080391d0] ; [0x80391d0:4]=0x2001e8bb
| ||| ||| 0x0803861c 008c ldrh r0, [r0, 0x20]
| ||| ||| 0x0803861e eaf790fa bl func_22b42
| ||| ||| 0x08038622 f9f77bfc bl func_31f1c
| ||| ||| 0x08038626 dff8b009 ldr.w r0, [0x08038fde] ; [0x8038fdc:4]=0x2001e5d0 msg_timer_500
| ||| ||| 0x0803862a 0421 movs r1, 4 ; 4
| ||| ||| 0x0803862c 0170 strb r1, [r0]
| ||| ||| 0x0803862e dff8ac09 ldr.w r0, [0x08038fe2] ; [0x8038fe0:4]=0x2001e5e8
| ||| ||| 0x08038632 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||| ||| 0x08038636 0160 str r1, [r0]
| --------> 0x08038638 dff8840b ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||| ||| 0x0803863c 0021 movs r1, 0
| ||| ||| 0x0803863e 0180 strh r1, [r0]
| |||,====< 0x08038640 00f0c4bc b.w 0x8038fcc
| `-`-----> 0x08038644 dff8a409 ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| | |||| 0x08038648 0078 ldrb r0, [r0]
| | |||| 0x0803864a 4128 cmp r0, 0x41 ; 'A' ; 65
| |,=====< 0x0803864c 05d0 beq 0x803865a
| ,=======< 0x0803864e c0f08180 blo.w 0x8038754
| ||||||| 0x08038652 4328 cmp r0, 0x43 ; 'C' ; 67
| ========< 0x08038654 2bd0 beq 0x80386ae
| ========< 0x08038656 09d3 blo 0x803866c
| ========< 0x08038658 7ce0 b 0x8038754
| ||`-----> 0x0803865a dff89009 ldr.w r0, [0x08038ff2] ; [0x8038ff0:4]=0x2001e852
| || |||| 0x0803865e 4221 movs r1, 0x42 ; 'B' ; 66
| || |||| 0x08038660 0170 strb r1, [r0]
| || |||| 0x08038662 dff85c0b ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| || |||| 0x08038666 0021 movs r1, 0
| || |||| 0x08038668 0180 strh r1, [r0]
| ||,=====< 0x0803866a 73e0 b 0x8038754
| --------> 0x0803866c dff86c0b ldr.w r0, [0x080391e0] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08038670 0078 ldrb r0, [r0]
| ||||||| 0x08038672 c007 lsls r0, r0, 0x1f
| ========< 0x08038674 08d5 bpl 0x8038688
| ||||||| 0x08038676 dff87409 ldr.w r0, [0x08038ff2] ; [0x8038ff0:4]=0x2001e852
| ||||||| 0x0803867a 4321 movs r1, 0x43 ; 'C' ; 67
| ||||||| 0x0803867c 0170 strb r1, [r0]
| ||||||| 0x0803867e dff8400b ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038682 0021 movs r1, 0
| ||||||| 0x08038684 0180 strh r1, [r0]
| ========< 0x08038686 11e0 b 0x80386ac
| --------> 0x08038688 dff8340b ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x0803868c 0088 ldrh r0, [r0]
| ||||||| 0x0803868e 401c adds r0, r0, 1
| ||||||| 0x08038690 dff82c1b ldr.w r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038694 0880 strh r0, [r1]
| ||||||| 0x08038696 dff8280b ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x0803869a 0088 ldrh r0, [r0]
| ||||||| 0x0803869c 0328 cmp r0, 3 ; 3
| ========< 0x0803869e 05d3 blo 0x80386ac
| ||||||| 0x080386a0 dff81c0b ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080386a4 0021 movs r1, 0
| ||||||| 0x080386a6 0180 strh r1, [r0]
| ||||||| 0x080386a8 00f0aafc bl func_39000
| --------> 0x080386ac 52e0 b 0x8038754
| --------> 0x080386ae dff82c0b ldr.w r0, [0x080391e2] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x080386b2 0078 ldrb r0, [r0]
| ||||||| 0x080386b4 0006 lsls r0, r0, 0x18
| ========< 0x080386b6 1dd5 bpl 0x80386f4
| ||||||| 0x080386b8 dff82c09 ldr.w r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| ||||||| 0x080386bc 0521 movs r1, 5 ; 5
| ||||||| 0x080386be 0170 strb r1, [r0]
| ||||||| 0x080386c0 dff82809 ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| ||||||| 0x080386c4 4421 movs r1, 0x44 ; 'D' ; 68
| ||||||| 0x080386c6 0170 strb r1, [r0]
| ||||||| 0x080386c8 dff82809 ldr.w r0, [0x08038ff8] ; [0x8038ff8:4]=0x2001e892 gui_opmode3
| ||||||| 0x080386cc dff80419 ldr.w r1, [0x08038fd8] ; [0x8038fd8:4]=0x2001e893
| ||||||| 0x080386d0 0988 ldrh r1, [r1]
| ||||||| 0x080386d2 0180 strh r1, [r0]
| ||||||| 0x080386d4 dff81809 ldr.w r0, [0x08038ff4] ; [0x8038ff4:4]=0x2001e856
| ||||||| 0x080386d8 dff8f818 ldr.w r1, [0x08038fd8] ; [0x8038fd8:4]=0x2001e893
| ||||||| 0x080386dc 0988 ldrh r1, [r1]
| ||||||| 0x080386de 0180 strh r1, [r0]
| ||||||| 0x080386e0 dff8dc0a ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080386e4 0021 movs r1, 0
| ||||||| 0x080386e6 0180 strh r1, [r0]
| ||||||| 0x080386e8 dff80809 ldr.w r0, [0x08038ff8] ; [0x8038ff8:4]=0x2001e892 gui_opmode3
| ||||||| 0x080386ec 0088 ldrh r0, [r0]
| ||||||| 0x080386ee eaf7eafa bl func_22cc6_spiflash_rd_6
| ========< 0x080386f2 2ee0 b 0x8038752
| --------> 0x080386f4 dff8c80a ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080386f8 0088 ldrh r0, [r0]
| ||||||| 0x080386fa 401c adds r0, r0, 1
| ||||||| 0x080386fc dff8c01a ldr.w r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038700 0880 strh r0, [r1]
| ||||||| 0x08038702 dff8d40c ldr.w r0, [0x080393de] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x08038706 0078 ldrb r0, [r0]
| ||||||| 0x08038708 10f00300 ands r0, r0, 3
| ||||||| 0x0803870c 0128 cmp r0, 1 ; 1
| ========< 0x0803870e 04d0 beq 0x803871a
| ||||||| 0x08038710 dff8ac0a ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038714 0088 ldrh r0, [r0]
| ||||||| 0x08038716 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x08038718 15d2 bhs 0x8038746
| --------> 0x0803871a dff8bc0c ldr.w r0, [0x080393de] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x0803871e 0078 ldrb r0, [r0]
| ||||||| 0x08038720 10f00300 ands r0, r0, 3
| ||||||| 0x08038724 0128 cmp r0, 1 ; 1
| ========< 0x08038726 14d1 bne 0x8038752
| ||||||| 0x08038728 dff8a00a ldr.w r0, [0x080391d0] ; [0x80391d0:4]=0x2001e8bb
| ||||||| 0x0803872c 90f82700 ldrb.w r0, [r0, 0x27]
| ||||||| 0x08038730 0521 movs r1, 5 ; 5
| ||||||| 0x08038732 4843 muls r0, r1, r0
| ||||||| 0x08038734 401c adds r0, r0, 1
| ||||||| 0x08038736 0221 movs r1, 2 ; 2
| ||||||| 0x08038738 90fbf1f0 sdiv r0, r0, r1
| ||||||| 0x0803873c dff8801a ldr.w r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038740 0988 ldrh r1, [r1]
| ||||||| 0x08038742 8142 cmp r1, r0
| ========< 0x08038744 05db blt 0x8038752
| --------> 0x08038746 dff8780a ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x0803874a 0021 movs r1, 0
| ||||||| 0x0803874c 0180 strh r1, [r0]
| ||||||| 0x0803874e 00f057fc bl func_39000
| --------> 0x08038752 ffe7 b 0x8038754
| `-`-----> 0x08038754 00f03abc b.w 0x8038fcc
| -`------> 0x08038758 dff89008 ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| |||| 0x0803875c 0078 ldrb r0, [r0]
| |||| 0x0803875e 4128 cmp r0, 0x41 ; 'A' ; 65
| ,=====< 0x08038760 05d0 beq 0x803876e
| ,======< 0x08038762 c0f08b80 blo.w 0x803887c
| |||||| 0x08038766 4328 cmp r0, 0x43 ; 'C' ; 67
| ,=======< 0x08038768 2bd0 beq 0x80387c2
| ========< 0x0803876a 09d3 blo 0x8038780
| ========< 0x0803876c 86e0 b 0x803887c
| ||`-----> 0x0803876e dff87c08 ldr.w r0, [0x08038ff2] ; [0x8038ff0:4]=0x2001e852
| || |||| 0x08038772 4221 movs r1, 0x42 ; 'B' ; 66
| || |||| 0x08038774 0170 strb r1, [r0]
| || |||| 0x08038776 dff8480a ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| || |||| 0x0803877a 0021 movs r1, 0
| || |||| 0x0803877c 0180 strh r1, [r0]
| ||,=====< 0x0803877e 7de0 b 0x803887c
| --------> 0x08038780 dff8580a ldr.w r0, [0x080391e0] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08038784 0078 ldrb r0, [r0]
| ||||||| 0x08038786 c007 lsls r0, r0, 0x1f
| ========< 0x08038788 08d5 bpl 0x803879c
| ||||||| 0x0803878a dff86008 ldr.w r0, [0x08038ff2] ; [0x8038ff0:4]=0x2001e852
| ||||||| 0x0803878e 4321 movs r1, 0x43 ; 'C' ; 67
| ||||||| 0x08038790 0170 strb r1, [r0]
| ||||||| 0x08038792 dff82c0a ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038796 0021 movs r1, 0
| ||||||| 0x08038798 0180 strh r1, [r0]
| ========< 0x0803879a 11e0 b 0x80387c0
| --------> 0x0803879c dff8200a ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080387a0 0088 ldrh r0, [r0]
| ||||||| 0x080387a2 401c adds r0, r0, 1
| ||||||| 0x080387a4 dff8181a ldr.w r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080387a8 0880 strh r0, [r1]
| ||||||| 0x080387aa dff8140a ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080387ae 0088 ldrh r0, [r0]
| ||||||| 0x080387b0 0328 cmp r0, 3 ; 3
| ========< 0x080387b2 05d3 blo 0x80387c0
| ||||||| 0x080387b4 dff8080a ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080387b8 0021 movs r1, 0
| ||||||| 0x080387ba 0180 strh r1, [r0]
| ||||||| 0x080387bc 00f00efe bl func_393dc
| --------> 0x080387c0 5ce0 b 0x803887c
| `-------> 0x080387c2 dff8180a ldr.w r0, [0x080391e2] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| |||||| 0x080387c6 0078 ldrb r0, [r0]
| |||||| 0x080387c8 0006 lsls r0, r0, 0x18
| ,=======< 0x080387ca 27d5 bpl 0x803881c
| ||||||| 0x080387cc dff81808 ldr.w r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| ||||||| 0x080387d0 0078 ldrb r0, [r0]
| ||||||| 0x080387d2 0228 cmp r0, 2 ; 2
| ========< 0x080387d4 04d1 bne 0x80387e0
| ||||||| 0x080387d6 dff81008 ldr.w r0, [0x08038fee] ; [0x8038fec:4]=0x2001e8b9
| ||||||| 0x080387da 0b21 movs r1, 0xb ; 11
| ||||||| 0x080387dc 0170 strb r1, [r0]
| ========< 0x080387de 03e0 b 0x80387e8
| --------> 0x080387e0 dff80408 ldr.w r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| ||||||| 0x080387e4 0921 movs r1, 9 ; 9
| ||||||| 0x080387e6 0170 strb r1, [r0]
| --------> 0x080387e8 dff80008 ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| ||||||| 0x080387ec 4421 movs r1, 0x44 ; 'D' ; 68
| ||||||| 0x080387ee 0170 strb r1, [r0]
| ||||||| 0x080387f0 dff80008 ldr.w r0, [0x08038ff8] ; [0x8038ff8:4]=0x2001e892 gui_opmode3
| ||||||| 0x080387f4 dff8dc17 ldr.w r1, [0x08038fd8] ; [0x8038fd8:4]=0x2001e893
| ||||||| 0x080387f8 0988 ldrh r1, [r1]
| ||||||| 0x080387fa 0180 strh r1, [r0]
| ||||||| 0x080387fc dff8f007 ldr.w r0, [0x08038ff4] ; [0x8038ff4:4]=0x2001e856
| ||||||| 0x08038800 dff8d017 ldr.w r1, [0x08038fd8] ; [0x8038fd8:4]=0x2001e893
| ||||||| 0x08038804 0988 ldrh r1, [r1]
| ||||||| 0x08038806 0180 strh r1, [r0]
| ||||||| 0x08038808 dff8b409 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x0803880c 0021 movs r1, 0
| ||||||| 0x0803880e 0180 strh r1, [r0]
| ||||||| 0x08038810 dff8e007 ldr.w r0, [0x08038ff8] ; [0x8038ff8:4]=0x2001e892 gui_opmode3
| ||||||| 0x08038814 0088 ldrh r0, [r0]
| ||||||| 0x08038816 eaf756fa bl func_22cc6_spiflash_rd_6
| ========< 0x0803881a 2ee0 b 0x803887a
| `-------> 0x0803881c dff8a009 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| |||||| 0x08038820 0088 ldrh r0, [r0]
| |||||| 0x08038822 401c adds r0, r0, 1
| |||||| 0x08038824 dff89819 ldr.w r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| |||||| 0x08038828 0880 strh r0, [r1]
| |||||| 0x0803882a dff8ac0b ldr.w r0, [0x080393de] ; [0x80393dc:4]=0xf8dfb580
| |||||| 0x0803882e 0078 ldrb r0, [r0]
| |||||| 0x08038830 10f00300 ands r0, r0, 3
| |||||| 0x08038834 0128 cmp r0, 1 ; 1
| ,=======< 0x08038836 04d0 beq 0x8038842
| ||||||| 0x08038838 dff88409 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x0803883c 0088 ldrh r0, [r0]
| ||||||| 0x0803883e 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x08038840 15d2 bhs 0x803886e
| `-------> 0x08038842 dff8940b ldr.w r0, [0x080393de] ; [0x80393dc:4]=0xf8dfb580
| |||||| 0x08038846 0078 ldrb r0, [r0]
| |||||| 0x08038848 10f00300 ands r0, r0, 3
| |||||| 0x0803884c 0128 cmp r0, 1 ; 1
| ,=======< 0x0803884e 14d1 bne 0x803887a
| ||||||| 0x08038850 dff87809 ldr.w r0, [0x080391d0] ; [0x80391d0:4]=0x2001e8bb
| ||||||| 0x08038854 90f82700 ldrb.w r0, [r0, 0x27]
| ||||||| 0x08038858 0521 movs r1, 5 ; 5
| ||||||| 0x0803885a 4843 muls r0, r1, r0
| ||||||| 0x0803885c 401c adds r0, r0, 1
| ||||||| 0x0803885e 0221 movs r1, 2 ; 2
| ||||||| 0x08038860 90fbf1f0 sdiv r0, r0, r1
| ||||||| 0x08038864 dff85819 ldr.w r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038868 0988 ldrh r1, [r1]
| ||||||| 0x0803886a 8142 cmp r1, r0
| ========< 0x0803886c 05db blt 0x803887a
| --------> 0x0803886e dff85009 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038872 0021 movs r1, 0
| ||||||| 0x08038874 0180 strh r1, [r0]
| ||||||| 0x08038876 00f0b1fd bl func_393dc
| `-------> 0x0803887a ffe7 b 0x803887c
| ,``-----> 0x0803887c a6e3 b 0x8038fcc
| --------> 0x0803887e dff86c07 ldr.w r0, [0x08038ff2] ; [0x8038ff0:4]=0x2001e852
| | |||| 0x08038882 0078 ldrb r0, [r0]
| | |||| 0x08038884 4128 cmp r0, 0x41 ; 'A' ; 65
| | ,=====< 0x08038886 07d0 beq 0x8038898
| |,======< 0x08038888 c0f0f180 blo.w 0x8038a6e
| ||||||| 0x0803888c 4328 cmp r0, 0x43 ; 'C' ; 67
| ========< 0x0803888e 2dd0 beq 0x80388ec
| ========< 0x08038890 0bd3 blo 0x80388aa
| ||||||| 0x08038892 4428 cmp r0, 0x44 ; 'D' ; 68
| ========< 0x08038894 7dd0 beq 0x8038992
| ========< 0x08038896 eae0 b 0x8038a6e
| ||`-----> 0x08038898 dff85007 ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| || |||| 0x0803889c 4221 movs r1, 0x42 ; 'B' ; 66
| || |||| 0x0803889e 0170 strb r1, [r0]
| || |||| 0x080388a0 dff81c09 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| || |||| 0x080388a4 0021 movs r1, 0
| || |||| 0x080388a6 0180 strh r1, [r0]
| ||,=====< 0x080388a8 e1e0 b 0x8038a6e
| --------> 0x080388aa dff83009 ldr.w r0, [0x080391e2] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x080388ae 0078 ldrb r0, [r0]
| ||||||| 0x080388b0 c007 lsls r0, r0, 0x1f
| ========< 0x080388b2 08d5 bpl 0x80388c6
| ||||||| 0x080388b4 dff83407 ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| ||||||| 0x080388b8 4321 movs r1, 0x43 ; 'C' ; 67
| ||||||| 0x080388ba 0170 strb r1, [r0]
| ||||||| 0x080388bc dff80009 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080388c0 0021 movs r1, 0
| ||||||| 0x080388c2 0180 strh r1, [r0]
| ========< 0x080388c4 11e0 b 0x80388ea
| --------> 0x080388c6 dff8f808 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080388ca 0088 ldrh r0, [r0]
| ||||||| 0x080388cc 401c adds r0, r0, 1
| ||||||| 0x080388ce dff8f018 ldr.w r1, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080388d2 0880 strh r0, [r1]
| ||||||| 0x080388d4 dff8e808 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080388d8 0088 ldrh r0, [r0]
| ||||||| 0x080388da 0a28 cmp r0, 0xa ; 10
| ========< 0x080388dc 05d3 blo 0x80388ea
| ||||||| 0x080388de dff8e008 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080388e2 0021 movs r1, 0
| ||||||| 0x080388e4 0180 strh r1, [r0]
| ||||||| 0x080388e6 00f08bfb bl func_39000
| --------> 0x080388ea c0e0 b 0x8038a6e
| --------> 0x080388ec dff8ec08 ldr.w r0, [0x080391e0] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x080388f0 0078 ldrb r0, [r0]
| ||||||| 0x080388f2 0006 lsls r0, r0, 0x18
| ========< 0x080388f4 1dd5 bpl 0x8038932
| ||||||| 0x080388f6 dff8f006 ldr.w r0, [0x08038fee] ; [0x8038fec:4]=0x2001e8b9
| ||||||| 0x080388fa 0521 movs r1, 5 ; 5
| ||||||| 0x080388fc 0170 strb r1, [r0]
| ||||||| 0x080388fe dff8ec06 ldr.w r0, [0x08038ff2] ; [0x8038ff0:4]=0x2001e852
| ||||||| 0x08038902 4421 movs r1, 0x44 ; 'D' ; 68
| ||||||| 0x08038904 0170 strb r1, [r0]
| ||||||| 0x08038906 dff8ec06 ldr.w r0, [0x08038ffa] ; [0x8038ff8:4]=0x2001e892 gui_opmode3
| ||||||| 0x0803890a dff8c816 ldr.w r1, [0x08038fda] ; [0x8038fd8:4]=0x2001e893
| ||||||| 0x0803890e 0988 ldrh r1, [r1]
| ||||||| 0x08038910 0180 strh r1, [r0]
| ||||||| 0x08038912 dff8dc06 ldr.w r0, [0x08038ff6] ; [0x8038ff4:4]=0x2001e856
| ||||||| 0x08038916 dff8bc16 ldr.w r1, [0x08038fda] ; [0x8038fd8:4]=0x2001e893
| ||||||| 0x0803891a 0988 ldrh r1, [r1]
| ||||||| 0x0803891c 0180 strh r1, [r0]
| ||||||| 0x0803891e dff8a008 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038922 0021 movs r1, 0
| ||||||| 0x08038924 0180 strh r1, [r0]
| ||||||| 0x08038926 dff8cc06 ldr.w r0, [0x08038ffa] ; [0x8038ff8:4]=0x2001e892 gui_opmode3
| ||||||| 0x0803892a 0088 ldrh r0, [r0]
| ||||||| 0x0803892c eaf7cbf9 bl func_22cc6_spiflash_rd_6
| ========< 0x08038930 2ee0 b 0x8038990
| --------> 0x08038932 dff88c08 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038936 0088 ldrh r0, [r0]
| ||||||| 0x08038938 401c adds r0, r0, 1
| ||||||| 0x0803893a dff88418 ldr.w r1, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x0803893e 0880 strh r0, [r1]
| ||||||| 0x08038940 dff8940a ldr.w r0, [func_393dc] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x08038944 0078 ldrb r0, [r0]
| ||||||| 0x08038946 10f00300 ands r0, r0, 3
| ||||||| 0x0803894a 0128 cmp r0, 1 ; 1
| ========< 0x0803894c 04d0 beq 0x8038958
| ||||||| 0x0803894e dff87008 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038952 0088 ldrh r0, [r0]
| ||||||| 0x08038954 6428 cmp r0, 0x64 ; 'd' ; 100
| ========< 0x08038956 15d2 bhs 0x8038984
| --------> 0x08038958 dff87c0a ldr.w r0, [func_393dc] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x0803895c 0078 ldrb r0, [r0]
| ||||||| 0x0803895e 10f00300 ands r0, r0, 3
| ||||||| 0x08038962 0128 cmp r0, 1 ; 1
| ========< 0x08038964 14d1 bne 0x8038990
| ||||||| 0x08038966 dff86408 ldr.w r0, [0x080391d2] ; [0x80391d0:4]=0x2001e8bb
| ||||||| 0x0803896a 90f82700 ldrb.w r0, [r0, 0x27]
| ||||||| 0x0803896e 0521 movs r1, 5 ; 5
| ||||||| 0x08038970 4843 muls r0, r1, r0
| ||||||| 0x08038972 401c adds r0, r0, 1
| ||||||| 0x08038974 0221 movs r1, 2 ; 2
| ||||||| 0x08038976 90fbf1f0 sdiv r0, r0, r1
| ||||||| 0x0803897a dff84418 ldr.w r1, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x0803897e 0988 ldrh r1, [r1]
| ||||||| 0x08038980 8142 cmp r1, r0
| ========< 0x08038982 05db blt 0x8038990
| --------> 0x08038984 dff83808 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038988 0021 movs r1, 0
| ||||||| 0x0803898a 0180 strh r1, [r0]
| ||||||| 0x0803898c 00f038fb bl func_39000
| --------> 0x08038990 6de0 b 0x8038a6e
| --------> 0x08038992 dff84808 ldr.w r0, [0x080391e2] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08038996 0078 ldrb r0, [r0]
| ||||||| 0x08038998 0006 lsls r0, r0, 0x18
| ========< 0x0803899a 23d5 bpl 0x80389e4
| ||||||| 0x0803899c dff82408 ldr.w r0, [0x080391c8] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x080389a0 0021 movs r1, 0
| ||||||| 0x080389a2 0180 strh r1, [r0]
| ||||||| 0x080389a4 dff81808 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080389a8 0088 ldrh r0, [r0]
| ||||||| 0x080389aa 401c adds r0, r0, 1
| ||||||| 0x080389ac dff81018 ldr.w r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080389b0 0880 strh r0, [r1]
| ||||||| 0x080389b2 dff80c08 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080389b6 0088 ldrh r0, [r0]
| ||||||| 0x080389b8 dff81018 ldr.w r1, [0x080391d0] ; [0x80391d0:4]=0x2001e8bb
| ||||||| 0x080389bc 91f82810 ldrb.w r1, [r1, 0x28]
| ||||||| 0x080389c0 1922 movs r2, 0x19 ; 25
| ||||||| 0x080389c2 5143 muls r1, r2, r1
| ||||||| 0x080389c4 8842 cmp r0, r1
| ========< 0x080389c6 51db blt 0x8038a6c
| ||||||| 0x080389c8 dff8f407 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x080389cc 0021 movs r1, 0
| ||||||| 0x080389ce 0180 strh r1, [r0]
| ||||||| 0x080389d0 dff8040a ldr.w r0, [func_393dc] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x080389d4 0078 ldrb r0, [r0]
| ||||||| 0x080389d6 10f00300 ands r0, r0, 3
| ||||||| 0x080389da 0128 cmp r0, 1 ; 1
| ========< 0x080389dc 46d1 bne 0x8038a6c
| ||||||| 0x080389de 00f001fc bl func_391e4
| ========< 0x080389e2 43e0 b 0x8038a6c
| --------> 0x080389e4 dff8f009 ldr.w r0, [func_393dc] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x080389e8 0078 ldrb r0, [r0]
| ||||||| 0x080389ea 10f00300 ands r0, r0, 3
| ||||||| 0x080389ee 0128 cmp r0, 1 ; 1
| ========< 0x080389f0 1cd1 bne 0x8038a2c
| ||||||| 0x080389f2 dff8d007 ldr.w r0, [0x080391ca] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x080389f6 0088 ldrh r0, [r0]
| ||||||| 0x080389f8 401c adds r0, r0, 1
| ||||||| 0x080389fa dff8c817 ldr.w r1, [0x080391ca] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x080389fe 0880 strh r0, [r1]
| ||||||| 0x08038a00 dff8c007 ldr.w r0, [0x080391c8] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038a04 0088 ldrh r0, [r0]
| ||||||| 0x08038a06 dff8441c ldr.w r1, [0x08039652] ; [0x8039650:4]=0x2001e94d gui_opmode1
| ||||||| 0x08038a0a 097d ldrb r1, [r1, 0x14]
| ||||||| 0x08038a0c 0a22 movs r2, 0xa ; 10
| ||||||| 0x08038a0e 5143 muls r1, r2, r1
| ||||||| 0x08038a10 8842 cmp r0, r1
| ========< 0x08038a12 2bdb blt 0x8038a6c
| ||||||| 0x08038a14 dff8ac07 ldr.w r0, [0x080391c8] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038a18 0021 movs r1, 0
| ||||||| 0x08038a1a 0180 strh r1, [r0]
| ||||||| 0x08038a1c 00f0f0fa bl func_39000
| ||||||| 0x08038a20 dff8b407 ldr.w r0, [0x080391dc] ; [0x80391dc:4]=0x2001e600 q_struct_1
| ||||||| 0x08038a24 0088 ldrh r0, [r0]
| ||||||| 0x08038a26 eaf74ef9 bl func_22cc6_spiflash_rd_6
| ========< 0x08038a2a 1fe0 b 0x8038a6c
| --------> 0x08038a2c dff89407 ldr.w r0, [0x080391c8] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038a30 0088 ldrh r0, [r0]
| ||||||| 0x08038a32 401c adds r0, r0, 1
| ||||||| 0x08038a34 dff88c17 ldr.w r1, [0x080391c8] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038a38 0880 strh r0, [r1]
| ||||||| 0x08038a3a dff88807 ldr.w r0, [0x080391ca] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038a3e 0088 ldrh r0, [r0]
| ||||||| 0x08038a40 dff8081c ldr.w r1, [0x08039650] ; [0x8039650:4]=0x2001e94d gui_opmode1
| ||||||| 0x08038a44 c97c ldrb r1, [r1, 0x13]
| ||||||| 0x08038a46 0a22 movs r2, 0xa ; 10
| ||||||| 0x08038a48 5143 muls r1, r2, r1
| ||||||| 0x08038a4a 8842 cmp r0, r1
| ========< 0x08038a4c 0edb blt 0x8038a6c
| ||||||| 0x08038a4e dff87407 ldr.w r0, [0x080391ca] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038a52 0021 movs r1, 0
| ||||||| 0x08038a54 0180 strh r1, [r0]
| ||||||| 0x08038a56 dff8f80b ldr.w r0, [0x08039656] ; [0x8039654:4]=0xb084b510
| ||||||| 0x08038a5a 9321 movs r1, 0x93 ; 147
| ||||||| 0x08038a5c 0170 strb r1, [r0]
| ||||||| 0x08038a5e 00f0cffa bl func_39000
| ||||||| 0x08038a62 dff87407 ldr.w r0, [0x080391de] ; [0x80391dc:4]=0x2001e600 q_struct_1
| ||||||| 0x08038a66 0088 ldrh r0, [r0]
| ||||||| 0x08038a68 eaf72df9 bl func_22cc6_spiflash_rd_6
| --------> 0x08038a6c ffe7 b 0x8038a6e
| =``-----> 0x08038a6e ade2 b 0x8038fcc
| --------> 0x08038a70 dff87805 ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| | |||| 0x08038a74 0078 ldrb r0, [r0]
| | |||| 0x08038a76 4128 cmp r0, 0x41 ; 'A' ; 65
| | ,=====< 0x08038a78 05d0 beq 0x8038a86
| |,======< 0x08038a7a c0f08b80 blo.w 0x8038b94
| ||||||| 0x08038a7e 4328 cmp r0, 0x43 ; 'C' ; 67
| ========< 0x08038a80 2bd0 beq 0x8038ada
| ========< 0x08038a82 09d3 blo 0x8038a98
| ========< 0x08038a84 86e0 b 0x8038b94
| ||`-----> 0x08038a86 dff86405 ldr.w r0, [0x08038ff2] ; [0x8038ff0:4]=0x2001e852
| || |||| 0x08038a8a 4221 movs r1, 0x42 ; 'B' ; 66
| || |||| 0x08038a8c 0170 strb r1, [r0]
| || |||| 0x08038a8e dff83007 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| || |||| 0x08038a92 0021 movs r1, 0
| || |||| 0x08038a94 0180 strh r1, [r0]
| ||,=====< 0x08038a96 7de0 b 0x8038b94
| --------> 0x08038a98 dff84007 ldr.w r0, [0x080391e0] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08038a9c 0078 ldrb r0, [r0]
| ||||||| 0x08038a9e c007 lsls r0, r0, 0x1f
| ========< 0x08038aa0 08d5 bpl 0x8038ab4
| ||||||| 0x08038aa2 dff84805 ldr.w r0, [0x08038ff2] ; [0x8038ff0:4]=0x2001e852
| ||||||| 0x08038aa6 4321 movs r1, 0x43 ; 'C' ; 67
| ||||||| 0x08038aa8 0170 strb r1, [r0]
| ||||||| 0x08038aaa dff81407 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038aae 0021 movs r1, 0
| ||||||| 0x08038ab0 0180 strh r1, [r0]
| ========< 0x08038ab2 11e0 b 0x8038ad8
| --------> 0x08038ab4 dff80807 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038ab8 0088 ldrh r0, [r0]
| ||||||| 0x08038aba 401c adds r0, r0, 1
| ||||||| 0x08038abc dff80017 ldr.w r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038ac0 0880 strh r0, [r1]
| ||||||| 0x08038ac2 dff8fc06 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038ac6 0088 ldrh r0, [r0]
| ||||||| 0x08038ac8 0328 cmp r0, 3 ; 3
| ========< 0x08038aca 05d3 blo 0x8038ad8
| ||||||| 0x08038acc dff8f006 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038ad0 0021 movs r1, 0
| ||||||| 0x08038ad2 0180 strh r1, [r0]
| ||||||| 0x08038ad4 00f022fd bl func_3951c
| --------> 0x08038ad8 5ce0 b 0x8038b94
| --------> 0x08038ada dff80007 ldr.w r0, [0x080391e2] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08038ade 0078 ldrb r0, [r0]
| ||||||| 0x08038ae0 0006 lsls r0, r0, 0x18
| ========< 0x08038ae2 27d5 bpl 0x8038b34
| ||||||| 0x08038ae4 dff80005 ldr.w r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| ||||||| 0x08038ae8 0078 ldrb r0, [r0]
| ||||||| 0x08038aea 0628 cmp r0, 6 ; 6
| ========< 0x08038aec 04d1 bne 0x8038af8
| ||||||| 0x08038aee dff8f804 ldr.w r0, [0x08038fee] ; [0x8038fec:4]=0x2001e8b9
| ||||||| 0x08038af2 0b21 movs r1, 0xb ; 11
| ||||||| 0x08038af4 0170 strb r1, [r0]
| ========< 0x08038af6 03e0 b 0x8038b00
| --------> 0x08038af8 dff8ec04 ldr.w r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| ||||||| 0x08038afc 0921 movs r1, 9 ; 9
| ||||||| 0x08038afe 0170 strb r1, [r0]
| --------> 0x08038b00 dff8e804 ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| ||||||| 0x08038b04 4421 movs r1, 0x44 ; 'D' ; 68
| ||||||| 0x08038b06 0170 strb r1, [r0]
| ||||||| 0x08038b08 dff8e804 ldr.w r0, [0x08038ff8] ; [0x8038ff8:4]=0x2001e892 gui_opmode3
| ||||||| 0x08038b0c dff8c414 ldr.w r1, [0x08038fd8] ; [0x8038fd8:4]=0x2001e893
| ||||||| 0x08038b10 0988 ldrh r1, [r1]
| ||||||| 0x08038b12 0180 strh r1, [r0]
| ||||||| 0x08038b14 dff8d804 ldr.w r0, [0x08038ff4] ; [0x8038ff4:4]=0x2001e856
| ||||||| 0x08038b18 dff8b814 ldr.w r1, [0x08038fd8] ; [0x8038fd8:4]=0x2001e893
| ||||||| 0x08038b1c 0988 ldrh r1, [r1]
| ||||||| 0x08038b1e 0180 strh r1, [r0]
| ||||||| 0x08038b20 dff89c06 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038b24 0021 movs r1, 0
| ||||||| 0x08038b26 0180 strh r1, [r0]
| ||||||| 0x08038b28 dff8c804 ldr.w r0, [0x08038ff8] ; [0x8038ff8:4]=0x2001e892 gui_opmode3
| ||||||| 0x08038b2c 0088 ldrh r0, [r0]
| ||||||| 0x08038b2e eaf7caf8 bl func_22cc6_spiflash_rd_6
| ========< 0x08038b32 2ee0 b 0x8038b92
| --------> 0x08038b34 dff88806 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038b38 0088 ldrh r0, [r0]
| ||||||| 0x08038b3a 401c adds r0, r0, 1
| ||||||| 0x08038b3c dff88016 ldr.w r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038b40 0880 strh r0, [r1]
| ||||||| 0x08038b42 dff89408 ldr.w r0, [0x080393de] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x08038b46 0078 ldrb r0, [r0]
| ||||||| 0x08038b48 10f00300 ands r0, r0, 3
| ||||||| 0x08038b4c 0128 cmp r0, 1 ; 1
| ========< 0x08038b4e 04d0 beq 0x8038b5a
| ||||||| 0x08038b50 dff86c06 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038b54 0088 ldrh r0, [r0]
| ||||||| 0x08038b56 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x08038b58 15d2 bhs 0x8038b86
| --------> 0x08038b5a dff87c08 ldr.w r0, [0x080393de] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x08038b5e 0078 ldrb r0, [r0]
| ||||||| 0x08038b60 10f00300 ands r0, r0, 3
| ||||||| 0x08038b64 0128 cmp r0, 1 ; 1
| ========< 0x08038b66 14d1 bne 0x8038b92
| ||||||| 0x08038b68 dff86006 ldr.w r0, [0x080391d0] ; [0x80391d0:4]=0x2001e8bb
| ||||||| 0x08038b6c 90f82700 ldrb.w r0, [r0, 0x27]
| ||||||| 0x08038b70 0521 movs r1, 5 ; 5
| ||||||| 0x08038b72 4843 muls r0, r1, r0
| ||||||| 0x08038b74 401c adds r0, r0, 1
| ||||||| 0x08038b76 0221 movs r1, 2 ; 2
| ||||||| 0x08038b78 90fbf1f0 sdiv r0, r0, r1
| ||||||| 0x08038b7c dff84016 ldr.w r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038b80 0988 ldrh r1, [r1]
| ||||||| 0x08038b82 8142 cmp r1, r0
| ========< 0x08038b84 05db blt 0x8038b92
| --------> 0x08038b86 dff83806 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038b8a 0021 movs r1, 0
| ||||||| 0x08038b8c 0180 strh r1, [r0]
| ||||||| 0x08038b8e 00f0c5fc bl func_3951c
| --------> 0x08038b92 ffe7 b 0x8038b94
| =``-----> 0x08038b94 1ae2 b 0x8038fcc
| --------> 0x08038b96 dff85404 ldr.w r0, [0x08038ff2] ; [0x8038ff0:4]=0x2001e852
| | |||| 0x08038b9a 0078 ldrb r0, [r0]
| | |||| 0x08038b9c 4128 cmp r0, 0x41 ; 'A' ; 65
| | ,=====< 0x08038b9e 07d0 beq 0x8038bb0
| |,======< 0x08038ba0 c0f0f180 blo.w 0x8038d86
| ||||||| 0x08038ba4 4328 cmp r0, 0x43 ; 'C' ; 67
| ========< 0x08038ba6 2dd0 beq 0x8038c04
| ========< 0x08038ba8 0bd3 blo 0x8038bc2
| ||||||| 0x08038baa 4428 cmp r0, 0x44 ; 'D' ; 68
| ========< 0x08038bac 7dd0 beq 0x8038caa
| ========< 0x08038bae eae0 b 0x8038d86
| ||`-----> 0x08038bb0 dff83804 ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| || |||| 0x08038bb4 4221 movs r1, 0x42 ; 'B' ; 66
| || |||| 0x08038bb6 0170 strb r1, [r0]
| || |||| 0x08038bb8 dff80406 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| || |||| 0x08038bbc 0021 movs r1, 0
| || |||| 0x08038bbe 0180 strh r1, [r0]
| ||,=====< 0x08038bc0 e1e0 b 0x8038d86
| --------> 0x08038bc2 dff81806 ldr.w r0, [0x080391e2] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08038bc6 0078 ldrb r0, [r0]
| ||||||| 0x08038bc8 c007 lsls r0, r0, 0x1f
| ========< 0x08038bca 08d5 bpl 0x8038bde
| ||||||| 0x08038bcc dff81c04 ldr.w r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| ||||||| 0x08038bd0 4321 movs r1, 0x43 ; 'C' ; 67
| ||||||| 0x08038bd2 0170 strb r1, [r0]
| ||||||| 0x08038bd4 dff8e805 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038bd8 0021 movs r1, 0
| ||||||| 0x08038bda 0180 strh r1, [r0]
| ========< 0x08038bdc 11e0 b 0x8038c02
| --------> 0x08038bde dff8e005 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038be2 0088 ldrh r0, [r0]
| ||||||| 0x08038be4 401c adds r0, r0, 1
| ||||||| 0x08038be6 dff8d815 ldr.w r1, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038bea 0880 strh r0, [r1]
| ||||||| 0x08038bec dff8d005 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038bf0 0088 ldrh r0, [r0]
| ||||||| 0x08038bf2 0628 cmp r0, 6 ; 6
| ========< 0x08038bf4 05d3 blo 0x8038c02
| ||||||| 0x08038bf6 dff8c805 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038bfa 0021 movs r1, 0
| ||||||| 0x08038bfc 0180 strh r1, [r0]
| ||||||| 0x08038bfe 00f0edfb bl func_393dc
| --------> 0x08038c02 c0e0 b 0x8038d86
| --------> 0x08038c04 dff8d405 ldr.w r0, [0x080391e0] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08038c08 0078 ldrb r0, [r0]
| ||||||| 0x08038c0a 0006 lsls r0, r0, 0x18
| ========< 0x08038c0c 1dd5 bpl 0x8038c4a
| ||||||| 0x08038c0e dff8d803 ldr.w r0, [0x08038fee] ; [0x8038fec:4]=0x2001e8b9
| ||||||| 0x08038c12 0921 movs r1, 9 ; 9
| ||||||| 0x08038c14 0170 strb r1, [r0]
| ||||||| 0x08038c16 dff8d403 ldr.w r0, [0x08038ff2] ; [0x8038ff0:4]=0x2001e852
| ||||||| 0x08038c1a 4421 movs r1, 0x44 ; 'D' ; 68
| ||||||| 0x08038c1c 0170 strb r1, [r0]
| ||||||| 0x08038c1e dff8d403 ldr.w r0, [0x08038ffa] ; [0x8038ff8:4]=0x2001e892 gui_opmode3
| ||||||| 0x08038c22 dff8b013 ldr.w r1, [0x08038fda] ; [0x8038fd8:4]=0x2001e893
| ||||||| 0x08038c26 0988 ldrh r1, [r1]
| ||||||| 0x08038c28 0180 strh r1, [r0]
| ||||||| 0x08038c2a dff8c403 ldr.w r0, [0x08038ff6] ; [0x8038ff4:4]=0x2001e856
| ||||||| 0x08038c2e dff8a413 ldr.w r1, [0x08038fda] ; [0x8038fd8:4]=0x2001e893
| ||||||| 0x08038c32 0988 ldrh r1, [r1]
| ||||||| 0x08038c34 0180 strh r1, [r0]
| ||||||| 0x08038c36 dff88805 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038c3a 0021 movs r1, 0
| ||||||| 0x08038c3c 0180 strh r1, [r0]
| ||||||| 0x08038c3e dff8b403 ldr.w r0, [0x08038ffa] ; [0x8038ff8:4]=0x2001e892 gui_opmode3
| ||||||| 0x08038c42 0088 ldrh r0, [r0]
| ||||||| 0x08038c44 eaf73ff8 bl func_22cc6_spiflash_rd_6
| ========< 0x08038c48 2ee0 b 0x8038ca8
| --------> 0x08038c4a dff87405 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038c4e 0088 ldrh r0, [r0]
| ||||||| 0x08038c50 401c adds r0, r0, 1
| ||||||| 0x08038c52 dff86c15 ldr.w r1, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038c56 0880 strh r0, [r1]
| ||||||| 0x08038c58 dff87c07 ldr.w r0, [func_393dc] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x08038c5c 0078 ldrb r0, [r0]
| ||||||| 0x08038c5e 10f00300 ands r0, r0, 3
| ||||||| 0x08038c62 0128 cmp r0, 1 ; 1
| ========< 0x08038c64 04d0 beq 0x8038c70
| ||||||| 0x08038c66 dff85805 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038c6a 0088 ldrh r0, [r0]
| ||||||| 0x08038c6c 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x08038c6e 15d2 bhs 0x8038c9c
| --------> 0x08038c70 dff86407 ldr.w r0, [func_393dc] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x08038c74 0078 ldrb r0, [r0]
| ||||||| 0x08038c76 10f00300 ands r0, r0, 3
| ||||||| 0x08038c7a 0128 cmp r0, 1 ; 1
| ========< 0x08038c7c 14d1 bne 0x8038ca8
| ||||||| 0x08038c7e dff84c05 ldr.w r0, [0x080391d2] ; [0x80391d0:4]=0x2001e8bb
| ||||||| 0x08038c82 90f82700 ldrb.w r0, [r0, 0x27]
| ||||||| 0x08038c86 0521 movs r1, 5 ; 5
| ||||||| 0x08038c88 4843 muls r0, r1, r0
| ||||||| 0x08038c8a 401c adds r0, r0, 1
| ||||||| 0x08038c8c 0221 movs r1, 2 ; 2
| ||||||| 0x08038c8e 90fbf1f0 sdiv r0, r0, r1
| ||||||| 0x08038c92 dff82c15 ldr.w r1, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038c96 0988 ldrh r1, [r1]
| ||||||| 0x08038c98 8142 cmp r1, r0
| ========< 0x08038c9a 05db blt 0x8038ca8
| --------> 0x08038c9c dff82005 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038ca0 0021 movs r1, 0
| ||||||| 0x08038ca2 0180 strh r1, [r0]
| ||||||| 0x08038ca4 00f09afb bl func_393dc
| --------> 0x08038ca8 6de0 b 0x8038d86
| --------> 0x08038caa dff83005 ldr.w r0, [0x080391e2] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08038cae 0078 ldrb r0, [r0]
| ||||||| 0x08038cb0 0006 lsls r0, r0, 0x18
| ========< 0x08038cb2 23d5 bpl 0x8038cfc
| ||||||| 0x08038cb4 dff80c05 ldr.w r0, [0x080391c8] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038cb8 0021 movs r1, 0
| ||||||| 0x08038cba 0180 strh r1, [r0]
| ||||||| 0x08038cbc dff80005 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038cc0 0088 ldrh r0, [r0]
| ||||||| 0x08038cc2 401c adds r0, r0, 1
| ||||||| 0x08038cc4 dff8f814 ldr.w r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038cc8 0880 strh r0, [r1]
| ||||||| 0x08038cca dff8f404 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038cce 0088 ldrh r0, [r0]
| ||||||| 0x08038cd0 dff8f814 ldr.w r1, [0x080391d0] ; [0x80391d0:4]=0x2001e8bb
| ||||||| 0x08038cd4 91f82810 ldrb.w r1, [r1, 0x28]
| ||||||| 0x08038cd8 1922 movs r2, 0x19 ; 25
| ||||||| 0x08038cda 5143 muls r1, r2, r1
| ||||||| 0x08038cdc 8842 cmp r0, r1
| ========< 0x08038cde 51db blt 0x8038d84
| ||||||| 0x08038ce0 dff8dc04 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038ce4 0021 movs r1, 0
| ||||||| 0x08038ce6 0180 strh r1, [r0]
| ||||||| 0x08038ce8 dff8ec06 ldr.w r0, [func_393dc] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x08038cec 0078 ldrb r0, [r0]
| ||||||| 0x08038cee 10f00300 ands r0, r0, 3
| ||||||| 0x08038cf2 0128 cmp r0, 1 ; 1
| ========< 0x08038cf4 46d1 bne 0x8038d84
| ||||||| 0x08038cf6 00f031fc bl func_3955c
| ========< 0x08038cfa 43e0 b 0x8038d84
| --------> 0x08038cfc dff8d806 ldr.w r0, [func_393dc] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x08038d00 0078 ldrb r0, [r0]
| ||||||| 0x08038d02 10f00300 ands r0, r0, 3
| ||||||| 0x08038d06 0128 cmp r0, 1 ; 1
| ========< 0x08038d08 1cd1 bne 0x8038d44
| ||||||| 0x08038d0a dff8b804 ldr.w r0, [0x080391ca] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038d0e 0088 ldrh r0, [r0]
| ||||||| 0x08038d10 401c adds r0, r0, 1
| ||||||| 0x08038d12 dff8b014 ldr.w r1, [0x080391ca] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038d16 0880 strh r0, [r1]
| ||||||| 0x08038d18 dff8a804 ldr.w r0, [0x080391c8] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038d1c 0088 ldrh r0, [r0]
| ||||||| 0x08038d1e dff82c19 ldr.w r1, [0x08039652] ; [0x8039650:4]=0x2001e94d gui_opmode1
| ||||||| 0x08038d22 097d ldrb r1, [r1, 0x14]
| ||||||| 0x08038d24 0a22 movs r2, 0xa ; 10
| ||||||| 0x08038d26 5143 muls r1, r2, r1
| ||||||| 0x08038d28 8842 cmp r0, r1
| ========< 0x08038d2a 2bdb blt 0x8038d84
| ||||||| 0x08038d2c dff89404 ldr.w r0, [0x080391c8] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038d30 0021 movs r1, 0
| ||||||| 0x08038d32 0180 strh r1, [r0]
| ||||||| 0x08038d34 00f052fb bl func_393dc
| ||||||| 0x08038d38 dff89c04 ldr.w r0, [0x080391dc] ; [0x80391dc:4]=0x2001e600 q_struct_1
| ||||||| 0x08038d3c 0088 ldrh r0, [r0]
| ||||||| 0x08038d3e e9f7c2ff bl func_22cc6_spiflash_rd_6
| ========< 0x08038d42 1fe0 b 0x8038d84
| --------> 0x08038d44 dff87c04 ldr.w r0, [0x080391c8] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038d48 0088 ldrh r0, [r0]
| ||||||| 0x08038d4a 401c adds r0, r0, 1
| ||||||| 0x08038d4c dff87414 ldr.w r1, [0x080391c8] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038d50 0880 strh r0, [r1]
| ||||||| 0x08038d52 dff87004 ldr.w r0, [0x080391ca] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038d56 0088 ldrh r0, [r0]
| ||||||| 0x08038d58 dff8f018 ldr.w r1, [0x08039650] ; [0x8039650:4]=0x2001e94d gui_opmode1
| ||||||| 0x08038d5c c97c ldrb r1, [r1, 0x13]
| ||||||| 0x08038d5e 0a22 movs r2, 0xa ; 10
| ||||||| 0x08038d60 5143 muls r1, r2, r1
| ||||||| 0x08038d62 8842 cmp r0, r1
| ========< 0x08038d64 0edb blt 0x8038d84
| ||||||| 0x08038d66 dff85c04 ldr.w r0, [0x080391ca] ; [0x80391c8:4]=0x2001e8f5 msg_status_flag1
| ||||||| 0x08038d6a 0021 movs r1, 0
| ||||||| 0x08038d6c 0180 strh r1, [r0]
| ||||||| 0x08038d6e dff8e008 ldr.w r0, [0x08039656] ; [0x8039654:4]=0xb084b510
| ||||||| 0x08038d72 9321 movs r1, 0x93 ; 147
| ||||||| 0x08038d74 0170 strb r1, [r0]
| ||||||| 0x08038d76 00f031fb bl func_393dc
| ||||||| 0x08038d7a dff85c04 ldr.w r0, [0x080391de] ; [0x80391dc:4]=0x2001e600 q_struct_1
| ||||||| 0x08038d7e 0088 ldrh r0, [r0]
| ||||||| 0x08038d80 e9f7a1ff bl func_22cc6_spiflash_rd_6
| --------> 0x08038d84 ffe7 b 0x8038d86
| =``-----> 0x08038d86 21e1 b 0x8038fcc
| --------> 0x08038d88 9848 ldr r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| | |||| 0x08038d8a 0078 ldrb r0, [r0]
| | |||| 0x08038d8c 4128 cmp r0, 0x41 ; 'A' ; 65
| | ,=====< 0x08038d8e 04d0 beq 0x8038d9a
| |,======< 0x08038d90 77d3 blo 0x8038e82
| ||||||| 0x08038d92 4328 cmp r0, 0x43 ; 'C' ; 67
| ========< 0x08038d94 29d0 beq 0x8038dea
| ========< 0x08038d96 08d3 blo 0x8038daa
| ========< 0x08038d98 73e0 b 0x8038e82
| ||`-----> 0x08038d9a 9448 ldr r0, [0x08038fee] ; [0x8038fec:4]=0x2001e8b9
| || |||| 0x08038d9c 4221 movs r1, 0x42 ; 'B' ; 66
| || |||| 0x08038d9e 0170 strb r1, [r0]
| || |||| 0x08038da0 dff81c04 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| || |||| 0x08038da4 0021 movs r1, 0
| || |||| 0x08038da6 0180 strh r1, [r0]
| ||,=====< 0x08038da8 6be0 b 0x8038e82
| --------> 0x08038daa dff83004 ldr.w r0, [0x080391e2] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08038dae 0078 ldrb r0, [r0]
| ||||||| 0x08038db0 c007 lsls r0, r0, 0x1f
| ========< 0x08038db2 07d5 bpl 0x8038dc4
| ||||||| 0x08038db4 8d48 ldr r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| ||||||| 0x08038db6 4321 movs r1, 0x43 ; 'C' ; 67
| ||||||| 0x08038db8 0170 strb r1, [r0]
| ||||||| 0x08038dba dff80404 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038dbe 0021 movs r1, 0
| ||||||| 0x08038dc0 0180 strh r1, [r0]
| ========< 0x08038dc2 11e0 b 0x8038de8
| --------> 0x08038dc4 dff8f803 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038dc8 0088 ldrh r0, [r0]
| ||||||| 0x08038dca 401c adds r0, r0, 1
| ||||||| 0x08038dcc dff8f013 ldr.w r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038dd0 0880 strh r0, [r1]
| ||||||| 0x08038dd2 dff8ec03 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038dd6 0088 ldrh r0, [r0]
| ||||||| 0x08038dd8 0328 cmp r0, 3 ; 3
| ========< 0x08038dda 05d3 blo 0x8038de8
| ||||||| 0x08038ddc dff8e003 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038de0 0021 movs r1, 0
| ||||||| 0x08038de2 0180 strh r1, [r0]
| ||||||| 0x08038de4 00f012fc bl func_3960c
| --------> 0x08038de8 4be0 b 0x8038e82
| --------> 0x08038dea dff8f003 ldr.w r0, [0x080391e2] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x08038dee 0078 ldrb r0, [r0]
| ||||||| 0x08038df0 0006 lsls r0, r0, 0x18
| ========< 0x08038df2 16d5 bpl 0x8038e22
| ||||||| 0x08038df4 7c48 ldr r0, [0x08038fe8] ; [0x8038fe8:4]=0x2001e8b8 some_state_var
| ||||||| 0x08038df6 0b21 movs r1, 0xb ; 11
| ||||||| 0x08038df8 0170 strb r1, [r0]
| ||||||| 0x08038dfa 7c48 ldr r0, [0x08038fee] ; [0x8038fec:4]=0x2001e8b9
| ||||||| 0x08038dfc 4421 movs r1, 0x44 ; 'D' ; 68
| ||||||| 0x08038dfe 0170 strb r1, [r0]
| ||||||| 0x08038e00 7c48 ldr r0, [0x08038ff4] ; [0x8038ff4:4]=0x2001e856
| ||||||| 0x08038e02 7449 ldr r1, [0x08038fd6] ; [0x8038fd4:4]=0x2001e854
| ||||||| 0x08038e04 0988 ldrh r1, [r1]
| ||||||| 0x08038e06 0180 strh r1, [r0]
| ||||||| 0x08038e08 7948 ldr r0, [0x08038ff0] ; [0x8038ff0:4]=0x2001e852
| ||||||| 0x08038e0a 7249 ldr r1, [0x08038fd6] ; [0x8038fd4:4]=0x2001e854
| ||||||| 0x08038e0c 0988 ldrh r1, [r1]
| ||||||| 0x08038e0e 0180 strh r1, [r0]
| ||||||| 0x08038e10 dff8ac03 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038e14 0021 movs r1, 0
| ||||||| 0x08038e16 0180 strh r1, [r0]
| ||||||| 0x08038e18 7648 ldr r0, [0x08038ff4] ; [0x8038ff4:4]=0x2001e856
| ||||||| 0x08038e1a 0088 ldrh r0, [r0]
| ||||||| 0x08038e1c e9f753ff bl func_22cc6_spiflash_rd_6
| ========< 0x08038e20 2ee0 b 0x8038e80
| --------> 0x08038e22 dff89c03 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038e26 0088 ldrh r0, [r0]
| ||||||| 0x08038e28 401c adds r0, r0, 1
| ||||||| 0x08038e2a dff89413 ldr.w r1, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038e2e 0880 strh r0, [r1]
| ||||||| 0x08038e30 dff8a405 ldr.w r0, [func_393dc] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x08038e34 0078 ldrb r0, [r0]
| ||||||| 0x08038e36 10f00300 ands r0, r0, 3
| ||||||| 0x08038e3a 0128 cmp r0, 1 ; 1
| ========< 0x08038e3c 04d0 beq 0x8038e48
| ||||||| 0x08038e3e dff88003 ldr.w r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038e42 0088 ldrh r0, [r0]
| ||||||| 0x08038e44 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x08038e46 15d2 bhs 0x8038e74
| --------> 0x08038e48 dff88c05 ldr.w r0, [func_393dc] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x08038e4c 0078 ldrb r0, [r0]
| ||||||| 0x08038e4e 10f00300 ands r0, r0, 3
| ||||||| 0x08038e52 0128 cmp r0, 1 ; 1
| ========< 0x08038e54 14d1 bne 0x8038e80
| ||||||| 0x08038e56 dff87403 ldr.w r0, [0x080391d2] ; [0x80391d0:4]=0x2001e8bb
| ||||||| 0x08038e5a 90f82700 ldrb.w r0, [r0, 0x27]
| ||||||| 0x08038e5e 0521 movs r1, 5 ; 5
| ||||||| 0x08038e60 4843 muls r0, r1, r0
| ||||||| 0x08038e62 401c adds r0, r0, 1
| ||||||| 0x08038e64 0221 movs r1, 2 ; 2
| ||||||| 0x08038e66 90fbf1f0 sdiv r0, r0, r1
| ||||||| 0x08038e6a dff85413 ldr.w r1, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038e6e 0988 ldrh r1, [r1]
| ||||||| 0x08038e70 8142 cmp r1, r0
| ========< 0x08038e72 05db blt 0x8038e80
| --------> 0x08038e74 dff84803 ldr.w r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038e78 0021 movs r1, 0
| ||||||| 0x08038e7a 0180 strh r1, [r0]
| ||||||| 0x08038e7c 00f0c6fb bl func_3960c
| --------> 0x08038e80 ffe7 b 0x8038e82
| =``-----> 0x08038e82 a3e0 b 0x8038fcc
| --------> 0x08038e84 5948 ldr r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| | |||| 0x08038e86 0078 ldrb r0, [r0]
| | |||| 0x08038e88 4428 cmp r0, 0x44 ; 'D' ; 68
| | ,=====< 0x08038e8a 46d1 bne 0x8038f1a
| | ||||| 0x08038e8c dff84c03 ldr.w r0, [0x080391e0] ; [0x80391e0:4]=0x2001e5d0 msg_timer_500
| | ||||| 0x08038e90 0078 ldrb r0, [r0]
| | ||||| 0x08038e92 0006 lsls r0, r0, 0x18
| |,======< 0x08038e94 06d5 bpl 0x8038ea4
| ||||||| 0x08038e96 ca48 ldr r0, [0x080391c2] ; [0x80391c0:4]=0x2001e840
| ||||||| 0x08038e98 0021 movs r1, 0
| ||||||| 0x08038e9a 0180 strh r1, [r0]
| ||||||| 0x08038e9c c948 ldr r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038e9e 0021 movs r1, 0
| ||||||| 0x08038ea0 0180 strh r1, [r0]
| ========< 0x08038ea2 39e0 b 0x8038f18
| |`------> 0x08038ea4 dff83005 ldr.w r0, [func_393dc] ; [0x80393dc:4]=0xf8dfb580
| | ||||| 0x08038ea8 0078 ldrb r0, [r0]
| | ||||| 0x08038eaa 10f00300 ands r0, r0, 3
| | ||||| 0x08038eae 0128 cmp r0, 1 ; 1
| |,======< 0x08038eb0 17d1 bne 0x8038ee2
| ||||||| 0x08038eb2 c448 ldr r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038eb4 0088 ldrh r0, [r0]
| ||||||| 0x08038eb6 401c adds r0, r0, 1
| ||||||| 0x08038eb8 c249 ldr r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038eba 0880 strh r0, [r1]
| ||||||| 0x08038ebc c148 ldr r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038ebe 0088 ldrh r0, [r0]
| ||||||| 0x08038ec0 dff88817 ldr.w r1, [0x08039650] ; [0x8039650:4]=0x2001e94d gui_opmode1
| ||||||| 0x08038ec4 097d ldrb r1, [r1, 0x14]
| ||||||| 0x08038ec6 0a22 movs r2, 0xa ; 10
| ||||||| 0x08038ec8 5143 muls r1, r2, r1
| ||||||| 0x08038eca 8842 cmp r0, r1
| ========< 0x08038ecc 24db blt 0x8038f18
| ||||||| 0x08038ece bd48 ldr r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038ed0 0021 movs r1, 0
| ||||||| 0x08038ed2 0180 strh r1, [r0]
| ||||||| 0x08038ed4 00f082fa bl func_393dc
| ||||||| 0x08038ed8 bf48 ldr r0, [0x080391d8] ; [0x80391d8:4]=0x2001e850 selected_channel
| ||||||| 0x08038eda 0088 ldrh r0, [r0]
| ||||||| 0x08038edc e9f7f3fe bl func_22cc6_spiflash_rd_6
| ========< 0x08038ee0 1ae0 b 0x8038f18
| |`------> 0x08038ee2 b848 ldr r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| | ||||| 0x08038ee4 0088 ldrh r0, [r0]
| | ||||| 0x08038ee6 401c adds r0, r0, 1
| | ||||| 0x08038ee8 b649 ldr r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| | ||||| 0x08038eea 0880 strh r0, [r1]
| | ||||| 0x08038eec b548 ldr r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| | ||||| 0x08038eee 0088 ldrh r0, [r0]
| | ||||| 0x08038ef0 dff85817 ldr.w r1, [0x08039650] ; [0x8039650:4]=0x2001e94d gui_opmode1
| | ||||| 0x08038ef4 c97c ldrb r1, [r1, 0x13]
| | ||||| 0x08038ef6 0a22 movs r2, 0xa ; 10
| | ||||| 0x08038ef8 5143 muls r1, r2, r1
| | ||||| 0x08038efa 8842 cmp r0, r1
| |,======< 0x08038efc 0cdb blt 0x8038f18
| ||||||| 0x08038efe b148 ldr r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038f00 0021 movs r1, 0
| ||||||| 0x08038f02 0180 strh r1, [r0]
| ||||||| 0x08038f04 dff84807 ldr.w r0, [menu_39654_create_some_entry] ; [0x8039654:4]=0xb084b510
| ||||||| 0x08038f08 9321 movs r1, 0x93 ; 147
| ||||||| 0x08038f0a 0170 strb r1, [r0]
| ||||||| 0x08038f0c 00f066fa bl func_393dc
| ||||||| 0x08038f10 b148 ldr r0, [0x080391d8] ; [0x80391d8:4]=0x2001e850 selected_channel
| ||||||| 0x08038f12 0088 ldrh r0, [r0]
| ||||||| 0x08038f14 e9f7d7fe bl func_22cc6_spiflash_rd_6
| -`------> 0x08038f18 ffe7 b 0x8038f1a
| -,`-----> 0x08038f1a 57e0 b 0x8038fcc
| --------> 0x08038f1c 3348 ldr r0, [0x08038fec] ; [0x8038fec:4]=0x2001e8b9
| || |||| 0x08038f1e 0078 ldrb r0, [r0]
| || |||| 0x08038f20 4128 cmp r0, 0x41 ; 'A' ; 65
| ||,=====< 0x08038f22 02d0 beq 0x8038f2a
| ||||||| 0x08038f24 4428 cmp r0, 0x44 ; 'D' ; 68
| ========< 0x08038f26 0ad0 beq 0x8038f3e
| ========< 0x08038f28 4fe0 b 0x8038fca
| ||`-----> 0x08038f2a 3048 ldr r0, [0x08038fee] ; [0x8038fec:4]=0x2001e8b9
| || |||| 0x08038f2c 4421 movs r1, 0x44 ; 'D' ; 68
| || |||| 0x08038f2e 0170 strb r1, [r0]
| || |||| 0x08038f30 a348 ldr r0, [0x080391c0] ; [0x80391c0:4]=0x2001e840
| || |||| 0x08038f32 0021 movs r1, 0
| || |||| 0x08038f34 0180 strh r1, [r0]
| || |||| 0x08038f36 a348 ldr r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| || |||| 0x08038f38 0021 movs r1, 0
| || |||| 0x08038f3a 0180 strh r1, [r0]
| ||,=====< 0x08038f3c 45e0 b 0x8038fca
| --------> 0x08038f3e a748 ldr r0, [0x080391de] ; [0x80391dc:4]=0x2001e600 q_struct_1
| ||||||| 0x08038f40 0078 ldrb r0, [r0]
| ||||||| 0x08038f42 0006 lsls r0, r0, 0x18
| ========< 0x08038f44 06d5 bpl 0x8038f54
| ||||||| 0x08038f46 9e48 ldr r0, [0x080391c2] ; [0x80391c0:4]=0x2001e840
| ||||||| 0x08038f48 0021 movs r1, 0
| ||||||| 0x08038f4a 0180 strh r1, [r0]
| ||||||| 0x08038f4c 9d48 ldr r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038f4e 0021 movs r1, 0
| ||||||| 0x08038f50 0180 strh r1, [r0]
| ========< 0x08038f52 39e0 b 0x8038fc8
| --------> 0x08038f54 dff88004 ldr.w r0, [func_393dc] ; [0x80393dc:4]=0xf8dfb580
| ||||||| 0x08038f58 0078 ldrb r0, [r0]
| ||||||| 0x08038f5a 10f00300 ands r0, r0, 3
| ||||||| 0x08038f5e 0128 cmp r0, 1 ; 1
| ========< 0x08038f60 17d1 bne 0x8038f92
| ||||||| 0x08038f62 9848 ldr r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038f64 0088 ldrh r0, [r0]
| ||||||| 0x08038f66 401c adds r0, r0, 1
| ||||||| 0x08038f68 9649 ldr r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038f6a 0880 strh r0, [r1]
| ||||||| 0x08038f6c 9548 ldr r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038f6e 0088 ldrh r0, [r0]
| ||||||| 0x08038f70 dff8d816 ldr.w r1, [0x08039650] ; [0x8039650:4]=0x2001e94d gui_opmode1
| ||||||| 0x08038f74 097d ldrb r1, [r1, 0x14]
| ||||||| 0x08038f76 0a22 movs r2, 0xa ; 10
| ||||||| 0x08038f78 5143 muls r1, r2, r1
| ||||||| 0x08038f7a 8842 cmp r0, r1
| ========< 0x08038f7c 24db blt 0x8038fc8
| ||||||| 0x08038f7e 9148 ldr r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038f80 0021 movs r1, 0
| ||||||| 0x08038f82 0180 strh r1, [r0]
| ||||||| 0x08038f84 00f02afa bl func_393dc
| ||||||| 0x08038f88 9348 ldr r0, [0x080391d8] ; [0x80391d8:4]=0x2001e850 selected_channel
| ||||||| 0x08038f8a 0088 ldrh r0, [r0]
| ||||||| 0x08038f8c e9f79bfe bl func_22cc6_spiflash_rd_6
| ========< 0x08038f90 1ae0 b 0x8038fc8
| --------> 0x08038f92 8c48 ldr r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038f94 0088 ldrh r0, [r0]
| ||||||| 0x08038f96 401c adds r0, r0, 1
| ||||||| 0x08038f98 8a49 ldr r1, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038f9a 0880 strh r0, [r1]
| ||||||| 0x08038f9c 8948 ldr r0, [0x080391c4] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038f9e 0088 ldrh r0, [r0]
| ||||||| 0x08038fa0 dff8a816 ldr.w r1, [0x08039650] ; [0x8039650:4]=0x2001e94d gui_opmode1
| ||||||| 0x08038fa4 c97c ldrb r1, [r1, 0x13]
| ||||||| 0x08038fa6 0a22 movs r2, 0xa ; 10
| ||||||| 0x08038fa8 5143 muls r1, r2, r1
| ||||||| 0x08038faa 8842 cmp r0, r1
| ========< 0x08038fac 0cdb blt 0x8038fc8
| ||||||| 0x08038fae 8548 ldr r0, [0x080391c6] ; [0x80391c4:4]=0x2001e842
| ||||||| 0x08038fb0 0021 movs r1, 0
| ||||||| 0x08038fb2 0180 strh r1, [r0]
| ||||||| 0x08038fb4 dff89806 ldr.w r0, [menu_39654_create_some_entry] ; [0x8039654:4]=0xb084b510
| ||||||| 0x08038fb8 9321 movs r1, 0x93 ; 147
| ||||||| 0x08038fba 0170 strb r1, [r0]
| ||||||| 0x08038fbc 00f00efa bl func_393dc
| ||||||| 0x08038fc0 8548 ldr r0, [0x080391d8] ; [0x80391d8:4]=0x2001e850 selected_channel
| ||||||| 0x08038fc2 0088 ldrh r0, [r0]
| ||||||| 0x08038fc4 e9f77ffe bl func_22cc6_spiflash_rd_6
| --------> 0x08038fc8 ffe7 b 0x8038fca
| ==`-----> 0x08038fca ffe7 b 0x8038fcc
\ ``-````-> 0x08038fcc 01bd pop {r0, pc}
/ (fcn) func_393dc 320
| Caller: func_384d4
| func_393dc ();
| 0x080393dc 80b5 push {r7, lr}
| 0x080393de dff8fc18 ldr.w r1, [0x08039ce2] ; [0x8039ce0:4]=0x2001e5e8
| 0x080393e2 0978 ldrb r1, [r1]
| 0x080393e4 0029 cmp r1, 0
| ,=< 0x080393e6 39d1 bne 0x803945c
| | 0x080393e8 dff8e818 ldr.w r1, [0x08039cd8] ; [0x8039cd8:4]=0x2001e5d0 msg_timer_500
| | 0x080393ec 098c ldrh r1, [r1, 0x20]
| | 0x080393ee 0029 cmp r1, 0
| ,==< 0x080393f0 30d0 beq 0x8039454
| || 0x080393f2 dff8e018 ldr.w r1, [0x08039cda] ; [0x8039cd8:4]=0x2001e5d0 msg_timer_500
| || 0x080393f6 498c ldrh r1, [r1, 0x22]
| || 0x080393f8 0029 cmp r1, 0
| ,===< 0x080393fa 2bd0 beq 0x8039454
| ||| 0x080393fc dff8e018 ldr.w r1, [0x08039ce4] ; [0x8039ce4:4]=0x2001e8b9
| ||| 0x08039400 0968 ldr r1, [r1]
| ||| 0x08039402 0122 movs r2, 1 ; 1
| ||| 0x08039404 dff8d438 ldr.w r3, [0x08039ce0] ; [0x8039ce0:4]=0x2001e5e8
| ||| 0x08039408 93f90030 ldrsb.w r3, [r3]
| ||| 0x0803940c 9a40 lsls r2, r3
| ||| 0x0803940e 1142 tst r1, r2
| ,====< 0x08039410 20d0 beq 0x8039454
| |||| 0x08039412 dff81805 ldr.w r0, [0x08039932] ; [0x8039930:4]=0xf8dfb53e
| |||| 0x08039416 0088 ldrh r0, [r0]
| |||| 0x08039418 dff8c018 ldr.w r1, [0x08039ce0] ; [0x8039ce0:4]=0x2001e5e8
| |||| 0x0803941c 0122 movs r2, 1 ; 1
| |||| 0x0803941e 0a70 strb r2, [r1]
| |||| 0x08039420 dff8f814 ldr.w r1, [0x08039920] ; [0x8039920:4]=0x2001e8b9
| |||| 0x08039424 0122 movs r2, 1 ; 1
| |||| 0x08039426 0a70 strb r2, [r1]
| |||| 0x08039428 dff8f414 ldr.w r1, [0x08039924] ; [0x8039924:4]=0x2001e854
| |||| 0x0803942c 4222 movs r2, 0x42 ; 'B' ; 66
| |||| 0x0803942e 0a70 strb r2, [r1]
| |||| 0x08039430 dff8f014 ldr.w r1, [0x08039928] ; [0x8039928:4]=0x2001e893
| |||| 0x08039434 0880 strh r0, [r1]
| |||| 0x08039436 80b2 uxth r0, r0
| |||| 0x08039438 e9f783fb bl func_22b42
| |||| 0x0803943c f8f76efd bl func_31f1c
| |||| 0x08039440 dff8e404 ldr.w r0, [0x0803992c] ; [0x803992c:4]=0x2001e850 selected_channel
| |||| 0x08039444 0421 movs r1, 4 ; 4
| |||| 0x08039446 0170 strb r1, [r0]
| |||| 0x08039448 dff88c08 ldr.w r0, [0x08039cdc] ; [0x8039cdc:4]=0x2001e8ba
| |||| 0x0803944c 4ff4fa71 mov.w r1, 0x1f4 ; 500
| |||| 0x08039450 0160 str r1, [r0]
| ,=====< 0x08039452 62e0 b 0x803951a
| |```--> 0x08039454 dff88418 ldr.w r1, [0x08039ce0] ; [0x8039ce0:4]=0x2001e5e8
| | | 0x08039458 0122 movs r2, 1 ; 1
| | | 0x0803945a 0a70 strb r2, [r1]
| ..-...`-> 0x0803945c dff87c18 ldr.w r1, [0x08039ce0] ; [0x8039ce0:4]=0x2001e5e8
| |||||| 0x08039460 0978 ldrb r1, [r1]
| |||||| 0x08039462 2029 cmp r1, 0x20 ; 32
| ||||||,=< 0x08039464 0cd3 blo 0x8039480
| ||||||| 0x08039466 dff87408 ldr.w r0, [0x08039ce2] ; [0x8039ce0:4]=0x2001e5e8
| ||||||| 0x0803946a 0021 movs r1, 0
| ||||||| 0x0803946c 0170 strb r1, [r0]
| ||||||| 0x0803946e dff8ac04 ldr.w r0, [0x08039922] ; [0x8039920:4]=0x2001e8b9
| ||||||| 0x08039472 0021 movs r1, 0
| ||||||| 0x08039474 0170 strb r1, [r0]
| ||||||| 0x08039476 dff8a804 ldr.w r0, [0x08039926] ; [0x8039924:4]=0x2001e854
| ||||||| 0x0803947a 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0803947c 0170 strb r1, [r0]
| ========< 0x0803947e 4ce0 b 0x803951a
| ||||||`-> 0x08039480 dff85c18 ldr.w r1, [0x08039ce4] ; [0x8039ce4:4]=0x2001e8b9
| |||||| 0x08039484 0968 ldr r1, [r1]
| |||||| 0x08039486 0122 movs r2, 1 ; 1
| |||||| 0x08039488 dff85038 ldr.w r3, [0x08039ce0] ; [0x8039ce0:4]=0x2001e5e8
| |||||| 0x0803948c 93f90030 ldrsb.w r3, [r3]
| |||||| 0x08039490 9a40 lsls r2, r3
| |||||| 0x08039492 1142 tst r1, r2
| ||||||,=< 0x08039494 07d0 beq 0x80394a6
| ||||||| 0x08039496 dff84408 ldr.w r0, [0x08039ce2] ; [0x8039ce0:4]=0x2001e5e8
| ||||||| 0x0803949a 0078 ldrb r0, [r0]
| ||||||| 0x0803949c dff83418 ldr.w r1, [0x08039cd8] ; [0x8039cd8:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x080394a0 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x080394a4 008d ldrh r0, [r0, 0x28]
| ||||||`-> 0x080394a6 dff83418 ldr.w r1, [0x08039ce2] ; [0x8039ce0:4]=0x2001e5e8
| |||||| 0x080394aa 0978 ldrb r1, [r1]
| |||||| 0x080394ac 491c adds r1, r1, 1
| |||||| 0x080394ae dff82c28 ldr.w r2, [0x08039ce2] ; [0x8039ce0:4]=0x2001e5e8
| |||||| 0x080394b2 1170 strb r1, [r2]
| |||||| 0x080394b4 dff87414 ldr.w r1, [menu_39930_creates_many_entries] ; [0x8039930:4]=0xf8dfb53e
| |||||| 0x080394b8 0988 ldrh r1, [r1]
| |||||| 0x080394ba 80b2 uxth r0, r0
| |||||| 0x080394bc 8842 cmp r0, r1
| `=======< 0x080394be cdd0 beq 0x803945c
| ||||| 0x080394c0 dff81018 ldr.w r1, [0x08039cd8] ; [0x8039cd8:4]=0x2001e5d0 msg_timer_500
| ||||| 0x080394c4 098c ldrh r1, [r1, 0x20]
| ||||| 0x080394c6 80b2 uxth r0, r0
| ||||| 0x080394c8 8842 cmp r0, r1
| `======< 0x080394ca c7d0 beq 0x803945c
| |||| 0x080394cc dff80418 ldr.w r1, [0x08039cd8] ; [0x8039cd8:4]=0x2001e5d0 msg_timer_500
| |||| 0x080394d0 498c ldrh r1, [r1, 0x22]
| |||| 0x080394d2 80b2 uxth r0, r0
| |||| 0x080394d4 8842 cmp r0, r1
| |`====< 0x080394d6 c1d0 beq 0x803945c
| | || 0x080394d8 80b2 uxth r0, r0
| | || 0x080394da 0028 cmp r0, 0
| | `===< 0x080394dc bed0 beq 0x803945c
| | | 0x080394de 40f2e931 movw r1, 0x3e9 ; 1001
| | | 0x080394e2 80b2 uxth r0, r0
| | | 0x080394e4 8842 cmp r0, r1
| | `==< 0x080394e6 b9d2 bhs 0x803945c
| | 0x080394e8 dff83014 ldr.w r1, [0x08039920] ; [0x8039920:4]=0x2001e8b9
| | 0x080394ec 0122 movs r2, 1 ; 1
| | 0x080394ee 0a70 strb r2, [r1]
| | 0x080394f0 dff8f017 ldr.w r1, [0x08039ce8] ; [0x8039ce8:4]=0x2001e8b8 some_state_var
| | 0x080394f4 4222 movs r2, 0x42 ; 'B' ; 66
| | 0x080394f6 0a70 strb r2, [r1]
| | 0x080394f8 dff82814 ldr.w r1, [0x08039928] ; [0x8039928:4]=0x2001e893
| | 0x080394fc 0880 strh r0, [r1]
| | 0x080394fe 80b2 uxth r0, r0
| | 0x08039500 e9f71ffb bl func_22b42
| | 0x08039504 f8f70afd bl func_31f1c
| | 0x08039508 dff81c04 ldr.w r0, [0x0803992c] ; [0x803992c:4]=0x2001e850 selected_channel
| | 0x0803950c 0421 movs r1, 4 ; 4
| | 0x0803950e 0170 strb r1, [r0]
| | 0x08039510 dff8c407 ldr.w r0, [0x08039cdc] ; [0x8039cdc:4]=0x2001e8ba
| | 0x08039514 4ff4fa71 mov.w r1, 0x1f4 ; 500
| | 0x08039518 0160 str r1, [r0]
\ --`-----> 0x0803951a 01bd pop {r0, pc}
/ (fcn) func_3951c 64
| Caller: func_384d4
| func_3951c ();
| 0x0803951c 80b5 push {r7, lr}
| 0x0803951e dff8c807 ldr.w r0, [0x08039cee] ; [0x8039cec:4]=0x2001e854
| 0x08039522 0521 movs r1, 5 ; 5
| 0x08039524 0170 strb r1, [r0]
| 0x08039526 dff8bc07 ldr.w r0, [0x08039cea] ; [0x8039ce8:4]=0x2001e8b8 some_state_var
| 0x0803952a 4221 movs r1, 0x42 ; 'B' ; 66
| 0x0803952c 0170 strb r1, [r0]
| 0x0803952e dff8bc07 ldr.w r0, [0x08039cf2] ; [0x8039cf0:4]=0x2001e856
| 0x08039532 dff8bc17 ldr.w r1, [0x08039cf6] ; [0x8039cf4:4]=0x2001e893
| 0x08039536 0988 ldrh r1, [r1]
| 0x08039538 0180 strh r1, [r0]
| 0x0803953a dff8b407 ldr.w r0, [0x08039cf6] ; [0x8039cf4:4]=0x2001e893
| 0x0803953e 0088 ldrh r0, [r0]
| 0x08039540 e9f7fffa bl func_22b42
| 0x08039544 f8f7eafc bl func_31f1c
| 0x08039548 dff8a807 ldr.w r0, [0x08039cf8] ; [0x8039cf8:4]=0x2001e850 selected_channel
| 0x0803954c 0421 movs r1, 4 ; 4
| 0x0803954e 0170 strb r1, [r0]
| 0x08039550 dff88407 ldr.w r0, [0x08039cdc] ; [0x8039cdc:4]=0x2001e8ba
| 0x08039554 4ff4fa71 mov.w r1, 0x1f4 ; 500
| 0x08039558 0160 str r1, [r0]
\ 0x0803955a 01bd pop {r0, pc}
/ (fcn) func_3955c 176
| Caller: func_384d4
| func_3955c ();
| 0x0803955c 80b5 push {r7, lr}
| 0x0803955e dff87407 ldr.w r0, [0x08039cda] ; [0x8039cd8:4]=0x2001e5d0 msg_timer_500
| 0x08039562 008c ldrh r0, [r0, 0x20]
| 0x08039564 4ff6ff71 movw r1, 0xffff
| 0x08039568 8842 cmp r0, r1
| ,=< 0x0803956a 04d1 bne 0x8039576
| | 0x0803956c dff86007 ldr.w r0, [0x08039cd4] ; [0x8039cd4:4]=0x2001d950
| | 0x08039570 0021 movs r1, 0
| | 0x08039572 0170 strb r1, [r0]
| ,==< 0x08039574 49e0 b 0x803960a
| |`-> 0x08039576 dff85c07 ldr.w r0, [0x08039cda] ; [0x8039cd8:4]=0x2001e5d0 msg_timer_500
| | 0x0803957a 008c ldrh r0, [r0, 0x20]
| | 0x0803957c 0028 cmp r0, 0
| |,=< 0x0803957e 22d1 bne 0x80395c6
| || 0x08039580 dff86407 ldr.w r0, [0x08039cec] ; [0x8039cec:4]=0x2001e854
| || 0x08039584 0a21 movs r1, 0xa ; 10
| || 0x08039586 0170 strb r1, [r0]
| || 0x08039588 dff84407 ldr.w r0, [0x08039cd4] ; [0x8039cd4:4]=0x2001d950
| || 0x0803958c 0121 movs r1, 1 ; 1
| || 0x0803958e 0170 strb r1, [r0]
| || 0x08039590 dff85007 ldr.w r0, [0x08039ce8] ; [0x8039ce8:4]=0x2001e8b8 some_state_var
| || 0x08039594 4221 movs r1, 0x42 ; 'B' ; 66
| || 0x08039596 0170 strb r1, [r0]
| || 0x08039598 dff85007 ldr.w r0, [0x08039cf0] ; [0x8039cf0:4]=0x2001e856
| || 0x0803959c dff85817 ldr.w r1, [0x08039cfc] ; [0x8039cfc:4]=0x20004acc md380_menu_depth
| || 0x080395a0 0988 ldrh r1, [r1]
| || 0x080395a2 0180 strh r1, [r0]
| || 0x080395a4 dff85007 ldr.w r0, [0x08039cfc] ; [0x8039cfc:4]=0x20004acc md380_menu_depth
| || 0x080395a8 0088 ldrh r0, [r0]
| || 0x080395aa e9f7cafa bl func_22b42
| || 0x080395ae f8f7b5fc bl func_31f1c
| || 0x080395b2 dff84007 ldr.w r0, [0x08039cfa] ; [0x8039cf8:4]=0x2001e850 selected_channel
| || 0x080395b6 0421 movs r1, 4 ; 4
| || 0x080395b8 0170 strb r1, [r0]
| || 0x080395ba dff81c07 ldr.w r0, [0x08039cde] ; [0x8039cdc:4]=0x2001e8ba
| || 0x080395be 4ff4fa71 mov.w r1, 0x1f4 ; 500
| || 0x080395c2 0160 str r1, [r0]
| ,===< 0x080395c4 21e0 b 0x803960a
| ||`-> 0x080395c6 dff82007 ldr.w r0, [0x08039cee] ; [0x8039cec:4]=0x2001e854
| || 0x080395ca 0a21 movs r1, 0xa ; 10
| || 0x080395cc 0170 strb r1, [r0]
| || 0x080395ce dff80007 ldr.w r0, [0x08039cd6] ; [0x8039cd4:4]=0x2001d950
| || 0x080395d2 0121 movs r1, 1 ; 1
| || 0x080395d4 0170 strb r1, [r0]
| || 0x080395d6 dff80c07 ldr.w r0, [0x08039cea] ; [0x8039ce8:4]=0x2001e8b8 some_state_var
| || 0x080395da 4221 movs r1, 0x42 ; 'B' ; 66
| || 0x080395dc 0170 strb r1, [r0]
| || 0x080395de dff8f406 ldr.w r0, [0x08039cda] ; [0x8039cd8:4]=0x2001e5d0 msg_timer_500
| || 0x080395e2 008c ldrh r0, [r0, 0x20]
| || 0x080395e4 dff80417 ldr.w r1, [0x08039cf0] ; [0x8039cf0:4]=0x2001e856
| || 0x080395e8 0880 strh r0, [r1]
| || 0x080395ea dff8e806 ldr.w r0, [0x08039cda] ; [0x8039cd8:4]=0x2001e5d0 msg_timer_500
| || 0x080395ee 008c ldrh r0, [r0, 0x20]
| || 0x080395f0 e9f7a7fa bl func_22b42
| || 0x080395f4 f8f792fc bl func_31f1c
| || 0x080395f8 dff8f806 ldr.w r0, [0x08039cf8] ; [0x8039cf8:4]=0x2001e850 selected_channel
| || 0x080395fc 0421 movs r1, 4 ; 4
| || 0x080395fe 0170 strb r1, [r0]
| || 0x08039600 dff8d406 ldr.w r0, [0x08039cdc] ; [0x8039cdc:4]=0x2001e8ba
| || 0x08039604 4ff4fa71 mov.w r1, 0x1f4 ; 500
| || 0x08039608 0160 str r1, [r0]
\ ``--> 0x0803960a 01bd pop {r0, pc}
/ (fcn) func_3960c 64
| Caller: func_384d4
| func_3960c ();
| 0x0803960c 80b5 push {r7, lr}
| 0x0803960e dff8d806 ldr.w r0, [0x08039cee] ; [0x8039cec:4]=0x2001e854
| 0x08039612 0921 movs r1, 9 ; 9
| 0x08039614 0170 strb r1, [r0]
| 0x08039616 dff8cc06 ldr.w r0, [0x08039cea] ; [0x8039ce8:4]=0x2001e8b8 some_state_var
| 0x0803961a 4221 movs r1, 0x42 ; 'B' ; 66
| 0x0803961c 0170 strb r1, [r0]
| 0x0803961e dff8cc06 ldr.w r0, [0x08039cf2] ; [0x8039cf0:4]=0x2001e856
| 0x08039622 dff8cc16 ldr.w r1, [0x08039cf6] ; [0x8039cf4:4]=0x2001e893
| 0x08039626 0988 ldrh r1, [r1]
| 0x08039628 0180 strh r1, [r0]
| 0x0803962a dff8c406 ldr.w r0, [0x08039cf6] ; [0x8039cf4:4]=0x2001e893
| 0x0803962e 0088 ldrh r0, [r0]
| 0x08039630 e9f787fa bl func_22b42
| 0x08039634 f8f772fc bl func_31f1c
| 0x08039638 dff8b806 ldr.w r0, [0x08039cf8] ; [0x8039cf8:4]=0x2001e850 selected_channel
| 0x0803963c 0421 movs r1, 4 ; 4
| 0x0803963e 0170 strb r1, [r0]
| 0x08039640 dff89406 ldr.w r0, [0x08039cdc] ; [0x8039cdc:4]=0x2001e8ba
| 0x08039644 4ff4fa71 mov.w r1, 0x1f4 ; 500
| 0x08039648 0160 str r1, [r0]
\ 0x0803964a 01bd pop {r0, pc}
/ (fcn) func_397d0 98
| Caller: menu_draw_something
| func_397d0 ();
| 0x080397d0 70b4 push {r4, r5, r6}
| 0x080397d2 0024 movs r4, 0
| 0x080397d4 dff84455 ldr.w r5, [0x08039d20] ; [0x8039d20:4]=0x2001d850
| 0x080397d8 dff84815 ldr.w r1, [0x08039d28] ; [0x8039d28:4]=0x2001e93a
| 0x080397dc 0978 ldrb r1, [r1]
| 0x080397de c0b2 uxtb r0, r0
| 0x080397e0 8142 cmp r1, r0
| ,=< 0x080397e2 23d3 blo 0x803982c
| | 0x080397e4 c0b2 uxtb r0, r0
| | 0x080397e6 0128 cmp r0, 1 ; 1
| ,==< 0x080397e8 20d3 blo 0x803982c
| || 0x080397ea 0021 movs r1, 0
| ,===< 0x080397ec 00e0 b 0x80397f0
| .----> 0x080397ee 491c adds r1, r1, 1
| |`---> 0x080397f0 c9b2 uxtb r1, r1
| | || 0x080397f2 1f29 cmp r1, 0x1f ; 31
| |,===< 0x080397f4 18d2 bhs 0x8039828
| |||| 0x080397f6 c9b2 uxtb r1, r1
| |||| 0x080397f8 0822 movs r2, 8 ; 8
| |||| 0x080397fa 91fbf2f2 sdiv r2, r1, r2
| |||| 0x080397fe c9b2 uxtb r1, r1
| |||| 0x08039800 0826 movs r6, 8 ; 8
| |||| 0x08039802 91fbf6f3 sdiv r3, r1, r6
| |||| 0x08039806 03fb1613 mls r3, r3, r6, r1
| |||| 0x0803980a d2b2 uxtb r2, r2
| |||| 0x0803980c 525d ldrb r2, [r2, r5]
| |||| 0x0803980e 0126 movs r6, 1 ; 1
| |||| 0x08039810 16fa03f3 lsls.w r3, r6, r3
| |||| 0x08039814 1a42 tst r2, r3
| ,=====< 0x08039816 00d0 beq 0x803981a
| ||||| 0x08039818 641c adds r4, r4, 1
| `-----> 0x0803981a e4b2 uxtb r4, r4
| |||| 0x0803981c c0b2 uxtb r0, r0
| |||| 0x0803981e 8442 cmp r4, r0
| `====< 0x08039820 e5d1 bne 0x80397ee
| ||| 0x08039822 481c adds r0, r1, 1
| ||| 0x08039824 c0b2 uxtb r0, r0
| ,====< 0x08039826 02e0 b 0x803982e
| |`---> 0x08039828 0120 movs r0, 1 ; 1
| |,===< 0x0803982a 00e0 b 0x803982e
| ||``-> 0x0803982c 0120 movs r0, 1 ; 1
| ``---> 0x0803982e 70bc pop {r4, r5, r6}
\ 0x08039830 7047 bx lr
/ (fcn) 92
| Caller: menu_draw_something
| menu_39de2 ();
| 0x08039de2 30b4 push {r4, r5}
| 0x08039de4 0021 movs r1, 0
| 0x08039de6 dff8d83a ldr.w r3, [0x0803a8c6] ; [0x803a8c4:4]=0x2001e927
| 0x08039dea dff8d82a ldr.w r2, [0x0803a8ca] ; [0x803a8c8:4]=0x2001e928
| 0x08039dee 1278 ldrb r2, [r2]
| 0x08039df0 0400 movs r4, r0
| 0x08039df2 64b2 sxtb r4, r4
| 0x08039df4 12b2 sxth r2, r2
| 0x08039df6 24b2 sxth r4, r4
| 0x08039df8 a242 cmp r2, r4
| ,=< 0x08039dfa 1ddb blt 0x8039e38
| | 0x08039dfc 40b2 sxtb r0, r0
| | 0x08039dfe 0128 cmp r0, 1 ; 1
| ,==< 0x08039e00 1adb blt 0x8039e38
| || 0x08039e02 dff8c41a ldr.w r1, [0x0803a8ce] ; [0x803a8cc:4]=0x2400b510
| || 0x08039e06 0978 ldrb r1, [r1]
| || 0x08039e08 0122 movs r2, 1 ; 1
| ,===< 0x08039e0a 00e0 b 0x8039e0e
| .----> 0x08039e0c 521c adds r2, r2, 1
| |`---> 0x08039e0e 1400 movs r4, r2
| | || 0x08039e10 e4b2 uxtb r4, r4
| | || 0x08039e12 0500 movs r5, r0
| | || 0x08039e14 6db2 sxtb r5, r5
| | || 0x08039e16 24b2 sxth r4, r4
| | || 0x08039e18 2db2 sxth r5, r5
| | || 0x08039e1a ac42 cmp r4, r5
| |,===< 0x08039e1c 09da bge 0x8039e32
| |||| 0x08039e1e c9b2 uxtb r1, r1
| |||| 0x08039e20 13eb8101 adds.w r1, r3, r1, lsl 2
| |||| 0x08039e24 11f8011c ldrb r1, [r1, -0x1]
| |||| 0x08039e28 c9b2 uxtb r1, r1
| |||| 0x08039e2a 0029 cmp r1, 0
| `====< 0x08039e2c eed1 bne 0x8039e0c
| ||| 0x08039e2e 0120 movs r0, 1 ; 1
| ,====< 0x08039e30 03e0 b 0x8039e3a
| |`---> 0x08039e32 0800 movs r0, r1
| | || 0x08039e34 c0b2 uxtb r0, r0
| |,===< 0x08039e36 00e0 b 0x8039e3a
| ||``-> 0x08039e38 0120 movs r0, 1 ; 1
| ``---> 0x08039e3a 30bc pop {r4, r5}
\ 0x08039e3c 7047 bx lr
/ (fcn) 210
| Caller: ev5_rest ev5_19
| menu_39e3e ();
| 0x08039e3e 10b5 push {r4, lr}
| 0x08039e40 dff87c4a ldr.w r4, [0x0803a8c4] ; [0x803a8c4:4]=0x2001e927
| 0x08039e44 fff77aff bl func_39d3c
| 0x08039e48 dff8b80c ldr.w r0, [0x0803ab08] ; [0x803ab08:4]=0x2001e6ec
| 0x08039e4c 0078 ldrb r0, [r0]
| 0x08039e4e 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x08039e52 10f8040c ldrb r0, [r0, -0x4]
| 0x08039e56 0128 cmp r0, 1 ; 1
| ,=< 0x08039e58 04d1 bne 0x8039e64
| | 0x08039e5a dff8a80c ldr.w r0, [0x0803ab0a] ; [0x803ab08:4]=0x2001e6ec
| | 0x08039e5e 0078 ldrb r0, [r0]
| | 0x08039e60 00f076f8 bl func_39f50
| `-> 0x08039e64 dff89c0c ldr.w r0, [0x0803ab08] ; [0x803ab08:4]=0x2001e6ec
| 0x08039e68 0078 ldrb r0, [r0]
| 0x08039e6a 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x08039e6e 0021 movs r1, 0
| 0x08039e70 00f8021c strb r1, [r0, -0x2]
| 0x08039e74 dff88c0c ldr.w r0, [0x0803ab08] ; [0x803ab08:4]=0x2001e6ec
| 0x08039e78 0078 ldrb r0, [r0]
| 0x08039e7a 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x08039e7e 0121 movs r1, 1 ; 1
| 0x08039e80 00f8041c strb r1, [r0, -0x4]
| 0x08039e84 dff8e40a ldr.w r0, [0x0803a970] ; [0x803a970:4]=0xb084b510
| 0x08039e88 0078 ldrb r0, [r0]
| 0x08039e8a 0128 cmp r0, 1 ; 1
| ,=< 0x08039e8c 08d1 bne 0x8039ea0
| | 0x08039e8e dff8740c ldr.w r0, [0x0803ab0a] ; [0x803ab08:4]=0x2001e6ec
| | 0x08039e92 0078 ldrb r0, [r0]
| | 0x08039e94 14eb8000 adds.w r0, r4, r0, lsl 2
| | 0x08039e98 0221 movs r1, 2 ; 2
| | 0x08039e9a 00f8031c strb r1, [r0, -0x3]
| ,==< 0x08039e9e 07e0 b 0x8039eb0
| |`-> 0x08039ea0 dff8600c ldr.w r0, [0x0803ab08] ; [0x803ab08:4]=0x2001e6ec
| | 0x08039ea4 0078 ldrb r0, [r0]
| | 0x08039ea6 14eb8000 adds.w r0, r4, r0, lsl 2
| | 0x08039eaa 0021 movs r1, 0
| | 0x08039eac 00f8031c strb r1, [r0, -0x3]
| `--> 0x08039eb0 dff8b80a ldr.w r0, [0x0803a970] ; [0x803a970:4]=0xb084b510
| 0x08039eb4 0021 movs r1, 0
| 0x08039eb6 0170 strb r1, [r0]
| 0x08039eb8 dff80c0a ldr.w r0, [0x0803a8cc] ; [0x803a8cc:4]=0x2400b510
| 0x08039ebc 0078 ldrb r0, [r0]
| 0x08039ebe 0028 cmp r0, 0
| ,=< 0x08039ec0 14d0 beq 0x8039eec
| | 0x08039ec2 dff8400c ldr.w r0, [0x0803ab0a] ; [0x803ab08:4]=0x2001e6ec
| | 0x08039ec6 0078 ldrb r0, [r0]
| | 0x08039ec8 14eb8000 adds.w r0, r4, r0, lsl 2
| | 0x08039ecc dff8f819 ldr.w r1, [0x0803a8cc] ; [0x803a8cc:4]=0x2400b510
| | 0x08039ed0 0978 ldrb r1, [r1]
| | 0x08039ed2 00f8011c strb r1, [r0, -0x1]
| | 0x08039ed6 dff8f009 ldr.w r0, [0x0803a8ce] ; [0x803a8cc:4]=0x2400b510
| | 0x08039eda 0078 ldrb r0, [r0]
| | 0x08039edc 14eb8000 adds.w r0, r4, r0, lsl 2
| | 0x08039ee0 dff8201c ldr.w r1, [0x0803ab08] ; [0x803ab08:4]=0x2001e6ec
| | 0x08039ee4 0978 ldrb r1, [r1]
| | 0x08039ee6 00f8021c strb r1, [r0, -0x2]
| ,==< 0x08039eea 07e0 b 0x8039efc
| |`-> 0x08039eec dff8140c ldr.w r0, [0x0803ab08] ; [0x803ab08:4]=0x2001e6ec
| | 0x08039ef0 0078 ldrb r0, [r0]
| | 0x08039ef2 14eb8000 adds.w r0, r4, r0, lsl 2
| | 0x08039ef6 0021 movs r1, 0
| | 0x08039ef8 00f8011c strb r1, [r0, -0x1]
| `--> 0x08039efc dff8040c ldr.w r0, [0x0803ab08] ; [0x803ab08:4]=0x2001e6ec
| 0x08039f00 0078 ldrb r0, [r0]
| 0x08039f02 e9f771f8 bl msg_flash_write
| 0x08039f06 e9f756f8 bl func_22fb6_spiflash_wr_14
| 0x08039f0a fff717ff bl func_39d3c
\ 0x08039f0e 10bd pop {r4, pc}
/ (fcn) func_39f50 212
| Caller: menu_39e3e
| func_39f50 ();
| 0x08039f50 10b5 push {r4, lr}
| 0x08039f52 dff86c19 ldr.w r1, [0x0803a8c6] ; [0x803a8c4:4]=0x2001e927
| 0x08039f56 c0b2 uxtb r0, r0
| 0x08039f58 11eb8002 adds.w r2, r1, r0, lsl 2
| 0x08039f5c 12f8022c ldrb r2, [r2, -0x2]
| 0x08039f60 002a cmp r2, 0
| ,=< 0x08039f62 06d0 beq 0x8039f72
| | 0x08039f64 c0b2 uxtb r0, r0
| | 0x08039f66 11eb8002 adds.w r2, r1, r0, lsl 2
| | 0x08039f6a 12f8022c ldrb r2, [r2, -0x2]
| | 0x08039f6e 332a cmp r2, 0x33 ; '3' ; 51
| ,==< 0x08039f70 0fd3 blo 0x8039f92
| |`-> 0x08039f72 c0b2 uxtb r0, r0
| | 0x08039f74 11eb8002 adds.w r2, r1, r0, lsl 2
| | 0x08039f78 12f8012c ldrb r2, [r2, -0x1]
| | 0x08039f7c 531e subs r3, r2, 1
| | 0x08039f7e dbb2 uxtb r3, r3
| | 0x08039f80 322b cmp r3, 0x32 ; '2' ; 50
| |,=< 0x08039f82 38d2 bhs 0x8039ff6
| || 0x08039f84 d2b2 uxtb r2, r2
| || 0x08039f86 11eb8202 adds.w r2, r1, r2, lsl 2
| || 0x08039f8a 0023 movs r3, 0
| || 0x08039f8c 02f8023c strb r3, [r2, -0x2]
| ,===< 0x08039f90 31e0 b 0x8039ff6
| |`--> 0x08039f92 c0b2 uxtb r0, r0
| | | 0x08039f94 11eb8002 adds.w r2, r1, r0, lsl 2
| | | 0x08039f98 12f8012c ldrb r2, [r2, -0x1]
| | | 0x08039f9c 002a cmp r2, 0
| |,==< 0x08039f9e 06d0 beq 0x8039fae
| ||| 0x08039fa0 c0b2 uxtb r0, r0
| ||| 0x08039fa2 11eb8002 adds.w r2, r1, r0, lsl 2
| ||| 0x08039fa6 12f8012c ldrb r2, [r2, -0x1]
| ||| 0x08039faa 332a cmp r2, 0x33 ; '3' ; 51
| ,====< 0x08039fac 0fd3 blo 0x8039fce
| ||`--> 0x08039fae c0b2 uxtb r0, r0
| || | 0x08039fb0 11eb8002 adds.w r2, r1, r0, lsl 2
| || | 0x08039fb4 12f8022c ldrb r2, [r2, -0x2]
| || | 0x08039fb8 531e subs r3, r2, 1
| || | 0x08039fba dbb2 uxtb r3, r3
| || | 0x08039fbc 322b cmp r3, 0x32 ; '2' ; 50
| ||,==< 0x08039fbe 1ad2 bhs 0x8039ff6
| |||| 0x08039fc0 d2b2 uxtb r2, r2
| |||| 0x08039fc2 11eb8202 adds.w r2, r1, r2, lsl 2
| |||| 0x08039fc6 0023 movs r3, 0
| |||| 0x08039fc8 02f8013c strb r3, [r2, -0x1]
| ,=====< 0x08039fcc 13e0 b 0x8039ff6
| |`----> 0x08039fce c0b2 uxtb r0, r0
| | ||| 0x08039fd0 11eb8002 adds.w r2, r1, r0, lsl 2
| | ||| 0x08039fd4 12f8012c ldrb r2, [r2, -0x1]
| | ||| 0x08039fd8 c0b2 uxtb r0, r0
| | ||| 0x08039fda 11eb8003 adds.w r3, r1, r0, lsl 2
| | ||| 0x08039fde 13f8023c ldrb r3, [r3, -0x2]
| | ||| 0x08039fe2 d2b2 uxtb r2, r2
| | ||| 0x08039fe4 11eb8204 adds.w r4, r1, r2, lsl 2
| | ||| 0x08039fe8 04f8023c strb r3, [r4, -0x2]
| | ||| 0x08039fec dbb2 uxtb r3, r3
| | ||| 0x08039fee 11eb8303 adds.w r3, r1, r3, lsl 2
| | ||| 0x08039ff2 03f8012c strb r2, [r3, -0x1]
| `-```-> 0x08039ff6 c0b2 uxtb r0, r0
| 0x08039ff8 11eb8002 adds.w r2, r1, r0, lsl 2
| 0x08039ffc 0023 movs r3, 0
| 0x08039ffe 02f8023c strb r3, [r2, -0x2]
| 0x0803a002 c0b2 uxtb r0, r0
| 0x0803a004 11eb8002 adds.w r2, r1, r0, lsl 2
| 0x0803a008 0023 movs r3, 0
| 0x0803a00a 02f8013c strb r3, [r2, -0x1]
| 0x0803a00e c0b2 uxtb r0, r0
| 0x0803a010 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x0803a014 0021 movs r1, 0
| 0x0803a016 00f8041c strb r1, [r0, -0x4]
| 0x0803a01a e8f7ccff bl func_22fb6_spiflash_wr_14
| 0x0803a01e fff78dfe bl func_39d3c
\ 0x0803a022 10bd pop {r4, pc}
/ (fcn) 20
| Caller: draw_some_bitmap_and_text menu_draw_something2
| menu_draw_sub_3aba8 ();
| 0x0803aba8 10b5 push {r4, lr}
| 0x0803abaa 0400 movs r4, r0
| 0x0803abac 2000 movs r0, r4
| 0x0803abae 11f0d6f8 bl gfx_4bd5e
| 0x0803abb2 0100 movs r1, r0
| 0x0803abb4 2000 movs r0, r4
| 0x0803abb6 00f082fd bl gfx_drawtext_sub7
\ 0x0803abba 10bd pop {r4, pc}
/ (fcn) 18
| Caller: menu_37d44 menu_draw_sub_3abce func_3b42a
| menu_draw_sub_3abbc ();
| 0x0803abbc e0b5 push {r5, r6, r7, lr}
| 0x0803abbe 0291 str r1, [sp, 8]
| 0x0803abc0 1421 movs r1, 0x14 ; 20
| 0x0803abc2 0091 str r1, [sp]
| 0x0803abc4 00a9 add r1, sp, 0
| 0x0803abc6 00b2 sxth r0, r0
| 0x0803abc8 e1f7c6fd bl gfx_1c758
\ 0x0803abcc 07bd pop {r0, r1, r2, pc}
/ (fcn) 16
| Caller: menu_draw_something2
| menu_draw_sub_3abce ();
| 0x0803abce 80b5 push {r7, lr}
| 0x0803abd0 0100 movs r1, r0
| 0x0803abd2 0348 ldr r0, [0x0803abe2] ; [0x803abe0:4]=0x2001da1c gfx_info
| 0x0803abd4 b0f93c00 ldrsh.w r0, [r0, 0x3c]
| 0x0803abd8 fff7f0ff bl menu_draw_sub_3abbc
\ 0x0803abdc 01bd pop {r0, pc}
/ (fcn) 16
| Caller: menu_draw_something2
| menu_draw_sub_3abce ();
| 0x0803abce 80b5 push {r7, lr}
| 0x0803abd0 0100 movs r1, r0
| 0x0803abd2 0348 ldr r0, [0x0803abe2] ; [0x803abe0:4]=0x2001da1c gfx_info
| 0x0803abd4 b0f93c00 ldrsh.w r0, [r0, 0x3c]
| 0x0803abd8 fff7f0ff bl menu_draw_sub_3abbc
\ 0x0803abdc 01bd pop {r0, pc}
/ (fcn) 14
| Caller: draw_some_bitmap_and_text func_37b0a gfx_33204 menu_draw_something2
| menu_draw_sub_3abe4 ();
| 0x0803abe4 0349 ldr r1, [0x0803abf4] ; [0x803abf4:4]=0x2001da1c gfx_info
| 0x0803abe6 b1f92a10 ldrsh.w r1, [r1, 0x2a]
| 0x0803abea 024a ldr r2, [0x0803abf6] ; [0x803abf4:4]=0x2001da1c gfx_info
| 0x0803abec 5085 strh r0, [r2, 0x2a]
| 0x0803abee 0800 movs r0, r1
\ 0x0803abf0 7047 bx lr
/ (fcn) 78
| Caller: menu_draw_sub_3ac46
| menu_draw_sub_3abf8 ();
| 0x0803abf8 38b5 push {r3, r4, r5, lr}
| 0x0803abfa 0400 movs r4, r0
| 0x0803abfc b4f90050 ldrsh.w r5, [r4]
| ,=< 0x0803ac00 0ae0 b 0x803ac18
| .--> 0x0803ac02 b4f90210 ldrsh.w r1, [r4, 2]
| || 0x0803ac06 2800 movs r0, r5
| || 0x0803ac08 f8f728f9 bl gfx_32e5c
| || 0x0803ac0c b4f90610 ldrsh.w r1, [r4, 6]
| || 0x0803ac10 2800 movs r0, r5
| || 0x0803ac12 f8f723f9 bl gfx_32e5c
| || 0x0803ac16 ad1c adds r5, r5, 2
| |`-> 0x0803ac18 b4f90400 ldrsh.w r0, [r4, 4]
| | 0x0803ac1c a842 cmp r0, r5
| `==< 0x0803ac1e f0da bge 0x803ac02
| 0x0803ac20 b4f90250 ldrsh.w r5, [r4, 2]
| ,=< 0x0803ac24 0ae0 b 0x803ac3c
| .--> 0x0803ac26 2900 movs r1, r5
| || 0x0803ac28 b4f90000 ldrsh.w r0, [r4]
| || 0x0803ac2c f8f716f9 bl gfx_32e5c
| || 0x0803ac30 2900 movs r1, r5
| || 0x0803ac32 b4f90400 ldrsh.w r0, [r4, 4]
| || 0x0803ac36 f8f711f9 bl gfx_32e5c
| || 0x0803ac3a ad1c adds r5, r5, 2
| |`-> 0x0803ac3c b4f90600 ldrsh.w r0, [r4, 6]
| | 0x0803ac40 a842 cmp r0, r5
| `==< 0x0803ac42 f0da bge 0x803ac26
\ 0x0803ac44 31bd pop {r0, r4, r5, pc}
/ (fcn) 96
| Caller: func_379b0 menu_draw_something2
| menu_draw_sub_3ac46 ();
| 0x0803ac46 00b5 push {lr}
| 0x0803ac48 83b0 sub sp, 0xc
| 0x0803ac4a 0a00 movs r2, r1
| 0x0803ac4c 0100 movs r1, r0
| 0x0803ac4e 00a8 add r0, sp, 0
| 0x0803ac50 10f04aff bl menu_draw_sub_4bae8
| 0x0803ac54 bdf80000 ldrh.w r0, [sp]
| 0x0803ac58 1349 ldr r1, [0x0803aca8] ; [0x803aca8:4]=0x2001da1c gfx_info
| 0x0803ac5a 096c ldr r1, [r1, 0x40] ; [r0+64] = gfx_info.bmp_w
| 0x0803ac5c 0818 adds r0, r1, r0
| 0x0803ac5e adf80000 strh.w r0, [sp]
| 0x0803ac62 bdf80200 ldrh.w r0, [sp, 2]
| 0x0803ac66 1049 ldr r1, [0x0803acaa] ; [0x803aca8:4]=0x2001da1c gfx_info
| 0x0803ac68 496c ldr r1, [r1, 0x44] ; [r1+68] = gfx_info.bmp_h
| 0x0803ac6a 0818 adds r0, r1, r0
| 0x0803ac6c adf80200 strh.w r0, [sp, 2]
| 0x0803ac70 bdf80400 ldrh.w r0, [sp, 4]
| 0x0803ac74 0c49 ldr r1, [0x0803aca8] ; [0x803aca8:4]=0x2001da1c gfx_info
| 0x0803ac76 096c ldr r1, [r1, 0x40] ; [r0+64] = gfx_info.bmp_w
| 0x0803ac78 0818 adds r0, r1, r0
| 0x0803ac7a adf80400 strh.w r0, [sp, 4]
| 0x0803ac7e bdf80600 ldrh.w r0, [sp, 6]
| 0x0803ac82 0949 ldr r1, [0x0803acaa] ; [0x803aca8:4]=0x2001da1c gfx_info
| 0x0803ac84 496c ldr r1, [r1, 0x44] ; [r0+68] = gfx_info.bmp_h
| 0x0803ac86 0818 adds r0, r1, r0
| 0x0803ac88 adf80600 strh.w r0, [sp, 6]
| 0x0803ac8c 00a8 add r0, sp, 0
| 0x0803ac8e e2f72ff8 bl gfx_bmp_sub1
| 0x0803ac92 0028 cmp r0, 0
| ,=< 0x0803ac94 06d0 beq 0x803aca4
| .--> 0x0803ac96 00a8 add r0, sp, 0
| || 0x0803ac98 fff7aeff bl menu_draw_sub_3abf8
| || 0x0803ac9c e1f7faff bl gfx_bmp_sub3
| || 0x0803aca0 0028 cmp r0, 0
| `==< 0x0803aca2 f8d1 bne 0x803ac96
\ `-> 0x0803aca4 07bd pop {r0, r1, r2, pc}
/ (fcn) func_3acec 2
| Caller: func_3ad3c
| func_3acec ();
\ 0x0803acec 70b5 push {r4, r5, r6, lr}
/ (fcn) func_3ad3c 26
| Caller: func_4c2cc gfx_3ae04 menu_37d44 gfx_3ae10
| func_3ad3c ();
| 0x0803ad3c 80b5 push {r7, lr}
| 0x0803ad3e 0200 movs r2, r0
| 0x0803ad40 0020 movs r0, 0
| 0x0803ad42 12b2 sxth r2, r2
| 0x0803ad44 002a cmp r2, 0
| ,=< 0x0803ad46 03d0 beq 0x803ad50
| | 0x0803ad48 1000 movs r0, r2
| | 0x0803ad4a 00b2 sxth r0, r0
| | 0x0803ad4c fff7ceff bl func_3acec
| `-> 0x0803ad50 00b2 sxth r0, r0
| 0x0803ad52 02bd pop {r1, pc}
\ 0x0803ad54 f8b5 push {r3, r4, r5, r6, r7, lr}
/ (fcn) gfx_3add4 18
| Caller: gfx_2b088 draw_some_bitmap_and_text
| gfx_3add4 ();
| 0x0803add4 10b5 push {r4, lr}
| 0x0803add6 0449 ldr r1, [0x0803adea] ; [0x803ade8:4]=0x2001da1c gfx_info
| 0x0803add8 8c6b ldr r4, [r1, 0x38]
| 0x0803adda 0349 ldr r1, [0x0803adea] ; [0x803ade8:4]=0x2001da1c gfx_info
| 0x0803addc 8863 str r0, [r1, 0x38]
| 0x0803adde e1f7a3fa bl gfx_bmp_s1_1
| 0x0803ade2 2000 movs r0, r4
\ 0x0803ade4 10bd pop {r4, pc}
/ (fcn) gfx_3adec 24
| gfx_3adec ();
| 0x0803adec 80b5 push {r7, lr}
| 0x0803adee b0f90630 ldrsh.w r3, [r0, 6]
| 0x0803adf2 b0f90420 ldrsh.w r2, [r0, 4]
| 0x0803adf6 b0f90210 ldrsh.w r1, [r0, 2]
| 0x0803adfa b0f90000 ldrsh.w r0, [r0]
| 0x0803adfe f8f713fb bl gfx_33428
\ 0x0803ae02 01bd pop {r0, pc}
/ (fcn) gfx_3ae04 12
| gfx_3ae04 ();
| 0x0803ae04 80b5 push {r7, lr}
| 0x0803ae06 ff21 movs r1, 0xff ; 255
| 0x0803ae08 00b2 sxth r0, r0
| 0x0803ae0a fff797ff bl func_3ad3c
\ 0x0803ae0e 02bd pop {r1, pc}
/ (fcn) gfx_3ae10 12
| gfx_3ae10 ();
| 0x0803ae10 80b5 push {r7, lr}
| 0x0803ae12 fe21 movs r1, 0xfe ; 254
| 0x0803ae14 00b2 sxth r0, r0
| 0x0803ae16 fff791ff bl func_3ad3c
\ 0x0803ae1a 02bd pop {r1, pc}
/ (fcn) gfx_3ae1c 18
| gfx_3ae1c ();
| 0x0803ae1c e0b5 push {r5, r6, r7, lr}
| 0x0803ae1e 2322 movs r2, 0x23 ; '#' ; 35
| 0x0803ae20 0092 str r2, [sp]
| 0x0803ae22 0291 str r1, [sp, 8]
| 0x0803ae24 00a9 add r1, sp, 0
| 0x0803ae26 00b2 sxth r0, r0
| 0x0803ae28 e1f796fc bl gfx_1c758
\ 0x0803ae2c 07bd pop {r0, r1, r2, pc}
/ (fcn) gfx_3ae30 54
| Caller: func_37bb8
| gfx_3ae30 ();
| 0x0803ae30 00f10103 add.w r3, r0, 1
| 0x0803ae34 8107 lsls r1, r0, 0x1e
| ,=< 0x0803ae36 04d0 beq 0x803ae42
| .--> 0x0803ae38 10f8011b ldrb r1, [r0], 1
| ,===< 0x0803ae3c 89b1 cbz r1, 0x803ae62
| ||| 0x0803ae3e 8107 lsls r1, r0, 0x1e
| |`==< 0x0803ae40 fad1 bne 0x803ae38
| | `-> 0x0803ae42 0268 ldr r2, [r0]
| | .-> 0x0803ae44 b2f10131 subs.w r1, r2, 0x1010101
| | | 0x0803ae48 9143 bics r1, r2
| | | 0x0803ae4a 11f0803f tst.w r1, -0x7f7f7f80
| |,==< 0x0803ae4e 04bf itt eq
| |`--> 0x0803ae50 50f8042f ldr r2, [r0, 4]!
| | `=< 0x0803ae54 f6e7 b 0x803ae44
| | 0x0803ae56 10f8011b ldrb r1, [r0], 1
| |,.-> 0x0803ae5a 11b1 cbz r1, 0x803ae62
| ||| 0x0803ae5c 10f8011b ldrb r1, [r0], 1
| ||`=< 0x0803ae60 fbe7 b 0x803ae5a
| ``--> 0x0803ae62 c01a subs r0, r0, r3
\ 0x0803ae64 7047 bx lr
/ (fcn) func_3ae68 68
| Caller: func_37ab8 func_37bb8
| func_3ae68 ();
| 0x0803ae68 5fea000c movs.w ip, r0
| 0x0803ae6c 8307 lsls r3, r0, 0x1e
| ,=< 0x0803ae6e 06d0 beq 0x803ae7e
| .--> 0x0803ae70 11f8013b ldrb r3, [r1], 1
| || 0x0803ae74 00f8013b strb r3, [r0], 1
| ,===< 0x0803ae78 b3b1 cbz r3, 0x803aea8
| ||| 0x0803ae7a 8307 lsls r3, r0, 0x1e
| |`==< 0x0803ae7c f8d1 bne 0x803ae70
| | `-> 0x0803ae7e 0a68 ldr r2, [r1]
| | .-> 0x0803ae80 b2f10133 subs.w r3, r2, 0x1010101
| | | 0x0803ae84 23ea0203 bic.w r3, r3, r2
| | | 0x0803ae88 13f0803f tst.w r3, -0x7f7f7f80
| |,==< 0x0803ae8c 02bf ittt eq
| |`--> 0x0803ae8e 40f8042b str r2, [r0], 4
| | | 0x0803ae92 51f8042f ldr r2, [r1, 4]!
| | `=< 0x0803ae96 f3e7 b 0x803ae80
| | 0x0803ae98 11f8013b ldrb r3, [r1], 1
| | .-> 0x0803ae9c 00f8013b strb r3, [r0], 1
| |,==< 0x0803aea0 13b1 cbz r3, 0x803aea8
| ||| 0x0803aea2 11f8013b ldrb r3, [r1], 1
| ||`=< 0x0803aea6 f9e7 b 0x803ae9c
| ``--> 0x0803aea8 6046 mov r0, ip
\ 0x0803aeaa 7047 bx lr
/ (fcn) func_3d2f0 590
| Caller: msg_process_sms CalledFromLongDispatcher
| func_3d2f0 ();
| 0x0803d2f0 80b5 push {r7, lr}
| 0x0803d2f2 dff89819 ldr.w r1, [0x0803dc92] ; [0x803dc90:4]=0xf8dfb580
| 0x0803d2f6 0978 ldrb r1, [r1]
| 0x0803d2f8 0129 cmp r1, 1 ; 1
| ,=< 0x0803d2fa 40f09c80 bne.w 0x803d436
| | 0x0803d2fe dff8101b ldr.w r1, [0x0803de16] ; [0x803de14:4]=0x2001e8a1 re_last_radio_event
| | 0x0803d302 0022 movs r2, 0
| | 0x0803d304 0a70 strb r2, [r1]
| | 0x0803d306 dff80c1b ldr.w r1, [0x0803de1a] ; [0x803de18:4]=0x2001e8aa event1_buffer
| | 0x0803d30a 0978 ldrb r1, [r1]
| | 0x0803d30c 0229 cmp r1, 2 ; 2
| ,==< 0x0803d30e 0cd0 beq 0x803d32a
| || 0x0803d310 0629 cmp r1, 6 ; 6
| ,===< 0x0803d312 35d0 beq 0x803d380
| ||| 0x0803d314 0729 cmp r1, 7 ; 7
| ,====< 0x0803d316 59d0 beq 0x803d3cc
| |||| 0x0803d318 0829 cmp r1, 8 ; 8
| ,=====< 0x0803d31a 6bd0 beq 0x803d3f4
| ||||| 0x0803d31c 0929 cmp r1, 9 ; 9
| ,======< 0x0803d31e 00f08480 beq.w 0x803d42a
| |||||| 0x0803d322 0a29 cmp r1, 0xa ; 10
| ,=======< 0x0803d324 00f08380 beq.w 0x803d42e
| ========< 0x0803d328 83e0 b 0x803d432
| |||||`--> 0x0803d32a dff8b014 ldr.w r1, [0x0803d7e2] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||||| | 0x0803d32e 0979 ldrb r1, [r1, 4]
| ||||| | 0x0803d330 c9b2 uxtb r1, r1
| ||||| | 0x0803d332 8909 lsrs r1, r1, 6
| ||||| | 0x0803d334 0129 cmp r1, 1 ; 1
| |||||,==< 0x0803d336 16d1 bne 0x803d366
| ||||||| 0x0803d338 dff8a414 ldr.w r1, [0x0803d7e4] ; [0x803d7e4:4]=0x2001e8a8 beep_code_send
| ||||||| 0x0803d33c 0978 ldrb r1, [r1]
| ||||||| 0x0803d33e c907 lsls r1, r1, 0x1f
| ========< 0x0803d340 11d5 bpl 0x803d366
| ||||||| 0x0803d342 c0b2 uxtb r0, r0
| ||||||| 0x0803d344 0128 cmp r0, 1 ; 1
| ========< 0x0803d346 0cd1 bne 0x803d362
| ||||||| 0x0803d348 dff8cc0a ldr.w r0, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d34c 0d21 movs r1, 0xd ; 13
| ||||||| 0x0803d34e 0170 strb r1, [r0]
| ||||||| 0x0803d350 dff8c41a ldr.w r1, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d354 dff8ec0c ldr.w r0, [0x0803e048] ; [0x803e048:4]=0x2001e8a9 event5_buffer
| ||||||| 0x0803d358 0068 ldr r0, [r0]
| ||||||| 0x0803d35a f3f71fff bl md380_OSMboxPost
| ||||||| 0x0803d35e 0320 movs r0, 3 ; 3
| ========< 0x0803d360 ece0 b 0x803d53c
| --------> 0x0803d362 0020 movs r0, 0
| ========< 0x0803d364 eae0 b 0x803d53c
| -----`--> 0x0803d366 dff82009 ldr.w r0, [0x0803dc8e] ; [0x803dc8c:4]=0x2001e898 simplex_or_repeater_flagword
| ||||| | 0x0803d36a 1e21 movs r1, 0x1e ; 30
| ||||| | 0x0803d36c 0170 strb r1, [r0]
| ||||| | 0x0803d36e dff81819 ldr.w r1, [0x0803dc8e] ; [0x803dc8c:4]=0x2001e898 simplex_or_repeater_flagword
| ||||| | 0x0803d372 dff88409 ldr.w r0, [0x0803dcfe] ; [0x803dcfc:4]=0x2001e73c
| ||||| | 0x0803d376 0068 ldr r0, [r0]
| ||||| | 0x0803d378 f3f710ff bl md380_OSMboxPost
| ||||| | 0x0803d37c 0220 movs r0, 2 ; 2
| |||||,==< 0x0803d37e dde0 b 0x803d53c
| ||||`---> 0x0803d380 dff85814 ldr.w r1, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| |||| || 0x0803d384 0979 ldrb r1, [r1, 4]
| |||| || 0x0803d386 c9b2 uxtb r1, r1
| |||| || 0x0803d388 8909 lsrs r1, r1, 6
| |||| || 0x0803d38a 0129 cmp r1, 1 ; 1
| ||||,===< 0x0803d38c 11d1 bne 0x803d3b2
| ||||||| 0x0803d38e c0b2 uxtb r0, r0
| ||||||| 0x0803d390 0128 cmp r0, 1 ; 1
| ========< 0x0803d392 0cd1 bne 0x803d3ae
| ||||||| 0x0803d394 dff8800a ldr.w r0, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d398 0d21 movs r1, 0xd ; 13
| ||||||| 0x0803d39a 0170 strb r1, [r0]
| ||||||| 0x0803d39c dff8781a ldr.w r1, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d3a0 dff8a00c ldr.w r0, [0x0803e048] ; [0x803e048:4]=0x2001e8a9 event5_buffer
| ||||||| 0x0803d3a4 0068 ldr r0, [r0]
| ||||||| 0x0803d3a6 f3f7f9fe bl md380_OSMboxPost
| ||||||| 0x0803d3aa 0320 movs r0, 3 ; 3
| ========< 0x0803d3ac c6e0 b 0x803d53c
| --------> 0x0803d3ae 0020 movs r0, 0
| ========< 0x0803d3b0 c4e0 b 0x803d53c
| ||||`---> 0x0803d3b2 dff8d408 ldr.w r0, [0x0803dc8e] ; [0x803dc8c:4]=0x2001e898 simplex_or_repeater_flagword
| |||| || 0x0803d3b6 1e21 movs r1, 0x1e ; 30
| |||| || 0x0803d3b8 0170 strb r1, [r0]
| |||| || 0x0803d3ba dff8cc18 ldr.w r1, [0x0803dc8e] ; [0x803dc8c:4]=0x2001e898 simplex_or_repeater_flagword
| |||| || 0x0803d3be dff83809 ldr.w r0, [0x0803dcfe] ; [0x803dcfc:4]=0x2001e73c
| |||| || 0x0803d3c2 0068 ldr r0, [r0]
| |||| || 0x0803d3c4 f3f7eafe bl md380_OSMboxPost
| |||| || 0x0803d3c8 0220 movs r0, 2 ; 2
| ||||,===< 0x0803d3ca b7e0 b 0x803d53c
| |||`----> 0x0803d3cc dff80c04 ldr.w r0, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| ||| ||| 0x0803d3d0 0079 ldrb r0, [r0, 4]
| ||| ||| 0x0803d3d2 c0b2 uxtb r0, r0
| ||| ||| 0x0803d3d4 8009 lsrs r0, r0, 6
| ||| ||| 0x0803d3d6 0028 cmp r0, 0
| |||,====< 0x0803d3d8 01d1 bne 0x803d3de
| ||||||| 0x0803d3da 0120 movs r0, 1 ; 1
| ========< 0x0803d3dc aee0 b 0x803d53c
| |||`----> 0x0803d3de dff80008 ldr.w r0, [0x0803dbe6] ; [0x803dbe4:4]=0x2001e5dc msg_dest_addr
| ||| ||| 0x0803d3e2 8078 ldrb r0, [r0, 2]
| ||| ||| 0x0803d3e4 c0f30010 ubfx r0, r0, 4, 1
| ||| ||| 0x0803d3e8 c007 lsls r0, r0, 0x1f
| |||,====< 0x0803d3ea 01d5 bpl 0x803d3f0
| ||||||| 0x0803d3ec 0120 movs r0, 1 ; 1
| ========< 0x0803d3ee a5e0 b 0x803d53c
| |||`----> 0x0803d3f0 0120 movs r0, 1 ; 1
| |||,====< 0x0803d3f2 a3e0 b 0x803d53c
| ||`-----> 0x0803d3f4 dff8e413 ldr.w r1, [0x0803d7e0] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| || |||| 0x0803d3f8 0979 ldrb r1, [r1, 4]
| || |||| 0x0803d3fa c9b2 uxtb r1, r1
| || |||| 0x0803d3fc 8909 lsrs r1, r1, 6
| || |||| 0x0803d3fe 0029 cmp r1, 0
| ||,=====< 0x0803d400 01d1 bne 0x803d406
| ||||||| 0x0803d402 0120 movs r0, 1 ; 1
| ========< 0x0803d404 9ae0 b 0x803d53c
| ||`-----> 0x0803d406 c0b2 uxtb r0, r0
| || |||| 0x0803d408 0128 cmp r0, 1 ; 1
| ||,=====< 0x0803d40a 0cd1 bne 0x803d426
| ||||||| 0x0803d40c dff8080a ldr.w r0, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d410 0d21 movs r1, 0xd ; 13
| ||||||| 0x0803d412 0170 strb r1, [r0]
| ||||||| 0x0803d414 dff8001a ldr.w r1, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d418 dff8280c ldr.w r0, [0x0803e048] ; [0x803e048:4]=0x2001e8a9 event5_buffer
| ||||||| 0x0803d41c 0068 ldr r0, [r0]
| ||||||| 0x0803d41e f3f7bdfe bl md380_OSMboxPost
| ||||||| 0x0803d422 0320 movs r0, 3 ; 3
| ========< 0x0803d424 8ae0 b 0x803d53c
| ||`-----> 0x0803d426 0020 movs r0, 0
| ||,=====< 0x0803d428 88e0 b 0x803d53c
| |`------> 0x0803d42a 0120 movs r0, 1 ; 1
| |,======< 0x0803d42c 86e0 b 0x803d53c
| `-------> 0x0803d42e 0120 movs r0, 1 ; 1
| ,=======< 0x0803d430 84e0 b 0x803d53c
| --------> 0x0803d432 0520 movs r0, 5 ; 5
| ========< 0x0803d434 82e0 b 0x803d53c
| ||||||`-> 0x0803d436 dff8dc19 ldr.w r1, [0x0803de1a] ; [0x803de18:4]=0x2001e8aa event1_buffer
| |||||| 0x0803d43a 0978 ldrb r1, [r1]
| |||||| 0x0803d43c 0229 cmp r1, 2 ; 2
| ||||||,=< 0x0803d43e 0ad0 beq 0x803d456
| ||||||| 0x0803d440 0629 cmp r1, 6 ; 6
| ========< 0x0803d442 28d0 beq 0x803d496
| ||||||| 0x0803d444 0729 cmp r1, 7 ; 7
| ========< 0x0803d446 40d0 beq 0x803d4ca
| ||||||| 0x0803d448 0829 cmp r1, 8 ; 8
| ========< 0x0803d44a 58d0 beq 0x803d4fe
| ||||||| 0x0803d44c 0929 cmp r1, 9 ; 9
| ========< 0x0803d44e 70d0 beq 0x803d532
| ||||||| 0x0803d450 0a29 cmp r1, 0xa ; 10
| ========< 0x0803d452 70d0 beq 0x803d536
| ========< 0x0803d454 71e0 b 0x803d53a
| ||||||`-> 0x0803d456 dff88413 ldr.w r1, [0x0803d7e2] ; [0x803d7e0:4]=0x2001e600 q_struct_1
| |||||| 0x0803d45a 0979 ldrb r1, [r1, 4]
| |||||| 0x0803d45c c9b2 uxtb r1, r1
| |||||| 0x0803d45e 8909 lsrs r1, r1, 6
| |||||| 0x0803d460 0129 cmp r1, 1 ; 1
| ||||||,=< 0x0803d462 16d1 bne 0x803d492
| ||||||| 0x0803d464 dff87813 ldr.w r1, [0x0803d7e4] ; [0x803d7e4:4]=0x2001e8a8 beep_code_send
| ||||||| 0x0803d468 0978 ldrb r1, [r1]
| ||||||| 0x0803d46a c907 lsls r1, r1, 0x1f
| ========< 0x0803d46c 11d5 bpl 0x803d492
| ||||||| 0x0803d46e c0b2 uxtb r0, r0
| ||||||| 0x0803d470 0128 cmp r0, 1 ; 1
| ========< 0x0803d472 0cd1 bne 0x803d48e
| ||||||| 0x0803d474 dff8a009 ldr.w r0, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d478 0d21 movs r1, 0xd ; 13
| ||||||| 0x0803d47a 0170 strb r1, [r0]
| ||||||| 0x0803d47c dff89819 ldr.w r1, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d480 dff8c00b ldr.w r0, [0x0803e048] ; [0x803e048:4]=0x2001e8a9 event5_buffer
| ||||||| 0x0803d484 0068 ldr r0, [r0]
| ||||||| 0x0803d486 f3f789fe bl md380_OSMboxPost
| ||||||| 0x0803d48a 0320 movs r0, 3 ; 3
| ========< 0x0803d48c 56e0 b 0x803d53c
| --------> 0x0803d48e 0020 movs r0, 0
| ========< 0x0803d490 54e0 b 0x803d53c
| ------`-> 0x0803d492 0120 movs r0, 1 ; 1
| ||||||,=< 0x0803d494 52e0 b 0x803d53c
| --------> 0x0803d496 d149 ldr r1, [0x0803d7de] ; [0x803d7dc:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803d498 0979 ldrb r1, [r1, 4]
| ||||||| 0x0803d49a c9b2 uxtb r1, r1
| ||||||| 0x0803d49c 8909 lsrs r1, r1, 6
| ||||||| 0x0803d49e 0129 cmp r1, 1 ; 1
| ========< 0x0803d4a0 11d1 bne 0x803d4c6
| ||||||| 0x0803d4a2 c0b2 uxtb r0, r0
| ||||||| 0x0803d4a4 0128 cmp r0, 1 ; 1
| ========< 0x0803d4a6 0cd1 bne 0x803d4c2
| ||||||| 0x0803d4a8 dff86c09 ldr.w r0, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d4ac 0d21 movs r1, 0xd ; 13
| ||||||| 0x0803d4ae 0170 strb r1, [r0]
| ||||||| 0x0803d4b0 dff86419 ldr.w r1, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d4b4 dff88c0b ldr.w r0, [0x0803e048] ; [0x803e048:4]=0x2001e8a9 event5_buffer
| ||||||| 0x0803d4b8 0068 ldr r0, [r0]
| ||||||| 0x0803d4ba f3f76ffe bl md380_OSMboxPost
| ||||||| 0x0803d4be 0320 movs r0, 3 ; 3
| ========< 0x0803d4c0 3ce0 b 0x803d53c
| --------> 0x0803d4c2 0020 movs r0, 0
| ========< 0x0803d4c4 3ae0 b 0x803d53c
| --------> 0x0803d4c6 0120 movs r0, 1 ; 1
| ========< 0x0803d4c8 38e0 b 0x803d53c
| --------> 0x0803d4ca c449 ldr r1, [0x0803d7de] ; [0x803d7dc:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803d4cc 0979 ldrb r1, [r1, 4]
| ||||||| 0x0803d4ce c9b2 uxtb r1, r1
| ||||||| 0x0803d4d0 8909 lsrs r1, r1, 6
| ||||||| 0x0803d4d2 0029 cmp r1, 0
| ========< 0x0803d4d4 01d1 bne 0x803d4da
| ||||||| 0x0803d4d6 0120 movs r0, 1 ; 1
| ========< 0x0803d4d8 30e0 b 0x803d53c
| --------> 0x0803d4da c0b2 uxtb r0, r0
| ||||||| 0x0803d4dc 0128 cmp r0, 1 ; 1
| ========< 0x0803d4de 0cd1 bne 0x803d4fa
| ||||||| 0x0803d4e0 dff83409 ldr.w r0, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d4e4 0d21 movs r1, 0xd ; 13
| ||||||| 0x0803d4e6 0170 strb r1, [r0]
| ||||||| 0x0803d4e8 dff82c19 ldr.w r1, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d4ec dff8540b ldr.w r0, [0x0803e048] ; [0x803e048:4]=0x2001e8a9 event5_buffer
| ||||||| 0x0803d4f0 0068 ldr r0, [r0]
| ||||||| 0x0803d4f2 f3f753fe bl md380_OSMboxPost
| ||||||| 0x0803d4f6 0320 movs r0, 3 ; 3
| ========< 0x0803d4f8 20e0 b 0x803d53c
| --------> 0x0803d4fa 0020 movs r0, 0
| ========< 0x0803d4fc 1ee0 b 0x803d53c
| --------> 0x0803d4fe b749 ldr r1, [0x0803d7de] ; [0x803d7dc:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0803d500 0979 ldrb r1, [r1, 4]
| ||||||| 0x0803d502 c9b2 uxtb r1, r1
| ||||||| 0x0803d504 8909 lsrs r1, r1, 6
| ||||||| 0x0803d506 0029 cmp r1, 0
| ========< 0x0803d508 01d1 bne 0x803d50e
| ||||||| 0x0803d50a 0120 movs r0, 1 ; 1
| ========< 0x0803d50c 16e0 b 0x803d53c
| --------> 0x0803d50e c0b2 uxtb r0, r0
| ||||||| 0x0803d510 0128 cmp r0, 1 ; 1
| ========< 0x0803d512 0cd1 bne 0x803d52e
| ||||||| 0x0803d514 dff80009 ldr.w r0, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d518 0d21 movs r1, 0xd ; 13
| ||||||| 0x0803d51a 0170 strb r1, [r0]
| ||||||| 0x0803d51c dff8f818 ldr.w r1, [func_3de1c] ; [0x803de1c:4]=0x2000b580
| ||||||| 0x0803d520 dff8200b ldr.w r0, [0x0803e048] ; [0x803e048:4]=0x2001e8a9 event5_buffer
| ||||||| 0x0803d524 0068 ldr r0, [r0]
| ||||||| 0x0803d526 f3f739fe bl md380_OSMboxPost
| ||||||| 0x0803d52a 0320 movs r0, 3 ; 3
| ========< 0x0803d52c 06e0 b 0x803d53c
| --------> 0x0803d52e 0020 movs r0, 0
| ========< 0x0803d530 04e0 b 0x803d53c
| --------> 0x0803d532 0120 movs r0, 1 ; 1
| ========< 0x0803d534 02e0 b 0x803d53c
| --------> 0x0803d536 0120 movs r0, 1 ; 1
| ========< 0x0803d538 00e0 b 0x803d53c
| --------> 0x0803d53a 0520 movs r0, 5 ; 5
\ ```````-> 0x0803d53c 02bd pop {r1, pc}
/ (fcn) func_3d53e 60
| Caller: c5000_wr_60_5 DrawSomethingThenBitBangIO func_2dd12
| func_3d53e ();
| 0x0803d53e 80b5 push {r7, lr}
| 0x0803d540 a648 ldr r0, [0x0803d7dc] ; [0x803d7dc:4]=0x2001de78 struct_channel_info2
| 0x0803d542 0078 ldrb r0, [r0]
| 0x0803d544 10f00300 ands r0, r0, 3
| 0x0803d548 0128 cmp r0, 1 ; 1
| ,=< 0x0803d54a 0bd1 bne 0x803d564
| | 0x0803d54c 2448 ldr r0, [0x0803d5e0] ; [0x803d5e0:4]=0x2001e894
| | 0x0803d54e 0078 ldrb r0, [r0]
| | 0x0803d550 0728 cmp r0, 7 ; 7
| ,==< 0x0803d552 11d1 bne 0x803d578
| || 0x0803d554 00ab add r3, sp, 0
| || 0x0803d556 0122 movs r2, 1 ; 1
| || 0x0803d558 0821 movs r1, 8 ; 8
| || 0x0803d55a a548 ldr r0, [0x0803d7f2] ; [0x803d7f0:4]=0x2001e640 idle_control_struct
| || 0x0803d55c 0068 ldr r0, [r0]
| || 0x0803d55e 0af0dcfd bl RTCAndTimerIRQ_Sub2
| ,===< 0x0803d562 09e0 b 0x803d578
| ||`-> 0x0803d564 dff8e00a ldr.w r0, [0x0803e04c] ; [0x803e04c:4]=0x2001e895 msg_sms_flags_shifted
| || 0x0803d568 0221 movs r1, 2 ; 2
| || 0x0803d56a 0170 strb r1, [r0]
| || 0x0803d56c dff8d81a ldr.w r1, [0x0803e04c] ; [0x803e04c:4]=0x2001e895 msg_sms_flags_shifted
| || 0x0803d570 a248 ldr r0, [0x0803d7fc] ; [0x803d7fc:4]=0x2001e658 event5_mbox_poi
| || 0x0803d572 0068 ldr r0, [r0]
| || 0x0803d574 f3f712fe bl md380_OSMboxPost
\ ``--> 0x0803d578 01bd pop {r0, pc}
/ (fcn) func_3d57a 38
| Caller: ev5_2 ev5_14 c5000_wr_60_5 md380_f_4520
| func_3d57a ();
| 0x0803d57a 1948 ldr r0, [0x0803d5e2] ; [0x803d5e0:4]=0x2001e894
| 0x0803d57c 0078 ldrb r0, [r0]
| 0x0803d57e 0728 cmp r0, 7 ; 7
| ,=< 0x0803d580 0dd1 bne 0x803d59e
| | 0x0803d582 dff8c80a ldr.w r0, [0x0803e052] ; [0x803e050:4]=0x2001dadc md380_radio_config
| | 0x0803d586 0078 ldrb r0, [r0]
| | 0x0803d588 0f21 movs r1, 0xf ; 15
| | 0x0803d58a 0842 tst r0, r1
| ,==< 0x0803d58c 07d1 bne 0x803d59e
| || 0x0803d58e dff81c0d ldr.w r0, [0x0803e2b2] ; [0x803e2b0:4]=0x2001e894
| || 0x0803d592 4078 ldrb r0, [r0, 1]
| || 0x0803d594 50f00200 orrs r0, r0, 2
| || 0x0803d598 dff8101d ldr.w r1, [0x0803e2b0] ; [0x803e2b0:4]=0x2001e894
| || 0x0803d59c 4870 strb r0, [r1, 1]
\ ``-> 0x0803d59e 7047 bx lr
/ (fcn) func_3d5a0 46
| Caller: task_468f8 func_4fe14_monster_accessing_C5000 c5000_wr_60_5
| func_3d5a0 ();
| 0x0803d5a0 80b5 push {r7, lr}
| 0x0803d5a2 dff87408 ldr.w r0, [0x0803de1e] ; [0x803de1c:4]=0x2000b580
| 0x0803d5a6 0321 movs r1, 3 ; 3
| 0x0803d5a8 0170 strb r1, [r0]
| 0x0803d5aa dff86c18 ldr.w r1, [0x0803de1e] ; [0x803de1c:4]=0x2000b580
| 0x0803d5ae dff8940a ldr.w r0, [0x0803e04a] ; [0x803e048:4]=0x2001e8a9 event5_buffer
| 0x0803d5b2 0068 ldr r0, [r0]
| 0x0803d5b4 f3f7f2fd bl md380_OSMboxPost
| 0x0803d5b8 dff84807 ldr.w r0, [0x0803dd08] ; [0x803dd08:4]=0x2001e160
| 0x0803d5bc 0021 movs r1, 0
| 0x0803d5be 0170 strb r1, [r0]
| 0x0803d5c0 f4f7b6fd bl func_32130
| 0x0803d5c4 dff8e80c ldr.w r0, [0x0803e2b4] ; [0x803e2b4:4]=0x2001e648 sema_1e648
| 0x0803d5c8 0121 movs r1, 1 ; 1
| 0x0803d5ca 0170 strb r1, [r0]
\ 0x0803d5cc 01bd pop {r0, pc}
/ (fcn) TimerIRQ_Sub11 32
| Caller: TIM7_DAC_IRQHandler
| TimerIRQ_Sub11 ();
| 0x0803e45e 80b5 push {r7, lr}
| 0x0803e460 dff8340b ldr.w r0, [0x0803ef9c] ; [0x803ef9c:4]=0x2001e8cf
| 0x0803e464 0ff010f9 bl adc_StartConv
| 0x0803e468 dff8140a ldr.w r0, [0x0803ee84] ; [0x803ee84:4]=0x2001e610
| 0x0803e46c 0078 ldrb r0, [r0]
| 0x0803e46e c007 lsls r0, r0, 0x1f
| ,=< 0x0803e470 02d5 bpl 0x803e478
| | 0x0803e472 00f05afb bl func_3eb2a
| ,==< 0x0803e476 01e0 b 0x803e47c
| |`-> 0x0803e478 00f001f8 bl func_3e47e
\ `--> 0x0803e47c 01bd pop {r0, pc}
/ (fcn) func_3da68 374
| Caller: Start
| func_3da68 ();
| 0x0803da68 80b5 push {r7, lr}
| 0x0803da6a dff84c08 ldr.w r0, [0x0803e2be] ; [0x803e2bc:4]=0x2001e8a2
| 0x0803da6e 0078 ldrb r0, [r0]
| 0x0803da70 10f00300 ands r0, r0, 3
| 0x0803da74 0228 cmp r0, 2 ; 2
| ,=< 0x0803da76 40f0b180 bne.w 0x803dbdc
| | 0x0803da7a 8248 ldr r0, [0x0803dc86] ; [0x803dc84:4]=0x2001e892 gui_opmode3
| | 0x0803da7c 0078 ldrb r0, [r0]
| | 0x0803da7e 3028 cmp r0, 0x30 ; '0' ; 48
| ,==< 0x0803da80 80f0ac80 bhs.w 0x803dbdc
| || 0x0803da84 dff82808 ldr.w r0, [0x0803e2b4] ; [0x803e2b4:4]=0x2001e648 sema_1e648
| || 0x0803da88 0078 ldrb r0, [r0]
| || 0x0803da8a 0828 cmp r0, 8 ; 8
| ,===< 0x0803da8c 72d1 bne 0x803db74
| ||| 0x0803da8e dff82c08 ldr.w r0, [0x0803e2c2] ; [0x803e2c0:4]=0x2001e600 q_struct_1
| ||| 0x0803da92 0078 ldrb r0, [r0]
| ||| 0x0803da94 401c adds r0, r0, 1
| ||| 0x0803da96 dff82418 ldr.w r1, [0x0803e2c2] ; [0x803e2c0:4]=0x2001e600 q_struct_1
| ||| 0x0803da9a 0870 strb r0, [r1]
| ||| 0x0803da9c c0b2 uxtb r0, r0
| ||| 0x0803da9e 6428 cmp r0, 0x64 ; 'd' ; 100
| ,====< 0x0803daa0 c0f09c80 blo.w 0x803dbdc
| |||| 0x0803daa4 dff81808 ldr.w r0, [0x0803e2c4] ; [0x803e2c4:4]=0x2001e8e5
| |||| 0x0803daa8 0078 ldrb r0, [r0]
| |||| 0x0803daaa 10f07f00 ands r0, r0, 0x7f
| |||| 0x0803daae dff81018 ldr.w r1, [0x0803e2c6] ; [0x803e2c4:4]=0x2001e8e5
| |||| 0x0803dab2 0870 strb r0, [r1]
| |||| 0x0803dab4 dff80808 ldr.w r0, [0x0803e2c4] ; [0x803e2c4:4]=0x2001e8e5
| |||| 0x0803dab8 4078 ldrb r0, [r0, 1]
| |||| 0x0803daba 10f0fe00 ands r0, r0, 0xfe
| |||| 0x0803dabe dff80018 ldr.w r1, [0x0803e2c6] ; [0x803e2c4:4]=0x2001e8e5
| |||| 0x0803dac2 4870 strb r0, [r1, 1]
| |||| 0x0803dac4 dff8fc07 ldr.w r0, [0x0803e2c8] ; [0x803e2c8:4]=0x2001e650 sema1_poi
| |||| 0x0803dac8 0021 movs r1, 0
| |||| 0x0803daca 0170 strb r1, [r0]
| |||| 0x0803dacc 7821 movs r1, 0x78 ; 'x' ; 120
| |||| 0x0803dace 5420 movs r0, 0x54 ; 'T' ; 84
| |||| 0x0803dad0 02f06bfa bl c5000_spi0_writereg_1
| |||| 0x0803dad4 dff8d407 ldr.w r0, [0x0803e2b0] ; [0x803e2b0:4]=0x2001e894
| |||| 0x0803dad8 0078 ldrb r0, [r0]
| |||| 0x0803dada 10f07f00 ands r0, r0, 0x7f
| |||| 0x0803dade dff8cc17 ldr.w r1, [0x0803e2b2] ; [0x803e2b0:4]=0x2001e894
| |||| 0x0803dae2 0870 strb r0, [r1]
| |||| 0x0803dae4 dff86405 ldr.w r0, [0x0803e050] ; [0x803e050:4]=0x2001dadc md380_radio_config
| |||| 0x0803dae8 0078 ldrb r0, [r0]
| |||| 0x0803daea 10f0f000 ands r0, r0, 0xf0
| |||| 0x0803daee 2028 cmp r0, 0x20 ; 32
| ,=====< 0x0803daf0 0ed1 bne 0x803db10
| ||||| 0x0803daf2 3b48 ldr r0, [0x0803dbe2] ; [0x803dbe0:4]=0x2001e5f0 radio_status_1
| ||||| 0x0803daf4 8078 ldrb r0, [r0, 2]
| ||||| 0x0803daf6 50f00400 orrs r0, r0, 4
| ||||| 0x0803dafa 3949 ldr r1, [0x0803dbe2] ; [0x803dbe0:4]=0x2001e5f0 radio_status_1
| ||||| 0x0803dafc 8870 strb r0, [r1, 2]
| ||||| 0x0803dafe dff8c807 ldr.w r0, [0x0803e2ce] ; [0x803e2cc:4]=0x2001e658 event5_mbox_poi
| ||||| 0x0803db02 0068 ldr r0, [r0]
| ||||| 0x0803db04 01f09efe bl OSSemPost
| ||||| 0x0803db08 3848 ldr r0, [0x0803dbec] ; [0x803dbec:4]=0x2001e94d gui_opmode1
| ||||| 0x0803db0a 9221 movs r1, 0x92 ; 146
| ||||| 0x0803db0c 0170 strb r1, [r0]
| ,======< 0x0803db0e 2ae0 b 0x803db66
| |`-----> 0x0803db10 dff83805 ldr.w r0, [0x0803e050] ; [0x803e050:4]=0x2001dadc md380_radio_config
| | |||| 0x0803db14 0078 ldrb r0, [r0]
| | |||| 0x0803db16 10f0f000 ands r0, r0, 0xf0
| | |||| 0x0803db1a 1028 cmp r0, 0x10 ; 16
| |,=====< 0x0803db1c 0ed1 bne 0x803db3c
| |||||| 0x0803db1e 3048 ldr r0, [0x0803dbe2] ; [0x803dbe0:4]=0x2001e5f0 radio_status_1
| |||||| 0x0803db20 8078 ldrb r0, [r0, 2]
| |||||| 0x0803db22 50f00400 orrs r0, r0, 4
| |||||| 0x0803db26 2e49 ldr r1, [0x0803dbe2] ; [0x803dbe0:4]=0x2001e5f0 radio_status_1
| |||||| 0x0803db28 8870 strb r0, [r1, 2]
| |||||| 0x0803db2a dff89c07 ldr.w r0, [0x0803e2ce] ; [0x803e2cc:4]=0x2001e658 event5_mbox_poi
| |||||| 0x0803db2e 0068 ldr r0, [r0]
| |||||| 0x0803db30 01f088fe bl OSSemPost
| |||||| 0x0803db34 2d48 ldr r0, [0x0803dbec] ; [0x803dbec:4]=0x2001e94d gui_opmode1
| |||||| 0x0803db36 9221 movs r1, 0x92 ; 146
| |||||| 0x0803db38 0170 strb r1, [r0]
| ,=======< 0x0803db3a 14e0 b 0x803db66
| ||`-----> 0x0803db3c dff80c05 ldr.w r0, [0x0803e050] ; [0x803e050:4]=0x2001dadc md380_radio_config
| || |||| 0x0803db40 0078 ldrb r0, [r0]
| || |||| 0x0803db42 10f0f000 ands r0, r0, 0xf0
| || |||| 0x0803db46 3028 cmp r0, 0x30 ; '0' ; 48
| ||,=====< 0x0803db48 0dd1 bne 0x803db66
| ||||||| 0x0803db4a 2548 ldr r0, [0x0803dbe2] ; [0x803dbe0:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0803db4c 8078 ldrb r0, [r0, 2]
| ||||||| 0x0803db4e 50f00400 orrs r0, r0, 4
| ||||||| 0x0803db52 2349 ldr r1, [0x0803dbe2] ; [0x803dbe0:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0803db54 8870 strb r0, [r1, 2]
| ||||||| 0x0803db56 dff87007 ldr.w r0, [0x0803e2ce] ; [0x803e2cc:4]=0x2001e658 event5_mbox_poi
| ||||||| 0x0803db5a 0068 ldr r0, [r0]
| ||||||| 0x0803db5c 01f072fe bl OSSemPost
| ||||||| 0x0803db60 2248 ldr r0, [0x0803dbec] ; [0x803dbec:4]=0x2001e94d gui_opmode1
| ||||||| 0x0803db62 9321 movs r1, 0x93 ; 147
| ||||||| 0x0803db64 0170 strb r1, [r0]
| ```-----> 0x0803db66 dff84807 ldr.w r0, [0x0803e2b6] ; [0x803e2b4:4]=0x2001e648 sema_1e648
| |||| 0x0803db6a 0121 movs r1, 1 ; 1
| |||| 0x0803db6c 0170 strb r1, [r0]
| |||| 0x0803db6e 05f08ffc bl func_43490_wr_C5000
| ,=====< 0x0803db72 33e0 b 0x803dbdc
| ||`---> 0x0803db74 dff83807 ldr.w r0, [0x0803e2b4] ; [0x803e2b4:4]=0x2001e648 sema_1e648
| || || 0x0803db78 0078 ldrb r0, [r0]
| || || 0x0803db7a 0428 cmp r0, 4 ; 4
| ||,===< 0x0803db7c 0ed0 beq 0x803db9c
| ||||| 0x0803db7e dff83007 ldr.w r0, [0x0803e2b6] ; [0x803e2b4:4]=0x2001e648 sema_1e648
| ||||| 0x0803db82 0078 ldrb r0, [r0]
| ||||| 0x0803db84 0728 cmp r0, 7 ; 7
| ,======< 0x0803db86 09d0 beq 0x803db9c
| |||||| 0x0803db88 dff82407 ldr.w r0, [0x0803e2b4] ; [0x803e2b4:4]=0x2001e648 sema_1e648
| |||||| 0x0803db8c 0078 ldrb r0, [r0]
| |||||| 0x0803db8e 0928 cmp r0, 9 ; 9
| ,=======< 0x0803db90 04d0 beq 0x803db9c
| ||||||| 0x0803db92 dff81c07 ldr.w r0, [0x0803e2b6] ; [0x803e2b4:4]=0x2001e648 sema_1e648
| ||||||| 0x0803db96 0078 ldrb r0, [r0]
| ||||||| 0x0803db98 0328 cmp r0, 3 ; 3
| ========< 0x0803db9a 1fd1 bne 0x803dbdc
| ``--`---> 0x0803db9c dff81c07 ldr.w r0, [0x0803e2c0] ; [0x803e2c0:4]=0x2001e600 q_struct_1
| || || 0x0803dba0 0078 ldrb r0, [r0]
| || || 0x0803dba2 401c adds r0, r0, 1
| || || 0x0803dba4 dff81417 ldr.w r1, [0x0803e2c0] ; [0x803e2c0:4]=0x2001e600 q_struct_1
| || || 0x0803dba8 0870 strb r0, [r1]
| || || 0x0803dbaa c0b2 uxtb r0, r0
| || || 0x0803dbac 6428 cmp r0, 0x64 ; 'd' ; 100
| ||,===< 0x0803dbae 15d3 blo 0x803dbdc
| ||||| 0x0803dbb0 f4f7befa bl func_32130
| ||||| 0x0803dbb4 05f06cfc bl func_43490_wr_C5000
| ||||| 0x0803dbb8 dff8f406 ldr.w r0, [0x0803e2b4] ; [0x803e2b4:4]=0x2001e648 sema_1e648
| ||||| 0x0803dbbc 0121 movs r1, 1 ; 1
| ||||| 0x0803dbbe 0170 strb r1, [r0]
| ||||| 0x0803dbc0 0a48 ldr r0, [0x0803dbec] ; [0x803dbec:4]=0x2001e94d gui_opmode1
| ||||| 0x0803dbc2 9321 movs r1, 0x93 ; 147
| ||||| 0x0803dbc4 0170 strb r1, [r0]
| ||||| 0x0803dbc6 dff88004 ldr.w r0, [0x0803e04e] ; [0x803e04c:4]=0x2001e895 msg_sms_flags_shifted
| ||||| 0x0803dbca 1221 movs r1, 0x12 ; 18
| ||||| 0x0803dbcc 0170 strb r1, [r0]
| ||||| 0x0803dbce dff87814 ldr.w r1, [0x0803e04e] ; [0x803e04c:4]=0x2001e895 msg_sms_flags_shifted
| ||||| 0x0803dbd2 dff8f806 ldr.w r0, [0x0803e2d2] ; [0x803e2d0:4]=0x2001e5f0 radio_status_1
| ||||| 0x0803dbd6 0068 ldr r0, [r0]
| ||||| 0x0803dbd8 f3f7e0fa bl md380_OSMboxPost
\ --`````-> 0x0803dbdc 01bd pop {r0, pc}
/ (fcn) func_3dbf0 146
| Caller: Start
| func_3dbf0 ();
| 0x0803dbf0 80b5 push {r7, lr}
| 0x0803dbf2 dff8c406 ldr.w r0, [0x0803e2be] ; [0x803e2bc:4]=0x2001e8a2
| 0x0803dbf6 0078 ldrb r0, [r0]
| 0x0803dbf8 10f00300 ands r0, r0, 3
| 0x0803dbfc 0228 cmp r0, 2 ; 2
| ,=< 0x0803dbfe 3fd1 bne 0x803dc80
| | 0x0803dc00 dff8cc06 ldr.w r0, [0x0803e2d4] ; [0x803e2d4:4]=0x2001e8a3
| | 0x0803dc04 4078 ldrb r0, [r0, 1]
| | 0x0803dc06 c0f34000 ubfx r0, r0, 1, 1
| | 0x0803dc0a c007 lsls r0, r0, 0x1f
| ,==< 0x0803dc0c 38d5 bpl 0x803dc80
| || 0x0803dc0e 1d48 ldr r0, [0x0803dc86] ; [0x803dc84:4]=0x2001e892 gui_opmode3
| || 0x0803dc10 0078 ldrb r0, [r0]
| || 0x0803dc12 3028 cmp r0, 0x30 ; '0' ; 48
| ,===< 0x0803dc14 34d2 bhs 0x803dc80
| ||| 0x0803dc16 dff8a806 ldr.w r0, [0x0803e2c6] ; [0x803e2c4:4]=0x2001e8e5
| ||| 0x0803dc1a 0078 ldrb r0, [r0]
| ||| 0x0803dc1c c007 lsls r0, r0, 0x1f
| ,====< 0x0803dc1e 16d5 bpl 0x803dc4e
| |||| 0x0803dc20 dff8ac06 ldr.w r0, [0x0803e2d4] ; [0x803e2d4:4]=0x2001e8a3
| |||| 0x0803dc24 c078 ldrb r0, [r0, 3]
| |||| 0x0803dc26 50f00100 orrs r0, r0, 1
| |||| 0x0803dc2a dff8a416 ldr.w r1, [0x0803e2d6] ; [0x803e2d4:4]=0x2001e8a3
| |||| 0x0803dc2e c870 strb r0, [r1, 3]
| |||| 0x0803dc30 dff87c06 ldr.w r0, [0x0803e2b4] ; [0x803e2b4:4]=0x2001e648 sema_1e648
| |||| 0x0803dc34 0078 ldrb r0, [r0]
| |||| 0x0803dc36 0828 cmp r0, 8 ; 8
| ,=====< 0x0803dc38 04d1 bne 0x803dc44
| ||||| 0x0803dc3a dff89806 ldr.w r0, [0x0803e2da] ; [0x803e2d8:4]=0x2001e1d0 msg_sms_hdr
| ||||| 0x0803dc3e c821 movs r1, 0xc8 ; 200
| ||||| 0x0803dc40 0170 strb r1, [r0]
| ,======< 0x0803dc42 1de0 b 0x803dc80
| |`-----> 0x0803dc44 dff88c06 ldr.w r0, [0x0803e2d8] ; [0x803e2d8:4]=0x2001e1d0 msg_sms_hdr
| | |||| 0x0803dc48 1421 movs r1, 0x14 ; 20
| | |||| 0x0803dc4a 0170 strb r1, [r0]
| |,=====< 0x0803dc4c 18e0 b 0x803dc80
| ||`----> 0x0803dc4e dff88006 ldr.w r0, [0x0803e2d6] ; [0x803e2d4:4]=0x2001e8a3
| || ||| 0x0803dc52 c078 ldrb r0, [r0, 3]
| || ||| 0x0803dc54 c007 lsls r0, r0, 0x1f
| ||,====< 0x0803dc56 13d5 bpl 0x803dc80
| |||||| 0x0803dc58 dff87806 ldr.w r0, [0x0803e2d8] ; [0x803e2d8:4]=0x2001e1d0 msg_sms_hdr
| |||||| 0x0803dc5c 0078 ldrb r0, [r0]
| |||||| 0x0803dc5e 401e subs r0, r0, 1
| |||||| 0x0803dc60 dff87016 ldr.w r1, [0x0803e2d8] ; [0x803e2d8:4]=0x2001e1d0 msg_sms_hdr
| |||||| 0x0803dc64 0870 strb r0, [r1]
| |||||| 0x0803dc66 c0b2 uxtb r0, r0
| |||||| 0x0803dc68 0028 cmp r0, 0
| ,=======< 0x0803dc6a 09d1 bne 0x803dc80
| ||||||| 0x0803dc6c 05f010fc bl func_43490_wr_C5000
| ||||||| 0x0803dc70 dff85c06 ldr.w r0, [0x0803e2d4] ; [0x803e2d4:4]=0x2001e8a3
| ||||||| 0x0803dc74 c078 ldrb r0, [r0, 3]
| ||||||| 0x0803dc76 10f0fe00 ands r0, r0, 0xfe
| ||||||| 0x0803dc7a dff85416 ldr.w r1, [0x0803e2d6] ; [0x803e2d4:4]=0x2001e8a3
| ||||||| 0x0803dc7e c870 strb r0, [r1, 3]
\ ```````-> 0x0803dc80 01bd pop {r0, pc}
/ (fcn) func_3dc90 98
| Caller: Start
| func_3dc90 ();
| 0x0803dc90 80b5 push {r7, lr}
| 0x0803dc92 dff82c06 ldr.w r0, [0x0803e2c6] ; [0x803e2c4:4]=0x2001e8e5
| 0x0803dc96 4078 ldrb r0, [r0, 1]
| 0x0803dc98 c007 lsls r0, r0, 0x1f
| ,=< 0x0803dc9a 29d5 bpl 0x803dcf0
| | 0x0803dc9c dff82006 ldr.w r0, [0x0803e2c4] ; [0x803e2c4:4]=0x2001e8e5
| | 0x0803dca0 0078 ldrb r0, [r0]
| | 0x0803dca2 0006 lsls r0, r0, 0x18
| ,==< 0x0803dca4 24d5 bpl 0x803dcf0
| || 0x0803dca6 dff81c06 ldr.w r0, [0x0803e2ca] ; [0x803e2c8:4]=0x2001e650 sema1_poi
| || 0x0803dcaa 0078 ldrb r0, [r0]
| || 0x0803dcac 401c adds r0, r0, 1
| || 0x0803dcae dff81416 ldr.w r1, [0x0803e2ca] ; [0x803e2c8:4]=0x2001e650 sema1_poi
| || 0x0803dcb2 0870 strb r0, [r1]
| || 0x0803dcb4 dff80c06 ldr.w r0, [0x0803e2c8] ; [0x803e2c8:4]=0x2001e650 sema1_poi
| || 0x0803dcb8 0078 ldrb r0, [r0]
| || 0x0803dcba 0928 cmp r0, 9 ; 9
| ,===< 0x0803dcbc 18d3 blo 0x803dcf0
| ||| 0x0803dcbe dff80006 ldr.w r0, [0x0803e2c6] ; [0x803e2c4:4]=0x2001e8e5
| ||| 0x0803dcc2 4078 ldrb r0, [r0, 1]
| ||| 0x0803dcc4 10f0fe00 ands r0, r0, 0xfe
| ||| 0x0803dcc8 dff8f415 ldr.w r1, [0x0803e2c4] ; [0x803e2c4:4]=0x2001e8e5
| ||| 0x0803dccc 4870 strb r0, [r1, 1]
| ||| 0x0803dcce dff8f405 ldr.w r0, [0x0803e2ca] ; [0x803e2c8:4]=0x2001e650 sema1_poi
| ||| 0x0803dcd2 0021 movs r1, 0
| ||| 0x0803dcd4 0170 strb r1, [r0]
| ||| 0x0803dcd6 dff8f805 ldr.w r0, [0x0803e2d6] ; [0x803e2d4:4]=0x2001e8a3
| ||| 0x0803dcda 8078 ldrb r0, [r0, 2]
| ||| 0x0803dcdc 50f00100 orrs r0, r0, 1
| ||| 0x0803dce0 dff8ec15 ldr.w r1, [0x0803e2d4] ; [0x803e2d4:4]=0x2001e8a3
| ||| 0x0803dce4 8870 strb r0, [r1, 2]
| ||| 0x0803dce6 dff8e005 ldr.w r0, [0x0803e2ce] ; [0x803e2cc:4]=0x2001e658 event5_mbox_poi
| ||| 0x0803dcea 0068 ldr r0, [r0]
| ||| 0x0803dcec 01f0aafd bl OSSemPost
\ ```-> 0x0803dcf0 01bd pop {r0, pc}
/ (fcn) func_3e372 132
| Caller: Start
| func_3e372 ();
| 0x0803e372 80b5 push {r7, lr}
| 0x0803e374 dff80c0b ldr.w r0, [0x0803ee88] ; [0x803ee88:4]=0x2001e474
| 0x0803e378 0078 ldrb r0, [r0]
| 0x0803e37a c0f3c000 ubfx r0, r0, 3, 1
| 0x0803e37e c007 lsls r0, r0, 0x1f
| ,=< 0x0803e380 16d5 bpl 0x803e3b0
| | 0x0803e382 dff8f80a ldr.w r0, [0x0803ee82] ; [0x803ee80:4]=0x2001e614
| | 0x0803e386 0078 ldrb r0, [r0]
| | 0x0803e388 401c adds r0, r0, 1
| | 0x0803e38a dff8f01a ldr.w r1, [0x0803ee82] ; [0x803ee80:4]=0x2001e614
| | 0x0803e38e 0870 strb r0, [r1]
| | 0x0803e390 dff8e80a ldr.w r0, [0x0803ee80] ; [0x803ee80:4]=0x2001e614
| | 0x0803e394 0078 ldrb r0, [r0]
| | 0x0803e396 0f28 cmp r0, 0xf ; 15
| ,==< 0x0803e398 2cd3 blo 0x803e3f4
| || 0x0803e39a fff7bdff bl func_3e318
| || 0x0803e39e dff8e40a ldr.w r0, [0x0803ee8a] ; [0x803ee88:4]=0x2001e474
| || 0x0803e3a2 0078 ldrb r0, [r0]
| || 0x0803e3a4 10f0f700 ands r0, r0, 0xf7
| || 0x0803e3a8 dff8d81a ldr.w r1, [0x0803ee88] ; [0x803ee88:4]=0x2001e474
| || 0x0803e3ac 0870 strb r0, [r1]
| ,===< 0x0803e3ae 21e0 b 0x803e3f4
| ||`-> 0x0803e3b0 dff8cc0a ldr.w r0, [0x0803ee84] ; [0x803ee84:4]=0x2001e610
| || 0x0803e3b4 0078 ldrb r0, [r0]
| || 0x0803e3b6 c0f3c000 ubfx r0, r0, 3, 1
| || 0x0803e3ba c007 lsls r0, r0, 0x1f
| ||,=< 0x0803e3bc 1ad5 bpl 0x803e3f4
| ||| 0x0803e3be dff8bc0a ldr.w r0, [0x0803ee82] ; [0x803ee80:4]=0x2001e614
| ||| 0x0803e3c2 0078 ldrb r0, [r0]
| ||| 0x0803e3c4 401c adds r0, r0, 1
| ||| 0x0803e3c6 dff8b41a ldr.w r1, [0x0803ee82] ; [0x803ee80:4]=0x2001e614
| ||| 0x0803e3ca 0870 strb r0, [r1]
| ||| 0x0803e3cc dff8b00a ldr.w r0, [0x0803ee84] ; [0x803ee84:4]=0x2001e610
| ||| 0x0803e3d0 0078 ldrb r0, [r0]
| ||| 0x0803e3d2 c007 lsls r0, r0, 0x1f
| ,====< 0x0803e3d4 07d5 bpl 0x803e3e6
| |||| 0x0803e3d6 dff8a40a ldr.w r0, [0x0803ee82] ; [0x803ee80:4]=0x2001e614
| |||| 0x0803e3da 0078 ldrb r0, [r0]
| |||| 0x0803e3dc 9628 cmp r0, 0x96 ; 150
| ,=====< 0x0803e3de 09d3 blo 0x803e3f4
| ||||| 0x0803e3e0 00f009f8 bl func_3e3f6
| ,======< 0x0803e3e4 06e0 b 0x803e3f4
| ||`----> 0x0803e3e6 dff8940a ldr.w r0, [0x0803ee82] ; [0x803ee80:4]=0x2001e614
| || ||| 0x0803e3ea 0078 ldrb r0, [r0]
| || ||| 0x0803e3ec 0d28 cmp r0, 0xd ; 13
| ||,====< 0x0803e3ee 01d3 blo 0x803e3f4
| |||||| 0x0803e3f0 fff792ff bl func_3e318
\ ``````-> 0x0803e3f4 01bd pop {r0, pc}
/ (fcn) func_3d924 2
| Caller: dmr_CSBK_handler
| func_3d924 ();
\ 0x0803d924 30b4 push {r4, r5}
/ (fcn) func_3d99a 2
| Caller: dmr_CSBK_handler
| func_3d99a ();
\ 0x0803d99a 10b4 push {r4}
/ (fcn) func_3da3c 2
| Caller: dmr_CSBK_handler
| func_3da3c ();
\ 0x0803da3c 10b4 push {r4}
/ (fcn) func_3de1c 2
| Caller: ev5_rest
| func_3de1c ();
\ 0x0803de1c 80b5 push {r7, lr}
/ (fcn) func_3df70 2
| Caller: ev5_rest
| func_3df70 ();
\ 0x0803df70 80b5 push {r7, lr}
/ (fcn) func_3e058 2
| Caller: ev5_rest
| func_3e058 ();
\ 0x0803e058 80b5 push {r7, lr}
/ (fcn) func_3e1d6 2
| Caller: ev5_rest
| func_3e1d6 ();
\ 0x0803e1d6 80b5 push {r7, lr}
/ (fcn) func_3e318 2
| Caller: func_3e372
| func_3e318 ();
\ 0x0803e318 dff8 invalid
/ (fcn) func_3e3f6 2
| Caller: func_3e372
| func_3e3f6 ();
\ 0x0803e3f6 dff8 invalid
/ (fcn) func_3e47e 2
| Caller: TimerIRQ_Sub11
| func_3e47e ();
\ 0x0803e47e 80b5 push {r7, lr}
/ (fcn) func_3eb2a 2
| Caller: TimerIRQ_Sub11
| func_3eb2a ();
\ 0x0803eb2a 80b5 push {r7, lr}
/ (fcn) func_3f128 2
| Caller: func_321f8
| func_3f128 ();
\ 0x0803f128 e0b5 push {r5, r6, r7, lr}
/ (fcn) func_3f190 2
| Caller: func_321f8
| func_3f190 ();
\ 0x0803f190 e0b5 push {r5, r6, r7, lr}
/ (fcn) func_3f1fc 2
| Caller: LongSwitchWithRadioStatus1 func_320fe
| func_3f1fc ();
\ 0x0803f1fc 80b5 push {r7, lr}
/ (fcn) func_3f314 26
| Caller: c5000_wr_60_3
| func_3f314 ();
| 0x0803f314 80b5 push {r7, lr}
| 0x0803f316 00f0f0f8 bl SomethingWithGPIOC_TIM8_TIM7
| 0x0803f31a dff88003 ldr.w r0, [0x0803f6a2] ; [0x803f6a0:4]=0x2001e5d4
| 0x0803f31e 408b ldrh r0, [r0, 0x1a]
| 0x0803f320 80b2 uxth r0, r0
| 0x0803f322 e8f745f8 bl func_273b0
| 0x0803f326 80b2 uxth r0, r0
| 0x0803f328 00f019f9 bl SomethingWithTIM7_RadioStatus1
\ 0x0803f32c 01bd pop {r0, pc}
/ (fcn) func_3f32e 32
| Caller: c5000_wr_60_3
| func_3f32e ();
| 0x0803f32e 80b5 push {r7, lr}
| 0x0803f330 00f0e3f8 bl SomethingWithGPIOC_TIM8_TIM7
| 0x0803f334 dff86403 ldr.w r0, [0x0803f6a0] ; [0x803f6a0:4]=0x2001e5d4
| 0x0803f338 408b ldrh r0, [r0, 0x1a]
| 0x0803f33a 00f0b1f8 bl SomeBitFiddling
| 0x0803f33e dff86013 ldr.w r1, [0x0803f6a6] ; [0x803f6a4:4]=0x2001e86b
| 0x0803f342 0860 str r0, [r1]
| 0x0803f344 0ef011fb bl func_4d96a
| 0x0803f348 00f04af9 bl Something2_TIM7_RadioStatus1
\ 0x0803f34c 01bd pop {r0, pc}
/ (fcn) func_3f5cc 20
| Caller: c5000_wr_60_4
| func_3f5cc ();
| 0x0803f5cc 80b5 push {r7, lr}
| 0x0803f5ce 41f24430 movw r0, 0x1344
| 0x0803f5d2 00f083ff bl func_404dc
| 0x0803f5d6 4ff4a860 mov.w r0, 0x540 ; 1344
| 0x0803f5da fff7c0ff bl SomethingWithTIM7_RadioStatus1
\ 0x0803f5de 01bd pop {r0, pc}
/ (fcn) func_3f6c8 2
| Caller: display_idle_screen display_unprog_screen
| func_3f6c8 ();
\ 0x0803f6c8 0349 ldr r1, [0x0803f6d8] ; [0x803f6d8:4]=0x2001da1c gfx_info
/ (fcn) func_3f6dc 2
| Caller: func_49810
| func_3f6dc ();
\ 0x0803f6dc 38b5 push {r3, r4, r5, lr}
/ (fcn) func_3f8f2_init_PLL_and_C5000 1206
| Caller: func_4fe14_monster_accessing_C5000 c5000_wr_60_5
| func_3f8f2_init_PLL_and_C5000 ();
| 0x0803f8f2 00b5 push {lr}
| 0x0803f8f4 89b0 sub sp, 0x24 ; '$'
| 0x0803f8f6 04a8 add r0, sp, 0x10
| 0x0803f8f8 dff8d418 ldr.w r1, [0x080401d4] ; [0x80401d4:4]=0x2001e8e6
| 0x0803f8fc 1022 movs r2, 0x10 ; 16
| 0x0803f8fe f3f7a5f9 bl func_32c4c
| 0x0803f902 dff8d008 ldr.w r0, [0x080401da] ; [0x80401d8:4]=0x40021000 io_GPIOE
| 0x0803f906 0078 ldrb r0, [r0]
| 0x0803f908 4228 cmp r0, 0x42 ; 'B' ; 66
| ,=< 0x0803f90a 40f04b82 bne.w 0x803fda4
| | 0x0803f90e 0022 movs r2, 0
| | 0x0803f910 4021 movs r1, 0x40 ; '@' ; 64
| | 0x0803f912 dff8c408 ldr.w r0, [0x080401de] ; [0x80401dc:4]=0x2144b580
| | 0x0803f916 ebf77cff bl GPIO_WriteBit
| | 0x0803f91a 0022 movs r2, 0
| | 0x0803f91c 4ff40051 mov.w r1, 0x2000
| | 0x0803f920 dff82c09 ldr.w r0, [0x08040254] ; [0x8040254:4]=0x2001e8aa event1_buffer
| | 0x0803f924 ebf775ff bl GPIO_WriteBit
| | 0x0803f928 0020 movs r0, 0
| | 0x0803f92a 07f00dfb bl func_46f48
| | 0x0803f92e dff89c08 ldr.w r0, [0x080401d2] ; [0x80401d0:4]=0x80f8734
| | 0x0803f932 0221 movs r1, 2 ; 2
| | 0x0803f934 0170 strb r1, [r0]
| | 0x0803f936 dff8e808 ldr.w r0, [0x08040226] ; [0x8040224:4]=0x2144b580
| | 0x0803f93a 0078 ldrb r0, [r0]
| | 0x0803f93c 10f0f700 ands r0, r0, 0xf7
| | 0x0803f940 dff8dc18 ldr.w r1, [func_40224] ; [0x8040224:4]=0x2144b580
| | 0x0803f944 0870 strb r0, [r1]
| | 0x0803f946 dff80c09 ldr.w r0, [0x0804025a] ; [0x8040258:4]=0x2001e65c event1_mbox_poi_radio
| | 0x0803f94a 0121 movs r1, 1 ; 1
| | 0x0803f94c 0170 strb r1, [r0]
| | 0x0803f94e dff80419 ldr.w r1, [0x0804025a] ; [0x8040258:4]=0x2001e65c event1_mbox_poi_radio
| | 0x0803f952 dff80409 ldr.w r0, [0x0804025e] ; [0x804025c:4]=0x2001e898 simplex_or_repeater_flagword
| | 0x0803f956 0068 ldr r0, [r0]
| | 0x0803f958 f1f720fc bl md380_OSMboxPost
| | ;-- c5000_pll_init:
| | 0x0803f95c 8021 movs r1, 0x80 ; 128
| | 0x0803f95e 0a20 movs r0, 0xa ; 10
| | 0x0803f960 00f010fb bl c5000_spi0_writereg
| | 0x0803f964 2821 movs r1, 0x28 ; '(' ; 40
| | 0x0803f966 0b20 movs r0, 0xb ; 11
| | 0x0803f968 00f00cfb bl c5000_spi0_writereg
| | 0x0803f96c 3321 movs r1, 0x33 ; '3' ; 51
| | 0x0803f96e 0c20 movs r0, 0xc ; 12
| | 0x0803f970 00f008fb bl c5000_spi0_writereg
| | 0x0803f974 0120 movs r0, 1 ; 1
| | 0x0803f976 f4f79dfa bl OSTimeDly
| | 0x0803f97a 0021 movs r1, 0
| | 0x0803f97c 0a20 movs r0, 0xa ; 10
| | 0x0803f97e 00f001fb bl c5000_spi0_writereg
| | ;-- c5000_strange_init:
| | 0x0803f982 3221 movs r1, 0x32 ; '2' ; 50
| | 0x0803f984 b920 movs r0, 0xb9 ; 185
| | 0x0803f986 00f0fdfa bl c5000_spi0_writereg
| | 0x0803f98a 2221 movs r1, 0x22 ; '"' ; 34
| | 0x0803f98c ba20 movs r0, 0xba ; 186
| | 0x0803f98e 00f0f9fa bl c5000_spi0_writereg
| | 0x0803f992 1121 movs r1, 0x11 ; 17
| | 0x0803f994 bb20 movs r0, 0xbb ; 187
| | 0x0803f996 00f0f5fa bl c5000_spi0_writereg
| | 0x0803f99a dff8c008 ldr.w r0, [0x08040262] ; [0x8040260:4]=0x8097f80
| | 0x0803f99e 0078 ldrb r0, [r0]
| | 0x0803f9a0 0128 cmp r0, 1 ; 1
| ,==< 0x0803f9a2 04d1 bne 0x803f9ae
| || 0x0803f9a4 4f21 movs r1, 0x4f ; 'O' ; 79
| || 0x0803f9a6 1020 movs r0, 0x10 ; 16
| || 0x0803f9a8 00f0ecfa bl c5000_spi0_writereg
| ,===< 0x0803f9ac 03e0 b 0x803f9b6
| |`--> 0x0803f9ae 6b21 movs r1, 0x6b ; 'k' ; 107
| | | 0x0803f9b0 1020 movs r0, 0x10 ; 16
| | | 0x0803f9b2 00f0e7fa bl c5000_spi0_writereg
| `---> 0x0803f9b6 4321 movs r1, 0x43 ; 'C' ; 67
| | 0x0803f9b8 4020 movs r0, 0x40 ; '@' ; 64
| | 0x0803f9ba 00f0e3fa bl c5000_spi0_writereg
| | 0x0803f9be 4021 movs r1, 0x40 ; '@' ; 64
| | 0x0803f9c0 4120 movs r0, 0x41 ; 'A' ; 65
| | 0x0803f9c2 00f0dffa bl c5000_spi0_writereg
| | ;-- c5000_iffreq_init:
| | 0x0803f9c6 0b21 movs r1, 0xb ; 11
| | 0x0803f9c8 0720 movs r0, 7 ; 7
| | 0x0803f9ca 00f0dbfa bl c5000_spi0_writereg
| | 0x0803f9ce b821 movs r1, 0xb8 ; 184
| | 0x0803f9d0 0820 movs r0, 8 ; 8
| | 0x0803f9d2 00f0d7fa bl c5000_spi0_writereg
| | 0x0803f9d6 0021 movs r1, 0
| | 0x0803f9d8 0920 movs r0, 9 ; 9
| | 0x0803f9da 00f0d3fa bl c5000_spi0_writereg
| | 0x0803f9de 2121 movs r1, 0x21 ; '!' ; 33
| | 0x0803f9e0 0620 movs r0, 6 ; 6
| | 0x0803f9e2 00f0cffa bl c5000_spi0_writereg
| | 0x0803f9e6 0623 movs r3, 6 ; 6
| | 0x0803f9e8 dff87428 ldr.w r2, [0x08040264] ; [0x8040264:4]=0x2001e7c6
| | 0x0803f9ec 0021 movs r1, 0
| | 0x0803f9ee 0020 movs r0, 0
| | 0x0803f9f0 00f003fb bl c5000_spi0_readreg_maybe
| | 0x0803f9f4 dff86c08 ldr.w r0, [0x08040268] ; [0x8040268:4]=0x2001c380
| | 0x0803f9f8 0088 ldrh r0, [r0]
| | 0x0803f9fa 42f20101 movw r1, 0x2001
| | 0x0803f9fe 8842 cmp r0, r1
| ,==< 0x0803fa00 03d2 bhs 0x803fa0a
| || 0x0803fa02 f021 movs r1, 0xf0 ; 240
| || 0x0803fa04 0120 movs r0, 1 ; 1
| || 0x0803fa06 00f0bdfa bl c5000_spi0_writereg
| `--> 0x0803fa0a dff85c08 ldr.w r0, [0x0804026e] ; [0x804026c:4]=0x8097f91
| | 0x0803fa0e 407a ldrb r0, [r0, 9]
| | 0x0803fa10 8028 cmp r0, 0x80 ; 128
| ,==< 0x0803fa12 09d3 blo 0x803fa28
| || 0x0803fa14 0321 movs r1, 3 ; 3
| || 0x0803fa16 4820 movs r0, 0x48 ; 'H' ; 72
| || 0x0803fa18 00f0b4fa bl c5000_spi0_writereg
| || 0x0803fa1c dff84808 ldr.w r0, [0x0804026c] ; [0x804026c:4]=0x8097f91
| || 0x0803fa20 407a ldrb r0, [r0, 9]
| || 0x0803fa22 d0f17f01 rsbs.w r1, r0, 0x7f
| ,===< 0x0803fa26 08e0 b 0x803fa3a
| |`--> 0x0803fa28 0021 movs r1, 0
| | | 0x0803fa2a 4820 movs r0, 0x48 ; 'H' ; 72
| | | 0x0803fa2c 00f0aafa bl c5000_spi0_writereg
| | | 0x0803fa30 dff83408 ldr.w r0, [0x0804026c] ; [0x804026c:4]=0x8097f91
| | | 0x0803fa34 407a ldrb r0, [r0, 9]
| | | 0x0803fa36 d0f17f01 rsbs.w r1, r0, 0x7f
| `---> 0x0803fa3a c9b2 uxtb r1, r1
| | 0x0803fa3c 4720 movs r0, 0x47 ; 'G' ; 71
| | 0x0803fa3e 00f0a1fa bl c5000_spi0_writereg
| | 0x0803fa42 0122 movs r2, 1 ; 1
| | 0x0803fa44 4ff48071 mov.w r1, 0x100 ; 256
| | 0x0803fa48 dff80408 ldr.w r0, [0x08040254] ; [0x8040254:4]=0x2001e8aa event1_buffer
| | 0x0803fa4c ebf7e1fe bl GPIO_WriteBit
| | 0x0803fa50 2c23 movs r3, 0x2c ; ',' ; 44
| | 0x0803fa52 dff81828 ldr.w r2, [0x08040272] ; [0x8040270:4]=0x2001e8e9
| | 0x0803fa56 1121 movs r1, 0x11 ; 17
| | 0x0803fa58 0020 movs r0, 0
| | 0x0803fa5a 00f0cefa bl c5000_spi0_readreg_maybe
| | 0x0803fa5e dff81008 ldr.w r0, [0x08040276] ; [0x8040274:4]=0x2001e664 event3_mbox_poi
| | 0x0803fa62 0221 movs r1, 2 ; 2
| | 0x0803fa64 0170 strb r1, [r0]
| | 0x0803fa66 dff80818 ldr.w r1, [0x08040276] ; [0x8040274:4]=0x2001e664 event3_mbox_poi
| | 0x0803fa6a dff80808 ldr.w r0, [0x0804027a] ; [0x8040278:4]=0x2001e893
| | 0x0803fa6e 0068 ldr r0, [r0]
| | 0x0803fa70 f1f794fb bl md380_OSMboxPost
| | 0x0803fa74 dff80008 ldr.w r0, [0x0804027c] ; [0x804027c:4]=0x2001e644
| | 0x0803fa78 0321 movs r1, 3 ; 3
| | 0x0803fa7a 0170 strb r1, [r0]
| | 0x0803fa7c dff80408 ldr.w r0, [0x08040288] ; [0x8040288:4]=0x2001dadc md380_radio_config
| | 0x0803fa80 4078 ldrb r0, [r0, 1]
| | 0x0803fa82 10f0fe00 ands r0, r0, 0xfe
| | 0x0803fa86 dff8fc17 ldr.w r1, [0x0804028a] ; [0x8040288:4]=0x2001dadc md380_radio_config
| | 0x0803fa8a 4870 strb r0, [r1, 1]
| | 0x0803fa8c dff8f407 ldr.w r0, [0x08040288] ; [0x8040288:4]=0x2001dadc md380_radio_config
| | 0x0803fa90 4078 ldrb r0, [r0, 1]
| | 0x0803fa92 50f00200 orrs r0, r0, 2
| | 0x0803fa96 dff8ec17 ldr.w r1, [0x0804028a] ; [0x8040288:4]=0x2001dadc md380_radio_config
| | 0x0803fa9a 4870 strb r0, [r1, 1]
| | 0x0803fa9c 2821 movs r1, 0x28 ; '(' ; 40
| | 0x0803fa9e 0020 movs r0, 0
| | 0x0803faa0 00f070fa bl c5000_spi0_writereg
| | 0x0803faa4 0120 movs r0, 1 ; 1
| | 0x0803faa6 f4f705fa bl OSTimeDly
| | 0x0803faaa dff8dc07 ldr.w r0, [0x0804028e] ; [0x804028c:4]=0x80f7f0c
| | 0x0803faae 4168 ldr r1, [r0, 4]
| | 0x0803fab0 c9b2 uxtb r1, r1
| | 0x0803fab2 1420 movs r0, 0x14 ; 20
| | 0x0803fab4 00f066fa bl c5000_spi0_writereg
| | 0x0803fab8 dff8cc07 ldr.w r0, [0x0804028c] ; [0x804028c:4]=0x80f7f0c
| | 0x0803fabc 4068 ldr r0, [r0, 4]
| | 0x0803fabe 010a lsrs r1, r0, 8
| | 0x0803fac0 c9b2 uxtb r1, r1
| | 0x0803fac2 1520 movs r0, 0x15 ; 21
| | 0x0803fac4 00f05efa bl c5000_spi0_writereg
| | 0x0803fac8 dff8bc07 ldr.w r0, [0x0804028c] ; [0x804028c:4]=0x80f7f0c
| | 0x0803facc 4068 ldr r0, [r0, 4]
| | 0x0803face 010c lsrs r1, r0, 0x10
| | 0x0803fad0 c9b2 uxtb r1, r1
| | 0x0803fad2 1620 movs r0, 0x16 ; 22
| | 0x0803fad4 00f056fa bl c5000_spi0_writereg
| | 0x0803fad8 1423 movs r3, 0x14 ; 20
| | 0x0803fada dff8b027 ldr.w r2, [0x08040292] ; [0x8040290:4]=0xf7ffb580
| | 0x0803fade 1021 movs r1, 0x10 ; 16
| | 0x0803fae0 0120 movs r0, 1 ; 1
| | 0x0803fae2 00f08afa bl c5000_spi0_readreg_maybe
| | 0x0803fae6 0a23 movs r3, 0xa ; 10
| | 0x0803fae8 dff8fc27 ldr.w r2, [0x080402ec] ; [0x80402ec:4]=0x80fb008
| | 0x0803faec 3021 movs r1, 0x30 ; '0' ; 48
| | 0x0803faee 0120 movs r0, 1 ; 1
| | 0x0803faf0 00f083fa bl c5000_spi0_readreg_maybe
| | 0x0803faf4 0723 movs r3, 7 ; 7
| | 0x0803faf6 dff8f427 ldr.w r2, [0x080402f2] ; [0x80402f0:4]=0x80fb010
| | 0x0803fafa 4021 movs r1, 0x40 ; '@' ; 64
| | 0x0803fafc 0120 movs r0, 1 ; 1
| | 0x0803fafe 00f07cfa bl c5000_spi0_readreg_maybe
| | 0x0803fb02 0523 movs r3, 5 ; 5
| | 0x0803fb04 dff8e827 ldr.w r2, [0x080402f4] ; [0x80402f4:4]=0x2001de78 struct_channel_info2
| | 0x0803fb08 5021 movs r1, 0x50 ; 'P' ; 80
| | 0x0803fb0a 0120 movs r0, 1 ; 1
| | 0x0803fb0c 00f075fa bl c5000_spi0_readreg_maybe
| | 0x0803fb10 0821 movs r1, 8 ; 8
| | 0x0803fb12 5220 movs r0, 0x52 ; 'R' ; 82
| | 0x0803fb14 00f049fa bl c5000_spi0_writereg_1
| | 0x0803fb18 eb21 movs r1, 0xeb ; 235
| | 0x0803fb1a 5320 movs r0, 0x53 ; 'S' ; 83
| | 0x0803fb1c 00f045fa bl c5000_spi0_writereg_1
| | 0x0803fb20 7821 movs r1, 0x78 ; 'x' ; 120
| | 0x0803fb22 5420 movs r0, 0x54 ; 'T' ; 84
| | 0x0803fb24 00f041fa bl c5000_spi0_writereg_1
| | 0x0803fb28 1e21 movs r1, 0x1e ; 30
| | 0x0803fb2a 4520 movs r0, 0x45 ; 'E' ; 69
| | 0x0803fb2c 00f03dfa bl c5000_spi0_writereg_1
| | 0x0803fb30 5021 movs r1, 0x50 ; 'P' ; 80
| | 0x0803fb32 3720 movs r0, 0x37 ; '7' ; 55
| | 0x0803fb34 00f039fa bl c5000_spi0_writereg_1
| | 0x0803fb38 ff21 movs r1, 0xff ; 255
| | 0x0803fb3a 3520 movs r0, 0x35 ; '5' ; 53
| | 0x0803fb3c 00f035fa bl c5000_spi0_writereg_1
| | 0x0803fb40 0221 movs r1, 2 ; 2
| | 0x0803fb42 3920 movs r0, 0x39 ; '9' ; 57
| | 0x0803fb44 00f01efa bl c5000_spi0_writereg
| | 0x0803fb48 0a21 movs r1, 0xa ; 10
| | 0x0803fb4a 3d20 movs r0, 0x3d ; '=' ; 61
| | 0x0803fb4c 00f01afa bl c5000_spi0_writereg
| | 0x0803fb50 ff21 movs r1, 0xff ; 255
| | 0x0803fb52 8320 movs r0, 0x83 ; 131
| | 0x0803fb54 00f016fa bl c5000_spi0_writereg
| | 0x0803fb58 0021 movs r1, 0
| | 0x0803fb5a 8720 movs r0, 0x87 ; 135
| | 0x0803fb5c 00f012fa bl c5000_spi0_writereg
| | 0x0803fb60 0a21 movs r1, 0xa ; 10
| | 0x0803fb62 6520 movs r0, 0x65 ; 'e' ; 101
| | 0x0803fb64 00f00efa bl c5000_spi0_writereg
| | 0x0803fb68 ff21 movs r1, 0xff ; 255
| | 0x0803fb6a 1d20 movs r0, 0x1d ; 29
| | 0x0803fb6c 00f00afa bl c5000_spi0_writereg
| | 0x0803fb70 f121 movs r1, 0xf1 ; 241
| | 0x0803fb72 1e20 movs r0, 0x1e ; 30
| | 0x0803fb74 00f006fa bl c5000_spi0_writereg
| | 0x0803fb78 dff87807 ldr.w r0, [c5000_some2] ; [0x80402f8:4]=0x218cb580
| | 0x0803fb7c 4078 ldrb r0, [r0, 1]
| | 0x0803fb7e 10f0f001 ands r1, r0, 0xf0
| | 0x0803fb82 1f20 movs r0, 0x1f ; 31
| | 0x0803fb84 00f0fef9 bl c5000_spi0_writereg
| | 0x0803fb88 8c21 movs r1, 0x8c ; 140
| | 0x0803fb8a 0d20 movs r0, 0xd ; 13
| | 0x0803fb8c 00f0faf9 bl c5000_spi0_writereg
| | 0x0803fb90 4421 movs r1, 0x44 ; 'D' ; 68
| | 0x0803fb92 0e20 movs r0, 0xe ; 14
| | 0x0803fb94 00f0f6f9 bl c5000_spi0_writereg
| | 0x0803fb98 c821 movs r1, 0xc8 ; 200
| | 0x0803fb9a 0f20 movs r0, 0xf ; 15
| | 0x0803fb9c 00f0f2f9 bl c5000_spi0_writereg
| | 0x0803fba0 c221 movs r1, 0xc2 ; 194
| | 0x0803fba2 3720 movs r0, 0x37 ; '7' ; 55
| | 0x0803fba4 00f0eef9 bl c5000_spi0_writereg
| | 0x0803fba8 0e21 movs r1, 0xe ; 14
| | 0x0803fbaa 2520 movs r0, 0x25 ; '%' ; 37
| | 0x0803fbac 00f0eaf9 bl c5000_spi0_writereg
| | 0x0803fbb0 fd21 movs r1, 0xfd ; 253
| | 0x0803fbb2 2620 movs r0, 0x26 ; '&' ; 38
| | 0x0803fbb4 00f0e6f9 bl c5000_spi0_writereg
| | 0x0803fbb8 0021 movs r1, 0
| | 0x0803fbba 6420 movs r0, 0x64 ; 'd' ; 100
| | 0x0803fbbc 00f0e2f9 bl c5000_spi0_writereg
| | 0x0803fbc0 dff83007 ldr.w r0, [c5000_some2] ; [0x80402f8:4]=0x218cb580
| | 0x0803fbc4 8078 ldrb r0, [r0, 2]
| | 0x0803fbc6 c0f30110 ubfx r0, r0, 4, 2
| | 0x0803fbca c0b2 uxtb r0, r0
| | 0x0803fbcc 0228 cmp r0, 2 ; 2
| ,==< 0x0803fbce 2bd1 bne 0x803fc28
| || 0x0803fbd0 04a8 add r0, sp, 0x10
| || 0x0803fbd2 f7f72df8 bl aes_36c30
| || 0x0803fbd6 0020 movs r0, 0
| ,===< 0x0803fbd8 07e0 b 0x803fbea
| .----> 0x0803fbda c0b2 uxtb r0, r0
| |||| 0x0803fbdc 00a9 add r1, sp, 0
| |||| 0x0803fbde c0b2 uxtb r0, r0
| |||| 0x0803fbe0 dff8f027 ldr.w r2, [0x080403d8] ; [0x80403d8:4]=0x2001e858
| |||| 0x0803fbe4 825c ldrb r2, [r0, r2]
| |||| 0x0803fbe6 4254 strb r2, [r0, r1]
| |||| 0x0803fbe8 401c adds r0, r0, 1
| |`---> 0x0803fbea c0b2 uxtb r0, r0
| | || 0x0803fbec 1028 cmp r0, 0x10 ; 16
| `====< 0x0803fbee f4d3 blo 0x803fbda
| || 0x0803fbf0 00a8 add r0, sp, 0
| || 0x0803fbf2 f7f721f8 bl aes_cipher
| || 0x0803fbf6 0721 movs r1, 7 ; 7
| || 0x0803fbf8 00a8 add r0, sp, 0
| || 0x0803fbfa f4f77bfa bl 0x80340f4
| || 0x0803fbfe 0721 movs r1, 7 ; 7
| || 0x0803fc00 00a8 add r0, sp, 0
| || 0x0803fc02 f4f789fa bl 0x8034118
| || 0x0803fc06 0021 movs r1, 0
| || 0x0803fc08 2420 movs r0, 0x24 ; '$' ; 36
| || 0x0803fc0a 00f0cef9 bl c5000_spi0_writereg_1
| || 0x0803fc0e 0021 movs r1, 0
| || 0x0803fc10 2520 movs r0, 0x25 ; '%' ; 37
| || 0x0803fc12 00f0caf9 bl c5000_spi0_writereg_1
| || 0x0803fc16 0021 movs r1, 0
| || 0x0803fc18 2620 movs r0, 0x26 ; '&' ; 38
| || 0x0803fc1a 00f0c6f9 bl c5000_spi0_writereg_1
| || 0x0803fc1e 0021 movs r1, 0
| || 0x0803fc20 2720 movs r0, 0x27 ; ''' ; 39
| || 0x0803fc22 00f0c2f9 bl c5000_spi0_writereg_1
| ,===< 0x0803fc26 a0e0 b 0x803fd6a
| |`--> 0x0803fc28 dff83006 ldr.w r0, [0x08040260] ; [0x8040260:4]=0x8097f80
| | | 0x0803fc2c 0078 ldrb r0, [r0]
| | | 0x0803fc2e 0128 cmp r0, 1 ; 1
| |,==< 0x0803fc30 58d1 bne 0x803fce4
| ||| 0x0803fc32 dff8c006 ldr.w r0, [0x080402fa] ; [0x80402f8:4]=0x218cb580
| ||| 0x0803fc36 8078 ldrb r0, [r0, 2]
| ||| 0x0803fc38 c0f30110 ubfx r0, r0, 4, 2
| ||| 0x0803fc3c c0b2 uxtb r0, r0
| ||| 0x0803fc3e 0128 cmp r0, 1 ; 1
| ,====< 0x0803fc40 2dd1 bne 0x803fc9e
| |||| 0x0803fc42 dff89407 ldr.w r0, [0x080403de] ; [0x80403dc:4]=0xf8dfb570
| |||| 0x0803fc46 0078 ldrb r0, [r0]
| |||| 0x0803fc48 8df80000 strb.w r0, [sp]
| |||| 0x0803fc4c dff88807 ldr.w r0, [func_403dc] ; [0x80403dc:4]=0xf8dfb570
| |||| 0x0803fc50 4078 ldrb r0, [r0, 1]
| |||| 0x0803fc52 8df80100 strb.w r0, [sp, 1]
| |||| 0x0803fc56 dff88007 ldr.w r0, [0x080403de] ; [0x80403dc:4]=0xf8dfb570
| |||| 0x0803fc5a 0078 ldrb r0, [r0]
| |||| 0x0803fc5c c043 mvns r0, r0
| |||| 0x0803fc5e 8df80200 strb.w r0, [sp, 2]
| |||| 0x0803fc62 dff87407 ldr.w r0, [0x080403de] ; [0x80403dc:4]=0xf8dfb570
| |||| 0x0803fc66 4078 ldrb r0, [r0, 1]
| |||| 0x0803fc68 8df80300 strb.w r0, [sp, 3]
| |||| 0x0803fc6c dff86807 ldr.w r0, [func_403dc] ; [0x80403dc:4]=0xf8dfb570
| |||| 0x0803fc70 0078 ldrb r0, [r0]
| |||| 0x0803fc72 8df80400 strb.w r0, [sp, 4]
| |||| 0x0803fc76 dff86007 ldr.w r0, [0x080403de] ; [0x80403dc:4]=0xf8dfb570
| |||| 0x0803fc7a 4078 ldrb r0, [r0, 1]
| |||| 0x0803fc7c c043 mvns r0, r0
| |||| 0x0803fc7e 8df80500 strb.w r0, [sp, 5]
| |||| 0x0803fc82 dff85407 ldr.w r0, [0x080403de] ; [0x80403dc:4]=0xf8dfb570
| |||| 0x0803fc86 0078 ldrb r0, [r0]
| |||| 0x0803fc88 8df80600 strb.w r0, [sp, 6]
| |||| 0x0803fc8c 0721 movs r1, 7 ; 7
| |||| 0x0803fc8e 00a8 add r0, sp, 0
| |||| 0x0803fc90 f4f730fa bl 0x80340f4
| |||| 0x0803fc94 0721 movs r1, 7 ; 7
| |||| 0x0803fc96 00a8 add r0, sp, 0
| |||| 0x0803fc98 f4f73efa bl 0x8034118
| ,=====< 0x0803fc9c 11e0 b 0x803fcc2
| |`----> 0x0803fc9e 0020 movs r0, 0
| |,====< 0x0803fca0 04e0 b 0x803fcac
| .------> 0x0803fca2 c0b2 uxtb r0, r0
| |||||| 0x0803fca4 00a9 add r1, sp, 0
| |||||| 0x0803fca6 0022 movs r2, 0
| |||||| 0x0803fca8 4254 strb r2, [r0, r1]
| |||||| 0x0803fcaa 401c adds r0, r0, 1
| ||`----> 0x0803fcac c0b2 uxtb r0, r0
| || ||| 0x0803fcae 0728 cmp r0, 7 ; 7
| `======< 0x0803fcb0 f7d3 blo 0x803fca2
| | ||| 0x0803fcb2 0721 movs r1, 7 ; 7
| | ||| 0x0803fcb4 00a8 add r0, sp, 0
| | ||| 0x0803fcb6 f4f71dfa bl 0x80340f4
| | ||| 0x0803fcba 0721 movs r1, 7 ; 7
| | ||| 0x0803fcbc 00a8 add r0, sp, 0
| | ||| 0x0803fcbe f4f72bfa bl 0x8034118
| `-----> 0x0803fcc2 0021 movs r1, 0
| ||| 0x0803fcc4 2420 movs r0, 0x24 ; '$' ; 36
| ||| 0x0803fcc6 00f070f9 bl c5000_spi0_writereg_1
| ||| 0x0803fcca 0021 movs r1, 0
| ||| 0x0803fccc 2520 movs r0, 0x25 ; '%' ; 37
| ||| 0x0803fcce 00f06cf9 bl c5000_spi0_writereg_1
| ||| 0x0803fcd2 0021 movs r1, 0
| ||| 0x0803fcd4 2620 movs r0, 0x26 ; '&' ; 38
| ||| 0x0803fcd6 00f068f9 bl c5000_spi0_writereg_1
| ||| 0x0803fcda 0021 movs r1, 0
| ||| 0x0803fcdc 2720 movs r0, 0x27 ; ''' ; 39
| ||| 0x0803fcde 00f064f9 bl c5000_spi0_writereg_1
| ,====< 0x0803fce2 42e0 b 0x803fd6a
| ||`--> 0x0803fce4 dff80c06 ldr.w r0, [c5000_some2] ; [0x80402f8:4]=0x218cb580
| || | 0x0803fce8 8078 ldrb r0, [r0, 2]
| || | 0x0803fcea c0f30110 ubfx r0, r0, 4, 2
| || | 0x0803fcee c0b2 uxtb r0, r0
| || | 0x0803fcf0 0128 cmp r0, 1 ; 1
| ||,==< 0x0803fcf2 18d1 bne 0x803fd26
| |||| 0x0803fcf4 dff8e006 ldr.w r0, [func_403dc] ; [0x80403dc:4]=0xf8dfb570
| |||| 0x0803fcf8 0178 ldrb r1, [r0]
| |||| 0x0803fcfa 2420 movs r0, 0x24 ; '$' ; 36
| |||| 0x0803fcfc 00f055f9 bl c5000_spi0_writereg_1
| |||| 0x0803fd00 dff8d406 ldr.w r0, [func_403dc] ; [0x80403dc:4]=0xf8dfb570
| |||| 0x0803fd04 4178 ldrb r1, [r0, 1]
| |||| 0x0803fd06 2520 movs r0, 0x25 ; '%' ; 37
| |||| 0x0803fd08 00f04ff9 bl c5000_spi0_writereg_1
| |||| 0x0803fd0c dff8c806 ldr.w r0, [func_403dc] ; [0x80403dc:4]=0xf8dfb570
| |||| 0x0803fd10 0178 ldrb r1, [r0]
| |||| 0x0803fd12 2620 movs r0, 0x26 ; '&' ; 38
| |||| 0x0803fd14 00f049f9 bl c5000_spi0_writereg_1
| |||| 0x0803fd18 dff8bc06 ldr.w r0, [func_403dc] ; [0x80403dc:4]=0xf8dfb570
| |||| 0x0803fd1c 4178 ldrb r1, [r0, 1]
| |||| 0x0803fd1e 2720 movs r0, 0x27 ; ''' ; 39
| |||| 0x0803fd20 00f043f9 bl c5000_spi0_writereg_1
| ,=====< 0x0803fd24 0fe0 b 0x803fd46
| |||`--> 0x0803fd26 0021 movs r1, 0
| ||| | 0x0803fd28 2420 movs r0, 0x24 ; '$' ; 36
| ||| | 0x0803fd2a 00f03ef9 bl c5000_spi0_writereg_1
| ||| | 0x0803fd2e 0021 movs r1, 0
| ||| | 0x0803fd30 2520 movs r0, 0x25 ; '%' ; 37
| ||| | 0x0803fd32 00f03af9 bl c5000_spi0_writereg_1
| ||| | 0x0803fd36 0021 movs r1, 0
| ||| | 0x0803fd38 2620 movs r0, 0x26 ; '&' ; 38
| ||| | 0x0803fd3a 00f036f9 bl c5000_spi0_writereg_1
| ||| | 0x0803fd3e 0021 movs r1, 0
| ||| | 0x0803fd40 2720 movs r0, 0x27 ; ''' ; 39
| ||| | 0x0803fd42 00f032f9 bl c5000_spi0_writereg_1
| `-----> 0x0803fd46 0020 movs r0, 0
| ||,==< 0x0803fd48 04e0 b 0x803fd54
| .-----> 0x0803fd4a c0b2 uxtb r0, r0
| ||||| 0x0803fd4c 00a9 add r1, sp, 0
| ||||| 0x0803fd4e 0022 movs r2, 0
| ||||| 0x0803fd50 4254 strb r2, [r0, r1]
| ||||| 0x0803fd52 401c adds r0, r0, 1
| |||`--> 0x0803fd54 c0b2 uxtb r0, r0
| ||| | 0x0803fd56 0728 cmp r0, 7 ; 7
| `=====< 0x0803fd58 f7d3 blo 0x803fd4a
| || | 0x0803fd5a 0721 movs r1, 7 ; 7
| || | 0x0803fd5c 00a8 add r0, sp, 0
| || | 0x0803fd5e f4f7c9f9 bl 0x80340f4
| || | 0x0803fd62 0721 movs r1, 7 ; 7
| || | 0x0803fd64 00a8 add r0, sp, 0
| || | 0x0803fd66 f4f7d7f9 bl 0x8034118
| ``---> 0x0803fd6a 1921 movs r1, 0x19 ; 25
| | 0x0803fd6c 8120 movs r0, 0x81 ; 129
| | 0x0803fd6e 00f009f9 bl c5000_spi0_writereg
| | 0x0803fd72 0021 movs r1, 0
| | 0x0803fd74 8520 movs r0, 0x85 ; 133
| | 0x0803fd76 00f005f9 bl c5000_spi0_writereg
| | 0x0803fd7a dff80805 ldr.w r0, [0x0804028a] ; [0x8040288:4]=0x2001dadc md380_radio_config
| | 0x0803fd7e 4078 ldrb r0, [r0, 1]
| | 0x0803fd80 0006 lsls r0, r0, 0x18
| ,==< 0x0803fd82 06d4 bmi 0x803fd92
| || 0x0803fd84 0122 movs r2, 1 ; 1
| || 0x0803fd86 4ff48061 mov.w r1, 0x400 ; 1024
| || 0x0803fd8a dff8c404 ldr.w r0, [0x08040256] ; [0x8040254:4]=0x2001e8aa event1_buffer
| || 0x0803fd8e ebf740fd bl GPIO_WriteBit
| `--> 0x0803fd92 0022 movs r2, 0
| | 0x0803fd94 0421 movs r1, 4 ; 4
| | 0x0803fd96 dff8d408 ldr.w r0, [0x08040672] ; [0x8040670:4]=0xb089b530
| | 0x0803fd9a ebf73afd bl GPIO_WriteBit
| | 0x0803fd9e 0120 movs r0, 1 ; 1
| | 0x0803fda0 07f0d2f8 bl func_46f48
| `-> 0x0803fda4 09b0 add sp, 0x24
\ 0x0803fda6 00bd pop {pc}
/ (fcn) func_3fda8 476
| Caller: func_4fe14_monster_accessing_C5000 c5000_wr_60_5
| func_3fda8 ();
| 0x0803fda8 80b5 push {r7, lr}
| 0x0803fdaa dff82804 ldr.w r0, [0x080401da] ; [0x80401d8:4]=0x40021000 io_GPIOE
| 0x0803fdae 0078 ldrb r0, [r0]
| 0x0803fdb0 4228 cmp r0, 0x42 ; 'B' ; 66
| ,=< 0x0803fdb2 40f0e680 bne.w 0x803ff82
| | 0x0803fdb6 0022 movs r2, 0
| | 0x0803fdb8 4021 movs r1, 0x40 ; '@' ; 64
| | 0x0803fdba dff81c04 ldr.w r0, [0x080401de] ; [0x80401dc:4]=0x2144b580
| | 0x0803fdbe ebf728fd bl GPIO_WriteBit
| | 0x0803fdc2 dff83005 ldr.w r0, [0x080402fa] ; [0x80402f8:4]=0x218cb580
| | 0x0803fdc6 0078 ldrb r0, [r0]
| | 0x0803fdc8 c0f38100 ubfx r0, r0, 2, 2
| | 0x0803fdcc c0b2 uxtb r0, r0
| | 0x0803fdce 0028 cmp r0, 0
| ,==< 0x0803fdd0 07d1 bne 0x803fde2
| || 0x0803fdd2 0022 movs r2, 0
| || 0x0803fdd4 4ff40051 mov.w r1, 0x2000
| || 0x0803fdd8 dff87404 ldr.w r0, [0x08040254] ; [0x8040254:4]=0x2001e8aa event1_buffer
| || 0x0803fddc ebf719fd bl GPIO_WriteBit
| ,===< 0x0803fde0 06e0 b 0x803fdf0
| |`--> 0x0803fde2 0122 movs r2, 1 ; 1
| | | 0x0803fde4 4ff40051 mov.w r1, 0x2000
| | | 0x0803fde8 dff86404 ldr.w r0, [0x08040254] ; [0x8040254:4]=0x2001e8aa event1_buffer
| | | 0x0803fdec ebf711fd bl GPIO_WriteBit
| `---> 0x0803fdf0 0020 movs r0, 0
| | 0x0803fdf2 07f0a9f8 bl func_46f48
| | 0x0803fdf6 8021 movs r1, 0x80 ; 128
| | 0x0803fdf8 0a20 movs r0, 0xa ; 10
| | 0x0803fdfa 00f0c3f8 bl c5000_spi0_writereg
| | 0x0803fdfe 2821 movs r1, 0x28 ; '(' ; 40
| | 0x0803fe00 0b20 movs r0, 0xb ; 11
| | 0x0803fe02 00f0bff8 bl c5000_spi0_writereg
| | 0x0803fe06 3321 movs r1, 0x33 ; '3' ; 51
| | 0x0803fe08 0c20 movs r0, 0xc ; 12
| | 0x0803fe0a 00f0bbf8 bl c5000_spi0_writereg
| | 0x0803fe0e 0120 movs r0, 1 ; 1
| | 0x0803fe10 f4f750f8 bl OSTimeDly
| | 0x0803fe14 0021 movs r1, 0
| | 0x0803fe16 0a20 movs r0, 0xa ; 10
| | 0x0803fe18 00f0b4f8 bl c5000_spi0_writereg
| | 0x0803fe1c 3321 movs r1, 0x33 ; '3' ; 51
| | 0x0803fe1e b920 movs r0, 0xb9 ; 185
| | 0x0803fe20 00f0b0f8 bl c5000_spi0_writereg
| | 0x0803fe24 2221 movs r1, 0x22 ; '"' ; 34
| | 0x0803fe26 ba20 movs r0, 0xba ; 186
| | 0x0803fe28 00f0acf8 bl c5000_spi0_writereg
| | 0x0803fe2c 1121 movs r1, 0x11 ; 17
| | 0x0803fe2e bb20 movs r0, 0xbb ; 187
| | 0x0803fe30 00f0a8f8 bl c5000_spi0_writereg
| | 0x0803fe34 8021 movs r1, 0x80 ; 128
| | 0x0803fe36 1020 movs r0, 0x10 ; 16
| | 0x0803fe38 00f0a4f8 bl c5000_spi0_writereg
| | 0x0803fe3c 0e21 movs r1, 0xe ; 14
| | 0x0803fe3e 0720 movs r0, 7 ; 7
| | 0x0803fe40 00f0a0f8 bl c5000_spi0_writereg
| | 0x0803fe44 1021 movs r1, 0x10 ; 16
| | 0x0803fe46 0820 movs r0, 8 ; 8
| | 0x0803fe48 00f09cf8 bl c5000_spi0_writereg
| | 0x0803fe4c 0021 movs r1, 0
| | 0x0803fe4e 0920 movs r0, 9 ; 9
| | 0x0803fe50 00f098f8 bl c5000_spi0_writereg
| | 0x0803fe54 0623 movs r3, 6 ; 6
| | 0x0803fe56 dff80824 ldr.w r2, [0x08040266] ; [0x8040264:4]=0x2001e7c6
| | 0x0803fe5a 0021 movs r1, 0
| | 0x0803fe5c 0020 movs r0, 0
| | 0x0803fe5e 00f0ccf8 bl c5000_spi0_readreg_maybe
| | 0x0803fe62 dff80004 ldr.w r0, [0x0804026a] ; [0x8040268:4]=0x2001c380
| | 0x0803fe66 0088 ldrh r0, [r0]
| | 0x0803fe68 42f20101 movw r1, 0x2001
| | 0x0803fe6c 8842 cmp r0, r1
| ,==< 0x0803fe6e 03d2 bhs 0x803fe78
| || 0x0803fe70 f021 movs r1, 0xf0 ; 240
| || 0x0803fe72 0120 movs r0, 1 ; 1
| || 0x0803fe74 00f086f8 bl c5000_spi0_writereg
| `--> 0x0803fe78 0021 movs r1, 0
| | 0x0803fe7a 0620 movs r0, 6 ; 6
| | 0x0803fe7c 00f082f8 bl c5000_spi0_writereg
| | 0x0803fe80 2c23 movs r3, 0x2c ; ',' ; 44
| | 0x0803fe82 dff8e823 ldr.w r2, [0x08040272] ; [0x8040270:4]=0x2001e8e9
| | 0x0803fe86 1121 movs r1, 0x11 ; 17
| | 0x0803fe88 0020 movs r0, 0
| | 0x0803fe8a 00f0b6f8 bl c5000_spi0_readreg_maybe
| | 0x0803fe8e dff8d803 ldr.w r0, [0x0804026e] ; [0x804026c:4]=0x8097f91
| | 0x0803fe92 407a ldrb r0, [r0, 9]
| | 0x0803fe94 8028 cmp r0, 0x80 ; 128
| ,==< 0x0803fe96 09d3 blo 0x803feac
| || 0x0803fe98 0321 movs r1, 3 ; 3
| || 0x0803fe9a 4820 movs r0, 0x48 ; 'H' ; 72
| || 0x0803fe9c 00f072f8 bl c5000_spi0_writereg
| || 0x0803fea0 dff8c403 ldr.w r0, [0x0804026c] ; [0x804026c:4]=0x8097f91
| || 0x0803fea4 407a ldrb r0, [r0, 9]
| || 0x0803fea6 d0f17f01 rsbs.w r1, r0, 0x7f
| ,===< 0x0803feaa 08e0 b 0x803febe
| |`--> 0x0803feac 0021 movs r1, 0
| | | 0x0803feae 4820 movs r0, 0x48 ; 'H' ; 72
| | | 0x0803feb0 00f068f8 bl c5000_spi0_writereg
| | | 0x0803feb4 dff8b003 ldr.w r0, [0x0804026c] ; [0x804026c:4]=0x8097f91
| | | 0x0803feb8 407a ldrb r0, [r0, 9]
| | | 0x0803feba d0f17f01 rsbs.w r1, r0, 0x7f
| `---> 0x0803febe c9b2 uxtb r1, r1
| | 0x0803fec0 4720 movs r0, 0x47 ; 'G' ; 71
| | 0x0803fec2 00f05ff8 bl c5000_spi0_writereg
| | 0x0803fec6 0122 movs r2, 1 ; 1
| | 0x0803fec8 4ff48071 mov.w r1, 0x100 ; 256
| | 0x0803fecc dff88003 ldr.w r0, [0x08040254] ; [0x8040254:4]=0x2001e8aa event1_buffer
| | 0x0803fed0 ebf79ffc bl GPIO_WriteBit
| | ;-- c5000_init_lowregs:
| | 0x0803fed4 8c21 movs r1, 0x8c ; 140
| | 0x0803fed6 0d20 movs r0, 0xd ; 13
| | 0x0803fed8 00f054f8 bl c5000_spi0_writereg
| | 0x0803fedc 4421 movs r1, 0x44 ; 'D' ; 68
| | 0x0803fede 0e20 movs r0, 0xe ; 14
| | 0x0803fee0 00f050f8 bl c5000_spi0_writereg
| | 0x0803fee4 c821 movs r1, 0xc8 ; 200
| | 0x0803fee6 0f20 movs r0, 0xf ; 15
| | 0x0803fee8 00f04cf8 bl c5000_spi0_writereg
| | 0x0803feec 0e21 movs r1, 0xe ; 14
| | 0x0803feee 2520 movs r0, 0x25 ; '%' ; 37
| | 0x0803fef0 00f048f8 bl c5000_spi0_writereg
| | 0x0803fef4 fe21 movs r1, 0xfe ; 254
| | 0x0803fef6 2620 movs r0, 0x26 ; '&' ; 38
| | 0x0803fef8 00f044f8 bl c5000_spi0_writereg
| | 0x0803fefc ff21 movs r1, 0xff ; 255
| | 0x0803fefe 8320 movs r0, 0x83 ; 131
| | 0x0803ff00 00f040f8 bl c5000_spi0_writereg
| | 0x0803ff04 0021 movs r1, 0
| | 0x0803ff06 8720 movs r0, 0x87 ; 135
| | 0x0803ff08 00f03cf8 bl c5000_spi0_writereg
| | 0x0803ff0c 0021 movs r1, 0
| | 0x0803ff0e 8120 movs r0, 0x81 ; 129
| | 0x0803ff10 00f038f8 bl c5000_spi0_writereg
| | 0x0803ff14 0021 movs r1, 0
| | ;-- c5000_wr_60_1:
| | 0x0803ff16 6020 movs r0, 0x60 ; '`' ; 96
| | 0x0803ff18 00f034f8 bl c5000_spi0_writereg
| | 0x0803ff1c dff85003 ldr.w r0, [0x08040274] ; [0x8040274:4]=0x2001e664 event3_mbox_poi
| | 0x0803ff20 0221 movs r1, 2 ; 2
| | 0x0803ff22 0170 strb r1, [r0]
| | 0x0803ff24 dff84813 ldr.w r1, [0x08040274] ; [0x8040274:4]=0x2001e664 event3_mbox_poi
| | 0x0803ff28 dff84803 ldr.w r0, [0x08040278] ; [0x8040278:4]=0x2001e893
| | 0x0803ff2c 0068 ldr r0, [r0]
| | 0x0803ff2e f1f735f9 bl md380_OSMboxPost
| | 0x0803ff32 dff84403 ldr.w r0, [0x0804027e] ; [0x804027c:4]=0x2001e644
| | 0x0803ff36 0321 movs r1, 3 ; 3
| | 0x0803ff38 0170 strb r1, [r0]
| | 0x0803ff3a dff84803 ldr.w r0, [0x0804028a] ; [0x8040288:4]=0x2001dadc md380_radio_config
| | 0x0803ff3e 4078 ldrb r0, [r0, 1]
| | 0x0803ff40 10f0fe00 ands r0, r0, 0xfe
| | 0x0803ff44 dff83c13 ldr.w r1, [0x08040288] ; [0x8040288:4]=0x2001dadc md380_radio_config
| | 0x0803ff48 4870 strb r0, [r1, 1]
| | 0x0803ff4a dff83803 ldr.w r0, [0x0804028a] ; [0x8040288:4]=0x2001dadc md380_radio_config
| | 0x0803ff4e 4078 ldrb r0, [r0, 1]
| | 0x0803ff50 50f00200 orrs r0, r0, 2
| | 0x0803ff54 dff82c13 ldr.w r1, [0x08040288] ; [0x8040288:4]=0x2001dadc md380_radio_config
| | 0x0803ff58 4870 strb r0, [r1, 1]
| | 0x0803ff5a 2821 movs r1, 0x28 ; '(' ; 40
| | 0x0803ff5c 0020 movs r0, 0
| | 0x0803ff5e 00f011f8 bl c5000_spi0_writereg
| | 0x0803ff62 0120 movs r0, 1 ; 1
| | 0x0803ff64 f3f7a6ff bl OSTimeDly
| | 0x0803ff68 0022 movs r2, 0
| | 0x0803ff6a 4ff48061 mov.w r1, 0x400 ; 1024
| | 0x0803ff6e dff8e002 ldr.w r0, [0x08040256] ; [0x8040254:4]=0x2001e8aa event1_buffer
| | 0x0803ff72 ebf74efc bl GPIO_WriteBit
| | 0x0803ff76 0122 movs r2, 1 ; 1
| | 0x0803ff78 0421 movs r1, 4 ; 4
| | 0x0803ff7a dff8f006 ldr.w r0, [0x08040672] ; [0x8040670:4]=0xb089b530
| | 0x0803ff7e ebf748fc bl GPIO_WriteBit
\ `-> 0x0803ff82 01bd pop {r0, pc}
/ (fcn) func_4005c 2
| Caller: c5000_some2 c5000_some3
| func_4005c ();
\ 0x0804005c 70b5 push {r4, r5, r6, lr}
/ (fcn) func_401dc 2
| Caller: func_320fe
| func_401dc ();
\ 0x080401dc 80b5 push {r7, lr}
/ (fcn) func_40224 2
| Caller: func_320fe
| func_40224 ();
\ 0x08040224 80b5 push {r7, lr}
/ (fcn) func_403dc 2
| Caller: c5000_wr_60_3
| func_403dc ();
\ 0x080403dc 70b5 push {r4, r5, r6, lr}
/ (fcn) func_404dc 2
| Caller: c5000_wr_60_3 func_3f5cc
| func_404dc ();
\ 0x080404dc 2de9 invalid
/ (fcn) func_43490_wr_C5000 68
| Caller: func_3da68 func_3dbf0
| func_43490_wr_C5000 ();
| 0x08043490 80b5 push {r7, lr}
| 0x08043492 0321 movs r1, 3 ; 3
| 0x08043494 4020 movs r0, 0x40 ; '@' ; 64
| 0x08043496 fcf775fd bl c5000_spi0_writereg
| 0x0804349a 2021 movs r1, 0x20 ; 32
| 0x0804349c 4120 movs r0, 0x41 ; 'A' ; 65
| 0x0804349e fcf771fd bl c5000_spi0_writereg
| 0x080434a2 0021 movs r1, 0
| 0x080434a4 4120 movs r0, 0x41 ; 'A' ; 65
| 0x080434a6 fcf76dfd bl c5000_spi0_writereg
| 0x080434aa 4321 movs r1, 0x43 ; 'C' ; 67
| 0x080434ac 4020 movs r0, 0x40 ; '@' ; 64
| 0x080434ae fcf769fd bl c5000_spi0_writereg
| 0x080434b2 4021 movs r1, 0x40 ; '@' ; 64
| 0x080434b4 4120 movs r0, 0x41 ; 'A' ; 65
| 0x080434b6 fcf765fd bl c5000_spi0_writereg
| 0x080434ba ff21 movs r1, 0xff ; 255
| 0x080434bc 8320 movs r0, 0x83 ; 131
| 0x080434be fcf761fd bl c5000_spi0_writereg
| 0x080434c2 cd48 ldr r0, [0x080437fa] ; [0x80437f8:4]=0x2001e8aa event1_buffer
| 0x080434c4 0121 movs r1, 1 ; 1
| 0x080434c6 0170 strb r1, [r0]
| 0x080434c8 cb49 ldr r1, [0x080437f8] ; [0x80437f8:4]=0x2001e8aa event1_buffer
| 0x080434ca cc48 ldr r0, [0x080437fe] ; [0x80437fc:4]=0x2001e65c event1_mbox_poi_radio
| 0x080434cc 0068 ldr r0, [r0]
| 0x080434ce edf765fe bl md380_OSMboxPost
\ 0x080434d2 01bd pop {r0, pc}
/ (fcn) func_43a18 106
| Caller: func_47ab6 func_47312 func_49ca8 SomethingWithGPIOC_TIM8_TIM7
| func_43a18 ();
| 0x08043a18 0022 movs r2, 0
| 0x08043a1a 0388 ldrh r3, [r0]
| 0x08043a1c 1a00 movs r2, r3
| 0x08043a1e b14b ldr r3, [0x08043ce6] ; [0x8043ce4:4]=0x40010000 io_TIM1
| 0x08043a20 9842 cmp r0, r3
| ,=< 0x08043a22 0ed0 beq 0x8043a42
| | 0x08043a24 b54b ldr r3, [0x08043cfc] ; [0x8043cfc:4]=0x40010400 io_TIM8
| | 0x08043a26 9842 cmp r0, r3
| ,==< 0x08043a28 0bd0 beq 0x8043a42
| || 0x08043a2a b0f1804f cmp.w r0, 0x40000000 ; io_TIM2
| ,===< 0x08043a2e 08d0 beq 0x8043a42
| ||| 0x08043a30 ad4b ldr r3, [0x08043ce8] ; [0x8043ce8:4]=0x40000400 io_TIM3
| ||| 0x08043a32 9842 cmp r0, r3
| ,====< 0x08043a34 05d0 beq 0x8043a42
| |||| 0x08043a36 ad4b ldr r3, [0x08043cee] ; [0x8043cec:4]=0x40000800 io_TIM4
| |||| 0x08043a38 9842 cmp r0, r3
| ,=====< 0x08043a3a 02d0 beq 0x8043a42
| ||||| 0x08043a3c ac4b ldr r3, [0x08043cf0] ; [0x8043cf0:4]=0x40000c00 io_TIM5
| ||||| 0x08043a3e 9842 cmp r0, r3
| ,======< 0x08043a40 04d1 bne 0x8043a4c
| |`````-> 0x08043a42 4ff68f73 movw r3, 0xff8f
| | 0x08043a46 1a40 ands r2, r3
| | 0x08043a48 4b88 ldrh r3, [r1, 2]
| | 0x08043a4a 1a43 orrs r2, r3
| `------> 0x08043a4c a94b ldr r3, [0x08043cf4] ; [0x8043cf4:4]=0x40001000 io_TIM6
| 0x08043a4e 9842 cmp r0, r3
| ,=< 0x08043a50 07d0 beq 0x8043a62
| | 0x08043a52 a94b ldr r3, [0x08043cfa] ; [0x8043cf8:4]=0x40001400 io_TIM7
| | 0x08043a54 9842 cmp r0, r3
| ,==< 0x08043a56 04d0 beq 0x8043a62
| || 0x08043a58 4ff6ff43 movw r3, 0xfcff
| || 0x08043a5c 1a40 ands r2, r3
| || 0x08043a5e 0b89 ldrh r3, [r1, 8]
| || 0x08043a60 1a43 orrs r2, r3
| ``-> 0x08043a62 0280 strh r2, [r0]
| 0x08043a64 4a68 ldr r2, [r1, 4]
| 0x08043a66 c262 str r2, [r0, 0x2c]
| 0x08043a68 0a88 ldrh r2, [r1]
| 0x08043a6a 0285 strh r2, [r0, 0x28]
| 0x08043a6c 9d4a ldr r2, [0x08043ce4] ; [0x8043ce4:4]=0x40010000 io_TIM1
| 0x08043a6e 9042 cmp r0, r2
| ,=< 0x08043a70 02d0 beq 0x8043a78
| | 0x08043a72 a24a ldr r2, [0x08043cfe] ; [0x8043cfc:4]=0x40010400 io_TIM8
| | 0x08043a74 9042 cmp r0, r2
| ,==< 0x08043a76 01d1 bne 0x8043a7c
| |`-> 0x08043a78 897a ldrb r1, [r1, 0xa]
| | 0x08043a7a 0186 strh r1, [r0, 0x30]
| `--> 0x08043a7c 0121 movs r1, 1 ; 1
| 0x08043a7e 8182 strh r1, [r0, 0x14]
\ 0x08043a80 7047 bx lr
/ (fcn) func_43a82 24
| Caller: func_47312
| func_43a82 ();
| 0x08043a82 5ff0ff31 movs.w r1, -1 ; -1
| 0x08043a86 4160 str r1, [r0, 4]
| 0x08043a88 0021 movs r1, 0
| 0x08043a8a 0180 strh r1, [r0]
| 0x08043a8c 0021 movs r1, 0
| 0x08043a8e 0181 strh r1, [r0, 8]
| 0x08043a90 0021 movs r1, 0
| 0x08043a92 4180 strh r1, [r0, 2]
| 0x08043a94 0021 movs r1, 0
| 0x08043a96 8172 strb r1, [r0, 0xa]
\ 0x08043a98 7047 bx lr
/ (fcn) func_43a9a 6
| Caller: func_49ca8
| func_43a9a ();
| 0x08043a9a 0185 strh r1, [r0, 0x28]
| 0x08043a9c 8282 strh r2, [r0, 0x14]
\ 0x08043a9e 7047 bx lr
/ (fcn) func_43aac 28
| Caller: func_47312
| func_43aac ();
| 0x08043aac c9b2 uxtb r1, r1
| 0x08043aae 0029 cmp r1, 0
| ,=< 0x08043ab0 04d0 beq 0x8043abc
| | 0x08043ab2 0188 ldrh r1, [r0]
| | 0x08043ab4 51f08001 orrs r1, r1, 0x80
| | 0x08043ab8 0180 strh r1, [r0]
| ,==< 0x08043aba 04e0 b 0x8043ac6
| |`-> 0x08043abc 0188 ldrh r1, [r0]
| | 0x08043abe 4ff67f72 movw r2, 0xff7f
| | 0x08043ac2 1140 ands r1, r2
| | 0x08043ac4 0180 strh r1, [r0]
\ `--> 0x08043ac6 7047 bx lr
/ (fcn) func_43b62 140
| Caller: func_47312
| func_43b62 ();
| 0x08043b62 70b4 push {r4, r5, r6}
| 0x08043b64 0023 movs r3, 0
| 0x08043b66 0024 movs r4, 0
| 0x08043b68 0022 movs r2, 0
| 0x08043b6a 058c ldrh r5, [r0, 0x20]
| 0x08043b6c 4ff6ef76 movw r6, 0xffef
| 0x08043b70 3540 ands r5, r6
| 0x08043b72 0584 strh r5, [r0, 0x20]
| 0x08043b74 058c ldrh r5, [r0, 0x20]
| 0x08043b76 2c00 movs r4, r5
| 0x08043b78 8588 ldrh r5, [r0, 4]
| 0x08043b7a 2a00 movs r2, r5
| 0x08043b7c 058b ldrh r5, [r0, 0x18]
| 0x08043b7e 2b00 movs r3, r5
| 0x08043b80 48f6ff75 movw r5, 0x8fff
| 0x08043b84 2b40 ands r3, r5
| 0x08043b86 4ff6ff45 movw r5, 0xfcff
| 0x08043b8a 2b40 ands r3, r5
| 0x08043b8c 0d88 ldrh r5, [r1]
| 0x08043b8e 53ea0523 orrs.w r3, r3, r5, lsl 8
| 0x08043b92 4ff6df75 movw r5, 0xffdf
| 0x08043b96 2c40 ands r4, r5
| 0x08043b98 8d89 ldrh r5, [r1, 0xc]
| 0x08043b9a 54ea0514 orrs.w r4, r4, r5, lsl 4
| 0x08043b9e 4d88 ldrh r5, [r1, 2]
| 0x08043ba0 54ea0514 orrs.w r4, r4, r5, lsl 4
| 0x08043ba4 4f4d ldr r5, [0x08043ce4] ; [0x8043ce4:4]=0x40010000 io_TIM1
| 0x08043ba6 a842 cmp r0, r5
| ,=< 0x08043ba8 02d0 beq 0x8043bb0
| | 0x08043baa 544d ldr r5, [0x08043cfe] ; [0x8043cfc:4]=0x40010400 io_TIM8
| | 0x08043bac a842 cmp r0, r5
| ,==< 0x08043bae 17d1 bne 0x8043be0
| |`-> 0x08043bb0 4ff67f75 movw r5, 0xff7f
| | 0x08043bb4 2c40 ands r4, r5
| | 0x08043bb6 cd89 ldrh r5, [r1, 0xe]
| | 0x08043bb8 54ea0514 orrs.w r4, r4, r5, lsl 4
| | 0x08043bbc 4ff6bf75 movw r5, 0xffbf
| | 0x08043bc0 2c40 ands r4, r5
| | 0x08043bc2 8d88 ldrh r5, [r1, 4]
| | 0x08043bc4 54ea0514 orrs.w r4, r4, r5, lsl 4
| | 0x08043bc8 4ff6ff35 movw r5, 0xfbff
| | 0x08043bcc 2a40 ands r2, r5
| | 0x08043bce 4ff2ff75 movw r5, 0xf7ff
| | 0x08043bd2 2a40 ands r2, r5
| | 0x08043bd4 0d8a ldrh r5, [r1, 0x10]
| | 0x08043bd6 52ea8502 orrs.w r2, r2, r5, lsl 2
| | 0x08043bda 4d8a ldrh r5, [r1, 0x12]
| | 0x08043bdc 52ea8502 orrs.w r2, r2, r5, lsl 2
| `--> 0x08043be0 8280 strh r2, [r0, 4]
| 0x08043be2 0383 strh r3, [r0, 0x18]
| 0x08043be4 8968 ldr r1, [r1, 8]
| 0x08043be6 8163 str r1, [r0, 0x38]
| 0x08043be8 0484 strh r4, [r0, 0x20]
| 0x08043bea 70bc pop {r4, r5, r6}
\ 0x08043bec 7047 bx lr
/ (fcn) func_43d00 34
| Caller: func_47312
| func_43d00 ();
| 0x08043d00 0021 movs r1, 0
| 0x08043d02 0180 strh r1, [r0]
| 0x08043d04 0021 movs r1, 0
| 0x08043d06 4180 strh r1, [r0, 2]
| 0x08043d08 0021 movs r1, 0
| 0x08043d0a 8180 strh r1, [r0, 4]
| 0x08043d0c 0021 movs r1, 0
| 0x08043d0e 8160 str r1, [r0, 8]
| 0x08043d10 0021 movs r1, 0
| 0x08043d12 8181 strh r1, [r0, 0xc]
| 0x08043d14 0021 movs r1, 0
| 0x08043d16 c181 strh r1, [r0, 0xe]
| 0x08043d18 0021 movs r1, 0
| 0x08043d1a 0182 strh r1, [r0, 0x10]
| 0x08043d1c 0021 movs r1, 0
| 0x08043d1e 4182 strh r1, [r0, 0x12]
\ 0x08043d20 7047 bx lr
/ (fcn) func_43d22 4
| Caller: TimerIRQ_Sub9 SomethingWithRadioStatus1
| func_43d22 ();
| 0x08043d22 8163 str r1, [r0, 0x38]
\ 0x08043d24 7047 bx lr
/ (fcn) func_43d2a 18
| Caller: func_47312
| func_43d2a ();
| 0x08043d2a 0022 movs r2, 0
| 0x08043d2c 038b ldrh r3, [r0, 0x18]
| 0x08043d2e 1a00 movs r2, r3
| 0x08043d30 4ff6f773 movw r3, 0xfff7
| 0x08043d34 1a40 ands r2, r3
| 0x08043d36 0a43 orrs r2, r1
| 0x08043d38 0283 strh r2, [r0, 0x18]
\ 0x08043d3a 7047 bx lr
/ (fcn) func_43d3c 20
| Caller: func_47312
| func_43d3c ();
| 0x08043d3c 0022 movs r2, 0
| 0x08043d3e 038b ldrh r3, [r0, 0x18]
| 0x08043d40 1a00 movs r2, r3
| 0x08043d42 4ff2ff73 movw r3, 0xf7ff
| 0x08043d46 1a40 ands r2, r3
| 0x08043d48 52ea0122 orrs.w r2, r2, r1, lsl 8
| 0x08043d4c 0283 strh r2, [r0, 0x18]
\ 0x08043d4e 7047 bx lr
/ (fcn) func_43d50 18
| Caller: func_47312
| func_43d50 ();
| 0x08043d50 0022 movs r2, 0
| 0x08043d52 838b ldrh r3, [r0, 0x1c]
| 0x08043d54 1a00 movs r2, r3
| 0x08043d56 4ff6f773 movw r3, 0xfff7
| 0x08043d5a 1a40 ands r2, r3
| 0x08043d5c 0a43 orrs r2, r1
| 0x08043d5e 8283 strh r2, [r0, 0x1c]
\ 0x08043d60 7047 bx lr
/ (fcn) func_43d62 34
| Caller: SomethingWithGPIOC_TIM8_TIM7 bp_tone_on
| func_43d62 ();
| 0x08043d62 c9b2 uxtb r1, r1
| 0x08043d64 0029 cmp r1, 0
| ,=< 0x08043d66 06d0 beq 0x8043d76
| | 0x08043d68 b0f84410 ldrh.w r1, [r0, 0x44]
| | 0x08043d6c 51f40041 orrs r1, r1, 0x8000
| | 0x08043d70 a0f84410 strh.w r1, [r0, 0x44]
| ,==< 0x08043d74 05e0 b 0x8043d82
| |`-> 0x08043d76 b0f84410 ldrh.w r1, [r0, 0x44]
| | 0x08043d7a 4904 lsls r1, r1, 0x11
| | 0x08043d7c 490c lsrs r1, r1, 0x11
| | 0x08043d7e a0f84410 strh.w r1, [r0, 0x44]
\ `--> 0x08043d82 7047 bx lr
/ (fcn) func_43dd2 18
| Caller: func_47312
| func_43dd2 ();
| 0x08043dd2 8288 ldrh r2, [r0, 4]
| 0x08043dd4 4ff68f73 movw r3, 0xff8f
| 0x08043dd8 1a40 ands r2, r3
| 0x08043dda 8280 strh r2, [r0, 4]
| 0x08043ddc 8288 ldrh r2, [r0, 4]
| 0x08043dde 1143 orrs r1, r2
| 0x08043de0 8180 strh r1, [r0, 4]
\ 0x08043de2 7047 bx lr
/ (fcn) func_43df2 28
| Caller: func_44024
| func_43df2 ();
| 0x08043df2 2048 ldr r0, [0x08043e76] ; [0x8043e74:4]=0xe000ed22
| 0x08043df4 ff21 movs r1, 0xff ; 255
| 0x08043df6 0170 strb r1, [r0] ; R0 = 0xE000ED22 = SCB.SysHdlrPrio3, bits 31..16
| 0x08043df8 0020 movs r0, 0
| 0x08043dfa 80f30988 invalid
| 0x08043dfe 1e48 ldr r0, [0x08043e7a] ; [0x8043e78:4]=0x2001e956
| 0x08043e00 0121 movs r1, 1 ; 1
| 0x08043e02 0170 strb r1, [r0]
| 0x08043e04 1d48 ldr r0, [0x08043e7c] ; [0x8043e7c:4]=0xe000ed04
| 0x08043e06 1e49 ldr r1, [0x08043e82] ; [0x8043e80:4]=0x10000000
| 0x08043e08 0160 str r1, [r0] ; R0 = 0xE000ED04 = SCB.ICSR
| 0x08043e0a 62b6 cpsie i
\ `-> 0x08043e0c fee7 b 0x8043e0c
/ (fcn) func_43e0e 8
| Caller: func_443d8
| func_43e0e ();
| 0x08043e0e 1b48 ldr r0, [0x08043e7e] ; [0x8043e7c:4]=0xe000ed04 ; R0 = 0xE000ED04 = SCB.ICSR
| 0x08043e10 1b49 ldr r1, [0x08043e80] ; [0x8043e80:4]=0x10000000
| 0x08043e12 0160 str r1, [r0]
\ 0x08043e14 7047 bx lr
/ (fcn) func_43e16 8
| Caller: SysTick_Sub3
| func_43e16 ();
| 0x08043e16 1948 ldr r0, [0x08043e7e] ; [0x8043e7c:4]=0xe000ed04
| 0x08043e18 1949 ldr r1, [0x08043e80] ; [0x8043e80:4]=0x10000000
| 0x08043e1a 0160 str r1, [r0]
\ 0x08043e1c 7047 bx lr
/ (fcn) func_434e4_wr_C5000 652
| Caller: func_4fe14_monster_accessing_C5000 c5000_wr_60_5
| func_434e4_wr_C5000 ();
| 0x080434e4 10b5 push {r4, lr}
| 0x080434e6 0400 movs r4, r0
| 0x080434e8 b021 movs r1, 0xb0 ; 176
| 0x080434ea 0120 movs r0, 1 ; 1
| 0x080434ec fcf74afd bl c5000_spi0_writereg
| 0x080434f0 e4b2 uxtb r4, r4
| 0x080434f2 012c cmp r4, 1 ; 1
| ,=< 0x080434f4 1cd1 bne 0x8043530
| | 0x080434f6 3f21 movs r1, 0x3f ; '?' ; 63
| | 0x080434f8 0020 movs r0, 0
| | 0x080434fa fcf743fd bl c5000_spi0_writereg
| | 0x080434fe a021 movs r1, 0xa0 ; 160
| | 0x08043500 4020 movs r0, 0x40 ; '@' ; 64
| | 0x08043502 fcf73ffd bl c5000_spi0_writereg
| | 0x08043506 0121 movs r1, 1 ; 1
| | 0x08043508 4120 movs r0, 0x41 ; 'A' ; 65
| | 0x0804350a fcf73bfd bl c5000_spi0_writereg
| | 0x0804350e 0221 movs r1, 2 ; 2
| | 0x08043510 1020 movs r0, 0x10 ; 16
| | 0x08043512 fcf737fd bl c5000_spi0_writereg
| | 0x08043516 2423 movs r3, 0x24 ; '$' ; 36
| | 0x08043518 b94a ldr r2, [0x08043800] ; [0x8043800:4]=0x2000473c
| | 0x0804351a 0021 movs r1, 0
| | 0x0804351c 0220 movs r0, 2 ; 2
| | 0x0804351e fcf76cfd bl c5000_spi0_readreg_maybe
| | 0x08043522 2423 movs r3, 0x24 ; '$' ; 36
| | 0x08043524 b64a ldr r2, [0x08043800] ; [0x8043800:4]=0x2000473c
| | 0x08043526 2421 movs r1, 0x24 ; '$' ; 36
| | 0x08043528 0220 movs r0, 2 ; 2
| | 0x0804352a fcf766fd bl c5000_spi0_readreg_maybe
| ,==< 0x0804352e 1ee1 b 0x804376e
| |`-> 0x08043530 e4b2 uxtb r4, r4
| | 0x08043532 022c cmp r4, 2 ; 2
| |,=< 0x08043534 1cd1 bne 0x8043570
| || 0x08043536 3f21 movs r1, 0x3f ; '?' ; 63
| || 0x08043538 0020 movs r0, 0
| || 0x0804353a fcf723fd bl c5000_spi0_writereg
| || 0x0804353e a021 movs r1, 0xa0 ; 160
| || 0x08043540 4020 movs r0, 0x40 ; '@' ; 64
| || 0x08043542 fcf71ffd bl c5000_spi0_writereg
| || 0x08043546 0121 movs r1, 1 ; 1
| || 0x08043548 4120 movs r0, 0x41 ; 'A' ; 65
| || 0x0804354a fcf71bfd bl c5000_spi0_writereg
| || 0x0804354e 0221 movs r1, 2 ; 2
| || 0x08043550 1020 movs r0, 0x10 ; 16
| || 0x08043552 fcf717fd bl c5000_spi0_writereg
| || 0x08043556 2423 movs r3, 0x24 ; '$' ; 36
| || 0x08043558 aa4a ldr r2, [0x08043804] ; [0x8043804:4]=0x20004760
| || 0x0804355a 0021 movs r1, 0
| || 0x0804355c 0220 movs r0, 2 ; 2
| || 0x0804355e fcf74cfd bl c5000_spi0_readreg_maybe
| || 0x08043562 2423 movs r3, 0x24 ; '$' ; 36
| || 0x08043564 a74a ldr r2, [0x08043804] ; [0x8043804:4]=0x20004760
| || 0x08043566 2421 movs r1, 0x24 ; '$' ; 36
| || 0x08043568 0220 movs r0, 2 ; 2
| || 0x0804356a fcf746fd bl c5000_spi0_readreg_maybe
| ,===< 0x0804356e fee0 b 0x804376e
| ||`-> 0x08043570 e4b2 uxtb r4, r4
| || 0x08043572 032c cmp r4, 3 ; 3
| ||,=< 0x08043574 20d1 bne 0x80435b8
| ||| 0x08043576 0020 movs r0, 0
| ,====< 0x08043578 04e0 b 0x8043584
| .-----> 0x0804357a c0b2 uxtb r0, r0
| ||||| 0x0804357c a249 ldr r1, [0x08043808] ; [0x8043808:4]=0x2001db7c
| ||||| 0x0804357e 5f22 movs r2, 0x5f ; '_' ; 95
| ||||| 0x08043580 4254 strb r2, [r0, r1]
| ||||| 0x08043582 401c adds r0, r0, 1
| |`----> 0x08043584 c0b2 uxtb r0, r0
| | ||| 0x08043586 4828 cmp r0, 0x48 ; 'H' ; 72
| `=====< 0x08043588 f7d3 blo 0x804357a
| ||| 0x0804358a 3f21 movs r1, 0x3f ; '?' ; 63
| ||| 0x0804358c 0020 movs r0, 0
| ||| 0x0804358e fcf7f9fc bl c5000_spi0_writereg
| ||| 0x08043592 a021 movs r1, 0xa0 ; 160
| ||| 0x08043594 4020 movs r0, 0x40 ; '@' ; 64
| ||| 0x08043596 fcf7f5fc bl c5000_spi0_writereg
| ||| 0x0804359a 0121 movs r1, 1 ; 1
| ||| 0x0804359c 4120 movs r0, 0x41 ; 'A' ; 65
| ||| 0x0804359e fcf7f1fc bl c5000_spi0_writereg
| ||| 0x080435a2 0221 movs r1, 2 ; 2
| ||| 0x080435a4 1020 movs r0, 0x10 ; 16
| ||| 0x080435a6 fcf7edfc bl c5000_spi0_writereg
| ||| 0x080435aa 4823 movs r3, 0x48 ; 'H' ; 72
| ||| 0x080435ac 964a ldr r2, [0x08043808] ; [0x8043808:4]=0x2001db7c
| ||| 0x080435ae 0021 movs r1, 0
| ||| 0x080435b0 0220 movs r0, 2 ; 2
| ||| 0x080435b2 fcf722fd bl c5000_spi0_readreg_maybe
| ,====< 0x080435b6 dae0 b 0x804376e
| |||`-> 0x080435b8 e4b2 uxtb r4, r4
| ||| 0x080435ba 042c cmp r4, 4 ; 4
| |||,=< 0x080435bc 20d1 bne 0x8043600
| |||| 0x080435be 0020 movs r0, 0
| ,=====< 0x080435c0 04e0 b 0x80435cc
| .------> 0x080435c2 c0b2 uxtb r0, r0
| |||||| 0x080435c4 9149 ldr r1, [0x0804380c] ; [0x804380c:4]=0x2001dbc4
| |||||| 0x080435c6 5522 movs r2, 0x55 ; 'U' ; 85
| |||||| 0x080435c8 4254 strb r2, [r0, r1]
| |||||| 0x080435ca 401c adds r0, r0, 1
| |`-----> 0x080435cc c0b2 uxtb r0, r0
| | |||| 0x080435ce 4828 cmp r0, 0x48 ; 'H' ; 72
| `======< 0x080435d0 f7d3 blo 0x80435c2
| |||| 0x080435d2 3f21 movs r1, 0x3f ; '?' ; 63
| |||| 0x080435d4 0020 movs r0, 0
| |||| 0x080435d6 fcf7d5fc bl c5000_spi0_writereg
| |||| 0x080435da a021 movs r1, 0xa0 ; 160
| |||| 0x080435dc 4020 movs r0, 0x40 ; '@' ; 64
| |||| 0x080435de fcf7d1fc bl c5000_spi0_writereg
| |||| 0x080435e2 0121 movs r1, 1 ; 1
| |||| 0x080435e4 4120 movs r0, 0x41 ; 'A' ; 65
| |||| 0x080435e6 fcf7cdfc bl c5000_spi0_writereg
| |||| 0x080435ea 0221 movs r1, 2 ; 2
| |||| 0x080435ec 1020 movs r0, 0x10 ; 16
| |||| 0x080435ee fcf7c9fc bl c5000_spi0_writereg
| |||| 0x080435f2 4823 movs r3, 0x48 ; 'H' ; 72
| |||| 0x080435f4 854a ldr r2, [0x0804380c] ; [0x804380c:4]=0x2001dbc4
| |||| 0x080435f6 0021 movs r1, 0
| |||| 0x080435f8 0220 movs r0, 2 ; 2
| |||| 0x080435fa fcf7fefc bl c5000_spi0_readreg_maybe
| ,=====< 0x080435fe b6e0 b 0x804376e
| ||||`-> 0x08043600 e4b2 uxtb r4, r4
| |||| 0x08043602 052c cmp r4, 5 ; 5
| ||||,=< 0x08043604 20d1 bne 0x8043648
| ||||| 0x08043606 0020 movs r0, 0
| ,======< 0x08043608 04e0 b 0x8043614
| .-------> 0x0804360a c0b2 uxtb r0, r0
| ||||||| 0x0804360c 8049 ldr r1, [0x08043810] ; [0x8043810:4]=0x2001dc0c
| ||||||| 0x0804360e ff22 movs r2, 0xff ; 255
| ||||||| 0x08043610 4254 strb r2, [r0, r1]
| ||||||| 0x08043612 401c adds r0, r0, 1
| |`------> 0x08043614 c0b2 uxtb r0, r0
| | ||||| 0x08043616 4828 cmp r0, 0x48 ; 'H' ; 72
| `=======< 0x08043618 f7d3 blo 0x804360a
| ||||| 0x0804361a 3f21 movs r1, 0x3f ; '?' ; 63
| ||||| 0x0804361c 0020 movs r0, 0
| ||||| 0x0804361e fcf7b1fc bl c5000_spi0_writereg
| ||||| 0x08043622 a021 movs r1, 0xa0 ; 160
| ||||| 0x08043624 4020 movs r0, 0x40 ; '@' ; 64
| ||||| 0x08043626 fcf7adfc bl c5000_spi0_writereg
| ||||| 0x0804362a 0121 movs r1, 1 ; 1
| ||||| 0x0804362c 4120 movs r0, 0x41 ; 'A' ; 65
| ||||| 0x0804362e fcf7a9fc bl c5000_spi0_writereg
| ||||| 0x08043632 0221 movs r1, 2 ; 2
| ||||| 0x08043634 1020 movs r0, 0x10 ; 16
| ||||| 0x08043636 fcf7a5fc bl c5000_spi0_writereg
| ||||| 0x0804363a 4823 movs r3, 0x48 ; 'H' ; 72
| ||||| 0x0804363c 744a ldr r2, [0x08043810] ; [0x8043810:4]=0x2001dc0c
| ||||| 0x0804363e 0021 movs r1, 0
| ||||| 0x08043640 0220 movs r0, 2 ; 2
| ||||| 0x08043642 fcf7dafc bl c5000_spi0_readreg_maybe
| ,======< 0x08043646 92e0 b 0x804376e
| |||||`-> 0x08043648 e4b2 uxtb r4, r4
| ||||| 0x0804364a 062c cmp r4, 6 ; 6
| |||||,=< 0x0804364c 20d1 bne 0x8043690
| |||||| 0x0804364e 0020 movs r0, 0
| ,=======< 0x08043650 04e0 b 0x804365c
| --------> 0x08043652 c0b2 uxtb r0, r0
| ||||||| 0x08043654 6f49 ldr r1, [0x08043814] ; [0x8043814:4]=0x2001dc54
| ||||||| 0x08043656 0a22 movs r2, 0xa ; 10
| ||||||| 0x08043658 4254 strb r2, [r0, r1]
| ||||||| 0x0804365a 401c adds r0, r0, 1
| `-------> 0x0804365c c0b2 uxtb r0, r0
| |||||| 0x0804365e 4828 cmp r0, 0x48 ; 'H' ; 72
| ========< 0x08043660 f7d3 blo 0x8043652
| |||||| 0x08043662 3f21 movs r1, 0x3f ; '?' ; 63
| |||||| 0x08043664 0020 movs r0, 0
| |||||| 0x08043666 fcf78dfc bl c5000_spi0_writereg
| |||||| 0x0804366a a021 movs r1, 0xa0 ; 160
| |||||| 0x0804366c 4020 movs r0, 0x40 ; '@' ; 64
| |||||| 0x0804366e fcf789fc bl c5000_spi0_writereg
| |||||| 0x08043672 0021 movs r1, 0
| |||||| 0x08043674 4120 movs r0, 0x41 ; 'A' ; 65
| |||||| 0x08043676 fcf785fc bl c5000_spi0_writereg
| |||||| 0x0804367a 0221 movs r1, 2 ; 2
| |||||| 0x0804367c 1020 movs r0, 0x10 ; 16
| |||||| 0x0804367e fcf781fc bl c5000_spi0_writereg
| |||||| 0x08043682 4823 movs r3, 0x48 ; 'H' ; 72
| |||||| 0x08043684 634a ldr r2, [0x08043814] ; [0x8043814:4]=0x2001dc54
| |||||| 0x08043686 0021 movs r1, 0
| |||||| 0x08043688 0220 movs r0, 2 ; 2
| |||||| 0x0804368a fcf7b6fc bl c5000_spi0_readreg_maybe
| ,=======< 0x0804368e 6ee0 b 0x804376e
| ||||||`-> 0x08043690 e4b2 uxtb r4, r4
| |||||| 0x08043692 072c cmp r4, 7 ; 7
| ||||||,=< 0x08043694 20d1 bne 0x80436d8
| ||||||| 0x08043696 0020 movs r0, 0
| ========< 0x08043698 04e0 b 0x80436a4
| --------> 0x0804369a c0b2 uxtb r0, r0
| ||||||| 0x0804369c 5e49 ldr r1, [0x08043818] ; [0x8043818:4]=0x2001dc9c
| ||||||| 0x0804369e 0022 movs r2, 0
| ||||||| 0x080436a0 4254 strb r2, [r0, r1]
| ||||||| 0x080436a2 401c adds r0, r0, 1
| --------> 0x080436a4 c0b2 uxtb r0, r0
| ||||||| 0x080436a6 4828 cmp r0, 0x48 ; 'H' ; 72
| ========< 0x080436a8 f7d3 blo 0x804369a
| ||||||| 0x080436aa 3f21 movs r1, 0x3f ; '?' ; 63
| ||||||| 0x080436ac 0020 movs r0, 0
| ||||||| 0x080436ae fcf769fc bl c5000_spi0_writereg
| ||||||| 0x080436b2 a021 movs r1, 0xa0 ; 160
| ||||||| 0x080436b4 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x080436b6 fcf765fc bl c5000_spi0_writereg
| ||||||| 0x080436ba 0121 movs r1, 1 ; 1
| ||||||| 0x080436bc 4120 movs r0, 0x41 ; 'A' ; 65
| ||||||| 0x080436be fcf761fc bl c5000_spi0_writereg
| ||||||| 0x080436c2 0221 movs r1, 2 ; 2
| ||||||| 0x080436c4 1020 movs r0, 0x10 ; 16
| ||||||| 0x080436c6 fcf75dfc bl c5000_spi0_writereg
| ||||||| 0x080436ca 4823 movs r3, 0x48 ; 'H' ; 72
| ||||||| 0x080436cc 524a ldr r2, [0x08043818] ; [0x8043818:4]=0x2001dc9c
| ||||||| 0x080436ce 0021 movs r1, 0
| ||||||| 0x080436d0 0220 movs r0, 2 ; 2
| ||||||| 0x080436d2 fcf792fc bl c5000_spi0_readreg_maybe
| ========< 0x080436d6 4ae0 b 0x804376e
| ||||||`-> 0x080436d8 e4b2 uxtb r4, r4
| |||||| 0x080436da 082c cmp r4, 8 ; 8
| ||||||,=< 0x080436dc 20d1 bne 0x8043720
| ||||||| 0x080436de 0020 movs r0, 0
| ========< 0x080436e0 04e0 b 0x80436ec
| --------> 0x080436e2 c0b2 uxtb r0, r0
| ||||||| 0x080436e4 4d49 ldr r1, [0x0804381c] ; [0x804381c:4]=0x2001dce4
| ||||||| 0x080436e6 aa22 movs r2, 0xaa ; 170
| ||||||| 0x080436e8 4254 strb r2, [r0, r1]
| ||||||| 0x080436ea 401c adds r0, r0, 1
| --------> 0x080436ec c0b2 uxtb r0, r0
| ||||||| 0x080436ee 4828 cmp r0, 0x48 ; 'H' ; 72
| ========< 0x080436f0 f7d3 blo 0x80436e2
| ||||||| 0x080436f2 3f21 movs r1, 0x3f ; '?' ; 63
| ||||||| 0x080436f4 0020 movs r0, 0
| ||||||| 0x080436f6 fcf745fc bl c5000_spi0_writereg
| ||||||| 0x080436fa a021 movs r1, 0xa0 ; 160
| ||||||| 0x080436fc 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x080436fe fcf741fc bl c5000_spi0_writereg
| ||||||| 0x08043702 0121 movs r1, 1 ; 1
| ||||||| 0x08043704 4120 movs r0, 0x41 ; 'A' ; 65
| ||||||| 0x08043706 fcf73dfc bl c5000_spi0_writereg
| ||||||| 0x0804370a 0221 movs r1, 2 ; 2
| ||||||| 0x0804370c 1020 movs r0, 0x10 ; 16
| ||||||| 0x0804370e fcf739fc bl c5000_spi0_writereg
| ||||||| 0x08043712 4823 movs r3, 0x48 ; 'H' ; 72
| ||||||| 0x08043714 414a ldr r2, [0x0804381c] ; [0x804381c:4]=0x2001dce4
| ||||||| 0x08043716 0021 movs r1, 0
| ||||||| 0x08043718 0220 movs r0, 2 ; 2
| ||||||| 0x0804371a fcf76efc bl c5000_spi0_readreg_maybe
| ========< 0x0804371e 26e0 b 0x804376e
| ||||||`-> 0x08043720 e4b2 uxtb r4, r4
| |||||| 0x08043722 092c cmp r4, 9 ; 9
| ||||||,=< 0x08043724 23d1 bne 0x804376e
| ||||||| 0x08043726 0020 movs r0, 0
| ========< 0x08043728 04e0 b 0x8043734
| --------> 0x0804372a c0b2 uxtb r0, r0
| ||||||| 0x0804372c 3c49 ldr r1, [0x08043820] ; [0x8043820:4]=0x2001dd2c
| ||||||| 0x0804372e 7722 movs r2, 0x77 ; 'w' ; 119
| ||||||| 0x08043730 4254 strb r2, [r0, r1]
| ||||||| 0x08043732 401c adds r0, r0, 1
| --------> 0x08043734 c0b2 uxtb r0, r0
| ||||||| 0x08043736 4828 cmp r0, 0x48 ; 'H' ; 72
| ========< 0x08043738 f7d3 blo 0x804372a
| ||||||| 0x0804373a b221 movs r1, 0xb2 ; 178
| ||||||| 0x0804373c 0120 movs r0, 1 ; 1
| ||||||| 0x0804373e fcf721fc bl c5000_spi0_writereg
| ||||||| 0x08043742 3f21 movs r1, 0x3f ; '?' ; 63
| ||||||| 0x08043744 0020 movs r0, 0
| ||||||| 0x08043746 fcf71dfc bl c5000_spi0_writereg
| ||||||| 0x0804374a a021 movs r1, 0xa0 ; 160
| ||||||| 0x0804374c 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x0804374e fcf719fc bl c5000_spi0_writereg
| ||||||| 0x08043752 0121 movs r1, 1 ; 1
| ||||||| 0x08043754 4120 movs r0, 0x41 ; 'A' ; 65
| ||||||| 0x08043756 fcf715fc bl c5000_spi0_writereg
| ||||||| 0x0804375a 0221 movs r1, 2 ; 2
| ||||||| 0x0804375c 1020 movs r0, 0x10 ; 16
| ||||||| 0x0804375e fcf711fc bl c5000_spi0_writereg
| ||||||| 0x08043762 4823 movs r3, 0x48 ; 'H' ; 72
| ||||||| 0x08043764 2e4a ldr r2, [0x08043820] ; [0x8043820:4]=0x2001dd2c
| ||||||| 0x08043766 0021 movs r1, 0
| ||||||| 0x08043768 0220 movs r0, 2 ; 2
| ||||||| 0x0804376a fcf746fc bl c5000_spi0_readreg_maybe
\ ```````-> 0x0804376e 10bd pop {r4, pc}
/ (fcn) func_43824_wr_C5000 52
| Caller: c5000_wr_60_5
| func_43824_wr_C5000 ();
| 0x08043824 80b5 push {r7, lr}
| 0x08043826 c0b2 uxtb r0, r0
| 0x08043828 0128 cmp r0, 1 ; 1
| ,=< 0x0804382a 14d1 bne 0x8043856
| | 0x0804382c 3f21 movs r1, 0x3f ; '?' ; 63
| | 0x0804382e 0020 movs r0, 0
| | 0x08043830 fcf7a8fb bl c5000_spi0_writereg
| | 0x08043834 4021 movs r1, 0x40 ; '@' ; 64
| | 0x08043836 4020 movs r0, 0x40 ; '@' ; 64
| | 0x08043838 fcf7a4fb bl c5000_spi0_writereg
| | 0x0804383c 2221 movs r1, 0x22 ; '"' ; 34
| | 0x0804383e 1020 movs r0, 0x10 ; 16
| | 0x08043840 fcf7a0fb bl c5000_spi0_writereg
| | 0x08043844 0121 movs r1, 1 ; 1
| | 0x08043846 4120 movs r0, 0x41 ; 'A' ; 65
| | 0x08043848 fcf79cfb bl c5000_spi0_writereg
| | 0x0804384c 6721 movs r1, 0x67 ; 'g' ; 103
| | 0x0804384e 5420 movs r0, 0x54 ; 'T' ; 84
| | 0x08043850 fcf7abfb bl c5000_spi0_writereg_1
| ,==< 0x08043854 ffe7 b 0x8043856
\ ``-> 0x08043856 01bd pop {r0, pc}
/ (fcn) func_43e98 56
| Caller: CreateTwoSemasAndTimerTask create_many_semas
| func_43e98 ();
| 0x08043e98 70b5 push {r4, r5, r6, lr}
| 0x08043e9a 0500 movs r5, r0
| 0x08043e9c 0e00 movs r6, r1
| 0x08043e9e 1400 movs r4, r2
| 0x08043ea0 0020 movs r0, 0
| 0x08043ea2 dff81817 ldr.w r1, [0x080445c2] ; [0x80445c0:4]=0x2001e956
| 0x08043ea6 0978 ldrb r1, [r1]
| 0x08043ea8 0029 cmp r1, 0
| ,=< 0x08043eaa 02d0 beq 0x8043eb2
| | 0x08043eac 1220 movs r0, 0x12 ; 18
| | 0x08043eae 2070 strb r0, [r4]
| ,==< 0x08043eb0 0de0 b 0x8043ece
| |`-> 0x08043eb2 2878 ldrb r0, [r5]
| | 0x08043eb4 401e subs r0, r0, 1
| | 0x08043eb6 0328 cmp r0, 3 ; 3
| |,=< 0x08043eb8 07d8 bhi 0x8043eca
| || 0x08043eba fff793ff bl OS_ENTER_CRITICAL
| || 0x08043ebe 6e61 str r6, [r5, 0x14]
| || 0x08043ec0 fff794ff bl OS_EXIT_CRITICAL
| || 0x08043ec4 0020 movs r0, 0
| || 0x08043ec6 2070 strb r0, [r4]
| ,===< 0x08043ec8 01e0 b 0x8043ece
| ||`-> 0x08043eca 0120 movs r0, 1 ; 1
| || 0x08043ecc 2070 strb r0, [r4]
\ ``--> 0x08043ece 70bd pop {r4, r5, r6, pc}
/ (fcn) func_43f90 58
| Caller: func_4b5ac func_4b8c8 func_4b62e func_4b534
| func_43f90 ();
| 0x08043f90 80b5 push {r7, lr}
| 0x08043f92 0020 movs r0, 0
| 0x08043f94 dff82816 ldr.w r1, [0x080445c4] ; [0x80445c4:4]=0x2001e952
| 0x08043f98 0978 ldrb r1, [r1]
| 0x08043f9a 0129 cmp r1, 1 ; 1
| ,=< 0x08043f9c 14d1 bne 0x8043fc8
| | 0x08043f9e fff721ff bl OS_ENTER_CRITICAL
| | 0x08043fa2 dff81816 ldr.w r1, [0x080445c2] ; [0x80445c0:4]=0x2001e956
| | 0x08043fa6 0978 ldrb r1, [r1]
| | 0x08043fa8 0029 cmp r1, 0
| ,==< 0x08043faa 0bd1 bne 0x8043fc4
| || 0x08043fac dff81416 ldr.w r1, [0x080445c8] ; [0x80445c8:4]=0x2001e954
| || 0x08043fb0 0978 ldrb r1, [r1]
| || 0x08043fb2 ff29 cmp r1, 0xff ; 255
| ,===< 0x08043fb4 06d0 beq 0x8043fc4
| ||| 0x08043fb6 dff80c16 ldr.w r1, [0x080445ca] ; [0x80445c8:4]=0x2001e954
| ||| 0x08043fba 0978 ldrb r1, [r1]
| ||| 0x08043fbc 491c adds r1, r1, 1
| ||| 0x08043fbe dff80426 ldr.w r2, [0x080445ca] ; [0x80445c8:4]=0x2001e954
| ||| 0x08043fc2 1170 strb r1, [r2]
| ``--> 0x08043fc4 fff712ff bl OS_EXIT_CRITICAL
\ `-> 0x08043fc8 01bd pop {r0, pc}
/ (fcn) func_43fca 90
| Caller: func_4b5ac func_4b8c8 func_4b62e func_4b534
| func_43fca ();
| 0x08043fca 80b5 push {r7, lr}
| 0x08043fcc 0020 movs r0, 0
| 0x08043fce dff8f015 ldr.w r1, [0x080445c6] ; [0x80445c4:4]=0x2001e952
| 0x08043fd2 0978 ldrb r1, [r1]
| 0x08043fd4 0129 cmp r1, 1 ; 1
| ,=< 0x08043fd6 24d1 bne 0x8044022
| | 0x08043fd8 fff704ff bl OS_ENTER_CRITICAL
| | 0x08043fdc dff8e415 ldr.w r1, [0x080445c8] ; [0x80445c8:4]=0x2001e954
| | 0x08043fe0 0978 ldrb r1, [r1]
| | 0x08043fe2 0029 cmp r1, 0
| ,==< 0x08043fe4 1bd0 beq 0x804401e
| || 0x08043fe6 dff8dc15 ldr.w r1, [0x080445ca] ; [0x80445c8:4]=0x2001e954
| || 0x08043fea 0978 ldrb r1, [r1]
| || 0x08043fec 491e subs r1, r1, 1
| || 0x08043fee dff8d425 ldr.w r2, [0x080445ca] ; [0x80445c8:4]=0x2001e954
| || 0x08043ff2 1170 strb r1, [r2]
| || 0x08043ff4 dff8cc15 ldr.w r1, [0x080445c8] ; [0x80445c8:4]=0x2001e954
| || 0x08043ff8 0978 ldrb r1, [r1]
| || 0x08043ffa 0029 cmp r1, 0
| ,===< 0x08043ffc 0cd1 bne 0x8044018
| ||| 0x08043ffe dff8bc15 ldr.w r1, [0x080445c2] ; [0x80445c0:4]=0x2001e956
| ||| 0x08044002 0978 ldrb r1, [r1]
| ||| 0x08044004 0029 cmp r1, 0
| ,====< 0x08044006 04d1 bne 0x8044012
| |||| 0x08044008 fff7f0fe bl OS_EXIT_CRITICAL
| |||| 0x0804400c 00f0e4f9 bl func_443d8
| ,=====< 0x08044010 07e0 b 0x8044022
| |`----> 0x08044012 fff7ebfe bl OS_EXIT_CRITICAL
| |,====< 0x08044016 04e0 b 0x8044022
| ||`---> 0x08044018 fff7e8fe bl OS_EXIT_CRITICAL
| ||,===< 0x0804401c 01e0 b 0x8044022
| |||`--> 0x0804401e fff7e5fe bl OS_EXIT_CRITICAL
\ ```-`-> 0x08044022 01bd pop {r0, pc}
/ (fcn) func_44024 66
| Caller: _main2_init_sub3
| func_44024 ();
| 0x08044024 80b5 push {r7, lr}
| 0x08044026 dff89805 ldr.w r0, [0x080445c6] ; [0x80445c4:4]=0x2001e952
| 0x0804402a 0078 ldrb r0, [r0]
| 0x0804402c 0028 cmp r0, 0
| ,=< 0x0804402e 19d1 bne 0x8044064
| | 0x08044030 00f000fa bl func_44434
| | 0x08044034 dff89c05 ldr.w r0, [0x080445d8] ; [0x80445d8:4]=0x2001e704
| | 0x08044038 dff88c15 ldr.w r1, [0x080445cc] ; [0x80445cc:4]=0x2001d01c
| | 0x0804403c 0978 ldrb r1, [r1]
| | 0x0804403e 0170 strb r1, [r0]
| | 0x08044040 dff88405 ldr.w r0, [0x080445cc] ; [0x80445cc:4]=0x2001d01c
| | 0x08044044 0078 ldrb r0, [r0]
| | 0x08044046 dff88415 ldr.w r1, [0x080445d2] ; [0x80445d0:4]=0x2001e71c
| | 0x0804404a 51f82000 ldr.w r0, [r1, r0, lsl 2]
| | 0x0804404e dff88015 ldr.w r1, [0x080445d6] ; [0x80445d4:4]=0x2001e953
| | 0x08044052 0860 str r0, [r1]
| | 0x08044054 dff88405 ldr.w r0, [0x080445e0] ; [0x80445e0:4]=0x2001e724
| | 0x08044058 dff87415 ldr.w r1, [0x080445d4] ; [0x80445d4:4]=0x2001e953
| | 0x0804405c 0968 ldr r1, [r1]
| | 0x0804405e 0160 str r1, [r0]
| | 0x08044060 fff7c7fe bl func_43df2
\ `-> 0x08044064 01bd pop {r0, pc}
/ (fcn) SysTick_Sub1 182
| Caller: SysTick_Handler
| SysTick_Sub1 ();
| 0x08044066 38b5 push {r3, r4, r5, lr}
| 0x08044068 0024 movs r4, 0
| 0x0804406a 0af019f9 bl SysTick_Sub2
| 0x0804406e fff7b9fe bl OS_ENTER_CRITICAL
| 0x08044072 0400 movs r4, r0
| 0x08044074 dff86805 ldr.w r0, [0x080445e4] ; [0x80445e4:4]=0x2001e720
| 0x08044078 0068 ldr r0, [r0]
| 0x0804407a 401c adds r0, r0, 1
| 0x0804407c dff86015 ldr.w r1, [0x080445e4] ; [0x80445e4:4]=0x2001e720
| 0x08044080 0860 str r0, [r1]
| 0x08044082 2000 movs r0, r4
| 0x08044084 fff7b2fe bl OS_EXIT_CRITICAL
| 0x08044088 dff83405 ldr.w r0, [0x080445c4] ; [0x80445c4:4]=0x2001e952
| 0x0804408c 0078 ldrb r0, [r0]
| 0x0804408e 0128 cmp r0, 1 ; 1
| ,=< 0x08044090 43d1 bne 0x804411a
| | 0x08044092 dff85005 ldr.w r0, [0x080445ea] ; [0x80445e8:4]=0x2001e955
| | 0x08044096 0568 ldr r5, [r0]
| ,==< 0x08044098 20e0 b 0x80440dc
| .---> 0x0804409a 0020 movs r0, 0
| ||| 0x0804409c 85f83100 strb.w r0, [r5, 0x31]
| .----> 0x080440a0 95f83000 ldrb.w r0, [r5, 0x30]
| |||| 0x080440a4 0007 lsls r0, r0, 0x1c
| ,=====< 0x080440a6 15d4 bmi 0x80440d4
| ||||| 0x080440a8 dff83c05 ldr.w r0, [0x080445ec] ; [0x80445ec:4]=0x2001e56c
| ||||| 0x080440ac 0078 ldrb r0, [r0]
| ||||| 0x080440ae 95f83610 ldrb.w r1, [r5, 0x36]
| ||||| 0x080440b2 0843 orrs r0, r1
| ||||| 0x080440b4 dff83015 ldr.w r1, [0x080445ec] ; [0x80445ec:4]=0x2001e56c
| ||||| 0x080440b8 0870 strb r0, [r1]
| ||||| 0x080440ba 95f83400 ldrb.w r0, [r5, 0x34]
| ||||| 0x080440be dff82c15 ldr.w r1, [0x080445f2] ; [0x80445f0:4]=0x8095fa0
| ||||| 0x080440c2 405c ldrb r0, [r0, r1]
| ||||| 0x080440c4 95f83510 ldrb.w r1, [r5, 0x35]
| ||||| 0x080440c8 0843 orrs r0, r1
| ||||| 0x080440ca 95f83410 ldrb.w r1, [r5, 0x34]
| ||||| 0x080440ce dff81c25 ldr.w r2, [0x080445f2] ; [0x80445f0:4]=0x8095fa0
| ||||| 0x080440d2 8854 strb r0, [r1, r2]
| ..`-----> 0x080440d4 6d69 ldr r5, [r5, 0x14]
| || |||| 0x080440d6 2000 movs r0, r4
| || |||| 0x080440d8 fff788fe bl OS_EXIT_CRITICAL
| || ||`--> 0x080440dc 95f83200 ldrb.w r0, [r5, 0x32]
| || || | 0x080440e0 3f28 cmp r0, 0x3f ; '?' ; 63
| || ||,==< 0x080440e2 1ad0 beq 0x804411a
| || |||| 0x080440e4 fff77efe bl OS_ENTER_CRITICAL
| || |||| 0x080440e8 0400 movs r4, r0
| || |||| 0x080440ea e86a ldr r0, [r5, 0x2c]
| || |||| 0x080440ec 0028 cmp r0, 0
| `=======< 0x080440ee f1d0 beq 0x80440d4
| | |||| 0x080440f0 e86a ldr r0, [r5, 0x2c]
| | |||| 0x080440f2 401e subs r0, r0, 1
| | |||| 0x080440f4 e862 str r0, [r5, 0x2c]
| | |||| 0x080440f6 e86a ldr r0, [r5, 0x2c]
| | |||| 0x080440f8 0028 cmp r0, 0
| `======< 0x080440fa ebd1 bne 0x80440d4
| |||| 0x080440fc 95f83000 ldrb.w r0, [r5, 0x30]
| |||| 0x08044100 3721 movs r1, 0x37 ; '7' ; 55
| |||| 0x08044102 0842 tst r0, r1
| |`===< 0x08044104 c9d0 beq 0x804409a
| | || 0x08044106 95f83000 ldrb.w r0, [r5, 0x30]
| | || 0x0804410a 10f0c800 ands r0, r0, 0xc8
| | || 0x0804410e 85f83000 strb.w r0, [r5, 0x30]
| | || 0x08044112 0120 movs r0, 1 ; 1
| | || 0x08044114 85f83100 strb.w r0, [r5, 0x31]
| `====< 0x08044118 c2e7 b 0x80440a0
\ ``-> 0x0804411a 31bd pop {r0, r4, r5, pc}
/ (fcn) func_4411c 122
| Caller: md380_OSMboxPost OSSemPost
| func_4411c ();
| 0x0804411c f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x0804411e 847a ldrb r4, [r0, 0xa]
| 0x08044120 dff8cc54 ldr.w r5, [0x080445f4] ; [0x80445f4:4]=0x200172b8
| 0x08044124 665d ldrb r6, [r4, r5]
| 0x08044126 f6b2 uxtb r6, r6
| 0x08044128 3418 adds r4, r6, r0
| 0x0804412a e47a ldrb r4, [r4, 0xb]
| 0x0804412c dff8c054 ldr.w r5, [0x080445f4] ; [0x80445f4:4]=0x200172b8
| 0x08044130 645d ldrb r4, [r4, r5]
| 0x08044132 f6b2 uxtb r6, r6
| 0x08044134 f500 lsls r5, r6, 3
| 0x08044136 55fa84f5 uxtab r5, r5, r4
| 0x0804413a edb2 uxtb r5, r5
| 0x0804413c dff88c44 ldr.w r4, [0x080445d0] ; [0x80445d0:4]=0x2001e71c
| 0x08044140 54f82540 ldr.w r4, [r4, r5, lsl 2]
| 0x08044144 0027 movs r7, 0
| 0x08044146 e762 str r7, [r4, 0x2c]
| 0x08044148 2162 str r1, [r4, 0x20]
| 0x0804414a 94f83010 ldrb.w r1, [r4, 0x30]
| 0x0804414e 9143 bics r1, r2
| 0x08044150 84f83010 strb.w r1, [r4, 0x30]
| 0x08044154 84f83130 strb.w r3, [r4, 0x31]
| 0x08044158 94f83010 ldrb.w r1, [r4, 0x30]
| 0x0804415c 0907 lsls r1, r1, 0x1c
| ,=< 0x0804415e 13d4 bmi 0x8044188
| | 0x08044160 dff88414 ldr.w r1, [0x080445ec] ; [0x80445ec:4]=0x2001e56c
| | 0x08044164 0978 ldrb r1, [r1]
| | 0x08044166 94f83620 ldrb.w r2, [r4, 0x36]
| | 0x0804416a 1143 orrs r1, r2
| | 0x0804416c dff87824 ldr.w r2, [0x080445ec] ; [0x80445ec:4]=0x2001e56c
| | 0x08044170 1170 strb r1, [r2]
| | 0x08044172 f6b2 uxtb r6, r6
| | 0x08044174 dff87414 ldr.w r1, [0x080445f0] ; [0x80445f0:4]=0x8095fa0
| | 0x08044178 715c ldrb r1, [r6, r1]
| | 0x0804417a 94f83520 ldrb.w r2, [r4, 0x35]
| | 0x0804417e 1143 orrs r1, r2
| | 0x08044180 f6b2 uxtb r6, r6
| | 0x08044182 dff86824 ldr.w r2, [0x080445f2] ; [0x80445f0:4]=0x8095fa0
| | 0x08044186 b154 strb r1, [r6, r2]
| `-> 0x08044188 0100 movs r1, r0
| 0x0804418a 2000 movs r0, r4
| 0x0804418c 00f049f8 bl func_44222
| 0x08044190 2800 movs r0, r5
| 0x08044192 c0b2 uxtb r0, r0
\ 0x08044194 f2bd pop {r1, r4, r5, r6, r7, pc}
/ (fcn) func_44196 140
| Caller: md380_OSMboxPend OSSemPend
| func_44196 ();
| 0x08044196 dff84414 ldr.w r1, [0x080445e2] ; [0x80445e0:4]=0x2001e724
| 0x0804419a 0968 ldr r1, [r1]
| 0x0804419c c861 str r0, [r1, 0x1c]
| 0x0804419e dff83c14 ldr.w r1, [0x080445e2] ; [0x80445e0:4]=0x2001e724
| 0x080441a2 0968 ldr r1, [r1]
| 0x080441a4 91f83410 ldrb.w r1, [r1, 0x34]
| 0x080441a8 0918 adds r1, r1, r0
| 0x080441aa c97a ldrb r1, [r1, 0xb]
| 0x080441ac dff82c24 ldr.w r2, [0x080445e0] ; [0x80445e0:4]=0x2001e724
| 0x080441b0 1268 ldr r2, [r2]
| 0x080441b2 92f83520 ldrb.w r2, [r2, 0x35]
| 0x080441b6 1143 orrs r1, r2
| 0x080441b8 dff82024 ldr.w r2, [0x080445e0] ; [0x80445e0:4]=0x2001e724
| 0x080441bc 1268 ldr r2, [r2]
| 0x080441be 92f83420 ldrb.w r2, [r2, 0x34]
| 0x080441c2 1218 adds r2, r2, r0
| 0x080441c4 d172 strb r1, [r2, 0xb]
| 0x080441c6 817a ldrb r1, [r0, 0xa]
| 0x080441c8 dff81024 ldr.w r2, [0x080445e0] ; [0x80445e0:4]=0x2001e724
| 0x080441cc 1268 ldr r2, [r2]
| 0x080441ce 92f83620 ldrb.w r2, [r2, 0x36]
| 0x080441d2 1143 orrs r1, r2
| 0x080441d4 8172 strb r1, [r0, 0xa]
| 0x080441d6 dff80404 ldr.w r0, [0x080445e2] ; [0x80445e0:4]=0x2001e724
| 0x080441da 0068 ldr r0, [r0]
| 0x080441dc 90f83400 ldrb.w r0, [r0, 0x34]
| 0x080441e0 c0b2 uxtb r0, r0
| 0x080441e2 dff80814 ldr.w r1, [0x080445f2] ; [0x80445f0:4]=0x8095fa0
| 0x080441e6 415c ldrb r1, [r0, r1]
| 0x080441e8 dff8f023 ldr.w r2, [0x080445e0] ; [0x80445e0:4]=0x2001e724
| 0x080441ec 1268 ldr r2, [r2]
| 0x080441ee 92f83520 ldrb.w r2, [r2, 0x35]
| 0x080441f2 9143 bics r1, r2
| 0x080441f4 c0b2 uxtb r0, r0
| 0x080441f6 dff8f423 ldr.w r2, [0x080445f2] ; [0x80445f0:4]=0x8095fa0
| 0x080441fa 8154 strb r1, [r0, r2]
| 0x080441fc c0b2 uxtb r0, r0
| 0x080441fe dff8ec13 ldr.w r1, [0x080445f2] ; [0x80445f0:4]=0x8095fa0
| 0x08044202 405c ldrb r0, [r0, r1]
| 0x08044204 0028 cmp r0, 0
| ,=< 0x08044206 0bd1 bne 0x8044220
| | 0x08044208 dff8dc03 ldr.w r0, [0x080445ec] ; [0x80445ec:4]=0x2001e56c
| | 0x0804420c 0078 ldrb r0, [r0]
| | 0x0804420e dff8cc13 ldr.w r1, [0x080445e2] ; [0x80445e0:4]=0x2001e724
| | 0x08044212 0968 ldr r1, [r1]
| | 0x08044214 91f83610 ldrb.w r1, [r1, 0x36]
| | 0x08044218 8843 bics r0, r1
| | 0x0804421a dff8cc13 ldr.w r1, [0x080445ee] ; [0x80445ec:4]=0x2001e56c
| | 0x0804421e 0870 strb r0, [r1]
\ `-> 0x08044220 7047 bx lr
/ (fcn) func_44222 50
| Caller: md380_OSMboxPend func_4411c OSSemPend
| func_44222 ();
| 0x08044222 10b4 push {r4}
| 0x08044224 90f83420 ldrb.w r2, [r0, 0x34]
| 0x08044228 d2b2 uxtb r2, r2
| 0x0804422a 5318 adds r3, r2, r1
| 0x0804422c db7a ldrb r3, [r3, 0xb]
| 0x0804422e 90f83540 ldrb.w r4, [r0, 0x35]
| 0x08044232 a343 bics r3, r4
| 0x08044234 d2b2 uxtb r2, r2
| 0x08044236 5418 adds r4, r2, r1
| 0x08044238 e372 strb r3, [r4, 0xb]
| 0x0804423a d2b2 uxtb r2, r2
| 0x0804423c 5218 adds r2, r2, r1
| 0x0804423e d27a ldrb r2, [r2, 0xb]
| 0x08044240 002a cmp r2, 0
| ,=< 0x08044242 05d1 bne 0x8044250
| | 0x08044244 8a7a ldrb r2, [r1, 0xa]
| | 0x08044246 90f83600 ldrb.w r0, [r0, 0x36]
| | 0x0804424a 32ea0000 bics.w r0, r2, r0
| | 0x0804424e 8872 strb r0, [r1, 0xa]
| `-> 0x08044250 10bc pop {r4}
\ 0x08044252 7047 bx lr
/ (fcn) func_44254 26
| Caller: func_31038 OSSemCreate
| func_44254 ();
| 0x08044254 0021 movs r1, 0
| 0x08044256 8172 strb r1, [r0, 0xa]
| 0x08044258 0021 movs r1, 0
| ,=< 0x0804425a 04e0 b 0x8044266
| .--> 0x0804425c c9b2 uxtb r1, r1
| || 0x0804425e 0a18 adds r2, r1, r0
| || 0x08044260 0023 movs r3, 0
| || 0x08044262 d372 strb r3, [r2, 0xb]
| || 0x08044264 491c adds r1, r1, 1
| |`-> 0x08044266 c9b2 uxtb r1, r1
| | 0x08044268 0829 cmp r1, 8 ; 8
| `==< 0x0804426a f7d3 blo 0x804425c
\ 0x0804426c 7047 bx lr
/ (fcn) Func5_of_10 96
| Caller: InitGlobalsAndStartRealTimeKernel
| Func5_of_10 ();
| 0x0804426e 10b5 push {r4, lr}
| 0x08044270 4ff4c061 mov.w r1, 0x600 ; 1536
| 0x08044274 dff87c03 ldr.w r0, [0x080445f8] ; [0x80445f8:4]=0x2001e708
| 0x08044278 00f0a5f8 bl func_443c6
| 0x0804427c 0020 movs r0, 0
| ,=< 0x0804427e 12e0 b 0x80442a6
| .--> 0x08044280 411c adds r1, r0, 1
| || 0x08044282 80b2 uxth r0, r0
| || 0x08044284 1822 movs r2, 0x18 ; 24
| || 0x08044286 dff86c33 ldr.w r3, [0x080445fa] ; [0x80445f8:4]=0x2001e708
| || 0x0804428a 02fb0032 mla r2, r2, r0, r3
| || 0x0804428e 89b2 uxth r1, r1
| || 0x08044290 1823 movs r3, 0x18 ; 24
| || 0x08044292 dff86043 ldr.w r4, [0x080445fa] ; [0x80445f8:4]=0x2001e708
| || 0x08044296 03fb0141 mla r1, r3, r1, r4
| || 0x0804429a 0023 movs r3, 0
| || 0x0804429c 1370 strb r3, [r2]
| || 0x0804429e 5160 str r1, [r2, 4]
| || 0x080442a0 74a1 adr r1, 0x1d0
| || 0x080442a2 5161 str r1, [r2, 0x14]
| || 0x080442a4 401c adds r0, r0, 1
| |`-> 0x080442a6 80b2 uxth r0, r0
| | 0x080442a8 3f28 cmp r0, 0x3f ; '?' ; 63
| `==< 0x080442aa e9d3 blo 0x8044280
| 0x080442ac 80b2 uxth r0, r0
| 0x080442ae 1821 movs r1, 0x18 ; 24
| 0x080442b0 dff84023 ldr.w r2, [0x080445f8] ; [0x80445f8:4]=0x2001e708
| 0x080442b4 01fb0022 mla r2, r1, r0, r2
| 0x080442b8 0020 movs r0, 0
| 0x080442ba 1070 strb r0, [r2]
| 0x080442bc 0020 movs r0, 0
| 0x080442be 5060 str r0, [r2, 4]
| 0x080442c0 6ca0 adr r0, 0x1b0
| 0x080442c2 5061 str r0, [r2, 0x14]
| 0x080442c4 dff83003 ldr.w r0, [0x080445fc] ; [0x80445fc:4]=0x2001e957
| 0x080442c8 ca49 ldr r1, [0x080445f4] ; [0x80445f4:4]=0x200172b8
| 0x080442ca 0160 str r1, [r0]
\ 0x080442cc 10bd pop {r4, pc}
/ (fcn) ClearSomeVariables 44
| Caller: InitGlobalsAndStartRealTimeKernel
| ClearSomeVariables ();
| 0x080442ce c448 ldr r0, [0x080445e2] ; [0x80445e0:4]=0x2001e724
| 0x080442d0 0021 movs r1, 0
| 0x080442d2 0160 str r1, [r0]
| 0x080442d4 b948 ldr r0, [0x080445bc] ; [0x80445bc:4]=0x2001e951
| 0x080442d6 0021 movs r1, 0
| 0x080442d8 0170 strb r1, [r0]
| 0x080442da ba48 ldr r0, [0x080445c6] ; [0x80445c4:4]=0x2001e952
| 0x080442dc 0021 movs r1, 0
| 0x080442de 0170 strb r1, [r0]
| 0x080442e0 c648 ldr r0, [0x080445fc] ; [0x80445fc:4]=0x2001e957
| 0x080442e2 0021 movs r1, 0
| 0x080442e4 0170 strb r1, [r0]
| 0x080442e6 b648 ldr r0, [0x080445c2] ; [0x80445c0:4]=0x2001e956
| 0x080442e8 0021 movs r1, 0
| 0x080442ea 0170 strb r1, [r0]
| 0x080442ec ba48 ldr r0, [0x080445d8] ; [0x80445d8:4]=0x2001e704
| 0x080442ee 0021 movs r1, 0
| 0x080442f0 0160 str r1, [r0]
| 0x080442f2 c348 ldr r0, [0x08044602] ; [0x8044600:4]=0x2001e710 OSIdleTaskCtr
| 0x080442f4 0021 movs r1, 0
| 0x080442f6 0160 str r1, [r0]
\ 0x080442f8 7047 bx lr
/ (fcn) ClearSomeBlocksInRAM 52
| Caller: InitGlobalsAndStartRealTimeKernel
| ClearSomeBlocksInRAM ();
| 0x080442fa bb48 ldr r0, [0x080445ea] ; [0x80445e8:4]=0x2001e955
| 0x080442fc 0021 movs r1, 0
| 0x080442fe 0170 strb r1, [r0]
| 0x08044300 0020 movs r0, 0
| ,=< 0x08044302 04e0 b 0x804430e
| .--> 0x08044304 c0b2 uxtb r0, r0
| || 0x08044306 b949 ldr r1, [0x080445ee] ; [0x80445ec:4]=0x2001e56c
| || 0x08044308 0022 movs r2, 0
| || 0x0804430a 4254 strb r2, [r0, r1]
| || 0x0804430c 401c adds r0, r0, 1
| |`-> 0x0804430e c0b2 uxtb r0, r0
| | 0x08044310 0828 cmp r0, 8 ; 8
| `==< 0x08044312 f7d3 blo 0x8044304
| 0x08044314 af48 ldr r0, [0x080445d4] ; [0x80445d4:4]=0x2001e953
| 0x08044316 0021 movs r1, 0
| 0x08044318 0170 strb r1, [r0]
| 0x0804431a ab48 ldr r0, [0x080445ca] ; [0x80445c8:4]=0x2001e954
| 0x0804431c 0021 movs r1, 0
| 0x0804431e 0170 strb r1, [r0]
| 0x08044320 ab48 ldr r0, [0x080445d0] ; [0x80445d0:4]=0x2001e71c
| 0x08044322 0021 movs r1, 0
| 0x08044324 0160 str r1, [r0]
| 0x08044326 ad48 ldr r0, [0x080445de] ; [0x80445dc:4]=0x2001e714
| 0x08044328 0021 movs r1, 0
| 0x0804432a 0160 str r1, [r0]
\ 0x0804432c 7047 bx lr
/ (fcn) Create_uCOS_Idle_Task 58
| Caller: InitGlobalsAndStartRealTimeKernel
| Create_uCOS_Idle_Task ();
| 0x0804432e 10b5 push {r4, lr}
| 0x08044330 86b0 sub sp, 0x18
| 0x08044332 0320 movs r0, 3 ; 3
| 0x08044334 0490 str r0, [sp, 0x10]
| 0x08044336 0020 movs r0, 0
| 0x08044338 0390 str r0, [sp, 0xc]
| 0x0804433a 4ff48070 mov.w r0, 0x100 ; 256 ; Task stack size (static array)
| 0x0804433e 0290 str r0, [sp, 8]
| 0x08044340 b048 ldr r0, [0x08044604] ; [0x8044604:4]=0x20018a74
| 0x08044342 0190 str r0, [sp, 4]
| 0x08044344 4ff6ff70 movw r0, 0xffff
| 0x08044348 0090 str r0, [sp]
| 0x0804434a 3f23 movs r3, 0x3f ; '?' ; 63
| 0x0804434c ae4a ldr r2, [0x08044608] ; [0x8044608:4]=0x20018e70 Stack_for_Idle_Task
| 0x0804434e 0021 movs r1, 0
| 0x08044350 0ff20110 addw r0, pc, 0x101 ; R0 = pTaskFunc = next PC + 0x101 = OS_IdleTask
| 0x08044354 0af014f9 bl OSTaskCreateExt ; OSTaskCreateExt(pTaskFunc,pvData,pTopOfStack,u8Prio,u16ID,pBotOfStack,u32StackSize,pvExt,u16Options)
| 0x08044358 0400 movs r4, r0
| 0x0804435a 05aa add r2, sp, 0x14
| 0x0804435c ab49 ldr r1, [0x0804460c] ; [0x804460c:4]=0x80f8f54 s_uCOS2_Idle_Task
| 0x0804435e 3f20 movs r0, 0x3f ; '?' ; 63
| 0x08044360 0af074f9 bl OSTaskNameSet
| 0x08044364 06b0 add sp, 0x18
\ 0x08044366 10bd pop {r4, pc}
/ (fcn) Func4_of_10 94
| Caller: InitGlobalsAndStartRealTimeKernel
| Func4_of_10 ();
| 0x08044368 10b5 push {r4, lr}
| 0x0804436a 41f2bc01 movw r1, 0x10bc
| 0x0804436e a848 ldr r0, [0x08044612] ; [0x8044610:4]=0x200104d8
| 0x08044370 00f029f8 bl func_443c6
| 0x08044374 4ff48071 mov.w r1, 0x100 ; 256
| 0x08044378 9448 ldr r0, [0x080445cc] ; [0x80445cc:4]=0x2001d01c
| 0x0804437a 00f024f8 bl func_443c6
| 0x0804437e 0020 movs r0, 0
| ,=< 0x08044380 0ee0 b 0x80443a0
| .--> 0x08044382 411c adds r1, r0, 1
| || 0x08044384 c0b2 uxtb r0, r0
| || 0x08044386 5422 movs r2, 0x54 ; 'T' ; 84
| || 0x08044388 a14b ldr r3, [0x08044610] ; [0x8044610:4]=0x200104d8
| || 0x0804438a 02fb0032 mla r2, r2, r0, r3
| || 0x0804438e c9b2 uxtb r1, r1
| || 0x08044390 5423 movs r3, 0x54 ; 'T' ; 84
| || 0x08044392 9f4c ldr r4, [0x08044612] ; [0x8044610:4]=0x200104d8
| || 0x08044394 03fb0141 mla r1, r3, r1, r4
| || 0x08044398 5161 str r1, [r2, 0x14]
| || 0x0804439a 36a1 adr r1, 0xd8
| || 0x0804439c d164 str r1, [r2, 0x4c]
| || 0x0804439e 401c adds r0, r0, 1
| |`-> 0x080443a0 c0b2 uxtb r0, r0
| | 0x080443a2 3228 cmp r0, 0x32 ; '2' ; 50
| `==< 0x080443a4 edd3 blo 0x8044382
| 0x080443a6 c0b2 uxtb r0, r0
| 0x080443a8 5421 movs r1, 0x54 ; 'T' ; 84
| 0x080443aa 994a ldr r2, [0x08044612] ; [0x8044610:4]=0x200104d8
| 0x080443ac 01fb0022 mla r2, r1, r0, r2
| 0x080443b0 0020 movs r0, 0
| 0x080443b2 5061 str r0, [r2, 0x14]
| 0x080443b4 2fa0 adr r0, 0xbc
| 0x080443b6 d064 str r0, [r2, 0x4c]
| 0x080443b8 8a48 ldr r0, [0x080445e4] ; [0x80445e4:4]=0x2001e720
| 0x080443ba 0021 movs r1, 0
| 0x080443bc 0160 str r1, [r0]
| 0x080443be 9548 ldr r0, [0x08044616] ; [0x8044614:4]=0x2001e718
| 0x080443c0 9349 ldr r1, [0x08044610] ; [0x8044610:4]=0x200104d8
| 0x080443c2 0160 str r1, [r0]
\ 0x080443c4 10bd pop {r4, pc}
/ (fcn) func_443c6 18
| Caller: Func5_of_10 func_482c4 CreateTwoSemasAndTimerTask Func4_of_10
| func_443c6 ();
| ,=< 0x080443c6 03e0 b 0x80443d0
| .--> 0x080443c8 0022 movs r2, 0
| || 0x080443ca 0270 strb r2, [r0]
| || 0x080443cc 401c adds r0, r0, 1
| || 0x080443ce 491e subs r1, r1, 1
| |`-> 0x080443d0 89b2 uxth r1, r1
| | 0x080443d2 0029 cmp r1, 0
| `==< 0x080443d4 f8d1 bne 0x80443c8
\ 0x080443d6 7047 bx lr
/ (fcn) func_443d8 92
| Caller: OSTimeDly md380_OSMboxPost OSSemPend func_43fca OSSemPost func_47eb4
| md380_OSMboxPend OSTaskCreateExt func_4e4cc RTCAndTimerIRQ_Sub2
| func_443d8 ();
| 0x080443d8 10b5 push {r4, lr}
| 0x080443da 0024 movs r4, 0
| 0x080443dc fff702fd bl OS_ENTER_CRITICAL
| 0x080443e0 0400 movs r4, r0
| 0x080443e2 7648 ldr r0, [0x080445be] ; [0x80445bc:4]=0x2001e951
| 0x080443e4 0078 ldrb r0, [r0]
| 0x080443e6 0028 cmp r0, 0
| ,=< 0x080443e8 20d1 bne 0x804442c
| | 0x080443ea 7648 ldr r0, [0x080445c6] ; [0x80445c4:4]=0x2001e952
| | 0x080443ec 0078 ldrb r0, [r0]
| | 0x080443ee 0028 cmp r0, 0
| ,==< 0x080443f0 1cd1 bne 0x804442c
| || 0x080443f2 00f01ff8 bl func_44434
| || 0x080443f6 7448 ldr r0, [0x080445ca] ; [0x80445c8:4]=0x2001e954
| || 0x080443f8 0078 ldrb r0, [r0]
| || 0x080443fa 7449 ldr r1, [0x080445ce] ; [0x80445cc:4]=0x2001d01c
| || 0x080443fc 51f82000 ldr.w r0, [r1, r0, lsl 2]
| || 0x08044400 7349 ldr r1, [0x080445d0] ; [0x80445d0:4]=0x2001e71c
| || 0x08044402 0860 str r0, [r1]
| || 0x08044404 7048 ldr r0, [0x080445c8] ; [0x80445c8:4]=0x2001e954
| || 0x08044406 0078 ldrb r0, [r0]
| || 0x08044408 7249 ldr r1, [0x080445d4] ; [0x80445d4:4]=0x2001e953
| || 0x0804440a 0978 ldrb r1, [r1]
| || 0x0804440c 8842 cmp r0, r1
| ,===< 0x0804440e 0dd0 beq 0x804442c
| ||| 0x08044410 6f48 ldr r0, [0x080445d0] ; [0x80445d0:4]=0x2001e71c
| ||| 0x08044412 0068 ldr r0, [r0]
| ||| 0x08044414 806b ldr r0, [r0, 0x38]
| ||| 0x08044416 401c adds r0, r0, 1
| ||| 0x08044418 6d49 ldr r1, [0x080445d0] ; [0x80445d0:4]=0x2001e71c
| ||| 0x0804441a 0968 ldr r1, [r1]
| ||| 0x0804441c 8863 str r0, [r1, 0x38]
| ||| 0x0804441e 6e48 ldr r0, [0x080445da] ; [0x80445d8:4]=0x2001e704
| ||| 0x08044420 0068 ldr r0, [r0]
| ||| 0x08044422 401c adds r0, r0, 1
| ||| 0x08044424 6c49 ldr r1, [0x080445d8] ; [0x80445d8:4]=0x2001e704
| ||| 0x08044426 0860 str r0, [r1]
| ||| 0x08044428 fff7f1fc bl func_43e0e
| ```-> 0x0804442c 2000 movs r0, r4
| 0x0804442e fff7ddfc bl OS_EXIT_CRITICAL
\ 0x08044432 10bd pop {r4, pc}
/ (fcn) func_44434 30
| Caller: SysTick_Sub3 func_443d8 func_44024
| func_44434 ();
| 0x08044434 6c48 ldr r0, [0x080445e8] ; [0x80445e8:4]=0x2001e955
| 0x08044436 0078 ldrb r0, [r0]
| 0x08044438 6d49 ldr r1, [0x080445f0] ; [0x80445f0:4]=0x8095fa0
| 0x0804443a 405c ldrb r0, [r0, r1]
| 0x0804443c c0b2 uxtb r0, r0
| 0x0804443e c100 lsls r1, r0, 3
| 0x08044440 c0b2 uxtb r0, r0
| 0x08044442 6a4a ldr r2, [0x080445ee] ; [0x80445ec:4]=0x2001e56c
| 0x08044444 805c ldrb r0, [r0, r2]
| 0x08044446 6a4a ldr r2, [0x080445f2] ; [0x80445f0:4]=0x8095fa0
| 0x08044448 805c ldrb r0, [r0, r2]
| 0x0804444a 0818 adds r0, r1, r0
| 0x0804444c 5e49 ldr r1, [0x080445c8] ; [0x80445c8:4]=0x2001e954
| 0x0804444e 0870 strb r0, [r1]
\ 0x08044450 7047 bx lr
/ (fcn) OS_IdleTask 32
| OS_IdleTask ();
| 0x08044452 0000 movs r0, r0 ; pData=pData, unused argument in R0
| 0x08044454 0021 movs r1, 0
| .-> 0x08044456 fff7c5fc bl OS_ENTER_CRITICAL ; endless 'Idle' task loop
| | 0x0804445a 0100 movs r1, r0
| | 0x0804445c 6848 ldr r0, [0x08044600] ; [0x8044600:4]=0x2001e710 OSIdleTaskCtr
| | 0x0804445e 0068 ldr r0, [r0]
| | 0x08044460 401c adds r0, r0, 1 ; OSIdleTaskCtr++
| | 0x08044462 674a ldr r2, [0x08044602] ; [0x8044600:4]=0x2001e710 OSIdleTaskCtr
| | 0x08044464 1060 str r0, [r2]
| | 0x08044466 0800 movs r0, r1
| | 0x08044468 fff7c0fc bl OS_EXIT_CRITICAL
| | 0x0804446c 09f06afe bl OSIdleTaskHook
\ `=< 0x08044470 f1e7 b 0x8044456 ; must never return
/ (fcn) func_44478 318
| Caller: OSTaskCreateExt func_4e4cc
| func_44478 ();
| 0x08044478 2de9f24f push.w {r1, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0804447c 0500 movs r5, r0
| 0x0804447e 1700 movs r7, r2
| 0x08044480 9846 mov r8, r3
| 0x08044482 ddf82890 ldr.w sb, [sp, 0x28]
| 0x08044486 ddf82ca0 ldr.w sl, [sp, 0x2c]
| 0x0804448a 0c9c ldr r4, [sp, 0x30]
| 0x0804448c 5ff0000b movs.w fp, 0
| 0x08044490 fff7a8fc bl OS_ENTER_CRITICAL
| 0x08044494 8346 mov fp, r0
| 0x08044496 5f48 ldr r0, [0x08044616] ; [0x8044614:4]=0x2001e718
| 0x08044498 0668 ldr r6, [r0]
| 0x0804449a 002e cmp r6, 0
| ,=< 0x0804449c 00f08580 beq.w 0x80445aa
| | 0x080444a0 7069 ldr r0, [r6, 0x14]
| | 0x080444a2 5c49 ldr r1, [0x08044616] ; [0x8044614:4]=0x2001e718
| | 0x080444a4 0860 str r0, [r1]
| | 0x080444a6 5846 mov r0, fp
| | 0x080444a8 fff7a0fc bl OS_EXIT_CRITICAL
| | 0x080444ac 0098 ldr r0, [sp]
| | 0x080444ae 3060 str r0, [r6]
| | 0x080444b0 86f83250 strb.w r5, [r6, 0x32]
| | 0x080444b4 0020 movs r0, 0
| | 0x080444b6 86f83000 strb.w r0, [r6, 0x30]
| | 0x080444ba 0020 movs r0, 0
| | 0x080444bc 86f83100 strb.w r0, [r6, 0x31]
| | 0x080444c0 0020 movs r0, 0
| | 0x080444c2 f062 str r0, [r6, 0x2c]
| | 0x080444c4 c6f804a0 str.w sl, [r6, 4]
| | 0x080444c8 c6f80c90 str.w sb, [r6, 0xc]
| | 0x080444cc b760 str r7, [r6, 8]
| | 0x080444ce 3482 strh r4, [r6, 0x10]
| | 0x080444d0 a6f81280 strh.w r8, [r6, 0x12]
| | 0x080444d4 0020 movs r0, 0
| | 0x080444d6 86f83700 strb.w r0, [r6, 0x37]
| | 0x080444da edb2 uxtb r5, r5
| | 0x080444dc e808 lsrs r0, r5, 3
| | 0x080444de 86f83400 strb.w r0, [r6, 0x34]
| | 0x080444e2 15f00700 ands r0, r5, 7
| | 0x080444e6 86f83300 strb.w r0, [r6, 0x33]
| | 0x080444ea 0120 movs r0, 1 ; 1
| | 0x080444ec 96f83410 ldrb.w r1, [r6, 0x34]
| | 0x080444f0 8840 lsls r0, r1
| | 0x080444f2 86f83600 strb.w r0, [r6, 0x36]
| | 0x080444f6 0120 movs r0, 1 ; 1
| | 0x080444f8 96f83310 ldrb.w r1, [r6, 0x33]
| | 0x080444fc 8840 lsls r0, r1
| | 0x080444fe 86f83500 strb.w r0, [r6, 0x35]
| | 0x08044502 0020 movs r0, 0
| | 0x08044504 f061 str r0, [r6, 0x1c]
| | 0x08044506 0020 movs r0, 0
| | 0x08044508 7062 str r0, [r6, 0x24]
| | 0x0804450a 0020 movs r0, 0
| | 0x0804450c 3062 str r0, [r6, 0x20]
| | 0x0804450e 0020 movs r0, 0
| | 0x08044510 b063 str r0, [r6, 0x38]
| | 0x08044512 0020 movs r0, 0
| | 0x08044514 3064 str r0, [r6, 0x40]
| | 0x08044516 0020 movs r0, 0
| | 0x08044518 f063 str r0, [r6, 0x3c]
| | 0x0804451a 0020 movs r0, 0
| | 0x0804451c 7064 str r0, [r6, 0x44]
| | 0x0804451e 0020 movs r0, 0
| | 0x08044520 b064 str r0, [r6, 0x48]
| | 0x08044522 25a0 adr r0, 0x94
| | 0x08044524 f064 str r0, [r6, 0x4c]
| | 0x08044526 0020 movs r0, 0
| ,==< 0x08044528 05e0 b 0x8044536
| .---> 0x0804452a c0b2 uxtb r0, r0
| ||| 0x0804452c 16eb8001 adds.w r1, r6, r0, lsl 2
| ||| 0x08044530 0022 movs r2, 0
| ||| 0x08044532 0a65 str r2, [r1, 0x50]
| ||| 0x08044534 401c adds r0, r0, 1
| |`--> 0x08044536 c0b2 uxtb r0, r0
| | | 0x08044538 0028 cmp r0, 0
| `===< 0x0804453a f6d0 beq 0x804452a
| | 0x0804453c 3000 movs r0, r6
| | 0x0804453e 09f0abfe bl func_4e298
| | 0x08044542 3000 movs r0, r6
| | 0x08044544 09f0fafd bl func_4e13c
| | 0x08044548 fff74cfc bl OS_ENTER_CRITICAL
| | 0x0804454c 8346 mov fp, r0
| | 0x0804454e edb2 uxtb r5, r5
| | 0x08044550 1e48 ldr r0, [0x080445cc] ; [0x80445cc:4]=0x2001d01c
| | 0x08044552 40f82560 str.w r6, [r0, r5, lsl 2]
| | 0x08044556 2348 ldr r0, [0x080445e6] ; [0x80445e4:4]=0x2001e720
| | 0x08044558 0068 ldr r0, [r0]
| | 0x0804455a 7061 str r0, [r6, 0x14]
| | 0x0804455c 0020 movs r0, 0
| | 0x0804455e b061 str r0, [r6, 0x18]
| | 0x08044560 2048 ldr r0, [0x080445e4] ; [0x80445e4:4]=0x2001e720
| | 0x08044562 0068 ldr r0, [r0]
| | 0x08044564 0028 cmp r0, 0
| ,==< 0x08044566 02d0 beq 0x804456e
| || 0x08044568 1e48 ldr r0, [0x080445e4] ; [0x80445e4:4]=0x2001e720
| || 0x0804456a 0068 ldr r0, [r0]
| || 0x0804456c 8661 str r6, [r0, 0x18]
| `--> 0x0804456e 1d48 ldr r0, [0x080445e6] ; [0x80445e4:4]=0x2001e720
| | 0x08044570 0660 str r6, [r0]
| | 0x08044572 1d48 ldr r0, [0x080445ea] ; [0x80445e8:4]=0x2001e955
| | 0x08044574 0078 ldrb r0, [r0]
| | 0x08044576 96f83610 ldrb.w r1, [r6, 0x36]
| | 0x0804457a 0843 orrs r0, r1
| | 0x0804457c 1a49 ldr r1, [0x080445e8] ; [0x80445e8:4]=0x2001e955
| | 0x0804457e 0870 strb r0, [r1]
| | 0x08044580 96f83400 ldrb.w r0, [r6, 0x34]
| | 0x08044584 1949 ldr r1, [0x080445ec] ; [0x80445ec:4]=0x2001e56c
| | 0x08044586 405c ldrb r0, [r0, r1]
| | 0x08044588 96f83510 ldrb.w r1, [r6, 0x35]
| | 0x0804458c 0843 orrs r0, r1
| | 0x0804458e 96f83410 ldrb.w r1, [r6, 0x34]
| | 0x08044592 164a ldr r2, [0x080445ee] ; [0x80445ec:4]=0x2001e56c
| | 0x08044594 8854 strb r0, [r1, r2]
| | 0x08044596 1948 ldr r0, [0x080445fe] ; [0x80445fc:4]=0x2001e957
| | 0x08044598 0078 ldrb r0, [r0]
| | 0x0804459a 401c adds r0, r0, 1
| | 0x0804459c 1749 ldr r1, [0x080445fc] ; [0x80445fc:4]=0x2001e957
| | 0x0804459e 0870 strb r0, [r1]
| | 0x080445a0 5846 mov r0, fp
| | 0x080445a2 fff723fc bl OS_EXIT_CRITICAL
| | 0x080445a6 0020 movs r0, 0
| ,==< 0x080445a8 03e0 b 0x80445b2
| |`-> 0x080445aa 5846 mov r0, fp
| | 0x080445ac fff71efc bl OS_EXIT_CRITICAL
| | 0x080445b0 4220 movs r0, 0x42 ; 'B' ; 66
\ `--> 0x080445b2 bde8f28f pop.w {r1, r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_447a4 86
| Caller: func_4915c
| func_447a4 ();
| 0x080447a4 30b4 push {r4, r5}
| 0x080447a6 0022 movs r2, 0
| 0x080447a8 0023 movs r3, 0
| 0x080447aa 848b ldrh r4, [r0, 0x1c]
| 0x080447ac 4ff24005 movw r5, 0xf040
| 0x080447b0 2c40 ands r4, r5
| 0x080447b2 8483 strh r4, [r0, 0x1c]
| 0x080447b4 0224 movs r4, 2 ; 2
| 0x080447b6 0484 strh r4, [r0, 0x20]
| 0x080447b8 848b ldrh r4, [r0, 0x1c]
| 0x080447ba 2200 movs r2, r4
| 0x080447bc 0c88 ldrh r4, [r1]
| 0x080447be b4f5007f cmp.w r4, 0x200 ; 512
| ,=< 0x080447c2 02d0 beq 0x80447ca
| | 0x080447c4 0c88 ldrh r4, [r1]
| | 0x080447c6 002c cmp r4, 0
| ,==< 0x080447c8 02d1 bne 0x80447d0
| |`-> 0x080447ca 4ff48073 mov.w r3, 0x100 ; 256
| |,=< 0x080447ce 08e0 b 0x80447e2
| `--> 0x080447d0 0c88 ldrh r4, [r1]
| | 0x080447d2 b4f5407f cmp.w r4, 0x300 ; 768
| ,==< 0x080447d6 03d0 beq 0x80447e0
| || 0x080447d8 0c88 ldrh r4, [r1]
| || 0x080447da b4f5807f cmp.w r4, 0x100 ; 256
| ,===< 0x080447de 00d1 bne 0x80447e2
| |`--> 0x080447e0 0023 movs r3, 0
| `-`-> 0x080447e2 4c88 ldrh r4, [r1, 2]
| 0x080447e4 8d88 ldrh r5, [r1, 4]
| 0x080447e6 8989 ldrh r1, [r1, 0xc]
| 0x080447e8 2943 orrs r1, r5
| 0x080447ea 2143 orrs r1, r4
| 0x080447ec 1943 orrs r1, r3
| 0x080447ee 51f40061 orrs r1, r1, 0x800
| 0x080447f2 0a43 orrs r2, r1
| 0x080447f4 8283 strh r2, [r0, 0x1c]
| 0x080447f6 30bc pop {r4, r5}
\ 0x080447f8 7047 bx lr
/ (fcn) 26
| Caller: menu_draw_sub_3ac46
| menu_draw_sub_4bae8 ();
| 0x0804bae8 0b88 ldrh r3, [r1]
| 0x0804baea d318 adds r3, r2, r3
| 0x0804baec 0380 strh r3, [r0]
| 0x0804baee 8b88 ldrh r3, [r1, 4]
| 0x0804baf0 9b1a subs r3, r3, r2
| 0x0804baf2 8380 strh r3, [r0, 4]
| 0x0804baf4 4b88 ldrh r3, [r1, 2]
| 0x0804baf6 d318 adds r3, r2, r3
| 0x0804baf8 4380 strh r3, [r0, 2]
| 0x0804bafa c988 ldrh r1, [r1, 6]
| 0x0804bafc 891a subs r1, r1, r2
| 0x0804bafe c180 strh r1, [r0, 6]
\ 0x0804bb00 7047 bx lr
/ (fcn) 26
| menu_28010 ();
| 0x08028010 00b5 push {lr}
| 0x08028012 83b0 sub sp, 0xc
| 0x08028014 00a9 add r1, sp, 0
| 0x08028016 00b2 sxth r0, r0
| 0x08028018 0ff094fe bl menu_37d44
| 0x0802801c bdf90600 ldrsh.w r0, [sp, 6]
| 0x08028020 bdf90210 ldrsh.w r1, [sp, 2]
| 0x08028024 401a subs r0, r0, r1
| 0x08028026 401c adds r0, r0, 1
\ 0x08028028 0ebd pop {r1, r2, r3, pc}
/ (fcn) F_858 94
| F_858 ();
| 0x08040d44 80b5 push {r7, lr}
| 0x08040d46 2248 ldr r0, [0x08040dd2] ; [0x8040dd0:4]=0x2001e5f0 radio_status_1
| 0x08040d48 8078 ldrb r0, [r0, 2]
| 0x08040d4a 50f00400 orrs r0, r0, 4
| 0x08040d4e 2049 ldr r1, [0x08040dd2] ; [0x8040dd0:4]=0x2001e5f0 radio_status_1
| 0x08040d50 8870 strb r0, [r1, 2]
| 0x08040d52 dff8580a ldr.w r0, [0x080417b2] ; [0x80417b0:4]=0x2001e810
| 0x08040d56 0068 ldr r0, [r0]
| 0x08040d58 fef774fd bl OSSemPost
| 0x08040d5c dff8440a ldr.w r0, [0x080417a8] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| 0x08040d60 0821 movs r1, 8 ; 8
| 0x08040d62 0170 strb r1, [r0]
| 0x08040d64 6721 movs r1, 0x67 ; 'g' ; 103
| 0x08040d66 5420 movs r0, 0x54 ; 'T' ; 84
| 0x08040d68 fff71ff9 bl c5000_spi0_writereg_1
| 0x08040d6c dff8400a ldr.w r0, [0x080417b4] ; [0x80417b4:4]=0x200049f8
| 0x08040d70 0021 movs r1, 0
| 0x08040d72 0180 strh r1, [r0]
| 0x08040d74 dff8a006 ldr.w r0, [0x0804141c] ; [0x804141c:4]=0x2001e79e
| 0x08040d78 dff87c16 ldr.w r1, [0x080413fc] ; [0x80413fc:4]=0x2001e86f
| 0x08040d7c 0968 ldr r1, [r1]
| 0x08040d7e 0160 str r1, [r0]
| 0x08040d80 dff8300a ldr.w r0, [0x080417b8] ; [0x80417b8:4]=0x20017eac
| 0x08040d84 dff8301a ldr.w r1, [0x080417bc] ; [0x80417bc:4]=0x2001e8f6
| 0x08040d88 0160 str r1, [r0]
| 0x08040d8a dff85806 ldr.w r0, [0x080413ea] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| 0x08040d8e 0921 movs r1, 9 ; 9
| 0x08040d90 0170 strb r1, [r0]
| 0x08040d92 dff85016 ldr.w r1, [0x080413ea] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| 0x08040d96 dff85006 ldr.w r0, [0x080413ee] ; [0x80413ec:4]=0x2001e8ab
| 0x08040d9a 0068 ldr r0, [r0]
| 0x08040d9c f0f7fef9 bl md380_OSMboxPost
\ 0x08040da0 01bd pop {r0, pc}
/ (fcn) kb_handler 614
| Caller: biglist_pollsubsys_maybe
| kb_handler ();
| 0x0804f94c 80b5 push {r7, lr}
| 0x0804f94e ad48 ldr r0, [0x0804fc06] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| 0x0804f950 0078 ldrb r0, [r0]
| 0x0804f952 0006 lsls r0, r0, 0x18
| ,=< 0x0804f954 00f19480 bmi.w 0x804fa80
| | 0x0804f958 fff740ff bl kb_handler_sub1
| | 0x0804f95c 0028 cmp r0, 0
| ,==< 0x0804f95e 00f08f80 beq.w 0x804fa80
| || 0x0804f962 a448 ldr r0, [0x0804fbf6] ; [0x804fbf4:4]=0x2001e7ba kb_row_col_pressed
| || 0x0804f964 0088 ldrh r0, [r0]
| || 0x0804f966 40f20121 movw r1, 0x201 ; 513
| || 0x0804f96a 0840 ands r0, r1
| || 0x0804f96c 40f20121 movw r1, 0x201 ; 513
| || 0x0804f970 8842 cmp r0, r1
| ,===< 0x0804f972 03d1 bne 0x804f97c
| ||| 0x0804f974 9248 ldr r0, [0x0804fbc0] ; [0x804fbc0:4]=0x2001e88b
| ||| 0x0804f976 0021 movs r1, 0
| ||| 0x0804f978 0170 strb r1, [r0]
| ,====< 0x0804f97a 02e0 b 0x804f982
| |`---> 0x0804f97c 9048 ldr r0, [0x0804fbc0] ; [0x804fbc0:4]=0x2001e88b
| | || 0x0804f97e 0121 movs r1, 1 ; 1
| | || 0x0804f980 0170 strb r1, [r0]
| `----> 0x0804f982 9c48 ldr r0, [0x0804fbf6] ; [0x804fbf4:4]=0x2001e7ba kb_row_col_pressed
| || 0x0804f984 0088 ldrh r0, [r0]
| || 0x0804f986 40f20141 movw r1, 0x401 ; 1025
| || 0x0804f98a 0840 ands r0, r1
| || 0x0804f98c 40f20141 movw r1, 0x401 ; 1025
| || 0x0804f990 8842 cmp r0, r1
| ,===< 0x0804f992 03d1 bne 0x804f99c
| ||| 0x0804f994 8d48 ldr r0, [0x0804fbcc] ; [0x804fbcc:4]=0x2001e88c
| ||| 0x0804f996 0021 movs r1, 0
| ||| 0x0804f998 0170 strb r1, [r0]
| ,====< 0x0804f99a 02e0 b 0x804f9a2
| |`---> 0x0804f99c 8b48 ldr r0, [0x0804fbcc] ; [0x804fbcc:4]=0x2001e88c
| | || 0x0804f99e 0121 movs r1, 1 ; 1
| | || 0x0804f9a0 0170 strb r1, [r0]
| `----> 0x0804f9a2 9448 ldr r0, [0x0804fbf6] ; [0x804fbf4:4]=0x2001e7ba kb_row_col_pressed
| || 0x0804f9a4 0078 ldrb r0, [r0]
| || 0x0804f9a6 10f04100 ands r0, r0, 0x41
| || 0x0804f9aa 4128 cmp r0, 0x41 ; 'A' ; 65
| ,===< 0x0804f9ac 03d1 bne 0x804f9b6
| ||| 0x0804f9ae 8b48 ldr r0, [0x0804fbde] ; [0x804fbdc:4]=0x2001e88d
| ||| 0x0804f9b0 0021 movs r1, 0
| ||| 0x0804f9b2 0170 strb r1, [r0]
| ,====< 0x0804f9b4 02e0 b 0x804f9bc
| |`---> 0x0804f9b6 8948 ldr r0, [0x0804fbde] ; [0x804fbdc:4]=0x2001e88d
| | || 0x0804f9b8 0121 movs r1, 1 ; 1
| | || 0x0804f9ba 0170 strb r1, [r0]
| `----> 0x0804f9bc 8d48 ldr r0, [0x0804fbf4] ; [0x804fbf4:4]=0x2001e7ba kb_row_col_pressed
| || 0x0804f9be 0088 ldrh r0, [r0]
| || 0x0804f9c0 40f20441 movw r1, 0x404 ; 1028
| || 0x0804f9c4 0840 ands r0, r1
| || 0x0804f9c6 40f20441 movw r1, 0x404 ; 1028
| || 0x0804f9ca 8842 cmp r0, r1
| ,===< 0x0804f9cc 03d1 bne 0x804f9d6
| ||| 0x0804f9ce 8e48 ldr r0, [0x0804fc0a] ; [0x804fc08:4]=0x2001e88f
| ||| 0x0804f9d0 0021 movs r1, 0
| ||| 0x0804f9d2 0170 strb r1, [r0]
| ,====< 0x0804f9d4 02e0 b 0x804f9dc
| |`---> 0x0804f9d6 8c48 ldr r0, [0x0804fc0a] ; [0x804fc08:4]=0x2001e88f
| | || 0x0804f9d8 0121 movs r1, 1 ; 1
| | || 0x0804f9da 0170 strb r1, [r0]
| `----> 0x0804f9dc 8548 ldr r0, [0x0804fbf4] ; [0x804fbf4:4]=0x2001e7ba kb_row_col_pressed
| || 0x0804f9de 0088 ldrh r0, [r0]
| || 0x0804f9e0 40f20111 movw r1, 0x101 ; 257
| || 0x0804f9e4 0840 ands r0, r1
| || 0x0804f9e6 40f20111 movw r1, 0x101 ; 257
| || 0x0804f9ea 8842 cmp r0, r1
| ,===< 0x0804f9ec 03d1 bne 0x804f9f6
| ||| 0x0804f9ee 8748 ldr r0, [0x0804fc0e] ; [0x804fc0c:4]=0x2001e88e
| ||| 0x0804f9f0 0021 movs r1, 0
| ||| 0x0804f9f2 0170 strb r1, [r0]
| ,====< 0x0804f9f4 02e0 b 0x804f9fc
| |`---> 0x0804f9f6 8548 ldr r0, [0x0804fc0e] ; [0x804fc0c:4]=0x2001e88e
| | || 0x0804f9f8 0121 movs r1, 1 ; 1
| | || 0x0804f9fa 0170 strb r1, [r0]
| `----> 0x0804f9fc 7d48 ldr r0, [0x0804fbf4] ; [0x804fbf4:4]=0x2001e7ba kb_row_col_pressed
| || 0x0804f9fe 0088 ldrh r0, [r0]
| || 0x0804fa00 0028 cmp r0, 0
| ,===< 0x0804fa02 05d0 beq 0x804fa10
| ||| 0x0804fa04 8248 ldr r0, [0x0804fc10] ; [0x804fc10:4]=0x2001e7bc kb_row_col_pressed_last
| ||| 0x0804fa06 0088 ldrh r0, [r0]
| ||| 0x0804fa08 7a49 ldr r1, [0x0804fbf4] ; [0x804fbf4:4]=0x2001e7ba kb_row_col_pressed
| ||| 0x0804fa0a 0988 ldrh r1, [r1]
| ||| 0x0804fa0c 8842 cmp r0, r1
| ,====< 0x0804fa0e 6fd0 beq 0x804faf0
| |`---> 0x0804fa10 7f48 ldr r0, [0x0804fc10] ; [0x804fc10:4]=0x2001e7bc kb_row_col_pressed_last
| | || 0x0804fa12 7849 ldr r1, [0x0804fbf6] ; [0x804fbf4:4]=0x2001e7ba kb_row_col_pressed
| | || 0x0804fa14 0988 ldrh r1, [r1]
| | || 0x0804fa16 0180 strh r1, [r0]
| | || 0x0804fa18 6e48 ldr r0, [0x0804fbd4] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| | || 0x0804fa1a 0078 ldrb r0, [r0]
| | || 0x0804fa1c c007 lsls r0, r0, 0x1f
| |,===< 0x0804fa1e 63d5 bpl 0x804fae8 ; jump if b0 not set, reset debounce
| |||| 0x0804fa20 7c48 ldr r0, [0x0804fc14] ; [0x804fc14:4]=0x2001e889 kb_keydown_debounce
| |||| 0x0804fa22 0078 ldrb r0, [r0]
| |||| 0x0804fa24 401c adds r0, r0, 1
| |||| 0x0804fa26 7b49 ldr r1, [0x0804fc16] ; [0x804fc14:4]=0x2001e889 kb_keydown_debounce
| |||| 0x0804fa28 0870 strb r0, [r1]
| |||| 0x0804fa2a 7a48 ldr r0, [0x0804fc16] ; [0x804fc14:4]=0x2001e889 kb_keydown_debounce
| |||| 0x0804fa2c 0078 ldrb r0, [r0]
| |||| 0x0804fa2e 0328 cmp r0, 3 ; 3
| ,=====< 0x0804fa30 26d3 blo 0x804fa80 ; not debounced yet, jump
| ||||| 0x0804fa32 7848 ldr r0, [0x0804fc16] ; [0x804fc14:4]=0x2001e889 kb_keydown_debounce
| ||||| 0x0804fa34 0021 movs r1, 0 ; definite keydown
| ||||| 0x0804fa36 0170 strb r1, [r0]
| ||||| 0x0804fa38 6648 ldr r0, [0x0804fbd4] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| ||||| 0x0804fa3a 0078 ldrb r0, [r0]
| ||||| 0x0804fa3c 10f0fe00 ands r0, r0, 0xfe
| ||||| 0x0804fa40 6449 ldr r1, [0x0804fbd4] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| ||||| 0x0804fa42 0870 strb r0, [r1]
| ||||| 0x0804fa44 7448 ldr r0, [0x0804fc18] ; [0x804fc18:4]=0x2001e7be kb_key_press_time
| ||||| 0x0804fa46 0088 ldrh r0, [r0]
| ||||| 0x0804fa48 7449 ldr r1, [0x0804fc1c] ; [0x804fc1c:4]=0x2001e7b8 kb_side_key_max_time
| ||||| 0x0804fa4a 0988 ldrh r1, [r1]
| ||||| 0x0804fa4c 8842 cmp r0, r1
| ,======< 0x0804fa4e 3ed2 bhs 0x804face ; jump if long keypress count is reached
| |||||| 0x0804fa50 5948 ldr r0, [0x0804fbb8] ; [0x804fbb8:4]=0x2001e5ec base_for_longpress_struct
| |||||| 0x0804fa52 8078 ldrb r0, [r0, 2]
| |||||| 0x0804fa54 c0f3c000 ubfx r0, r0, 3, 1
| |||||| 0x0804fa58 c007 lsls r0, r0, 0x1f
| ,=======< 0x0804fa5a 12d5 bpl 0x804fa82
| ||||||| 0x0804fa5c 5d48 ldr r0, [0x0804fbd4] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| ||||||| 0x0804fa5e 0078 ldrb r0, [r0]
| ||||||| 0x0804fa60 50f00800 orrs r0, r0, 8
| ||||||| 0x0804fa64 5b49 ldr r1, [0x0804fbd4] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| ||||||| 0x0804fa66 0870 strb r0, [r1]
| ||||||| 0x0804fa68 6648 ldr r0, [0x0804fc04] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0804fa6a 0078 ldrb r0, [r0]
| ||||||| 0x0804fa6c 50f08000 orrs r0, r0, 0x80
| ||||||| 0x0804fa70 6449 ldr r1, [0x0804fc04] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0804fa72 0870 strb r0, [r1]
| ||||||| 0x0804fa74 6348 ldr r0, [0x0804fc04] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0804fa76 c078 ldrb r0, [r0, 3]
| ||||||| 0x0804fa78 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x0804fa7c 6149 ldr r1, [0x0804fc04] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0804fa7e c870 strb r0, [r1, 3]
| --`--``-> 0x0804fa80 01bd pop {r0, pc} ; return from kb_handler but not end of function
| `-------> 0x0804fa82 6048 ldr r0, [0x0804fc06] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| | || 0x0804fa84 c078 ldrb r0, [r0, 3]
| | || 0x0804fa86 c0f34010 ubfx r0, r0, 5, 1
| | || 0x0804fa8a c007 lsls r0, r0, 0x1f
| | || ,=< 0x0804fa8c 0cd5 bpl 0x804faa8
| | || | 0x0804fa8e 5d48 ldr r0, [0x0804fc06] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| | || | 0x0804fa90 c078 ldrb r0, [r0, 3]
| | || | 0x0804fa92 10f0df00 ands r0, r0, 0xdf
| | || | 0x0804fa96 5b49 ldr r1, [0x0804fc06] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| | || | 0x0804fa98 c870 strb r0, [r1, 3]
| | || | 0x0804fa9a 4648 ldr r0, [0x0804fbb6] ; [0x804fbb4:4]=0x2001e608
| | || | 0x0804fa9c 0078 ldrb r0, [r0]
| | || | 0x0804fa9e 50f00400 orrs r0, r0, 4
| | || | 0x0804faa2 4449 ldr r1, [0x0804fbb6] ; [0x804fbb4:4]=0x2001e608
| | || | 0x0804faa4 0870 strb r0, [r1]
| ========< 0x0804faa6 ebe7 b 0x804fa80
| | || `-> 0x0804faa8 4a48 ldr r0, [0x0804fbd4] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| | || 0x0804faaa 0078 ldrb r0, [r0]
| | || 0x0804faac 50f00200 orrs r0, r0, 2
| | || 0x0804fab0 4849 ldr r1, [0x0804fbd4] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| | || 0x0804fab2 0870 strb r0, [r1]
| | || 0x0804fab4 3f48 ldr r0, [0x0804fbb4] ; [0x804fbb4:4]=0x2001e608
| | || 0x0804fab6 0078 ldrb r0, [r0]
| | || 0x0804fab8 50f00400 orrs r0, r0, 4
| | || 0x0804fabc 3d49 ldr r1, [0x0804fbb4] ; [0x804fbb4:4]=0x2001e608
| | || 0x0804fabe 0870 strb r0, [r1]
| | || 0x0804fac0 5048 ldr r0, [0x0804fc04] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| | || 0x0804fac2 0078 ldrb r0, [r0]
| | || 0x0804fac4 50f08000 orrs r0, r0, 0x80
| | || 0x0804fac8 4e49 ldr r1, [0x0804fc04] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| | || 0x0804faca 0870 strb r0, [r1]
| ========< 0x0804facc d8e7 b 0x804fa80
| `------> ;-- keypress_max_time_reached:
| `------> 0x0804face 4148 ldr r0, [0x0804fbd6] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| || 0x0804fad0 0078 ldrb r0, [r0]
| || 0x0804fad2 50f00800 orrs r0, r0, 8
| || 0x0804fad6 3f49 ldr r1, [0x0804fbd6] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| || 0x0804fad8 0870 strb r0, [r1]
| || 0x0804fada 4a48 ldr r0, [0x0804fc06] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| || 0x0804fadc 0078 ldrb r0, [r0]
| || 0x0804fade 50f08000 orrs r0, r0, 0x80
| || 0x0804fae2 4849 ldr r1, [0x0804fc06] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| || 0x0804fae4 0870 strb r0, [r1]
| ========< 0x0804fae6 cbe7 b 0x804fa80
| |`---> 0x0804fae8 4a48 ldr r0, [0x0804fc14] ; [0x804fc14:4]=0x2001e889 kb_keydown_debounce
| | 0x0804faea 0021 movs r1, 0
| | 0x0804faec 0170 strb r1, [r0]
| ========< 0x0804faee c7e7 b 0x804fa80
| `----> 0x0804faf0 3848 ldr r0, [0x0804fbd4] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| 0x0804faf2 0078 ldrb r0, [r0]
| 0x0804faf4 c007 lsls r0, r0, 0x1f
| ,=< 0x0804faf6 33d4 bmi 0x804fb60
| | 0x0804faf8 4648 ldr r0, [0x0804fc14] ; [0x804fc14:4]=0x2001e889 kb_keydown_debounce
| | 0x0804fafa 0078 ldrb r0, [r0]
| | 0x0804fafc 401c adds r0, r0, 1
| | 0x0804fafe 4549 ldr r1, [0x0804fc16] ; [0x804fc14:4]=0x2001e889 kb_keydown_debounce
| | 0x0804fb00 0870 strb r0, [r1]
| | 0x0804fb02 4448 ldr r0, [0x0804fc16] ; [0x804fc14:4]=0x2001e889 kb_keydown_debounce
| | 0x0804fb04 0078 ldrb r0, [r0]
| | 0x0804fb06 0328 cmp r0, 3 ; 3
| ========< 0x0804fb08 bad3 blo 0x804fa80
| | 0x0804fb0a 4248 ldr r0, [0x0804fc16] ; [0x804fc14:4]=0x2001e889 kb_keydown_debounce
| | 0x0804fb0c 0021 movs r1, 0
| | 0x0804fb0e 0170 strb r1, [r0]
| | 0x0804fb10 3048 ldr r0, [0x0804fbd4] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| | 0x0804fb12 0078 ldrb r0, [r0]
| | 0x0804fb14 50f00100 orrs r0, r0, 1
| | 0x0804fb18 2e49 ldr r1, [0x0804fbd4] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| | 0x0804fb1a 0870 strb r0, [r1]
| | 0x0804fb1c 3548 ldr r0, [0x0804fbf4] ; [0x804fbf4:4]=0x2001e7ba kb_row_col_pressed
| | 0x0804fb1e 0088 ldrh r0, [r0]
| | 0x0804fb20 fff7e0fe bl func_4f8e4
| | ;-- store_keycode:
| | 0x0804fb24 3e49 ldr r1, [0x0804fc20] ; [0x804fc20:4]=0x2001e890 kb_keycode
| | 0x0804fb26 0870 strb r0, [r1]
| | 0x0804fb28 3b48 ldr r0, [0x0804fc18] ; [0x804fc18:4]=0x2001e7be kb_key_press_time
| | 0x0804fb2a 0021 movs r1, 0
| | 0x0804fb2c 0180 strh r1, [r0]
| | 0x0804fb2e 2248 ldr r0, [0x0804fbba] ; [0x804fbb8:4]=0x2001e5ec base_for_longpress_struct
| | 0x0804fb30 8078 ldrb r0, [r0, 2]
| | 0x0804fb32 c0f3c000 ubfx r0, r0, 3, 1
| | 0x0804fb36 c007 lsls r0, r0, 0x1f
| ========< 0x0804fb38 a2d5 bpl 0x804fa80
| | 0x0804fb3a 2648 ldr r0, [0x0804fbd6] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| | 0x0804fb3c 0078 ldrb r0, [r0]
| | 0x0804fb3e 50f00200 orrs r0, r0, 2
| | 0x0804fb42 2449 ldr r1, [0x0804fbd6] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| | 0x0804fb44 0870 strb r0, [r1]
| | 0x0804fb46 2f48 ldr r0, [0x0804fc06] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| | 0x0804fb48 0078 ldrb r0, [r0]
| | 0x0804fb4a 50f08000 orrs r0, r0, 0x80
| | 0x0804fb4e 2d49 ldr r1, [0x0804fc06] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| | 0x0804fb50 0870 strb r0, [r1]
| | 0x0804fb52 2c48 ldr r0, [0x0804fc06] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| | 0x0804fb54 c078 ldrb r0, [r0, 3]
| | 0x0804fb56 50f02000 orrs r0, r0, 0x20
| | 0x0804fb5a 2a49 ldr r1, [0x0804fc06] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| | 0x0804fb5c c870 strb r0, [r1, 3]
| ========< 0x0804fb5e 8fe7 b 0x804fa80
| `-> 0x0804fb60 2c48 ldr r0, [0x0804fc14] ; [0x804fc14:4]=0x2001e889 kb_keydown_debounce
| 0x0804fb62 0021 movs r1, 0
| 0x0804fb64 0170 strb r1, [r0]
| 0x0804fb66 1448 ldr r0, [0x0804fbba] ; [0x804fbb8:4]=0x2001e5ec base_for_longpress_struct
| 0x0804fb68 8078 ldrb r0, [r0, 2]
| 0x0804fb6a c0f3c000 ubfx r0, r0, 3, 1
| 0x0804fb6e c007 lsls r0, r0, 0x1f
| ,=< 0x0804fb70 05d4 bmi 0x804fb7e
| | 0x0804fb72 2948 ldr r0, [0x0804fc1a] ; [0x804fc18:4]=0x2001e7be kb_key_press_time
| | 0x0804fb74 0088 ldrh r0, [r0]
| | 0x0804fb76 2949 ldr r1, [0x0804fc1e] ; [0x804fc1c:4]=0x2001e7b8 kb_side_key_max_time
| | 0x0804fb78 0988 ldrh r1, [r1]
| | 0x0804fb7a 8842 cmp r0, r1
| ,==< 0x0804fb7c 00d3 blo 0x804fb80
| ======`-> 0x0804fb7e 7fe7 b 0x804fa80
| `--> 0x0804fb80 2548 ldr r0, [0x0804fc18] ; [0x804fc18:4]=0x2001e7be kb_key_press_time
| 0x0804fb82 0088 ldrh r0, [r0]
| 0x0804fb84 401c adds r0, r0, 1
| 0x0804fb86 2449 ldr r1, [0x0804fc1a] ; [0x804fc18:4]=0x2001e7be kb_key_press_time
| 0x0804fb88 0880 strh r0, [r1]
| 0x0804fb8a 2348 ldr r0, [0x0804fc1a] ; [0x804fc18:4]=0x2001e7be kb_key_press_time
| 0x0804fb8c 0088 ldrh r0, [r0]
| 0x0804fb8e 2349 ldr r1, [0x0804fc1e] ; [0x804fc1c:4]=0x2001e7b8 kb_side_key_max_time
| 0x0804fb90 0988 ldrh r1, [r1]
| 0x0804fb92 8842 cmp r0, r1
| ========< 0x0804fb94 7ff474af bne.w 0x804fa80
| 0x0804fb98 0e48 ldr r0, [0x0804fbd4] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| 0x0804fb9a 0078 ldrb r0, [r0]
| 0x0804fb9c 50f00400 orrs r0, r0, 4
| 0x0804fba0 0c49 ldr r1, [0x0804fbd4] ; [0x804fbd4:4]=0x2001e5f8 kb_keypressed
| 0x0804fba2 0870 strb r0, [r1]
| 0x0804fba4 1748 ldr r0, [0x0804fc04] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| 0x0804fba6 0078 ldrb r0, [r0]
| 0x0804fba8 50f08000 orrs r0, r0, 0x80
| 0x0804fbac 1549 ldr r1, [0x0804fc04] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| 0x0804fbae 0870 strb r0, [r1]
\ ========< 0x0804fbb0 66e7 b 0x804fa80
/ (fcn) kb_handler_sub1 258
| Caller: kb_handler
| kb_handler_sub1 ();
| 0x0804f7dc 38b5 push {r3, r4, r5, lr}
| 0x0804f7de 4021 movs r1, 0x40 ; '@' ; 64 ; bitmask for PD6 = LCD_ChipSelect ?!
| 0x0804f7e0 dff80404 ldr.w r0, [0x0804fbec] ; [0x804fbec:4]=0x2001e88a kb_poll_temp ; R2 bug, literal = 0x40020C00 = io_GPIOD
| 0x0804f7e4 dcf703f8 bl GPIO_ReadInputDataBit
| 0x0804f7e8 0128 cmp r0, 1 ; 1 ; bail out if LCD_CS is LOW (don't poll KB during LCD access) ?
| 0x0804f7ea 76d1 bne 0x804f8da ; return ONE
| 0x0804f7ec dff8fc03 ldr.w r0, [0x0804fbf0] ; [0x804fbf0:4]=0x40020000 io_GPIOA
| 0x0804f7f0 0078 ldrb r0, [r0]
| 0x0804f7f2 0028 cmp r0, 0
| ,=< 0x0804f7f4 02d0 beq 0x804f7fc
| | 0x0804f7f6 0128 cmp r0, 1 ; 1
| ,==< 0x0804f7f8 2ed0 beq 0x804f858
| ,===< 0x0804f7fa 6ae0 b 0x804f8d2
| ||`-> 0x0804f7fc 02f0f3fb bl kbscan_cfg_K1K2K3_as_inputs_with_pull_up
| || 0x0804f800 02f068fb bl kbscan_set_LCD_data_LOW
| || 0x0804f804 dff8e803 ldr.w r0, [0x0804fbf4] ; [0x804fbf4:4]=0x2001e7ba kb_row_col_pressed ; R2 bug, literal = 0x40020000 = io_GPIOA
| || 0x0804f808 dbf7fcff bl GPIO_ReadInputData
| || 0x0804f80c 0500 movs r5, r0
| || 0x0804f80e dff8d803 ldr.w r0, [0x0804fbee] ; [0x804fbec:4]=0x2001e88a kb_poll_temp ; R2 bug, literal = 0x40020C00 = io_GPIOD
| || 0x0804f812 dbf7f7ff bl GPIO_ReadInputData
| || 0x0804f816 0400 movs r4, r0
| || 0x0804f818 adb2 uxth r5, r5
| || 0x0804f81a 2809 lsrs r0, r5, 4
| || 0x0804f81c 10f00400 ands r0, r0, 4 ; elende Bitfummelei, vermutlich Tastaturspalte oder -Zeile
| || 0x0804f820 a4b2 uxth r4, r4
| || 0x0804f822 6108 lsrs r1, r4, 1
| || 0x0804f824 11f00201 ands r1, r1, 2
| || 0x0804f828 0843 orrs r0, r1
| || 0x0804f82a c4f3c001 ubfx r1, r4, 3, 1
| || 0x0804f82e 0843 orrs r0, r1
| || 0x0804f830 80b2 uxth r0, r0
| || 0x0804f832 0728 cmp r0, 7 ; 7
| ||,=< 0x0804f834 04d1 bne 0x804f840
| ||| 0x0804f836 dff8bc03 ldr.w r0, [0x0804fbfa] ; [0x804fbf8:4]=0x2001e7c0 kbscan_matrix_temp ; R2 bug ? literal = [804fbf4] = 0x2001e7ba = kb_row_col_pressed
| ||| 0x0804f83a 0021 movs r1, 0
| ||| 0x0804f83c 0180 strh r1, [r0]
| ,====< 0x0804f83e 48e0 b 0x804f8d2
| |||`-> 0x0804f840 dff8b413 ldr.w r1, [0x0804fbfc] ; [0x804fbfc:4]=0x40021000 io_GPIOE ; R2 bug ? literal = [804fbf8] = 0x2001e7c0 = kbscan_matrix_temp
| ||| 0x0804f844 0880 strh r0, [r1] ; modify MODER (switch in/output) ?
| ||| 0x0804f846 dff8a403 ldr.w r0, [0x0804fbf2] ; [0x804fbf0:4]=0x40020000 io_GPIOA ; R2 bug ? literal = [804fbec] = 0x2001e88a = kb_poll_temp
| ||| 0x0804f84a 0078 ldrb r0, [r0]
| ||| 0x0804f84c 401c adds r0, r0, 1
| ||| 0x0804f84e dff89c13 ldr.w r1, [0x0804fbf2] ; [0x804fbf0:4]=0x40020000 io_GPIOA ; R2 bug ? literal = [804fbec] = 0x2001e88a = kb_poll_temp
| ||| 0x0804f852 0870 strb r0, [r1]
| ||| 0x0804f854 0020 movs r0, 0
| |||,=< 0x0804f856 41e0 b 0x804f8dc ; return ZERO
| ||`--> 0x0804f858 02f0a8fb bl kb_scan_matrix_3
| || | 0x0804f85c 02f0defb bl kb_scan_matrix_4
| || | 0x0804f860 dff88403 ldr.w r0, [0x0804fbec] ; [0x804fbec:4]=0x2001e88a kb_poll_temp ; R2 bug ? literal = [804fbe8] = 0x40020C00 = io_GPIOD
| || | 0x0804f864 dbf7ceff bl GPIO_ReadInputData
| || | 0x0804f868 0400 movs r4, r0
| || | 0x0804f86a dff89003 ldr.w r0, [0x0804fc02] ; [0x804fc00:4]=0x8099178 ; R2 bug ? literal = [804fbfc] = 0x40021000 = io_GPIOE
| || | 0x0804f86e dbf7c9ff bl GPIO_ReadInputData
| || | 0x0804f872 a4b2 uxth r4, r4
| || | 0x0804f874 e10a lsrs r1, r4, 0xb
| || | 0x0804f876 11f01801 ands r1, r1, 0x18
| || | 0x0804f87a 6201 lsls r2, r4, 5
| || | 0x0804f87c 12f06002 ands r2, r2, 0x60
| || | 0x0804f880 1143 orrs r1, r2
| || | 0x0804f882 10f4f060 ands r0, r0, 0x780
| || | 0x0804f886 0843 orrs r0, r1
| || | 0x0804f888 40f2ff71 movw r1, 0x7ff ; 2047
| || | 0x0804f88c 80b2 uxth r0, r0
| || | 0x0804f88e 8842 cmp r0, r1
| ||,==< 0x0804f890 04d1 bne 0x804f89c
| |||| 0x0804f892 dff86003 ldr.w r0, [0x0804fbfa] ; [0x804fbf8:4]=0x2001e7c0 kbscan_matrix_temp ; R2 bug ? literal = [804fbf4] = 0x2001e7ba = kb_row_col_pressed
| |||| 0x0804f896 0021 movs r1, 0
| |||| 0x0804f898 0180 strh r1, [r0]
| ,=====< 0x0804f89a 15e0 b 0x804f8c8
| |||`--> 0x0804f89c dff85813 ldr.w r1, [0x0804fbfc] ; [0x804fbfc:4]=0x40021000 io_GPIOE ; R2 bug ? literal = [804fbf8] = 0x2001e7c0 = kbscan_matrix_temp
| ||| | 0x0804f8a0 0988 ldrh r1, [r1]
| ||| | 0x0804f8a2 0843 orrs r0, r1
| ||| | 0x0804f8a4 dff85013 ldr.w r1, [0x0804fbfc] ; [0x804fbfc:4]=0x40021000 io_GPIOE ; R2 bug ? literal = [804fbf8] = 0x2001e7c0 = kbscan_matrix_temp
| ||| | 0x0804f8a8 0880 strh r0, [r1]
| ||| | 0x0804f8aa dff84c03 ldr.w r0, [0x0804fbfe] ; [0x804fbfc:4]=0x40021000 io_GPIOE ; R2 bug ? literal = [804fbf8] = 0x2001e7c0 = kbscan_matrix_temp
| ||| | 0x0804f8ae 0088 ldrh r0, [r0]
| ||| | 0x0804f8b0 40f2ff71 movw r1, 0x7ff ; 2047
| ||| | 0x0804f8b4 4840 eors r0, r1
| ||| | 0x0804f8b6 dff84013 ldr.w r1, [0x0804fbfe] ; [0x804fbfc:4]=0x40021000 io_GPIOE ; R2 bug ? literal = [804fbf8] = 0x2001e7c0 = kbscan_matrix_temp
| ||| | 0x0804f8ba 0880 strh r0, [r1]
| ||| | 0x0804f8bc dff83403 ldr.w r0, [0x0804fbf8] ; [0x804fbf8:4]=0x2001e7c0 kbscan_matrix_temp ; R2 bug ? literal = [804fbf4] = 0x2001e7ba = kb_row_col_pressed
| ||| | 0x0804f8c0 dff83413 ldr.w r1, [0x0804fbfc] ; [0x804fbfc:4]=0x40021000 io_GPIOE ; R2 bug ? literal = [804fbf8] = 0x2001e7c0 = kbscan_matrix_temp
| ||| | 0x0804f8c4 0988 ldrh r1, [r1]
| ||| | 0x0804f8c6 0180 strh r1, [r0]
| `-----> 0x0804f8c8 dff82003 ldr.w r0, [0x0804fbf0] ; [0x804fbf0:4]=0x40020000 io_GPIOA ; R2 bug ? literal = [804fbec] = 0x2001e88a = kb_poll_temp
| || | 0x0804f8cc 0021 movs r1, 0
| || | 0x0804f8ce 0170 strb r1, [r0]
| ||,==< 0x0804f8d0 ffe7 b 0x804f8d2
| ```--> 0x0804f8d2 02f088fb bl kbscan_cfg_K1K2K3_as_inputs_with_pull_up
| | 0x0804f8d6 02f024fb bl ConfigureLCDPort
| | 0x0804f8da 0120 movs r0, 1 ; 1
\ `-> 0x0804f8dc 32bd pop {r1, r4, r5, pc}
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
/gfx_jmptbl
0x08098280 fd89 0408 058a 0408 0d8a 0408 abd8 0108 ................
0x08098280 0x080489fd 0x08048a05 0x08048a0d 0x0801d8ab ................
0x08098290 0x0801d81b 0x0801d84f 0x0801d88d 0x0801d7ef ....O...........
0x080982a0 0x08048a15 0x0801d7cb 0x0801d7fb 0x0801d95f ............_...
/ (fcn) gfx_jmptbl_entry0 8
| gfx_jmptbl_entry0 ();
| 0x080489fc 80b5 push {r7, lr}
| 0x080489fe 09f00dfe bl gfx_jmptbl_entry0_sub
\ 0x08048a02 02bd pop {r1, pc}
/ (fcn) gfx_jmptbl_entry1 8
| gfx_jmptbl_entry1 ();
| 0x08048a04 80b5 push {r7, lr}
| 0x08048a06 09f017fe bl gfx_jmptbl_entry1_sub
\ 0x08048a0a 02bd pop {r1, pc}
/ (fcn) gfx_jmptbl_entry2 8
| gfx_jmptbl_entry2 ();
| 0x08048a0c 80b5 push {r7, lr}
| 0x08048a0e 09f010fe bl gfx_jmptbl_entry2_sub
\ 0x08048a12 02bd pop {r1, pc}
/ (fcn) gfx_jmptbl_entry3 168
| gfx_jmptbl_entry3 ();
| 0x0801d8aa 2de9fe4f push.w {r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0801d8ae 0400 movs r4, r0
| 0x0801d8b0 0d00 movs r5, r1
| 0x0801d8b2 1600 movs r6, r2
| 0x0801d8b4 0027 movs r7, 0
| 0x0801d8b6 0c98 ldr r0, [sp, 0x30]
| 0x0801d8b8 0c90 str r0, [sp, 0x30]
| 0x0801d8ba ddf83480 ldr.w r8, [sp, 0x34]
| 0x0801d8be ddf838b0 ldr.w fp, [sp, 0x38]
| 0x0801d8c2 ddf83c90 ldr.w sb, [sp, 0x3c]
| 0x0801d8c6 ddf840a0 ldr.w sl, [sp, 0x40]
| ,=< 0x0801d8ca 0ae0 b 0x801d8e2
| .--> 0x0801d8cc cdf800a0 str.w sl, [sp]
| || 0x0801d8d0 3300 movs r3, r6
| || 0x0801d8d2 5a46 mov r2, fp
| || 0x0801d8d4 e919 adds r1, r5, r7
| || 0x0801d8d6 2000 movs r0, r4
| || 0x0801d8d8 fff754ff bl gfx_1d784
| .....---> 0x0801d8dc 18eb0b0b adds.w fp, r8, fp
| ||||||| 0x0801d8e0 7f1c adds r7, r7, 1
| ||||||`-> 0x0801d8e2 0298 ldr r0, [sp, 8]
| |||||| 0x0801d8e4 8742 cmp r7, r0
| ||||||,=< 0x0801d8e6 32da bge 0x801d94e
| ||||||| 0x0801d8e8 0c98 ldr r0, [sp, 0x30]
| ||||||| 0x0801d8ea 0128 cmp r0, 1 ; 1
| ========< 0x0801d8ec 08d0 beq 0x801d900
| ||||||| 0x0801d8ee 0228 cmp r0, 2 ; 2
| ========< 0x0801d8f0 10d0 beq 0x801d914
| ||||||| 0x0801d8f2 0428 cmp r0, 4 ; 4
| ========< 0x0801d8f4 18d0 beq 0x801d928
| ||||||| 0x0801d8f6 0828 cmp r0, 8 ; 8
| ========< 0x0801d8f8 20d0 beq 0x801d93c
| ||||||| 0x0801d8fa 1028 cmp r0, 0x10 ; 16
| |||||`==< 0x0801d8fc e6d0 beq 0x801d8cc
| `=======< 0x0801d8fe ede7 b 0x801d8dc
| --------> 0x0801d900 cdf804a0 str.w sl, [sp, 4]
| |||| | 0x0801d904 0096 str r6, [sp]
| |||| | 0x0801d906 4b46 mov r3, sb
| |||| | 0x0801d908 5a46 mov r2, fp
| |||| | 0x0801d90a e919 adds r1, r5, r7
| |||| | 0x0801d90c 2000 movs r0, r4
| |||| | 0x0801d90e fff733fd bl gfx_1d378
| `======< 0x0801d912 e3e7 b 0x801d8dc
| --------> 0x0801d914 cdf804a0 str.w sl, [sp, 4]
| ||| | 0x0801d918 0096 str r6, [sp]
| ||| | 0x0801d91a 4b46 mov r3, sb
| ||| | 0x0801d91c 5a46 mov r2, fp
| ||| | 0x0801d91e e919 adds r1, r5, r7
| ||| | 0x0801d920 2000 movs r0, r4
| ||| | 0x0801d922 fff794fd bl gfx_1d44e
| `=====< 0x0801d926 d9e7 b 0x801d8dc
| --------> 0x0801d928 cdf804a0 str.w sl, [sp, 4]
| || | 0x0801d92c 0096 str r6, [sp]
| || | 0x0801d92e 4b46 mov r3, sb
| || | 0x0801d930 5a46 mov r2, fp
| || | 0x0801d932 e919 adds r1, r5, r7
| || | 0x0801d934 2000 movs r0, r4
| || | 0x0801d936 fff72ffe bl gfx_1d598
| `====< 0x0801d93a cfe7 b 0x801d8dc
| --------> 0x0801d93c cdf800a0 str.w sl, [sp]
| | | 0x0801d940 3300 movs r3, r6
| | | 0x0801d942 5a46 mov r2, fp
| | | 0x0801d944 e919 adds r1, r5, r7
| | | 0x0801d946 2000 movs r0, r4
| | | 0x0801d948 fff7cafe bl gfx_1d6e0
| `===< 0x0801d94c c6e7 b 0x801d8dc
\ `-> 0x0801d94e bde8f78f pop.w {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) gfx_linefill 52
| Caller: menu.dispatcher.unkn1 menu_6_1_1 gfx_blockfill func_0db88
| gfx_linefill ();
| 0x0801d81a 70b5 push {r4, r5, r6, lr}
| 0x0801d81c 0400 movs r4, r0
| 0x0801d81e 0d00 movs r5, r1
| 0x0801d820 1600 movs r6, r2
| 0x0801d822 1848 ldr r0, [0x0801d886] ; [0x801d884:4]=0x2001da1c gfx_info
| 0x0801d824 007b ldrb r0, [r0, 0xc]
| 0x0801d826 c007 lsls r0, r0, 0x1f
| ,=< 0x0801d828 0ed5 bpl 0x801d848
| .--> 0x0801d82a a642 cmp r6, r4
| ,===< 0x0801d82c 0edb blt 0x801d84c
| ||| 0x0801d82e 2900 movs r1, r5
| ||| 0x0801d830 2000 movs r0, r4
| ||| 0x0801d832 fff7e2ff bl gfx_linefill_sub
| ||| 0x0801d836 641c adds r4, r4, 1
| |`==< 0x0801d838 f7e7 b 0x801d82a
| |.--> 0x0801d83a 1248 ldr r0, [0x0801d886] ; [0x801d884:4]=0x2001da1c gfx_info
| ||| 0x0801d83c 4288 ldrh r2, [r0, 2]
| ||| 0x0801d83e 2900 movs r1, r5
| ||| 0x0801d840 2000 movs r0, r4
| ||| 0x0801d842 fff7c2ff bl gfx_put_pixel
| ||| 0x0801d846 641c adds r4, r4, 1
| ||`-> 0x0801d848 a642 cmp r6, r4
| |`==< 0x0801d84a f6da bge 0x801d83a
\ `---> 0x0801d84c 70bd pop {r4, r5, r6, pc}
/ (fcn) gfx_linefill2 52
| Caller: paint_a_lot menu_6_1_1
| gfx_linefill2 ();
| 0x0801d84e 70b5 push {r4, r5, r6, lr}
| 0x0801d850 0400 movs r4, r0
| 0x0801d852 0d00 movs r5, r1
| 0x0801d854 1600 movs r6, r2
| 0x0801d856 0b48 ldr r0, [0x0801d886] ; [0x801d884:4]=0x2001da1c gfx_info
| 0x0801d858 007b ldrb r0, [r0, 0xc]
| 0x0801d85a c007 lsls r0, r0, 0x1f
| ,=< 0x0801d85c 0ed5 bpl 0x801d87c
| .--> 0x0801d85e ae42 cmp r6, r5
| ,===< 0x0801d860 0edb blt 0x801d880
| ||| 0x0801d862 2900 movs r1, r5
| ||| 0x0801d864 2000 movs r0, r4
| ||| 0x0801d866 fff7c8ff bl gfx_linefill_sub
| ||| 0x0801d86a 6d1c adds r5, r5, 1
| |`==< 0x0801d86c f7e7 b 0x801d85e
| |.--> 0x0801d86e 0548 ldr r0, [0x0801d886] ; [0x801d884:4]=0x2001da1c gfx_info
| ||| 0x0801d870 4288 ldrh r2, [r0, 2]
| ||| 0x0801d872 2900 movs r1, r5
| ||| 0x0801d874 2000 movs r0, r4
| ||| 0x0801d876 fff7a8ff bl gfx_put_pixel
| ||| 0x0801d87a 6d1c adds r5, r5, 1
| ||`-> 0x0801d87c ae42 cmp r6, r5
| |`==< 0x0801d87e f6da bge 0x801d86e
\ `---> 0x0801d880 70bd pop {r4, r5, r6, pc}
/ (fcn) gfx_blockfill 30
| Caller: display_idle_screen func_0db88 func_0c7e8 md380_f_4520 kb_enter_alpha
| drawtext8.loop_for_all_chars update_scr_19 disp_something F_4154 draw_zone_label
| display_unprog_screen menu.dispatcher.unkn1 paint_a_lot F_4220 func_2c6fc
| scr_mode_stable draw_statusline func_0de64 menu_6_1_1 update_scr_20
| update_scr_29 F_4284 F_4315
| gfx_blockfill ();
| 0x0801d88c f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x0801d88e 0400 movs r4, r0
| 0x0801d890 0d00 movs r5, r1
| 0x0801d892 1600 movs r6, r2
| 0x0801d894 1f00 movs r7, r3
| ,=< 0x0801d896 05e0 b 0x801d8a4
| .--> 0x0801d898 3200 movs r2, r6
| || 0x0801d89a 2900 movs r1, r5
| || 0x0801d89c 2000 movs r0, r4
| || 0x0801d89e fff7bcff bl gfx_linefill
| || 0x0801d8a2 6d1c adds r5, r5, 1
| |`-> 0x0801d8a4 af42 cmp r7, r5
| `==< 0x0801d8a6 f7da bge 0x801d898
\ 0x0801d8a8 f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) gfx_read_pixel_wrapper 12
| Caller: gfx_linefill_sub gfx_1d378
| gfx_read_pixel_wrapper ();
| 0x0801d7ee 80b5 push {r7, lr}
| 0x0801d7f0 89b2 uxth r1, r1
| 0x0801d7f2 80b2 uxth r0, r0
| 0x0801d7f4 15f0bcff bl gfx_read_pixel_from_framebuffer
\ 0x0801d7f8 02bd pop {r1, pc}
/ (fcn) gfx_48a14 18
| Caller: gfx_before_lcd_init
| gfx_48a14 ();
| 0x08048a14 0021 movs r1, 0 ; also called via BLX R1 from gfx_32ca4
| 0x08048a16 0180 strh r1, [r0] ; [in] R0 = gfx_info+4 ?
| 0x08048a18 0021 movs r1, 0
| 0x08048a1a 4180 strh r1, [r0, 2]
| 0x08048a1c 9f21 movs r1, 0x9f ; 159
| 0x08048a1e 8180 strh r1, [r0, 4]
| 0x08048a20 7f21 movs r1, 0x7f ; 127
| 0x08048a22 c180 strh r1, [r0, 6]
\ 0x08048a24 7047 bx lr
/ (fcn) gfx_put_pixel 36
| Caller: gfx_linefill2 gfx_linefill gfx_linefill_sub gfx_1d44e gfx_1d378 gfx_1d784
| gfx_1d6e0 gfx_1d598
| gfx_put_pixel ();
| 0x0801d7ca 70b5 push {r4, r5, r6, lr}
| 0x0801d7cc 0400 movs r4, r0
| 0x0801d7ce 0d00 movs r5, r1
| 0x0801d7d0 1600 movs r6, r2
| 0x0801d7d2 4021 movs r1, 0x40 ; '@' ; 64
| 0x0801d7d4 2c48 ldr r0, [0x0801d888] ; [0x801d888:4]=0x40020c00 io_GPIOD
| 0x0801d7d6 0ef01af8 bl GPIO_ResetBits
| 0x0801d7da 3200 movs r2, r6
| 0x0801d7dc 2900 movs r1, r5
| 0x0801d7de 2000 movs r0, r4
| 0x0801d7e0 15f0a2ff bl gfx_write_pixel_to_framebuffer
| 0x0801d7e4 4021 movs r1, 0x40 ; '@' ; 64
| 0x0801d7e6 2848 ldr r0, [0x0801d88a] ; [0x801d888:4]=0x40020c00 io_GPIOD
| 0x0801d7e8 0ef00ff8 bl GPIO_SetBits
\ 0x0801d7ec 70bd pop {r4, r5, r6, pc}
/ (fcn) gfx_linefill_sub 32
| Caller: gfx_linefill2 gfx_linefill
| gfx_linefill_sub ();
| 0x0801d7fa 38b5 push {r3, r4, r5, lr}
| 0x0801d7fc 0400 movs r4, r0
| 0x0801d7fe 0d00 movs r5, r1
| 0x0801d800 2900 movs r1, r5
| 0x0801d802 2000 movs r0, r4
| 0x0801d804 fff7f3ff bl gfx_read_pixel_wrapper
| 0x0801d808 4ff6ff71 movw r1, 0xffff
| 0x0801d80c 80b2 uxth r0, r0
| 0x0801d80e 0a1a subs r2, r1, r0
| 0x0801d810 2900 movs r1, r5
| 0x0801d812 2000 movs r0, r4
| 0x0801d814 fff7d9ff bl gfx_put_pixel
\ 0x0801d818 31bd pop {r0, r4, r5, pc}
/ (fcn) gfx_jmptbl_entry0_sub 22
| Caller: gfx_jmptbl_entry0
| gfx_jmptbl_entry0_sub ();
| 0x0805261c c0f3c401 ubfx r1, r0, 3, 5 ; 'Unsigned Bit Field Extract' - real code or data ?
| 0x08052620 c0f38522 ubfx r2, r0, 0xa, 6
| 0x08052624 c0f3c440 ubfx r0, r0, 0x13, 5
| 0x08052628 11eb4211 adds.w r1, r1, r2, lsl 5
| 0x0805262c 11ebc020 adds.w r0, r1, r0, lsl 11
\ 0x08052630 7047 bx lr
/ (fcn) gfx_jmptbl_entry1_sub 52
| Caller: gfx_jmptbl_entry1
| gfx_jmptbl_entry1_sub ();
| 0x08052638 10f01f01 ands r1, r0, 0x1f
| 0x0805263c c0f34512 ubfx r2, r0, 5, 6
| 0x08052640 c0f3c420 ubfx r0, r0, 0xb, 5
| 0x08052644 ff23 movs r3, 0xff ; 255
| 0x08052646 5943 muls r1, r3, r1
| 0x08052648 1f23 movs r3, 0x1f ; 31
| 0x0805264a b1fbf3f1 udiv r1, r1, r3
| 0x0805264e ff23 movs r3, 0xff ; 255
| 0x08052650 5a43 muls r2, r3, r2
| 0x08052652 3f23 movs r3, 0x3f ; '?' ; 63
| 0x08052654 b2fbf3f2 udiv r2, r2, r3
| 0x08052658 ff23 movs r3, 0xff ; 255
| 0x0805265a 5843 muls r0, r3, r0
| 0x0805265c 1f23 movs r3, 0x1f ; 31
| 0x0805265e b0fbf3f0 udiv r0, r0, r3
| 0x08052662 11eb0221 adds.w r1, r1, r2, lsl 8
| 0x08052666 11eb0040 adds.w r0, r1, r0, lsl 16
\ 0x0805266a 7047 bx lr
/ (fcn) gfx_jmptbl_entry2_sub 6
| Caller: gfx_jmptbl_entry2
| gfx_jmptbl_entry2_sub ();
| 0x08052632 4ff6ff70 movw r0, 0xffff
\ 0x08052636 7047 bx lr
/ (fcn) do_nothing_30fde 2
| Caller: Start
| do_nothing_30fde ();
\ 0x08030fde 7047 bx lr
/ (fcn) gfx_1c1c8 30
| Caller: gfx_1c9d4
| gfx_1c1c8 ();
| 0x0801c1c8 dff8541d ldr.w r1, [0x0801cf24] ; [0x801cf24:4]=0x2001e802
| 0x0801c1cc 0968 ldr r1, [r1]
| ,=< 0x0801c1ce 07e0 b 0x801c1e0
| .--> 0x0801c1d0 b1f90420 ldrsh.w r2, [r1, 4]
| || 0x0801c1d4 00b2 sxth r0, r0
| || 0x0801c1d6 8242 cmp r2, r0
| ,===< 0x0801c1d8 01d1 bne 0x801c1de
| ||| 0x0801c1da 0022 movs r2, 0
| ||| 0x0801c1dc 8a80 strh r2, [r1, 4]
| `---> 0x0801c1de 0968 ldr r1, [r1]
| |`-> 0x0801c1e0 0029 cmp r1, 0
| `==< 0x0801c1e2 f5d1 bne 0x801c1d0
\ 0x0801c1e4 7047 bx lr
/ (fcn) gfx_1c1e6 24
| Caller: gfx_bmp_s1_5
| gfx_1c1e6 ();
| 0x0801c1e6 dff83c1d ldr.w r1, [0x0801cf2a] ; [0x801cf28:4]=0x2001e7fe
| 0x0801c1ea b1f90010 ldrsh.w r1, [r1]
| 0x0801c1ee 00b2 sxth r0, r0
| 0x0801c1f0 8842 cmp r0, r1
| ,=< 0x0801c1f2 01d1 bne 0x801c1f8
| | 0x0801c1f4 0020 movs r0, 0
| ,==< 0x0801c1f6 01e0 b 0x801c1fc
| |`-> 0x0801c1f8 5ff0ff30 movs.w r0, -1 ; -1
\ `--> 0x0801c1fc 7047 bx lr
/ (fcn) gfx_1c1fe 118
| Caller: gfx_1c840 gfx_1c7bc
| gfx_1c1fe ();
| 0x0801c1fe 30b5 push {r4, r5, lr}
| 0x0801c200 83b0 sub sp, 0xc
| 0x0801c202 0d00 movs r5, r1
| 0x0801c204 00b2 sxth r0, r0
| 0x0801c206 16f02dfc bl gfx_draw_sub_32a64
| 0x0801c20a 0400 movs r4, r0
| 0x0801c20c a08b ldrh r0, [r4, 0x1c]
| 0x0801c20e 8107 lsls r1, r0, 0x1e
| ,=< 0x0801c210 2fd5 bpl 0x801c272
| | 0x0801c212 40f60101 movw r1, 0x801 ; 2049
| | 0x0801c216 0840 ands r0, r1
| | 0x0801c218 0128 cmp r0, 1 ; 1
| ,==< 0x0801c21a 2ad0 beq 0x801c272
| || 0x0801c21c 2800 movs r0, r5
| || 0x0801c21e 00f0a2f9 bl gfx_1c566
| || 0x0801c222 0028 cmp r0, 0
| ,===< 0x0801c224 25d0 beq 0x801c272
| ||| 0x0801c226 2200 movs r2, r4
| ||| 0x0801c228 2900 movs r1, r5
| ||| 0x0801c22a 00a8 add r0, sp, 0
| ||| 0x0801c22c 16f07bfc bl gfx_ThreeRectSomething
| ||| 0x0801c230 00a8 add r0, sp, 0
| ||| 0x0801c232 00f098f9 bl gfx_1c566
| ||| 0x0801c236 0028 cmp r0, 0
| ,====< 0x0801c238 1bd0 beq 0x801c272
| |||| 0x0801c23a 207f ldrb r0, [r4, 0x1c]
| |||| 0x0801c23c 8006 lsls r0, r0, 0x1a
| ,=====< 0x0801c23e 07d5 bpl 0x801c250
| ||||| 0x0801c240 00aa add r2, sp, 0
| ||||| 0x0801c242 14f10801 adds.w r1, r4, 8
| ||||| 0x0801c246 14f10800 adds.w r0, r4, 8
| ||||| 0x0801c24a 16f0b0fc bl gfx_32bae
| ,======< 0x0801c24e 10e0 b 0x801c272
| |`-----> 0x0801c250 14f10800 adds.w r0, r4, 8
| | |||| 0x0801c254 00a9 add r1, sp, 0
| | |||| 0x0801c256 0822 movs r2, 8 ; 8
| | |||| 0x0801c258 16f0e8fc bl gfx_memcpy
| | |||| 0x0801c25c a08b ldrh r0, [r4, 0x1c]
| | |||| 0x0801c25e 50f02000 orrs r0, r0, 0x20
| | |||| 0x0801c262 a083 strh r0, [r4, 0x1c]
| | |||| 0x0801c264 dff8c00c ldr.w r0, [0x0801cf2c] ; [0x801cf2c:4]=0x2001e80c
| | |||| 0x0801c268 0088 ldrh r0, [r0]
| | |||| 0x0801c26a 401c adds r0, r0, 1
| | |||| 0x0801c26c dff8b81c ldr.w r1, [0x0801cf2c] ; [0x801cf2c:4]=0x2001e80c
| | |||| 0x0801c270 0880 strh r0, [r1]
\ `-````-> 0x0801c272 37bd pop {r0, r1, r2, r4, r5, pc}
/ (fcn) gfx_1c274 10
| Caller: gfx_1c9d4
| gfx_1c274 ();
| 0x0801c274 dff8b40c ldr.w r0, [0x0801cf30] ; [0x801cf30:4]=0x2001e80a
| 0x0801c278 0021 movs r1, 0
| 0x0801c27a 0180 strh r1, [r0]
\ 0x0801c27c 7047 bx lr
/ (fcn) gfx_1c27e 34
| Caller: gfx_1c2a0
| gfx_1c27e ();
| 0x0801c27e dff8b00c ldr.w r0, [0x0801cf36] ; [0x801cf34:4]=0x4b57c
| 0x0801c282 b0f90000 ldrsh.w r0, [r0]
| 0x0801c286 0028 cmp r0, 0
| ,=< 0x0801c288 04d0 beq 0x801c294
| | 0x0801c28a dff8a40c ldr.w r0, [0x0801cf36] ; [0x801cf34:4]=0x4b57c
| | 0x0801c28e b0f90000 ldrsh.w r0, [r0]
| ,==< 0x0801c292 03e0 b 0x801c29c
| |`-> 0x0801c294 dff8940d ldr.w r0, [0x0801d030] ; [0x801d030:4]=0x2001e8ee
| | 0x0801c298 b0f93c00 ldrsh.w r0, [r0, 0x3c]
| `--> 0x0801c29c 00b2 sxth r0, r0
\ 0x0801c29e 7047 bx lr
/ (fcn) gfx_1c2a0 68
| Caller: gfx_bmp_s1_1
| gfx_1c2a0 ();
| 0x0801c2a0 1cb5 push {r2, r3, r4, lr}
| 0x0801c2a2 0400 movs r4, r0
| 0x0801c2a4 dff8840d ldr.w r0, [0x0801d030] ; [0x801d030:4]=0x2001e8ee
| 0x0801c2a8 806b ldr r0, [r0, 0x38]
| 0x0801c2aa 0028 cmp r0, 0
| ,=< 0x0801c2ac 03d1 bne 0x801c2b6
| | 0x0801c2ae 2000 movs r0, r4
| | 0x0801c2b0 16f0f8fc bl gfx_32ca4
| ,==< 0x0801c2b4 15e0 b 0x801c2e2
| |`-> 0x0801c2b6 00a8 add r0, sp, 0
| | 0x0801c2b8 dff8701d ldr.w r1, [0x0801d030] ; [0x801d030:4]=0x2001e8ee
| | 0x0801c2bc 896b ldr r1, [r1, 0x38]
| | 0x0801c2be 0822 movs r2, 8 ; 8
| | 0x0801c2c0 16f0b4fc bl gfx_memcpy
| | 0x0801c2c4 fff7dbff bl gfx_1c27e
| | 0x0801c2c8 00b2 sxth r0, r0
| | 0x0801c2ca 16f0cbfb bl gfx_draw_sub_32a64
| | 0x0801c2ce 00a9 add r1, sp, 0
| | 0x0801c2d0 00f0edf8 bl gfx_bmp_s1_4
| | 0x0801c2d4 2100 movs r1, r4
| | 0x0801c2d6 00a8 add r0, sp, 0
| | 0x0801c2d8 16f0f6fc bl gfx_IntersectRect
| | 0x0801c2dc 00a8 add r0, sp, 0
| | 0x0801c2de 16f0e1fc bl gfx_32ca4
\ `--> 0x0801c2e2 13bd pop {r0, r1, r4, pc}
/ (fcn) gfx_bmp_s1_5 68
| Caller: gfx_bmp_s1_1 func_1d074 gfx_1c7bc gfx_bmp_sub1
| gfx_bmp_s1_5 ();
| 0x0801c2e4 70b5 push {r4, r5, r6, lr}
| 0x0801c2e6 0400 movs r4, r0
| 0x0801c2e8 0d00 movs r5, r1
| ,=< 0x0801c2ea 01e0 b 0x801c2f0
| .--> 0x0801c2ec b6f91650 ldrsh.w r5, [r6, 0x16]
| |`-> 0x0801c2f0 2800 movs r0, r5
| | 0x0801c2f2 00b2 sxth r0, r0
| | 0x0801c2f4 16f0b6fb bl gfx_draw_sub_32a64
| | 0x0801c2f8 0600 movs r6, r0
| | 0x0801c2fa 307f ldrb r0, [r6, 0x1c]
| | 0x0801c2fc 8007 lsls r0, r0, 0x1e
| |,=< 0x0801c2fe 01d4 bmi 0x801c304
| || 0x0801c300 0020 movs r0, 0
| ,===< 0x0801c302 10e0 b 0x801c326
| ||`-> 0x0801c304 3100 movs r1, r6
| || 0x0801c306 2000 movs r0, r4
| || 0x0801c308 16f0defc bl gfx_IntersectRect
| || 0x0801c30c b6f91600 ldrsh.w r0, [r6, 0x16]
| || 0x0801c310 0028 cmp r0, 0
| |`==< 0x0801c312 ebd1 bne 0x801c2ec
| | 0x0801c314 2800 movs r0, r5
| | 0x0801c316 00b2 sxth r0, r0
| | 0x0801c318 fff765ff bl gfx_1c1e6
| | 0x0801c31c 0028 cmp r0, 0
| | ,=< 0x0801c31e 01d5 bpl 0x801c324
| | | 0x0801c320 0020 movs r0, 0
| |,==< 0x0801c322 00e0 b 0x801c326
| ||`-> 0x0801c324 0120 movs r0, 1 ; 1
\ ``--> 0x0801c326 70bd pop {r4, r5, r6, pc}
/ (fcn) gfx_bmp_s1_1 80
| Caller: gfx_3add4 gfx_bmp_sub3 gfx_bmp_sub1
| gfx_bmp_s1_1 ();
| 0x0801c328 00b5 push {lr}
| 0x0801c32a 83b0 sub sp, 0xc
| 0x0801c32c dff8000d ldr.w r0, [0x0801d034] ; [0x801d034:4]=0x2001e370
| 0x0801c330 0078 ldrb r0, [r0]
| 0x0801c332 0028 cmp r0, 0
| ,=< 0x0801c334 04d0 beq 0x801c340
| | 0x0801c336 dff8fc0c ldr.w r0, [0x0801d03a] ; [0x801d038:4]=0xb083b530
| | 0x0801c33a fff7b1ff bl gfx_1c2a0
| ,==< 0x0801c33e 1ae0 b 0x801c376
| |`-> 0x0801c340 dff8e80c ldr.w r0, [0x0801d030] ; [0x801d030:4]=0x2001e8ee
| | 0x0801c344 b0f93c00 ldrsh.w r0, [r0, 0x3c]
| | 0x0801c348 16f08cfb bl gfx_draw_sub_32a64
| | 0x0801c34c 0100 movs r1, r0
| | 0x0801c34e 00a8 add r0, sp, 0
| | 0x0801c350 0822 movs r2, 8 ; 8
| | 0x0801c352 16f06bfc bl gfx_memcpy
| | 0x0801c356 dff8d80b ldr.w r0, [0x0801cf36] ; [0x801cf34:4]=0x4b57c
| | 0x0801c35a b0f90000 ldrsh.w r0, [r0]
| | 0x0801c35e 0028 cmp r0, 0
| |,=< 0x0801c360 06d0 beq 0x801c370
| || 0x0801c362 dff8cc0b ldr.w r0, [0x0801cf36] ; [0x801cf34:4]=0x4b57c
| || 0x0801c366 b0f90010 ldrsh.w r1, [r0]
| || 0x0801c36a 00a8 add r0, sp, 0
| || 0x0801c36c fff7baff bl gfx_bmp_s1_5
| |`-> 0x0801c370 00a8 add r0, sp, 0
| | 0x0801c372 fff795ff bl gfx_1c2a0
\ `--> 0x0801c376 07bd pop {r0, r1, r2, pc}
/ (fcn) gfx_1c378 142
| Caller: gfx_1c86c
| gfx_1c378 ();
| 0x0801c378 2de9f843 push.w {r3, r4, r5, r6, r7, r8, sb, lr}
| 0x0801c37c 0400 movs r4, r0
| 0x0801c37e 0e00 movs r6, r1
| 0x0801c380 36b2 sxth r6, r6
| 0x0801c382 002e cmp r6, 0
| ,=< 0x0801c384 3dd0 beq 0x801c402
| | 0x0801c386 2000 movs r0, r4
| | 0x0801c388 00b2 sxth r0, r0
| | 0x0801c38a 16f06bfb bl gfx_draw_sub_32a64
| | 0x0801c38e 0500 movs r5, r0
| | 0x0801c390 0020 movs r0, 0
| | 0x0801c392 6883 strh r0, [r5, 0x1a]
| | 0x0801c394 ee82 strh r6, [r5, 0x16]
| | 0x0801c396 3000 movs r0, r6
| | 0x0801c398 00b2 sxth r0, r0
| | 0x0801c39a 16f063fb bl gfx_draw_sub_32a64
| | 0x0801c39e 0700 movs r7, r0
| | 0x0801c3a0 287f ldrb r0, [r5, 0x1c]
| | 0x0801c3a2 10f00806 ands r6, r0, 8
| | 0x0801c3a6 b7f91890 ldrsh.w sb, [r7, 0x18]
| | 0x0801c3aa 0ffa89f9 sxth.w sb, sb
| | 0x0801c3ae b9f1000f cmp.w sb, 0
| ,==< 0x0801c3b2 01d1 bne 0x801c3b8
| || 0x0801c3b4 3c83 strh r4, [r7, 0x18]
| ,===< 0x0801c3b6 24e0 b 0x801c402
| |`--> 0x0801c3b8 4846 mov r0, sb
| | | 0x0801c3ba 00b2 sxth r0, r0
| | | 0x0801c3bc 16f052fb bl gfx_draw_sub_32a64
| | | 0x0801c3c0 8046 mov r8, r0
| | | 0x0801c3c2 002e cmp r6, 0
| |,==< 0x0801c3c4 08d1 bne 0x801c3d8
| ||| 0x0801c3c6 98f81c00 ldrb.w r0, [r8, 0x1c]
| ||| 0x0801c3ca 0007 lsls r0, r0, 0x1c
| ,====< 0x0801c3cc 04d5 bpl 0x801c3d8
| |||| 0x0801c3ce a5f81a90 strh.w sb, [r5, 0x1a]
| |||| 0x0801c3d2 3c83 strh r4, [r7, 0x18]
| ,=====< 0x0801c3d4 15e0 b 0x801c402
| ..------> 0x0801c3d6 8046 mov r8, r0
| |||`-`--> 0x0801c3d8 b8f91a70 ldrsh.w r7, [r8, 0x1a]
| ||| | | 0x0801c3dc 3800 movs r0, r7
| ||| | | 0x0801c3de 00b2 sxth r0, r0
| ||| | | 0x0801c3e0 0028 cmp r0, 0
| ||| |,==< 0x0801c3e2 02d1 bne 0x801c3ea
| ||| ||| 0x0801c3e4 a8f81a40 strh.w r4, [r8, 0x1a]
| |||,====< 0x0801c3e8 0be0 b 0x801c402
| |||||`--> 0x0801c3ea 3800 movs r0, r7
| ||||| | 0x0801c3ec 00b2 sxth r0, r0
| ||||| | 0x0801c3ee 16f039fb bl gfx_draw_sub_32a64
| ||||| | 0x0801c3f2 002e cmp r6, 0
| `=======< 0x0801c3f4 efd1 bne 0x801c3d6
| |||| | 0x0801c3f6 017f ldrb r1, [r0, 0x1c]
| |||| | 0x0801c3f8 0907 lsls r1, r1, 0x1c
| `======< 0x0801c3fa ecd5 bpl 0x801c3d6
| ||| | 0x0801c3fc a8f81a40 strh.w r4, [r8, 0x1a]
| ||| | 0x0801c400 6f83 strh r7, [r5, 0x1a]
\ ```-`-> 0x0801c402 bde8f183 pop.w {r0, r4, r5, r6, r7, r8, sb, pc}
/ (fcn) gfx_1c406 88
| Caller: gfx_1c45e
| gfx_1c406 ();
| 0x0801c406 70b5 push {r4, r5, r6, lr}
| 0x0801c408 0400 movs r4, r0
| 0x0801c40a 2000 movs r0, r4
| 0x0801c40c 00b2 sxth r0, r0
| 0x0801c40e 16f029fb bl gfx_draw_sub_32a64
| 0x0801c412 0500 movs r5, r0
| 0x0801c414 b5f91600 ldrsh.w r0, [r5, 0x16]
| 0x0801c418 00b2 sxth r0, r0
| 0x0801c41a 0028 cmp r0, 0
| ,=< 0x0801c41c 1ed0 beq 0x801c45c
| | 0x0801c41e 00b2 sxth r0, r0
| | 0x0801c420 16f020fb bl gfx_draw_sub_32a64
| | 0x0801c424 0600 movs r6, r0
| | 0x0801c426 b6f91800 ldrsh.w r0, [r6, 0x18]
| | 0x0801c42a 00b2 sxth r0, r0
| | 0x0801c42c 24b2 sxth r4, r4
| | 0x0801c42e a042 cmp r0, r4
| ,==< 0x0801c430 07d1 bne 0x801c442
| || 0x0801c432 00b2 sxth r0, r0
| || 0x0801c434 16f016fb bl gfx_draw_sub_32a64
| || 0x0801c438 408b ldrh r0, [r0, 0x1a]
| || 0x0801c43a 3083 strh r0, [r6, 0x18]
| ,===< 0x0801c43c 0ee0 b 0x801c45c
| .----> 0x0801c43e b0f91a00 ldrsh.w r0, [r0, 0x1a]
| ||`--> 0x0801c442 00b2 sxth r0, r0
| || | 0x0801c444 0028 cmp r0, 0
| ||,==< 0x0801c446 09d0 beq 0x801c45c
| |||| 0x0801c448 00b2 sxth r0, r0
| |||| 0x0801c44a 16f00bfb bl gfx_draw_sub_32a64
| |||| 0x0801c44e b0f91a10 ldrsh.w r1, [r0, 0x1a]
| |||| 0x0801c452 24b2 sxth r4, r4
| |||| 0x0801c454 a142 cmp r1, r4
| `====< 0x0801c456 f2d1 bne 0x801c43e
| ||| 0x0801c458 698b ldrh r1, [r5, 0x1a]
| ||| 0x0801c45a 4183 strh r1, [r0, 0x1a]
\ ```-> 0x0801c45c 70bd pop {r4, r5, r6, pc}
/ (fcn) gfx_1c45e 44
| Caller: gfx_1c9d4
| gfx_1c45e ();
| 0x0801c45e 38b5 push {r3, r4, r5, lr}
| 0x0801c460 0400 movs r4, r0
| 0x0801c462 2000 movs r0, r4
| 0x0801c464 00b2 sxth r0, r0
| 0x0801c466 16f0fdfa bl gfx_draw_sub_32a64
| 0x0801c46a 0500 movs r5, r0
| 0x0801c46c b5f91600 ldrsh.w r0, [r5, 0x16]
| 0x0801c470 00b2 sxth r0, r0
| 0x0801c472 0028 cmp r0, 0
| ,=< 0x0801c474 08d0 beq 0x801c488
| | 0x0801c476 2000 movs r0, r4
| | 0x0801c478 00b2 sxth r0, r0
| | 0x0801c47a fff7c4ff bl gfx_1c406
| | 0x0801c47e 2800 movs r0, r5
| | 0x0801c480 00f0def9 bl gfx_1c840
| | 0x0801c484 0020 movs r0, 0
| | 0x0801c486 e882 strh r0, [r5, 0x16]
\ `-> 0x0801c488 31bd pop {r0, r4, r5, pc}
/ (fcn) gfx_1c48a 36
| Caller: gfx_1c9d4
| gfx_1c48a ();
| 0x0801c48a 38b5 push {r3, r4, r5, lr}
| 0x0801c48c 0400 movs r4, r0
| ,=< 0x0801c48e 0ae0 b 0x801c4a6
| .--> 0x0801c490 2000 movs r0, r4
| || 0x0801c492 00b2 sxth r0, r0
| || 0x0801c494 16f0e6fa bl gfx_draw_sub_32a64
| || 0x0801c498 b0f91a50 ldrsh.w r5, [r0, 0x1a]
| || 0x0801c49c 2000 movs r0, r4
| || 0x0801c49e 00b2 sxth r0, r0
| || 0x0801c4a0 00f098fa bl gfx_1c9d4
| || 0x0801c4a4 2c00 movs r4, r5
| |`-> 0x0801c4a6 24b2 sxth r4, r4
| | 0x0801c4a8 002c cmp r4, 0
| `==< 0x0801c4aa f1d1 bne 0x801c490
\ 0x0801c4ac 31bd pop {r0, r4, r5, pc}
/ (fcn) gfx_bmp_s1_4 20
| Caller: gfx_1c2a0 gfx_1c7bc gfx_bmp_sub1
| gfx_bmp_s1_4 ();
| 0x0801c4ae 80b5 push {r7, lr}
| 0x0801c4b0 0b00 movs r3, r1
| 0x0801c4b2 b0f90220 ldrsh.w r2, [r0, 2]
| 0x0801c4b6 b0f90010 ldrsh.w r1, [r0]
| 0x0801c4ba 1800 movs r0, r3
| 0x0801c4bc 16f025fc bl some_long_adding
\ 0x0801c4c0 01bd pop {r0, pc}
/ (fcn) gfx_1c4c2 46
| Caller: gfx_1c9d4
| gfx_1c4c2 ();
| 0x0801c4c2 10b5 push {r4, lr}
| 0x0801c4c4 0400 movs r4, r0
| 0x0801c4c6 dff86c0d ldr.w r0, [0x0801d23a] ; [0x801d238:4]=0x4b570
| 0x0801c4ca b0f90000 ldrsh.w r0, [r0]
| ,=< 0x0801c4ce 04e0 b 0x801c4da
| .--> 0x0801c4d0 00b2 sxth r0, r0
| || 0x0801c4d2 16f0c7fa bl gfx_draw_sub_32a64
| || 0x0801c4d6 b0f91400 ldrsh.w r0, [r0, 0x14]
| |`-> 0x0801c4da 00b2 sxth r0, r0
| | 0x0801c4dc 0028 cmp r0, 0
| |,=< 0x0801c4de 05d0 beq 0x801c4ec
| || 0x0801c4e0 00b2 sxth r0, r0
| || 0x0801c4e2 24b2 sxth r4, r4
| || 0x0801c4e4 a042 cmp r0, r4
| `==< 0x0801c4e6 f3d1 bne 0x801c4d0
| | 0x0801c4e8 0120 movs r0, 1 ; 1
| ,==< 0x0801c4ea 00e0 b 0x801c4ee
| |`-> 0x0801c4ec 0020 movs r0, 0
\ `--> 0x0801c4ee 10bd pop {r4, pc}
/ (fcn) gfx_1c4f0 10
| Caller: gfx_1c7bc gfx_4be40
| gfx_1c4f0 ();
| 0x0801c4f0 10b5 push {r4, lr}
| 0x0801c4f2 0c00 movs r4, r1
| 0x0801c4f4 00f0a4f9 bl gfx_1c840
\ 0x0801c4f8 10bd pop {r4, pc}
/ (fcn) gfx_1c4fa 54
| Caller: gfx_1c9d4
| gfx_1c4fa ();
| 0x0801c4fa 38b5 push {r3, r4, r5, lr}
| 0x0801c4fc 0400 movs r4, r0
| 0x0801c4fe dff8340d ldr.w r0, [0x0801d23a] ; [0x801d238:4]=0x4b570
| 0x0801c502 b0f90000 ldrsh.w r0, [r0]
| ,=< 0x0801c506 ffe7 b 0x801c508
| .`-> 0x0801c508 00b2 sxth r0, r0
| | 0x0801c50a 0028 cmp r0, 0
| |,=< 0x0801c50c 0fd0 beq 0x801c52e
| || 0x0801c50e 00b2 sxth r0, r0
| || 0x0801c510 16f0a8fa bl gfx_draw_sub_32a64
| || 0x0801c514 0500 movs r5, r0
| || 0x0801c516 b5f91400 ldrsh.w r0, [r5, 0x14]
| || 0x0801c51a 00b2 sxth r0, r0
| || 0x0801c51c 24b2 sxth r4, r4
| || 0x0801c51e a042 cmp r0, r4
| `==< 0x0801c520 f2d1 bne 0x801c508
| | 0x0801c522 2000 movs r0, r4
| | 0x0801c524 00b2 sxth r0, r0
| | 0x0801c526 16f09dfa bl gfx_draw_sub_32a64
| | 0x0801c52a 808a ldrh r0, [r0, 0x14]
| | 0x0801c52c a882 strh r0, [r5, 0x14]
\ `-> 0x0801c52e 31bd pop {r0, r4, r5, pc}
/ (fcn) gfx_1c530 54
| Caller: gfx_1c86c
| gfx_1c530 ();
| 0x0801c530 38b5 push {r3, r4, r5, lr}
| 0x0801c532 0400 movs r4, r0
| 0x0801c534 dff8fc0c ldr.w r0, [gfx_1d238] ; [0x801d238:4]=0x4b570
| 0x0801c538 b0f90000 ldrsh.w r0, [r0]
| 0x0801c53c 0028 cmp r0, 0
| ,=< 0x0801c53e 0ed0 beq 0x801c55e
| | 0x0801c540 dff8f00c ldr.w r0, [gfx_1d238] ; [0x801d238:4]=0x4b570
| | 0x0801c544 b0f90000 ldrsh.w r0, [r0]
| | 0x0801c548 16f08cfa bl gfx_draw_sub_32a64
| | 0x0801c54c 0500 movs r5, r0
| | 0x0801c54e 2000 movs r0, r4
| | 0x0801c550 00b2 sxth r0, r0
| | 0x0801c552 16f087fa bl gfx_draw_sub_32a64
| | 0x0801c556 a98a ldrh r1, [r5, 0x14]
| | 0x0801c558 8182 strh r1, [r0, 0x14]
| | 0x0801c55a ac82 strh r4, [r5, 0x14]
| ,==< 0x0801c55c 02e0 b 0x801c564
| |`-> 0x0801c55e dff8d40c ldr.w r0, [0x0801d23a] ; [0x801d238:4]=0x4b570
| | 0x0801c562 0480 strh r4, [r0]
\ `--> 0x0801c564 31bd pop {r0, r4, r5, pc}
/ (fcn) gfx_1c566 36
| Caller: gfx_1c1fe
| gfx_1c566 ();
| 0x0801c566 b0f90410 ldrsh.w r1, [r0, 4]
| 0x0801c56a b0f90020 ldrsh.w r2, [r0]
| 0x0801c56e 9142 cmp r1, r2
| ,=< 0x0801c570 01da bge 0x801c576
| | 0x0801c572 0020 movs r0, 0
| ,==< 0x0801c574 08e0 b 0x801c588
| |`-> 0x0801c576 b0f90610 ldrsh.w r1, [r0, 6]
| | 0x0801c57a b0f90200 ldrsh.w r0, [r0, 2]
| | 0x0801c57e 8142 cmp r1, r0
| |,=< 0x0801c580 01da bge 0x801c586
| || 0x0801c582 0020 movs r0, 0
| ,===< 0x0801c584 00e0 b 0x801c588
| ||`-> 0x0801c586 0120 movs r0, 1 ; 1
\ ``--> 0x0801c588 7047 bx lr
/ (fcn) gfx_1c58a 178
| Caller: gfx_1caf2 gfx_1c58a
| gfx_1c58a ();
| 0x0801c58a 2de9fc41 push.w {r2, r3, r4, r5, r6, r7, r8, lr}
| 0x0801c58e 0c00 movs r4, r1
| 0x0801c590 1500 movs r5, r2
| ,=< 0x0801c592 13e0 b 0x801c5bc
| .--> 0x0801c594 4046 mov r0, r8
| || 0x0801c596 00b2 sxth r0, r0
| || 0x0801c598 16f064fa bl gfx_draw_sub_32a64
| || 0x0801c59c 0700 movs r7, r0
| || 0x0801c59e 00aa add r2, sp, 0
| || 0x0801c5a0 2100 movs r1, r4
| || 0x0801c5a2 4046 mov r0, r8
| || 0x0801c5a4 00b2 sxth r0, r0
| || 0x0801c5a6 fff7f0ff bl gfx_1c58a
| || 0x0801c5aa b7f91a80 ldrsh.w r8, [r7, 0x1a]
| .---> 0x0801c5ae 0ffa88f8 sxth.w r8, r8
| ||| 0x0801c5b2 b8f1000f cmp.w r8, 0
| |`==< 0x0801c5b6 edd1 bne 0x801c594
| ....-.--> 0x0801c5b8 b6f91a00 ldrsh.w r0, [r6, 0x1a]
| ||||||`-> 0x0801c5bc 00b2 sxth r0, r0
| |||||| 0x0801c5be 0028 cmp r0, 0
| ||||||,=< 0x0801c5c0 3ad0 beq 0x801c638
| ||||||| 0x0801c5c2 00b2 sxth r0, r0
| ||||||| 0x0801c5c4 16f04efa bl gfx_draw_sub_32a64
| ||||||| 0x0801c5c8 0600 movs r6, r0
| ||||||| 0x0801c5ca b78b ldrh r7, [r6, 0x1c]
| ||||||| 0x0801c5cc b807 lsls r0, r7, 0x1e
| ========< 0x0801c5ce f3d5 bpl 0x801c5b8
| ||||||| 0x0801c5d0 002d cmp r5, 0
| ========< 0x0801c5d2 05d0 beq 0x801c5e0
| ||||||| 0x0801c5d4 2a00 movs r2, r5
| ||||||| 0x0801c5d6 3100 movs r1, r6
| ||||||| 0x0801c5d8 00a8 add r0, sp, 0
| ||||||| 0x0801c5da 16f0a4fa bl gfx_ThreeRectSomething
| ========< 0x0801c5de 04e0 b 0x801c5ea
| --------> 0x0801c5e0 00a8 add r0, sp, 0
| ||||||| 0x0801c5e2 3100 movs r1, r6
| ||||||| 0x0801c5e4 0822 movs r2, 8 ; 8
| ||||||| 0x0801c5e6 16f021fb bl gfx_memcpy
| --------> 0x0801c5ea 00a9 add r1, sp, 0
| ||||||| 0x0801c5ec 2000 movs r0, r4
| ||||||| 0x0801c5ee 16f09bfb bl func_32d28
| ||||||| 0x0801c5f2 0028 cmp r0, 0
| `=======< 0x0801c5f4 e0d0 beq 0x801c5b8
| |||||| 0x0801c5f6 f807 lsls r0, r7, 0x1f
| ,=======< 0x0801c5f8 1bd4 bmi 0x801c632
| ||||||| 0x0801c5fa b4f90200 ldrsh.w r0, [r4, 2]
| ||||||| 0x0801c5fe b6f90210 ldrsh.w r1, [r6, 2]
| ||||||| 0x0801c602 8842 cmp r0, r1
| ========< 0x0801c604 0bda bge 0x801c61e
| ||||||| 0x0801c606 bdf90200 ldrsh.w r0, [sp, 2]
| ||||||| 0x0801c60a 401e subs r0, r0, 1
| ||||||| 0x0801c60c b4f90610 ldrsh.w r1, [r4, 6]
| ||||||| 0x0801c610 8842 cmp r0, r1
| |`======< 0x0801c612 d1da bge 0x801c5b8
| | ||||| 0x0801c614 bdf80200 ldrh.w r0, [sp, 2]
| | ||||| 0x0801c618 401e subs r0, r0, 1
| | ||||| 0x0801c61a e080 strh r0, [r4, 6]
| | `=====< 0x0801c61c cce7 b 0x801c5b8
| --------> 0x0801c61e bdf90600 ldrsh.w r0, [sp, 6]
| | |||| 0x0801c622 b4f90610 ldrsh.w r1, [r4, 6]
| | |||| 0x0801c626 8842 cmp r0, r1
| | `====< 0x0801c628 c6da bge 0x801c5b8
| | ||| 0x0801c62a bdf80600 ldrh.w r0, [sp, 6]
| | ||| 0x0801c62e e080 strh r0, [r4, 6]
| | |`==< 0x0801c630 c2e7 b 0x801c5b8
| `-------> 0x0801c632 b6f91880 ldrsh.w r8, [r6, 0x18]
| `===< 0x0801c636 bae7 b 0x801c5ae
\ `-> 0x0801c638 bde8f381 pop.w {r0, r1, r4, r5, r6, r7, r8, pc}
/ (fcn) gfx_1c63c 152
| Caller: gfx_1caf2 gfx_1c63c
| gfx_1c63c ();
| 0x0801c63c 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x0801c640 83b0 sub sp, 0xc
| 0x0801c642 0c00 movs r4, r1
| 0x0801c644 1500 movs r5, r2
| 0x0801c646 0026 movs r6, 0
| ,=< 0x0801c648 16e0 b 0x801c678
| .--> 0x0801c64a 4846 mov r0, sb
| || 0x0801c64c 00b2 sxth r0, r0
| || 0x0801c64e 16f009fa bl gfx_draw_sub_32a64
| || 0x0801c652 8046 mov r8, r0
| || 0x0801c654 00aa add r2, sp, 0
| || 0x0801c656 2100 movs r1, r4
| || 0x0801c658 4846 mov r0, sb
| || 0x0801c65a 00b2 sxth r0, r0
| || 0x0801c65c fff7eeff bl gfx_1c63c
| || 0x0801c660 0028 cmp r0, 0
| ,===< 0x0801c662 00d0 beq 0x801c666
| ||| 0x0801c664 0126 movs r6, 1 ; 1
| `---> 0x0801c666 b8f91a90 ldrsh.w sb, [r8, 0x1a]
| .---> 0x0801c66a 0ffa89f9 sxth.w sb, sb
| ||| 0x0801c66e b9f1000f cmp.w sb, 0
| |`==< 0x0801c672 ead1 bne 0x801c64a
| ..-.--> 0x0801c674 b7f91a00 ldrsh.w r0, [r7, 0x1a]
| ||||`-> 0x0801c678 00b2 sxth r0, r0
| |||| 0x0801c67a 0028 cmp r0, 0
| ||||,=< 0x0801c67c 27d0 beq 0x801c6ce
| ||||| 0x0801c67e 00b2 sxth r0, r0
| ||||| 0x0801c680 16f0f0f9 bl gfx_draw_sub_32a64
| ||||| 0x0801c684 0700 movs r7, r0
| ||||| 0x0801c686 b7f81c80 ldrh.w r8, [r7, 0x1c]
| ||||| 0x0801c68a 5fea8870 lsls.w r0, r8, 0x1e
| `=====< 0x0801c68e f1d5 bpl 0x801c674
| |||| 0x0801c690 002d cmp r5, 0
| ,=====< 0x0801c692 05d0 beq 0x801c6a0
| ||||| 0x0801c694 2a00 movs r2, r5
| ||||| 0x0801c696 3900 movs r1, r7
| ||||| 0x0801c698 00a8 add r0, sp, 0
| ||||| 0x0801c69a 16f044fa bl gfx_ThreeRectSomething
| ,======< 0x0801c69e 04e0 b 0x801c6aa
| |`-----> 0x0801c6a0 00a8 add r0, sp, 0
| | |||| 0x0801c6a2 3900 movs r1, r7
| | |||| 0x0801c6a4 0822 movs r2, 8 ; 8
| | |||| 0x0801c6a6 16f0c1fa bl gfx_memcpy
| `------> 0x0801c6aa 00a9 add r1, sp, 0
| |||| 0x0801c6ac 2000 movs r0, r4
| |||| 0x0801c6ae 16f03bfb bl func_32d28
| |||| 0x0801c6b2 0028 cmp r0, 0
| `====< 0x0801c6b4 ded0 beq 0x801c674
| ||| 0x0801c6b6 5feac870 lsls.w r0, r8, 0x1f
| ,====< 0x0801c6ba 05d4 bmi 0x801c6c8
| |||| 0x0801c6bc bdf80400 ldrh.w r0, [sp, 4]
| |||| 0x0801c6c0 401c adds r0, r0, 1
| |||| 0x0801c6c2 2080 strh r0, [r4]
| |||| 0x0801c6c4 0126 movs r6, 1 ; 1
| ||`==< 0x0801c6c6 d5e7 b 0x801c674
| `----> 0x0801c6c8 b7f91890 ldrsh.w sb, [r7, 0x18]
| `===< 0x0801c6cc cde7 b 0x801c66a
| `-> 0x0801c6ce 3000 movs r0, r6
\ 0x0801c6d0 bde8fe83 pop.w {r1, r2, r3, r4, r5, r6, r7, r8, sb, pc}
/ (fcn) gfx_1c6d4 132
| Caller: gfx_1caf2 gfx_1c6d4
| gfx_1c6d4 ();
| 0x0801c6d4 2de9fc41 push.w {r2, r3, r4, r5, r6, r7, r8, lr}
| 0x0801c6d8 0c00 movs r4, r1
| 0x0801c6da 1500 movs r5, r2
| ,=< 0x0801c6dc 13e0 b 0x801c706
| .--> 0x0801c6de 4046 mov r0, r8
| || 0x0801c6e0 00b2 sxth r0, r0
| || 0x0801c6e2 16f0bff9 bl gfx_draw_sub_32a64
| || 0x0801c6e6 0700 movs r7, r0
| || 0x0801c6e8 00aa add r2, sp, 0
| || 0x0801c6ea 2100 movs r1, r4
| || 0x0801c6ec 4046 mov r0, r8
| || 0x0801c6ee 00b2 sxth r0, r0
| || 0x0801c6f0 fff7f0ff bl gfx_1c6d4
| || 0x0801c6f4 b7f91a80 ldrsh.w r8, [r7, 0x1a]
| .---> 0x0801c6f8 0ffa88f8 sxth.w r8, r8
| ||| 0x0801c6fc b8f1000f cmp.w r8, 0
| |`==< 0x0801c700 edd1 bne 0x801c6de
| ..-.--> 0x0801c702 b6f91a00 ldrsh.w r0, [r6, 0x1a]
| ||||`-> 0x0801c706 00b2 sxth r0, r0
| |||| 0x0801c708 0028 cmp r0, 0
| ||||,=< 0x0801c70a 23d0 beq 0x801c754
| ||||| 0x0801c70c 00b2 sxth r0, r0
| ||||| 0x0801c70e 16f0a9f9 bl gfx_draw_sub_32a64
| ||||| 0x0801c712 0600 movs r6, r0
| ||||| 0x0801c714 b78b ldrh r7, [r6, 0x1c]
| ||||| 0x0801c716 b807 lsls r0, r7, 0x1e
| `=====< 0x0801c718 f3d5 bpl 0x801c702
| |||| 0x0801c71a 002d cmp r5, 0
| ,=====< 0x0801c71c 05d0 beq 0x801c72a
| ||||| 0x0801c71e 2a00 movs r2, r5
| ||||| 0x0801c720 3100 movs r1, r6
| ||||| 0x0801c722 00a8 add r0, sp, 0
| ||||| 0x0801c724 16f0fff9 bl gfx_ThreeRectSomething
| ,======< 0x0801c728 04e0 b 0x801c734
| |`-----> 0x0801c72a 00a8 add r0, sp, 0
| | |||| 0x0801c72c 3100 movs r1, r6
| | |||| 0x0801c72e 0822 movs r2, 8 ; 8
| | |||| 0x0801c730 16f07cfa bl gfx_memcpy
| `------> 0x0801c734 00a9 add r1, sp, 0
| |||| 0x0801c736 2000 movs r0, r4
| |||| 0x0801c738 16f0f6fa bl func_32d28
| |||| 0x0801c73c 0028 cmp r0, 0
| `====< 0x0801c73e e0d0 beq 0x801c702
| ||| 0x0801c740 f807 lsls r0, r7, 0x1f
| ,====< 0x0801c742 04d4 bmi 0x801c74e
| |||| 0x0801c744 bdf80000 ldrh.w r0, [sp]
| |||| 0x0801c748 401e subs r0, r0, 1
| |||| 0x0801c74a a080 strh r0, [r4, 4]
| ||`==< 0x0801c74c d9e7 b 0x801c702
| `----> 0x0801c74e b6f91880 ldrsh.w r8, [r6, 0x18]
| `===< 0x0801c752 d1e7 b 0x801c6f8
\ `-> 0x0801c754 bde8f381 pop.w {r0, r1, r4, r5, r6, r7, r8, pc}
/ (fcn) gfx_1c758 38
| Caller: gfx_3ae1c gfx_1c77e gfx_334f8 menu_draw_sub_3abbc func_44846 gfx_4be2e
| gfx_1c758 ();
| 0x0801c758 38b5 push {r3, r4, r5, lr}
| 0x0801c75a 0400 movs r4, r0
| 0x0801c75c 0d00 movs r5, r1
| 0x0801c75e 24b2 sxth r4, r4
| 0x0801c760 002c cmp r4, 0
| ,=< 0x0801c762 0bd0 beq 0x801c77c
| | 0x0801c764 2000 movs r0, r4
| | 0x0801c766 00b2 sxth r0, r0
| | 0x0801c768 16f07cf9 bl gfx_draw_sub_32a64
| | 0x0801c76c 0100 movs r1, r0
| | 0x0801c76e 0869 ldr r0, [r1, 0x10]
| | 0x0801c770 0028 cmp r0, 0
| ,==< 0x0801c772 03d0 beq 0x801c77c
| || 0x0801c774 ac80 strh r4, [r5, 4]
| || 0x0801c776 2800 movs r0, r5
| || 0x0801c778 0969 ldr r1, [r1, 0x10]
| || 0x0801c77a 8847 blx r1
\ ``-> 0x0801c77c 31bd pop {r0, r4, r5, pc}
/ (fcn) gfx_1c77e 20
| Caller: gfx_1c9d4 gfx_1c86c func_541ae
| gfx_1c77e ();
| 0x0801c77e e0b5 push {r5, r6, r7, lr}
| 0x0801c780 adf80400 strh.w r0, [sp, 4]
| 0x0801c784 c9b2 uxtb r1, r1
| 0x0801c786 0091 str r1, [sp]
| 0x0801c788 00a9 add r1, sp, 0
| 0x0801c78a 00b2 sxth r0, r0
| 0x0801c78c fff7e4ff bl gfx_1c758
\ 0x0801c790 07bd pop {r0, r1, r2, pc}
/ (fcn) gfx_1c792 24
| Caller: func_4bc80 gfx_1d238
| gfx_1c792 ();
| 0x0801c792 0022 movs r2, 0
| 0x0801c794 4a80 strh r2, [r1, 2]
| 0x0801c796 0a80 strh r2, [r1]
| 0x0801c798 8288 ldrh r2, [r0, 4]
| 0x0801c79a 0388 ldrh r3, [r0]
| 0x0801c79c d21a subs r2, r2, r3
| 0x0801c79e 8a80 strh r2, [r1, 4]
| 0x0801c7a0 c288 ldrh r2, [r0, 6]
| 0x0801c7a2 4088 ldrh r0, [r0, 2]
| 0x0801c7a4 101a subs r0, r2, r0
| 0x0801c7a6 c880 strh r0, [r1, 6]
\ 0x0801c7a8 7047 bx lr
/ (fcn) gfx_copy_8byte_thing 18
| Caller: gfx_bmp_sub1
| gfx_copy_8byte_thing ();
| 0x0801c7aa 00b5 push {lr}
| 0x0801c7ac 0200 movs r2, r0
| 0x0801c7ae 0800 movs r0, r1
| 0x0801c7b0 12f10801 adds.w r1, r2, 8
| 0x0801c7b4 0822 movs r2, 8 ; 8
| 0x0801c7b6 16f039fa bl gfx_memcpy
\ 0x0801c7ba 00bd pop {pc}
/ (fcn) gfx_1c7bc 120
| Caller: gfx_1c834
| gfx_1c7bc ();
| 0x0801c7bc f0b5 push {r4, r5, r6, r7, lr}
| 0x0801c7be 85b0 sub sp, 0x14
| 0x0801c7c0 0400 movs r4, r0
| 0x0801c7c2 0d00 movs r5, r1
| 0x0801c7c4 24b2 sxth r4, r4
| 0x0801c7c6 002c cmp r4, 0
| ,=< 0x0801c7c8 32d0 beq 0x801c830
| | 0x0801c7ca 2000 movs r0, r4
| | 0x0801c7cc 00b2 sxth r0, r0
| | 0x0801c7ce 16f049f9 bl gfx_draw_sub_32a64
| | 0x0801c7d2 0600 movs r6, r0
| | 0x0801c7d4 b78b ldrh r7, [r6, 0x1c]
| | 0x0801c7d6 b807 lsls r0, r7, 0x1e
| ,==< 0x0801c7d8 2ad5 bpl 0x801c830
| || 0x0801c7da 00a8 add r0, sp, 0
| || 0x0801c7dc 3100 movs r1, r6
| || 0x0801c7de 0822 movs r2, 8 ; 8
| || 0x0801c7e0 16f024fa bl gfx_memcpy
| || 0x0801c7e4 002d cmp r5, 0
| ,===< 0x0801c7e6 0cd0 beq 0x801c802
| ||| 0x0801c7e8 02a8 add r0, sp, 8
| ||| 0x0801c7ea 2900 movs r1, r5
| ||| 0x0801c7ec 0822 movs r2, 8 ; 8
| ||| 0x0801c7ee 16f01dfa bl gfx_memcpy
| ||| 0x0801c7f2 02a9 add r1, sp, 8
| ||| 0x0801c7f4 3000 movs r0, r6
| ||| 0x0801c7f6 fff75afe bl gfx_bmp_s1_4
| ||| 0x0801c7fa 02a9 add r1, sp, 8
| ||| 0x0801c7fc 00a8 add r0, sp, 0
| ||| 0x0801c7fe 16f063fa bl gfx_IntersectRect
| `---> 0x0801c802 2100 movs r1, r4
| || 0x0801c804 09b2 sxth r1, r1
| || 0x0801c806 00a8 add r0, sp, 0
| || 0x0801c808 fff76cfd bl gfx_bmp_s1_5
| || 0x0801c80c 0028 cmp r0, 0
| ,===< 0x0801c80e 0fd0 beq 0x801c830
| ||| 0x0801c810 40f60100 movw r0, 0x801 ; 2049
| ||| 0x0801c814 3840 ands r0, r7
| ||| 0x0801c816 0128 cmp r0, 1 ; 1
| ,====< 0x0801c818 05d1 bne 0x801c826
| |||| 0x0801c81a 2100 movs r1, r4
| |||| 0x0801c81c 09b2 sxth r1, r1
| |||| 0x0801c81e 00a8 add r0, sp, 0
| |||| 0x0801c820 fff766fe bl gfx_1c4f0
| ,=====< 0x0801c824 04e0 b 0x801c830
| |`----> 0x0801c826 00a9 add r1, sp, 0
| | ||| 0x0801c828 2000 movs r0, r4
| | ||| 0x0801c82a 00b2 sxth r0, r0
| | ||| 0x0801c82c fff7e7fc bl gfx_1c1fe
| `-```-> 0x0801c830 05b0 add sp, 0x14
\ 0x0801c832 f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) gfx_1c834 12
| Caller: func_26f64 func_3b376 func_37892 gfx_1c86c func_4c030 func_2b726
| gfx_1d238 menu_37e0a func_27e6c func_4c0a8 func_36f9a gfx_1d296
| gfx_1c834 ();
| 0x0801c834 80b5 push {r7, lr}
| 0x0801c836 0021 movs r1, 0
| 0x0801c838 00b2 sxth r0, r0
| 0x0801c83a fff7bfff bl gfx_1c7bc
\ 0x0801c83e 01bd pop {r0, pc}
/ (fcn) gfx_1c840 44
| Caller: gfx_1c4f0 gfx_32d8c gfx_1c45e func_541ae
| gfx_1c840 ();
| 0x0801c840 38b5 push {r3, r4, r5, lr}
| 0x0801c842 0400 movs r4, r0
| 0x0801c844 dff8ec09 ldr.w r0, [gfx_1d238] ; [0x801d238:4]=0x4b570
| 0x0801c848 b0f90050 ldrsh.w r5, [r0]
| ,=< 0x0801c84c 0ae0 b 0x801c864
| .--> 0x0801c84e 2100 movs r1, r4
| || 0x0801c850 2800 movs r0, r5
| || 0x0801c852 00b2 sxth r0, r0
| || 0x0801c854 fff7d3fc bl gfx_1c1fe
| || 0x0801c858 2800 movs r0, r5
| || 0x0801c85a 00b2 sxth r0, r0
| || 0x0801c85c 16f002f9 bl gfx_draw_sub_32a64
| || 0x0801c860 b0f91450 ldrsh.w r5, [r0, 0x14]
| |`-> 0x0801c864 2db2 sxth r5, r5
| | 0x0801c866 002d cmp r5, 0
| `==< 0x0801c868 f1d1 bne 0x801c84e
\ 0x0801c86a 31bd pop {r0, r4, r5, pc}
/ (fcn) gfx_1c86c 332
| Caller: func_3b42a func_4c148 gfx_1c9b8 func_37bb8
| gfx_1c86c ();
| 0x0801c86c 2de9f84f push.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0801c870 0600 movs r6, r0
| 0x0801c872 0f00 movs r7, r1
| 0x0801c874 9046 mov r8, r2
| 0x0801c876 9946 mov sb, r3
| 0x0801c878 ddf834a0 ldr.w sl, [sp, 0x34]
| 0x0801c87c 0b9c ldr r4, [sp, 0x2c]
| 0x0801c87e dff8900a ldr.w r0, [0x0801d316] ; [0x801d314:4]=0x2001e7fc
| 0x0801c882 0088 ldrh r0, [r0]
| 0x0801c884 0443 orrs r4, r0
| 0x0801c886 bdf92850 ldrsh.w r5, [sp, 0x28]
| 0x0801c88a 2db2 sxth r5, r5
| 0x0801c88c 002d cmp r5, 0
| ,=< 0x0801c88e 08d1 bne 0x801c8a2
| | 0x0801c890 dff8800a ldr.w r0, [0x0801d318] ; [0x801d318:4]=0x2001e6b0
| | 0x0801c894 0088 ldrh r0, [r0]
| | 0x0801c896 0028 cmp r0, 0
| ,==< 0x0801c898 03d0 beq 0x801c8a2
| || 0x0801c89a dff88806 ldr.w r0, [0x0801cf2a] ; [0x801cf28:4]=0x2001e7fe
| || 0x0801c89e b0f90050 ldrsh.w r5, [r0]
| ``-> 0x0801c8a2 5ff0ff30 movs.w r0, -1 ; -1
| 0x0801c8a6 2db2 sxth r5, r5
| 0x0801c8a8 8542 cmp r5, r0
| ,=< 0x0801c8aa 00d1 bne 0x801c8ae
| | 0x0801c8ac 0025 movs r5, 0
| `-> 0x0801c8ae 2db2 sxth r5, r5
| 0x0801c8b0 002d cmp r5, 0
| ,=< 0x0801c8b2 1ed0 beq 0x801c8f2
| | 0x0801c8b4 2800 movs r0, r5
| | 0x0801c8b6 00b2 sxth r0, r0
| | 0x0801c8b8 16f0d4f8 bl gfx_draw_sub_32a64
| | 0x0801c8bc b0f90010 ldrsh.w r1, [r0]
| | 0x0801c8c0 06fa81f6 sxtah r6, r6, r1
| | 0x0801c8c4 b0f90210 ldrsh.w r1, [r0, 2]
| | 0x0801c8c8 7f18 adds r7, r7, r1
| | 0x0801c8ca b8f1000f cmp.w r8, 0
| ,==< 0x0801c8ce 06d1 bne 0x801c8de
| || 0x0801c8d0 b0f90410 ldrsh.w r1, [r0, 4]
| || 0x0801c8d4 b0f90020 ldrsh.w r2, [r0]
| || 0x0801c8d8 891a subs r1, r1, r2
| || 0x0801c8da 11f10108 adds.w r8, r1, 1
| `--> 0x0801c8de b9f1000f cmp.w sb, 0
| ,==< 0x0801c8e2 06d1 bne 0x801c8f2
| || 0x0801c8e4 b0f90610 ldrsh.w r1, [r0, 6]
| || 0x0801c8e8 b0f90200 ldrsh.w r0, [r0, 2]
| || 0x0801c8ec 081a subs r0, r1, r0
| || 0x0801c8ee 10f10109 adds.w sb, r0, 1
| ``-> 0x0801c8f2 1af12000 adds.w r0, sl, 0x20
| 0x0801c8f6 00b2 sxth r0, r0
| 0x0801c8f8 16f032fa bl gfx_32d60
| 0x0801c8fc 8246 mov sl, r0
| 0x0801c8fe 5046 mov r0, sl
| 0x0801c900 00b2 sxth r0, r0
| 0x0801c902 0028 cmp r0, 0
| ,=< 0x0801c904 54d0 beq 0x801c9b0
| | 0x0801c906 dff80c0a ldr.w r0, [0x0801d31a] ; [0x801d318:4]=0x2001e6b0
| | 0x0801c90a 0088 ldrh r0, [r0]
| | 0x0801c90c 401c adds r0, r0, 1
| | 0x0801c90e dff8041a ldr.w r1, [0x0801d31a] ; [0x801d318:4]=0x2001e6b0
| | 0x0801c912 0880 strh r0, [r1]
| | 0x0801c914 5046 mov r0, sl
| | 0x0801c916 00b2 sxth r0, r0
| | 0x0801c918 16f0a4f8 bl gfx_draw_sub_32a64
| | 0x0801c91c 8346 mov fp, r0
| | 0x0801c91e abf80060 strh.w r6, [fp]
| | 0x0801c922 abf80270 strh.w r7, [fp, 2]
| | 0x0801c926 18eb0600 adds.w r0, r8, r6
| | 0x0801c92a 401e subs r0, r0, 1
| | 0x0801c92c abf80400 strh.w r0, [fp, 4]
| | 0x0801c930 19eb0700 adds.w r0, sb, r7
| | 0x0801c934 401e subs r0, r0, 1
| | 0x0801c936 abf80600 strh.w r0, [fp, 6]
| | 0x0801c93a 0c98 ldr r0, [sp, 0x30]
| | 0x0801c93c cbf81000 str.w r0, [fp, 0x10]
| | 0x0801c940 bbf81c00 ldrh.w r0, [fp, 0x1c]
| | 0x0801c944 43f68f71 movw r1, 0x3f8f
| | 0x0801c948 2140 ands r1, r4
| | 0x0801c94a 0843 orrs r0, r1
| | 0x0801c94c abf81c00 strh.w r0, [fp, 0x1c]
| | 0x0801c950 5046 mov r0, sl
| | 0x0801c952 00b2 sxth r0, r0
| | 0x0801c954 fff7ecfd bl gfx_1c530
| | 0x0801c958 2900 movs r1, r5
| | 0x0801c95a 09b2 sxth r1, r1
| | 0x0801c95c 5046 mov r0, sl
| | 0x0801c95e 00b2 sxth r0, r0
| | 0x0801c960 fff70afd bl gfx_1c378
| | 0x0801c964 a006 lsls r0, r4, 0x1a
| ,==< 0x0801c966 03d5 bpl 0x801c970
| || 0x0801c968 5046 mov r0, sl
| || 0x0801c96a 00b2 sxth r0, r0
| || 0x0801c96c 00f09af8 bl gfx_1caa4
| `--> 0x0801c970 e007 lsls r0, r4, 0x1f
| ,==< 0x0801c972 06d5 bpl 0x801c982
| || 0x0801c974 dff8a009 ldr.w r0, [0x0801d31c] ; [0x801d31c:4]=0x2001e808
| || 0x0801c978 0068 ldr r0, [r0]
| || 0x0801c97a 401c adds r0, r0, 1
| || 0x0801c97c dff89819 ldr.w r1, [0x0801d31c] ; [0x801d31c:4]=0x2001e808
| || 0x0801c980 0860 str r0, [r1]
| `--> 0x0801c982 6006 lsls r0, r4, 0x19
| ,==< 0x0801c984 03d5 bpl 0x801c98e
| || 0x0801c986 5046 mov r0, sl
| || 0x0801c988 00b2 sxth r0, r0
| || 0x0801c98a 16f0fff9 bl gfx_32d8c
| `--> 0x0801c98e a007 lsls r0, r4, 0x1e
| ,==< 0x0801c990 09d5 bpl 0x801c9a6
| || 0x0801c992 bbf81c00 ldrh.w r0, [fp, 0x1c]
| || 0x0801c996 50f00200 orrs r0, r0, 2
| || 0x0801c99a abf81c00 strh.w r0, [fp, 0x1c]
| || 0x0801c99e 5046 mov r0, sl
| || 0x0801c9a0 00b2 sxth r0, r0
| || 0x0801c9a2 fff747ff bl gfx_1c834
| `--> 0x0801c9a6 0121 movs r1, 1 ; 1
| | 0x0801c9a8 5046 mov r0, sl
| | 0x0801c9aa 00b2 sxth r0, r0
| | 0x0801c9ac fff7e7fe bl gfx_1c77e
| `-> 0x0801c9b0 5046 mov r0, sl
| 0x0801c9b2 00b2 sxth r0, r0
\ 0x0801c9b4 bde8f28f pop.w {r1, r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) gfx_1c9b8 28
| Caller: gfx_1d296
| gfx_1c9b8 ();
| 0x0801c9b8 7fb5 push {r0, r1, r2, r3, r4, r5, r6, lr}
| 0x0801c9ba 089c ldr r4, [sp, 0x20]
| 0x0801c9bc 099d ldr r5, [sp, 0x24]
| 0x0801c9be 0a9e ldr r6, [sp, 0x28]
| 0x0801c9c0 0396 str r6, [sp, 0xc]
| 0x0801c9c2 0295 str r5, [sp, 8]
| 0x0801c9c4 a4b2 uxth r4, r4
| 0x0801c9c6 0194 str r4, [sp, 4]
| 0x0801c9c8 0024 movs r4, 0
| 0x0801c9ca 0094 str r4, [sp]
| 0x0801c9cc fff74eff bl gfx_1c86c
| 0x0801c9d0 04b0 add sp, 0x10
\ 0x0801c9d2 70bd pop {r4, r5, r6, pc}
/ (fcn) gfx_1c9d4 208
| Caller: func_0c7e8 scr_mode_stable func_0de64 menu_func_0f6a8 display_idle_screen
| F_786 func_16ca4 gfx_1c48a update_scr_18 menu_6_1_1 display_unprog_screen
| F_4284 F_4315 md380_f_4520
| gfx_1c9d4 ();
| 0x0801c9d4 38b5 push {r3, r4, r5, lr}
| 0x0801c9d6 0400 movs r4, r0
| 0x0801c9d8 24b2 sxth r4, r4
| 0x0801c9da 002c cmp r4, 0
| ,=< 0x0801c9dc 61d0 beq 0x801caa2
| | 0x0801c9de 2000 movs r0, r4
| | 0x0801c9e0 00b2 sxth r0, r0
| | 0x0801c9e2 fff76efd bl gfx_1c4c2
| | 0x0801c9e6 0028 cmp r0, 0
| ,==< 0x0801c9e8 5bd0 beq 0x801caa2
| || 0x0801c9ea 2000 movs r0, r4
| || 0x0801c9ec 00b2 sxth r0, r0
| || 0x0801c9ee 16f039f8 bl gfx_draw_sub_32a64
| || 0x0801c9f2 0500 movs r5, r0
| || 0x0801c9f4 fff73efc bl gfx_1c274
| || 0x0801c9f8 dff82009 ldr.w r0, [0x0801d320] ; [0x801d320:4]=0x2001e806
| || 0x0801c9fc b0f90000 ldrsh.w r0, [r0]
| || 0x0801ca00 24b2 sxth r4, r4
| || 0x0801ca02 a042 cmp r0, r4
| ,===< 0x0801ca04 03d1 bne 0x801ca0e
| ||| 0x0801ca06 dff81409 ldr.w r0, [0x0801d322] ; [0x801d320:4]=0x2001e806
| ||| 0x0801ca0a 0021 movs r1, 0
| ||| 0x0801ca0c 0180 strh r1, [r0]
| `---> 0x0801ca0e dff81009 ldr.w r0, [0x0801d326] ; [0x801d324:4]=0x2001e800
| || 0x0801ca12 b0f90000 ldrsh.w r0, [r0]
| || 0x0801ca16 24b2 sxth r4, r4
| || 0x0801ca18 a042 cmp r0, r4
| ,===< 0x0801ca1a 03d1 bne 0x801ca24
| ||| 0x0801ca1c dff80009 ldr.w r0, [0x0801d324] ; [0x801d324:4]=0x2001e800
| ||| 0x0801ca20 0021 movs r1, 0
| ||| 0x0801ca22 0180 strh r1, [r0]
| `---> 0x0801ca24 2000 movs r0, r4
| || 0x0801ca26 00b2 sxth r0, r0
| || 0x0801ca28 fff7cefb bl gfx_1c1c8
| || 0x0801ca2c 0721 movs r1, 7 ; 7
| || 0x0801ca2e 2000 movs r0, r4
| || 0x0801ca30 00b2 sxth r0, r0
| || 0x0801ca32 16f0d2f9 bl gfx_32dda
| || 0x0801ca36 b5f91800 ldrsh.w r0, [r5, 0x18]
| || 0x0801ca3a fff726fd bl gfx_1c48a
| || 0x0801ca3e 0b21 movs r1, 0xb ; 11
| || 0x0801ca40 2000 movs r0, r4
| || 0x0801ca42 00b2 sxth r0, r0
| || 0x0801ca44 fff79bfe bl gfx_1c77e
| || 0x0801ca48 2000 movs r0, r4
| || 0x0801ca4a 00b2 sxth r0, r0
| || 0x0801ca4c fff707fd bl gfx_1c45e
| || 0x0801ca50 2000 movs r0, r4
| || 0x0801ca52 00b2 sxth r0, r0
| || 0x0801ca54 fff751fd bl gfx_1c4fa
| || 0x0801ca58 287f ldrb r0, [r5, 0x1c]
| || 0x0801ca5a c007 lsls r0, r0, 0x1f
| ,===< 0x0801ca5c 06d5 bpl 0x801ca6c
| ||| 0x0801ca5e dff8b808 ldr.w r0, [0x0801d31e] ; [0x801d31c:4]=0x2001e808
| ||| 0x0801ca62 0068 ldr r0, [r0]
| ||| 0x0801ca64 401e subs r0, r0, 1
| ||| 0x0801ca66 dff8b018 ldr.w r1, [0x0801d31e] ; [0x801d31c:4]=0x2001e808
| ||| 0x0801ca6a 0860 str r0, [r1]
| `---> 0x0801ca6c 287f ldrb r0, [r5, 0x1c]
| || 0x0801ca6e 8006 lsls r0, r0, 0x1a
| ,===< 0x0801ca70 06d5 bpl 0x801ca80
| ||| 0x0801ca72 dff8b404 ldr.w r0, [0x0801cf2e] ; [0x801cf2c:4]=0x2001e80c
| ||| 0x0801ca76 0088 ldrh r0, [r0]
| ||| 0x0801ca78 401e subs r0, r0, 1
| ||| 0x0801ca7a dff8ac14 ldr.w r1, [0x0801cf2e] ; [0x801cf2c:4]=0x2001e80c
| ||| 0x0801ca7e 0880 strh r0, [r1]
| `---> 0x0801ca80 dff89008 ldr.w r0, [0x0801d318] ; [0x801d318:4]=0x2001e6b0
| || 0x0801ca84 0088 ldrh r0, [r0]
| || 0x0801ca86 401e subs r0, r0, 1
| || 0x0801ca88 dff88818 ldr.w r1, [0x0801d318] ; [0x801d318:4]=0x2001e6b0
| || 0x0801ca8c 0880 strh r0, [r1]
| || 0x0801ca8e 2000 movs r0, r4
| || 0x0801ca90 00b2 sxth r0, r0
| || 0x0801ca92 16f037f8 bl gfx_32b04
| || 0x0801ca96 dff88c08 ldr.w r0, [0x0801d32a] ; [0x801d328:4]=0x2001da1c gfx_info
| || 0x0801ca9a b0f90000 ldrsh.w r0, [r0]
| || 0x0801ca9e 00f001f8 bl gfx_1caa4
\ ``-> 0x0801caa2 31bd pop {r0, r4, r5, pc}
/ (fcn) gfx_1caa4 68
| Caller: func_1d074 gfx_1d296 gfx_1c86c gfx_1c9d4
| gfx_1caa4 ();
| 0x0801caa4 38b5 push {r3, r4, r5, lr}
| 0x0801caa6 dff88018 ldr.w r1, [0x0801d32e] ; [0x801d32c:4]=0x2001e368
| 0x0801caaa b1f93c40 ldrsh.w r4, [r1, 0x3c]
| 0x0801caae 00b2 sxth r0, r0
| 0x0801cab0 0028 cmp r0, 0
| ,=< 0x0801cab2 03d1 bne 0x801cabc
| | 0x0801cab4 dff87c07 ldr.w r0, [gfx_1d238] ; [0x801d238:4]=0x4b570
| | 0x0801cab8 b0f90000 ldrsh.w r0, [r0]
| `-> 0x0801cabc dff86818 ldr.w r1, [0x0801d32c] ; [0x801d32c:4]=0x2001e368
| 0x0801cac0 8887 strh r0, [r1, 0x3c]
| 0x0801cac2 00b2 sxth r0, r0
| 0x0801cac4 15f0ceff bl gfx_draw_sub_32a64
| 0x0801cac8 0500 movs r5, r0
| 0x0801caca 16f04ffb bl gfx_3316c
| 0x0801cace dff85808 ldr.w r0, [0x0801d32e] ; [0x801d32c:4]=0x2001e368
| 0x0801cad2 b5f90010 ldrsh.w r1, [r5]
| 0x0801cad6 0164 str r1, [r0, 0x40]
| 0x0801cad8 b5f90200 ldrsh.w r0, [r5, 2]
| 0x0801cadc dff84818 ldr.w r1, [0x0801d32c] ; [0x801d32c:4]=0x2001e368
| 0x0801cae0 4864 str r0, [r1, 0x44]
| 0x0801cae2 2000 movs r0, r4
| 0x0801cae4 00b2 sxth r0, r0
\ 0x0801cae6 32bd pop {r1, r4, r5, pc}
/ (fcn) gfx_1caf2 418
| Caller: gfx_bmp_sub3
| gfx_1caf2 ();
| 0x0801caf2 30b5 push {r4, r5, lr}
| 0x0801caf4 83b0 sub sp, 0xc ; local sp0, sp1, sp2
| 0x0801caf6 dff83408 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| 0x0801cafa d0e90223 ldrd r2, r3, [r0, 8]
| 0x0801cafe cde90023 strd r2, r3, [sp]
| 0x0801cb02 dff82808 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| 0x0801cb06 0069 ldr r0, [r0, 0x10]
| 0x0801cb08 0028 cmp r0, 0
| ,=< 0x0801cb0a 0ad1 bne 0x801cb22
| | 0x0801cb0c dff81c08 ldr.w r0, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| | 0x0801cb10 0088 ldrh r0, [r0]
| | 0x0801cb12 adf80000 strh.w r0, [sp]
| | 0x0801cb16 dff81408 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| | 0x0801cb1a 4088 ldrh r0, [r0, 2]
| | 0x0801cb1c adf80200 strh.w r0, [sp, 2]
| ,==< 0x0801cb20 1de0 b 0x801cb5e
| |`-> 0x0801cb22 dff80808 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| | 0x0801cb26 8089 ldrh r0, [r0, 0xc]
| | 0x0801cb28 401c adds r0, r0, 1
| | 0x0801cb2a adf80000 strh.w r0, [sp]
| | 0x0801cb2e dff8fc07 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| | 0x0801cb32 4089 ldrh r0, [r0, 0xa]
| | 0x0801cb34 adf80200 strh.w r0, [sp, 2]
| | 0x0801cb38 dff8f007 ldr.w r0, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| | 0x0801cb3c b0f90400 ldrsh.w r0, [r0, 4]
| | 0x0801cb40 bdf90010 ldrsh.w r1, [sp]
| | 0x0801cb44 8842 cmp r0, r1
| |,=< 0x0801cb46 0ada bge 0x801cb5e
| .---> 0x0801cb48 dff8e007 ldr.w r0, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| ||| 0x0801cb4c 0088 ldrh r0, [r0]
| ||| 0x0801cb4e adf80000 strh.w r0, [sp]
| ||| 0x0801cb52 dff8d807 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| ||| 0x0801cb56 c089 ldrh r0, [r0, 0xe]
| ||| 0x0801cb58 401c adds r0, r0, 1
| ||| 0x0801cb5a adf80200 strh.w r0, [sp, 2]
| |``-> 0x0801cb5e dff8cc07 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| | 0x0801cb62 b0f90600 ldrsh.w r0, [r0, 6]
| | 0x0801cb66 bdf90210 ldrsh.w r1, [sp, 2]
| | 0x0801cb6a 8842 cmp r0, r1
| | ,=< 0x0801cb6c 01da bge 0x801cb72
| | | 0x0801cb6e 0020 movs r0, 0
| |,==< 0x0801cb70 8fe0 b 0x801cc92
| ||`-> 0x0801cb72 dff8b804 ldr.w r0, [0x0801d032] ; [0x801d030:4]=0x2001e8ee
| || 0x0801cb76 b0f93c00 ldrsh.w r0, [r0, 0x3c]
| || 0x0801cb7a 15f073ff bl gfx_draw_sub_32a64
| || 0x0801cb7e 0400 movs r4, r0
| || 0x0801cb80 bdf90000 ldrsh.w r0, [sp]
| || 0x0801cb84 dff8a417 ldr.w r1, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| || 0x0801cb88 b1f90010 ldrsh.w r1, [r1]
| || 0x0801cb8c 8842 cmp r0, r1
| ||,=< 0x0801cb8e 30d1 bne 0x801cbf2
| ||| 0x0801cb90 dff89807 ldr.w r0, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| ||| 0x0801cb94 c088 ldrh r0, [r0, 6]
| ||| 0x0801cb96 adf80600 strh.w r0, [sp, 6]
| ||| 0x0801cb9a dff89007 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| ||| 0x0801cb9e 8088 ldrh r0, [r0, 4]
| ||| 0x0801cba0 adf80400 strh.w r0, [sp, 4]
| ||| 0x0801cba4 dff88404 ldr.w r0, [0x0801d030] ; [0x801d030:4]=0x2001e8ee
| ||| 0x0801cba8 b0f93c00 ldrsh.w r0, [r0, 0x3c]
| ,====< 0x0801cbac 0be0 b 0x801cbc6
| .-----> 0x0801cbae 00b2 sxth r0, r0
| ||||| 0x0801cbb0 15f058ff bl gfx_draw_sub_32a64
| ||||| 0x0801cbb4 0500 movs r5, r0
| ||||| 0x0801cbb6 0022 movs r2, 0
| ||||| 0x0801cbb8 00a9 add r1, sp, 0
| ||||| 0x0801cbba b5f91a00 ldrsh.w r0, [r5, 0x1a]
| ||||| 0x0801cbbe fff7e4fc bl gfx_1c58a
| ||||| 0x0801cbc2 b5f91600 ldrsh.w r0, [r5, 0x16]
| |`----> 0x0801cbc6 00b2 sxth r0, r0
| | ||| 0x0801cbc8 0028 cmp r0, 0
| `=====< 0x0801cbca f0d1 bne 0x801cbae
| ||| 0x0801cbcc 0022 movs r2, 0
| ||| 0x0801cbce 00a9 add r1, sp, 0
| ||| 0x0801cbd0 b4f91800 ldrsh.w r0, [r4, 0x18]
| ||| 0x0801cbd4 fff7d9fc bl gfx_1c58a
| ,====< 0x0801cbd8 0be0 b 0x801cbf2
| .-----> 0x0801cbda 00b2 sxth r0, r0
| ||||| 0x0801cbdc 15f042ff bl gfx_draw_sub_32a64
| ||||| 0x0801cbe0 0500 movs r5, r0
| ||||| 0x0801cbe2 0022 movs r2, 0
| ||||| 0x0801cbe4 00a9 add r1, sp, 0
| ||||| 0x0801cbe6 b5f91a00 ldrsh.w r0, [r5, 0x1a]
| ||||| 0x0801cbea fff727fd bl gfx_1c63c
| ||||| 0x0801cbee 0028 cmp r0, 0
| ,======< 0x0801cbf0 08d0 beq 0x801cc04
| .--`--`-> 0x0801cbf2 bdf80000 ldrh.w r0, [sp]
| ||| || 0x0801cbf6 adf80400 strh.w r0, [sp, 4]
| ||| || 0x0801cbfa dff83004 ldr.w r0, [0x0801d032] ; [0x801d030:4]=0x2001e8ee
| ||| || 0x0801cbfe b0f93c00 ldrsh.w r0, [r0, 0x3c]
| ||| ||,=< 0x0801cc02 01e0 b 0x801cc08
| |`------> 0x0801cc04 b5f91600 ldrsh.w r0, [r5, 0x16]
| | | ||`-> 0x0801cc08 00b2 sxth r0, r0
| | | || 0x0801cc0a 0028 cmp r0, 0
| | `=====< 0x0801cc0c e5d1 bne 0x801cbda
| | || 0x0801cc0e 0022 movs r2, 0
| | || 0x0801cc10 00a9 add r1, sp, 0
| | || 0x0801cc12 b4f91800 ldrsh.w r0, [r4, 0x18]
| | || 0x0801cc16 fff711fd bl gfx_1c63c
| | || 0x0801cc1a 0028 cmp r0, 0
| `=======< 0x0801cc1c e9d1 bne 0x801cbf2
| || 0x0801cc1e dff80c07 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| || 0x0801cc22 8088 ldrh r0, [r0, 4]
| || 0x0801cc24 adf80400 strh.w r0, [sp, 4]
| || 0x0801cc28 bdf90400 ldrsh.w r0, [sp, 4]
| || 0x0801cc2c bdf90010 ldrsh.w r1, [sp]
| || 0x0801cc30 8842 cmp r0, r1
| ||,=< 0x0801cc32 06da bge 0x801cc42
| ||| 0x0801cc34 dff8f406 ldr.w r0, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| ||| 0x0801cc38 dde90023 ldrd r2, r3, [sp]
| ||| 0x0801cc3c c0e90223 strd r2, r3, [r0, 8]
| `===< 0x0801cc40 82e7 b 0x801cb48
| |`-> 0x0801cc42 dff8e803 ldr.w r0, [0x0801d032] ; [0x801d030:4]=0x2001e8ee
| | 0x0801cc46 b0f93c00 ldrsh.w r0, [r0, 0x3c]
| |,=< 0x0801cc4a 0be0 b 0x801cc64
| .---> 0x0801cc4c 00b2 sxth r0, r0
| ||| 0x0801cc4e 15f009ff bl gfx_draw_sub_32a64
| ||| 0x0801cc52 0500 movs r5, r0
| ||| 0x0801cc54 0022 movs r2, 0
| ||| 0x0801cc56 00a9 add r1, sp, 0
| ||| 0x0801cc58 b5f91a00 ldrsh.w r0, [r5, 0x1a]
| ||| 0x0801cc5c fff73afd bl gfx_1c6d4
| ||| 0x0801cc60 b5f91600 ldrsh.w r0, [r5, 0x16]
| ||`-> 0x0801cc64 00b2 sxth r0, r0
| || 0x0801cc66 0028 cmp r0, 0
| `===< 0x0801cc68 f0d1 bne 0x801cc4c
| | 0x0801cc6a 0022 movs r2, 0
| | 0x0801cc6c 00a9 add r1, sp, 0
| | 0x0801cc6e b4f91800 ldrsh.w r0, [r4, 0x18]
| | 0x0801cc72 fff72ffd bl gfx_1c6d4
| | 0x0801cc76 dff8b406 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| | 0x0801cc7a 0069 ldr r0, [r0, 0x10]
| | 0x0801cc7c c928 cmp r0, 0xc9 ; 201
| |,=< 0x0801cc7e 01db blt 0x801cc84
| || 0x0801cc80 0020 movs r0, 0
| ,===< 0x0801cc82 06e0 b 0x801cc92
| ||`-> 0x0801cc84 dff8a406 ldr.w r0, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| || 0x0801cc88 dde90023 ldrd r2, r3, [sp]
| || 0x0801cc8c c0e90223 strd r2, r3, [r0, 8]
| || 0x0801cc90 0120 movs r0, 1 ; 1
\ ``--> 0x0801cc92 3ebd pop {r1, r2, r3, r4, r5, pc}
/ (fcn) gfx_bmp_sub3 92
| Caller: gfx_drawchar gfx_drawtext_sub8 gfx_bmp_sub1 func_48832 func_4c278
| gfx_33428 func_4c220 gfx_drawbmp menu_draw_sub_3ac46
| gfx_bmp_sub3 ();
| 0x0801cc94 80b5 push {r7, lr}
| 0x0801cc96 dff89803 ldr.w r0, [0x0801d036] ; [0x801d034:4]=0x2001e370
| 0x0801cc9a 0078 ldrb r0, [r0]
| 0x0801cc9c 0028 cmp r0, 0
| ,=< 0x0801cc9e 01d1 bne 0x801cca4
| | 0x0801cca0 0020 movs r0, 0
| ,==< 0x0801cca2 24e0 b 0x801ccee
| |`-> 0x0801cca4 dff88406 ldr.w r0, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| | 0x0801cca8 4069 ldr r0, [r0, 0x14]
| | 0x0801ccaa 0228 cmp r0, 2 ; 2
| |,=< 0x0801ccac 08db blt 0x801ccc0
| || 0x0801ccae dff87c06 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| || 0x0801ccb2 4069 ldr r0, [r0, 0x14]
| || 0x0801ccb4 401e subs r0, r0, 1
| || 0x0801ccb6 dff87416 ldr.w r1, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| || 0x0801ccba 4861 str r0, [r1, 0x14]
| || 0x0801ccbc 0020 movs r0, 0
| ,===< 0x0801ccbe 16e0 b 0x801ccee
| ||`-> 0x0801ccc0 dff86806 ldr.w r0, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| || 0x0801ccc4 0069 ldr r0, [r0, 0x10]
| || 0x0801ccc6 401c adds r0, r0, 1
| || 0x0801ccc8 dff86016 ldr.w r1, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| || 0x0801cccc 0861 str r0, [r1, 0x10]
| || 0x0801ccce fff710ff bl gfx_1caf2
| || 0x0801ccd2 0028 cmp r0, 0
| ||,=< 0x0801ccd4 08d1 bne 0x801cce8
| ||| 0x0801ccd6 dff85406 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| ||| 0x0801ccda 4069 ldr r0, [r0, 0x14]
| ||| 0x0801ccdc 401e subs r0, r0, 1
| ||| 0x0801ccde dff84c16 ldr.w r1, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| ||| 0x0801cce2 4861 str r0, [r1, 0x14]
| ||| 0x0801cce4 0020 movs r0, 0
| ,====< 0x0801cce6 02e0 b 0x801ccee
| |||`-> 0x0801cce8 fff71efb bl gfx_bmp_s1_1
| ||| 0x0801ccec 0120 movs r0, 1 ; 1
\ ```--> 0x0801ccee 02bd pop {r1, pc} ; returns ZERO when nothing more to draw ?
/ (fcn) gfx_bmp_sub1 288
| Caller: gfx_drawchar gfx_drawtext_sub8 func_48832 func_4c278 gfx_33428 func_4c220
| gfx_drawbmp menu_draw_sub_3ac46
| gfx_bmp_sub1 ();
| 0x0801ccf0 30b5 push {r4, r5, lr}
| 0x0801ccf2 85b0 sub sp, 0x14
| 0x0801ccf4 0400 movs r4, r0 ; [in] R0 = address of a small struct (?) - see gfx_drawbmp
| 0x0801ccf6 ce48 ldr r0, [0x0801d032] ; [0x801d030:4]=0x2001e8ee
| 0x0801ccf8 0078 ldrb r0, [r0]
| 0x0801ccfa 0028 cmp r0, 0
| ,=< 0x0801ccfc 03d1 bne 0x801cd06
| | 0x0801ccfe fff713fb bl gfx_bmp_s1_1
| | 0x0801cd02 0120 movs r0, 1 ; 1
| ,==< 0x0801cd04 82e0 b 0x801ce0c
| |`-> 0x0801cd06 dff82406 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| | 0x0801cd0a 4069 ldr r0, [r0, 0x14]
| | 0x0801cd0c 401c adds r0, r0, 1
| | 0x0801cd0e dff81c16 ldr.w r1, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| | 0x0801cd12 4861 str r0, [r1, 0x14]
| | 0x0801cd14 0228 cmp r0, 2 ; 2
| |,=< 0x0801cd16 01db blt 0x801cd1c
| || 0x0801cd18 0120 movs r0, 1 ; 1
| ,===< 0x0801cd1a 77e0 b 0x801ce0c
| ||`-> 0x0801cd1c c348 ldr r0, [0x0801d02c] ; [0x801d02c:4]=0x2001da1c gfx_info
| || 0x0801cd1e b0f93c00 ldrsh.w r0, [r0, 0x3c] ; [r0+0x3C] = also something colour-related ?
| || 0x0801cd22 15f09ffe bl gfx_draw_sub_32a64
| || 0x0801cd26 0500 movs r5, r0
| || 0x0801cd28 dff80006 ldr.w r0, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| || 0x0801cd2c 5ff0ff31 movs.w r1, -1 ; -1
| || 0x0801cd30 0161 str r1, [r0, 0x10]
| || 0x0801cd32 dff8fc05 ldr.w r0, [0x0801d336] ; [0x801d334:4]=0x2001da20 gfx_info.off4
| || 0x0801cd36 0078 ldrb r0, [r0] ; some 'LCD_COLORINDEX_UNION' ?
| || 0x0801cd38 0028 cmp r0, 0
| ||,=< 0x0801cd3a 3cd0 beq 0x801cdb6
| ||| 0x0801cd3c 00a9 add r1, sp, 0
| ||| 0x0801cd3e 2800 movs r0, r5
| ||| 0x0801cd40 fff733fd bl gfx_copy_8byte_thing
| .----> 0x0801cd44 002c cmp r4, 0
| ,=====< 0x0801cd46 03d0 beq 0x801cd50
| ||||| 0x0801cd48 2100 movs r1, r4 ; R1 = address of a small struct passed on from gfx_drawbmp ?
| ||||| 0x0801cd4a 00a8 add r0, sp, 0 ; R0 = address of a similar 'small struct' (on the stack) ?
| ||||| 0x0801cd4c 15f0bcff bl gfx_IntersectRect
| `-----> 0x0801cd50 b648 ldr r0, [0x0801d02c] ; [0x801d02c:4]=0x2001da1c gfx_info
| |||| 0x0801cd52 806b ldr r0, [r0, 0x38]
| |||| 0x0801cd54 0028 cmp r0, 0
| ,=====< 0x0801cd56 18d0 beq 0x801cd8a
| ||||| 0x0801cd58 02a8 add r0, sp, 8
| ||||| 0x0801cd5a b449 ldr r1, [0x0801d02e] ; [0x801d02c:4]=0x2001da1c gfx_info
| ||||| 0x0801cd5c 896b ldr r1, [r1, 0x38]
| ||||| 0x0801cd5e 0822 movs r2, 8 ; 8
| ||||| 0x0801cd60 15f064ff bl gfx_memcpy
| ||||| 0x0801cd64 7248 ldr r0, [0x0801cf30] ; [0x801cf30:4]=0x2001e80a
| ||||| 0x0801cd66 b0f90000 ldrsh.w r0, [r0]
| ||||| 0x0801cd6a 0028 cmp r0, 0
| ,======< 0x0801cd6c 05d0 beq 0x801cd7a
| |||||| 0x0801cd6e 7048 ldr r0, [0x0801cf32] ; [0x801cf30:4]=0x2001e80a
| |||||| 0x0801cd70 b0f90000 ldrsh.w r0, [r0]
| |||||| 0x0801cd74 15f076fe bl gfx_draw_sub_32a64
| |||||| 0x0801cd78 0500 movs r5, r0
| `------> 0x0801cd7a 02a9 add r1, sp, 8
| ||||| 0x0801cd7c 2800 movs r0, r5
| ||||| 0x0801cd7e fff796fb bl gfx_bmp_s1_4
| ||||| 0x0801cd82 02a9 add r1, sp, 8
| ||||| 0x0801cd84 00a8 add r0, sp, 0
| ||||| 0x0801cd86 15f09fff bl gfx_IntersectRect
| `-----> 0x0801cd8a 6948 ldr r0, [0x0801cf32] ; [0x801cf30:4]=0x2001e80a
| |||| 0x0801cd8c b0f90000 ldrsh.w r0, [r0]
| |||| 0x0801cd90 0028 cmp r0, 0
| ,=====< 0x0801cd92 22d0 beq 0x801cdda
| ||||| 0x0801cd94 6648 ldr r0, [0x0801cf30] ; [0x801cf30:4]=0x2001e80a
| ||||| 0x0801cd96 b0f90010 ldrsh.w r1, [r0]
| ||||| 0x0801cd9a 00a8 add r0, sp, 0
| ||||| 0x0801cd9c fff7a2fa bl gfx_bmp_s1_5
| ||||| 0x0801cda0 0028 cmp r0, 0
| ,======< 0x0801cda2 1ad1 bne 0x801cdda
| |||||| 0x0801cda4 dff88405 ldr.w r0, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| |||||| 0x0801cda8 4069 ldr r0, [r0, 0x14]
| |||||| 0x0801cdaa 401e subs r0, r0, 1
| |||||| 0x0801cdac dff87c15 ldr.w r1, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| |||||| 0x0801cdb0 4861 str r0, [r1, 0x14]
| |||||| 0x0801cdb2 0020 movs r0, 0
| ,=======< 0x0801cdb4 2ae0 b 0x801ce0c
| ||||||`-> 0x0801cdb6 287f ldrb r0, [r5, 0x1c]
| |||||| 0x0801cdb8 8007 lsls r0, r0, 0x1e
| ||||||,=< 0x0801cdba 05d5 bpl 0x801cdc8
| ||||||| 0x0801cdbc 00a8 add r0, sp, 0
| ||||||| 0x0801cdbe 2900 movs r1, r5
| ||||||| 0x0801cdc0 0822 movs r2, 8 ; 8
| ||||||| 0x0801cdc2 15f033ff bl gfx_memcpy
| |||`====< 0x0801cdc6 bde7 b 0x801cd44
| ||| ||`-> 0x0801cdc8 dff86005 ldr.w r0, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| ||| || 0x0801cdcc 4069 ldr r0, [r0, 0x14]
| ||| || 0x0801cdce 401e subs r0, r0, 1
| ||| || 0x0801cdd0 dff85815 ldr.w r1, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| ||| || 0x0801cdd4 4861 str r0, [r1, 0x14]
| ||| || 0x0801cdd6 0020 movs r0, 0
| ||| ||,=< 0x0801cdd8 18e0 b 0x801ce0c
| |``-----> 0x0801cdda 9448 ldr r0, [0x0801d02e] ; [0x801d02c:4]=0x2001da1c gfx_info
| | ||| 0x0801cddc b0f93c10 ldrsh.w r1, [r0, 0x3c]
| | ||| 0x0801cde0 00a8 add r0, sp, 0
| | ||| 0x0801cde2 fff77ffa bl gfx_bmp_s1_5
| | ||| 0x0801cde6 0028 cmp r0, 0
| | ,====< 0x0801cde8 08d1 bne 0x801cdfc
| | |||| 0x0801cdea dff84005 ldr.w r0, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| | |||| 0x0801cdee 4069 ldr r0, [r0, 0x14]
| | |||| 0x0801cdf0 401e subs r0, r0, 1
| | |||| 0x0801cdf2 dff83815 ldr.w r1, [0x0801d332] ; [0x801d330:4]=0x2001e8f0
| | |||| 0x0801cdf6 4861 str r0, [r1, 0x14]
| | |||| 0x0801cdf8 0020 movs r0, 0
| | ,=====< 0x0801cdfa 07e0 b 0x801ce0c
| | |`----> 0x0801cdfc dff82c05 ldr.w r0, [0x0801d330] ; [0x801d330:4]=0x2001e8f0
| | | ||| 0x0801ce00 dde90023 ldrd r2, r3, [sp]
| | | ||| 0x0801ce04 c0e90023 strd r2, r3, [r0]
| | | ||| 0x0801ce08 fff744ff bl gfx_bmp_sub3
| `-`-```-> 0x0801ce0c 05b0 add sp, 0x14
\ 0x0801ce0e 30bd pop {r4, r5, pc}
/ (fcn) gfx_1d1c2 20
| Caller: scr_mode_stable menu_func_0f6a8 menu_func_0f4ac func_0db88 func_0c7e8
| menu.dispatcher.unkn1 menu_F_4144 update_scr_20
| gfx_1d1c2 ();
| 0x0801d1c2 10b5 push {r4, lr}
| 0x0801d1c4 0024 movs r4, 0
| ,=< 0x0801d1c6 00e0 b 0x801d1ca
| .--> 0x0801d1c8 0124 movs r4, 1 ; 1
| |`-> 0x0801d1ca fff7d3ff bl func_1d174
| | 0x0801d1ce 0028 cmp r0, 0
| `==< 0x0801d1d0 fad1 bne 0x801d1c8
| 0x0801d1d2 2000 movs r0, r4
\ 0x0801d1d4 10bd pop {r4, pc}
/ (fcn) gfx_1d21c 8
| Caller: func_48832 func_523c8 gfx_1d296
| gfx_1d21c ();
| 0x0801d21c 4b48 ldr r0, [0x0801d34c] ; [0x801d34c:4]=0x2001e8ee
| 0x0801d21e 0121 movs r1, 1 ; 1
| 0x0801d220 0170 strb r1, [r0]
\ 0x0801d222 7047 bx lr
/ (fcn) gfx_1d224 14
| Caller: func_486be
| gfx_1d224 ();
| 0x0801d224 80b5 push {r7, lr}
| 0x0801d226 4948 ldr r0, [0x0801d34e] ; [0x801d34c:4]=0x2001e8ee
| 0x0801d228 0021 movs r1, 0
| 0x0801d22a 0170 strb r1, [r0]
| 0x0801d22c 15f09eff bl gfx_3316c
\ 0x0801d230 01bd pop {r0, pc}
/ (fcn) gfx_1d238 94
| Caller: func_37b74 func_4c0ea func_525f4
| gfx_1d238 ();
| 0x0801d238 70b5 push {r4, r5, r6, lr}
| 0x0801d23a 0400 movs r4, r0
| 0x0801d23c b4f90450 ldrsh.w r5, [r4, 4]
| 0x0801d240 a668 ldr r6, [r4, 8]
| 0x0801d242 2800 movs r0, r5
| 0x0801d244 00b2 sxth r0, r0
| 0x0801d246 15f00dfc bl gfx_draw_sub_32a64
| 0x0801d24a 2168 ldr r1, [r4]
| 0x0801d24c 0e29 cmp r1, 0xe ; 14
| ,=< 0x0801d24e 13d0 beq 0x801d278
| | 0x0801d250 1429 cmp r1, 0x14 ; 20
| ,==< 0x0801d252 06d0 beq 0x801d262
| || 0x0801d254 1729 cmp r1, 0x17 ; 23
| ,===< 0x0801d256 0cd0 beq 0x801d272
| ||| 0x0801d258 2229 cmp r1, 0x22 ; '"' ; 34
| ,====< 0x0801d25a 13d0 beq 0x801d284
| |||| 0x0801d25c 2829 cmp r1, 0x28 ; '(' ; 40
| ,=====< 0x0801d25e 15d0 beq 0x801d28c
| ,======< 0x0801d260 02e0 b 0x801d268
| ||||`--> 0x0801d262 3100 movs r1, r6
| |||| | 0x0801d264 fff795fa bl gfx_1c792
| `------> 0x0801d268 0020 movs r0, 0
| ||| | 0x0801d26a a060 str r0, [r4, 8]
| ||| | 0x0801d26c 0020 movs r0, 0
| ||| | 0x0801d26e a060 str r0, [r4, 8]
| ..---.--> 0x0801d270 70bd pop {r4, r5, r6, pc}
| ||||`---> 0x0801d272 2db2 sxth r5, r5 ; return but not end of function
| |||| || 0x0801d274 a560 str r5, [r4, 8]
| ========< 0x0801d276 fbe7 b 0x801d270
| |||| |`-> 0x0801d278 2100 movs r1, r4
| |||| | 0x0801d27a 2800 movs r0, r5
| |||| | 0x0801d27c 00b2 sxth r0, r0
| |||| | 0x0801d27e 16f03bf9 bl gfx_334f8
| `=======< 0x0801d282 f5e7 b 0x801d270
| ||`----> 0x0801d284 7ff07040 mvns r0, 0xf0000000
| || | 0x0801d288 a060 str r0, [r4, 8]
| `======< 0x0801d28a f1e7 b 0x801d270
| `-----> 0x0801d28c 2800 movs r0, r5
| | 0x0801d28e 00b2 sxth r0, r0
| | 0x0801d290 fff7d0fa bl gfx_1c834
\ `==< 0x0801d294 ece7 b 0x801d270
/ (fcn) gfx_1d296 120
| Caller: gfx_init_lcd_and_others
| gfx_1d296 ();
| 0x0801d296 e0b5 push {r5, r6, r7, lr}
| 0x0801d298 2e48 ldr r0, [0x0801d354] ; [0x801d354:4]=0x2001e8f1
| 0x0801d29a 0078 ldrb r0, [r0]
| 0x0801d29c 0028 cmp r0, 0
| ,=< 0x0801d29e 35d1 bne 0x801d30c
| | 0x0801d2a0 0020 movs r0, 0
| | 0x0801d2a2 2049 ldr r1, [0x0801d326] ; [0x801d324:4]=0x2001e800
| | 0x0801d2a4 0880 strh r0, [r1]
| | 0x0801d2a6 2649 ldr r1, [0x0801d342] ; [0x801d340:4]=0x2001e80c
| | 0x0801d2a8 0880 strh r0, [r1]
| | 0x0801d2aa 1f48 ldr r0, [0x0801d32a] ; [0x801d328:4]=0x2001da1c gfx_info
| | 0x0801d2ac 0021 movs r1, 0
| | 0x0801d2ae 8163 str r1, [r0, 0x38]
| | 0x0801d2b0 0020 movs r0, 0
| | 0x0801d2b2 2249 ldr r1, [0x0801d33e] ; [0x801d33c:4]=0x2001e7fe
| | 0x0801d2b4 0880 strh r0, [r1]
| | 0x0801d2b6 1749 ldr r1, [0x0801d316] ; [0x801d314:4]=0x2001e7fc
| | 0x0801d2b8 0880 strh r0, [r1]
| | 0x0801d2ba 0020 movs r0, 0
| | 0x0801d2bc 0290 str r0, [sp, 8]
| | 0x0801d2be 2648 ldr r0, [0x0801d35a] ; [0x801d358:4]=0x801d1d7
| | 0x0801d2c0 0190 str r0, [sp, 4]
| | 0x0801d2c2 0220 movs r0, 2 ; 2
| | 0x0801d2c4 0090 str r0, [sp]
| | 0x0801d2c6 40f6ff73 movw r3, 0xfff
| | 0x0801d2ca 40f6ff72 movw r2, 0xfff
| | 0x0801d2ce 0021 movs r1, 0
| | 0x0801d2d0 0020 movs r0, 0
| | 0x0801d2d2 fff771fb bl gfx_1c9b8
| | 0x0801d2d6 2149 ldr r1, [0x0801d35e] ; [0x801d35c:4]=0x2001e802
| | 0x0801d2d8 0880 strh r0, [r1]
| | 0x0801d2da 1d48 ldr r0, [0x0801d352] ; [0x801d350:4]=0x2001e6a8
| | 0x0801d2dc 7ff07041 mvns r1, 0xf0000000
| | 0x0801d2e0 0160 str r1, [r0]
| | 0x0801d2e2 1e48 ldr r0, [0x0801d35e] ; [0x801d35c:4]=0x2001e802
| | 0x0801d2e4 b0f90000 ldrsh.w r0, [r0]
| | 0x0801d2e8 fff7a4fa bl gfx_1c834
| | 0x0801d2ec 1c48 ldr r0, [0x0801d360] ; [0x801d360:4]=0x2001e554
| | 0x0801d2ee 16f015f9 bl gfx_3351c
| | 0x0801d2f2 1c48 ldr r0, [0x0801d366] ; [0x801d364:4]=0x2001e55c
| | 0x0801d2f4 16f012f9 bl gfx_3351c
| | 0x0801d2f8 1848 ldr r0, [0x0801d35c] ; [0x801d35c:4]=0x2001e802
| | 0x0801d2fa b0f90000 ldrsh.w r0, [r0]
| | 0x0801d2fe fff7d1fb bl gfx_1caa4
| | 0x0801d302 fff78bff bl gfx_1d21c
| | 0x0801d306 1348 ldr r0, [0x0801d356] ; [0x801d354:4]=0x2001e8f1
| | 0x0801d308 0121 movs r1, 1 ; 1
| | 0x0801d30a 0170 strb r1, [r0]
\ `-> 0x0801d30c 07bd pop {r0, r1, r2, pc}
/ (fcn) gfx_set_bg_color 8
| Caller: func_214fe display_idle_screen gfx_33204 draw_datetime_row func_0c7e8
| DrawSomethingThenBitBangIO md380_f_4520 kb_enter_alpha func_21646 often_called_something_keycode_menu
| func_215fc update_scr_30 func_215c2 update_scr_32 draw_zone_label
| func_21596_draw_something display_unprog_screen update_scr_20 paint_a_lot
| func_2c6fc draw_zone_channel scr_mode_stable menu_6_1_1 F_4154 update_scr_29
| F_4315
| gfx_set_bg_color ();
| 0x0801d368 80b5 push {r7, lr}
| 0x0801d36a 15f02dff bl gfx_set_bg_color2
\ 0x0801d36e 01bd pop {r0, pc}
/ (fcn) gfx_set_fg_color 8
| Caller: update_scr_20 gfx_33204 draw_datetime_row func_0db88 func_0c7e8 DrawSomethingThenBitBangIO
| md380_f_4520 kb_enter_alpha drawtext8.loop_for_all_chars update_scr_19 disp_something
| display_idle_screen func_21646 font_method_called_via_hdr_offset0 often_called_something_keycode_menu
| func_215fc update_scr_30 func_215c2 draw_zone_label func_21596_draw_something
| display_unprog_screen menu.dispatcher.unkn1 paint_a_lot F_4220 func_2c6fc
| draw_zone_channel scr_mode_stable draw_statusline func_0de64 menu_6_1_1
| F_4154 update_scr_29 F_4284 F_4315
| gfx_set_fg_color ();
| 0x0801d370 80b5 push {r7, lr}
| 0x0801d372 15f035ff bl gfx_set_fg_color2
\ 0x0801d376 01bd pop {r0, pc}
/ (fcn) gfx_1d378 214
| Caller: gfx_jmptbl_entry3
| gfx_1d378 ();
| 0x0801d378 2de9f047 push.w {r4, r5, r6, r7, r8, sb, sl, lr}
| 0x0801d37c 0400 movs r4, r0
| 0x0801d37e 0d00 movs r5, r1
| 0x0801d380 1600 movs r6, r2
| 0x0801d382 1f00 movs r7, r3
| 0x0801d384 0998 ldr r0, [sp, 0x24]
| 0x0801d386 b0f80080 ldrh.w r8, [r0]
| 0x0801d38a b0f80290 ldrh.w sb, [r0, 2]
| 0x0801d38e 3c19 adds r4, r7, r4
| 0x0801d390 ddf820a0 ldr.w sl, [sp, 0x20]
| 0x0801d394 dff8ec04 ldr.w r0, [0x0801d888] ; [0x801d888:4]=0x40020c00 io_GPIOD
| 0x0801d398 007b ldrb r0, [r0, 0xc]
| 0x0801d39a 10f00300 ands r0, r0, 3
| 0x0801d39e c0b2 uxtb r0, r0
| 0x0801d3a0 0028 cmp r0, 0
| ,=< 0x0801d3a2 03d0 beq 0x801d3ac
| | 0x0801d3a4 0228 cmp r0, 2 ; 2
| ,==< 0x0801d3a6 1dd0 beq 0x801d3e4
| ,===< 0x0801d3a8 34d3 blo 0x801d414
| ,====< 0x0801d3aa 4ee0 b 0x801d44a
| .---`-> 0x0801d3ac 3078 ldrb r0, [r6]
| |||| 0x0801d3ae 8021 movs r1, 0x80 ; 128
| |||| 0x0801d3b0 3941 asrs r1, r7
| |||| 0x0801d3b2 0842 tst r0, r1
| ||||,=< 0x0801d3b4 03d0 beq 0x801d3be
| ||||| 0x0801d3b6 1ffa89f9 uxth.w sb, sb
| ||||| 0x0801d3ba 4a46 mov r2, sb
| ,======< 0x0801d3bc 02e0 b 0x801d3c4
| |||||`-> 0x0801d3be 1ffa88f8 uxth.w r8, r8
| ||||| 0x0801d3c2 4246 mov r2, r8
| `------> 0x0801d3c4 2900 movs r1, r5
| |||| 0x0801d3c6 2000 movs r0, r4
| |||| 0x0801d3c8 00f0fff9 bl gfx_put_pixel
| |||| 0x0801d3cc 641c adds r4, r4, 1
| |||| 0x0801d3ce 7f1c adds r7, r7, 1
| |||| 0x0801d3d0 082f cmp r7, 8 ; 8
| ||||,=< 0x0801d3d2 01d1 bne 0x801d3d8
| ||||| 0x0801d3d4 0027 movs r7, 0
| ||||| 0x0801d3d6 761c adds r6, r6, 1
| ||||`-> 0x0801d3d8 baf1010a subs.w sl, sl, 1
| |||| 0x0801d3dc baf1000f cmp.w sl, 0
| `=====< 0x0801d3e0 e4d1 bne 0x801d3ac
| |||,=< 0x0801d3e2 32e0 b 0x801d44a
| .--`--> 0x0801d3e4 3078 ldrb r0, [r6]
| ||| | 0x0801d3e6 8021 movs r1, 0x80 ; 128
| ||| | 0x0801d3e8 3941 asrs r1, r7
| ||| | 0x0801d3ea 0842 tst r0, r1
| |||,==< 0x0801d3ec 06d0 beq 0x801d3fc
| ||||| 0x0801d3ee 1ffa89f9 uxth.w sb, sb
| ||||| 0x0801d3f2 4a46 mov r2, sb
| ||||| 0x0801d3f4 2900 movs r1, r5
| ||||| 0x0801d3f6 2000 movs r0, r4
| ||||| 0x0801d3f8 00f0e7f9 bl gfx_put_pixel
| |||`--> 0x0801d3fc 641c adds r4, r4, 1
| ||| | 0x0801d3fe 7f1c adds r7, r7, 1
| ||| | 0x0801d400 082f cmp r7, 8 ; 8
| |||,==< 0x0801d402 01d1 bne 0x801d408
| ||||| 0x0801d404 0027 movs r7, 0
| ||||| 0x0801d406 761c adds r6, r6, 1
| |||`--> 0x0801d408 baf1010a subs.w sl, sl, 1
| ||| | 0x0801d40c baf1000f cmp.w sl, 0
| `=====< 0x0801d410 e8d1 bne 0x801d3e4
| ||,==< 0x0801d412 1ae0 b 0x801d44a
| .-`---> 0x0801d414 3078 ldrb r0, [r6]
| || || 0x0801d416 8021 movs r1, 0x80 ; 128
| || || 0x0801d418 3941 asrs r1, r7
| || || 0x0801d41a 0842 tst r0, r1
| ||,===< 0x0801d41c 0ad0 beq 0x801d434
| ||||| 0x0801d41e 2900 movs r1, r5
| ||||| 0x0801d420 2000 movs r0, r4
| ||||| 0x0801d422 00f0e4f9 bl gfx_read_pixel_wrapper
| ||||| 0x0801d426 4ff6ff71 movw r1, 0xffff
| ||||| 0x0801d42a 0a1a subs r2, r1, r0
| ||||| 0x0801d42c 2900 movs r1, r5
| ||||| 0x0801d42e 2000 movs r0, r4
| ||||| 0x0801d430 00f0cbf9 bl gfx_put_pixel
| ||`---> 0x0801d434 641c adds r4, r4, 1
| || || 0x0801d436 7f1c adds r7, r7, 1
| || || 0x0801d438 082f cmp r7, 8 ; 8
| ||,===< 0x0801d43a 01d1 bne 0x801d440
| ||||| 0x0801d43c 0027 movs r7, 0
| ||||| 0x0801d43e 761c adds r6, r6, 1
| ||`---> 0x0801d440 baf1010a subs.w sl, sl, 1
| || || 0x0801d444 baf1000f cmp.w sl, 0
| `=====< 0x0801d448 e4d1 bne 0x801d414
\ `-``-> 0x0801d44a bde8f087 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}
/ (fcn) gfx_1d44e 330
| Caller: gfx_jmptbl_entry3
| gfx_1d44e ();
| 0x0801d44e 2de9f047 push.w {r4, r5, r6, r7, r8, sb, sl, lr}
| 0x0801d452 0500 movs r5, r0
| 0x0801d454 0c00 movs r4, r1
| 0x0801d456 1700 movs r7, r2
| 0x0801d458 97f80080 ldrb.w r8, [r7]
| 0x0801d45c 1e00 movs r6, r3
| 0x0801d45e 5d19 adds r5, r3, r5
| 0x0801d460 ddf82090 ldr.w sb, [sp, 0x20]
| 0x0801d464 ddf824a0 ldr.w sl, [sp, 0x24]
| 0x0801d468 dff81804 ldr.w r0, [0x0801d888] ; [0x801d888:4]=0x40020c00 io_GPIOD
| 0x0801d46c 007b ldrb r0, [r0, 0xc]
| 0x0801d46e 10f00300 ands r0, r0, 3
| 0x0801d472 c0b2 uxtb r0, r0
| 0x0801d474 0028 cmp r0, 0
| ,=< 0x0801d476 02d0 beq 0x801d47e
| | 0x0801d478 0228 cmp r0, 2 ; 2
| ,==< 0x0801d47a 44d0 beq 0x801d506
| ,===< 0x0801d47c 8ae0 b 0x801d594
| ||`-> 0x0801d47e baf1000f cmp.w sl, 0
| ||,=< 0x0801d482 21d0 beq 0x801d4c8
| .----> 0x0801d484 d6f10300 rsbs.w r0, r6, 3
| |||| 0x0801d488 4000 lsls r0, r0, 1
| |||| 0x0801d48a 1ffa88f8 uxth.w r8, r8
| |||| 0x0801d48e c021 movs r1, 0xc0 ; 192
| |||| 0x0801d490 d0f10602 rsbs.w r2, r0, 6
| |||| 0x0801d494 1141 asrs r1, r2
| |||| 0x0801d496 11ea0801 ands.w r1, r1, r8
| |||| 0x0801d49a 51fa00f0 asrs.w r0, r1, r0
| |||| 0x0801d49e 3af81020 ldrh.w r2, [sl, r0, lsl 1]
| |||| 0x0801d4a2 92b2 uxth r2, r2
| |||| 0x0801d4a4 2100 movs r1, r4
| |||| 0x0801d4a6 2800 movs r0, r5
| |||| 0x0801d4a8 00f08ff9 bl gfx_put_pixel
| |||| 0x0801d4ac 6d1c adds r5, r5, 1
| |||| 0x0801d4ae 761c adds r6, r6, 1
| |||| 0x0801d4b0 042e cmp r6, 4 ; 4
| ,=====< 0x0801d4b2 03d1 bne 0x801d4bc
| ||||| 0x0801d4b4 0026 movs r6, 0
| ||||| 0x0801d4b6 7f1c adds r7, r7, 1
| ||||| 0x0801d4b8 97f80080 ldrb.w r8, [r7]
| `-----> 0x0801d4bc b9f10109 subs.w sb, sb, 1
| |||| 0x0801d4c0 b9f1000f cmp.w sb, 0
| `====< 0x0801d4c4 ded1 bne 0x801d484
| ,====< 0x0801d4c6 1de0 b 0x801d504
| .---`-> 0x0801d4c8 d6f10300 rsbs.w r0, r6, 3
| |||| 0x0801d4cc 4000 lsls r0, r0, 1
| |||| 0x0801d4ce 1ffa88f8 uxth.w r8, r8
| |||| 0x0801d4d2 c021 movs r1, 0xc0 ; 192
| |||| 0x0801d4d4 d0f10602 rsbs.w r2, r0, 6
| |||| 0x0801d4d8 1141 asrs r1, r2
| |||| 0x0801d4da 11ea0801 ands.w r1, r1, r8
| |||| 0x0801d4de 51fa00f2 asrs.w r2, r1, r0
| |||| 0x0801d4e2 2100 movs r1, r4
| |||| 0x0801d4e4 2800 movs r0, r5
| |||| 0x0801d4e6 00f070f9 bl gfx_put_pixel
| |||| 0x0801d4ea 6d1c adds r5, r5, 1
| |||| 0x0801d4ec 761c adds r6, r6, 1
| |||| 0x0801d4ee 042e cmp r6, 4 ; 4
| ||||,=< 0x0801d4f0 03d1 bne 0x801d4fa
| ||||| 0x0801d4f2 0026 movs r6, 0
| ||||| 0x0801d4f4 7f1c adds r7, r7, 1
| ||||| 0x0801d4f6 97f80080 ldrb.w r8, [r7]
| ||||`-> 0x0801d4fa b9f10109 subs.w sb, sb, 1
| |||| 0x0801d4fe b9f1000f cmp.w sb, 0
| `=====< 0x0801d502 e1d1 bne 0x801d4c8
| `--,=< 0x0801d504 46e0 b 0x801d594
| |`--> 0x0801d506 baf1000f cmp.w sl, 0
| |,==< 0x0801d50a 23d0 beq 0x801d554
| .----> 0x0801d50c d6f10300 rsbs.w r0, r6, 3
| |||| 0x0801d510 4000 lsls r0, r0, 1
| |||| 0x0801d512 1ffa88f8 uxth.w r8, r8
| |||| 0x0801d516 c021 movs r1, 0xc0 ; 192
| |||| 0x0801d518 d0f10602 rsbs.w r2, r0, 6
| |||| 0x0801d51c 1141 asrs r1, r2
| |||| 0x0801d51e 11ea0801 ands.w r1, r1, r8
| |||| 0x0801d522 51fa00f0 asrs.w r0, r1, r0
| |||| 0x0801d526 0028 cmp r0, 0
| ,=====< 0x0801d528 06d0 beq 0x801d538
| ||||| 0x0801d52a 3af81020 ldrh.w r2, [sl, r0, lsl 1]
| ||||| 0x0801d52e 92b2 uxth r2, r2
| ||||| 0x0801d530 2100 movs r1, r4
| ||||| 0x0801d532 2800 movs r0, r5
| ||||| 0x0801d534 00f049f9 bl gfx_put_pixel
| `-----> 0x0801d538 6d1c adds r5, r5, 1
| |||| 0x0801d53a 761c adds r6, r6, 1
| |||| 0x0801d53c 042e cmp r6, 4 ; 4
| ,=====< 0x0801d53e 03d1 bne 0x801d548
| ||||| 0x0801d540 0026 movs r6, 0
| ||||| 0x0801d542 7f1c adds r7, r7, 1
| ||||| 0x0801d544 97f80080 ldrb.w r8, [r7]
| `-----> 0x0801d548 b9f10109 subs.w sb, sb, 1
| |||| 0x0801d54c b9f1000f cmp.w sb, 0
| `====< 0x0801d550 dcd1 bne 0x801d50c
| ,====< 0x0801d552 1fe0 b 0x801d594
| .--`--> 0x0801d554 d6f10300 rsbs.w r0, r6, 3
| ||| | 0x0801d558 4000 lsls r0, r0, 1
| ||| | 0x0801d55a 1ffa88f8 uxth.w r8, r8
| ||| | 0x0801d55e c021 movs r1, 0xc0 ; 192
| ||| | 0x0801d560 d0f10602 rsbs.w r2, r0, 6
| ||| | 0x0801d564 1141 asrs r1, r2
| ||| | 0x0801d566 11ea0801 ands.w r1, r1, r8
| ||| | 0x0801d56a 51fa00f2 asrs.w r2, r1, r0
| ||| | 0x0801d56e 002a cmp r2, 0
| |||,==< 0x0801d570 03d0 beq 0x801d57a
| ||||| 0x0801d572 2100 movs r1, r4
| ||||| 0x0801d574 2800 movs r0, r5
| ||||| 0x0801d576 00f028f9 bl gfx_put_pixel
| |||`--> 0x0801d57a 6d1c adds r5, r5, 1
| ||| | 0x0801d57c 761c adds r6, r6, 1
| ||| | 0x0801d57e 042e cmp r6, 4 ; 4
| |||,==< 0x0801d580 03d1 bne 0x801d58a
| ||||| 0x0801d582 0026 movs r6, 0
| ||||| 0x0801d584 7f1c adds r7, r7, 1
| ||||| 0x0801d586 97f80080 ldrb.w r8, [r7]
| |||`--> 0x0801d58a b9f10109 subs.w sb, sb, 1
| ||| | 0x0801d58e b9f1000f cmp.w sb, 0
| `=====< 0x0801d592 dfd1 bne 0x801d554
\ ``-`-> 0x0801d594 bde8f087 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}
/ (fcn) gfx_1d598 328
| Caller: gfx_jmptbl_entry3
| gfx_1d598 ();
| 0x0801d598 2de9f047 push.w {r4, r5, r6, r7, r8, sb, sl, lr}
| 0x0801d59c 0500 movs r5, r0
| 0x0801d59e 0c00 movs r4, r1
| 0x0801d5a0 1700 movs r7, r2
| 0x0801d5a2 97f80080 ldrb.w r8, [r7]
| 0x0801d5a6 1e00 movs r6, r3
| 0x0801d5a8 5d19 adds r5, r3, r5
| 0x0801d5aa ddf82090 ldr.w sb, [sp, 0x20]
| 0x0801d5ae ddf824a0 ldr.w sl, [sp, 0x24]
| 0x0801d5b2 b448 ldr r0, [0x0801d886] ; [0x801d884:4]=0x2001da1c gfx_info
| 0x0801d5b4 007b ldrb r0, [r0, 0xc]
| 0x0801d5b6 10f00300 ands r0, r0, 3
| 0x0801d5ba c0b2 uxtb r0, r0
| 0x0801d5bc 0028 cmp r0, 0
| ,=< 0x0801d5be 02d0 beq 0x801d5c6
| | 0x0801d5c0 0228 cmp r0, 2 ; 2
| ,==< 0x0801d5c2 44d0 beq 0x801d64e
| ,===< 0x0801d5c4 8ae0 b 0x801d6dc
| ||`-> 0x0801d5c6 baf1000f cmp.w sl, 0
| ||,=< 0x0801d5ca 21d0 beq 0x801d610
| .----> 0x0801d5cc d6f10100 rsbs.w r0, r6, 1
| |||| 0x0801d5d0 8000 lsls r0, r0, 2
| |||| 0x0801d5d2 1ffa88f8 uxth.w r8, r8
| |||| 0x0801d5d6 f021 movs r1, 0xf0 ; 240
| |||| 0x0801d5d8 d0f10402 rsbs.w r2, r0, 4
| |||| 0x0801d5dc 1141 asrs r1, r2
| |||| 0x0801d5de 11ea0801 ands.w r1, r1, r8
| |||| 0x0801d5e2 51fa00f0 asrs.w r0, r1, r0
| |||| 0x0801d5e6 3af81020 ldrh.w r2, [sl, r0, lsl 1]
| |||| 0x0801d5ea 92b2 uxth r2, r2
| |||| 0x0801d5ec 2100 movs r1, r4
| |||| 0x0801d5ee 2800 movs r0, r5
| |||| 0x0801d5f0 00f0ebf8 bl gfx_put_pixel
| |||| 0x0801d5f4 6d1c adds r5, r5, 1
| |||| 0x0801d5f6 761c adds r6, r6, 1
| |||| 0x0801d5f8 022e cmp r6, 2 ; 2
| ,=====< 0x0801d5fa 03d1 bne 0x801d604
| ||||| 0x0801d5fc 0026 movs r6, 0
| ||||| 0x0801d5fe 7f1c adds r7, r7, 1
| ||||| 0x0801d600 97f80080 ldrb.w r8, [r7]
| `-----> 0x0801d604 b9f10109 subs.w sb, sb, 1
| |||| 0x0801d608 b9f1000f cmp.w sb, 0
| `====< 0x0801d60c ded1 bne 0x801d5cc
| ,====< 0x0801d60e 1de0 b 0x801d64c
| .---`-> 0x0801d610 d6f10100 rsbs.w r0, r6, 1
| |||| 0x0801d614 8000 lsls r0, r0, 2
| |||| 0x0801d616 1ffa88f8 uxth.w r8, r8
| |||| 0x0801d61a f021 movs r1, 0xf0 ; 240
| |||| 0x0801d61c d0f10402 rsbs.w r2, r0, 4
| |||| 0x0801d620 1141 asrs r1, r2
| |||| 0x0801d622 11ea0801 ands.w r1, r1, r8
| |||| 0x0801d626 51fa00f2 asrs.w r2, r1, r0
| |||| 0x0801d62a 2100 movs r1, r4
| |||| 0x0801d62c 2800 movs r0, r5
| |||| 0x0801d62e 00f0ccf8 bl gfx_put_pixel
| |||| 0x0801d632 6d1c adds r5, r5, 1
| |||| 0x0801d634 761c adds r6, r6, 1
| |||| 0x0801d636 022e cmp r6, 2 ; 2
| ||||,=< 0x0801d638 03d1 bne 0x801d642
| ||||| 0x0801d63a 0026 movs r6, 0
| ||||| 0x0801d63c 7f1c adds r7, r7, 1
| ||||| 0x0801d63e 97f80080 ldrb.w r8, [r7]
| ||||`-> 0x0801d642 b9f10109 subs.w sb, sb, 1
| |||| 0x0801d646 b9f1000f cmp.w sb, 0
| `=====< 0x0801d64a e1d1 bne 0x801d610
| `--,=< 0x0801d64c 46e0 b 0x801d6dc
| |`--> 0x0801d64e baf1000f cmp.w sl, 0
| |,==< 0x0801d652 23d0 beq 0x801d69c
| .----> 0x0801d654 d6f10100 rsbs.w r0, r6, 1
| |||| 0x0801d658 8000 lsls r0, r0, 2
| |||| 0x0801d65a 1ffa88f8 uxth.w r8, r8
| |||| 0x0801d65e f021 movs r1, 0xf0 ; 240
| |||| 0x0801d660 d0f10402 rsbs.w r2, r0, 4
| |||| 0x0801d664 1141 asrs r1, r2
| |||| 0x0801d666 11ea0801 ands.w r1, r1, r8
| |||| 0x0801d66a 51fa00f0 asrs.w r0, r1, r0
| |||| 0x0801d66e 0028 cmp r0, 0
| ,=====< 0x0801d670 06d0 beq 0x801d680
| ||||| 0x0801d672 3af81020 ldrh.w r2, [sl, r0, lsl 1]
| ||||| 0x0801d676 92b2 uxth r2, r2
| ||||| 0x0801d678 2100 movs r1, r4
| ||||| 0x0801d67a 2800 movs r0, r5
| ||||| 0x0801d67c 00f0a5f8 bl gfx_put_pixel
| `-----> 0x0801d680 6d1c adds r5, r5, 1
| |||| 0x0801d682 761c adds r6, r6, 1
| |||| 0x0801d684 022e cmp r6, 2 ; 2
| ,=====< 0x0801d686 03d1 bne 0x801d690
| ||||| 0x0801d688 0026 movs r6, 0
| ||||| 0x0801d68a 7f1c adds r7, r7, 1
| ||||| 0x0801d68c 97f80080 ldrb.w r8, [r7]
| `-----> 0x0801d690 b9f10109 subs.w sb, sb, 1
| |||| 0x0801d694 b9f1000f cmp.w sb, 0
| `====< 0x0801d698 dcd1 bne 0x801d654
| ,====< 0x0801d69a 1fe0 b 0x801d6dc
| .--`--> 0x0801d69c d6f10100 rsbs.w r0, r6, 1
| ||| | 0x0801d6a0 8000 lsls r0, r0, 2
| ||| | 0x0801d6a2 1ffa88f8 uxth.w r8, r8
| ||| | 0x0801d6a6 f021 movs r1, 0xf0 ; 240
| ||| | 0x0801d6a8 d0f10402 rsbs.w r2, r0, 4
| ||| | 0x0801d6ac 1141 asrs r1, r2
| ||| | 0x0801d6ae 11ea0801 ands.w r1, r1, r8
| ||| | 0x0801d6b2 51fa00f2 asrs.w r2, r1, r0
| ||| | 0x0801d6b6 002a cmp r2, 0
| |||,==< 0x0801d6b8 03d0 beq 0x801d6c2
| ||||| 0x0801d6ba 2100 movs r1, r4
| ||||| 0x0801d6bc 2800 movs r0, r5
| ||||| 0x0801d6be 00f084f8 bl gfx_put_pixel
| |||`--> 0x0801d6c2 6d1c adds r5, r5, 1
| ||| | 0x0801d6c4 761c adds r6, r6, 1
| ||| | 0x0801d6c6 022e cmp r6, 2 ; 2
| |||,==< 0x0801d6c8 03d1 bne 0x801d6d2
| ||||| 0x0801d6ca 0026 movs r6, 0
| ||||| 0x0801d6cc 7f1c adds r7, r7, 1
| ||||| 0x0801d6ce 97f80080 ldrb.w r8, [r7]
| |||`--> 0x0801d6d2 b9f10109 subs.w sb, sb, 1
| ||| | 0x0801d6d6 b9f1000f cmp.w sb, 0
| `=====< 0x0801d6da dfd1 bne 0x801d69c
\ ``-`-> 0x0801d6dc bde8f087 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}
/ (fcn) gfx_1d6e0 164
| Caller: gfx_jmptbl_entry3
| gfx_1d6e0 ();
| 0x0801d6e0 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x0801d6e4 0400 movs r4, r0
| 0x0801d6e6 0d00 movs r5, r1
| 0x0801d6e8 1600 movs r6, r2
| 0x0801d6ea 1f00 movs r7, r3
| 0x0801d6ec ddf81880 ldr.w r8, [sp, 0x18]
| 0x0801d6f0 6448 ldr r0, [0x0801d884] ; [0x801d884:4]=0x2001da1c gfx_info
| 0x0801d6f2 007b ldrb r0, [r0, 0xc]
| 0x0801d6f4 10f00300 ands r0, r0, 3
| 0x0801d6f8 c0b2 uxtb r0, r0
| 0x0801d6fa 0028 cmp r0, 0
| ,=< 0x0801d6fc 02d0 beq 0x801d704
| | 0x0801d6fe 0228 cmp r0, 2 ; 2
| ,==< 0x0801d700 1cd0 beq 0x801d73c
| ,===< 0x0801d702 3de0 b 0x801d780
| ||`-> 0x0801d704 b8f1000f cmp.w r8, 0
| ||,=< 0x0801d708 15d0 beq 0x801d736
| .----> 0x0801d70a 012f cmp r7, 1 ; 1
| ,=====< 0x0801d70c 15db blt 0x801d73a
| ||||| 0x0801d70e 3278 ldrb r2, [r6]
| ||||| 0x0801d710 92b2 uxth r2, r2
| ||||| 0x0801d712 38f81220 ldrh.w r2, [r8, r2, lsl 1]
| ||||| 0x0801d716 2900 movs r1, r5
| ||||| 0x0801d718 2000 movs r0, r4
| ||||| 0x0801d71a 00f056f8 bl gfx_put_pixel
| ||||| 0x0801d71e 7f1e subs r7, r7, 1
| ||||| 0x0801d720 641c adds r4, r4, 1
| ||||| 0x0801d722 761c adds r6, r6, 1
| |`====< 0x0801d724 f1e7 b 0x801d70a
| |.----> 0x0801d726 3278 ldrb r2, [r6]
| ||||| 0x0801d728 2900 movs r1, r5
| ||||| 0x0801d72a 2000 movs r0, r4
| ||||| 0x0801d72c 00f04df8 bl gfx_put_pixel
| ||||| 0x0801d730 7f1e subs r7, r7, 1
| ||||| 0x0801d732 641c adds r4, r4, 1
| ||||| 0x0801d734 761c adds r6, r6, 1
| ||||`-> 0x0801d736 012f cmp r7, 1 ; 1
| |`====< 0x0801d738 f5da bge 0x801d726
| `---,=< 0x0801d73a 21e0 b 0x801d780
| |`--> 0x0801d73c b8f1000f cmp.w r8, 0
| |,==< 0x0801d740 1cd0 beq 0x801d77c
| .----> 0x0801d742 012f cmp r7, 1 ; 1
| ,=====< 0x0801d744 1cdb blt 0x801d780
| ||||| 0x0801d746 3278 ldrb r2, [r6]
| ||||| 0x0801d748 92b2 uxth r2, r2
| ||||| 0x0801d74a 002a cmp r2, 0
| ,======< 0x0801d74c 06d0 beq 0x801d75c
| |||||| 0x0801d74e 92b2 uxth r2, r2
| |||||| 0x0801d750 38f81220 ldrh.w r2, [r8, r2, lsl 1]
| |||||| 0x0801d754 2900 movs r1, r5
| |||||| 0x0801d756 2000 movs r0, r4
| |||||| 0x0801d758 00f037f8 bl gfx_put_pixel
| `------> 0x0801d75c 7f1e subs r7, r7, 1
| ||||| 0x0801d75e 641c adds r4, r4, 1
| ||||| 0x0801d760 761c adds r6, r6, 1
| |`====< 0x0801d762 eee7 b 0x801d742
| |.----> 0x0801d764 3278 ldrb r2, [r6]
| ||||| 0x0801d766 92b2 uxth r2, r2
| ||||| 0x0801d768 002a cmp r2, 0
| ,======< 0x0801d76a 04d0 beq 0x801d776
| |||||| 0x0801d76c 92b2 uxth r2, r2
| |||||| 0x0801d76e 2900 movs r1, r5
| |||||| 0x0801d770 2000 movs r0, r4
| |||||| 0x0801d772 00f02af8 bl gfx_put_pixel
| `------> 0x0801d776 7f1e subs r7, r7, 1
| ||||| 0x0801d778 641c adds r4, r4, 1
| ||||| 0x0801d77a 761c adds r6, r6, 1
| |||`--> 0x0801d77c 012f cmp r7, 1 ; 1
| |`====< 0x0801d77e f1da bge 0x801d764
\ `-`-`-> 0x0801d780 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) gfx_1d784 70
| Caller: gfx_jmptbl_entry3
| gfx_1d784 ();
| 0x0801d784 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x0801d786 0400 movs r4, r0
| 0x0801d788 0d00 movs r5, r1
| 0x0801d78a 1600 movs r6, r2
| 0x0801d78c 1f00 movs r7, r3
| 0x0801d78e 3d48 ldr r0, [0x0801d886] ; [0x801d884:4]=0x2001da1c gfx_info
| 0x0801d790 007b ldrb r0, [r0, 0xc]
| 0x0801d792 8007 lsls r0, r0, 0x1e
| ,=< 0x0801d794 16d4 bmi 0x801d7c4
| .--> 0x0801d796 012f cmp r7, 1 ; 1
| ,===< 0x0801d798 16db blt 0x801d7c8
| ||| 0x0801d79a 3288 ldrh r2, [r6]
| ||| 0x0801d79c 2900 movs r1, r5
| ||| 0x0801d79e 2000 movs r0, r4
| ||| 0x0801d7a0 00f013f8 bl gfx_put_pixel
| ||| 0x0801d7a4 7f1e subs r7, r7, 1
| ||| 0x0801d7a6 641c adds r4, r4, 1
| ||| 0x0801d7a8 b61c adds r6, r6, 2
| |`==< 0x0801d7aa f4e7 b 0x801d796
| |.--> 0x0801d7ac 3288 ldrh r2, [r6]
| ||| 0x0801d7ae 92b2 uxth r2, r2
| ||| 0x0801d7b0 002a cmp r2, 0
| ,====< 0x0801d7b2 04d0 beq 0x801d7be
| |||| 0x0801d7b4 92b2 uxth r2, r2
| |||| 0x0801d7b6 2900 movs r1, r5
| |||| 0x0801d7b8 2000 movs r0, r4
| |||| 0x0801d7ba 00f006f8 bl gfx_put_pixel
| `----> 0x0801d7be 7f1e subs r7, r7, 1
| ||| 0x0801d7c0 641c adds r4, r4, 1
| ||| 0x0801d7c2 b61c adds r6, r6, 2
| ||`-> 0x0801d7c4 012f cmp r7, 1 ; 1
| |`==< 0x0801d7c6 f1da bge 0x801d7ac
\ `---> 0x0801d7c8 f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) gfx_1d952_does_nothing 2
| Caller: gfx_init_lcd
| gfx_1d952_does_nothing ();
\ 0x0801d952 7047 bx lr
/ (fcn) gfx_1d988 824
| Caller: paint_a_lot scr_mode_stable
| gfx_1d988 ();
| 0x0801d988 2de9fe4f push.w {r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0801d98c d2b0 sub sp, 0x148
| 0x0801d98e 0400 movs r4, r0
| 0x0801d990 5ff0030a movs.w sl, 3 ; 3
| 0x0801d994 0025 movs r5, 0
| 0x0801d996 0026 movs r6, 0
| 0x0801d998 0027 movs r7, 0
| 0x0801d99a 5ff00008 movs.w r8, 0
| 0x0801d99e 0020 movs r0, 0
| 0x0801d9a0 0390 str r0, [sp, 0xc]
| 0x0801d9a2 0020 movs r0, 0
| 0x0801d9a4 0290 str r0, [sp, 8]
| 0x0801d9a6 5ff0000b movs.w fp, 0
| 0x0801d9aa 5ff00009 movs.w sb, 0
| 0x0801d9ae ce48 ldr r0, [0x0801dcea] ; [0x801dce8:4]=0x2001e879
| 0x0801d9b0 0021 movs r1, 0
| 0x0801d9b2 0170 strb r1, [r0]
| 0x0801d9b4 0020 movs r0, 0
| 0x0801d9b6 8df81000 strb.w r0, [sp, 0x10]
| 0x0801d9ba 11a8 add r0, sp, 0x44
| 0x0801d9bc 4ff48071 mov.w r1, 0x100 ; 256
| 0x0801d9c0 16f01cf9 bl gfx_drawtext_sub1
| 0x0801d9c4 9df85001 ldrb.w r0, [sp, 0x150]
| 0x0801d9c8 ff28 cmp r0, 0xff ; 255
| ,=< 0x0801d9ca 07d1 bne 0x801d9dc
| | 0x0801d9cc c748 ldr r0, [0x0801dcec] ; [0x801dcec:4]=0x2001e878
| | 0x0801d9ce 0121 movs r1, 1 ; 1
| | 0x0801d9d0 0170 strb r1, [r0]
| | 0x0801d9d2 c748 ldr r0, [0x0801dcf2] ; [0x801dcf0:4]=0x2001e945 md380_menu_cursor_pos_2
| | 0x0801d9d4 0078 ldrb r0, [r0]
| | 0x0801d9d6 8df80400 strb.w r0, [sp, 4]
| ,==< 0x0801d9da 03e0 b 0x801d9e4
| |`-> 0x0801d9dc 9df85001 ldrb.w r0, [sp, 0x150]
| | 0x0801d9e0 8df80400 strb.w r0, [sp, 4]
| `--> 0x0801d9e4 0025 movs r5, 0
| ,=< 0x0801d9e6 00e0 b 0x801d9ea
| .--> 0x0801d9e8 a41c adds r4, r4, 2
| |`-> 0x0801d9ea 2088 ldrh r0, [r4]
| | 0x0801d9ec 0028 cmp r0, 0
| |,=< 0x0801d9ee 00f0ce80 beq.w 0x801db8e
| || 0x0801d9f2 2088 ldrh r0, [r4]
| || 0x0801d9f4 8028 cmp r0, 0x80 ; 128
| ,===< 0x0801d9f6 22d3 blo 0x801da3e
| ||| 0x0801d9f8 19f10109 adds.w sb, sb, 1
| ||| 0x0801d9fc 2088 ldrh r0, [r4]
| ||| 0x0801d9fe 15f0d9fe bl gfx_drawtext_sub2
| ||| 0x0801da02 11a9 add r1, sp, 0x44
| ||| 0x0801da04 6854 strb r0, [r5, r1]
| ||| 0x0801da06 6d1c adds r5, r5, 1
| ||| 0x0801da08 2088 ldrh r0, [r4]
| ||| 0x0801da0a 15f040ff bl gfx_drawtext_sub3
| ||| 0x0801da0e 11a9 add r1, sp, 0x44
| ||| 0x0801da10 6854 strb r0, [r5, r1]
| ||| 0x0801da12 6d1c adds r5, r5, 1
| ||| 0x0801da14 18f10208 adds.w r8, r8, 2
| ||| 0x0801da18 0298 ldr r0, [sp, 8]
| ||| 0x0801da1a 401c adds r0, r0, 1
| ||| 0x0801da1c 0290 str r0, [sp, 8]
| ||| 0x0801da1e 9df80400 ldrb.w r0, [sp, 4]
| ||| 0x0801da22 0299 ldr r1, [sp, 8]
| ||| 0x0801da24 51fa80f0 uxtab r0, r1, r0
| ||| 0x0801da28 af49 ldr r1, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| ||| 0x0801da2a 0978 ldrb r1, [r1]
| ||| 0x0801da2c 4018 adds r0, r0, r1
| ||| 0x0801da2e a842 cmp r0, r5
| ,====< 0x0801da30 02da bge 0x801da38
| |||| 0x0801da32 0298 ldr r0, [sp, 8]
| |||| 0x0801da34 0028 cmp r0, 0
| ,=====< 0x0801da36 2ad1 bne 0x801da8e
| |`----> 0x0801da38 1bf1010b adds.w fp, fp, 1
| |,====< 0x0801da3c 27e0 b 0x801da8e
| ||`---> 0x0801da3e 19f10109 adds.w sb, sb, 1
| || || 0x0801da42 2088 ldrh r0, [r4]
| || || 0x0801da44 0a28 cmp r0, 0xa ; 10
| ||,===< 0x0801da46 02d0 beq 0x801da4e
| ||||| 0x0801da48 2088 ldrh r0, [r4]
| ||||| 0x0801da4a 0d28 cmp r0, 0xd ; 13
| ,======< 0x0801da4c 19d1 bne 0x801da82
| |||`---> 0x0801da4e 11a8 add r0, sp, 0x44
| ||| || 0x0801da50 0a21 movs r1, 0xa ; 10
| ||| || 0x0801da52 2954 strb r1, [r5, r0]
| ||| || 0x0801da54 6d1c adds r5, r5, 1
| ||| || 0x0801da56 a448 ldr r0, [0x0801dcea] ; [0x801dce8:4]=0x2001e879
| ||| || 0x0801da58 0078 ldrb r0, [r0]
| ||| || 0x0801da5a 401c adds r0, r0, 1
| ||| || 0x0801da5c a249 ldr r1, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| ||| || 0x0801da5e 0870 strb r0, [r1]
| ||| || 0x0801da60 a148 ldr r0, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| ||| || 0x0801da62 0078 ldrb r0, [r0]
| ||| || 0x0801da64 04a9 add r1, sp, 0x10
| ||| || 0x0801da66 4554 strb r5, [r0, r1]
| ||| || 0x0801da68 9f48 ldr r0, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| ||| || 0x0801da6a 0078 ldrb r0, [r0]
| ||| || 0x0801da6c a149 ldr r1, [0x0801dcf4] ; [0x801dcf4:4]=0x2001e09c
| ||| || 0x0801da6e 9e4a ldr r2, [0x0801dcea] ; [0x801dce8:4]=0x2001e879
| ||| || 0x0801da70 1278 ldrb r2, [r2]
| ||| || 0x0801da72 b9eb0202 subs.w r2, sb, r2
| ||| || 0x0801da76 4254 strb r2, [r0, r1]
| ||| || 0x0801da78 5ff00008 movs.w r8, 0
| ||| || 0x0801da7c 5ff0030a movs.w sl, 3 ; 3
| |||,===< 0x0801da80 05e0 b 0x801da8e
| `------> 0x0801da82 11a8 add r0, sp, 0x44
| ||||| 0x0801da84 2188 ldrh r1, [r4]
| ||||| 0x0801da86 2954 strb r1, [r5, r0]
| ||||| 0x0801da88 6d1c adds r5, r5, 1
| ||||| 0x0801da8a 18f10108 adds.w r8, r8, 1
| ```---> 0x0801da8e 2088 ldrh r0, [r4]
| || 0x0801da90 0a28 cmp r0, 0xa ; 10
| ,===< 0x0801da92 65d0 beq 0x801db60
| ||| 0x0801da94 2088 ldrh r0, [r4]
| ||| 0x0801da96 0d28 cmp r0, 0xd ; 13
| ,====< 0x0801da98 62d0 beq 0x801db60
| |||| 0x0801da9a 2000 movs r0, r4
| |||| 0x0801da9c fff760ff bl gfx_drawchar_unk
| |||| 0x0801daa0 10eb0a0a adds.w sl, r0, sl
| |||| 0x0801daa4 2088 ldrh r0, [r4]
| |||| 0x0801daa6 2028 cmp r0, 0x20 ; 32
| ,=====< 0x0801daa8 3ad1 bne 0x801db20
| ||||| 0x0801daaa b8f1010f cmp.w r8, 1 ; 1
| ,======< 0x0801daae 37d0 beq 0x801db20
| |||||| 0x0801dab0 5046 mov r0, sl
| |||||| 0x0801dab2 0127 movs r7, 1 ; 1
| ,=======< 0x0801dab4 00e0 b 0x801dab8
| --------> 0x0801dab6 7f1c adds r7, r7, 1
| `-------> 0x0801dab8 80b2 uxth r0, r0
| |||||| 0x0801daba 8d28 cmp r0, 0x8d ; 141
| ,=======< 0x0801dabc 12d2 bhs 0x801dae4
| ||||||| 0x0801dabe 34f81710 ldrh.w r1, [r4, r7, lsl 1]
| ||||||| 0x0801dac2 8029 cmp r1, 0x80 ; 128
| ========< 0x0801dac4 0ed2 bhs 0x801dae4
| ||||||| 0x0801dac6 0090 str r0, [sp]
| ||||||| 0x0801dac8 14eb4700 adds.w r0, r4, r7, lsl 1
| ||||||| 0x0801dacc fff748ff bl gfx_drawchar_unk
| ||||||| 0x0801dad0 0099 ldr r1, [sp]
| ||||||| 0x0801dad2 4018 adds r0, r0, r1
| ||||||| 0x0801dad4 34f81710 ldrh.w r1, [r4, r7, lsl 1]
| ||||||| 0x0801dad8 2029 cmp r1, 0x20 ; 32
| ========< 0x0801dada 03d0 beq 0x801dae4
| ||||||| 0x0801dadc 34f81710 ldrh.w r1, [r4, r7, lsl 1]
| ||||||| 0x0801dae0 0029 cmp r1, 0
| ========< 0x0801dae2 e8d1 bne 0x801dab6
| `-------> 0x0801dae4 80b2 uxth r0, r0
| |||||| 0x0801dae6 8d28 cmp r0, 0x8d ; 141
| ,=======< 0x0801dae8 1ad3 blo 0x801db20
| ||||||| 0x0801daea 11a8 add r0, sp, 0x44
| ||||||| 0x0801daec 0a21 movs r1, 0xa ; 10
| ||||||| 0x0801daee 2954 strb r1, [r5, r0]
| ||||||| 0x0801daf0 6d1c adds r5, r5, 1
| ||||||| 0x0801daf2 7d48 ldr r0, [0x0801dcea] ; [0x801dce8:4]=0x2001e879
| ||||||| 0x0801daf4 0078 ldrb r0, [r0]
| ||||||| 0x0801daf6 401c adds r0, r0, 1
| ||||||| 0x0801daf8 7b49 ldr r1, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| ||||||| 0x0801dafa 0870 strb r0, [r1]
| ||||||| 0x0801dafc 19f10109 adds.w sb, sb, 1
| ||||||| 0x0801db00 7948 ldr r0, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| ||||||| 0x0801db02 0078 ldrb r0, [r0]
| ||||||| 0x0801db04 04a9 add r1, sp, 0x10
| ||||||| 0x0801db06 4554 strb r5, [r0, r1]
| ||||||| 0x0801db08 7748 ldr r0, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| ||||||| 0x0801db0a 0078 ldrb r0, [r0]
| ||||||| 0x0801db0c 7949 ldr r1, [0x0801dcf4] ; [0x801dcf4:4]=0x2001e09c
| ||||||| 0x0801db0e 764a ldr r2, [0x0801dcea] ; [0x801dce8:4]=0x2001e879
| ||||||| 0x0801db10 1278 ldrb r2, [r2]
| ||||||| 0x0801db12 b9eb0202 subs.w r2, sb, r2
| ||||||| 0x0801db16 4254 strb r2, [r0, r1]
| ||||||| 0x0801db18 5ff00008 movs.w r8, 0
| ||||||| 0x0801db1c 5ff0030a movs.w sl, 3 ; 3
| ```-----> 0x0801db20 1ffa8afa uxth.w sl, sl
| |||| 0x0801db24 baf18d0f cmp.w sl, 0x8d ; 141
| ,=====< 0x0801db28 1ad3 blo 0x801db60
| ||||| 0x0801db2a 11a8 add r0, sp, 0x44
| ||||| 0x0801db2c 0a21 movs r1, 0xa ; 10
| ||||| 0x0801db2e 2954 strb r1, [r5, r0]
| ||||| 0x0801db30 6d1c adds r5, r5, 1
| ||||| 0x0801db32 6d48 ldr r0, [0x0801dcea] ; [0x801dce8:4]=0x2001e879
| ||||| 0x0801db34 0078 ldrb r0, [r0]
| ||||| 0x0801db36 401c adds r0, r0, 1
| ||||| 0x0801db38 6b49 ldr r1, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| ||||| 0x0801db3a 0870 strb r0, [r1]
| ||||| 0x0801db3c 19f10109 adds.w sb, sb, 1
| ||||| 0x0801db40 6948 ldr r0, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| ||||| 0x0801db42 0078 ldrb r0, [r0]
| ||||| 0x0801db44 04a9 add r1, sp, 0x10
| ||||| 0x0801db46 4554 strb r5, [r0, r1]
| ||||| 0x0801db48 6748 ldr r0, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| ||||| 0x0801db4a 0078 ldrb r0, [r0]
| ||||| 0x0801db4c 6949 ldr r1, [0x0801dcf4] ; [0x801dcf4:4]=0x2001e09c
| ||||| 0x0801db4e 664a ldr r2, [0x0801dcea] ; [0x801dce8:4]=0x2001e879
| ||||| 0x0801db50 1278 ldrb r2, [r2]
| ||||| 0x0801db52 b9eb0202 subs.w r2, sb, r2
| ||||| 0x0801db56 4254 strb r2, [r0, r1]
| ||||| 0x0801db58 5ff00008 movs.w r8, 0
| ||||| 0x0801db5c 5ff0030a movs.w sl, 3 ; 3
| ```---> 0x0801db60 9df85001 ldrb.w r0, [sp, 0x150]
| || 0x0801db64 ff28 cmp r0, 0xff ; 255
| ,===< 0x0801db66 0bd0 beq 0x801db80
| ||| 0x0801db68 9df85001 ldrb.w r0, [sp, 0x150]
| ||| 0x0801db6c 5bfa80f0 uxtab r0, fp, r0
| ||| 0x0801db70 5d49 ldr r1, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| ||| 0x0801db72 0978 ldrb r1, [r1]
| ||| 0x0801db74 4018 adds r0, r0, r1
| ||| 0x0801db76 a842 cmp r0, r5
| ,====< 0x0801db78 02db blt 0x801db80
| |||| 0x0801db7a 5b48 ldr r0, [0x0801dcea] ; [0x801dce8:4]=0x2001e879
| |||| 0x0801db7c 0078 ldrb r0, [r0]
| |||| 0x0801db7e 0390 str r0, [sp, 0xc]
| ``---> 0x0801db80 fa2d cmp r5, 0xfa ; 250
| ,===< 0x0801db82 04da bge 0x801db8e
| ||| 0x0801db84 5848 ldr r0, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| ||| 0x0801db86 0078 ldrb r0, [r0]
| ||| 0x0801db88 3528 cmp r0, 0x35 ; '5' ; 53
| |`==< 0x0801db8a 7ff42daf bne.w 0x801d9e8
| `-`-> 0x0801db8e 9df85001 ldrb.w r0, [sp, 0x150]
| 0x0801db92 ff28 cmp r0, 0xff ; 255
| ,=< 0x0801db94 03d1 bne 0x801db9e
| | 0x0801db96 11a8 add r0, sp, 0x44
| | 0x0801db98 0021 movs r1, 0
| | 0x0801db9a 2954 strb r1, [r5, r0]
| ,==< 0x0801db9c 19e0 b 0x801dbd2
| |`-> 0x0801db9e 5648 ldr r0, [0x0801dcfa] ; [0x801dcf8:4]=0x2001e6fc
| | 0x0801dba0 0068 ldr r0, [r0]
| | 0x0801dba2 007b ldrb r0, [r0, 0xc]
| | 0x0801dba4 10f01f00 ands r0, r0, 0x1f
| | 0x0801dba8 0828 cmp r0, 8 ; 8
| |,=< 0x0801dbaa 09d0 beq 0x801dbc0
| || 0x0801dbac 9df85001 ldrb.w r0, [sp, 0x150]
| || 0x0801dbb0 5bfa80f0 uxtab r0, fp, r0
| || 0x0801dbb4 0399 ldr r1, [sp, 0xc]
| || 0x0801dbb6 0818 adds r0, r1, r0
| || 0x0801dbb8 11a9 add r1, sp, 0x44
| || 0x0801dbba 0022 movs r2, 0
| || 0x0801dbbc 4254 strb r2, [r0, r1]
| ,===< 0x0801dbbe 08e0 b 0x801dbd2
| ||`-> 0x0801dbc0 9df85001 ldrb.w r0, [sp, 0x150]
| || 0x0801dbc4 5bfa80f0 uxtab r0, fp, r0
| || 0x0801dbc8 0399 ldr r1, [sp, 0xc]
| || 0x0801dbca 0818 adds r0, r1, r0
| || 0x0801dbcc 11a9 add r1, sp, 0x44
| || 0x0801dbce 0022 movs r2, 0
| || 0x0801dbd0 4254 strb r2, [r0, r1]
| ``--> 0x0801dbd2 4548 ldr r0, [0x0801dcea] ; [0x801dce8:4]=0x2001e879
| 0x0801dbd4 0078 ldrb r0, [r0]
| 0x0801dbd6 4949 ldr r1, [0x0801dcfe] ; [0x801dcfc:4]=0x20004ac9
| 0x0801dbd8 0978 ldrb r1, [r1]
| 0x0801dbda 8842 cmp r0, r1
| ,=< 0x0801dbdc 53d3 blo 0x801dc86
| | 0x0801dbde 4248 ldr r0, [0x0801dcea] ; [0x801dce8:4]=0x2001e879
| | 0x0801dbe0 0078 ldrb r0, [r0]
| | 0x0801dbe2 4649 ldr r1, [0x0801dcfe] ; [0x801dcfc:4]=0x20004ac9
| | 0x0801dbe4 0978 ldrb r1, [r1]
| | 0x0801dbe6 401a subs r0, r0, r1
| | 0x0801dbe8 461c adds r6, r0, 1
| | 0x0801dbea 4548 ldr r0, [0x0801dd02] ; [0x801dd00:4]=0x2001e87a
| | 0x0801dbec 0078 ldrb r0, [r0]
| | 0x0801dbee 0028 cmp r0, 0
| ,==< 0x0801dbf0 17d0 beq 0x801dc22
| || 0x0801dbf2 4348 ldr r0, [0x0801dd02] ; [0x801dd00:4]=0x2001e87a
| || 0x0801dbf4 0678 ldrb r6, [r0]
| || 0x0801dbf6 3c48 ldr r0, [0x0801dcea] ; [0x801dce8:4]=0x2001e879
| || 0x0801dbf8 0078 ldrb r0, [r0]
| || 0x0801dbfa 4049 ldr r1, [0x0801dcfe] ; [0x801dcfc:4]=0x20004ac9
| || 0x0801dbfc 0978 ldrb r1, [r1]
| || 0x0801dbfe 401a subs r0, r0, r1
| || 0x0801dc00 b042 cmp r0, r6
| ,===< 0x0801dc02 0adb blt 0x801dc1a
| ||| 0x0801dc04 3d48 ldr r0, [0x0801dcfc] ; [0x801dcfc:4]=0x20004ac9
| ||| 0x0801dc06 0078 ldrb r0, [r0]
| ||| 0x0801dc08 3018 adds r0, r6, r0
| ||| 0x0801dc0a 04a9 add r1, sp, 0x10
| ||| 0x0801dc0c 405c ldrb r0, [r0, r1]
| ||| 0x0801dc0e 11a9 add r1, sp, 0x44
| ||| 0x0801dc10 4018 adds r0, r0, r1
| ||| 0x0801dc12 0021 movs r1, 0
| ||| 0x0801dc14 00f8011c strb r1, [r0, -0x1]
| ,====< 0x0801dc18 35e0 b 0x801dc86
| |`---> 0x0801dc1a 11a8 add r0, sp, 0x44
| | || 0x0801dc1c 0021 movs r1, 0
| | || 0x0801dc1e 2954 strb r1, [r5, r0]
| |,===< 0x0801dc20 31e0 b 0x801dc86
| ||`--> 0x0801dc22 9df80400 ldrb.w r0, [sp, 4]
| || | 0x0801dc26 5bfa80f0 uxtab r0, fp, r0
| || | 0x0801dc2a 04a9 add r1, sp, 0x10
| || | 0x0801dc2c 715c ldrb r1, [r6, r1]
| || | 0x0801dc2e 8842 cmp r0, r1
| ||,==< 0x0801dc30 29da bge 0x801dc86
| |||| 0x0801dc32 2d49 ldr r1, [0x0801dcea] ; [0x801dce8:4]=0x2001e879
| |||| 0x0801dc34 0e78 ldrb r6, [r1]
| .-----> 0x0801dc36 012e cmp r6, 1 ; 1
| ,======< 0x0801dc38 25db blt 0x801dc86
| |||||| 0x0801dc3a 002e cmp r6, 0
| ,=======< 0x0801dc3c 0ed0 beq 0x801dc5c
| ||||||| 0x0801dc3e 761e subs r6, r6, 1
| ||||||| 0x0801dc40 002e cmp r6, 0
| ========< 0x0801dc42 06d0 beq 0x801dc52
| ||||||| 0x0801dc44 2a48 ldr r0, [0x0801dcf0] ; [0x801dcf0:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801dc46 0078 ldrb r0, [r0]
| ||||||| 0x0801dc48 1beb0000 adds.w r0, fp, r0
| ||||||| 0x0801dc4c 3018 adds r0, r6, r0
| ||||||| 0x0801dc4e 401e subs r0, r0, 1
| ========< 0x0801dc50 04e0 b 0x801dc5c
| --------> 0x0801dc52 2748 ldr r0, [0x0801dcf2] ; [0x801dcf0:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801dc54 0078 ldrb r0, [r0]
| ||||||| 0x0801dc56 1beb0000 adds.w r0, fp, r0
| ||||||| 0x0801dc5a 3018 adds r0, r6, r0
| `-------> 0x0801dc5c 04a9 add r1, sp, 0x10
| |||||| 0x0801dc5e 715c ldrb r1, [r6, r1]
| |||||| 0x0801dc60 8842 cmp r0, r1
| |`=====< 0x0801dc62 e8db blt 0x801dc36
| | |||| 0x0801dc64 2048 ldr r0, [0x0801dce8] ; [0x801dce8:4]=0x2001e879
| | |||| 0x0801dc66 0078 ldrb r0, [r0]
| | |||| 0x0801dc68 801b subs r0, r0, r6
| | |||| 0x0801dc6a 2449 ldr r1, [0x0801dcfe] ; [0x801dcfc:4]=0x20004ac9
| | |||| 0x0801dc6c 0978 ldrb r1, [r1]
| | |||| 0x0801dc6e 8842 cmp r0, r1
| |,=====< 0x0801dc70 09db blt 0x801dc86
| |||||| 0x0801dc72 2248 ldr r0, [0x0801dcfe] ; [0x801dcfc:4]=0x20004ac9
| |||||| 0x0801dc74 0078 ldrb r0, [r0]
| |||||| 0x0801dc76 3018 adds r0, r6, r0
| |||||| 0x0801dc78 04a9 add r1, sp, 0x10
| |||||| 0x0801dc7a 405c ldrb r0, [r0, r1]
| |||||| 0x0801dc7c 11a9 add r1, sp, 0x44
| |||||| 0x0801dc7e 4018 adds r0, r0, r1
| |||||| 0x0801dc80 0021 movs r1, 0
| |||||| 0x0801dc82 00f8011c strb r1, [r0, -0x1]
| ``````-> 0x0801dc86 9df85001 ldrb.w r0, [sp, 0x150]
| 0x0801dc8a ff28 cmp r0, 0xff ; 255
| ,=< 0x0801dc8c 0cd1 bne 0x801dca8
| | 0x0801dc8e 9a23 movs r3, 0x9a ; 154
| | 0x0801dc90 539a ldr r2, [sp, 0x14c]
| | 0x0801dc92 5299 ldr r1, [sp, 0x148]
| | 0x0801dc94 04a8 add r0, sp, 0x10
| | 0x0801dc96 305c ldrb r0, [r6, r0]
| | 0x0801dc98 11ac add r4, sp, 0x44
| | 0x0801dc9a 0019 adds r0, r0, r4
| | 0x0801dc9c 00f046f8 bl gfx_drawtext5
| | 0x0801dca0 1248 ldr r0, [0x0801dcec] ; [0x801dcec:4]=0x2001e878
| | 0x0801dca2 0021 movs r1, 0
| | 0x0801dca4 0170 strb r1, [r0]
| ,==< 0x0801dca6 07e0 b 0x801dcb8
| |`-> 0x0801dca8 539a ldr r2, [sp, 0x14c]
| | 0x0801dcaa 5299 ldr r1, [sp, 0x148]
| | 0x0801dcac 04a8 add r0, sp, 0x10
| | 0x0801dcae 305c ldrb r0, [r6, r0]
| | 0x0801dcb0 11ab add r3, sp, 0x44
| | 0x0801dcb2 c018 adds r0, r0, r3
| | 0x0801dcb4 09f085fd bl gfx_drawtext7
| `--> 0x0801dcb8 3000 movs r0, r6
| 0x0801dcba 55b0 add sp, 0x154
\ 0x0801dcbc bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) gfx_1dd3c 32
| Caller: update_scr_31
| gfx_1dd3c ();
| 0x0801dd3c bff34f8f dsb sy
| 0x0801dd40 dff8780d ldr.w r0, [0x0801eac0] ; [0x801eac0:4]=0x2001e700 menu_memory_poi
| 0x0801dd44 0068 ldr r0, [r0]
| 0x0801dd46 10f4e060 ands r0, r0, 0x700
| 0x0801dd4a dff89818 ldr.w r1, [0x0801e5ea] ; [0x801e5e8:4]=0x2001e947 md380_menu_0x2001d3f1
| 0x0801dd4e 0843 orrs r0, r1
| 0x0801dd50 dff8681d ldr.w r1, [0x0801eac0] ; [0x801eac0:4]=0x2001e700 menu_memory_poi
| 0x0801dd54 0860 str r0, [r1]
| 0x0801dd56 bff34f8f dsb sy
\ `-> 0x0801dd5a fee7 b 0x801dd5a
/ (fcn) gfx_select_font 16
| Caller: draw_zone_channel display_idle_screen draw_some_bitmap_and_text display_unprog_screen
| gfx_33204 draw_datetime_row func_0c7e8 menu_draw_something4 disp_something
| F_4154 menu_draw_something2 often_called_something_keycode_menu func_37b0a
| func_2c6fc
| gfx_select_font ();
| 0x08021874 0349 ldr r1, [0x08021884] ; [0x8021884:4]=0x2001da1c gfx_info
| 0x08021876 8969 ldr r1, [r1, 0x18] ; [r0+0x18] = gfx_info.font_pointer
| 0x08021878 0028 cmp r0, 0 ; [in] R0=font addr, e.g. 0x0809a4c0 = gfx_font_small
| ,=< 0x0802187a 01d0 beq 0x8021880
| | 0x0802187c 014a ldr r2, [0x08021884] ; [0x8021884:4]=0x2001da1c gfx_info
| | 0x0802187e 9061 str r0, [r2, 0x18] ; set NEW font address
| `-> 0x08021880 0800 movs r0, r1 ; return OLD font address
\ 0x08021882 7047 bx lr
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
/gfx_font_small
0x0809a4c0 8b3a 0308 813b 0308 dd3b 0308 e33b 0308 .:...;...;...;..
0x0809a4d0 8492 0f08 0c0c 0101 48aa 0f08 0000 0000 ........H.......
0x0809a4e0 0000 0000 0000 3800 6c00 6c00 6c00 7800 ......8.l.l.l.x.
0x0809a4f0 7f00 f600 de00 cc00 cd80 7f00 0000 0000 ................
0x0809a500 0000 0000 0000 0000 0000 0c00 0c00 0c00 ................
0x0809a510 0c00 ffc0 0c00 0c00 0c00 0c00 0000 0000 ................
0x0809a520 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0809a530 0000 7fc0 0000 0000 0000 0000 0000 0000 ................
0x0809a4c0 0x08033a8b 0x08033b81 0x08033bdd 0x08033be3 .:...;...;...;..
0x0809a4d0 0x080f9284 0x01010c0c 0x080faa48 0x00000000 ........H.......
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
/font_small_table_at_offset_0x18
0x080faa48 0a00 0a00 f8f8 f8f8 f8f8 f8f8 f8f8 f8f8 ................
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
/gfx_font_norm
0x080cf780 8b3a 0308 813b 0308 dd3b 0308 e33b 0308 .:...;...;...;..
0x080cf790 8492 0f08 1010 0101 d0af 0f08 0000 0000 ................
0x080cf7a0 4700 4600 4500 4400 1700 2e00 ddf9 53f9 G.F.E.D.......S.
0x080cf7b0 7d37 5f19 7700 0000 10fc 0f00 ffff 0080 }7_.w...........
0x080cf7c0 b0d9 b0d7 b0dc b0da b2ae b0dd b0d8 dfc2 ................
0x080cf7d0 eafe dee3 b0db b0de 0000 0000 b2a2 b2a1 ................
0x080cf7e0 b1f8 b1f9 b1fd b1fb b1fa b1fc b1fe d9f7 ................
0x080cf7f0 dafb def0 0000 0000 b2ce b2cd b2d0 b2d2 ................
0x080cf780 0x08033a8b 0x08033b81 0x08033bdd 0x08033be3 .:...;...;...;..
0x080cf790 0x080f9284 0x01011010 0x080fafd0 0x00000000 ................
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
/three_font_methods
0x080f9284 5968 0908 a568 0908 d768 0908 b1f0 b1ef Yh...h...h......
0x080f9284 0x08096859 0x080968a5 0x080968d7 Yh...h...h..
/ (fcn) font_method_1_of_3 76
| font_method_1_of_3 ();
| 0x08096858 70b5 push {r4, r5, r6, lr}
| 0x0809685a 0400 movs r4, r0
| 0x0809685c 0d00 movs r5, r1
| 0x0809685e 0026 movs r6, 0
| 0x08096860 002c cmp r4, 0
| ,=< 0x08096862 1dd0 beq 0x80968a0
| ,==< 0x08096864 0ae0 b 0x809687c
| .---> 0x08096866 2178 ldrb r1, [r4]
| ||| 0x08096868 641c adds r4, r4, 1
| ||| 0x0809686a 6d1e subs r5, r5, 1
| ||| 0x0809686c c9b2 uxtb r1, r1
| ||| 0x0809686e c0b2 uxtb r0, r0
| ||| 0x08096870 fff7ecff bl combine_H_and_L_byte
| ||| 0x08096874 80b2 uxth r0, r0
| ||| 0x08096876 9df716fa bl gfx_call_font_method_via_hdr_offset4
| ||| 0x0809687a 8619 adds r6, r0, r6
| .-`--> 0x0809687c 2078 ldrb r0, [r4]
| || | 0x0809687e 0100 movs r1, r0
| || | 0x08096880 c9b2 uxtb r1, r1
| || | 0x08096882 0029 cmp r1, 0
| ||,==< 0x08096884 0cd0 beq 0x80968a0
| |||| 0x08096886 002d cmp r5, 0
| ,=====< 0x08096888 0ad4 bmi 0x80968a0
| ||||| 0x0809688a 641c adds r4, r4, 1
| ||||| 0x0809688c 6d1e subs r5, r5, 1
| ||||| 0x0809688e c0b2 uxtb r0, r0
| ||||| 0x08096890 8028 cmp r0, 0x80 ; 128
| ||`===< 0x08096892 e8d2 bhs 0x8096866
| || || 0x08096894 c0b2 uxtb r0, r0
| || || 0x08096896 80b2 uxth r0, r0
| || || 0x08096898 9df705fa bl gfx_call_font_method_via_hdr_offset4
| || || 0x0809689c 8619 adds r6, r0, r6
| |`====< 0x0809689e ede7 b 0x809687c
| `--``-> 0x080968a0 3000 movs r0, r6
\ 0x080968a2 70bd pop {r4, r5, r6, pc}
/ (fcn) font_method_2_of_3 50
| font_method_2_of_3 ();
| 0x080968a4 10b4 push {r4}
| 0x080968a6 0022 movs r2, 0
| ,=< 0x080968a8 02e0 b 0x80968b0
| .--> 0x080968aa 521c adds r2, r2, 1
| || 0x080968ac 401c adds r0, r0, 1
| .---> 0x080968ae 521c adds r2, r2, 1
| ||`-> 0x080968b0 0378 ldrb r3, [r0]
| || 0x080968b2 1c00 movs r4, r3
| || 0x080968b4 e4b2 uxtb r4, r4
| || 0x080968b6 002c cmp r4, 0
| ||,=< 0x080968b8 0ad0 beq 0x80968d0
| ||| 0x080968ba 8a42 cmp r2, r1
| ,====< 0x080968bc 08da bge 0x80968d0
| |||| 0x080968be 401c adds r0, r0, 1
| |||| 0x080968c0 dbb2 uxtb r3, r3
| |||| 0x080968c2 802b cmp r3, 0x80 ; 128
| ||`==< 0x080968c4 f1d2 bhs 0x80968aa
| || | 0x080968c6 dbb2 uxtb r3, r3
| || | 0x080968c8 0a2b cmp r3, 0xa ; 10
| |`===< 0x080968ca f0d1 bne 0x80968ae
| | | 0x080968cc 1000 movs r0, r2
| | ,==< 0x080968ce 00e0 b 0x80968d2
| `--`-> 0x080968d0 1000 movs r0, r2
| `--> 0x080968d2 10bc pop {r4}
\ 0x080968d4 7047 bx lr
/ (fcn) font_method_3_of_3 56
| font_method_3_of_3 ();
| 0x080968d6 38b5 push {r3, r4, r5, lr}
| 0x080968d8 0400 movs r4, r0
| 0x080968da 0d00 movs r5, r1
| ,=< 0x080968dc 09e0 b 0x80968f2
| .--> 0x080968de 2178 ldrb r1, [r4]
| || 0x080968e0 641c adds r4, r4, 1
| || 0x080968e2 6d1e subs r5, r5, 1
| || 0x080968e4 c9b2 uxtb r1, r1
| || 0x080968e6 c0b2 uxtb r0, r0
| || 0x080968e8 fff7b0ff bl combine_H_and_L_byte
| || 0x080968ec 80b2 uxth r0, r0
| || 0x080968ee 9df796f9 bl gfx_drawchar_sub3
| .-`-> 0x080968f2 6d1e subs r5, r5, 1
| || 0x080968f4 002d cmp r5, 0
| ||,=< 0x080968f6 09d4 bmi 0x809690c
| ||| 0x080968f8 2078 ldrb r0, [r4]
| ||| 0x080968fa 641c adds r4, r4, 1
| ||| 0x080968fc c0b2 uxtb r0, r0
| ||| 0x080968fe 8028 cmp r0, 0x80 ; 128
| |`==< 0x08096900 edd2 bhs 0x80968de
| | | 0x08096902 c0b2 uxtb r0, r0
| | | 0x08096904 80b2 uxth r0, r0
| | | 0x08096906 9df78af9 bl gfx_drawchar_sub3
| `===< 0x0809690a f2e7 b 0x80968f2
\ `-> 0x0809690c 31bd pop {r0, r4, r5, pc}
/ (fcn) combine_H_and_L_byte 12
| Caller: font_method_3_of_3 font_method_1_of_3
| combine_H_and_L_byte ();
| 0x0809684c c9b2 uxtb r1, r1 ; [in] R1 maybe a LOW-byte (?)
| 0x0809684e c0b2 uxtb r0, r0 ; [in] R0 maybe a HIGH-byte (?)
| 0x08096850 51ea0020 orrs.w r0, r1, r0, lsl 8 ; combine R1 (lo) and R0 (hi) into UINT16 ?
| 0x08096854 80b2 uxth r0, r0
\ 0x08096856 7047 bx lr
/ (fcn) gfx_get_font_height 16
| Caller: gfx_drawtext8 gfx_newline menu_draw_something2
| gfx_get_font_height ();
| 0x08033c96 0748 ldr r0, [0x08033cb6] ; [0x8033cb4:4]=0x2001da1c gfx_info
| 0x08033c98 8069 ldr r0, [r0, 0x18] ; [r0+0x18] = gfx_info.font_pointer
| 0x08033c9a 407d ldrb r0, [r0, 0x15] ; [0x15] = height in pixels ? (gfx_font_small:12, norm:16)
| 0x08033c9c 0549 ldr r1, [0x08033cb4] ; [0x8033cb4:4]=0x2001da1c gfx_info
| 0x08033c9e 8969 ldr r1, [r1, 0x18]
| 0x08033ca0 c97d ldrb r1, [r1, 0x17] ; [0x17] = unknown factor (gfx_font_small:1, norm:1)
| 0x08033ca2 4843 muls r0, r1, r0 ; returns R0 = height in pixels ?
\ 0x08033ca4 7047 bx lr
/ (fcn) gfx_newline 26
| Caller: gfx_drawchar_sub3
| gfx_newline ();
| 0x08033c04 80b5 push {r7, lr}
| 0x08033c06 00f046f8 bl gfx_get_font_height ; return R0 = height of current font in pixels
| 0x08033c0a 2a49 ldr r1, [0x08033cb6] ; [0x8033cb4:4]=0x2001da1c gfx_info
| 0x08033c0c 898c ldrh r1, [r1, 0x24] ; [r1+36] = gfx_info.ypos (16 bit)
| 0x08033c0e 4018 adds r0, r0, r1 ; y_pos += font_height
| 0x08033c10 2849 ldr r1, [0x08033cb4] ; [0x8033cb4:4]=0x2001da1c gfx_info
| 0x08033c12 8884 strh r0, [r1, 0x24]
| 0x08033c14 2748 ldr r0, [0x08033cb4] ; [0x8033cb4:4]=0x2001da1c gfx_info
| 0x08033c16 2749 ldr r1, [0x08033cb6] ; [0x8033cb4:4]=0x2001da1c gfx_info
| 0x08033c18 098c ldrh r1, [r1, 0x20] ; [r1+32] = gfx_info.xpos2 ("left text margin" ?)
| 0x08033c1a 4184 strh r1, [r0, 0x22] ; [r0+34] = gfx_info.xpos (16 bit)
\ 0x08033c1c 01bd pop {r0, pc}
/ (fcn) gfx_drawchar_pos 18
| Caller: func_0c7e8 display_idle_screen disp_something display_unprog_screen
| gfx_drawchar_pos ();
| 0x08021940 80b5 push {r7, lr}
| 0x08021942 044b ldr r3, [0x08021956] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x08021944 5984 strh r1, [r3, 0x22] ; [r3+34] = gfx_info.xpos
| 0x08021946 0349 ldr r1, [0x08021956] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x08021948 8a84 strh r2, [r1, 0x24] ; [r1+36] = gfx_info.ypos
| 0x0802194a 80b2 uxth r0, r0
| 0x0802194c fff7a6ff bl gfx_drawchar
\ 0x08021950 01bd pop {r0, pc}
/ (fcn) gfx_drawchar 154
| Caller: gfx_drawchar_pos func_21936
| gfx_drawchar ();
| 0x0802189c 30b5 push {r4, r5, lr}
| 0x0802189e 83b0 sub sp, 0xc ; local var: GUI_RECT r ?
| 0x080218a0 0400 movs r4, r0 ; [in] R0 = character code (8 bit, maybe 16 for Chinese)
| 0x080218a2 2c48 ldr r0, [0x08021956] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x080218a4 408c ldrh r0, [r0, 0x22] ; get [r0+34] = gfx_info.xpos (16 bit)
| 0x080218a6 2b49 ldr r1, [0x08021956] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x080218a8 096c ldr r1, [r1, 0x40] ; [r1+64] = gfx_info.bmp_w alias 'CharDistX' (??)
| 0x080218aa 0818 adds r0, r1, r0
| 0x080218ac 2949 ldr r1, [0x08021954] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x080218ae 4884 strh r0, [r1, 0x22] ; set [r0+34] = gfx_info.xpos (for next char?)
| 0x080218b0 2848 ldr r0, [0x08021954] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x080218b2 808c ldrh r0, [r0, 0x24] ; get [r1+36] = gfx_info.ypos
| 0x080218b4 2749 ldr r1, [0x08021954] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x080218b6 496c ldr r1, [r1, 0x44] ; [r1+68] = gfx_info.bmp_h alias 'FontSizeY' (??)
| 0x080218b8 0818 adds r0, r1, r0
| 0x080218ba 2649 ldr r1, [0x08021956] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x080218bc 8884 strh r0, [r1, 0x24] ; set [r1+36] = gfx_info.ypos
| 0x080218be 2548 ldr r0, [0x08021956] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x080218c0 b0f92250 ldrsh.w r5, [r0, 0x22] ; [r0+34] = gfx_info.xpos
| 0x080218c4 adf80050 strh.w r5, [sp] ; temp0 = incremented xpos
| 0x080218c8 2000 movs r0, r4 ; R0 = character code again
| 0x080218ca 80b2 uxth r0, r0 ; zero-extend 16- to 32-bit
| 0x080218cc 12f0ebf9 bl gfx_call_font_method_via_hdr_offset4
| 0x080218d0 4019 adds r0, r0, r5
| 0x080218d2 401e subs r0, r0, 1 ; r.y1 = DispPosY + FontSizeY - 1 (?)
| 0x080218d4 adf80400 strh.w r0, [sp, 4]
| 0x080218d8 1e48 ldr r0, [0x08021954] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x080218da b0f92450 ldrsh.w r5, [r0, 0x24] ; [r0+36] = gfx_info.ypos
| 0x080218de adf80250 strh.w r5, [sp, 2]
| 0x080218e2 15f049f8 bl gfx_GetFontSizeY
| 0x080218e6 4019 adds r0, r0, r5
| 0x080218e8 401e subs r0, r0, 1 ; only vague similarities with CL_DispChar() ...
| 0x080218ea adf80600 strh.w r0, [sp, 6]
| 0x080218ee 00a8 add r0, sp, 0
| 0x080218f0 fbf7fef9 bl gfx_bmp_sub1
| 0x080218f4 0028 cmp r0, 0
| ,=< 0x080218f6 07d0 beq 0x8021908
| .--> 0x080218f8 2000 movs r0, r4
| || 0x080218fa 80b2 uxth r0, r0
| || 0x080218fc 12f08ff9 bl gfx_drawchar_sub3
| || 0x08021900 fbf7c8f9 bl gfx_bmp_sub3
| || 0x08021904 0028 cmp r0, 0
| `==< 0x08021906 f7d1 bne 0x80218f8
| `-> 0x08021908 a4b2 uxth r4, r4
| 0x0802190a 0a2c cmp r4, 0xa ; 10
| ,=< 0x0802190c 04d0 beq 0x8021918
| | 0x0802190e bdf80400 ldrh.w r0, [sp, 4]
| | 0x08021912 401c adds r0, r0, 1
| | 0x08021914 0f49 ldr r1, [0x08021954] ; [0x8021954:4]=0x2001da1c gfx_info
| | 0x08021916 4884 strh r0, [r1, 0x22] ; [r1+34] = gfx_info.xpos
| `-> 0x08021918 0e48 ldr r0, [0x08021954] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x0802191a 408c ldrh r0, [r0, 0x22]
| 0x0802191c 0d49 ldr r1, [0x08021954] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x0802191e 096c ldr r1, [r1, 0x40] ; [r1+64] = gfx_info.bmp_w
| 0x08021920 401a subs r0, r0, r1
| 0x08021922 0c49 ldr r1, [0x08021956] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x08021924 4884 strh r0, [r1, 0x22] ; [r1+34] = gfx_info.xpos
| 0x08021926 0b48 ldr r0, [0x08021956] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x08021928 808c ldrh r0, [r0, 0x24] ; [r0+36] = gfx_info.ypos
| 0x0802192a 0a49 ldr r1, [0x08021956] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x0802192c 496c ldr r1, [r1, 0x44] ; [r1+68] = gfx_info.bmp_h
| 0x0802192e 401a subs r0, r0, r1
| 0x08021930 0849 ldr r1, [0x08021954] ; [0x8021954:4]=0x2001da1c gfx_info
| 0x08021932 8884 strh r0, [r1, 0x24] ; [r0+36] = gfx_info.ypos
\ 0x08021934 37bd pop {r0, r1, r2, r4, r5, pc}
/ (fcn) gfx_clear3 40
| Caller: gfx_drawtext2 gfx_drawtext4 gfx_drawtext5
| gfx_clear3 ();
| 0x0801dcc0 10b5 push {r4, lr}
| 0x0801dcc2 0400 movs r4, r0 ; [in] R0= number of CHARS or PIXELS to clear ?
| 0x0801dcc4 15f0c6ff bl gfx_get_current_font_height
| 0x0801dcc8 0e49 ldr r1, [0x0801dd04] ; [0x801dd04:4]=0x2001da1c gfx_info
| 0x0801dcca b1f92410 ldrsh.w r1, [r1, 0x24] ; [r0+36] = gfx_info.ypos
| 0x0801dcce 091a subs r1, r1, r0
| 0x0801dcd0 0c48 ldr r0, [0x0801dd04] ; [0x801dd04:4]=0x2001da1c gfx_info
| 0x0801dcd2 8069 ldr r0, [r0, 0x18] ; [r0+24] = gfx_info.font_pointer
| 0x0801dcd4 407d ldrb r0, [r0, 0x15]
| 0x0801dcd6 0818 adds r0, r1, r0
| 0x0801dcd8 431e subs r3, r0, 1
| 0x0801dcda 2200 movs r2, r4
| 0x0801dcdc 0948 ldr r0, [0x0801dd04] ; [0x801dd04:4]=0x2001da1c gfx_info
| 0x0801dcde b0f92200 ldrsh.w r0, [r0, 0x22] ; [r0+34] = gfx_info.xpos
| 0x0801dce2 15f0a1fb bl gfx_33428 ; [in] R0=x1, R1=y1, R2=x2, R3=y2 ?
\ 0x0801dce6 10bd pop {r4, pc}
/ (fcn) gfx_drawtext2 18
| Caller: paint_a_lot display_idle_screen display_unprog_screen draw_datetime_row func_0c7e8
| disp_something menu_6_1_1 F_4154 handle_keycode_F_4171
| gfx_drawtext2 ();
| 0x0801dd08 10b5 push {r4, lr}
| 0x0801dd0a 1c00 movs r4, r3
| 0x0801dd0c 1223 movs r3, 0x12 ; 18
| 0x0801dd0e 09f00bfd bl gfx_drawtext6
| 0x0801dd12 2000 movs r0, r4
| 0x0801dd14 fff7d4ff bl gfx_clear3
\ 0x0801dd18 10bd pop {r4, pc}
/ (fcn) gfx_drawtext3 148
| Caller: gfx_drawtext
| gfx_drawtext3 ();
| 0x0802b142 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x0802b146 a5b0 sub sp, 0x94
| 0x0802b148 0400 movs r4, r0
| 0x0802b14a 0d00 movs r5, r1
| 0x0802b14c 1600 movs r6, r2
| 0x0802b14e 1f00 movs r7, r3
| 0x0802b150 5ff00008 movs.w r8, 0
| 0x0802b154 00a8 add r0, sp, 0
| 0x0802b156 9421 movs r1, 0x94 ; 148
| 0x0802b158 08f050fd bl gfx_drawtext_sub1
| 0x0802b15c 5ff00009 movs.w sb, 0
| ,=< 0x0802b160 08e0 b 0x802b174
| .--> 0x0802b162 00a8 add r0, sp, 0
| || 0x0802b164 2188 ldrh r1, [r4]
| || 0x0802b166 09f80010 strb.w r1, [sb, r0]
| || 0x0802b16a 19f10109 adds.w sb, sb, 1
| || 0x0802b16e 18f10108 adds.w r8, r8, 1
| .---> 0x0802b172 a41c adds r4, r4, 2
| ||`-> 0x0802b174 2088 ldrh r0, [r4]
| || 0x0802b176 0028 cmp r0, 0
| ||,=< 0x0802b178 21d0 beq 0x802b1be
| ||| 0x0802b17a 2088 ldrh r0, [r4]
| ||| 0x0802b17c 4ff6ff71 movw r1, 0xffff
| ||| 0x0802b180 8842 cmp r0, r1
| ,====< 0x0802b182 02d1 bne 0x802b18a
| |||| 0x0802b184 0020 movs r0, 0
| |||| 0x0802b186 2080 strh r0, [r4]
| ,=====< 0x0802b188 19e0 b 0x802b1be
| |`----> 0x0802b18a 2088 ldrh r0, [r4]
| | ||| 0x0802b18c 8028 cmp r0, 0x80 ; 128
| |,====< 0x0802b18e 14d3 blo 0x802b1ba
| ||||| 0x0802b190 b845 cmp r8, r7
| ,======< 0x0802b192 14da bge 0x802b1be
| |||||| 0x0802b194 2088 ldrh r0, [r4]
| |||||| 0x0802b196 08f00dfb bl gfx_drawtext_sub2
| |||||| 0x0802b19a 00a9 add r1, sp, 0
| |||||| 0x0802b19c 09f80100 strb.w r0, [sb, r1]
| |||||| 0x0802b1a0 19f10109 adds.w sb, sb, 1
| |||||| 0x0802b1a4 2088 ldrh r0, [r4]
| |||||| 0x0802b1a6 08f072fb bl gfx_drawtext_sub3
| |||||| 0x0802b1aa 00a9 add r1, sp, 0
| |||||| 0x0802b1ac 09f80100 strb.w r0, [sb, r1]
| |||||| 0x0802b1b0 19f10109 adds.w sb, sb, 1
| |||||| 0x0802b1b4 18f10108 adds.w r8, r8, 1
| |||`===< 0x0802b1b8 dbe7 b 0x802b172
| ||`----> 0x0802b1ba b845 cmp r8, r7
| || `==< 0x0802b1bc d1db blt 0x802b162
| ``---`-> 0x0802b1be 00a8 add r0, sp, 0
| 0x0802b1c0 0021 movs r1, 0
| 0x0802b1c2 09f80010 strb.w r1, [sb, r0]
| 0x0802b1c6 3200 movs r2, r6
| 0x0802b1c8 2900 movs r1, r5
| 0x0802b1ca 00a8 add r0, sp, 0
| 0x0802b1cc 00f003f8 bl gfx_drawtext_sub4
| 0x0802b1d0 25b0 add sp, 0x94
\ 0x0802b1d2 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) gfx_drawtext4 18
| Caller: display_idle_screen draw_zone_label draw_channel_label display_unprog_screen
| gfx_drawtext4 ();
| 0x0801dd1a 10b5 push {r4, lr}
| 0x0801dd1c 1c00 movs r4, r3
| 0x0801dd1e 029b ldr r3, [sp, 8]
| 0x0801dd20 09f002fd bl gfx_drawtext6
| 0x0801dd24 2000 movs r0, r4
| 0x0801dd26 fff7cbff bl gfx_clear3
\ 0x0801dd2a 10bd pop {r4, pc}
/ (fcn) gfx_drawtext5 16
| Caller: gfx_1d988
| gfx_drawtext5 ();
| 0x0801dd2c 10b5 push {r4, lr}
| 0x0801dd2e 1c00 movs r4, r3
| 0x0801dd30 09f047fd bl gfx_drawtext7
| 0x0801dd34 2000 movs r0, r4
| 0x0801dd36 fff7c3ff bl gfx_clear3
\ 0x0801dd3a 10bd pop {r4, pc}
/ (fcn) msg_convert 112
| Caller: func_16fe4 md380_menu_12670 func_16ca4 md380_menu_12900
| msg_convert ();
| 0x08027656 f0b5 push {r4, r5, r6, r7, lr}
| 0x08027658 85b0 sub sp, 0x14
| 0x0802765a 0022 movs r2, 0
| 0x0802765c 0124 movs r4, 1 ; 1
| 0x0802765e 0123 movs r3, 1 ; 1
| 0x08027660 0027 movs r7, 0
| 0x08027662 0025 movs r5, 0
| 0x08027664 0026 movs r6, 0
| ,=< 0x08027666 0be0 b 0x8027680
| .--> 0x08027668 f6b2 uxtb r6, r6
| || 0x0802766a 0df1000c add.w ip, sp, 0
| || 0x0802766e b1f800e0 ldrh.w lr, [r1]
| || 0x08027672 bef1300e subs.w lr, lr, 0x30
| || 0x08027676 2cf816e0 strh.w lr, [ip, r6, lsl 1]
| || 0x0802767a 891c adds r1, r1, 2
| || 0x0802767c 521c adds r2, r2, 1
| || 0x0802767e 761c adds r6, r6, 1
| |`-> 0x08027680 f6b2 uxtb r6, r6
| | 0x08027682 0a2e cmp r6, 0xa ; 10
| |,=< 0x08027684 04d2 bhs 0x8027690
| || 0x08027686 b1f800c0 ldrh.w ip, [r1]
| || 0x0802768a bcf1000f cmp.w ip, 0
| `==< 0x0802768e ebd1 bne 0x8027668
| `-> 0x08027690 0026 movs r6, 0
| ,=< 0x08027692 0be0 b 0x80276ac
| .--> 0x08027694 0a21 movs r1, 0xa ; 10
| || 0x08027696 4f43 muls r7, r1, r7
| || 0x08027698 641c adds r4, r4, 1
| .---> 0x0802769a e4b2 uxtb r4, r4
| ||| 0x0802769c d2b2 uxtb r2, r2
| ||| 0x0802769e 9442 cmp r4, r2
| |`==< 0x080276a0 f8d3 blo 0x8027694
| | | 0x080276a2 5b1c adds r3, r3, 1
| | | 0x080276a4 1c00 movs r4, r3
| | | 0x080276a6 7d19 adds r5, r7, r5
| | | 0x080276a8 0027 movs r7, 0
| | | 0x080276aa 761c adds r6, r6, 1
| | `-> 0x080276ac f6b2 uxtb r6, r6
| | 0x080276ae d2b2 uxtb r2, r2
| | 0x080276b0 9642 cmp r6, r2
| | ,=< 0x080276b2 05d2 bhs 0x80276c0
| | | 0x080276b4 f6b2 uxtb r6, r6
| | | 0x080276b6 00a9 add r1, sp, 0
| | | 0x080276b8 31f81610 ldrh.w r1, [r1, r6, lsl 1]
| | | 0x080276bc 0f43 orrs r7, r1
| `===< 0x080276be ece7 b 0x802769a
| `-> 0x080276c0 0560 str r5, [r0]
| 0x080276c2 05b0 add sp, 0x14
\ 0x080276c4 f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) gfx_drawtext6 154
| Caller: display_unprog_screen func_0c7e8 disp_something gfx_drawtext2 gfx_drawtext4
| update_scr_32
| gfx_drawtext6 ();
| 0x08027728 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x0802772c 86b0 sub sp, 0x18
| 0x0802772e 0600 movs r6, r0
| 0x08027730 0c00 movs r4, r1
| 0x08027732 1500 movs r5, r2
| 0x08027734 1f00 movs r7, r3
| 0x08027736 00a8 add r0, sp, 0
| 0x08027738 1421 movs r1, 0x14 ; 20
| 0x0802773a 0cf05ffa bl gfx_drawtext_sub1
| 0x0802773e 5ff00008 movs.w r8, 0
| ,=< 0x08027742 00e0 b 0x8027746
| .--> 0x08027744 b61c adds r6, r6, 2
| |`-> 0x08027746 3088 ldrh r0, [r6]
| | 0x08027748 0028 cmp r0, 0
| |,=< 0x0802774a 2ed0 beq 0x80277aa
| || 0x0802774c b8f1130f cmp.w r8, 0x13 ; 19
| ,===< 0x08027750 2bda bge 0x80277aa
| ||| 0x08027752 3088 ldrh r0, [r6]
| ||| 0x08027754 8028 cmp r0, 0x80 ; 128
| ,====< 0x08027756 10d3 blo 0x802777a
| |||| 0x08027758 3088 ldrh r0, [r6]
| |||| 0x0802775a 0cf02bf8 bl gfx_drawtext_sub2
| |||| 0x0802775e 00a9 add r1, sp, 0
| |||| 0x08027760 08f80100 strb.w r0, [r8, r1]
| |||| 0x08027764 18f10108 adds.w r8, r8, 1
| |||| 0x08027768 3088 ldrh r0, [r6]
| |||| 0x0802776a 0cf090f8 bl gfx_drawtext_sub3
| |||| 0x0802776e 00a9 add r1, sp, 0
| |||| 0x08027770 08f80100 strb.w r0, [r8, r1]
| |||| 0x08027774 18f10108 adds.w r8, r8, 1
| ,=====< 0x08027778 05e0 b 0x8027786
| |`----> 0x0802777a 00a8 add r0, sp, 0
| | ||| 0x0802777c 3188 ldrh r1, [r6]
| | ||| 0x0802777e 08f80010 strb.w r1, [r8, r0]
| | ||| 0x08027782 18f10108 adds.w r8, r8, 1
| `-----> 0x08027786 b845 cmp r8, r7
| |`==< 0x08027788 dcdb blt 0x8027744
| | | 0x0802778a b61c adds r6, r6, 2
| | | 0x0802778c 3088 ldrh r0, [r6]
| | | 0x0802778e 0028 cmp r0, 0
| |,==< 0x08027790 0bd0 beq 0x80277aa
| ||| 0x08027792 00a8 add r0, sp, 0
| ||| 0x08027794 2e21 movs r1, 0x2e ; '.' ; 46
| ||| 0x08027796 08f80010 strb.w r1, [r8, r0]
| ||| 0x0802779a 18f10108 adds.w r8, r8, 1
| ||| 0x0802779e 00a8 add r0, sp, 0
| ||| 0x080277a0 2e21 movs r1, 0x2e ; '.' ; 46
| ||| 0x080277a2 08f80010 strb.w r1, [r8, r0]
| ||| 0x080277a6 18f10108 adds.w r8, r8, 1
| ```-> 0x080277aa 00a8 add r0, sp, 0
| 0x080277ac 0021 movs r1, 0
| 0x080277ae 08f80010 strb.w r1, [r8, r0]
| 0x080277b2 2a00 movs r2, r5
| 0x080277b4 2100 movs r1, r4
| 0x080277b6 00a8 add r0, sp, 0
| 0x080277b8 00f003f8 bl gfx_drawtext7
| 0x080277bc 06b0 add sp, 0x18
\ 0x080277be bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) gfx_drawtext7 16
| Caller: gfx_1d988 gfx_drawtext5 gfx_drawtext6 menu_draw_something2
| gfx_drawtext7 ();
| 0x080277c2 80b5 push {r7, lr} ; [in] R0=string, R1=x, R2=y
| 0x080277c4 034b ldr r3, [0x080277d4] ; [0x80277d4:4]=0x2001da1c gfx_info
| 0x080277c6 5984 strh r1, [r3, 0x22] ; [r3+0x22] = gfx_info.xpos (uint16)
| 0x080277c8 0249 ldr r1, [0x080277d4] ; [0x80277d4:4]=0x2001da1c gfx_info
| 0x080277ca 8a84 strh r2, [r1, 0x24] ; [r1+0x24] = gfx_info.ypos (uint16)
| 0x080277cc 0ff0f8fb bl gfx_drawtext8 ; x and y now passed via gfx_info
\ 0x080277d0 01bd pop {r0, pc}
/ (fcn) gfx_drawtext8 378
| Caller: gfx_drawtext7
| gfx_drawtext8 ();
| 0x08036fc0 2de9fc47 push.w {r2, r3, r4, r5, r6, r7, r8, sb, sl, lr}
| 0x08036fc4 0700 movs r7, r0 ; [in] R0=string (char ptr)
| 0x08036fc6 5ff00008 movs.w r8, 0
| 0x08036fca 002f cmp r7, 0
| ,=< 0x08036fcc 00f0b380 beq.w 0x8037136 ; bail out if string ptr is NULL
| | 0x08036fd0 fcf761fe bl gfx_get_font_height ; returns R0 = height in pixels
| | 0x08036fd4 0400 movs r4, r0
| | 0x08036fd6 5948 ldr r0, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| | 0x08036fd8 b0f92250 ldrsh.w r5, [r0, 0x22] ; [r0+0x22] = gfx_info.xpos (uint16)
| | 0x08036fdc fcf73afe bl gfx_get_current_font_height ; retrieves some kind of height (12 or 16 pixels)
| | 0x08036fe0 0600 movs r6, r0
| | 0x08036fe2 5648 ldr r0, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| | 0x08036fe4 808c ldrh r0, [r0, 0x24] ; [r0+0x24] = gfx_info.ypos (uint16)
| | 0x08036fe6 801b subs r0, r0, r6 ; SUBTRACT something from current ypos ?
| | 0x08036fe8 5449 ldr r1, [0x0803713c] ; [0x803713c:4]=0x2001da1c gfx_info
| | 0x08036fea 8884 strh r0, [r1, 0x24] ; set [r1+36] = gfx_info.ypos
| | 0x08036fec 02e0 b 0x8036ff4
| .--> ;-- drawtext8.loop_for_all_chars:
| .--> 0x08036fee 7f1c adds r7, r7, 1 ; increment char ptr (not in 1st loop)
| || 0x08036ff0 18f10108 adds.w r8, r8, 1
| || 0x08036ff4 3878 ldrb r0, [r7] ; check_for_0_term
| || 0x08036ff6 0028 cmp r0, 0
| ,===< 0x08036ff8 00f09280 beq.w 0x8037120
| ||| 0x08036ffc 47f6ff71 movw r1, 0x7fff
| ||| 0x08037000 3800 movs r0, r7
| ||| 0x08037002 04f03bfb bl gfx_font_count_something ; [in] R0=char, [out] R0='something counted'
| ||| 0x08037006 8146 mov sb, r0 ; 'sb' is simply R9, nothing special about this
| ||| 0x08037008 4946 mov r1, sb
| ||| 0x0803700a 3800 movs r0, r7
| ||| 0x0803700c 04f057fb bl gfx_drawtext_sub7
| ||| 0x08037010 8246 mov sl, r0 ; 'sl' is simply R10, nothing special about that
| ||| 0x08037012 4a48 ldr r0, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| ||| 0x08037014 90f82c00 ldrb.w r0, [r0, 0x2c] ; [r0+0x2C] = gfx_info.what ?
| ||| 0x08037018 10f00300 ands r0, r0, 3
| ||| 0x0803701c c0b2 uxtb r0, r0
| ||| 0x0803701e 0128 cmp r0, 1 ; 1
| ,====< 0x08037020 05d0 beq 0x803702e
| |||| 0x08037022 0228 cmp r0, 2 ; 2
| ,=====< 0x08037024 05d1 bne 0x8037032
| ||||| 0x08037026 0220 movs r0, 2 ; 2
| ||||| 0x08037028 9afbf0f0 sdiv r0, sl, r0
| ,======< 0x0803702c 02e0 b 0x8037034
| ||`----> 0x0803702e 5046 mov r0, sl
| ||,====< 0x08037030 00e0 b 0x8037034
| |`-----> 0x08037032 0020 movs r0, 0
| `-`----> 0x08037034 4149 ldr r1, [0x0803713c] ; [0x803713c:4]=0x2001da1c gfx_info
| ||| 0x08037036 498c ldrh r1, [r1, 0x22] ; [r1+34] = gfx_info.xpos
| ||| 0x08037038 081a subs r0, r1, r0
| ||| 0x0803703a 4049 ldr r1, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| ||| 0x0803703c 4884 strh r0, [r1, 0x22]
| ||| 0x0803703e adf80000 strh.w r0, [sp]
| ||| 0x08037042 bdf80000 ldrh.w r0, [sp]
| ||| 0x08037046 1aeb0000 adds.w r0, sl, r0
| ||| 0x0803704a 401e subs r0, r0, 1
| ||| 0x0803704c adf80400 strh.w r0, [sp, 4]
| ||| 0x08037050 3a48 ldr r0, [0x0803713c] ; [0x803713c:4]=0x2001da1c gfx_info
| ||| 0x08037052 808c ldrh r0, [r0, 0x24] ; get [r0+36] = gfx_info.ypos
| ||| 0x08037054 adf80200 strh.w r0, [sp, 2]
| ||| 0x08037058 bdf80200 ldrh.w r0, [sp, 2]
| ||| 0x0803705c 2018 adds r0, r4, r0 ; temp2 += font_height_in_pixels ?
| ||| 0x0803705e 401e subs r0, r0, 1
| ||| 0x08037060 adf80600 strh.w r0, [sp, 6]
| ||| 0x08037064 00aa add r2, sp, 0
| ||| 0x08037066 4946 mov r1, sb
| ||| 0x08037068 3800 movs r0, r7
| ||| 0x0803706a 04f047fb bl gfx_drawtext_sub8
| ||| 0x0803706e 3348 ldr r0, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| ||| 0x08037070 bdf80210 ldrh.w r1, [sp, 2]
| ||| 0x08037074 8184 strh r1, [r0, 0x24] ; set [r0+36] = gfx_info.ypos
| ||| 0x08037076 4946 mov r1, sb
| ||| 0x08037078 3800 movs r0, r7
| ||| 0x0803707a 04f0d5fb bl gfx_drawtext_sub9
| ||| 0x0803707e c719 adds r7, r0, r7
| ||| 0x08037080 3878 ldrb r0, [r7]
| ||| 0x08037082 0a28 cmp r0, 0xa ; 10
| ,====< 0x08037084 02d0 beq 0x803708c
| |||| 0x08037086 3878 ldrb r0, [r7]
| |||| 0x08037088 0d28 cmp r0, 0xd ; 13
| ,=====< 0x0803708a 3fd1 bne 0x803710c
| |`----> 0x0803708c 2c48 ldr r0, [0x08037140] ; [0x8037140:4]=0x2001e878
| | ||| 0x0803708e 0078 ldrb r0, [r0]
| | ||| 0x08037090 0028 cmp r0, 0
| |,====< 0x08037092 21d0 beq 0x80370d8
| ||||| 0x08037094 7ff07f40 mvns r0, 0xff000000
| ||||| 0x08037098 e6f76af9 bl gfx_set_fg_color
| ||||| 0x0803709c 2748 ldr r0, [0x0803713c] ; [0x803713c:4]=0x2001da1c gfx_info
| ||||| 0x0803709e b0f92400 ldrsh.w r0, [r0, 0x24] ; get [r0+36] = gfx_info.ypos
| ||||| 0x080370a2 2318 adds r3, r4, r0
| ||||| 0x080370a4 9b22 movs r2, 0x9b ; 155
| ||||| 0x080370a6 2548 ldr r0, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| ||||| 0x080370a8 b0f92410 ldrsh.w r1, [r0, 0x24]
| ||||| 0x080370ac 2348 ldr r0, [0x0803713c] ; [0x803713c:4]=0x2001da1c gfx_info
| ||||| 0x080370ae b0f92200 ldrsh.w r0, [r0, 0x22] ; [r0+34] = gfx_info.xpos
| ||||| 0x080370b2 e6f7ebfb bl gfx_blockfill
| ||||| 0x080370b6 2148 ldr r0, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| ||||| 0x080370b8 b0f92400 ldrsh.w r0, [r0, 0x24]
| ||||| 0x080370bc 2018 adds r0, r4, r0
| ||||| 0x080370be 431c adds r3, r0, 1
| ||||| 0x080370c0 9b22 movs r2, 0x9b ; 155
| ||||| 0x080370c2 1e48 ldr r0, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| ||||| 0x080370c4 b0f92400 ldrsh.w r0, [r0, 0x24] ; [r0+36] = gfx_info.ypos
| ||||| 0x080370c8 2018 adds r0, r4, r0
| ||||| 0x080370ca 411c adds r1, r0, 1
| ||||| 0x080370cc 0020 movs r0, 0
| ||||| 0x080370ce e6f7ddfb bl gfx_blockfill
| ||||| 0x080370d2 0020 movs r0, 0
| ||||| 0x080370d4 e6f74cf9 bl gfx_set_fg_color
| |`----> 0x080370d8 1848 ldr r0, [0x0803713c] ; [0x803713c:4]=0x2001da1c gfx_info
| | ||| 0x080370da 90f82c00 ldrb.w r0, [r0, 0x2c]
| | ||| 0x080370de 10f00300 ands r0, r0, 3
| | ||| 0x080370e2 c0b2 uxtb r0, r0
| | ||| 0x080370e4 401e subs r0, r0, 1
| | ||| 0x080370e6 0128 cmp r0, 1 ; 1
| |,====< 0x080370e8 02d8 bhi 0x80370f0
| ||||| 0x080370ea 1448 ldr r0, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| ||||| 0x080370ec 4584 strh r5, [r0, 0x22] ; [r0+34] = gfx_info.xpos
| ||||| 0x080370ee 03e0 b 0x80370f8
| |`----> 0x080370f0 1248 ldr r0, [0x0803713c] ; [0x803713c:4]=0x2001da1c gfx_info
| | ||| 0x080370f2 1249 ldr r1, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| | ||| 0x080370f4 098c ldrh r1, [r1, 0x20]
| | ||| 0x080370f6 4184 strh r1, [r0, 0x22] ; [r0+34] = gfx_info.xpos
| | ||| 0x080370f8 3878 ldrb r0, [r7]
| | ||| 0x080370fa 0a28 cmp r0, 0xa ; 10
| |,====< 0x080370fc 0cd1 bne 0x8037118
| ||||| 0x080370fe 0f48 ldr r0, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| ||||| 0x08037100 808c ldrh r0, [r0, 0x24] ; [r0+36] = gfx_info.ypos
| ||||| 0x08037102 611c adds r1, r4, 1
| ||||| 0x08037104 0818 adds r0, r1, r0
| ||||| 0x08037106 0d49 ldr r1, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| ||||| 0x08037108 8884 strh r0, [r1, 0x24] ; set [r1+36] = gfx_info.ypos
| ||||| 0x0803710a 05e0 b 0x8037118
| `-----> 0x0803710c bdf80000 ldrh.w r0, [sp]
| |||| 0x08037110 1aeb0000 adds.w r0, sl, r0
| |||| 0x08037114 0949 ldr r1, [0x0803713c] ; [0x803713c:4]=0x2001da1c gfx_info
| |||| 0x08037116 4884 strh r0, [r1, 0x22] ; [r1+34] = gfx_info.xpos
| `----> 0x08037118 3878 ldrb r0, [r7] ; check_for_0_term_and_loop
| ||| 0x0803711a 0028 cmp r0, 0
| |`==< 0x0803711c 7ff467af bne.w drawtext8.loop_for_all_chars
| `---> 0x08037120 0648 ldr r0, [0x0803713c] ; [0x803713c:4]=0x2001da1c gfx_info
| | 0x08037122 808c ldrh r0, [r0, 0x24] ; [r0+36] = gfx_info.ypos
| | 0x08037124 3018 adds r0, r6, r0
| | 0x08037126 0549 ldr r1, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| | 0x08037128 8884 strh r0, [r1, 0x24]
| | 0x0803712a 0448 ldr r0, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| | 0x0803712c 808d ldrh r0, [r0, 0x2c]
| | 0x0803712e 30f00300 bics r0, r0, 3
| | 0x08037132 0249 ldr r1, [0x0803713e] ; [0x803713c:4]=0x2001da1c gfx_info
| | 0x08037134 8885 strh r0, [r1, 0x2c]
\ `-> 0x08037136 bde8f387 pop.w {r0, r1, r4, r5, r6, r7, r8, sb, sl, pc}
/ (fcn) gfx_drawtext9 110
| Caller: gfx_drawtext10
| gfx_drawtext9 ();
| 0x0802b0d4 f0b5 push {r4, r5, r6, r7, lr}
| 0x0802b0d6 a5b0 sub sp, 0x94
| 0x0802b0d8 0600 movs r6, r0
| 0x0802b0da 0c00 movs r4, r1
| 0x0802b0dc 1500 movs r5, r2
| 0x0802b0de 00a8 add r0, sp, 0
| 0x0802b0e0 9421 movs r1, 0x94 ; 148
| 0x0802b0e2 08f08bfd bl gfx_drawtext_sub1
| 0x0802b0e6 0027 movs r7, 0
| ,=< 0x0802b0e8 00e0 b 0x802b0ec
| .--> 0x0802b0ea b61c adds r6, r6, 2
| |`-> 0x0802b0ec 3088 ldrh r0, [r6]
| | 0x0802b0ee 0028 cmp r0, 0
| |,=< 0x0802b0f0 1dd0 beq 0x802b12e
| || 0x0802b0f2 3088 ldrh r0, [r6]
| || 0x0802b0f4 8028 cmp r0, 0x80 ; 128
| ,===< 0x0802b0f6 0cd3 blo 0x802b112
| ||| 0x0802b0f8 3088 ldrh r0, [r6]
| ||| 0x0802b0fa 08f05bfb bl gfx_drawtext_sub2
| ||| 0x0802b0fe 00a9 add r1, sp, 0
| ||| 0x0802b100 7854 strb r0, [r7, r1]
| ||| 0x0802b102 7f1c adds r7, r7, 1
| ||| 0x0802b104 3088 ldrh r0, [r6]
| ||| 0x0802b106 08f0c2fb bl gfx_drawtext_sub3
| ||| 0x0802b10a 00a9 add r1, sp, 0
| ||| 0x0802b10c 7854 strb r0, [r7, r1]
| ||| 0x0802b10e 7f1c adds r7, r7, 1
| ,====< 0x0802b110 03e0 b 0x802b11a
| |`---> 0x0802b112 00a8 add r0, sp, 0
| | || 0x0802b114 3188 ldrh r1, [r6]
| | || 0x0802b116 3954 strb r1, [r7, r0]
| | || 0x0802b118 7f1c adds r7, r7, 1
| `----> 0x0802b11a 8c2f cmp r7, 0x8c ; 140
| `==< 0x0802b11c e5db blt 0x802b0ea
| | 0x0802b11e 00a8 add r0, sp, 0
| | 0x0802b120 2e21 movs r1, 0x2e ; '.' ; 46
| | 0x0802b122 3954 strb r1, [r7, r0]
| | 0x0802b124 7f1c adds r7, r7, 1
| | 0x0802b126 00a8 add r0, sp, 0
| | 0x0802b128 2e21 movs r1, 0x2e ; '.' ; 46
| | 0x0802b12a 3954 strb r1, [r7, r0]
| | 0x0802b12c 7f1c adds r7, r7, 1
| `-> 0x0802b12e 00a8 add r0, sp, 0
| 0x0802b130 0021 movs r1, 0
| 0x0802b132 3954 strb r1, [r7, r0]
| 0x0802b134 2a00 movs r2, r5
| 0x0802b136 2100 movs r1, r4
| 0x0802b138 00a8 add r0, sp, 0
| 0x0802b13a 00f04cf8 bl gfx_drawtext_sub4
| 0x0802b13e 25b0 add sp, 0x94
\ 0x0802b140 f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) gfx_drawtext10 30
| Caller: F_4315 scr_mode_stable func_214fe func_21596_draw_something func_0c7e8
| DrawSomethingThenBitBangIO F_4154 update_scr_29 func_21646 menu_6_1_1
| func_215c2 func_215fc update_scr_30 update_scr_20 md380_f_4520
| gfx_drawtext10 ();
| 0x0800ded8 1cb5 push {r2, r3, r4, lr}
| 0x0800deda 049c ldr r4, [sp, 0x10]
| 0x0800dedc adf80010 strh.w r1, [sp]
| 0x0800dee0 adf80430 strh.w r3, [sp, 4]
| 0x0800dee4 adf80220 strh.w r2, [sp, 2]
| 0x0800dee8 adf80640 strh.w r4, [sp, 6]
| 0x0800deec 0e22 movs r2, 0xe ; 14
| 0x0800deee 00a9 add r1, sp, 0
| 0x0800def0 1df0f0f8 bl gfx_drawtext9
\ 0x0800def4 13bd pop {r0, r1, r4, pc}
/ (fcn) gfx_drawchar_unk 40
| Caller: gfx_1d988
| gfx_drawchar_unk ();
| 0x0801d960 38b5 push {r3, r4, r5, lr}
| 0x0801d962 0400 movs r4, r0
| 0x0801d964 2088 ldrh r0, [r4]
| 0x0801d966 8028 cmp r0, 0x80 ; 128
| ,=< 0x0801d968 09d3 blo 0x801d97e
| | 0x0801d96a 2088 ldrh r0, [r4]
| | 0x0801d96c 15f08fff bl gfx_drawtext_sub3
| | 0x0801d970 0500 movs r5, r0
| | 0x0801d972 2088 ldrh r0, [r4]
| | 0x0801d974 15f01eff bl gfx_drawtext_sub2
| | 0x0801d978 55ea0020 orrs.w r0, r5, r0, lsl 8
| ,==< 0x0801d97c 00e0 b 0x801d980
| |`-> 0x0801d97e 2088 ldrh r0, [r4]
| `--> 0x0801d980 80b2 uxth r0, r0
| 0x0801d982 16f015f9 bl gfx_drawchar_sub4
\ 0x0801d986 32bd pop {r1, r4, r5, pc}
/ (fcn) gfx_GetFontSizeY 8
| Caller: gfx_drawchar draw_some_bitmap_and_text
| gfx_GetFontSizeY ();
| 0x08036978 80b5 push {r7, lr}
| 0x0803697a 15f001f8 bl gfx__GetFontSizeY
\ 0x0803697e 02bd pop {r1, pc}
/ (fcn) gfx_drawchar_sub3 54
| Caller: font_method_3_of_3 gfx_drawchar
| gfx_drawchar_sub3 ();
| 0x08033c1e 10b5 push {r4, lr}
| 0x08033c20 0400 movs r4, r0
| 0x08033c22 a4b2 uxth r4, r4
| 0x08033c24 0a2c cmp r4, 0xa ; 10
| ,=< 0x08033c26 02d1 bne 0x8033c2e
| | 0x08033c28 fff7ecff bl gfx_newline
| ,==< 0x08033c2c 11e0 b 0x8033c52
| |`-> 0x08033c2e a4b2 uxth r4, r4
| | 0x08033c30 0d2c cmp r4, 0xd ; 13
| |,=< 0x08033c32 0ed0 beq 0x8033c52
| || 0x08033c34 2000 movs r0, r4
| || 0x08033c36 80b2 uxth r0, r0
| || 0x08033c38 1e49 ldr r1, [0x08033cb4] ; [0x8033cb4:4]=0x2001da1c gfx_info
| || 0x08033c3a 8969 ldr r1, [r1, 0x18] ; [r1+0x18] = gfx_info.font_pointer
| || 0x08033c3c 0968 ldr r1, [r1] ; 0x08033A8B (Thumb code), see gfx_font_norm
| || 0x08033c3e 8847 blx r1 ; calls font_method_called_via_hdr_offset0
| || 0x08033c40 1d48 ldr r0, [0x08033cb8] ; [0x8033cb8:4]=0x2001e5ac
| || 0x08033c42 0068 ldr r0, [r0]
| || 0x08033c44 0028 cmp r0, 0
| ,===< 0x08033c46 04d0 beq 0x8033c52
| ||| 0x08033c48 2000 movs r0, r4
| ||| 0x08033c4a 80b2 uxth r0, r0
| ||| 0x08033c4c 1a49 ldr r1, [0x08033cb8] ; [0x8033cb8:4]=0x2001e5ac
| ||| 0x08033c4e 0968 ldr r1, [r1]
| ||| 0x08033c50 8847 blx r1
\ ```-> 0x08033c52 10bd pop {r4, pc}
/ (fcn) font_method_called_via_hdr_offset0 246
| font_method_called_via_hdr_offset0 ();
| 0x08033a8a 2de9f041 push.w {r4, r5, r6, r7, r8, lr} ; called via BLX R1 from gfx_drawchar_sub3
| 0x08033a8e 86b0 sub sp, 0x18
| 0x08033a90 0400 movs r4, r0
| 0x08033a92 5148 ldr r0, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| 0x08033a94 b0f92a60 ldrsh.w r6, [r0, 0x2a]
| 0x08033a98 2100 movs r1, r4
| 0x08033a9a 89b2 uxth r1, r1
| 0x08033a9c 4e48 ldr r0, [0x08033bd8] ; [0x8033bd8:4]=0x2001da1c gfx_info
| 0x08033a9e 8069 ldr r0, [r0, 0x18] ; [r0+0x18] = gfx_info.font_pointer
| 0x08033aa0 8069 ldr r0, [r0, 0x18] ; [r0+0x18] begin of the font table ?
| 0x08033aa2 fff7e5ff bl find_char_in_font_table
| 0x08033aa6 0028 cmp r0, 0
| ,=< 0x08033aa8 67d0 beq 0x8033b7a
| | 0x08033aaa a4b2 uxth r4, r4
| | 0x08033aac 0188 ldrh r1, [r0]
| | 0x08033aae 611a subs r1, r4, r1
| | 0x08033ab0 4068 ldr r0, [r0, 4]
| | 0x08033ab2 10ebc104 adds.w r4, r0, r1, lsl 3
| | 0x08033ab6 a778 ldrb r7, [r4, 2]
| | 0x08033ab8 3000 movs r0, r6
| | 0x08033aba fff7b3f9 bl gfx_32e24
| | 0x08033abe 0500 movs r5, r0
| | 0x08033ac0 4548 ldr r0, [0x08033bd8] ; [0x8033bd8:4]=0x2001da1c gfx_info
| | 0x08033ac2 0590 str r0, [sp, 0x14]
| | 0x08033ac4 6068 ldr r0, [r4, 4]
| | 0x08033ac6 0490 str r0, [sp, 0x10]
| | 0x08033ac8 0397 str r7, [sp, 0xc]
| | 0x08033aca 0120 movs r0, 1 ; 1
| | 0x08033acc 0290 str r0, [sp, 8]
| | 0x08033ace 4248 ldr r0, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| | 0x08033ad0 8069 ldr r0, [r0, 0x18] ; [r0+24] = gfx_info.font_pointer
| | 0x08033ad2 c07d ldrb r0, [r0, 0x17]
| | 0x08033ad4 0190 str r0, [sp, 4]
| | 0x08033ad6 4048 ldr r0, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| | 0x08033ad8 8069 ldr r0, [r0, 0x18] ; [r0+24] = gfx_info.font_pointer
| | 0x08033ada 807d ldrb r0, [r0, 0x16]
| | 0x08033adc 0090 str r0, [sp]
| | 0x08033ade 3e48 ldr r0, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| | 0x08033ae0 8069 ldr r0, [r0, 0x18]
| | 0x08033ae2 037d ldrb r3, [r0, 0x14]
| | 0x08033ae4 2278 ldrb r2, [r4]
| | 0x08033ae6 3c48 ldr r0, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| | 0x08033ae8 b0f92410 ldrsh.w r1, [r0, 0x24] ; [r0+36] = gfx_info.ypos
| | 0x08033aec 3a48 ldr r0, [0x08033bd8] ; [0x8033bd8:4]=0x2001da1c gfx_info
| | 0x08033aee b0f92200 ldrsh.w r0, [r0, 0x22] ; [r0+34] = gfx_info.xpos
| | 0x08033af2 fff72dfa bl gfx_32f50
| | 0x08033af6 3848 ldr r0, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| | 0x08033af8 8069 ldr r0, [r0, 0x18] ; [r0+24] = gfx_info.font_pointer
| | 0x08033afa 007d ldrb r0, [r0, 0x14]
| | 0x08033afc 3649 ldr r1, [0x08033bd8] ; [0x8033bd8:4]=0x2001da1c gfx_info
| | 0x08033afe 8969 ldr r1, [r1, 0x18] ; [r0+24] = gfx_info.font_pointer
| | 0x08033b00 497d ldrb r1, [r1, 0x15]
| | 0x08033b02 8842 cmp r0, r1
| ,==< 0x08033b04 2bd2 bhs 0x8033b5e
| || 0x08033b06 3448 ldr r0, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| || 0x08033b08 8069 ldr r0, [r0, 0x18]
| || 0x08033b0a c07d ldrb r0, [r0, 0x17]
| || 0x08033b0c 3249 ldr r1, [0x08033bd8] ; [0x8033bd8:4]=0x2001da1c gfx_info
| || 0x08033b0e 8969 ldr r1, [r1, 0x18]
| || 0x08033b10 497d ldrb r1, [r1, 0x15]
| || 0x08033b12 00fb01f7 mul r7, r0, r1
| || 0x08033b16 3049 ldr r1, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| || 0x08033b18 8969 ldr r1, [r1, 0x18]
| || 0x08033b1a 097d ldrb r1, [r1, 0x14]
| || 0x08033b1c 00fb01f8 mul r8, r0, r1
| || 0x08033b20 022e cmp r6, 2 ; 2
| ,===< 0x08033b22 1cd0 beq 0x8033b5e
| ||| 0x08033b24 14f08dff bl gfx_48a42
| ||| 0x08033b28 0600 movs r6, r0
| ||| 0x08033b2a 14f084ff bl gfx_48a36
| ||| 0x08033b2e e9f71ffc bl gfx_set_fg_color
| ||| 0x08033b32 2948 ldr r0, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| ||| 0x08033b34 b0f92400 ldrsh.w r0, [r0, 0x24] ; [r0+36] = gfx_info.ypos
| ||| 0x08033b38 3b18 adds r3, r7, r0
| ||| 0x08033b3a 2748 ldr r0, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| ||| 0x08033b3c b0f92200 ldrsh.w r0, [r0, 0x22] ; [r0+34] = gfx_info.xpos
| ||| 0x08033b40 2178 ldrb r1, [r4]
| ||| 0x08033b42 0a18 adds r2, r1, r0
| ||| 0x08033b44 2448 ldr r0, [0x08033bd8] ; [0x8033bd8:4]=0x2001da1c gfx_info
| ||| 0x08033b46 b0f92400 ldrsh.w r0, [r0, 0x24]
| ||| 0x08033b4a 18eb0001 adds.w r1, r8, r0
| ||| 0x08033b4e 2248 ldr r0, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| ||| 0x08033b50 b0f92200 ldrsh.w r0, [r0, 0x22]
| ||| 0x08033b54 fff7d2f9 bl gfx_clipped_blockfill_maybe
| ||| 0x08033b58 3000 movs r0, r6
| ||| 0x08033b5a e9f709fc bl gfx_set_fg_color
| ``--> 0x08033b5e 2800 movs r0, r5
| | 0x08033b60 fff760f9 bl gfx_32e24
| | 0x08033b64 1c48 ldr r0, [0x08033bd8] ; [0x8033bd8:4]=0x2001da1c gfx_info
| | 0x08033b66 b0f92200 ldrsh.w r0, [r0, 0x22] ; [r0+34] = gfx_info.xpos
| | 0x08033b6a 2178 ldrb r1, [r4]
| | 0x08033b6c 1a4a ldr r2, [0x08033bd8] ; [0x8033bd8:4]=0x2001da1c gfx_info
| | 0x08033b6e 9269 ldr r2, [r2, 0x18] ; [r0+24] = gfx_info.font_pointer
| | 0x08033b70 927d ldrb r2, [r2, 0x16]
| | 0x08033b72 5143 muls r1, r2, r1
| | 0x08033b74 0818 adds r0, r1, r0
| | 0x08033b76 1849 ldr r1, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| | 0x08033b78 4884 strh r0, [r1, 0x22] ; [r1+34] = gfx_info.xpos
| `-> 0x08033b7a 06b0 add sp, 0x18
\ 0x08033b7c bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) find_char_in_font_table 26
| Caller: font_method_called_via_hdr_offset0 font_method_called_via_hdr_offset4 gfx_drawchar_sub4
| find_char_in_font_table ();
| 0x08033a70 00e0 b 0x8033a74 ; [in] R0 = linked list with char-codes and font bitmaps ?
| ..-> 0x08033a72 8068 ldr r0, [r0, 8]
| || 0x08033a74 0028 cmp r0, 0
| ,===< 0x08033a76 07d0 beq 0x8033a88 ; Zero = end of a linked list ?
| ||| 0x08033a78 0288 ldrh r2, [r0]
| ||| 0x08033a7a 89b2 uxth r1, r1 ; [in] R1 = character code ?
| ||| 0x08033a7c 9142 cmp r1, r2
| |`==< 0x08033a7e f8d3 blo 0x8033a72 ; still lower, keep on searching
| | | 0x08033a80 4288 ldrh r2, [r0, 2]
| | | 0x08033a82 89b2 uxth r1, r1
| | | 0x08033a84 8a42 cmp r2, r1
| | `=< 0x08033a86 f4d3 blo 0x8033a72
\ `---> 0x08033a88 7047 bx lr ; returns non-NULL when successfull ?
/ (fcn) font_method_called_via_hdr_offset4 48
| font_method_called_via_hdr_offset4 ();
| 0x08033b80 10b5 push {r4, lr} ; called via BLX R1 from gfx_call_font_method_via_hdr_offset4
| 0x08033b82 0400 movs r4, r0
| 0x08033b84 2100 movs r1, r4
| 0x08033b86 89b2 uxth r1, r1
| 0x08033b88 1348 ldr r0, [0x08033bd8] ; [0x8033bd8:4]=0x2001da1c gfx_info
| 0x08033b8a 8069 ldr r0, [r0, 0x18] ; [r0+0x18] = gfx_info.font_pointer
| 0x08033b8c 8069 ldr r0, [r0, 0x18] ; [r0+0x18] begin of the font table ?
| 0x08033b8e fff76fff bl find_char_in_font_table
| 0x08033b92 0028 cmp r0, 0
| ,=< 0x08033b94 0ad0 beq 0x8033bac
| | 0x08033b96 a4b2 uxth r4, r4
| | 0x08033b98 0188 ldrh r1, [r0]
| | 0x08033b9a 611a subs r1, r4, r1
| | 0x08033b9c 4068 ldr r0, [r0, 4]
| | 0x08033b9e 10f83100 ldrb.w r0, [r0, r1, lsl 3]
| | 0x08033ba2 0d49 ldr r1, [0x08033bda] ; [0x8033bd8:4]=0x2001da1c gfx_info
| | 0x08033ba4 8969 ldr r1, [r1, 0x18]
| | 0x08033ba6 897d ldrb r1, [r1, 0x16]
| | 0x08033ba8 4843 muls r0, r1, r0
| ,==< 0x08033baa 00e0 b 0x8033bae
| |`-> 0x08033bac 0020 movs r0, 0
\ `--> 0x08033bae 10bd pop {r4, pc}
/ (fcn) gfx_drawchar_sub4 40
| Caller: gfx_drawchar_unk
| gfx_drawchar_sub4 ();
| 0x08033bb0 10b5 push {r4, lr}
| 0x08033bb2 0400 movs r4, r0 ; [in] R0=character code (really?)
| 0x08033bb4 2100 movs r1, r4
| 0x08033bb6 89b2 uxth r1, r1
| 0x08033bb8 0748 ldr r0, [0x08033bd8] ; [0x8033bd8:4]=0x2001da1c gfx_info
| 0x08033bba 8069 ldr r0, [r0, 0x18] ; [r0+0x18] = gfx_info.font_pointer
| 0x08033bbc 8069 ldr r0, [r0, 0x18] ; [r0+0x18] begin of the font table ?
| 0x08033bbe fff757ff bl find_char_in_font_table ; [in] R1=char, R0= font table
| 0x08033bc2 0028 cmp r0, 0
| ,=< 0x08033bc4 06d0 beq 0x8033bd4
| | 0x08033bc6 a4b2 uxth r4, r4
| | 0x08033bc8 0188 ldrh r1, [r0]
| | 0x08033bca 611a subs r1, r4, r1
| | 0x08033bcc 4068 ldr r0, [r0, 4]
| | 0x08033bce 10f83100 ldrb.w r0, [r0, r1, lsl 3]
| ,==< 0x08033bd2 00e0 b 0x8033bd6
| |`-> 0x08033bd4 0020 movs r0, 0
\ `--> 0x08033bd6 10bd pop {r4, pc}
/ (fcn) draw_zone_channel 428
| Caller: display_idle_screen scr_mode_stable
| draw_zone_channel ();
| 0x0800e538 10b5 push {r4, lr}
| 0x0800e53a 82b0 sub sp, 8
| 0x0800e53c dff80806 ldr.w r0, [0x0800eb4c] ; [0x800eb4c:4]=0x2001e87a
| 0x0800e540 13f098f9 bl gfx_select_font
| 0x0800e544 0020 movs r0, 0
| 0x0800e546 0ef013ff bl gfx_set_fg_color
| 0x0800e54a dff8f005 ldr.w r0, [0x0800eb42] ; [0x800eb40:4]=0x2001e600 q_struct_1
| 0x0800e54e 0ef00bff bl gfx_set_bg_color
| 0x0800e552 dff82806 ldr.w r0, [0x0800eb82] ; [0x800eb80:4]=0x2001e95e
| 0x0800e556 c07d ldrb r0, [r0, 0x17]
| 0x0800e558 ff28 cmp r0, 0xff ; 255
| ,=< 0x0800e55a 60d1 bne 0x800e61e
| | 0x0800e55c dff82006 ldr.w r0, [0x0800eb84] ; [0x800eb84:4]=0x2001e93e
| | 0x0800e560 0078 ldrb r0, [r0]
| | 0x0800e562 0c28 cmp r0, 0xc ; 12
| ,==< 0x0800e564 42d3 blo 0x800e5ec
| || 0x0800e566 dff81c06 ldr.w r0, [0x0800eb8a] ; [0x800eb88:4]=0x2001e95d
| || 0x0800e56a 0078 ldrb r0, [r0]
| || 0x0800e56c 411c adds r1, r0, 1
| || 0x0800e56e dff81426 ldr.w r2, [0x0800eb8a] ; [0x800eb88:4]=0x2001e95d
| || 0x0800e572 1170 strb r1, [r2]
| || 0x0800e574 c0b2 uxtb r0, r0
| || 0x0800e576 0528 cmp r0, 5 ; 5
| ,===< 0x0800e578 04d3 blo 0x800e584
| ||| 0x0800e57a dff80c06 ldr.w r0, [0x0800eb8e] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| ||| 0x0800e57e 0078 ldrb r0, [r0]
| ||| 0x0800e580 0128 cmp r0, 1 ; 1
| ,====< 0x0800e582 0ed1 bne 0x800e5a2
| |`---> 0x0800e584 dff8fc05 ldr.w r0, [0x0800eb88] ; [0x800eb88:4]=0x2001e95d
| | || 0x0800e588 0078 ldrb r0, [r0]
| | || 0x0800e58a 1e28 cmp r0, 0x1e ; 30
| |,===< 0x0800e58c 04d3 blo 0x800e598
| |||| 0x0800e58e dff8f805 ldr.w r0, [0x0800eb8e] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| |||| 0x0800e592 0078 ldrb r0, [r0]
| |||| 0x0800e594 0128 cmp r0, 1 ; 1
| ,=====< 0x0800e596 04d0 beq 0x800e5a2
| ||`---> 0x0800e598 dff8ec05 ldr.w r0, [0x0800eb8c] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| || || 0x0800e59c 0078 ldrb r0, [r0]
| || || 0x0800e59e 0028 cmp r0, 0
| ||,===< 0x0800e5a0 4ad1 bne 0x800e638
| ``----> 0x0800e5a2 0b20 movs r0, 0xb ; 11
| ||| 0x0800e5a4 0090 str r0, [sp]
| ||| ;-- draw_channel_label:
| ||| 0x0800e5a6 9d23 movs r3, 0x9d ; 157
| ||| 0x0800e5a8 2222 movs r2, 0x22 ; '"' ; 34
| ||| 0x0800e5aa 2d21 movs r1, 0x2d ; '-' ; 45
| ||| 0x0800e5ac dff8d805 ldr.w r0, [0x0800eb8c] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| ||| 0x0800e5b0 0078 ldrb r0, [r0]
| ||| 0x0800e5b2 dff8d845 ldr.w r4, [0x0800eb92] ; [0x800eb90:4]=0x2001e95c
| ||| 0x0800e5b6 14eb4000 adds.w r0, r4, r0, lsl 1
| ||| 0x0800e5ba 0ff0aefb bl gfx_drawtext4
| ||| 0x0800e5be dff8c805 ldr.w r0, [0x0800eb8e] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| ||| 0x0800e5c2 0078 ldrb r0, [r0]
| ||| 0x0800e5c4 411c adds r1, r0, 1
| ||| 0x0800e5c6 dff8c025 ldr.w r2, [0x0800eb8e] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| ||| 0x0800e5ca 1170 strb r1, [r2]
| ||| 0x0800e5cc dff8c015 ldr.w r1, [0x0800eb94] ; [0x800eb94:4]=0x2001de98
| ||| 0x0800e5d0 0978 ldrb r1, [r1]
| ||| 0x0800e5d2 491e subs r1, r1, 1
| ||| 0x0800e5d4 c0b2 uxtb r0, r0
| ||| 0x0800e5d6 8142 cmp r1, r0
| ,====< 0x0800e5d8 03da bge 0x800e5e2
| |||| 0x0800e5da dff8ac05 ldr.w r0, [0x0800eb8e] ; [0x800eb8c:4]=0x2001e1f4 channel_name
| |||| 0x0800e5de 0021 movs r1, 0
| |||| 0x0800e5e0 0170 strb r1, [r0]
| `----> 0x0800e5e2 dff8a005 ldr.w r0, [0x0800eb8a] ; [0x800eb88:4]=0x2001e95d
| ||| 0x0800e5e6 0021 movs r1, 0
| ||| 0x0800e5e8 0170 strb r1, [r0]
| ,====< 0x0800e5ea 25e0 b 0x800e638
| ||`--> 0x0800e5ec dff88405 ldr.w r0, [0x0800eb78] ; [0x800eb78:4]=0x2001e8b8 some_state_var
| || | 0x0800e5f0 0078 ldrb r0, [r0]
| || | 0x0800e5f2 0228 cmp r0, 2 ; 2
| ||,==< 0x0800e5f4 09d1 bne 0x800e60a
| |||| 0x0800e5f6 0c20 movs r0, 0xc ; 12
| |||| 0x0800e5f8 0090 str r0, [sp]
| |||| 0x0800e5fa 9d23 movs r3, 0x9d ; 157
| |||| 0x0800e5fc 2222 movs r2, 0x22 ; '"' ; 34
| |||| 0x0800e5fe 2d21 movs r1, 0x2d ; '-' ; 45
| |||| 0x0800e600 dff89005 ldr.w r0, [menu_dispatcher] ; [0x800eb98:4]=0xb085b530
| |||| 0x0800e604 0ff089fb bl gfx_drawtext4
| ,=====< 0x0800e608 16e0 b 0x800e638
| |||`--> 0x0800e60a 0c20 movs r0, 0xc ; 12
| ||| | 0x0800e60c 0090 str r0, [sp]
| ||| | 0x0800e60e 9d23 movs r3, 0x9d ; 157
| ||| | 0x0800e610 2222 movs r2, 0x22 ; '"' ; 34
| ||| | 0x0800e612 2d21 movs r1, 0x2d ; '-' ; 45
| ||| | 0x0800e614 dff8980c ldr.w r0, [0x0800f2b4] ; [0x800f2b4:4]=0x2001e0d0 print_buffer
| ||| | 0x0800e618 0ff07ffb bl gfx_drawtext4
| |||,==< 0x0800e61c 0ce0 b 0x800e638
| ||||`-> 0x0800e61e dff8940c ldr.w r0, [0x0800f2ba] ; [0x800f2b8:4]=0x2001e95b
| |||| 0x0800e622 fff747ff bl something_with_radio_config_and_channel_info
| |||| 0x0800e626 dff88c0c ldr.w r0, [0x0800f2ba] ; [0x800f2b8:4]=0x2001e95b
| |||| 0x0800e62a 0c21 movs r1, 0xc ; 12
| |||| 0x0800e62c 0091 str r1, [sp]
| |||| 0x0800e62e 9d23 movs r3, 0x9d ; 157
| |||| 0x0800e630 2222 movs r2, 0x22 ; '"' ; 34
| |||| 0x0800e632 2d21 movs r1, 0x2d ; '-' ; 45
| |||| 0x0800e634 0ff071fb bl gfx_drawtext4
| ````--> 0x0800e638 dff87c0c ldr.w r0, [0x0800f2bc] ; [0x800f2bc:4]=0x2001e93d
| 0x0800e63c 0078 ldrb r0, [r0]
| 0x0800e63e 0728 cmp r0, 7 ; 7
| ,=< 0x0800e640 41d3 blo 0x800e6c6
| | 0x0800e642 dff8780c ldr.w r0, [0x0800f2c2] ; [0x800f2c0:4]=0x2001e95a
| | 0x0800e646 0078 ldrb r0, [r0]
| | 0x0800e648 411c adds r1, r0, 1
| | 0x0800e64a dff8702c ldr.w r2, [0x0800f2c2] ; [0x800f2c0:4]=0x2001e95a
| | 0x0800e64e 1170 strb r1, [r2]
| | 0x0800e650 c0b2 uxtb r0, r0
| | 0x0800e652 0528 cmp r0, 5 ; 5
| ,==< 0x0800e654 04d3 blo 0x800e660
| || 0x0800e656 dff8680c ldr.w r0, [0x0800f2c6] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| || 0x0800e65a 0078 ldrb r0, [r0]
| || 0x0800e65c 0128 cmp r0, 1 ; 1
| ,===< 0x0800e65e 0ed1 bne 0x800e67e
| |`--> 0x0800e660 dff8580c ldr.w r0, [0x0800f2c0] ; [0x800f2c0:4]=0x2001e95a
| | | 0x0800e664 0078 ldrb r0, [r0]
| | | 0x0800e666 1e28 cmp r0, 0x1e ; 30
| |,==< 0x0800e668 04d3 blo 0x800e674
| ||| 0x0800e66a dff8540c ldr.w r0, [0x0800f2c6] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| ||| 0x0800e66e 0078 ldrb r0, [r0]
| ||| 0x0800e670 0128 cmp r0, 1 ; 1
| ,====< 0x0800e672 04d0 beq 0x800e67e
| ||`--> 0x0800e674 dff8480c ldr.w r0, [0x0800f2c4] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| || | 0x0800e678 0078 ldrb r0, [r0]
| || | 0x0800e67a 0028 cmp r0, 0
| ||,==< 0x0800e67c 23d1 bne 0x800e6c6
| ``---> 0x0800e67e 0620 movs r0, 6 ; 6
| || 0x0800e680 0090 str r0, [sp]
| || ;-- draw_zone_label:
| || 0x0800e682 6823 movs r3, 0x68 ; 'h' ; 104
| || 0x0800e684 4b22 movs r2, 0x4b ; 'K' ; 75
| || 0x0800e686 2221 movs r1, 0x22 ; '"' ; 34
| || 0x0800e688 dff8340c ldr.w r0, [0x0800f2c4] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| || 0x0800e68c 0078 ldrb r0, [r0]
| || 0x0800e68e dff8344c ldr.w r4, [0x0800f2ca] ; [0x800f2c8:4]=0x2001e959
| || 0x0800e692 14eb4000 adds.w r0, r4, r0, lsl 1
| || 0x0800e696 0ff040fb bl gfx_drawtext4
| || 0x0800e69a dff8240c ldr.w r0, [0x0800f2c6] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| || 0x0800e69e 0078 ldrb r0, [r0]
| || 0x0800e6a0 411c adds r1, r0, 1
| || 0x0800e6a2 dff81c2c ldr.w r2, [0x0800f2c6] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| || 0x0800e6a6 1170 strb r1, [r2]
| || 0x0800e6a8 dff81c1c ldr.w r1, [0x0800f2cc] ; [0x800f2cc:4]=0x40020c00 io_GPIOD
| || 0x0800e6ac 0978 ldrb r1, [r1]
| || 0x0800e6ae 491e subs r1, r1, 1
| || 0x0800e6b0 c0b2 uxtb r0, r0
| || 0x0800e6b2 8142 cmp r1, r0
| ,===< 0x0800e6b4 03da bge 0x800e6be
| ||| 0x0800e6b6 dff8080c ldr.w r0, [0x0800f2c6] ; [0x800f2c4:4]=0x2001e218 zone_data_64byte
| ||| 0x0800e6ba 0021 movs r1, 0
| ||| 0x0800e6bc 0170 strb r1, [r0]
| `---> 0x0800e6be dff8fc0b ldr.w r0, [0x0800f2c2] ; [0x800f2c0:4]=0x2001e95a
| || 0x0800e6c2 0021 movs r1, 0
| || 0x0800e6c4 0170 strb r1, [r0]
| ``-> 0x0800e6c6 7ff07f40 mvns r0, 0xff000000
| 0x0800e6ca 0ef04dfe bl gfx_set_bg_color
| 0x0800e6ce 7ff07f40 mvns r0, 0xff000000
| 0x0800e6d2 0ef04dfe bl gfx_set_fg_color
| 0x0800e6d6 6e23 movs r3, 0x6e ; 'n' ; 110
| 0x0800e6d8 9f22 movs r2, 0x9f ; 159
| 0x0800e6da 1021 movs r1, 0x10 ; 16
| 0x0800e6dc 9e20 movs r0, 0x9e ; 158
| 0x0800e6de 0ff0d5f8 bl gfx_blockfill
\ 0x0800e6e2 13bd pop {r0, r1, r4, pc}
/ (fcn) gfx_call_font_method_via_hdr_offset4 14
| Caller: gfx_drawchar font_method_1_of_3 gfx_drawtext_sub7
| gfx_call_font_method_via_hdr_offset4 ();
| 0x08033ca6 80b5 push {r7, lr} ; [in] R0 = character code (16 bit)
| 0x08033ca8 80b2 uxth r0, r0
| 0x08033caa 0249 ldr r1, [0x08033cb6] ; [0x8033cb4:4]=0x2001da1c gfx_info
| 0x08033cac 8969 ldr r1, [r1, 0x18] ; [r1+0x18] = gfx_info.font_pointer
| 0x08033cae 4968 ldr r1, [r1, 4] ; 0x08033B81 (Thumb code), see gfx_font_norm
| 0x08033cb0 8847 blx r1 ; calls font_method_called_via_hdr_offset4
\ 0x08033cb2 02bd pop {r1, pc}
/ (fcn) gfx_set_ypos 8
| Caller: func_33cd0
| gfx_set_ypos ();
| 0x08033cbc 0349 ldr r1, [0x08033ccc] ; [0x8033ccc:4]=0x2001da1c gfx_info
| 0x08033cbe 8884 strh r0, [r1, 0x24] ; set [r1+36] = gfx_info.ypos
| 0x08033cc0 0020 movs r0, 0
\ 0x08033cc2 7047 bx lr
/ (fcn) gfx_set_xpos 8
| Caller: func_33cd0
| gfx_set_xpos ();
| 0x08033cc4 0149 ldr r1, [0x08033ccc] ; [0x8033ccc:4]=0x2001da1c gfx_info
| 0x08033cc6 4884 strh r0, [r1, 0x22] ; [r1+34] = gfx_info.xpos
| 0x08033cc8 0020 movs r0, 0
\ 0x08033cca 7047 bx lr
/ (fcn) gfx_setcolor_sub1 12
| Caller: gfx_set_fg_color2 func_55408_gfx gfx_set_bg_color2 func_36f4c
| gfx_setcolor_sub1 ();
| 0x080331b0 80b5 push {r7, lr}
| 0x080331b2 1149 ldr r1, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| 0x080331b4 896c ldr r1, [r1, 0x48]
| 0x080331b6 0968 ldr r1, [r1]
| 0x080331b8 8847 blx r1
\ 0x080331ba 02bd pop {r1, pc}
/ (fcn) gfx_drawtext_sub2 218
| Caller: gfx_1d988 func_33ce8 gfx_drawchar_unk gfx_drawtext9 func_27ef0 gfx_drawtext3
| gfx_drawtext6
| gfx_drawtext_sub2 ();
| 0x080337b4 80b2 uxth r0, r0
| 0x080337b6 0100 movs r1, r0
| 0x080337b8 42f21802 movw r2, 0x2018
| 0x080337bc 891a subs r1, r1, r2
| ,=< 0x080337be 39d0 beq 0x8033834
| | 0x080337c0 491e subs r1, r1, 1
| ,==< 0x080337c2 3ad0 beq 0x803383a
| || 0x080337c4 c91e subs r1, r1, 3
| ,===< 0x080337c6 3bd0 beq 0x8033840
| ||| 0x080337c8 491e subs r1, r1, 1
| ,====< 0x080337ca 3cd0 beq 0x8033846
| |||| 0x080337cc 40f6e472 movw r2, 0xfe4 ; 4068
| |||| 0x080337d0 891a subs r1, r1, r2
| ,=====< 0x080337d2 20d0 beq 0x8033816
| ||||| 0x080337d4 491e subs r1, r1, 1
| ,======< 0x080337d6 1bd0 beq 0x8033810
| |||||| 0x080337d8 0839 subs r1, 8
| ,=======< 0x080337da 43d0 beq 0x8033864
| ||||||| 0x080337dc 491e subs r1, r1, 1
| ========< 0x080337de 44d0 beq 0x803386a
| ||||||| 0x080337e0 491f subs r1, r1, 5
| ========< 0x080337e2 39d0 beq 0x8033858
| ||||||| 0x080337e4 491e subs r1, r1, 1
| ========< 0x080337e6 3ad0 beq 0x803385e
| ||||||| 0x080337e8 4cf6f062 movw r2, 0xcef0
| ||||||| 0x080337ec 891a subs r1, r1, r2
| ========< 0x080337ee 18d0 beq 0x8033822
| ||||||| 0x080337f0 c91f subs r1, r1, 7
| ========< 0x080337f2 2bd0 beq 0x803384c
| ||||||| 0x080337f4 491e subs r1, r1, 1
| ========< 0x080337f6 2cd0 beq 0x8033852
| ||||||| 0x080337f8 c91e subs r1, r1, 3
| ========< 0x080337fa 06d0 beq 0x803380a
| ||||||| 0x080337fc 0e39 subs r1, 0xe
| ========< 0x080337fe 13d0 beq 0x8033828
| ||||||| 0x08033800 491e subs r1, r1, 1
| ========< 0x08033802 14d0 beq 0x803382e
| ||||||| 0x08033804 091f subs r1, r1, 4
| ========< 0x08033806 09d0 beq 0x803381c
| ========< 0x08033808 32e0 b 0x8033870
| --------> 0x0803380a a320 movs r0, 0xa3 ; 163
| ||||||| 0x0803380c c0b2 uxtb r0, r0
| ========< 0x0803380e 3de0 b 0x803388c
| |`------> 0x08033810 a120 movs r0, 0xa1 ; 161
| | ||||| 0x08033812 c0b2 uxtb r0, r0
| |,======< 0x08033814 3ae0 b 0x803388c
| ||`-----> 0x08033816 a120 movs r0, 0xa1 ; 161
| || |||| 0x08033818 c0b2 uxtb r0, r0
| ||,=====< 0x0803381a 37e0 b 0x803388c
| --------> 0x0803381c a320 movs r0, 0xa3 ; 163
| ||||||| 0x0803381e c0b2 uxtb r0, r0
| ========< 0x08033820 34e0 b 0x803388c
| --------> 0x08033822 a320 movs r0, 0xa3 ; 163
| ||||||| 0x08033824 c0b2 uxtb r0, r0
| ========< 0x08033826 31e0 b 0x803388c
| --------> 0x08033828 a320 movs r0, 0xa3 ; 163
| ||||||| 0x0803382a c0b2 uxtb r0, r0
| ========< 0x0803382c 2ee0 b 0x803388c
| --------> 0x0803382e a320 movs r0, 0xa3 ; 163
| ||||||| 0x08033830 c0b2 uxtb r0, r0
| ========< 0x08033832 2be0 b 0x803388c
| ||||||`-> 0x08033834 a120 movs r0, 0xa1 ; 161
| |||||| 0x08033836 c0b2 uxtb r0, r0
| ||||||,=< 0x08033838 28e0 b 0x803388c
| |||||`--> 0x0803383a a120 movs r0, 0xa1 ; 161
| ||||| | 0x0803383c c0b2 uxtb r0, r0
| |||||,==< 0x0803383e 25e0 b 0x803388c
| ||||`---> 0x08033840 a120 movs r0, 0xa1 ; 161
| |||| || 0x08033842 c0b2 uxtb r0, r0
| ||||,===< 0x08033844 22e0 b 0x803388c
| |||`----> 0x08033846 a120 movs r0, 0xa1 ; 161
| ||| ||| 0x08033848 c0b2 uxtb r0, r0
| |||,====< 0x0803384a 1fe0 b 0x803388c
| --------> 0x0803384c a320 movs r0, 0xa3 ; 163
| ||||||| 0x0803384e c0b2 uxtb r0, r0
| ========< 0x08033850 1ce0 b 0x803388c
| --------> 0x08033852 a320 movs r0, 0xa3 ; 163
| ||||||| 0x08033854 c0b2 uxtb r0, r0
| ========< 0x08033856 19e0 b 0x803388c
| --------> 0x08033858 a120 movs r0, 0xa1 ; 161
| ||||||| 0x0803385a c0b2 uxtb r0, r0
| ========< 0x0803385c 16e0 b 0x803388c
| --------> 0x0803385e a120 movs r0, 0xa1 ; 161
| ||||||| 0x08033860 c0b2 uxtb r0, r0
| ========< 0x08033862 13e0 b 0x803388c
| `-------> 0x08033864 a120 movs r0, 0xa1 ; 161
| |||||| 0x08033866 c0b2 uxtb r0, r0
| ,=======< 0x08033868 10e0 b 0x803388c
| --------> 0x0803386a a120 movs r0, 0xa1 ; 161
| ||||||| 0x0803386c c0b2 uxtb r0, r0
| ========< 0x0803386e 0de0 b 0x803388c
| --------> 0x08033870 80b2 uxth r0, r0
| ||||||| 0x08033872 b0f59c4f cmp.w r0, 0x4e00
| ========< 0x08033876 07d3 blo 0x8033888
| ||||||| 0x08033878 80b2 uxth r0, r0
| ||||||| 0x0803387a 7b49 ldr r1, [0x08033a6a] ; [0x8033a68:4]=0x807df68
| ||||||| 0x0803387c 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x08033880 b0f51c40 subs.w r0, r0, 0x9c00
| ||||||| 0x08033884 0078 ldrb r0, [r0]
| ========< 0x08033886 00e0 b 0x803388a
| --------> 0x08033888 a320 movs r0, 0xa3 ; 163
| --------> 0x0803388a c0b2 uxtb r0, r0
\ ```````-> 0x0803388c 7047 bx lr
/ (fcn) gfx_drawtext_sub3 216
| Caller: gfx_1d988 func_33ce8 gfx_drawchar_unk gfx_drawtext9 func_27ef0 gfx_drawtext3
| gfx_drawtext6
| gfx_drawtext_sub3 ();
| 0x0803388e 80b2 uxth r0, r0
| 0x08033890 0100 movs r1, r0
| 0x08033892 42f21802 movw r2, 0x2018
| 0x08033896 891a subs r1, r1, r2
| ,=< 0x08033898 39d0 beq 0x803390e
| | 0x0803389a 491e subs r1, r1, 1
| ,==< 0x0803389c 3ad0 beq 0x8033914
| || 0x0803389e c91e subs r1, r1, 3
| ,===< 0x080338a0 3bd0 beq 0x803391a
| ||| 0x080338a2 491e subs r1, r1, 1
| ,====< 0x080338a4 3cd0 beq 0x8033920
| |||| 0x080338a6 40f6e472 movw r2, 0xfe4 ; 4068
| |||| 0x080338aa 891a subs r1, r1, r2
| ,=====< 0x080338ac 20d0 beq 0x80338f0
| ||||| 0x080338ae 491e subs r1, r1, 1
| ,======< 0x080338b0 1bd0 beq 0x80338ea
| |||||| 0x080338b2 0839 subs r1, 8
| ,=======< 0x080338b4 43d0 beq 0x803393e
| ||||||| 0x080338b6 491e subs r1, r1, 1
| ========< 0x080338b8 44d0 beq 0x8033944
| ||||||| 0x080338ba 491f subs r1, r1, 5
| ========< 0x080338bc 39d0 beq 0x8033932
| ||||||| 0x080338be 491e subs r1, r1, 1
| ========< 0x080338c0 3ad0 beq 0x8033938
| ||||||| 0x080338c2 4cf6f062 movw r2, 0xcef0
| ||||||| 0x080338c6 891a subs r1, r1, r2
| ========< 0x080338c8 18d0 beq 0x80338fc
| ||||||| 0x080338ca c91f subs r1, r1, 7
| ========< 0x080338cc 2bd0 beq 0x8033926
| ||||||| 0x080338ce 491e subs r1, r1, 1
| ========< 0x080338d0 2cd0 beq 0x803392c
| ||||||| 0x080338d2 c91e subs r1, r1, 3
| ========< 0x080338d4 06d0 beq 0x80338e4
| ||||||| 0x080338d6 0e39 subs r1, 0xe
| ========< 0x080338d8 13d0 beq 0x8033902
| ||||||| 0x080338da 491e subs r1, r1, 1
| ========< 0x080338dc 14d0 beq 0x8033908
| ||||||| 0x080338de 091f subs r1, r1, 4
| ========< 0x080338e0 09d0 beq 0x80338f6
| ========< 0x080338e2 32e0 b 0x803394a
| --------> 0x080338e4 ac20 movs r0, 0xac ; 172
| ||||||| 0x080338e6 c0b2 uxtb r0, r0
| ========< 0x080338e8 3ce0 b 0x8033964
| |`------> 0x080338ea a320 movs r0, 0xa3 ; 163
| | ||||| 0x080338ec c0b2 uxtb r0, r0
| |,======< 0x080338ee 39e0 b 0x8033964
| ||`-----> 0x080338f0 a220 movs r0, 0xa2 ; 162
| || |||| 0x080338f2 c0b2 uxtb r0, r0
| ||,=====< 0x080338f4 36e0 b 0x8033964
| --------> 0x080338f6 bf20 movs r0, 0xbf ; 191
| ||||||| 0x080338f8 c0b2 uxtb r0, r0
| ========< 0x080338fa 33e0 b 0x8033964
| --------> 0x080338fc a120 movs r0, 0xa1 ; 161
| ||||||| 0x080338fe c0b2 uxtb r0, r0
| ========< 0x08033900 30e0 b 0x8033964
| --------> 0x08033902 ba20 movs r0, 0xba ; 186
| ||||||| 0x08033904 c0b2 uxtb r0, r0
| ========< 0x08033906 2de0 b 0x8033964
| --------> 0x08033908 bb20 movs r0, 0xbb ; 187
| ||||||| 0x0803390a c0b2 uxtb r0, r0
| ========< 0x0803390c 2ae0 b 0x8033964
| ||||||`-> 0x0803390e ae20 movs r0, 0xae ; 174
| |||||| 0x08033910 c0b2 uxtb r0, r0
| ||||||,=< 0x08033912 27e0 b 0x8033964
| |||||`--> 0x08033914 af20 movs r0, 0xaf ; 175
| ||||| | 0x08033916 c0b2 uxtb r0, r0
| |||||,==< 0x08033918 24e0 b 0x8033964
| ||||`---> 0x0803391a b020 movs r0, 0xb0 ; 176
| |||| || 0x0803391c c0b2 uxtb r0, r0
| ||||,===< 0x0803391e 21e0 b 0x8033964
| |||`----> 0x08033920 b120 movs r0, 0xb1 ; 177
| ||| ||| 0x08033922 c0b2 uxtb r0, r0
| |||,====< 0x08033924 1ee0 b 0x8033964
| --------> 0x08033926 a820 movs r0, 0xa8 ; 168
| ||||||| 0x08033928 c0b2 uxtb r0, r0
| ========< 0x0803392a 1be0 b 0x8033964
| --------> 0x0803392c a920 movs r0, 0xa9 ; 169
| ||||||| 0x0803392e c0b2 uxtb r0, r0
| ========< 0x08033930 18e0 b 0x8033964
| --------> 0x08033932 be20 movs r0, 0xbe ; 190
| ||||||| 0x08033934 c0b2 uxtb r0, r0
| ========< 0x08033936 15e0 b 0x8033964
| --------> 0x08033938 bf20 movs r0, 0xbf ; 191
| ||||||| 0x0803393a c0b2 uxtb r0, r0
| ========< 0x0803393c 12e0 b 0x8033964
| `-------> 0x0803393e b620 movs r0, 0xb6 ; 182
| |||||| 0x08033940 c0b2 uxtb r0, r0
| ,=======< 0x08033942 0fe0 b 0x8033964
| --------> 0x08033944 b720 movs r0, 0xb7 ; 183
| ||||||| 0x08033946 c0b2 uxtb r0, r0
| ========< 0x08033948 0ce0 b 0x8033964
| --------> 0x0803394a 80b2 uxth r0, r0
| ||||||| 0x0803394c b0f59c4f cmp.w r0, 0x4e00
| ========< 0x08033950 06d3 blo 0x8033960
| ||||||| 0x08033952 4649 ldr r1, [0x08033a6e] ; [0x8033a6c:4]=0xffff6401
| ||||||| 0x08033954 80b2 uxth r0, r0
| ||||||| 0x08033956 444a ldr r2, [0x08033a6a] ; [0x8033a68:4]=0x807df68
| ||||||| 0x08033958 12eb4000 adds.w r0, r2, r0, lsl 1
| ||||||| 0x0803395c 085c ldrb r0, [r1, r0]
| ========< 0x0803395e 00e0 b 0x8033962
| --------> 0x08033960 bf20 movs r0, 0xbf ; 191
| --------> 0x08033962 c0b2 uxtb r0, r0
\ ```````-> 0x08033964 7047 bx lr
/ (fcn) gfx_drawtext_sub1 6
| Caller: gfx_1d988 gfx_drawtext3 func_33ce8 gfx_drawtext6 gfx_drawtext9
| gfx_drawtext_sub1 ();
| 0x08033bfc 0022 movs r2, 0
\ ,=< 0x08033bfe 14f027bf b.w 0x8048a50 ; gfx_48a42+0xe
/ (fcn) gfx_drawtext_sub4 12
| Caller: gfx_drawtext9 draw_some_bitmap_and_text gfx_drawtext3 func_37b0a
| gfx_drawtext_sub4 ();
| 0x0802b1d6 80b5 push {r7, lr}
| 0x0802b1d8 47f6ff73 movw r3, 0x7fff
| 0x0802b1dc fff754ff bl gfx_2b088
\ 0x0802b1e0 01bd pop {r0, pc}
/ (fcn) gfx_get_current_font_height 66
| Caller: gfx_clear3 gfx_drawtext8
| gfx_get_current_font_height ();
| 0x08033c54 0020 movs r0, 0 ; some font-related preparation
| 0x08033c56 1749 ldr r1, [0x08033cb6] ; [0x8033cb4:4]=0x2001da1c gfx_info
| 0x08033c58 91f82c10 ldrb.w r1, [r1, 0x2c] ; [r1+0x2C] = gfx_info.what ?
| 0x08033c5c 11f00c01 ands r1, r1, 0xc
| 0x08033c60 c9b2 uxtb r1, r1
| 0x08033c62 0429 cmp r1, 4 ; 4
| ,=< 0x08033c64 04d0 beq 0x8033c70
| | 0x08033c66 0829 cmp r1, 8 ; 8
| ,==< 0x08033c68 0ed0 beq 0x8033c88
| || 0x08033c6a 0c29 cmp r1, 0xc ; 12
| ,===< 0x08033c6c 05d0 beq 0x8033c7a
| ,====< 0x08033c6e 11e0 b 0x8033c94
| |||`-> 0x08033c70 1048 ldr r0, [0x08033cb4] ; [0x8033cb4:4]=0x2001da1c gfx_info
| ||| 0x08033c72 8069 ldr r0, [r0, 0x18] ; [r0+0x18] = gfx_info.font_pointer
| ||| 0x08033c74 007d ldrb r0, [r0, 0x14] ; [r0+0x14] = matrix height in pixels ? (gfx_font_small:12, norm:16)
| ||| 0x08033c76 401e subs r0, r0, 1
| |||,=< 0x08033c78 0ce0 b 0x8033c94
| |`---> 0x08033c7a 0e48 ldr r0, [0x08033cb6] ; [0x8033cb4:4]=0x2001da1c gfx_info
| | || 0x08033c7c 8069 ldr r0, [r0, 0x18]
| | || 0x08033c7e 007d ldrb r0, [r0, 0x14]
| | || 0x08033c80 0221 movs r1, 2 ; 2
| | || 0x08033c82 90fbf1f0 sdiv r0, r0, r1
| |,===< 0x08033c86 05e0 b 0x8033c94
| ||`--> 0x08033c88 0a48 ldr r0, [0x08033cb4] ; [0x8033cb4:4]=0x2001da1c gfx_info
| || | 0x08033c8a 8069 ldr r0, [r0, 0x18]
| || | 0x08033c8c 007d ldrb r0, [r0, 0x14]
| || | 0x08033c8e 0221 movs r1, 2 ; 2
| || | 0x08033c90 90fbf1f0 sdiv r0, r0, r1
\ ``-`-> 0x08033c94 7047 bx lr ; returns R0 = some height in pixels, subtracted from gfx_info.ypos at 0x08036fe6
/ (fcn) gfx_font_count_something 66
| Caller: drawtext8.loop_for_all_chars
| gfx_font_count_something ();
| 0x0803b67c 31b5 push {r0, r4, r5, lr} ; [in] R0 = character code
| 0x0803b67e 0c00 movs r4, r1 ; [in] R1 = 0x7FFF (some kind of maximum?)
| 0x0803b680 0025 movs r5, 0 ; later return value: counted something
| 0x0803b682 0098 ldr r0, [sp]
| 0x0803b684 0028 cmp r0, 0
| ,=< 0x0803b686 18d0 beq 0x803b6ba
| | 0x0803b688 4b48 ldr r0, [0x0803b7b8] ; [0x803b7b8:4]=0x2001da1c gfx_info
| | 0x0803b68a 8069 ldr r0, [r0, 0x18] ; [r0+0x18] = gfx_info.font_pointer
| | 0x0803b68c 0069 ldr r0, [r0, 0x10] ; [r0+0x10] = font_pointer.xyz ?
| | 0x0803b68e 0028 cmp r0, 0
| ,==< 0x0803b690 08d0 beq 0x803b6a4
| || 0x0803b692 2100 movs r1, r4
| || 0x0803b694 0098 ldr r0, [sp]
| || 0x0803b696 484a ldr r2, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b698 9269 ldr r2, [r2, 0x18]
| || 0x0803b69a 1269 ldr r2, [r2, 0x10]
| || 0x0803b69c 5268 ldr r2, [r2, 4]
| || 0x0803b69e 9047 blx r2
| ,===< 0x0803b6a0 0ce0 b 0x803b6bc
| .----> 0x0803b6a2 6d1c adds r5, r5, 1
| ||`--> 0x0803b6a4 a542 cmp r5, r4
| ||,==< 0x0803b6a6 08da bge 0x803b6ba
| |||| 0x0803b6a8 00a8 add r0, sp, 0
| |||| 0x0803b6aa 00f08bf8 bl gfx_3b7c4
| |||| 0x0803b6ae 80b2 uxth r0, r0
| |||| 0x0803b6b0 0028 cmp r0, 0
| ,=====< 0x0803b6b2 02d0 beq 0x803b6ba
| ||||| 0x0803b6b4 80b2 uxth r0, r0
| ||||| 0x0803b6b6 0a28 cmp r0, 0xa ; 10
| |`====< 0x0803b6b8 f3d1 bne 0x803b6a2
| `--``-> 0x0803b6ba 2800 movs r0, r5 ; returns 'something counted' in the font
\ `---> 0x0803b6bc 32bd pop {r1, r4, r5, pc}
/ (fcn) gfx_drawtext_sub7 62
| Caller: menu_draw_sub_3aba8 drawtext8.loop_for_all_chars
| gfx_drawtext_sub7 ();
| 0x0803b6be 31b5 push {r0, r4, r5, lr} ; [in] R0 = address of something
| 0x0803b6c0 0c00 movs r4, r1 ; [in] R1 =
| 0x0803b6c2 0025 movs r5, 0
| 0x0803b6c4 0098 ldr r0, [sp]
| 0x0803b6c6 0028 cmp r0, 0
| ,=< 0x0803b6c8 16d0 beq 0x803b6f8 ; bail out on NULL pointer ?
| | 0x0803b6ca 3b48 ldr r0, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| | 0x0803b6cc 8069 ldr r0, [r0, 0x18] ; [r0+24] = gfx_info.font_pointer
| | 0x0803b6ce 0069 ldr r0, [r0, 0x10] ; 'method table' with 3 Thumb functions, see three_font_methods
| | 0x0803b6d0 0028 cmp r0, 0
| ,==< 0x0803b6d2 0ed0 beq 0x803b6f2
| || 0x0803b6d4 2100 movs r1, r4 ; 2nd argument for function called via BLX R2
| || 0x0803b6d6 0098 ldr r0, [sp]
| || 0x0803b6d8 374a ldr r2, [0x0803b7b8] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b6da 9269 ldr r2, [r2, 0x18]
| || 0x0803b6dc 1269 ldr r2, [r2, 0x10]
| || 0x0803b6de 1268 ldr r2, [r2] ; first method is font_method_1_of_3
| || 0x0803b6e0 9047 blx r2
| ,===< 0x0803b6e2 0ae0 b 0x803b6fa
| .----> 0x0803b6e4 00a8 add r0, sp, 0
| |||| 0x0803b6e6 00f06df8 bl gfx_3b7c4
| |||| 0x0803b6ea 80b2 uxth r0, r0
| |||| 0x0803b6ec f8f7dbfa bl gfx_call_font_method_via_hdr_offset4
| |||| 0x0803b6f0 4519 adds r5, r0, r5
| ||`--> 0x0803b6f2 641e subs r4, r4, 1
| || | 0x0803b6f4 002c cmp r4, 0
| `====< 0x0803b6f6 f5d5 bpl 0x803b6e4
| | `-> 0x0803b6f8 2800 movs r0, r5
\ `---> 0x0803b6fa 32bd pop {r1, r4, r5, pc}
/ (fcn) gfx_drawtext_sub8 186
| Caller: drawtext8.loop_for_all_chars
| gfx_drawtext_sub8 ();
| 0x0803b6fc 30b5 push {r4, r5, lr}
| 0x0803b6fe 83b0 sub sp, 0xc
| 0x0803b700 0400 movs r4, r0
| 0x0803b702 0d00 movs r5, r1
| 0x0803b704 1100 movs r1, r2
| 0x0803b706 2e48 ldr r0, [0x0803b7c2] ; [0x803b7c0:4]=0x2001e5b0
| 0x0803b708 0068 ldr r0, [r0]
| 0x0803b70a 0028 cmp r0, 0
| ,=< 0x0803b70c 0ed0 beq 0x803b72c
| | 0x0803b70e 0020 movs r0, 0
| | 0x0803b710 e1f7eefa bl gfx_bmp_sub1
| | 0x0803b714 0028 cmp r0, 0
| ,==< 0x0803b716 4dd0 beq 0x803b7b4
| .---> 0x0803b718 00aa add r2, sp, 0
| ||| 0x0803b71a 2900 movs r1, r5
| ||| 0x0803b71c 2000 movs r0, r4
| ||| 0x0803b71e fff77bff bl func_3b618
| ||| 0x0803b722 e1f7b7fa bl gfx_bmp_sub3
| ||| 0x0803b726 0028 cmp r0, 0
| `===< 0x0803b728 f6d1 bne 0x803b718
| ,===< 0x0803b72a 43e0 b 0x803b7b4
| ||`-> 0x0803b72c 00a8 add r0, sp, 0
| || 0x0803b72e 0822 movs r2, 8 ; 8
| || 0x0803b730 f7f77cfa bl gfx_memcpy
| || 0x0803b734 bdf80000 ldrh.w r0, [sp]
| || 0x0803b738 1f49 ldr r1, [0x0803b7b8] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b73a 096c ldr r1, [r1, 0x40] ; [r1+64] = gfx_info.bmp_w
| || 0x0803b73c 0818 adds r0, r1, r0
| || 0x0803b73e adf80000 strh.w r0, [sp]
| || 0x0803b742 bdf80200 ldrh.w r0, [sp, 2]
| || 0x0803b746 1c49 ldr r1, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b748 496c ldr r1, [r1, 0x44] ; [r1+68] = gfx_info.bmp_h
| || 0x0803b74a 0818 adds r0, r1, r0
| || 0x0803b74c adf80200 strh.w r0, [sp, 2]
| || 0x0803b750 bdf80400 ldrh.w r0, [sp, 4]
| || 0x0803b754 1849 ldr r1, [0x0803b7b8] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b756 096c ldr r1, [r1, 0x40] ; [r1+64] = gfx_info.bmp_w
| || 0x0803b758 0818 adds r0, r1, r0
| || 0x0803b75a adf80400 strh.w r0, [sp, 4]
| || 0x0803b75e bdf80600 ldrh.w r0, [sp, 6]
| || 0x0803b762 1549 ldr r1, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b764 496c ldr r1, [r1, 0x44] ; [r0+68] = gfx_info.bmp_h
| || 0x0803b766 0818 adds r0, r1, r0
| || 0x0803b768 adf80600 strh.w r0, [sp, 6]
| || 0x0803b76c 00a8 add r0, sp, 0
| || 0x0803b76e e1f7bffa bl gfx_bmp_sub1
| || 0x0803b772 0028 cmp r0, 0
| ||,=< 0x0803b774 10d0 beq 0x803b798
| .----> 0x0803b776 1048 ldr r0, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| |||| 0x0803b778 bdf80010 ldrh.w r1, [sp]
| |||| 0x0803b77c 4184 strh r1, [r0, 0x22] ; [r0+34] = gfx_info.xpos
| |||| 0x0803b77e 0e48 ldr r0, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| |||| 0x0803b780 bdf80210 ldrh.w r1, [sp, 2]
| |||| 0x0803b784 8184 strh r1, [r0, 0x24] ; set [r0+36] = gfx_info.ypos
| |||| 0x0803b786 00aa add r2, sp, 0
| |||| 0x0803b788 2900 movs r1, r5
| |||| 0x0803b78a 2000 movs r0, r4
| |||| 0x0803b78c fff744ff bl func_3b618
| |||| 0x0803b790 e1f780fa bl gfx_bmp_sub3
| |||| 0x0803b794 0028 cmp r0, 0
| `====< 0x0803b796 eed1 bne 0x803b776
| ||`-> 0x0803b798 0748 ldr r0, [0x0803b7b8] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b79a 408c ldrh r0, [r0, 0x22] ; [r0+34] = gfx_info.xpos
| || 0x0803b79c 0649 ldr r1, [0x0803b7b8] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b79e 096c ldr r1, [r1, 0x40] ; [r1+64] = gfx_info.bmp_w
| || 0x0803b7a0 401a subs r0, r0, r1
| || 0x0803b7a2 0549 ldr r1, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b7a4 4884 strh r0, [r1, 0x22] ; [r1+34] = gfx_info.xpos
| || 0x0803b7a6 0448 ldr r0, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b7a8 808c ldrh r0, [r0, 0x24] ; get [r0+36] = gfx_info.ypos
| || 0x0803b7aa 0349 ldr r1, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b7ac 496c ldr r1, [r1, 0x44] ; [r1+68] = gfx_info.bmp_h
| || 0x0803b7ae 401a subs r0, r0, r1
| || 0x0803b7b0 0149 ldr r1, [0x0803b7b8] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b7b2 8884 strh r0, [r1, 0x24] ; set [r1+36] = gfx_info.ypos
\ ``--> 0x0803b7b4 37bd pop {r0, r1, r2, r4, r5, pc}
/ (fcn) gfx_drawtext_sub9 36
| Caller: drawtext8.loop_for_all_chars
| gfx_drawtext_sub9 ();
| 0x0803b828 70b5 push {r4, r5, r6, lr}
| 0x0803b82a 0400 movs r4, r0
| 0x0803b82c 0d00 movs r5, r1
| 0x0803b82e 0026 movs r6, 0
| ,=< 0x0803b830 06e0 b 0x803b840
| .--> 0x0803b832 2000 movs r0, r4
| || 0x0803b834 0549 ldr r1, [0x0803b84c] ; [0x803b84c:4]=0x2001da1c gfx_info
| || 0x0803b836 c969 ldr r1, [r1, 0x1c]
| || 0x0803b838 4968 ldr r1, [r1, 4]
| || 0x0803b83a 8847 blx r1
| || 0x0803b83c 0419 adds r4, r0, r4
| || 0x0803b83e 8619 adds r6, r0, r6
| |`-> 0x0803b840 2800 movs r0, r5
| | 0x0803b842 451e subs r5, r0, 1
| | 0x0803b844 0028 cmp r0, 0
| `==< 0x0803b846 f4d1 bne 0x803b832
| 0x0803b848 3000 movs r0, r6
\ 0x0803b84a 70bd pop {r4, r5, r6, pc}
/ (fcn) gfx_write_pixel_to_framebuffer 72
| Caller: gfx_write_pixel_2 gfx_put_pixel
| gfx_write_pixel_to_framebuffer ();
| 0x08033728 70b5 push {r4, r5, r6, lr}
| 0x0803372a 0400 movs r4, r0
| 0x0803372c 0d00 movs r5, r1
| 0x0803372e 1600 movs r6, r2
| 0x08033730 2a20 movs r0, 0x2a ; '*' ; 42
| 0x08033732 fff7fbfe bl WriteLCDCommand ; ST7735: cmd 0x2A = 'Column Address Set'
| 0x08033736 2800 movs r0, r5
| 0x08033738 fff7fcfe bl WriteLCDData ; ST7335: X-Start, H byte ?? (should be zero)
| 0x0803373c 2800 movs r0, r5
| 0x0803373e fff7f9fe bl WriteLCDData ; ST7335: X-Start, L byte
| 0x08033742 2b20 movs r0, 0x2b ; '+' ; 43
| 0x08033744 fff7f2fe bl WriteLCDCommand ; ST7735: cmd 0x2B = 'Row Address Set'
| 0x08033748 d4f19f00 rsbs.w r0, r4, 0x9f ; Ym = 159 - Y (0..159), rotated by 90deg
| 0x0803374c fff7f2fe bl WriteLCDData ; ST7335: Y-Start, H byte ??
| 0x08033750 d4f19f00 rsbs.w r0, r4, 0x9f
| 0x08033754 fff7eefe bl WriteLCDData ; ST7335: Y-Start, L byte
| 0x08033758 2c20 movs r0, 0x2c ; ',' ; 44
| 0x0803375a fff7e7fe bl WriteLCDCommand ; ST7735: cmd 0x2C = 'Memory Write'
| 0x0803375e c6f30720 ubfx r0, r6, 8, 8
| 0x08033762 f4b2 uxtb r4, r6
| 0x08033764 fff7e6fe bl WriteLCDData ; write pixel data, 1st byte
| 0x08033768 2000 movs r0, r4
| 0x0803376a fff7e3fe bl WriteLCDData ; write pixel data, 2nd byte
\ 0x0803376e 70bd pop {r4, r5, r6, pc}
/ (fcn) gfx_read_pixel_from_framebuffer 68
| Caller: gfx_read_pixel_wrapper
| gfx_read_pixel_from_framebuffer ();
| 0x08033770 38b5 push {r3, r4, r5, lr}
| 0x08033772 0400 movs r4, r0
| 0x08033774 0d00 movs r5, r1
| 0x08033776 2a20 movs r0, 0x2a ; '*' ; 42
| 0x08033778 fff7d8fe bl WriteLCDCommand ; ST7735: cmd 0x2A = 'Column Address Set'
| 0x0803377c adb2 uxth r5, r5
| 0x0803377e 2800 movs r0, r5
| 0x08033780 fff7d8fe bl WriteLCDData ; ST7335: X-Start, H byte ??
| 0x08033784 adb2 uxth r5, r5
| 0x08033786 2800 movs r0, r5
| 0x08033788 fff7d4fe bl WriteLCDData ; ST7335: X-Start, L byte
| 0x0803378c 2b20 movs r0, 0x2b ; '+' ; 43
| 0x0803378e fff7cdfe bl WriteLCDCommand ; ST7735: cmd 0x2B = 'Row Address Set'
| 0x08033792 a4b2 uxth r4, r4
| 0x08033794 d4f19f00 rsbs.w r0, r4, 0x9f ; see gfx_write_pixel_to_framebuffer
| 0x08033798 fff7ccfe bl WriteLCDData ; ST7335: Y-Start, H byte ??
| 0x0803379c a4b2 uxth r4, r4
| 0x0803379e d4f19f00 rsbs.w r0, r4, 0x9f
| 0x080337a2 fff7c7fe bl WriteLCDData ; ST7335: Y-Start, L byte
| 0x080337a6 2e20 movs r0, 0x2e ; '.' ; 46
| 0x080337a8 fff7c0fe bl WriteLCDCommand ; ST7735: cmd 0x2E = 'Memory Read' (!)
| 0x080337ac fff7c5fe bl ReadLCDData ; only reads 8 bits, not 16
| 0x080337b0 80b2 uxth r0, r0
\ 0x080337b2 32bd pop {r1, r4, r5, pc}
/ (fcn) WriteLCDCommand 8
| Caller: InitLCDisplay gfx_write_pixel_to_framebuffer gfx_read_pixel_from_framebuffer
| WriteLCDCommand ();
| 0x0803352c 5ff0c041 movs.w r1, 0x60000000
| 0x08033530 0870 strb r0, [r1]
\ 0x08033532 7047 bx lr
/ (fcn) WriteLCDData 6
| Caller: InitLCDisplay gfx_write_pixel_to_framebuffer gfx_read_pixel_from_framebuffer
| WriteLCDData ();
| 0x08033534 7849 ldr r1, [0x08033718] ; [0x8033718:4]=0x60040000
| 0x08033536 0870 strb r0, [r1]
\ 0x08033538 7047 bx lr
/ (fcn) ReadLCDData 12
| Caller: gfx_read_pixel_from_framebuffer
| ReadLCDData ();
| 0x0803353a 0020 movs r0, 0
| 0x0803353c 7649 ldr r1, [0x08033718] ; [0x8033718:4]=0x60040000
| 0x0803353e 0978 ldrb r1, [r1]
| 0x08033540 c9b2 uxtb r1, r1
| 0x08033542 0800 movs r0, r1
\ 0x08033544 7047 bx lr
/ (fcn) InitLCDisplay 424
| Caller: InitLCD_wrapper
| InitLCDisplay ();
| 0x0803356e 80b5 push {r7, lr}
| 0x08033570 fff7e9ff bl DeAssertLCDReset
| 0x08033574 3a20 movs r0, 0x3a ; ':' ; 58
| 0x08033576 fff7d9ff bl WriteLCDCommand ; ST7735: 0x3A = Interface Pixel Format
| 0x0803357a 0520 movs r0, 5 ; 5 ; ST7735: 0b101= 16 bit/pixel
| 0x0803357c fff7daff bl WriteLCDData
| 0x08033580 3620 movs r0, 0x36 ; '6' ; 54
| 0x08033582 fff7d3ff bl WriteLCDCommand ; ST7335: 0x36 = Memory ADress ConTroL...
| 0x08033586 6748 ldr r0, [0x08033726] ; [0x8033724:4]=0x2001de38
| 0x08033588 407f ldrb r0, [r0, 0x1d]
| 0x0803358a c007 lsls r0, r0, 0x1f
| ,=< 0x0803358c 03d5 bpl 0x8033596
| | 0x0803358e 0820 movs r0, 8 ; 8
| | 0x08033590 fff7d0ff bl WriteLCDData ; ST7335: MADCTL bit 3 = RGB/BGR Color Select
| | 0x08033594 02e0 b 0x803359c
| `-> 0x08033596 4820 movs r0, 0x48 ; 'H' ; 72
| 0x08033598 fff7ccff bl WriteLCDData ; ST7335: MADCTL bit 6 = Column Address Order
| 0x0803359c fe20 movs r0, 0xfe ; 254
| 0x0803359e fff7c5ff bl WriteLCDCommand ; '(FEh)' not found in ST7335 datasheet
| 0x080335a2 ef20 movs r0, 0xef ; 239
| 0x080335a4 fff7c2ff bl WriteLCDCommand ; '(EFh)' not found in ST7335 datasheet
| 0x080335a8 b420 movs r0, 0xb4 ; 180
| 0x080335aa fff7bfff bl WriteLCDCommand ; ST7735: 0xB4 = Display Inversion Control
| 0x080335ae 0020 movs r0, 0
| 0x080335b0 fff7c0ff bl WriteLCDData
| 0x080335b4 ff20 movs r0, 0xff ; 255
| 0x080335b6 fff7b9ff bl WriteLCDCommand
| 0x080335ba 1620 movs r0, 0x16 ; 22
| 0x080335bc fff7baff bl WriteLCDData
| 0x080335c0 fd20 movs r0, 0xfd ; 253
| 0x080335c2 fff7b3ff bl WriteLCDCommand
| 0x080335c6 5748 ldr r0, [0x08033726] ; [0x8033724:4]=0x2001de38
| 0x080335c8 407f ldrb r0, [r0, 0x1d]
| 0x080335ca c007 lsls r0, r0, 0x1f
| ,=< 0x080335cc 03d5 bpl 0x80335d6
| | 0x080335ce 4020 movs r0, 0x40 ; '@' ; 64
| | 0x080335d0 fff7b0ff bl WriteLCDData
| ,==< 0x080335d4 02e0 b 0x80335dc
| |`-> 0x080335d6 4f20 movs r0, 0x4f ; 'O' ; 79
| | 0x080335d8 fff7acff bl WriteLCDData
| `--> 0x080335dc a420 movs r0, 0xa4 ; 164
| 0x080335de fff7a5ff bl WriteLCDCommand
| 0x080335e2 7020 movs r0, 0x70 ; 'p' ; 112
| 0x080335e4 fff7a6ff bl WriteLCDData
| 0x080335e8 e720 movs r0, 0xe7 ; 231
| 0x080335ea fff79fff bl WriteLCDCommand
| 0x080335ee 9420 movs r0, 0x94 ; 148
| 0x080335f0 fff7a0ff bl WriteLCDData
| 0x080335f4 8820 movs r0, 0x88 ; 136
| 0x080335f6 fff79dff bl WriteLCDData
| 0x080335fa ea20 movs r0, 0xea ; 234
| 0x080335fc fff796ff bl WriteLCDCommand
| 0x08033600 3a20 movs r0, 0x3a ; ':' ; 58
| 0x08033602 fff797ff bl WriteLCDData
| 0x08033606 ed20 movs r0, 0xed ; 237
| 0x08033608 fff790ff bl WriteLCDCommand
| 0x0803360c 1120 movs r0, 0x11 ; 17
| 0x0803360e fff791ff bl WriteLCDData
| 0x08033612 e420 movs r0, 0xe4 ; 228
| 0x08033614 fff78aff bl WriteLCDCommand
| 0x08033618 c520 movs r0, 0xc5 ; 197
| 0x0803361a fff78bff bl WriteLCDData
| 0x0803361e e220 movs r0, 0xe2 ; 226
| 0x08033620 fff784ff bl WriteLCDCommand
| 0x08033624 8020 movs r0, 0x80 ; 128
| 0x08033626 fff785ff bl WriteLCDData
| 0x0803362a a320 movs r0, 0xa3 ; 163
| 0x0803362c fff77eff bl WriteLCDCommand
| 0x08033630 1220 movs r0, 0x12 ; 18
| 0x08033632 fff77fff bl WriteLCDData
| 0x08033636 e320 movs r0, 0xe3 ; 227
| 0x08033638 fff778ff bl WriteLCDCommand
| 0x0803363c 0720 movs r0, 7 ; 7
| 0x0803363e fff779ff bl WriteLCDData
| 0x08033642 e520 movs r0, 0xe5 ; 229
| 0x08033644 fff772ff bl WriteLCDCommand
| 0x08033648 1020 movs r0, 0x10 ; 16
| 0x0803364a fff773ff bl WriteLCDData
| 0x0803364e f020 movs r0, 0xf0 ; 240
| 0x08033650 fff76cff bl WriteLCDCommand
| 0x08033654 0020 movs r0, 0
| 0x08033656 fff76dff bl WriteLCDData
| 0x0803365a f120 movs r0, 0xf1 ; 241
| 0x0803365c fff766ff bl WriteLCDCommand
| 0x08033660 5520 movs r0, 0x55 ; 'U' ; 85
| 0x08033662 fff767ff bl WriteLCDData
| 0x08033666 f220 movs r0, 0xf2 ; 242
| 0x08033668 fff760ff bl WriteLCDCommand
| 0x0803366c 0520 movs r0, 5 ; 5
| 0x0803366e fff761ff bl WriteLCDData
| 0x08033672 f320 movs r0, 0xf3 ; 243
| 0x08033674 fff75aff bl WriteLCDCommand
| 0x08033678 5320 movs r0, 0x53 ; 'S' ; 83
| 0x0803367a fff75bff bl WriteLCDData
| 0x0803367e f420 movs r0, 0xf4 ; 244
| 0x08033680 fff754ff bl WriteLCDCommand
| 0x08033684 0020 movs r0, 0
| 0x08033686 fff755ff bl WriteLCDData
| 0x0803368a f520 movs r0, 0xf5 ; 245
| 0x0803368c fff74eff bl WriteLCDCommand
| 0x08033690 0020 movs r0, 0
| 0x08033692 fff74fff bl WriteLCDData
| 0x08033696 f720 movs r0, 0xf7 ; 247
| 0x08033698 fff748ff bl WriteLCDCommand
| 0x0803369c 2720 movs r0, 0x27 ; ''' ; 39
| 0x0803369e fff749ff bl WriteLCDData
| 0x080336a2 f820 movs r0, 0xf8 ; 248
| 0x080336a4 fff742ff bl WriteLCDCommand
| 0x080336a8 2220 movs r0, 0x22 ; '"' ; 34
| 0x080336aa fff743ff bl WriteLCDData
| 0x080336ae f920 movs r0, 0xf9 ; 249
| 0x080336b0 fff73cff bl WriteLCDCommand
| 0x080336b4 7720 movs r0, 0x77 ; 'w' ; 119
| 0x080336b6 fff73dff bl WriteLCDData
| 0x080336ba fa20 movs r0, 0xfa ; 250
| 0x080336bc fff736ff bl WriteLCDCommand
| 0x080336c0 3520 movs r0, 0x35 ; '5' ; 53
| 0x080336c2 fff737ff bl WriteLCDData
| 0x080336c6 fb20 movs r0, 0xfb ; 251
| 0x080336c8 fff730ff bl WriteLCDCommand
| 0x080336cc 0020 movs r0, 0
| 0x080336ce fff731ff bl WriteLCDData
| 0x080336d2 fc20 movs r0, 0xfc ; 252
| 0x080336d4 fff72aff bl WriteLCDCommand
| 0x080336d8 0020 movs r0, 0
| 0x080336da fff72bff bl WriteLCDData
| 0x080336de fe20 movs r0, 0xfe ; 254
| 0x080336e0 fff724ff bl WriteLCDCommand
| 0x080336e4 ef20 movs r0, 0xef ; 239
| 0x080336e6 fff721ff bl WriteLCDCommand
| 0x080336ea e920 movs r0, 0xe9 ; 233
| 0x080336ec fff71eff bl WriteLCDCommand
| 0x080336f0 0020 movs r0, 0
| 0x080336f2 fff71fff bl WriteLCDData
| 0x080336f6 1420 movs r0, 0x14 ; 20
| 0x080336f8 00f0dcfb bl OSTimeDly
| 0x080336fc 1120 movs r0, 0x11 ; 17
| 0x080336fe fff715ff bl WriteLCDCommand ; ST7335: 0x11 = 'Sleep Out' (wake up..)
| 0x08033702 8220 movs r0, 0x82 ; 130
| 0x08033704 00f0d6fb bl OSTimeDly
| 0x08033708 2920 movs r0, 0x29 ; ')' ; 41
| 0x0803370a fff70fff bl WriteLCDCommand ; many LCDs: cmd 0x29 = 'Display ON'
| 0x0803370e 2c20 movs r0, 0x2c ; ',' ; 44
| 0x08033710 fff70cff bl WriteLCDCommand ; many LCDs: cmd 0x2C = 'Memory Write'
\ 0x08033714 01bd pop {r0, pc}
/ (fcn) DeAssertLCDReset 20
| Caller: InitLCDisplay
| DeAssertLCDReset ();
| 0x08033546 80b5 push {r7, lr}
| 0x08033548 4ff40051 mov.w r1, 0x2000 ; set PD13 = LCD_RST (de-assert reset)
| 0x0803354c 7348 ldr r0, [0x0803371c] ; [0x803371c:4]=0x40020c00 io_GPIOD
| 0x0803354e f8f75cf9 bl GPIO_SetBits
| 0x08033552 7348 ldr r0, [0x08033722] ; [0x8033720:4]=0xaffff
| 0x08033554 00f001f8 bl Delay_R0
\ 0x08033558 01bd pop {r0, pc}
/ (fcn) Delay_R0 20
| Caller: DeAssertLCDReset
| Delay_R0 ();
| 0x0803355a 01b4 push {r0} ; [in] R0 = delay loop counter
| ,=< 0x0803355c 02e0 b 0x8033564
| .--> 0x0803355e 0098 ldr r0, [sp] ; while( nLoops--) .. do nothing
| || 0x08033560 401e subs r0, r0, 1
| || 0x08033562 0090 str r0, [sp]
| |`-> 0x08033564 0098 ldr r0, [sp]
| | 0x08033566 0028 cmp r0, 0
| `==< 0x08033568 f9d1 bne 0x803355e
| 0x0803356a 01b0 add sp, 4
\ 0x0803356c 7047 bx lr
/ (fcn) InitLCD_wrapper 10
| Caller: gfx_init_lcd
| InitLCD_wrapper ();
| 0x0801d954 80b5 push {r7, lr}
| 0x0801d956 15f00afe bl InitLCDisplay
| 0x0801d95a 0020 movs r0, 0
\ 0x0801d95c 02bd pop {r1, pc}
/ (fcn) func_0c7e8 3682
| Caller: menu_func_1aa60 kb_enter_alpha menu_func_0f6a8 menu.dispatcher.unkn1 func_0db88
| update_scr_19 scr_mode_stable menu_F_4144 menu_func_0f4ac menu.dispatch.redkey_maybe
| update_scr_36 update_scr_16 md380_f_4520
| func_0c7e8 ();
| 0x0800c7e8 70b5 push {r4, r5, r6, lr}
| 0x0800c7ea 94b0 sub sp, 0x50 ; 'P'
| 0x0800c7ec 1025 movs r5, 0x10 ; 16
| 0x0800c7ee 1026 movs r6, 0x10 ; 16
| 0x0800c7f0 dff8580e ldr.w r0, [0x0800d650] ; [0x800d650:4]=0x2001e94d gui_opmode1
| 0x0800c7f4 0068 ldr r0, [r0]
| 0x0800c7f6 047b ldrb r4, [r0, 0xc]
| 0x0800c7f8 dff8540e ldr.w r0, [0x0800d654] ; [0x800d654:4]=0x2001e81c not_the_volume_knob
| 0x0800c7fc 9b21 movs r1, 0x9b ; 155
| 0x0800c7fe 0170 strb r1, [r0]
| 0x0800c800 01f0d1fa bl func_0dda6_dummy
| 0x0800c804 a006 lsls r0, r4, 0x1a
| ,=< 0x0800c806 00d5 bpl 0x800c80a
| | 0x0800c808 1825 movs r5, 0x18 ; 24
| `-> 0x0800c80a 6006 lsls r0, r4, 0x19
| ,=< 0x0800c80c 00d5 bpl 0x800c810
| | 0x0800c80e 9026 movs r6, 0x90 ; 144
| `-> 0x0800c810 14f01f04 ands r4, r4, 0x1f
| 0x0800c814 e4b2 uxtb r4, r4
| 0x0800c816 002c cmp r4, 0
| ,=< 0x0800c818 03d0 beq 0x800c822
| | 0x0800c81a e4b2 uxtb r4, r4
| | 0x0800c81c 082c cmp r4, 8 ; 8
| ,==< 0x0800c81e 40f0b980 bne.w 0x800c994
| |`-> 0x0800c822 dff8300e ldr.w r0, [0x0800d65a] ; [0x800d658:4]=0x2001e908
| | 0x0800c826 b0f90000 ldrsh.w r0, [r0]
| | 0x0800c82a 0028 cmp r0, 0
| |,=< 0x0800c82c 05d1 bne 0x800c83a
| || 0x0800c82e dff8280e ldr.w r0, [0x0800d65e] ; [0x800d65c:4]=0xff1414
| || 0x0800c832 0078 ldrb r0, [r0]
| || 0x0800c834 0028 cmp r0, 0
| ,===< 0x0800c836 00f0a880 beq.w 0x800c98a
| ||`-> 0x0800c83a dff8180e ldr.w r0, [0x0800d65a] ; [0x800d658:4]=0x2001e908
| || 0x0800c83e b0f90000 ldrsh.w r0, [r0]
| || 0x0800c842 10f0c7f8 bl gfx_1c9d4
| || 0x0800c846 dff80c0e ldr.w r0, [0x0800d65a] ; [0x800d658:4]=0x2001e908
| || 0x0800c84a 0021 movs r1, 0
| || 0x0800c84c 0180 strh r1, [r0]
| || 0x0800c84e 7ff07f40 mvns r0, 0xff000000
| || 0x0800c852 10f08dfd bl gfx_set_fg_color
| || 0x0800c856 0023 movs r3, 0
| || 0x0800c858 9f22 movs r2, 0x9f ; 159
| || 0x0800c85a 0021 movs r1, 0
| || 0x0800c85c 1320 movs r0, 0x13 ; 19
| || 0x0800c85e 11f015f8 bl gfx_blockfill
| || 0x0800c862 1023 movs r3, 0x10 ; 16
| || 0x0800c864 1222 movs r2, 0x12 ; 18
| || 0x0800c866 0021 movs r1, 0
| || 0x0800c868 0020 movs r0, 0
| || 0x0800c86a 11f00ff8 bl gfx_blockfill
| || 0x0800c86e 6d23 movs r3, 0x6d ; 'm' ; 109
| || 0x0800c870 9f22 movs r2, 0x9f ; 159
| || 0x0800c872 1121 movs r1, 0x11 ; 17
| || 0x0800c874 0020 movs r0, 0
| || 0x0800c876 11f009f8 bl gfx_blockfill
| || 0x0800c87a 6e23 movs r3, 0x6e ; 'n' ; 110
| || 0x0800c87c 5b22 movs r2, 0x5b ; '[' ; 91
| || 0x0800c87e 6e21 movs r1, 0x6e ; 'n' ; 110
| || 0x0800c880 4620 movs r0, 0x46 ; 'F' ; 70
| || 0x0800c882 11f003f8 bl gfx_blockfill
| || 0x0800c886 dff8d40d ldr.w r0, [0x0800d662] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| || 0x0800c88a 10f071fd bl gfx_set_fg_color
| || 0x0800c88e 6e23 movs r3, 0x6e ; 'n' ; 110
| || 0x0800c890 9d22 movs r2, 0x9d ; 157
| || 0x0800c892 1421 movs r1, 0x14 ; 20
| || 0x0800c894 9d20 movs r0, 0x9d ; 157
| || 0x0800c896 10f0f9ff bl gfx_blockfill
| || 0x0800c89a 6e23 movs r3, 0x6e ; 'n' ; 110
| || 0x0800c89c 9e22 movs r2, 0x9e ; 158
| || 0x0800c89e 1521 movs r1, 0x15 ; 21
| || 0x0800c8a0 9c20 movs r0, 0x9c ; 156
| || 0x0800c8a2 10f0f3ff bl gfx_blockfill
| || 0x0800c8a6 6e23 movs r3, 0x6e ; 'n' ; 110
| || 0x0800c8a8 4522 movs r2, 0x45 ; 'E' ; 69
| || 0x0800c8aa 6e21 movs r1, 0x6e ; 'n' ; 110
| || 0x0800c8ac 0120 movs r0, 1 ; 1
| || 0x0800c8ae 10f0edff bl gfx_blockfill
| || 0x0800c8b2 6e23 movs r3, 0x6e ; 'n' ; 110
| || 0x0800c8b4 9e22 movs r2, 0x9e ; 158
| || 0x0800c8b6 6e21 movs r1, 0x6e ; 'n' ; 110
| || 0x0800c8b8 5c20 movs r0, 0x5c ; '\' ; 92
| || 0x0800c8ba 10f0e7ff bl gfx_blockfill
| || 0x0800c8be 6e23 movs r3, 0x6e ; 'n' ; 110
| || 0x0800c8c0 9d22 movs r2, 0x9d ; 157
| || 0x0800c8c2 1421 movs r1, 0x14 ; 20
| || 0x0800c8c4 9d20 movs r0, 0x9d ; 157
| || 0x0800c8c6 10f0e1ff bl gfx_blockfill
| || 0x0800c8ca 0020 movs r0, 0
| || 0x0800c8cc 10f050fd bl gfx_set_fg_color
| || 0x0800c8d0 7ff07f40 mvns r0, 0xff000000
| || 0x0800c8d4 10f048fd bl gfx_set_bg_color
| || 0x0800c8d8 1323 movs r3, 0x13 ; 19
| || 0x0800c8da 9f22 movs r2, 0x9f ; 159
| || 0x0800c8dc 1321 movs r1, 0x13 ; 19
| || 0x0800c8de 0020 movs r0, 0
| || 0x0800c8e0 10f0d4ff bl gfx_blockfill
| || 0x0800c8e4 8d23 movs r3, 0x8d ; 141
| || 0x0800c8e6 0122 movs r2, 1 ; 1
| || 0x0800c8e8 1321 movs r1, 0x13 ; 19
| || 0x0800c8ea dff8740d ldr.w r0, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| || 0x0800c8ee 0068 ldr r0, [r0]
| || 0x0800c8f0 0068 ldr r0, [r0]
| || 0x0800c8f2 11f009fa bl gfx_drawtext2
| || 0x0800c8f6 dff8640d ldr.w r0, [0x0800d662] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| || 0x0800c8fa 10f039fd bl gfx_set_fg_color
| || 0x0800c8fe 7e23 movs r3, 0x7e ; '~' ; 126
| || 0x0800c900 4522 movs r2, 0x45 ; 'E' ; 69
| || 0x0800c902 6e21 movs r1, 0x6e ; 'n' ; 110
| || 0x0800c904 0120 movs r0, 1 ; 1
| || 0x0800c906 10f0c1ff bl gfx_blockfill
| || 0x0800c90a 7e23 movs r3, 0x7e ; '~' ; 126
| || 0x0800c90c 9e22 movs r2, 0x9e ; 158
| || 0x0800c90e 6e21 movs r1, 0x6e ; 'n' ; 110
| || 0x0800c910 5c20 movs r0, 0x5c ; '\' ; 92
| || 0x0800c912 10f0bbff bl gfx_blockfill
| || 0x0800c916 7ff07f40 mvns r0, 0xff000000
| || 0x0800c91a 10f029fd bl gfx_set_fg_color
| || 0x0800c91e 7e23 movs r3, 0x7e ; '~' ; 126
| || 0x0800c920 5b22 movs r2, 0x5b ; '[' ; 91
| || 0x0800c922 6e21 movs r1, 0x6e ; 'n' ; 110
| || 0x0800c924 4620 movs r0, 0x46 ; 'F' ; 70
| || 0x0800c926 10f0b1ff bl gfx_blockfill
| || 0x0800c92a dff8300d ldr.w r0, [0x0800d662] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| || 0x0800c92e 10f01bfd bl gfx_set_bg_color
| || 0x0800c932 7ff07f40 mvns r0, 0xff000000
| || 0x0800c936 10f01bfd bl gfx_set_fg_color
| || 0x0800c93a 7e20 movs r0, 0x7e ; '~' ; 126
| || 0x0800c93c 0090 str r0, [sp]
| || 0x0800c93e 4523 movs r3, 0x45 ; 'E' ; 69
| || 0x0800c940 6e22 movs r2, 0x6e ; 'n' ; 110
| || 0x0800c942 0121 movs r1, 1 ; 1
| || 0x0800c944 dff81c0d ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c948 0068 ldr r0, [r0]
| || 0x0800c94a dff81c4d ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| || 0x0800c94e 14eb8000 adds.w r0, r4, r0, lsl 2
| || 0x0800c952 d0f82003 ldr.w r0, [r0, 0x320]
| || 0x0800c956 01f0bffa bl gfx_drawtext10
| || 0x0800c95a 7e20 movs r0, 0x7e ; '~' ; 126
| || 0x0800c95c 0090 str r0, [sp]
| || 0x0800c95e 9f23 movs r3, 0x9f ; 159
| || 0x0800c960 6e22 movs r2, 0x6e ; 'n' ; 110
| || 0x0800c962 5c21 movs r1, 0x5c ; '\' ; 92
| || 0x0800c964 dff8fc0c ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| || 0x0800c968 0068 ldr r0, [r0]
| || 0x0800c96a dff8fc4c ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| || 0x0800c96e 14eb8000 adds.w r0, r4, r0, lsl 2
| || 0x0800c972 d0f82403 ldr.w r0, [r0, 0x324]
| || 0x0800c976 01f0affa bl gfx_drawtext10
| || 0x0800c97a 7ff07f40 mvns r0, 0xff000000
| || 0x0800c97e 10f0f3fc bl gfx_set_bg_color
| || 0x0800c982 dff8d80c ldr.w r0, [0x0800d662] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| || 0x0800c986 10f0f3fc bl gfx_set_fg_color
| `---> 0x0800c98a 0020 movs r0, 0
| | 0x0800c98c 11f032fe bl paint_a_lot
| |,=< 0x0800c990 00f057be b.w 0x800d642
| `--> 0x0800c994 e4b2 uxtb r4, r4
| | 0x0800c996 012c cmp r4, 1 ; 1
| ,==< 0x0800c998 40f0c280 bne.w 0x800cb20
| || 0x0800c99c dff8cc0c ldr.w r0, [0x0800d670] ; [0x800d670:4]=0x2001e824
| || 0x0800c9a0 b0f90000 ldrsh.w r0, [r0]
| || 0x0800c9a4 10f016f8 bl gfx_1c9d4
| || 0x0800c9a8 dff8c00c ldr.w r0, [0x0800d670] ; [0x800d670:4]=0x2001e824
| || 0x0800c9ac 0021 movs r1, 0
| || 0x0800c9ae 0180 strh r1, [r0]
| || 0x0800c9b0 dff8bc0c ldr.w r0, [0x0800d674] ; [0x800d674:4]=0x2001e8ed
| || 0x0800c9b4 b0f90000 ldrsh.w r0, [r0]
| || 0x0800c9b8 10f00cf8 bl gfx_1c9d4
| || 0x0800c9bc dff8b00c ldr.w r0, [0x0800d674] ; [0x800d674:4]=0x2001e8ed
| || 0x0800c9c0 0021 movs r1, 0
| || 0x0800c9c2 0180 strh r1, [r0]
| || 0x0800c9c4 dff88c0c ldr.w r0, [0x0800d658] ; [0x800d658:4]=0x2001e908
| || 0x0800c9c8 b0f90000 ldrsh.w r0, [r0]
| || 0x0800c9cc 0028 cmp r0, 0
| ,===< 0x0800c9ce 04d1 bne 0x800c9da
| ||| 0x0800c9d0 dff8840c ldr.w r0, [0x0800d65c] ; [0x800d65c:4]=0xff1414
| ||| 0x0800c9d4 0078 ldrb r0, [r0]
| ||| 0x0800c9d6 0028 cmp r0, 0
| ,====< 0x0800c9d8 69d0 beq 0x800caae
| |`---> 0x0800c9da dff8780c ldr.w r0, [0x0800d65a] ; [0x800d658:4]=0x2001e908
| | || 0x0800c9de b0f90000 ldrsh.w r0, [r0]
| | || 0x0800c9e2 0ff0f7ff bl gfx_1c9d4
| | || 0x0800c9e6 dff86c0c ldr.w r0, [0x0800d65a] ; [0x800d658:4]=0x2001e908
| | || 0x0800c9ea 0021 movs r1, 0
| | || 0x0800c9ec 0180 strh r1, [r0]
| | || 0x0800c9ee 7ff07f40 mvns r0, 0xff000000
| | || 0x0800c9f2 10f0bdfc bl gfx_set_fg_color
| | || 0x0800c9f6 0023 movs r3, 0
| | || 0x0800c9f8 9f22 movs r2, 0x9f ; 159
| | || 0x0800c9fa 0021 movs r1, 0
| | || 0x0800c9fc 0020 movs r0, 0
| | || 0x0800c9fe 10f045ff bl gfx_blockfill
| | || 0x0800ca02 1023 movs r3, 0x10 ; 16
| | || 0x0800ca04 0922 movs r2, 9 ; 9
| | || 0x0800ca06 0021 movs r1, 0
| | || 0x0800ca08 0020 movs r0, 0
| | || 0x0800ca0a 10f03fff bl gfx_blockfill
| | || 0x0800ca0e 6d23 movs r3, 0x6d ; 'm' ; 109
| | || 0x0800ca10 9f22 movs r2, 0x9f ; 159
| | || 0x0800ca12 1121 movs r1, 0x11 ; 17
| | || 0x0800ca14 0020 movs r0, 0
| | || 0x0800ca16 10f039ff bl gfx_blockfill
| | || 0x0800ca1a 0020 movs r0, 0
| | || 0x0800ca1c 10f0a8fc bl gfx_set_fg_color
| | || 0x0800ca20 1223 movs r3, 0x12 ; 18
| | || 0x0800ca22 9f22 movs r2, 0x9f ; 159
| | || 0x0800ca24 1221 movs r1, 0x12 ; 18
| | || 0x0800ca26 0020 movs r0, 0
| | || 0x0800ca28 10f030ff bl gfx_blockfill
| | || 0x0800ca2c dff8440c ldr.w r0, [0x0800d678] ; [0x800d678:4]=0x80cf780 gfx_font_norm
| | || 0x0800ca30 0078 ldrb r0, [r0]
| | || 0x0800ca32 0028 cmp r0, 0
| |,===< 0x0800ca34 39d1 bne 0x800caaa
| |||| 0x0800ca36 dff8240c ldr.w r0, [0x0800d662] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| |||| 0x0800ca3a 10f099fc bl gfx_set_fg_color
| |||| 0x0800ca3e 7e23 movs r3, 0x7e ; '~' ; 126
| |||| 0x0800ca40 4522 movs r2, 0x45 ; 'E' ; 69
| |||| 0x0800ca42 6e21 movs r1, 0x6e ; 'n' ; 110
| |||| 0x0800ca44 0120 movs r0, 1 ; 1
| |||| 0x0800ca46 10f021ff bl gfx_blockfill
| |||| 0x0800ca4a 7e23 movs r3, 0x7e ; '~' ; 126
| |||| 0x0800ca4c 9e22 movs r2, 0x9e ; 158
| |||| 0x0800ca4e 6e21 movs r1, 0x6e ; 'n' ; 110
| |||| 0x0800ca50 5c20 movs r0, 0x5c ; '\' ; 92
| |||| 0x0800ca52 10f01bff bl gfx_blockfill
| |||| 0x0800ca56 7ff07f40 mvns r0, 0xff000000
| |||| 0x0800ca5a 10f089fc bl gfx_set_fg_color
| |||| 0x0800ca5e 7e23 movs r3, 0x7e ; '~' ; 126
| |||| 0x0800ca60 5b22 movs r2, 0x5b ; '[' ; 91
| |||| 0x0800ca62 6e21 movs r1, 0x6e ; 'n' ; 110
| |||| 0x0800ca64 4620 movs r0, 0x46 ; 'F' ; 70
| |||| 0x0800ca66 10f011ff bl gfx_blockfill
| |||| 0x0800ca6a dff8f00b ldr.w r0, [0x0800d662] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| |||| 0x0800ca6e 10f07bfc bl gfx_set_bg_color
| |||| 0x0800ca72 7ff07f40 mvns r0, 0xff000000
| |||| 0x0800ca76 10f07bfc bl gfx_set_fg_color
| |||| 0x0800ca7a 7e20 movs r0, 0x7e ; '~' ; 126
| |||| 0x0800ca7c 0090 str r0, [sp]
| |||| 0x0800ca7e 4523 movs r3, 0x45 ; 'E' ; 69
| |||| 0x0800ca80 6e22 movs r2, 0x6e ; 'n' ; 110
| |||| 0x0800ca82 0121 movs r1, 1 ; 1
| |||| 0x0800ca84 dff8dc0b ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| |||| 0x0800ca88 0068 ldr r0, [r0]
| |||| 0x0800ca8a dff8dc4b ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| |||| 0x0800ca8e 14eb8000 adds.w r0, r4, r0, lsl 2
| |||| 0x0800ca92 d0f82003 ldr.w r0, [r0, 0x320]
| |||| 0x0800ca96 01f01ffa bl gfx_drawtext10
| |||| 0x0800ca9a 7ff07f40 mvns r0, 0xff000000
| |||| 0x0800ca9e 10f063fc bl gfx_set_bg_color
| |||| 0x0800caa2 dff8b80b ldr.w r0, [0x0800d662] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| |||| 0x0800caa6 10f063fc bl gfx_set_fg_color
| |`---> 0x0800caaa 01f03dfb bl F_4154
| `----> 0x0800caae dff8c80b ldr.w r0, [0x0800d67e] ; [0x800d67c:4]=0x20004ac9
| || 0x0800cab2 14f0dffe bl gfx_select_font
| || 0x0800cab6 0020 movs r0, 0
| || 0x0800cab8 10f05afc bl gfx_set_fg_color
| || 0x0800cabc 7ff07f40 mvns r0, 0xff000000
| || 0x0800cac0 10f052fc bl gfx_set_bg_color
| || 0x0800cac4 8d23 movs r3, 0x8d ; 141
| || 0x0800cac6 0122 movs r2, 1 ; 1
| || 0x0800cac8 0821 movs r1, 8 ; 8
| || 0x0800caca dff8940b ldr.w r0, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| || 0x0800cace 0068 ldr r0, [r0]
| || 0x0800cad0 0068 ldr r0, [r0]
| || 0x0800cad2 11f019f9 bl gfx_drawtext2
| || 0x0800cad6 dff8a40b ldr.w r0, [0x0800d682] ; [0x800d680:4]=0x2001e90d
| || 0x0800cada 0078 ldrb r0, [r0]
| || 0x0800cadc 0328 cmp r0, 3 ; 3
| ,===< 0x0800cade 1ad0 beq 0x800cb16
| ||| 0x0800cae0 dff8900b ldr.w r0, [0x0800d678] ; [0x800d678:4]=0x80cf780 gfx_font_norm
| ||| 0x0800cae4 0078 ldrb r0, [r0]
| ||| 0x0800cae6 0028 cmp r0, 0
| ,====< 0x0800cae8 15d1 bne 0x800cb16
| |||| 0x0800caea 7ff07f40 mvns r0, 0xff000000
| |||| 0x0800caee 10f03ffc bl gfx_set_fg_color
| |||| 0x0800caf2 1123 movs r3, 0x11 ; 17
| |||| 0x0800caf4 9f22 movs r2, 0x9f ; 159
| |||| 0x0800caf6 0d21 movs r1, 0xd ; 13
| |||| 0x0800caf8 8d20 movs r0, 0x8d ; 141
| |||| 0x0800cafa 10f0c7fe bl gfx_blockfill
| |||| 0x0800cafe 6d23 movs r3, 0x6d ; 'm' ; 109
| |||| 0x0800cb00 9f22 movs r2, 0x9f ; 159
| |||| 0x0800cb02 5121 movs r1, 0x51 ; 'Q' ; 81
| |||| 0x0800cb04 0020 movs r0, 0
| |||| 0x0800cb06 10f0c1fe bl gfx_blockfill
| |||| 0x0800cb0a 6e23 movs r3, 0x6e ; 'n' ; 110
| |||| 0x0800cb0c 5b22 movs r2, 0x5b ; '[' ; 91
| |||| 0x0800cb0e 6e21 movs r1, 0x6e ; 'n' ; 110
| |||| 0x0800cb10 4620 movs r0, 0x46 ; 'F' ; 70
| |||| 0x0800cb12 10f0bbfe bl gfx_blockfill
| ``---> 0x0800cb16 0020 movs r0, 0
| || 0x0800cb18 11f06cfd bl paint_a_lot
| ,===< 0x0800cb1c 00f091bd b.w 0x800d642
| |`--> 0x0800cb20 e4b2 uxtb r4, r4
| | | 0x0800cb22 092c cmp r4, 9 ; 9
| |,==< 0x0800cb24 40f09583 bne.w 0x800d252
| ||| 0x0800cb28 dff8280b ldr.w r0, [0x0800d658] ; [0x800d658:4]=0x2001e908
| ||| 0x0800cb2c b0f90000 ldrsh.w r0, [r0]
| ||| 0x0800cb30 0028 cmp r0, 0
| ,====< 0x0800cb32 0fd1 bne 0x800cb54
| |||| 0x0800cb34 dff8200b ldr.w r0, [0x0800d65c] ; [0x800d65c:4]=0xff1414
| |||| 0x0800cb38 0078 ldrb r0, [r0]
| |||| 0x0800cb3a 0028 cmp r0, 0
| ,=====< 0x0800cb3c 0ad1 bne 0x800cb54
| ||||| 0x0800cb3e dff8400b ldr.w r0, [0x0800d686] ; [0x800d684:4]=0x2001cb58 selected_contact_name_wstring
| ||||| 0x0800cb42 0078 ldrb r0, [r0]
| ||||| 0x0800cb44 0128 cmp r0, 1 ; 1
| ,======< 0x0800cb46 05d0 beq 0x800cb54
| |||||| 0x0800cb48 dff8340b ldr.w r0, [0x0800d684] ; [0x800d684:4]=0x2001cb58 selected_contact_name_wstring
| |||||| 0x0800cb4c 0078 ldrb r0, [r0]
| |||||| 0x0800cb4e 0228 cmp r0, 2 ; 2
| ,=======< 0x0800cb50 40f05183 bne.w 0x800d1f6
| |```----> 0x0800cb54 dff8fc0a ldr.w r0, [0x0800d658] ; [0x800d658:4]=0x2001e908
| | ||| 0x0800cb58 b0f90000 ldrsh.w r0, [r0]
| | ||| 0x0800cb5c 0028 cmp r0, 0
| | ,====< 0x0800cb5e 55d0 beq 0x800cc0c
| | |||| 0x0800cb60 dff8f00a ldr.w r0, [0x0800d658] ; [0x800d658:4]=0x2001e908
| | |||| 0x0800cb64 b0f90000 ldrsh.w r0, [r0]
| | |||| 0x0800cb68 0ff034ff bl gfx_1c9d4
| | |||| 0x0800cb6c dff8e40a ldr.w r0, [0x0800d658] ; [0x800d658:4]=0x2001e908
| | |||| 0x0800cb70 0021 movs r1, 0
| | |||| 0x0800cb72 0180 strh r1, [r0]
| | |||| 0x0800cb74 7ff07f40 mvns r0, 0xff000000
| | |||| 0x0800cb78 10f0fafb bl gfx_set_fg_color
| | |||| 0x0800cb7c 1223 movs r3, 0x12 ; 18
| | |||| 0x0800cb7e 9f22 movs r2, 0x9f ; 159
| | |||| 0x0800cb80 0021 movs r1, 0
| | |||| 0x0800cb82 0020 movs r0, 0
| | |||| 0x0800cb84 10f082fe bl gfx_blockfill
| | |||| 0x0800cb88 0023 movs r3, 0
| | |||| 0x0800cb8a 9f22 movs r2, 0x9f ; 159
| | |||| 0x0800cb8c 0021 movs r1, 0
| | |||| 0x0800cb8e 1320 movs r0, 0x13 ; 19
| | |||| 0x0800cb90 10f07cfe bl gfx_blockfill
| | |||| 0x0800cb94 1023 movs r3, 0x10 ; 16
| | |||| 0x0800cb96 1222 movs r2, 0x12 ; 18
| | |||| 0x0800cb98 0021 movs r1, 0
| | |||| 0x0800cb9a 0020 movs r0, 0
| | |||| 0x0800cb9c 10f076fe bl gfx_blockfill
| | |||| 0x0800cba0 6d23 movs r3, 0x6d ; 'm' ; 109
| | |||| 0x0800cba2 9f22 movs r2, 0x9f ; 159
| | |||| 0x0800cba4 1121 movs r1, 0x11 ; 17
| | |||| 0x0800cba6 0020 movs r0, 0
| | |||| 0x0800cba8 10f070fe bl gfx_blockfill
| | |||| 0x0800cbac 6e23 movs r3, 0x6e ; 'n' ; 110
| | |||| 0x0800cbae 5b22 movs r2, 0x5b ; '[' ; 91
| | |||| 0x0800cbb0 6e21 movs r1, 0x6e ; 'n' ; 110
| | |||| 0x0800cbb2 4620 movs r0, 0x46 ; 'F' ; 70
| | |||| 0x0800cbb4 10f06afe bl gfx_blockfill
| | |||| 0x0800cbb8 dff8a00a ldr.w r0, [0x0800d660] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| | |||| 0x0800cbbc 10f0d8fb bl gfx_set_fg_color
| | |||| 0x0800cbc0 6e23 movs r3, 0x6e ; 'n' ; 110
| | |||| 0x0800cbc2 4522 movs r2, 0x45 ; 'E' ; 69
| | |||| 0x0800cbc4 6e21 movs r1, 0x6e ; 'n' ; 110
| | |||| 0x0800cbc6 0120 movs r0, 1 ; 1
| | |||| 0x0800cbc8 10f060fe bl gfx_blockfill
| | |||| 0x0800cbcc 6e23 movs r3, 0x6e ; 'n' ; 110
| | |||| 0x0800cbce 9e22 movs r2, 0x9e ; 158
| | |||| 0x0800cbd0 6e21 movs r1, 0x6e ; 'n' ; 110
| | |||| 0x0800cbd2 5c20 movs r0, 0x5c ; '\' ; 92
| | |||| 0x0800cbd4 10f05afe bl gfx_blockfill
| | |||| 0x0800cbd8 dff8800a ldr.w r0, [0x0800d660] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| | |||| 0x0800cbdc 10f0c8fb bl gfx_set_fg_color
| | |||| 0x0800cbe0 7e23 movs r3, 0x7e ; '~' ; 126
| | |||| 0x0800cbe2 4522 movs r2, 0x45 ; 'E' ; 69
| | |||| 0x0800cbe4 6e21 movs r1, 0x6e ; 'n' ; 110
| | |||| 0x0800cbe6 0120 movs r0, 1 ; 1
| | |||| 0x0800cbe8 10f050fe bl gfx_blockfill
| | |||| 0x0800cbec 7e23 movs r3, 0x7e ; '~' ; 126
| | |||| 0x0800cbee 9e22 movs r2, 0x9e ; 158
| | |||| 0x0800cbf0 6e21 movs r1, 0x6e ; 'n' ; 110
| | |||| 0x0800cbf2 5c20 movs r0, 0x5c ; '\' ; 92
| | |||| 0x0800cbf4 10f04afe bl gfx_blockfill
| | |||| 0x0800cbf8 7ff07f40 mvns r0, 0xff000000
| | |||| 0x0800cbfc 10f0b8fb bl gfx_set_fg_color
| | |||| 0x0800cc00 7e23 movs r3, 0x7e ; '~' ; 126
| | |||| 0x0800cc02 5b22 movs r2, 0x5b ; '[' ; 91
| | |||| 0x0800cc04 6e21 movs r1, 0x6e ; 'n' ; 110
| | |||| 0x0800cc06 4620 movs r0, 0x46 ; 'F' ; 70
| | |||| 0x0800cc08 10f040fe bl gfx_blockfill
| | `----> 0x0800cc0c dff84c0a ldr.w r0, [0x0800d660] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| | ||| 0x0800cc10 10f0aefb bl gfx_set_fg_color
| | ||| 0x0800cc14 6e23 movs r3, 0x6e ; 'n' ; 110
| | ||| 0x0800cc16 4522 movs r2, 0x45 ; 'E' ; 69
| | ||| 0x0800cc18 6e21 movs r1, 0x6e ; 'n' ; 110
| | ||| 0x0800cc1a 0120 movs r0, 1 ; 1
| | ||| 0x0800cc1c 10f036fe bl gfx_blockfill
| | ||| 0x0800cc20 6e23 movs r3, 0x6e ; 'n' ; 110
| | ||| 0x0800cc22 9e22 movs r2, 0x9e ; 158
| | ||| 0x0800cc24 6e21 movs r1, 0x6e ; 'n' ; 110
| | ||| 0x0800cc26 5c20 movs r0, 0x5c ; '\' ; 92
| | ||| 0x0800cc28 10f030fe bl gfx_blockfill
| | ||| 0x0800cc2c dff82c0a ldr.w r0, [0x0800d660] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| | ||| 0x0800cc30 10f09afb bl gfx_set_bg_color
| | ||| 0x0800cc34 7ff07f40 mvns r0, 0xff000000
| | ||| 0x0800cc38 10f09afb bl gfx_set_fg_color
| | ||| 0x0800cc3c 7e20 movs r0, 0x7e ; '~' ; 126
| | ||| 0x0800cc3e 0090 str r0, [sp]
| | ||| 0x0800cc40 4523 movs r3, 0x45 ; 'E' ; 69
| | ||| 0x0800cc42 6e22 movs r2, 0x6e ; 'n' ; 110
| | ||| 0x0800cc44 0121 movs r1, 1 ; 1
| | ||| 0x0800cc46 dff81c0a ldr.w r0, [0x0800d66a] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| | ||| 0x0800cc4a 0068 ldr r0, [r0]
| | ||| 0x0800cc4c dff8184a ldr.w r4, [0x0800d66c] ; [0x800d66c:4]=0x2001e822
| | ||| 0x0800cc50 14eb8000 adds.w r0, r4, r0, lsl 2
| | ||| 0x0800cc54 d0f82003 ldr.w r0, [r0, 0x320]
| | ||| 0x0800cc58 01f03ef9 bl gfx_drawtext10
| | ||| 0x0800cc5c 7e20 movs r0, 0x7e ; '~' ; 126
| | ||| 0x0800cc5e 0090 str r0, [sp]
| | ||| 0x0800cc60 9f23 movs r3, 0x9f ; 159
| | ||| 0x0800cc62 6e22 movs r2, 0x6e ; 'n' ; 110
| | ||| 0x0800cc64 5c21 movs r1, 0x5c ; '\' ; 92
| | ||| 0x0800cc66 dff8fc09 ldr.w r0, [0x0800d66a] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| | ||| 0x0800cc6a 0068 ldr r0, [r0]
| | ||| 0x0800cc6c dff8f849 ldr.w r4, [0x0800d66c] ; [0x800d66c:4]=0x2001e822
| | ||| 0x0800cc70 14eb8000 adds.w r0, r4, r0, lsl 2
| | ||| 0x0800cc74 d0f82403 ldr.w r0, [r0, 0x324]
| | ||| 0x0800cc78 01f02ef9 bl gfx_drawtext10
| | ||| 0x0800cc7c 7ff07f40 mvns r0, 0xff000000
| | ||| 0x0800cc80 10f072fb bl gfx_set_bg_color
| | ||| 0x0800cc84 dff8d409 ldr.w r0, [0x0800d660] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| | ||| 0x0800cc88 10f072fb bl gfx_set_fg_color
| | ||| 0x0800cc8c 0020 movs r0, 0
| | ||| 0x0800cc8e 10f06ffb bl gfx_set_fg_color
| | ||| 0x0800cc92 1323 movs r3, 0x13 ; 19
| | ||| 0x0800cc94 9f22 movs r2, 0x9f ; 159
| | ||| 0x0800cc96 1321 movs r1, 0x13 ; 19
| | ||| 0x0800cc98 0020 movs r0, 0
| | ||| 0x0800cc9a 10f0f7fd bl gfx_blockfill
| | ||| 0x0800cc9e dff8c009 ldr.w r0, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| | ||| 0x0800cca2 0068 ldr r0, [r0]
| | ||| 0x0800cca4 0068 ldr r0, [r0]
| | ||| 0x0800cca6 dff8bc19 ldr.w r1, [0x0800d66a] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| | ||| 0x0800ccaa 0968 ldr r1, [r1]
| | ||| 0x0800ccac dff8b829 ldr.w r2, [0x0800d66c] ; [0x800d66c:4]=0x2001e822
| | ||| 0x0800ccb0 12eb8101 adds.w r1, r2, r1, lsl 2
| | ||| 0x0800ccb4 d1f8f812 ldr.w r1, [r1, 0x2f8]
| | ||| 0x0800ccb8 8842 cmp r0, r1
| | ,====< 0x0800ccba 00f09c82 beq.w 0x800d1f6
| | |||| 0x0800ccbe dff8a009 ldr.w r0, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| | |||| 0x0800ccc2 0068 ldr r0, [r0]
| | |||| 0x0800ccc4 0068 ldr r0, [r0]
| | |||| 0x0800ccc6 dff89c19 ldr.w r1, [0x0800d66a] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| | |||| 0x0800ccca 0968 ldr r1, [r1]
| | |||| 0x0800cccc dff89829 ldr.w r2, [0x0800d66c] ; [0x800d66c:4]=0x2001e822
| | |||| 0x0800ccd0 12eb8101 adds.w r1, r2, r1, lsl 2
| | |||| 0x0800ccd4 d1f80413 ldr.w r1, [r1, 0x304]
| | |||| 0x0800ccd8 8842 cmp r0, r1
| | ,=====< 0x0800ccda 00f08c82 beq.w 0x800d1f6
| | ||||| 0x0800ccde dff88009 ldr.w r0, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| | ||||| 0x0800cce2 0068 ldr r0, [r0]
| | ||||| 0x0800cce4 0068 ldr r0, [r0]
| | ||||| 0x0800cce6 dff89c19 ldr.w r1, [0x0800d68a] ; [0x800d688:4]=0x2001e82c
| | ||||| 0x0800ccea 8842 cmp r0, r1
| |,======< 0x0800ccec 73d1 bne 0x800cdd6
| ||||||| 0x0800ccee 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800ccf0 0122 movs r2, 1 ; 1
| ||||||| 0x0800ccf2 1321 movs r1, 0x13 ; 19
| ||||||| 0x0800ccf4 dff86c09 ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800ccf8 0068 ldr r0, [r0]
| ||||||| 0x0800ccfa dff86c49 ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800ccfe 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0800cd02 006b ldr r0, [r0, 0x30]
| ||||||| 0x0800cd04 11f000f8 bl gfx_drawtext2
| ||||||| 0x0800cd08 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800cd0a 1922 movs r2, 0x19 ; 25
| ||||||| 0x0800cd0c 0221 movs r1, 2 ; 2
| ||||||| 0x0800cd0e dff85409 ldr.w r0, [0x0800d66a] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800cd12 0068 ldr r0, [r0]
| ||||||| 0x0800cd14 dff85049 ldr.w r4, [0x0800d66c] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800cd18 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0800cd1c d0f83803 ldr.w r0, [r0, 0x338]
| ||||||| 0x0800cd20 10f0f2ff bl gfx_drawtext2
| ||||||| 0x0800cd24 14f0b0fd bl gfx_get_xpos
| ||||||| 0x0800cd28 0500 movs r5, r0
| ||||||| 0x0800cd2a 1b22 movs r2, 0x1b ; 27
| ||||||| 0x0800cd2c edb2 uxtb r5, r5
| ||||||| 0x0800cd2e 15f10a01 adds.w r1, r5, 0xa
| ||||||| 0x0800cd32 09b2 sxth r1, r1
| ||||||| 0x0800cd34 3a20 movs r0, 0x3a ; ':' ; 58
| ||||||| 0x0800cd36 14f003fe bl gfx_drawchar_pos
| ||||||| 0x0800cd3a 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x0800cd3c 0090 str r0, [sp]
| ||||||| 0x0800cd3e 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800cd40 2d22 movs r2, 0x2d ; '-' ; 45
| ||||||| 0x0800cd42 1421 movs r1, 0x14 ; 20
| ||||||| 0x0800cd44 dff81809 ldr.w r0, [0x0800d664] ; [0x800d664:4]=0x2001e6ec
| ||||||| 0x0800cd48 0068 ldr r0, [r0]
| ||||||| 0x0800cd4a 0068 ldr r0, [r0]
| ||||||| 0x0800cd4c 01f0c4f8 bl gfx_drawtext10
| ||||||| 0x0800cd50 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800cd52 4122 movs r2, 0x41 ; 'A' ; 65
| ||||||| 0x0800cd54 0221 movs r1, 2 ; 2
| ||||||| 0x0800cd56 dff80c09 ldr.w r0, [0x0800d66a] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800cd5a 0068 ldr r0, [r0]
| ||||||| 0x0800cd5c dff80849 ldr.w r4, [0x0800d66c] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800cd60 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0800cd64 d0f87802 ldr.w r0, [r0, 0x278]
| ||||||| 0x0800cd68 10f0ceff bl gfx_drawtext2
| ||||||| 0x0800cd6c 14f08cfd bl gfx_get_xpos
| ||||||| 0x0800cd70 0500 movs r5, r0
| ||||||| 0x0800cd72 4322 movs r2, 0x43 ; 'C' ; 67
| ||||||| 0x0800cd74 edb2 uxtb r5, r5
| ||||||| 0x0800cd76 15f10a01 adds.w r1, r5, 0xa
| ||||||| 0x0800cd7a 09b2 sxth r1, r1
| ||||||| 0x0800cd7c 3a20 movs r0, 0x3a ; ':' ; 58
| ||||||| 0x0800cd7e 14f0dffd bl gfx_drawchar_pos
| ||||||| 0x0800cd82 6820 movs r0, 0x68 ; 'h' ; 104
| ||||||| 0x0800cd84 0090 str r0, [sp]
| ||||||| 0x0800cd86 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800cd88 5522 movs r2, 0x55 ; 'U' ; 85
| ||||||| 0x0800cd8a 0021 movs r1, 0
| ||||||| 0x0800cd8c dff8bc08 ldr.w r0, [0x0800d650] ; [0x800d650:4]=0x2001e94d gui_opmode1
| ||||||| 0x0800cd90 0068 ldr r0, [r0]
| ||||||| 0x0800cd92 0068 ldr r0, [r0]
| ||||||| 0x0800cd94 01f0a0f8 bl gfx_drawtext10
| ||||||| 0x0800cd98 dff8ec08 ldr.w r0, [0x0800d68c] ; [0x800d68c:4]=0x2001e82e
| ||||||| 0x0800cd9c 0088 ldrh r0, [r0]
| ||||||| 0x0800cd9e 401c adds r0, r0, 1
| ||||||| 0x0800cda0 80b2 uxth r0, r0
| ||||||| 0x0800cda2 04f0a7fc bl func_116f4
| ||||||| 0x0800cda6 dff8e418 ldr.w r1, [0x0800d692] ; [0x800d690:4]=0x2001e90e
| ||||||| 0x0800cdaa 0880 strh r0, [r1]
| ||||||| 0x0800cdac dff8dc08 ldr.w r0, [0x0800d690] ; [0x800d690:4]=0x2001e90e
| ||||||| 0x0800cdb0 0088 ldrh r0, [r0]
| ||||||| 0x0800cdb2 15f012fe bl func_229da
| ||||||| 0x0800cdb6 04f0bffd bl func_11938
| ||||||| 0x0800cdba 2e22 movs r2, 0x2e ; '.' ; 46
| ||||||| 0x0800cdbc 0321 movs r1, 3 ; 3
| ||||||| 0x0800cdbe dff8d008 ldr.w r0, [0x0800d696] ; [0x800d694:4]=0x20004184
| ||||||| 0x0800cdc2 0078 ldrb r0, [r0]
| ||||||| 0x0800cdc4 1423 movs r3, 0x14 ; 20
| ||||||| 0x0800cdc6 dff8cc48 ldr.w r4, [0x0800d69a] ; [0x800d698:4]=0x2001db0c
| ||||||| 0x0800cdca 03fb0040 mla r0, r3, r0, r4
| ||||||| 0x0800cdce 5038 subs r0, 0x50
| ||||||| 0x0800cdd0 16f015fd bl gfx_drawbmp
| ========< 0x0800cdd4 0fe2 b 0x800d1f6
| |`------> 0x0800cdd6 dff88808 ldr.w r0, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| | ||||| 0x0800cdda 0068 ldr r0, [r0]
| | ||||| 0x0800cddc 0068 ldr r0, [r0]
| | ||||| 0x0800cdde dff8b818 ldr.w r1, [0x0800d69e] ; [0x800d69c:4]=0xb091b530
| | ||||| 0x0800cde2 8842 cmp r0, r1
| |,======< 0x0800cde4 56d1 bne 0x800ce94
| ||||||| 0x0800cde6 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800cde8 0122 movs r2, 1 ; 1
| ||||||| 0x0800cdea 1321 movs r1, 0x13 ; 19
| ||||||| 0x0800cdec dff87408 ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800cdf0 0068 ldr r0, [r0]
| ||||||| 0x0800cdf2 dff87448 ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800cdf6 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0800cdfa d0f82401 ldr.w r0, [r0, 0x124]
| ||||||| 0x0800cdfe 10f083ff bl gfx_drawtext2
| ||||||| 0x0800ce02 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800ce04 1922 movs r2, 0x19 ; 25
| ||||||| 0x0800ce06 0221 movs r1, 2 ; 2
| ||||||| 0x0800ce08 dff85808 ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800ce0c 0068 ldr r0, [r0]
| ||||||| 0x0800ce0e dff85848 ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800ce12 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0800ce16 d0f83803 ldr.w r0, [r0, 0x338]
| ||||||| 0x0800ce1a 10f075ff bl gfx_drawtext2
| ||||||| 0x0800ce1e 14f033fd bl gfx_get_xpos
| ||||||| 0x0800ce22 0500 movs r5, r0
| ||||||| 0x0800ce24 1b22 movs r2, 0x1b ; 27
| ||||||| 0x0800ce26 edb2 uxtb r5, r5
| ||||||| 0x0800ce28 15f10a01 adds.w r1, r5, 0xa
| ||||||| 0x0800ce2c 09b2 sxth r1, r1
| ||||||| 0x0800ce2e 3a20 movs r0, 0x3a ; ':' ; 58
| ||||||| 0x0800ce30 14f086fd bl gfx_drawchar_pos
| ||||||| 0x0800ce34 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x0800ce36 0090 str r0, [sp]
| ||||||| 0x0800ce38 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800ce3a 2d22 movs r2, 0x2d ; '-' ; 45
| ||||||| 0x0800ce3c 0021 movs r1, 0
| ||||||| 0x0800ce3e dff82008 ldr.w r0, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| ||||||| 0x0800ce42 0068 ldr r0, [r0]
| ||||||| 0x0800ce44 0068 ldr r0, [r0]
| ||||||| 0x0800ce46 01f047f8 bl gfx_drawtext10
| ||||||| 0x0800ce4a 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800ce4c 4122 movs r2, 0x41 ; 'A' ; 65
| ||||||| 0x0800ce4e 0221 movs r1, 2 ; 2
| ||||||| 0x0800ce50 dff81008 ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800ce54 0068 ldr r0, [r0]
| ||||||| 0x0800ce56 dff81048 ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800ce5a 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0800ce5e d0f87802 ldr.w r0, [r0, 0x278]
| ||||||| 0x0800ce62 10f051ff bl gfx_drawtext2
| ||||||| 0x0800ce66 14f00ffd bl gfx_get_xpos
| ||||||| 0x0800ce6a 0500 movs r5, r0
| ||||||| 0x0800ce6c 4322 movs r2, 0x43 ; 'C' ; 67
| ||||||| 0x0800ce6e edb2 uxtb r5, r5
| ||||||| 0x0800ce70 15f10a01 adds.w r1, r5, 0xa
| ||||||| 0x0800ce74 09b2 sxth r1, r1
| ||||||| 0x0800ce76 3a20 movs r0, 0x3a ; ':' ; 58
| ||||||| 0x0800ce78 14f062fd bl gfx_drawchar_pos
| ||||||| 0x0800ce7c 6820 movs r0, 0x68 ; 'h' ; 104
| ||||||| 0x0800ce7e 0090 str r0, [sp]
| ||||||| 0x0800ce80 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800ce82 5522 movs r2, 0x55 ; 'U' ; 85
| ||||||| 0x0800ce84 0021 movs r1, 0
| ||||||| 0x0800ce86 dff8c407 ldr.w r0, [0x0800d652] ; [0x800d650:4]=0x2001e94d gui_opmode1
| ||||||| 0x0800ce8a 0068 ldr r0, [r0]
| ||||||| 0x0800ce8c 0068 ldr r0, [r0]
| ||||||| 0x0800ce8e 01f023f8 bl gfx_drawtext10
| ========< 0x0800ce92 b0e1 b 0x800d1f6
| |`------> 0x0800ce94 dff8c807 ldr.w r0, [0x0800d664] ; [0x800d664:4]=0x2001e6ec
| | ||||| 0x0800ce98 0068 ldr r0, [r0]
| | ||||| 0x0800ce9a 0068 ldr r0, [r0]
| | ||||| 0x0800ce9c dff8c417 ldr.w r1, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| | ||||| 0x0800cea0 0968 ldr r1, [r1]
| | ||||| 0x0800cea2 dff8c427 ldr.w r2, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| | ||||| 0x0800cea6 12eb8101 adds.w r1, r2, r1, lsl 2
| | ||||| 0x0800ceaa d1f82c11 ldr.w r1, [r1, 0x12c]
| | ||||| 0x0800ceae 8842 cmp r0, r1
| |,======< 0x0800ceb0 5ad1 bne 0x800cf68
| ||||||| 0x0800ceb2 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800ceb4 0122 movs r2, 1 ; 1
| ||||||| 0x0800ceb6 1321 movs r1, 0x13 ; 19
| ||||||| 0x0800ceb8 dff8a807 ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800cebc 0068 ldr r0, [r0]
| ||||||| 0x0800cebe dff8a847 ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800cec2 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0800cec6 d0f82401 ldr.w r0, [r0, 0x124]
| ||||||| 0x0800ceca 10f01dff bl gfx_drawtext2
| ||||||| 0x0800cece 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800ced0 1922 movs r2, 0x19 ; 25
| ||||||| 0x0800ced2 0221 movs r1, 2 ; 2
| ||||||| 0x0800ced4 dff88c07 ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800ced8 0068 ldr r0, [r0]
| ||||||| 0x0800ceda dff88c47 ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800cede 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0800cee2 d0f82c01 ldr.w r0, [r0, 0x12c]
| ||||||| 0x0800cee6 10f00fff bl gfx_drawtext2
| ||||||| 0x0800ceea 14f0cdfc bl gfx_get_xpos
| ||||||| 0x0800ceee 0500 movs r5, r0
| ||||||| 0x0800cef0 1b22 movs r2, 0x1b ; 27
| ||||||| 0x0800cef2 edb2 uxtb r5, r5
| ||||||| 0x0800cef4 15f10a01 adds.w r1, r5, 0xa
| ||||||| 0x0800cef8 09b2 sxth r1, r1
| ||||||| 0x0800cefa 3a20 movs r0, 0x3a ; ':' ; 58
| ||||||| 0x0800cefc 14f020fd bl gfx_drawchar_pos
| ||||||| 0x0800cf00 09f0c9fd bl func_16a96_copy_version_nr_to_print_buffer
| ||||||| 0x0800cf04 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x0800cf06 0090 str r0, [sp]
| ||||||| 0x0800cf08 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800cf0a 2d22 movs r2, 0x2d ; '-' ; 45
| ||||||| 0x0800cf0c 0021 movs r1, 0
| ||||||| 0x0800cf0e dff83c07 ldr.w r0, [0x0800d652] ; [0x800d650:4]=0x2001e94d gui_opmode1
| ||||||| 0x0800cf12 0068 ldr r0, [r0]
| ||||||| 0x0800cf14 0068 ldr r0, [r0]
| ||||||| 0x0800cf16 00f0dfff bl gfx_drawtext10
| ||||||| 0x0800cf1a 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800cf1c 4122 movs r2, 0x41 ; 'A' ; 65
| ||||||| 0x0800cf1e 0221 movs r1, 2 ; 2
| ||||||| 0x0800cf20 dff84007 ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800cf24 0068 ldr r0, [r0]
| ||||||| 0x0800cf26 dff84047 ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800cf2a 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0800cf2e d0f83001 ldr.w r0, [r0, 0x130]
| ||||||| 0x0800cf32 10f0e9fe bl gfx_drawtext2
| ||||||| 0x0800cf36 14f0a7fc bl gfx_get_xpos
| ||||||| 0x0800cf3a 0500 movs r5, r0
| ||||||| 0x0800cf3c 4322 movs r2, 0x43 ; 'C' ; 67
| ||||||| 0x0800cf3e edb2 uxtb r5, r5
| ||||||| 0x0800cf40 15f10a01 adds.w r1, r5, 0xa
| ||||||| 0x0800cf44 09b2 sxth r1, r1
| ||||||| 0x0800cf46 3a20 movs r0, 0x3a ; ':' ; 58
| ||||||| 0x0800cf48 14f0fafc bl gfx_drawchar_pos
| ||||||| 0x0800cf4c 09f0c2fd bl func_16ad4
| ||||||| 0x0800cf50 6820 movs r0, 0x68 ; 'h' ; 104
| ||||||| 0x0800cf52 0090 str r0, [sp]
| ||||||| 0x0800cf54 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800cf56 5522 movs r2, 0x55 ; 'U' ; 85
| ||||||| 0x0800cf58 0021 movs r1, 0
| ||||||| 0x0800cf5a dff8f006 ldr.w r0, [0x0800d652] ; [0x800d650:4]=0x2001e94d gui_opmode1
| ||||||| 0x0800cf5e 0068 ldr r0, [r0]
| ||||||| 0x0800cf60 0068 ldr r0, [r0]
| ||||||| 0x0800cf62 00f0b9ff bl gfx_drawtext10
| ========< 0x0800cf66 46e1 b 0x800d1f6
| |`------> 0x0800cf68 dff8140c ldr.w r0, [0x0800db84] ; [0x800db84:4]=0x2001e3e8
| | ||||| 0x0800cf6c c078 ldrb r0, [r0, 3]
| | ||||| 0x0800cf6e 0028 cmp r0, 0
| |,======< 0x0800cf70 04d0 beq 0x800cf7c
| ||||||| 0x0800cf72 dff80c07 ldr.w r0, [0x0800d686] ; [0x800d684:4]=0x2001cb58 selected_contact_name_wstring
| ||||||| 0x0800cf76 0078 ldrb r0, [r0]
| ||||||| 0x0800cf78 0228 cmp r0, 2 ; 2
| ========< 0x0800cf7a 0bd1 bne 0x800cf94
| |`------> 0x0800cf7c dff8040c ldr.w r0, [func_0db88] ; [0x800db88:4]=0xf8dfb51f
| | ||||| 0x0800cf80 c078 ldrb r0, [r0, 3]
| | ||||| 0x0800cf82 0028 cmp r0, 0
| |,======< 0x0800cf84 00f0e780 beq.w 0x800d156
| ||||||| 0x0800cf88 dff8f406 ldr.w r0, [0x0800d684] ; [0x800d684:4]=0x2001cb58 selected_contact_name_wstring
| ||||||| 0x0800cf8c 0078 ldrb r0, [r0]
| ||||||| 0x0800cf8e 0128 cmp r0, 1 ; 1
| ========< 0x0800cf90 00f0e180 beq.w 0x800d156
| --------> 0x0800cf94 dff8e806 ldr.w r0, [0x0800d684] ; [0x800d684:4]=0x2001cb58 selected_contact_name_wstring
| ||||||| 0x0800cf98 0078 ldrb r0, [r0]
| ||||||| 0x0800cf9a 0228 cmp r0, 2 ; 2
| ========< 0x0800cf9c 03d1 bne 0x800cfa6
| ||||||| 0x0800cf9e dff8400d ldr.w r0, [0x0800dce6] ; [0x800dce4:4]=0x2001e6d0
| ||||||| 0x0800cfa2 0421 movs r1, 4 ; 4
| ||||||| 0x0800cfa4 0170 strb r1, [r0]
| --------> 0x0800cfa6 dff83c0d ldr.w r0, [0x0800dcea] ; [0x800dce8:4]=0x2001e1d4
| ||||||| 0x0800cfaa 0068 ldr r0, [r0]
| ||||||| 0x0800cfac 19f022f8 bl func_25ff4
| ||||||| 0x0800cfb0 dff8344d ldr.w r4, [func_0dcec] ; [0x800dcec:4]=0xf8dfb5e0
| ||||||| 0x0800cfb4 80b2 uxth r0, r0
| ||||||| 0x0800cfb6 0028 cmp r0, 0
| ========< 0x0800cfb8 03d0 beq 0x800cfc2
| ||||||| 0x0800cfba 80b2 uxth r0, r0
| ||||||| 0x0800cfbc 15f0fbfc bl func_229b6
| ========< 0x0800cfc0 0de0 b 0x800cfde
| --------> 0x0800cfc2 2100 movs r1, r4
| ||||||| 0x0800cfc4 dff81c0d ldr.w r0, [0x0800dce8] ; [0x800dce8:4]=0x2001e1d4
| ||||||| 0x0800cfc8 0068 ldr r0, [r0]
| ||||||| 0x0800cfca 0002 lsls r0, r0, 8
| ||||||| 0x0800cfcc 000a lsrs r0, r0, 8
| ||||||| 0x0800cfce 1af005fb bl func_275dc
| ||||||| 0x0800cfd2 c0b2 uxtb r0, r0
| ||||||| 0x0800cfd4 14eb4004 adds.w r4, r4, r0, lsl 1
| ||||||| 0x0800cfd8 0020 movs r0, 0
| ||||||| 0x0800cfda 2080 strh r0, [r4]
| ||||||| 0x0800cfdc a41c adds r4, r4, 2
| --------> 0x0800cfde 1220 movs r0, 0x12 ; 18
| ||||||| 0x0800cfe0 0090 str r0, [sp]
| ||||||| 0x0800cfe2 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800cfe4 0022 movs r2, 0
| ||||||| 0x0800cfe6 0021 movs r1, 0
| ||||||| 0x0800cfe8 dff87806 ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800cfec 0068 ldr r0, [r0]
| ||||||| 0x0800cfee dff87846 ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800cff2 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0800cff6 d0f8bc03 ldr.w r0, [r0, 0x3bc]
| ||||||| 0x0800cffa 00f06dff bl gfx_drawtext10
| ||||||| 0x0800cffe 1423 movs r3, 0x14 ; 20
| ||||||| 0x0800d000 1922 movs r2, 0x19 ; 25
| ||||||| 0x0800d002 0221 movs r1, 2 ; 2
| ||||||| 0x0800d004 dff8e00c ldr.w r0, [func_0dcec] ; [0x800dcec:4]=0xf8dfb5e0
| ||||||| 0x0800d008 1af08efb bl gfx_drawtext6
| ||||||| 0x0800d00c 14f03cfc bl gfx_get_xpos
| ||||||| 0x0800d010 0500 movs r5, r0
| ||||||| 0x0800d012 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0800d016 10f0abf9 bl gfx_set_fg_color
| ||||||| 0x0800d01a 2a23 movs r3, 0x2a ; '*' ; 42
| ||||||| 0x0800d01c edb2 uxtb r5, r5
| ||||||| 0x0800d01e 15f10902 adds.w r2, r5, 9
| ||||||| 0x0800d022 1921 movs r1, 0x19 ; 25
| ||||||| 0x0800d024 edb2 uxtb r5, r5
| ||||||| 0x0800d026 2800 movs r0, r5
| ||||||| 0x0800d028 10f030fc bl gfx_blockfill
| ||||||| 0x0800d02c 0020 movs r0, 0
| ||||||| 0x0800d02e 10f09ff9 bl gfx_set_fg_color
| ||||||| 0x0800d032 1b22 movs r2, 0x1b ; 27
| ||||||| 0x0800d034 edb2 uxtb r5, r5
| ||||||| 0x0800d036 15f10a01 adds.w r1, r5, 0xa
| ||||||| 0x0800d03a 09b2 sxth r1, r1
| ||||||| 0x0800d03c 3a20 movs r0, 0x3a ; ':' ; 58
| ||||||| 0x0800d03e 14f07ffc bl gfx_drawchar_pos
| ||||||| 0x0800d042 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0800d046 10f093f9 bl gfx_set_fg_color
| ||||||| 0x0800d04a 2a23 movs r3, 0x2a ; '*' ; 42
| ||||||| 0x0800d04c 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0800d04e 1921 movs r1, 0x19 ; 25
| ||||||| 0x0800d050 edb2 uxtb r5, r5
| ||||||| 0x0800d052 15f11000 adds.w r0, r5, 0x10
| ||||||| 0x0800d056 10f019fc bl gfx_blockfill
| ||||||| 0x0800d05a 0020 movs r0, 0
| ||||||| 0x0800d05c 10f088f9 bl gfx_set_fg_color
| ||||||| 0x0800d060 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800d062 2c22 movs r2, 0x2c ; ',' ; 44
| ||||||| 0x0800d064 1421 movs r1, 0x14 ; 20
| ||||||| 0x0800d066 dff8f805 ldr.w r0, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| ||||||| 0x0800d06a 0068 ldr r0, [r0]
| ||||||| 0x0800d06c 0068 ldr r0, [r0]
| ||||||| 0x0800d06e 10f04bfe bl gfx_drawtext2
| ||||||| 0x0800d072 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800d074 4022 movs r2, 0x40 ; '@' ; 64
| ||||||| 0x0800d076 1421 movs r1, 0x14 ; 20
| ||||||| 0x0800d078 dff8d005 ldr.w r0, [0x0800d650] ; [0x800d650:4]=0x2001e94d gui_opmode1
| ||||||| 0x0800d07c 0068 ldr r0, [r0]
| ||||||| 0x0800d07e 0068 ldr r0, [r0]
| ||||||| 0x0800d080 10f042fe bl gfx_drawtext2
| ||||||| 0x0800d084 dff8f805 ldr.w r0, [0x0800d684] ; [0x800d684:4]=0x2001cb58 selected_contact_name_wstring
| ||||||| 0x0800d088 0078 ldrb r0, [r0]
| ||||||| 0x0800d08a 0128 cmp r0, 1 ; 1
| ========< 0x0800d08c 40f0b380 bne.w 0x800d1f6
| ||||||| 0x0800d090 1423 movs r3, 0x14 ; 20
| ||||||| 0x0800d092 5522 movs r2, 0x55 ; 'U' ; 85
| ||||||| 0x0800d094 0221 movs r1, 2 ; 2
| ||||||| 0x0800d096 dff8cc05 ldr.w r0, [0x0800d66a] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800d09a 0068 ldr r0, [r0]
| ||||||| 0x0800d09c dff8c845 ldr.w r4, [0x0800d66c] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800d0a0 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0800d0a4 d0f8cc03 ldr.w r0, [r0, 0x3cc]
| ||||||| 0x0800d0a8 1af03efb bl gfx_drawtext6
| ||||||| 0x0800d0ac 14f0ecfb bl gfx_get_xpos
| ||||||| 0x0800d0b0 0500 movs r5, r0
| ||||||| 0x0800d0b2 5522 movs r2, 0x55 ; 'U' ; 85
| ||||||| 0x0800d0b4 edb2 uxtb r5, r5
| ||||||| 0x0800d0b6 2900 movs r1, r5
| ||||||| 0x0800d0b8 09b2 sxth r1, r1
| ||||||| 0x0800d0ba 3a20 movs r0, 0x3a ; ':' ; 58
| ||||||| 0x0800d0bc 14f040fc bl gfx_drawchar_pos
| ||||||| 0x0800d0c0 14f0e2fb bl gfx_get_xpos
| ||||||| 0x0800d0c4 0500 movs r5, r0
| ||||||| 0x0800d0c6 04ac add r4, sp, 0x10
| ||||||| 0x0800d0c8 2100 movs r1, r4
| ||||||| 0x0800d0ca dff8b40a ldr.w r0, [0x0800db86] ; [0x800db84:4]=0x2001e3e8
| ||||||| 0x0800d0ce 008a ldrh r0, [r0, 0x10]
| ||||||| 0x0800d0d0 1af084fa bl func_275dc
| ||||||| 0x0800d0d4 c0b2 uxtb r0, r0
| ||||||| 0x0800d0d6 14eb4004 adds.w r4, r4, r0, lsl 1
| ||||||| 0x0800d0da 0020 movs r0, 0
| ||||||| 0x0800d0dc 2080 strh r0, [r4]
| ||||||| 0x0800d0de a41c adds r4, r4, 2
| ||||||| 0x0800d0e0 5e23 movs r3, 0x5e ; '^' ; 94
| ||||||| 0x0800d0e2 5522 movs r2, 0x55 ; 'U' ; 85
| ||||||| 0x0800d0e4 edb2 uxtb r5, r5
| ||||||| 0x0800d0e6 2900 movs r1, r5
| ||||||| 0x0800d0e8 04a8 add r0, sp, 0x10
| ||||||| 0x0800d0ea 10f00dfe bl gfx_drawtext2
| ||||||| 0x0800d0ee 14f0cbfb bl gfx_get_xpos
| ||||||| 0x0800d0f2 0500 movs r5, r0
| ||||||| 0x0800d0f4 1423 movs r3, 0x14 ; 20
| ||||||| 0x0800d0f6 5522 movs r2, 0x55 ; 'U' ; 85
| ||||||| 0x0800d0f8 5f21 movs r1, 0x5f ; '_' ; 95
| ||||||| 0x0800d0fa dff86805 ldr.w r0, [0x0800d66a] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800d0fe 0068 ldr r0, [r0]
| ||||||| 0x0800d100 dff86465 ldr.w r6, [0x0800d66c] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800d104 16eb8000 adds.w r0, r6, r0, lsl 2
| ||||||| 0x0800d108 d0f8d003 ldr.w r0, [r0, 0x3d0]
| ||||||| 0x0800d10c 1af00cfb bl gfx_drawtext6
| ||||||| 0x0800d110 14f0bafb bl gfx_get_xpos
| ||||||| 0x0800d114 0500 movs r5, r0
| ||||||| 0x0800d116 5522 movs r2, 0x55 ; 'U' ; 85
| ||||||| 0x0800d118 edb2 uxtb r5, r5
| ||||||| 0x0800d11a 2900 movs r1, r5
| ||||||| 0x0800d11c 09b2 sxth r1, r1
| ||||||| 0x0800d11e 3a20 movs r0, 0x3a ; ':' ; 58
| ||||||| 0x0800d120 14f00efc bl gfx_drawchar_pos
| ||||||| 0x0800d124 14f0b0fb bl gfx_get_xpos
| ||||||| 0x0800d128 0500 movs r5, r0
| ||||||| 0x0800d12a 04a8 add r0, sp, 0x10
| ||||||| 0x0800d12c 0400 movs r4, r0
| ||||||| 0x0800d12e 2100 movs r1, r4
| ||||||| 0x0800d130 dff84c0a ldr.w r0, [0x0800db84] ; [0x800db84:4]=0x2001e3e8
| ||||||| 0x0800d134 c089 ldrh r0, [r0, 0xe]
| ||||||| 0x0800d136 1af051fa bl func_275dc
| ||||||| 0x0800d13a c0b2 uxtb r0, r0
| ||||||| 0x0800d13c 14eb4004 adds.w r4, r4, r0, lsl 1
| ||||||| 0x0800d140 0020 movs r0, 0
| ||||||| 0x0800d142 2080 strh r0, [r4]
| ||||||| 0x0800d144 a41c adds r4, r4, 2
| ||||||| 0x0800d146 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800d148 5522 movs r2, 0x55 ; 'U' ; 85
| ||||||| 0x0800d14a edb2 uxtb r5, r5
| ||||||| 0x0800d14c 2900 movs r1, r5
| ||||||| 0x0800d14e 04a8 add r0, sp, 0x10
| ||||||| 0x0800d150 10f0dafd bl gfx_drawtext2
| ========< 0x0800d154 4fe0 b 0x800d1f6
| -`------> 0x0800d156 7ff07f40 mvns r0, 0xff000000
| | ||||| 0x0800d15a 10f009f9 bl gfx_set_fg_color
| | ||||| 0x0800d15e 2b23 movs r3, 0x2b ; '+' ; 43
| | ||||| 0x0800d160 9f22 movs r2, 0x9f ; 159
| | ||||| 0x0800d162 1421 movs r1, 0x14 ; 20
| | ||||| 0x0800d164 0020 movs r0, 0
| | ||||| 0x0800d166 10f091fb bl gfx_blockfill
| | ||||| 0x0800d16a 6d23 movs r3, 0x6d ; 'm' ; 109
| | ||||| 0x0800d16c 9f22 movs r2, 0x9f ; 159
| | ||||| 0x0800d16e 5021 movs r1, 0x50 ; 'P' ; 80
| | ||||| 0x0800d170 0020 movs r0, 0
| | ||||| 0x0800d172 10f08bfb bl gfx_blockfill
| | ||||| 0x0800d176 0020 movs r0, 0
| | ||||| 0x0800d178 10f0faf8 bl gfx_set_fg_color
| | ||||| 0x0800d17c dff80005 ldr.w r0, [0x0800d684] ; [0x800d684:4]=0x2001cb58 selected_contact_name_wstring
| | ||||| 0x0800d180 0078 ldrb r0, [r0]
| | ||||| 0x0800d182 0228 cmp r0, 2 ; 2
| |,======< 0x0800d184 1bd1 bne 0x800d1be
| ||||||| 0x0800d186 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800d188 2c22 movs r2, 0x2c ; ',' ; 44
| ||||||| 0x0800d18a 1421 movs r1, 0x14 ; 20
| ||||||| 0x0800d18c dff8d404 ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800d190 0068 ldr r0, [r0]
| ||||||| 0x0800d192 dff8d444 ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| ||||||| 0x0800d196 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0800d19a d0f8e403 ldr.w r0, [r0, 0x3e4]
| ||||||| 0x0800d19e 10f0b3fd bl gfx_drawtext2
| ||||||| 0x0800d1a2 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0800d1a6 10f0e3f8 bl gfx_set_fg_color
| ||||||| 0x0800d1aa 5023 movs r3, 0x50 ; 'P' ; 80
| ||||||| 0x0800d1ac 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0800d1ae 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0800d1b0 0020 movs r0, 0
| ||||||| 0x0800d1b2 10f06bfb bl gfx_blockfill
| ||||||| 0x0800d1b6 0020 movs r0, 0
| ||||||| 0x0800d1b8 10f0daf8 bl gfx_set_fg_color
| ========< 0x0800d1bc 1be0 b 0x800d1f6
| |`------> 0x0800d1be 9f23 movs r3, 0x9f ; 159
| | ||||| 0x0800d1c0 2c22 movs r2, 0x2c ; ',' ; 44
| | ||||| 0x0800d1c2 1421 movs r1, 0x14 ; 20
| | ||||| 0x0800d1c4 dff89c04 ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| | ||||| 0x0800d1c8 0068 ldr r0, [r0]
| | ||||| 0x0800d1ca dff89c44 ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| | ||||| 0x0800d1ce 14eb8000 adds.w r0, r4, r0, lsl 2
| | ||||| 0x0800d1d2 d0f8c003 ldr.w r0, [r0, 0x3c0]
| | ||||| 0x0800d1d6 10f097fd bl gfx_drawtext2
| | ||||| 0x0800d1da 9f23 movs r3, 0x9f ; 159
| | ||||| 0x0800d1dc 4022 movs r2, 0x40 ; '@' ; 64
| | ||||| 0x0800d1de 1421 movs r1, 0x14 ; 20
| | ||||| 0x0800d1e0 dff88004 ldr.w r0, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| | ||||| 0x0800d1e4 0068 ldr r0, [r0]
| | ||||| 0x0800d1e6 dff88044 ldr.w r4, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| | ||||| 0x0800d1ea 14eb8000 adds.w r0, r4, r0, lsl 2
| | ||||| 0x0800d1ee d0f8c403 ldr.w r0, [r0, 0x3c4]
| | ||||| 0x0800d1f2 10f089fd bl gfx_drawtext2
| `-``----> 0x0800d1f6 dff86804 ldr.w r0, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| ||| 0x0800d1fa 0068 ldr r0, [r0]
| ||| 0x0800d1fc 0068 ldr r0, [r0]
| ||| 0x0800d1fe dff86414 ldr.w r1, [0x0800d66a] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||| 0x0800d202 0968 ldr r1, [r1]
| ||| 0x0800d204 dff86024 ldr.w r2, [0x0800d66c] ; [0x800d66c:4]=0x2001e822
| ||| 0x0800d208 12eb8101 adds.w r1, r2, r1, lsl 2
| ||| 0x0800d20c d1f8f812 ldr.w r1, [r1, 0x2f8]
| ||| 0x0800d210 8842 cmp r0, r1
| ,====< 0x0800d212 0fd0 beq 0x800d234
| |||| 0x0800d214 dff84804 ldr.w r0, [0x0800d664] ; [0x800d664:4]=0x2001e6ec
| |||| 0x0800d218 0068 ldr r0, [r0]
| |||| 0x0800d21a 0068 ldr r0, [r0]
| |||| 0x0800d21c dff84414 ldr.w r1, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| |||| 0x0800d220 0968 ldr r1, [r1]
| |||| 0x0800d222 dff84424 ldr.w r2, [0x0800d66e] ; [0x800d66c:4]=0x2001e822
| |||| 0x0800d226 12eb8101 adds.w r1, r2, r1, lsl 2
| |||| 0x0800d22a d1f80413 ldr.w r1, [r1, 0x304]
| |||| 0x0800d22e 8842 cmp r0, r1
| ,=====< 0x0800d230 40f00782 bne.w 0x800d642
| |`----> 0x0800d234 9f23 movs r3, 0x9f ; 159
| | ||| 0x0800d236 0122 movs r2, 1 ; 1
| | ||| 0x0800d238 1321 movs r1, 0x13 ; 19
| | ||| 0x0800d23a dff82404 ldr.w r0, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| | ||| 0x0800d23e 0068 ldr r0, [r0]
| | ||| 0x0800d240 0068 ldr r0, [r0]
| | ||| 0x0800d242 10f061fd bl gfx_drawtext2
| | ||| 0x0800d246 dff88c0c ldr.w r0, [0x0800deda] ; [0x800ded8:4]=0x9c04b51c
| | ||| 0x0800d24a 0078 ldrb r0, [r0]
| | ||| 0x0800d24c 11f058fc bl handle_keycode_F_4171
| |,====< 0x0800d250 f7e1 b 0x800d642
| |||`--> 0x0800d252 e4b2 uxtb r4, r4
| ||| | 0x0800d254 052c cmp r4, 5 ; 5
| |||,==< 0x0800d256 62d1 bne 0x800d31e
| ||||| 0x0800d258 cda1 adr r1, 0x334
| ||||| 0x0800d25a dff8f803 ldr.w r0, [0x0800d65a] ; [0x800d658:4]=0x2001e908
| ||||| 0x0800d25e b0f90000 ldrsh.w r0, [r0]
| ||||| 0x0800d262 1af003fe bl func_27e6c
| ||||| 0x0800d266 0e20 movs r0, 0xe ; 14
| ||||| 0x0800d268 0390 str r0, [sp, 0xc]
| ||||| 0x0800d26a c9a0 adr r0, 0x324
| ||||| 0x0800d26c 0290 str r0, [sp, 8]
| ||||| 0x0800d26e 0620 movs r0, 6 ; 6
| ||||| 0x0800d270 0190 str r0, [sp, 4]
| ||||| 0x0800d272 4ff4b070 mov.w r0, 0x160 ; 352
| ||||| 0x0800d276 0090 str r0, [sp]
| ||||| 0x0800d278 2a23 movs r3, 0x2a ; '*' ; 42
| ||||| 0x0800d27a 8b22 movs r2, 0x8b ; 139
| ||||| 0x0800d27c 0d21 movs r1, 0xd ; 13
| ||||| 0x0800d27e 0a20 movs r0, 0xa ; 10
| ||||| 0x0800d280 1af026fe bl func_27ed0
| ||||| 0x0800d284 0400 movs r4, r0
| ||||| 0x0800d286 0e20 movs r0, 0xe ; 14
| ||||| 0x0800d288 0390 str r0, [sp, 0xc]
| ||||| 0x0800d28a c1a0 adr r0, 0x304
| ||||| 0x0800d28c 0290 str r0, [sp, 8]
| ||||| 0x0800d28e 0620 movs r0, 6 ; 6
| ||||| 0x0800d290 0190 str r0, [sp, 4]
| ||||| 0x0800d292 40f26110 movw r0, 0x161 ; 353
| ||||| 0x0800d296 0090 str r0, [sp]
| ||||| 0x0800d298 2a23 movs r3, 0x2a ; '*' ; 42
| ||||| 0x0800d29a 8b22 movs r2, 0x8b ; 139
| ||||| 0x0800d29c 3721 movs r1, 0x37 ; '7' ; 55
| ||||| 0x0800d29e 0a20 movs r0, 0xa ; 10
| ||||| 0x0800d2a0 1af016fe bl func_27ed0
| ||||| 0x0800d2a4 0500 movs r5, r0
| ||||| 0x0800d2a6 dff8b803 ldr.w r0, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| ||||| 0x0800d2aa 0068 ldr r0, [r0]
| ||||| 0x0800d2ac 0168 ldr r1, [r0]
| ||||| 0x0800d2ae 2000 movs r0, r4
| ||||| 0x0800d2b0 00b2 sxth r0, r0
| ||||| 0x0800d2b2 1af048fe bl func_26f46
| ||||| 0x0800d2b6 dff89403 ldr.w r0, [0x0800d652] ; [0x800d650:4]=0x2001e94d gui_opmode1
| ||||| 0x0800d2ba 0068 ldr r0, [r0]
| ||||| 0x0800d2bc 0168 ldr r1, [r0]
| ||||| 0x0800d2be 2800 movs r0, r5
| ||||| 0x0800d2c0 00b2 sxth r0, r0
| ||||| 0x0800d2c2 1af040fe bl func_26f46
| ||||| 0x0800d2c6 0ff07cff bl gfx_1d1c2
| ||||| 0x0800d2ca dff8dc0d ldr.w r0, [0x0800e0ae] ; [0x800e0ac:4]=0xf8dfb580
| ||||| 0x0800d2ce 10f04ff8 bl gfx_set_fg_color
| ||||| 0x0800d2d2 0c23 movs r3, 0xc ; 12
| ||||| 0x0800d2d4 9f22 movs r2, 0x9f ; 159
| ||||| 0x0800d2d6 0021 movs r1, 0
| ||||| 0x0800d2d8 0020 movs r0, 0
| ||||| 0x0800d2da 10f0d7fa bl gfx_blockfill
| ||||| 0x0800d2de 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||| 0x0800d2e0 0922 movs r2, 9 ; 9
| ||||| 0x0800d2e2 0021 movs r1, 0
| ||||| 0x0800d2e4 0020 movs r0, 0
| ||||| 0x0800d2e6 10f0d1fa bl gfx_blockfill
| ||||| 0x0800d2ea 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||| 0x0800d2ec 9f22 movs r2, 0x9f ; 159
| ||||| 0x0800d2ee 0021 movs r1, 0
| ||||| 0x0800d2f0 9520 movs r0, 0x95 ; 149
| ||||| 0x0800d2f2 10f0cbfa bl gfx_blockfill
| ||||| 0x0800d2f6 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||| 0x0800d2f8 9f22 movs r2, 0x9f ; 159
| ||||| 0x0800d2fa 6121 movs r1, 0x61 ; 'a' ; 97
| ||||| 0x0800d2fc 0020 movs r0, 0
| ||||| 0x0800d2fe 10f0c5fa bl gfx_blockfill
| ||||| 0x0800d302 d648 ldr r0, [0x0800d65e] ; [0x800d65c:4]=0xff1414
| ||||| 0x0800d304 10f030f8 bl gfx_set_bg_color
| ||||| 0x0800d308 2000 movs r0, r4
| ||||| 0x0800d30a 00b2 sxth r0, r0
| ||||| 0x0800d30c 0ff062fb bl gfx_1c9d4
| ||||| 0x0800d310 0024 movs r4, 0
| ||||| 0x0800d312 2800 movs r0, r5
| ||||| 0x0800d314 00b2 sxth r0, r0
| ||||| 0x0800d316 0ff05dfb bl gfx_1c9d4
| ||||| 0x0800d31a 0025 movs r5, 0
| ,======< 0x0800d31c 91e1 b 0x800d642
| ||||`--> 0x0800d31e e4b2 uxtb r4, r4
| |||| | 0x0800d320 032c cmp r4, 3 ; 3
| ||||,==< 0x0800d322 14d1 bne 0x800d34e
| |||||| 0x0800d324 c948 ldr r0, [0x0800d64c] ; [0x800d64c:4]=0x2001e6fc
| |||||| 0x0800d326 0068 ldr r0, [r0]
| |||||| 0x0800d328 007b ldrb r0, [r0, 0xc]
| |||||| 0x0800d32a 0006 lsls r0, r0, 0x18
| ,=======< 0x0800d32c 40f18981 bpl.w 0x800d642
| ||||||| 0x0800d330 cc48 ldr r0, [0x0800d664] ; [0x800d664:4]=0x2001e6ec
| ||||||| 0x0800d332 0068 ldr r0, [r0]
| ||||||| 0x0800d334 cc49 ldr r1, [0x0800d668] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800d336 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||||| 0x0800d33a d0f81c13 ldr.w r1, [r0, 0x31c]
| ||||||| 0x0800d33e c548 ldr r0, [0x0800d656] ; [0x800d654:4]=0x2001e81c not_the_volume_knob
| ||||||| 0x0800d340 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800d344 1af07bfd bl func_27e3e
| ||||||| 0x0800d348 0ff03bff bl gfx_1d1c2
| ========< 0x0800d34c 79e1 b 0x800d642
| |||||`--> 0x0800d34e e4b2 uxtb r4, r4
| ||||| | 0x0800d350 062c cmp r4, 6 ; 6
| |||||,==< 0x0800d352 75d1 bne 0x800d440
| ||||||| 0x0800d354 c248 ldr r0, [0x0800d660] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0800d356 0068 ldr r0, [r0]
| ||||||| 0x0800d358 0068 ldr r0, [r0]
| ||||||| 0x0800d35a c249 ldr r1, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| ||||||| 0x0800d35c 0968 ldr r1, [r1]
| ||||||| 0x0800d35e c24a ldr r2, [0x0800d66a] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800d360 12eb8101 adds.w r1, r2, r1, lsl 2
| ||||||| 0x0800d364 d1f8a013 ldr.w r1, [r1, 0x3a0]
| ||||||| 0x0800d368 8842 cmp r0, r1
| ========< 0x0800d36a 00f06a81 beq.w 0x800d642
| ||||||| 0x0800d36e b948 ldr r0, [0x0800d656] ; [0x800d654:4]=0x2001e81c not_the_volume_knob
| ||||||| 0x0800d370 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800d374 0028 cmp r0, 0
| ========< 0x0800d376 03d1 bne 0x800d380
| ||||||| 0x0800d378 00f0b8fc bl func_0dcec
| ||||||| 0x0800d37c 0ff021ff bl gfx_1d1c2
| --------> 0x0800d380 83a1 adr r1, 0x20c
| ||||||| 0x0800d382 b448 ldr r0, [0x0800d656] ; [0x800d654:4]=0x2001e81c not_the_volume_knob
| ||||||| 0x0800d384 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800d388 1af070fd bl func_27e6c
| ||||||| 0x0800d38c 0e20 movs r0, 0xe ; 14
| ||||||| 0x0800d38e 0390 str r0, [sp, 0xc]
| ||||||| 0x0800d390 7fa0 adr r0, 0x1fc
| ||||||| 0x0800d392 0290 str r0, [sp, 8]
| ||||||| 0x0800d394 0620 movs r0, 6 ; 6
| ||||||| 0x0800d396 0190 str r0, [sp, 4]
| ||||||| 0x0800d398 4ff4b070 mov.w r0, 0x160 ; 352
| ||||||| 0x0800d39c 0090 str r0, [sp]
| ||||||| 0x0800d39e 2a23 movs r3, 0x2a ; '*' ; 42
| ||||||| 0x0800d3a0 8b22 movs r2, 0x8b ; 139
| ||||||| 0x0800d3a2 0d21 movs r1, 0xd ; 13
| ||||||| 0x0800d3a4 0a20 movs r0, 0xa ; 10
| ||||||| 0x0800d3a6 1af093fd bl func_27ed0
| ||||||| 0x0800d3aa 0400 movs r4, r0
| ||||||| 0x0800d3ac 0e20 movs r0, 0xe ; 14
| ||||||| 0x0800d3ae 0390 str r0, [sp, 0xc]
| ||||||| 0x0800d3b0 77a0 adr r0, 0x1dc
| ||||||| 0x0800d3b2 0290 str r0, [sp, 8]
| ||||||| 0x0800d3b4 0620 movs r0, 6 ; 6
| ||||||| 0x0800d3b6 0190 str r0, [sp, 4]
| ||||||| 0x0800d3b8 40f26110 movw r0, 0x161 ; 353
| ||||||| 0x0800d3bc 0090 str r0, [sp]
| ||||||| 0x0800d3be 2a23 movs r3, 0x2a ; '*' ; 42
| ||||||| 0x0800d3c0 8b22 movs r2, 0x8b ; 139
| ||||||| 0x0800d3c2 3721 movs r1, 0x37 ; '7' ; 55
| ||||||| 0x0800d3c4 0a20 movs r0, 0xa ; 10
| ||||||| 0x0800d3c6 1af083fd bl func_27ed0
| ||||||| 0x0800d3ca 0500 movs r5, r0
| ||||||| 0x0800d3cc a448 ldr r0, [0x0800d660] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0800d3ce 0068 ldr r0, [r0]
| ||||||| 0x0800d3d0 0168 ldr r1, [r0]
| ||||||| 0x0800d3d2 2000 movs r0, r4
| ||||||| 0x0800d3d4 00b2 sxth r0, r0
| ||||||| 0x0800d3d6 1af0b6fd bl func_26f46
| ||||||| 0x0800d3da 9c48 ldr r0, [0x0800d64e] ; [0x800d64c:4]=0x2001e6fc
| ||||||| 0x0800d3dc 0068 ldr r0, [r0]
| ||||||| 0x0800d3de 0168 ldr r1, [r0]
| ||||||| 0x0800d3e0 2800 movs r0, r5
| ||||||| 0x0800d3e2 00b2 sxth r0, r0
| ||||||| 0x0800d3e4 1af0affd bl func_26f46
| ||||||| 0x0800d3e8 0ff0ebfe bl gfx_1d1c2
| ||||||| 0x0800d3ec dff8b80c ldr.w r0, [F_786] ; [0x800e0ac:4]=0xf8dfb580
| ||||||| 0x0800d3f0 0ff0beff bl gfx_set_fg_color
| ||||||| 0x0800d3f4 0c23 movs r3, 0xc ; 12
| ||||||| 0x0800d3f6 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0800d3f8 0021 movs r1, 0
| ||||||| 0x0800d3fa 0020 movs r0, 0
| ||||||| 0x0800d3fc 10f046fa bl gfx_blockfill
| ||||||| 0x0800d400 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||||| 0x0800d402 0922 movs r2, 9 ; 9
| ||||||| 0x0800d404 0021 movs r1, 0
| ||||||| 0x0800d406 0020 movs r0, 0
| ||||||| 0x0800d408 10f040fa bl gfx_blockfill
| ||||||| 0x0800d40c 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||||| 0x0800d40e 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0800d410 0021 movs r1, 0
| ||||||| 0x0800d412 9520 movs r0, 0x95 ; 149
| ||||||| 0x0800d414 10f03afa bl gfx_blockfill
| ||||||| 0x0800d418 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||||| 0x0800d41a 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0800d41c 6121 movs r1, 0x61 ; 'a' ; 97
| ||||||| 0x0800d41e 0020 movs r0, 0
| ||||||| 0x0800d420 10f034fa bl gfx_blockfill
| ||||||| 0x0800d424 8d48 ldr r0, [0x0800d65c] ; [0x800d65c:4]=0xff1414
| ||||||| 0x0800d426 0ff09fff bl gfx_set_bg_color
| ||||||| 0x0800d42a 2000 movs r0, r4
| ||||||| 0x0800d42c 00b2 sxth r0, r0
| ||||||| 0x0800d42e 0ff0d1fa bl gfx_1c9d4
| ||||||| 0x0800d432 0024 movs r4, 0
| ||||||| 0x0800d434 2800 movs r0, r5
| ||||||| 0x0800d436 00b2 sxth r0, r0
| ||||||| 0x0800d438 0ff0ccfa bl gfx_1c9d4
| ||||||| 0x0800d43c 0025 movs r5, 0
| ========< 0x0800d43e 00e1 b 0x800d642
| |||||`--> 0x0800d440 e4b2 uxtb r4, r4
| ||||| | 0x0800d442 072c cmp r4, 7 ; 7
| |||||,==< 0x0800d444 40f0a680 bne.w 0x800d594
| ||||||| 0x0800d448 8548 ldr r0, [0x0800d660] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0800d44a 0068 ldr r0, [r0]
| ||||||| 0x0800d44c 0068 ldr r0, [r0]
| ||||||| 0x0800d44e 8549 ldr r1, [0x0800d666] ; [0x800d664:4]=0x2001e6ec
| ||||||| 0x0800d450 0968 ldr r1, [r1]
| ||||||| 0x0800d452 854a ldr r2, [0x0800d66a] ; [0x800d668:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0800d454 12eb8101 adds.w r1, r2, r1, lsl 2
| ||||||| 0x0800d458 c96c ldr r1, [r1, 0x4c]
| ||||||| 0x0800d45a 8842 cmp r0, r1
| ========< 0x0800d45c 21d1 bne 0x800d4a2
| ||||||| 0x0800d45e 7d48 ldr r0, [0x0800d656] ; [0x800d654:4]=0x2001e81c not_the_volume_knob
| ||||||| 0x0800d460 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800d464 0028 cmp r0, 0
| ========< 0x0800d466 01d0 beq 0x800d46c
| ||||||| 0x0800d468 00f0fcfc bl func_0de64
| --------> 0x0800d46c 14f012f9 bl draw_statusline_more
| ||||||| 0x0800d470 dff8340c ldr.w r0, [F_786] ; [0x800e0ac:4]=0xf8dfb580
| ||||||| 0x0800d474 0ff078ff bl gfx_set_bg_color
| ||||||| 0x0800d478 0020 movs r0, 0
| ||||||| 0x0800d47a 0ff079ff bl gfx_set_fg_color
| ||||||| 0x0800d47e 6c20 movs r0, 0x6c ; 'l' ; 108
| ||||||| 0x0800d480 0090 str r0, [sp]
| ||||||| 0x0800d482 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0800d484 1322 movs r2, 0x13 ; 19
| ||||||| 0x0800d486 0021 movs r1, 0
| ||||||| 0x0800d488 7048 ldr r0, [0x0800d64c] ; [0x800d64c:4]=0x2001e6fc
| ||||||| 0x0800d48a 0068 ldr r0, [r0]
| ||||||| 0x0800d48c 0068 ldr r0, [r0]
| ||||||| 0x0800d48e 00f023fd bl gfx_drawtext10
| ||||||| 0x0800d492 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0800d496 0ff067ff bl gfx_set_bg_color
| ||||||| 0x0800d49a 0020 movs r0, 0
| ||||||| 0x0800d49c 0ff068ff bl gfx_set_fg_color
| ========< 0x0800d4a0 cfe0 b 0x800d642
| --------> 0x0800d4a2 6c48 ldr r0, [0x0800d656] ; [0x800d654:4]=0x2001e81c not_the_volume_knob
| ||||||| 0x0800d4a4 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800d4a8 0028 cmp r0, 0
| ========< 0x0800d4aa 0bd1 bne 0x800d4c4
| ||||||| 0x0800d4ac 00f01efc bl func_0dcec
| ||||||| 0x0800d4b0 6648 ldr r0, [0x0800d64c] ; [0x800d64c:4]=0x2001e6fc
| ||||||| 0x0800d4b2 0068 ldr r0, [r0]
| ||||||| 0x0800d4b4 0168 ldr r1, [r0]
| ||||||| 0x0800d4b6 6748 ldr r0, [0x0800d656] ; [0x800d654:4]=0x2001e81c not_the_volume_knob
| ||||||| 0x0800d4b8 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800d4bc 1af0bffc bl func_27e3e
| ||||||| 0x0800d4c0 0ff07ffe bl gfx_1d1c2
| --------> 0x0800d4c4 1223 movs r3, 0x12 ; 18
| ||||||| 0x0800d4c6 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0800d4c8 1221 movs r1, 0x12 ; 18
| ||||||| 0x0800d4ca 0020 movs r0, 0
| ||||||| 0x0800d4cc 10f0def9 bl gfx_blockfill
| ||||||| 0x0800d4d0 2fa1 adr r1, 0xbc
| ||||||| 0x0800d4d2 6048 ldr r0, [0x0800d656] ; [0x800d654:4]=0x2001e81c not_the_volume_knob
| ||||||| 0x0800d4d4 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800d4d8 1af0c8fc bl func_27e6c
| ||||||| 0x0800d4dc 0e20 movs r0, 0xe ; 14
| ||||||| 0x0800d4de 0390 str r0, [sp, 0xc]
| ||||||| 0x0800d4e0 2ba0 adr r0, 0xac
| ||||||| 0x0800d4e2 0290 str r0, [sp, 8]
| ||||||| 0x0800d4e4 0620 movs r0, 6 ; 6
| ||||||| 0x0800d4e6 0190 str r0, [sp, 4]
| ||||||| 0x0800d4e8 4ff4b070 mov.w r0, 0x160 ; 352
| ||||||| 0x0800d4ec 0090 str r0, [sp]
| ||||||| 0x0800d4ee 2a23 movs r3, 0x2a ; '*' ; 42
| ||||||| 0x0800d4f0 8b22 movs r2, 0x8b ; 139
| ||||||| 0x0800d4f2 0d21 movs r1, 0xd ; 13
| ||||||| 0x0800d4f4 0a20 movs r0, 0xa ; 10
| ||||||| 0x0800d4f6 1af0ebfc bl func_27ed0
| ||||||| 0x0800d4fa 0400 movs r4, r0
| ||||||| 0x0800d4fc 0e20 movs r0, 0xe ; 14
| ||||||| 0x0800d4fe 0390 str r0, [sp, 0xc]
| ||||||| 0x0800d500 23a0 adr r0, 0x8c
| ||||||| 0x0800d502 0290 str r0, [sp, 8]
| ||||||| 0x0800d504 0620 movs r0, 6 ; 6
| ||||||| 0x0800d506 0190 str r0, [sp, 4]
| ||||||| 0x0800d508 40f26110 movw r0, 0x161 ; 353
| ||||||| 0x0800d50c 0090 str r0, [sp]
| ||||||| 0x0800d50e 2a23 movs r3, 0x2a ; '*' ; 42
| ||||||| 0x0800d510 8b22 movs r2, 0x8b ; 139
| ||||||| 0x0800d512 3721 movs r1, 0x37 ; '7' ; 55
| ||||||| 0x0800d514 0a20 movs r0, 0xa ; 10
| ||||||| 0x0800d516 1af0dbfc bl func_27ed0
| ||||||| 0x0800d51a 0500 movs r5, r0
| ||||||| 0x0800d51c 5048 ldr r0, [0x0800d660] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0800d51e 0068 ldr r0, [r0]
| ||||||| 0x0800d520 0168 ldr r1, [r0]
| ||||||| 0x0800d522 2000 movs r0, r4
| ||||||| 0x0800d524 00b2 sxth r0, r0
| ||||||| 0x0800d526 1af00efd bl func_26f46
| ||||||| 0x0800d52a 4848 ldr r0, [0x0800d64e] ; [0x800d64c:4]=0x2001e6fc
| ||||||| 0x0800d52c 0068 ldr r0, [r0]
| ||||||| 0x0800d52e 0168 ldr r1, [r0]
| ||||||| 0x0800d530 2800 movs r0, r5
| ||||||| 0x0800d532 00b2 sxth r0, r0
| ||||||| 0x0800d534 1af007fd bl func_26f46
| ||||||| 0x0800d538 0ff043fe bl gfx_1d1c2
| ||||||| 0x0800d53c dff8680b ldr.w r0, [F_786] ; [0x800e0ac:4]=0xf8dfb580
| ||||||| 0x0800d540 0ff016ff bl gfx_set_fg_color
| ||||||| 0x0800d544 0c23 movs r3, 0xc ; 12
| ||||||| 0x0800d546 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0800d548 0021 movs r1, 0
| ||||||| 0x0800d54a 0020 movs r0, 0
| ||||||| 0x0800d54c 10f09ef9 bl gfx_blockfill
| ||||||| 0x0800d550 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||||| 0x0800d552 0922 movs r2, 9 ; 9
| ||||||| 0x0800d554 0021 movs r1, 0
| ||||||| 0x0800d556 0020 movs r0, 0
| ||||||| 0x0800d558 10f098f9 bl gfx_blockfill
| ||||||| 0x0800d55c 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||||| 0x0800d55e 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0800d560 0021 movs r1, 0
| ||||||| 0x0800d562 9520 movs r0, 0x95 ; 149
| ||||||| 0x0800d564 10f092f9 bl gfx_blockfill
| ||||||| 0x0800d568 6d23 movs r3, 0x6d ; 'm' ; 109
| ||||||| 0x0800d56a 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0800d56c 6121 movs r1, 0x61 ; 'a' ; 97
| ||||||| 0x0800d56e 0020 movs r0, 0
| ||||||| 0x0800d570 10f08cf9 bl gfx_blockfill
| ||||||| 0x0800d574 3948 ldr r0, [0x0800d65c] ; [0x800d65c:4]=0xff1414
| ||||||| 0x0800d576 0ff0f7fe bl gfx_set_bg_color
| ||||||| 0x0800d57a 2000 movs r0, r4
| ||||||| 0x0800d57c 00b2 sxth r0, r0
| ||||||| 0x0800d57e 0ff029fa bl gfx_1c9d4
| ||||||| 0x0800d582 0024 movs r4, 0
| ||||||| 0x0800d584 2800 movs r0, r5
| ||||||| 0x0800d586 00b2 sxth r0, r0
| ||||||| 0x0800d588 0ff024fa bl gfx_1c9d4
| ||||||| 0x0800d58c 0025 movs r5, 0
| ========< 0x0800d58e 58e0 b 0x800d642
| ||||||| 0x0800d590 2000 movs r0, r4
| ||||||| 0x0800d592 0000 movs r0, r0
| |||||`--> 0x0800d594 e4b2 uxtb r4, r4
| ||||| | 0x0800d596 0a2c cmp r4, 0xa ; 10
| |||||,==< 0x0800d598 38d0 beq 0x800d60c
| ||||||| 0x0800d59a e4b2 uxtb r4, r4
| ||||||| 0x0800d59c 0c2c cmp r4, 0xc ; 12
| ========< 0x0800d59e 35d0 beq 0x800d60c
| ||||||| 0x0800d5a0 e4b2 uxtb r4, r4
| ||||||| 0x0800d5a2 0b2c cmp r4, 0xb ; 11
| ========< 0x0800d5a4 32d0 beq 0x800d60c
| ||||||| 0x0800d5a6 e4b2 uxtb r4, r4
| ||||||| 0x0800d5a8 0d2c cmp r4, 0xd ; 13
| ========< 0x0800d5aa 2fd0 beq 0x800d60c
| ||||||| 0x0800d5ac e4b2 uxtb r4, r4
| ||||||| 0x0800d5ae 0e2c cmp r4, 0xe ; 14
| ========< 0x0800d5b0 2cd0 beq 0x800d60c
| ||||||| 0x0800d5b2 e4b2 uxtb r4, r4
| ||||||| 0x0800d5b4 112c cmp r4, 0x11 ; 17
| ========< 0x0800d5b6 29d0 beq 0x800d60c
| ||||||| 0x0800d5b8 e4b2 uxtb r4, r4
| ||||||| 0x0800d5ba 122c cmp r4, 0x12 ; 18
| ========< 0x0800d5bc 26d0 beq 0x800d60c
| ||||||| 0x0800d5be e4b2 uxtb r4, r4
| ||||||| 0x0800d5c0 142c cmp r4, 0x14 ; 20
| ========< 0x0800d5c2 23d0 beq 0x800d60c
| ||||||| 0x0800d5c4 e4b2 uxtb r4, r4
| ||||||| 0x0800d5c6 132c cmp r4, 0x13 ; 19
| ========< 0x0800d5c8 20d0 beq 0x800d60c
| ||||||| 0x0800d5ca e4b2 uxtb r4, r4
| ||||||| 0x0800d5cc 042c cmp r4, 4 ; 4
| ========< 0x0800d5ce 1dd0 beq 0x800d60c
| ||||||| 0x0800d5d0 e4b2 uxtb r4, r4
| ||||||| 0x0800d5d2 102c cmp r4, 0x10 ; 16
| ========< 0x0800d5d4 1ad0 beq 0x800d60c
| ||||||| 0x0800d5d6 e4b2 uxtb r4, r4
| ||||||| 0x0800d5d8 152c cmp r4, 0x15 ; 21
| ========< 0x0800d5da 17d0 beq 0x800d60c
| ||||||| 0x0800d5dc e4b2 uxtb r4, r4
| ||||||| 0x0800d5de 162c cmp r4, 0x16 ; 22
| ========< 0x0800d5e0 14d0 beq 0x800d60c
| ||||||| 0x0800d5e2 e4b2 uxtb r4, r4
| ||||||| 0x0800d5e4 182c cmp r4, 0x18 ; 24
| ========< 0x0800d5e6 11d0 beq 0x800d60c
| ||||||| 0x0800d5e8 e4b2 uxtb r4, r4
| ||||||| 0x0800d5ea 192c cmp r4, 0x19 ; 25
| ========< 0x0800d5ec 0ed0 beq 0x800d60c
| ||||||| 0x0800d5ee e4b2 uxtb r4, r4
| ||||||| 0x0800d5f0 1d2c cmp r4, 0x1d ; 29
| ========< 0x0800d5f2 0bd0 beq 0x800d60c
| ||||||| 0x0800d5f4 e4b2 uxtb r4, r4
| ||||||| 0x0800d5f6 1a2c cmp r4, 0x1a ; 26
| ========< 0x0800d5f8 08d0 beq 0x800d60c
| ||||||| 0x0800d5fa e4b2 uxtb r4, r4
| ||||||| 0x0800d5fc 1b2c cmp r4, 0x1b ; 27
| ========< 0x0800d5fe 05d0 beq 0x800d60c
| ||||||| 0x0800d600 e4b2 uxtb r4, r4
| ||||||| 0x0800d602 1c2c cmp r4, 0x1c ; 28
| ========< 0x0800d604 02d0 beq 0x800d60c
| ||||||| 0x0800d606 e4b2 uxtb r4, r4
| ||||||| 0x0800d608 1f2c cmp r4, 0x1f ; 31
| ========< 0x0800d60a 0ad1 bne 0x800d622
| -----`--> 0x0800d60c 1448 ldr r0, [0x0800d660] ; [0x800d660:4]=0x2001e700 menu_memory_poi
| ||||| | 0x0800d60e 0068 ldr r0, [r0]
| ||||| | 0x0800d610 0168 ldr r1, [r0]
| ||||| | 0x0800d612 1048 ldr r0, [0x0800d656] ; [0x800d654:4]=0x2001e81c not_the_volume_knob
| ||||| | 0x0800d614 b0f90000 ldrsh.w r0, [r0]
| ||||| | 0x0800d618 1af011fc bl func_27e3e
| ||||| | 0x0800d61c 0ff0d1fd bl gfx_1d1c2
| |||||,==< 0x0800d620 0fe0 b 0x800d642
| --------> 0x0800d622 e4b2 uxtb r4, r4
| ||||||| 0x0800d624 172c cmp r4, 0x17 ; 23
| ========< 0x0800d626 02d0 beq 0x800d62e
| ||||||| 0x0800d628 e4b2 uxtb r4, r4
| ||||||| 0x0800d62a 1e2c cmp r4, 0x1e ; 30
| ========< 0x0800d62c 09d1 bne 0x800d642
| --------> 0x0800d62e 0748 ldr r0, [0x0800d64e] ; [0x800d64c:4]=0x2001e6fc
| ||||||| 0x0800d630 0068 ldr r0, [r0]
| ||||||| 0x0800d632 0168 ldr r1, [r0]
| ||||||| 0x0800d634 0748 ldr r0, [0x0800d654] ; [0x800d654:4]=0x2001e81c not_the_volume_knob
| ||||||| 0x0800d636 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0800d63a 1af000fc bl func_27e3e
| ||||||| 0x0800d63e 0ff0c0fd bl gfx_1d1c2
| ```````-> 0x0800d642 00f0b0fb bl func_0dda6_dummy
| 0x0800d646 14b0 add sp, 0x50
\ 0x0800d648 70bd pop {r4, r5, r6, pc}
/ (fcn) func_213d0 282
| Caller: update_scr_20
| func_213d0 ();
| 0x080213d0 10b5 push {r4, lr}
| 0x080213d2 84b0 sub sp, 0x10
| 0x080213d4 dff83004 ldr.w r0, [0x0802180c] ; [0x802180c:4]=0x2001cb58 selected_contact_name_wstring
| 0x080213d8 0068 ldr r0, [r0]
| 0x080213da 04f00bfe bl func_25ff4
| 0x080213de dff82c44 ldr.w r4, [0x08021812] ; [0x8021810:4]=0x2001e82e
| 0x080213e2 dff82c14 ldr.w r1, [0x08021816] ; [0x8021814:4]=0x2001e8a8 beep_code_send
| 0x080213e6 0880 strh r0, [r1]
| 0x080213e8 80b2 uxth r0, r0
| 0x080213ea 0028 cmp r0, 0
| ,=< 0x080213ec 03d0 beq 0x80213f6
| | 0x080213ee 80b2 uxth r0, r0
| | 0x080213f0 01f0f3fa bl func_229da
| ,==< 0x080213f4 15e0 b 0x8021422
| |`-> 0x080213f6 dff81004 ldr.w r0, [0x0802180e] ; [0x802180c:4]=0x2001cb58 selected_contact_name_wstring
| | 0x080213fa 0068 ldr r0, [r0]
| | 0x080213fc 50f00070 orrs r0, r0, 0x2000000
| | 0x08021400 dff8c413 ldr.w r1, [0x080217cc] ; [0x80217cc:4]=0x40020800 io_GPIOC
| | 0x08021404 0860 str r0, [r1]
| | 0x08021406 2100 movs r1, r4
| | 0x08021408 dff8fc03 ldr.w r0, [0x0802180c] ; [0x802180c:4]=0x2001cb58 selected_contact_name_wstring
| | 0x0802140c 0068 ldr r0, [r0]
| | 0x0802140e 0002 lsls r0, r0, 8
| | 0x08021410 000a lsrs r0, r0, 8
| | 0x08021412 06f0e3f8 bl func_275dc
| | 0x08021416 c0b2 uxtb r0, r0
| | 0x08021418 14eb4004 adds.w r4, r4, r0, lsl 1
| | 0x0802141c 0020 movs r0, 0
| | 0x0802141e 2080 strh r0, [r4]
| | 0x08021420 a41c adds r4, r4, 2
| `--> 0x08021422 dff8f003 ldr.w r0, [0x0802181a] ; [0x8021818:4]=0x2001e67c event2_mbox_poi_beep
| 0x08021426 1721 movs r1, 0x17 ; 23
| 0x08021428 0170 strb r1, [r0]
| 0x0802142a dff8e813 ldr.w r1, [0x0802181a] ; [0x8021818:4]=0x2001e67c event2_mbox_poi_beep
| 0x0802142e dff8e803 ldr.w r0, [0x0802181e] ; [0x802181c:4]=0x20004acc md380_menu_depth
| 0x08021432 0068 ldr r0, [r0]
| 0x08021434 0ff0b2fe bl md380_OSMboxPost
| 0x08021438 dff8e003 ldr.w r0, [0x08021820] ; [0x8021820:4]=0x2001e915 md380_menu_id
| 0x0802143c 0021 movs r1, 0
| 0x0802143e 0170 strb r1, [r0]
| 0x08021440 dff8dc03 ldr.w r0, [0x08021824] ; [0x8021824:4]=0x2001d5cc md380_menu_memory
| 0x08021444 0021 movs r1, 0
| 0x08021446 0170 strb r1, [r0]
| 0x08021448 dff8d003 ldr.w r0, [0x08021820] ; [0x8021820:4]=0x2001e915 md380_menu_id
| 0x0802144c 0078 ldrb r0, [r0]
| 0x0802144e 0c21 movs r1, 0xc ; 12
| 0x08021450 dff8d023 ldr.w r2, [0x08021828] ; [0x8021828:4]=0x2001e700 menu_memory_poi
| 0x08021454 01fb0020 mla r0, r1, r0, r2
| 0x08021458 dff8cc13 ldr.w r1, [0x0802182c] ; [0x802182c:4]=0x2001b274 md380_menu_mem_base
| 0x0802145c 0860 str r0, [r1]
| 0x0802145e dff8c803 ldr.w r0, [0x0802182e] ; [0x802182c:4]=0x2001b274 md380_menu_mem_base
| 0x08021462 0068 ldr r0, [r0]
| 0x08021464 dff8a413 ldr.w r1, [0x08021810] ; [0x8021810:4]=0x2001e82e
| 0x08021468 0160 str r1, [r0]
| 0x0802146a dff8bc03 ldr.w r0, [0x0802182e] ; [0x802182c:4]=0x2001b274 md380_menu_mem_base
| 0x0802146e 0068 ldr r0, [r0]
| 0x08021470 dff8b813 ldr.w r1, [0x08021830] ; [0x8021830:4]=0x800fc85 menu_entry_back_1
| 0x08021474 4160 str r1, [r0, 4]
| 0x08021476 dff8b003 ldr.w r0, [0x0802182e] ; [0x802182c:4]=0x2001b274 md380_menu_mem_base
| 0x0802147a 0068 ldr r0, [r0]
| 0x0802147c 0121 movs r1, 1 ; 1
| 0x0802147e 0172 strb r1, [r0, 8]
| 0x08021480 dff8a403 ldr.w r0, [0x0802182c] ; [0x802182c:4]=0x2001b274 md380_menu_mem_base
| 0x08021484 0068 ldr r0, [r0]
| 0x08021486 0021 movs r1, 0
| 0x08021488 4172 strb r1, [r0, 9]
| 0x0802148a dff89c03 ldr.w r0, [0x0802182e] ; [0x802182c:4]=0x2001b274 md380_menu_mem_base
| 0x0802148e 0068 ldr r0, [r0]
| 0x08021490 0021 movs r1, 0
| 0x08021492 4181 strh r1, [r0, 0xa]
| 0x08021494 0120 movs r0, 1 ; 1
| 0x08021496 0290 str r0, [sp, 8]
| 0x08021498 0f20 movs r0, 0xf ; 15
| 0x0802149a 0190 str r0, [sp, 4]
| 0x0802149c 0a20 movs r0, 0xa ; 10
| 0x0802149e 0090 str r0, [sp]
| 0x080214a0 dff88c33 ldr.w r3, [0x08021834] ; [0x8021834:4]=0x80214eb
| 0x080214a4 dff88c23 ldr.w r2, [0x08021838] ; [0x8021838:4]=0x2001e6ec
| 0x080214a8 dff88c03 ldr.w r0, [0x0802183c] ; [0x802183c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080214ac 0068 ldr r0, [r0]
| 0x080214ae dff88c13 ldr.w r1, [0x08021842] ; [0x8021840:4]=0x2001e6fc
| 0x080214b2 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080214b6 d0f84411 ldr.w r1, [r0, 0x144]
| 0x080214ba dff86403 ldr.w r0, [0x08021826] ; [0x8021824:4]=0x2001d5cc md380_menu_memory
| 0x080214be 0078 ldrb r0, [r0]
| 0x080214c0 ebf735f9 bl md380_create_menu_entry
| 0x080214c4 dff85403 ldr.w r0, [0x08021820] ; [0x8021820:4]=0x2001e915 md380_menu_id
| 0x080214c8 0078 ldrb r0, [r0]
| 0x080214ca eef7c3fb bl menu_add_number_of_menuentries_counts
| 0x080214ce dff85013 ldr.w r1, [0x08021826] ; [0x8021824:4]=0x2001d5cc md380_menu_memory
| 0x080214d2 0870 strb r0, [r1]
| 0x080214d4 dff85003 ldr.w r0, [0x0802182c] ; [0x802182c:4]=0x2001b274 md380_menu_mem_base
| 0x080214d8 0068 ldr r0, [r0]
| 0x080214da 4068 ldr r0, [r0, 4]
| 0x080214dc dff86013 ldr.w r1, [0x08021844] ; [0x8021844:4]=0x2001e5e0
| 0x080214e0 0860 str r0, [r1]
| 0x080214e2 ce48 ldr r0, [0x0802181e] ; [0x802181c:4]=0x20004acc md380_menu_depth
| 0x080214e4 0021 movs r1, 0
| 0x080214e6 0170 strb r1, [r0]
\ 0x080214e8 1fbd pop {r0, r1, r2, r3, r4, pc}
/ (fcn) func_214ea 20
| func_214ea ();
| 0x080214ea 80b5 push {r7, lr}
| 0x080214ec c548 ldr r0, [0x08021804] ; [0x8021804:4]=0x2001e94b gui_opmode2
| 0x080214ee 0121 movs r1, 1 ; 1
| 0x080214f0 0170 strb r1, [r0]
| 0x080214f2 b448 ldr r0, [0x080217c6] ; [0x80217c4:4]=0x2001e844
| 0x080214f4 0521 movs r1, 5 ; 5
| 0x080214f6 0180 strh r1, [r0]
| 0x080214f8 eef7cdfb bl return_to_mode_1_from10
\ 0x080214fc 01bd pop {r0, pc}
/ (fcn) func_214fe 152
| Caller: update_scr_19 scr_mode_stable update_scr_17 update_scr_21
| func_214fe ();
| 0x080214fe 10b5 push {r4, lr}
| 0x08021500 82b0 sub sp, 8
| 0x08021502 d048 ldr r0, [0x08021846] ; [0x8021844:4]=0x2001e5e0
| 0x08021504 0068 ldr r0, [r0]
| 0x08021506 04f075fd bl func_25ff4
| 0x0802150a cf4c ldr r4, [0x0802184a] ; [0x8021848:4]=0x2001e1d4
| 0x0802150c 80b2 uxth r0, r0
| 0x0802150e 0028 cmp r0, 0
| ,=< 0x08021510 03d0 beq 0x802151a
| | 0x08021512 80b2 uxth r0, r0
| | 0x08021514 01f04ffa bl func_229b6
| ,==< 0x08021518 0ce0 b 0x8021534
| |`-> 0x0802151a 2100 movs r1, r4
| | 0x0802151c c948 ldr r0, [0x08021844] ; [0x8021844:4]=0x2001e5e0
| | 0x0802151e 0068 ldr r0, [r0]
| | 0x08021520 0002 lsls r0, r0, 8
| | 0x08021522 000a lsrs r0, r0, 8
| | 0x08021524 06f05af8 bl func_275dc
| | 0x08021528 c0b2 uxtb r0, r0
| | 0x0802152a 14eb4004 adds.w r4, r4, r0, lsl 1
| | 0x0802152e 0020 movs r0, 0
| | 0x08021530 2080 strh r0, [r4]
| | 0x08021532 a41c adds r4, r4, 2
| `--> 0x08021534 ecf796fc bl func_0de64
| 0x08021538 c448 ldr r0, [0x0802184c] ; [0x802184c:4]=0xff8032
| 0x0802153a fbf715ff bl gfx_set_bg_color
| 0x0802153e 3020 movs r0, 0x30 ; '0' ; 48
| 0x08021540 0090 str r0, [sp]
| 0x08021542 a023 movs r3, 0xa0 ; 160
| 0x08021544 1c22 movs r2, 0x1c ; 28
| 0x08021546 0021 movs r1, 0
| 0x08021548 bf48 ldr r0, [0x08021848] ; [0x8021848:4]=0x2001e1d4
| 0x0802154a ecf7c5fc bl gfx_drawtext10
| 0x0802154e be4c ldr r4, [0x0802184a] ; [0x8021848:4]=0x2001e1d4
| 0x08021550 bf48 ldr r0, [0x08021850] ; [0x8021850:4]=0x2001e79e
| 0x08021552 0088 ldrh r0, [r0]
| 0x08021554 0028 cmp r0, 0
| ,=< 0x08021556 04d0 beq 0x8021562
| | 0x08021558 bd48 ldr r0, [0x08021850] ; [0x8021850:4]=0x2001e79e
| | 0x0802155a 0088 ldrh r0, [r0]
| | 0x0802155c 01f02bfa bl func_229b6
| ,==< 0x08021560 0ce0 b 0x802157c
| |`-> 0x08021562 2100 movs r1, r4
| | 0x08021564 bb48 ldr r0, [0x08021854] ; [0x8021854:4]=0x2001e5e4
| | 0x08021566 0068 ldr r0, [r0]
| | 0x08021568 0002 lsls r0, r0, 8
| | 0x0802156a 000a lsrs r0, r0, 8
| | 0x0802156c 06f036f8 bl func_275dc
| | 0x08021570 c0b2 uxtb r0, r0
| | 0x08021572 14eb4004 adds.w r4, r4, r0, lsl 1
| | 0x08021576 0020 movs r0, 0
| | 0x08021578 2080 strh r0, [r4]
| | 0x0802157a a41c adds r4, r4, 2
| `--> 0x0802157c 4220 movs r0, 0x42 ; 'B' ; 66
| 0x0802157e 0090 str r0, [sp]
| 0x08021580 a023 movs r3, 0xa0 ; 160
| 0x08021582 3022 movs r2, 0x30 ; '0' ; 48
| 0x08021584 0021 movs r1, 0
| 0x08021586 b048 ldr r0, [0x0802184a] ; [0x8021848:4]=0x2001e1d4
| 0x08021588 ecf7a6fc bl gfx_drawtext10
| 0x0802158c 7ff07f40 mvns r0, 0xff000000
| 0x08021590 fbf7eafe bl gfx_set_bg_color
\ 0x08021594 13bd pop {r0, r1, r4, pc}
/ (fcn) func_21596_draw_something 44
| Caller: scr_mode_stable
| func_21596_draw_something ();
| 0x08021596 80b5 push {r7, lr}
| 0x08021598 ecf764fc bl func_0de64
| 0x0802159c 0020 movs r0, 0
| 0x0802159e fbf7e7fe bl gfx_set_fg_color
| 0x080215a2 aa48 ldr r0, [0x0802184e] ; [0x802184c:4]=0xff8032
| 0x080215a4 fbf7e0fe bl gfx_set_bg_color
| 0x080215a8 4220 movs r0, 0x42 ; 'B' ; 66
| 0x080215aa 0090 str r0, [sp]
| 0x080215ac a023 movs r3, 0xa0 ; 160
| 0x080215ae 3022 movs r2, 0x30 ; '0' ; 48
| 0x080215b0 0021 movs r1, 0
| 0x080215b2 a548 ldr r0, [0x0802184a] ; [0x8021848:4]=0x2001e1d4
| 0x080215b4 ecf790fc bl gfx_drawtext10
| 0x080215b8 7ff07f40 mvns r0, 0xff000000
| 0x080215bc fbf7d4fe bl gfx_set_bg_color
\ 0x080215c0 01bd pop {r0, pc}
/ (fcn) func_215c2 58
| Caller: scr_mode_stable
| func_215c2 ();
| 0x080215c2 10b5 push {r4, lr}
| 0x080215c4 82b0 sub sp, 8
| 0x080215c6 ecf74dfc bl func_0de64
| 0x080215ca 0020 movs r0, 0
| 0x080215cc fbf7d0fe bl gfx_set_fg_color
| 0x080215d0 9e48 ldr r0, [0x0802184c] ; [0x802184c:4]=0xff8032
| 0x080215d2 fbf7c9fe bl gfx_set_bg_color
| 0x080215d6 4220 movs r0, 0x42 ; 'B' ; 66
| 0x080215d8 0090 str r0, [sp]
| 0x080215da a023 movs r3, 0xa0 ; 160
| 0x080215dc 3022 movs r2, 0x30 ; '0' ; 48
| 0x080215de 0021 movs r1, 0
| 0x080215e0 9548 ldr r0, [0x08021838] ; [0x8021838:4]=0x2001e6ec
| 0x080215e2 0068 ldr r0, [r0]
| 0x080215e4 954c ldr r4, [0x0802183c] ; [0x802183c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080215e6 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x080215ea d0f89002 ldr.w r0, [r0, 0x290]
| 0x080215ee ecf773fc bl gfx_drawtext10
| 0x080215f2 7ff07f40 mvns r0, 0xff000000
| 0x080215f6 fbf7b7fe bl gfx_set_bg_color
\ 0x080215fa 13bd pop {r0, r1, r4, pc}
/ (fcn) func_215fc 74
| Caller: scr_mode_stable
| func_215fc ();
| 0x080215fc 10b5 push {r4, lr}
| 0x080215fe 82b0 sub sp, 8
| 0x08021600 ecf730fc bl func_0de64
| 0x08021604 0020 movs r0, 0
| 0x08021606 fbf7b3fe bl gfx_set_fg_color
| 0x0802160a 9048 ldr r0, [0x0802184e] ; [0x802184c:4]=0xff8032
| 0x0802160c fbf7acfe bl gfx_set_bg_color
| 0x08021610 3020 movs r0, 0x30 ; '0' ; 48
| 0x08021612 0090 str r0, [sp]
| 0x08021614 a023 movs r3, 0xa0 ; 160
| 0x08021616 1c22 movs r2, 0x1c ; 28
| 0x08021618 0021 movs r1, 0
| 0x0802161a 8748 ldr r0, [0x0802183a] ; [0x8021838:4]=0x2001e6ec
| 0x0802161c 0068 ldr r0, [r0]
| 0x0802161e 874c ldr r4, [0x0802183e] ; [0x802183c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x08021620 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x08021624 d0f88c02 ldr.w r0, [r0, 0x28c]
| 0x08021628 ecf756fc bl gfx_drawtext10
| 0x0802162c 4220 movs r0, 0x42 ; 'B' ; 66
| 0x0802162e 0090 str r0, [sp]
| 0x08021630 a023 movs r3, 0xa0 ; 160
| 0x08021632 3022 movs r2, 0x30 ; '0' ; 48
| 0x08021634 0021 movs r1, 0
| 0x08021636 8848 ldr r0, [0x0802185a] ; [0x8021858:4]=0x2001de98
| 0x08021638 ecf74efc bl gfx_drawtext10
| 0x0802163c 7ff07f40 mvns r0, 0xff000000
| 0x08021640 fbf792fe bl gfx_set_bg_color
\ 0x08021644 13bd pop {r0, r1, r4, pc}
/ (fcn) func_21646 58
| Caller: scr_mode_stable
| func_21646 ();
| 0x08021646 10b5 push {r4, lr}
| 0x08021648 82b0 sub sp, 8
| 0x0802164a ecf70bfc bl func_0de64
| 0x0802164e 0020 movs r0, 0
| 0x08021650 fbf78efe bl gfx_set_fg_color
| 0x08021654 7d48 ldr r0, [0x0802184c] ; [0x802184c:4]=0xff8032
| 0x08021656 fbf787fe bl gfx_set_bg_color
| 0x0802165a 4220 movs r0, 0x42 ; 'B' ; 66
| 0x0802165c 0090 str r0, [sp]
| 0x0802165e a023 movs r3, 0xa0 ; 160
| 0x08021660 3022 movs r2, 0x30 ; '0' ; 48
| 0x08021662 0021 movs r1, 0
| 0x08021664 7448 ldr r0, [0x08021838] ; [0x8021838:4]=0x2001e6ec
| 0x08021666 0068 ldr r0, [r0]
| 0x08021668 744c ldr r4, [0x0802183c] ; [0x802183c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0802166a 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x0802166e d0f89002 ldr.w r0, [r0, 0x290]
| 0x08021672 ecf731fc bl gfx_drawtext10
| 0x08021676 7ff07f40 mvns r0, 0xff000000
| 0x0802167a fbf775fe bl gfx_set_bg_color
\ 0x0802167e 13bd pop {r0, r1, r4, pc}
/ (fcn) func_21936 10
| Caller: func_33d42
| func_21936 ();
| 0x08021936 80b5 push {r7, lr}
| 0x08021938 80b2 uxth r0, r0
| 0x0802193a fff7afff bl gfx_drawchar
\ 0x0802193e 01bd pop {r0, pc}
/ (fcn) func_21958_spiflash_something 2986
| Caller: func_475b8 c5000_wr_60_5
| func_21958_spiflash_something ();
| 0x08021958 80b5 push {r7, lr}
| 0x0802195a 4ff48072 mov.w r2, 0x100 ; 256
| 0x0802195e 4ff48051 mov.w r1, 0x1000
| 0x08021962 dff8a80d ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021966 0ff0a3ff bl md380_spiflash_security_registers_read
| 0x0802196a 4ff48072 mov.w r2, 0x100 ; 256
| 0x0802196e 4ff40051 mov.w r1, 0x2000
| 0x08021972 dff89c0d ldr.w r0, [0x08022716] ; [0x8022714:4]=0x2240b580 LEA init_radioconfig_2_from_spi ; init_radioconfig_2_from_spi
| 0x08021976 0ff09bff bl md380_spiflash_security_registers_read
| 0x0802197a dff8900d ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802197e 007c ldrb r0, [r0, 0x10]
| 0x08021980 dff8881d ldr.w r1, [0x08022710] ; [0x8022710:4]=0x2001c480
| 0x08021984 897c ldrb r1, [r1, 0x12]
| 0x08021986 0818 adds r0, r1, r0
| 0x08021988 0221 movs r1, 2 ; 2
| 0x0802198a 90fbf1f0 sdiv r0, r0, r1
| 0x0802198e dff87c1d ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021992 4874 strb r0, [r1, 0x11]
| 0x08021994 dff8740d ldr.w r0, [0x08022710] ; [0x8022710:4]=0x2001c480
| 0x08021998 807c ldrb r0, [r0, 0x12]
| 0x0802199a dff8701d ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802199e 097d ldrb r1, [r1, 0x14]
| 0x080219a0 0818 adds r0, r1, r0
| 0x080219a2 0221 movs r1, 2 ; 2
| 0x080219a4 90fbf1f0 sdiv r0, r0, r1
| 0x080219a8 dff8601d ldr.w r1, [0x08022710] ; [0x8022710:4]=0x2001c480
| 0x080219ac c874 strb r0, [r1, 0x13]
| 0x080219ae dff85c0d ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080219b2 007d ldrb r0, [r0, 0x14]
| 0x080219b4 dff8541d ldr.w r1, [0x08022710] ; [0x8022710:4]=0x2001c480
| 0x080219b8 897d ldrb r1, [r1, 0x16]
| 0x080219ba 0818 adds r0, r1, r0
| 0x080219bc 0221 movs r1, 2 ; 2
| 0x080219be 90fbf1f0 sdiv r0, r0, r1
| 0x080219c2 dff8481d ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080219c6 4875 strb r0, [r1, 0x15]
| 0x080219c8 dff8400d ldr.w r0, [0x08022710] ; [0x8022710:4]=0x2001c480
| 0x080219cc 807d ldrb r0, [r0, 0x16]
| 0x080219ce dff83c1d ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080219d2 097e ldrb r1, [r1, 0x18]
| 0x080219d4 0818 adds r0, r1, r0
| 0x080219d6 0221 movs r1, 2 ; 2
| 0x080219d8 90fbf1f0 sdiv r0, r0, r1
| 0x080219dc dff82c1d ldr.w r1, [0x08022710] ; [0x8022710:4]=0x2001c480
| 0x080219e0 c875 strb r0, [r1, 0x17]
| 0x080219e2 dff8280d ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080219e6 90f82000 ldrb.w r0, [r0, 0x20]
| 0x080219ea dff8201d ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080219ee 91f82210 ldrb.w r1, [r1, 0x22]
| 0x080219f2 0818 adds r0, r1, r0
| 0x080219f4 0221 movs r1, 2 ; 2
| 0x080219f6 90fbf1f0 sdiv r0, r0, r1
| 0x080219fa dff8101d ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080219fe 81f82100 strb.w r0, [r1, 0x21]
| 0x08021a02 dff8080d ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a06 90f82200 ldrb.w r0, [r0, 0x22]
| 0x08021a0a dff8001d ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a0e 91f82410 ldrb.w r1, [r1, 0x24]
| 0x08021a12 0818 adds r0, r1, r0
| 0x08021a14 0221 movs r1, 2 ; 2
| 0x08021a16 90fbf1f0 sdiv r0, r0, r1
| 0x08021a1a dff8f01c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a1e 81f82300 strb.w r0, [r1, 0x23]
| 0x08021a22 dff8e80c ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a26 90f82400 ldrb.w r0, [r0, 0x24]
| 0x08021a2a dff8e01c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a2e 91f82610 ldrb.w r1, [r1, 0x26]
| 0x08021a32 0818 adds r0, r1, r0
| 0x08021a34 0221 movs r1, 2 ; 2
| 0x08021a36 90fbf1f0 sdiv r0, r0, r1
| 0x08021a3a dff8d01c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a3e 81f82500 strb.w r0, [r1, 0x25]
| 0x08021a42 dff8c80c ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a46 90f82600 ldrb.w r0, [r0, 0x26]
| 0x08021a4a dff8c01c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a4e 91f82810 ldrb.w r1, [r1, 0x28]
| 0x08021a52 0818 adds r0, r1, r0
| 0x08021a54 0221 movs r1, 2 ; 2
| 0x08021a56 90fbf1f0 sdiv r0, r0, r1
| 0x08021a5a dff8b01c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a5e 81f82700 strb.w r0, [r1, 0x27]
| 0x08021a62 dff8a80c ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a66 90f83000 ldrb.w r0, [r0, 0x30]
| 0x08021a6a dff8a01c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a6e 91f83210 ldrb.w r1, [r1, 0x32]
| 0x08021a72 0818 adds r0, r1, r0
| 0x08021a74 0221 movs r1, 2 ; 2
| 0x08021a76 90fbf1f0 sdiv r0, r0, r1
| 0x08021a7a dff8901c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a7e 81f83100 strb.w r0, [r1, 0x31]
| 0x08021a82 dff8880c ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a86 90f83200 ldrb.w r0, [r0, 0x32]
| 0x08021a8a dff8801c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a8e 91f83410 ldrb.w r1, [r1, 0x34]
| 0x08021a92 0818 adds r0, r1, r0
| 0x08021a94 0221 movs r1, 2 ; 2
| 0x08021a96 90fbf1f0 sdiv r0, r0, r1
| 0x08021a9a dff8701c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021a9e 81f83300 strb.w r0, [r1, 0x33]
| 0x08021aa2 dff8680c ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021aa6 90f83400 ldrb.w r0, [r0, 0x34]
| 0x08021aaa dff8601c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021aae 91f83610 ldrb.w r1, [r1, 0x36]
| 0x08021ab2 0818 adds r0, r1, r0
| 0x08021ab4 0221 movs r1, 2 ; 2
| 0x08021ab6 90fbf1f0 sdiv r0, r0, r1
| 0x08021aba dff8501c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021abe 81f83500 strb.w r0, [r1, 0x35]
| 0x08021ac2 dff8480c ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ac6 90f83600 ldrb.w r0, [r0, 0x36]
| 0x08021aca dff8401c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ace 91f83810 ldrb.w r1, [r1, 0x38]
| 0x08021ad2 0818 adds r0, r1, r0
| 0x08021ad4 0221 movs r1, 2 ; 2
| 0x08021ad6 90fbf1f0 sdiv r0, r0, r1
| 0x08021ada dff8301c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ade 81f83700 strb.w r0, [r1, 0x37]
| 0x08021ae2 dff8280c ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ae6 90f84000 ldrb.w r0, [r0, 0x40]
| 0x08021aea dff8201c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021aee 91f84210 ldrb.w r1, [r1, 0x42]
| 0x08021af2 0818 adds r0, r1, r0
| 0x08021af4 0221 movs r1, 2 ; 2
| 0x08021af6 90fbf1f0 sdiv r0, r0, r1
| 0x08021afa dff8101c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021afe 81f84100 strb.w r0, [r1, 0x41]
| 0x08021b02 dff8080c ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b06 90f84200 ldrb.w r0, [r0, 0x42]
| 0x08021b0a dff8001c ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b0e 91f84410 ldrb.w r1, [r1, 0x44]
| 0x08021b12 0818 adds r0, r1, r0
| 0x08021b14 0221 movs r1, 2 ; 2
| 0x08021b16 90fbf1f0 sdiv r0, r0, r1
| 0x08021b1a dff8f01b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b1e 81f84300 strb.w r0, [r1, 0x43]
| 0x08021b22 dff8e80b ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b26 90f84400 ldrb.w r0, [r0, 0x44]
| 0x08021b2a dff8e01b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b2e 91f84610 ldrb.w r1, [r1, 0x46]
| 0x08021b32 0818 adds r0, r1, r0
| 0x08021b34 0221 movs r1, 2 ; 2
| 0x08021b36 90fbf1f0 sdiv r0, r0, r1
| 0x08021b3a dff8d01b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b3e 81f84500 strb.w r0, [r1, 0x45]
| 0x08021b42 dff8c80b ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b46 90f84600 ldrb.w r0, [r0, 0x46]
| 0x08021b4a dff8c01b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b4e 91f84810 ldrb.w r1, [r1, 0x48]
| 0x08021b52 0818 adds r0, r1, r0
| 0x08021b54 0221 movs r1, 2 ; 2
| 0x08021b56 90fbf1f0 sdiv r0, r0, r1
| 0x08021b5a dff8b01b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b5e 81f84700 strb.w r0, [r1, 0x47]
| 0x08021b62 dff8a80b ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b66 90f85000 ldrb.w r0, [r0, 0x50]
| 0x08021b6a dff8a01b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b6e 91f85210 ldrb.w r1, [r1, 0x52]
| 0x08021b72 0818 adds r0, r1, r0
| 0x08021b74 0221 movs r1, 2 ; 2
| 0x08021b76 90fbf1f0 sdiv r0, r0, r1
| 0x08021b7a dff8901b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b7e 81f85100 strb.w r0, [r1, 0x51]
| 0x08021b82 dff8880b ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b86 90f85200 ldrb.w r0, [r0, 0x52]
| 0x08021b8a dff8801b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b8e 91f85410 ldrb.w r1, [r1, 0x54]
| 0x08021b92 0818 adds r0, r1, r0
| 0x08021b94 0221 movs r1, 2 ; 2
| 0x08021b96 90fbf1f0 sdiv r0, r0, r1
| 0x08021b9a dff8701b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021b9e 81f85300 strb.w r0, [r1, 0x53]
| 0x08021ba2 dff8680b ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ba6 90f85400 ldrb.w r0, [r0, 0x54]
| 0x08021baa dff8601b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021bae 91f85610 ldrb.w r1, [r1, 0x56]
| 0x08021bb2 0818 adds r0, r1, r0
| 0x08021bb4 0221 movs r1, 2 ; 2
| 0x08021bb6 90fbf1f0 sdiv r0, r0, r1
| 0x08021bba dff8501b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021bbe 81f85500 strb.w r0, [r1, 0x55]
| 0x08021bc2 dff8480b ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021bc6 90f85600 ldrb.w r0, [r0, 0x56]
| 0x08021bca dff8401b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021bce 91f85810 ldrb.w r1, [r1, 0x58]
| 0x08021bd2 0818 adds r0, r1, r0
| 0x08021bd4 0221 movs r1, 2 ; 2
| 0x08021bd6 90fbf1f0 sdiv r0, r0, r1
| 0x08021bda dff8301b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021bde 81f85700 strb.w r0, [r1, 0x57]
| 0x08021be2 dff8280b ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021be6 90f86000 ldrb.w r0, [r0, 0x60]
| 0x08021bea dff8201b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021bee 91f86210 ldrb.w r1, [r1, 0x62]
| 0x08021bf2 0818 adds r0, r1, r0
| 0x08021bf4 0221 movs r1, 2 ; 2
| 0x08021bf6 90fbf1f0 sdiv r0, r0, r1
| 0x08021bfa dff8101b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021bfe 81f86100 strb.w r0, [r1, 0x61]
| 0x08021c02 dff8080b ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c06 90f86200 ldrb.w r0, [r0, 0x62]
| 0x08021c0a dff8001b ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c0e 91f86410 ldrb.w r1, [r1, 0x64]
| 0x08021c12 0818 adds r0, r1, r0
| 0x08021c14 0221 movs r1, 2 ; 2
| 0x08021c16 90fbf1f0 sdiv r0, r0, r1
| 0x08021c1a dff8f01a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c1e 81f86300 strb.w r0, [r1, 0x63]
| 0x08021c22 dff8e80a ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c26 90f86400 ldrb.w r0, [r0, 0x64]
| 0x08021c2a dff8e01a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c2e 91f86610 ldrb.w r1, [r1, 0x66]
| 0x08021c32 0818 adds r0, r1, r0
| 0x08021c34 0221 movs r1, 2 ; 2
| 0x08021c36 90fbf1f0 sdiv r0, r0, r1
| 0x08021c3a dff8d01a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c3e 81f86500 strb.w r0, [r1, 0x65]
| 0x08021c42 dff8c80a ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c46 90f86600 ldrb.w r0, [r0, 0x66]
| 0x08021c4a dff8c01a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c4e 91f86810 ldrb.w r1, [r1, 0x68]
| 0x08021c52 0818 adds r0, r1, r0
| 0x08021c54 0221 movs r1, 2 ; 2
| 0x08021c56 90fbf1f0 sdiv r0, r0, r1
| 0x08021c5a dff8b01a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c5e 81f86700 strb.w r0, [r1, 0x67]
| 0x08021c62 dff8a80a ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c66 90f87000 ldrb.w r0, [r0, 0x70]
| 0x08021c6a dff8a01a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c6e 91f87210 ldrb.w r1, [r1, 0x72]
| 0x08021c72 0818 adds r0, r1, r0
| 0x08021c74 0221 movs r1, 2 ; 2
| 0x08021c76 90fbf1f0 sdiv r0, r0, r1
| 0x08021c7a dff8901a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c7e 81f87100 strb.w r0, [r1, 0x71]
| 0x08021c82 dff8880a ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c86 90f87200 ldrb.w r0, [r0, 0x72]
| 0x08021c8a dff8801a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c8e 91f87410 ldrb.w r1, [r1, 0x74]
| 0x08021c92 0818 adds r0, r1, r0
| 0x08021c94 0221 movs r1, 2 ; 2
| 0x08021c96 90fbf1f0 sdiv r0, r0, r1
| 0x08021c9a dff8701a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021c9e 81f87300 strb.w r0, [r1, 0x73]
| 0x08021ca2 dff8680a ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ca6 90f87400 ldrb.w r0, [r0, 0x74]
| 0x08021caa dff8601a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021cae 91f87610 ldrb.w r1, [r1, 0x76]
| 0x08021cb2 0818 adds r0, r1, r0
| 0x08021cb4 0221 movs r1, 2 ; 2
| 0x08021cb6 90fbf1f0 sdiv r0, r0, r1
| 0x08021cba dff8501a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021cbe 81f87500 strb.w r0, [r1, 0x75]
| 0x08021cc2 dff8480a ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021cc6 90f87600 ldrb.w r0, [r0, 0x76]
| 0x08021cca dff8401a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021cce 91f87810 ldrb.w r1, [r1, 0x78]
| 0x08021cd2 0818 adds r0, r1, r0
| 0x08021cd4 0221 movs r1, 2 ; 2
| 0x08021cd6 90fbf1f0 sdiv r0, r0, r1
| 0x08021cda dff8301a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021cde 81f87700 strb.w r0, [r1, 0x77]
| 0x08021ce2 dff8280a ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ce6 90f88000 ldrb.w r0, [r0, 0x80]
| 0x08021cea dff8201a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021cee 91f88210 ldrb.w r1, [r1, 0x82]
| 0x08021cf2 0818 adds r0, r1, r0
| 0x08021cf4 0221 movs r1, 2 ; 2
| 0x08021cf6 90fbf1f0 sdiv r0, r0, r1
| 0x08021cfa dff8101a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021cfe 81f88100 strb.w r0, [r1, 0x81]
| 0x08021d02 dff8080a ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d06 90f88200 ldrb.w r0, [r0, 0x82]
| 0x08021d0a dff8001a ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d0e 91f88410 ldrb.w r1, [r1, 0x84]
| 0x08021d12 0818 adds r0, r1, r0
| 0x08021d14 0221 movs r1, 2 ; 2
| 0x08021d16 90fbf1f0 sdiv r0, r0, r1
| 0x08021d1a dff8f019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d1e 81f88300 strb.w r0, [r1, 0x83]
| 0x08021d22 dff8e809 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d26 90f88400 ldrb.w r0, [r0, 0x84]
| 0x08021d2a dff8e019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d2e 91f88610 ldrb.w r1, [r1, 0x86]
| 0x08021d32 0818 adds r0, r1, r0
| 0x08021d34 0221 movs r1, 2 ; 2
| 0x08021d36 90fbf1f0 sdiv r0, r0, r1
| 0x08021d3a dff8d019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d3e 81f88500 strb.w r0, [r1, 0x85]
| 0x08021d42 dff8c809 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d46 90f88600 ldrb.w r0, [r0, 0x86]
| 0x08021d4a dff8c019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d4e 91f88810 ldrb.w r1, [r1, 0x88]
| 0x08021d52 0818 adds r0, r1, r0
| 0x08021d54 0221 movs r1, 2 ; 2
| 0x08021d56 90fbf1f0 sdiv r0, r0, r1
| 0x08021d5a dff8b019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d5e 81f88700 strb.w r0, [r1, 0x87]
| 0x08021d62 dff8a809 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d66 90f89000 ldrb.w r0, [r0, 0x90]
| 0x08021d6a dff8a019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d6e 91f89210 ldrb.w r1, [r1, 0x92]
| 0x08021d72 0818 adds r0, r1, r0
| 0x08021d74 0221 movs r1, 2 ; 2
| 0x08021d76 90fbf1f0 sdiv r0, r0, r1
| 0x08021d7a dff89019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d7e 81f89100 strb.w r0, [r1, 0x91]
| 0x08021d82 dff88809 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d86 90f89200 ldrb.w r0, [r0, 0x92]
| 0x08021d8a dff88019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d8e 91f89410 ldrb.w r1, [r1, 0x94]
| 0x08021d92 0818 adds r0, r1, r0
| 0x08021d94 0221 movs r1, 2 ; 2
| 0x08021d96 90fbf1f0 sdiv r0, r0, r1
| 0x08021d9a dff87019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021d9e 81f89300 strb.w r0, [r1, 0x93]
| 0x08021da2 dff86809 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021da6 90f89400 ldrb.w r0, [r0, 0x94]
| 0x08021daa dff86019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021dae 91f89610 ldrb.w r1, [r1, 0x96]
| 0x08021db2 0818 adds r0, r1, r0
| 0x08021db4 0221 movs r1, 2 ; 2
| 0x08021db6 90fbf1f0 sdiv r0, r0, r1
| 0x08021dba dff85019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021dbe 81f89500 strb.w r0, [r1, 0x95]
| 0x08021dc2 dff84809 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021dc6 90f89600 ldrb.w r0, [r0, 0x96]
| 0x08021dca dff84019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021dce 91f89810 ldrb.w r1, [r1, 0x98]
| 0x08021dd2 0818 adds r0, r1, r0
| 0x08021dd4 0221 movs r1, 2 ; 2
| 0x08021dd6 90fbf1f0 sdiv r0, r0, r1
| 0x08021dda dff83019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021dde 81f89700 strb.w r0, [r1, 0x97]
| 0x08021de2 dff82809 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021de6 90f8a000 ldrb.w r0, [r0, 0xa0]
| 0x08021dea dff82019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021dee 91f8a210 ldrb.w r1, [r1, 0xa2]
| 0x08021df2 0818 adds r0, r1, r0
| 0x08021df4 0221 movs r1, 2 ; 2
| 0x08021df6 90fbf1f0 sdiv r0, r0, r1
| 0x08021dfa dff81019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021dfe 81f8a100 strb.w r0, [r1, 0xa1]
| 0x08021e02 dff80809 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e06 90f8a200 ldrb.w r0, [r0, 0xa2]
| 0x08021e0a dff80019 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e0e 91f8a410 ldrb.w r1, [r1, 0xa4]
| 0x08021e12 0818 adds r0, r1, r0
| 0x08021e14 0221 movs r1, 2 ; 2
| 0x08021e16 90fbf1f0 sdiv r0, r0, r1
| 0x08021e1a dff8f018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e1e 81f8a300 strb.w r0, [r1, 0xa3]
| 0x08021e22 dff8e808 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e26 90f8a400 ldrb.w r0, [r0, 0xa4]
| 0x08021e2a dff8e018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e2e 91f8a610 ldrb.w r1, [r1, 0xa6]
| 0x08021e32 0818 adds r0, r1, r0
| 0x08021e34 0221 movs r1, 2 ; 2
| 0x08021e36 90fbf1f0 sdiv r0, r0, r1
| 0x08021e3a dff8d018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e3e 81f8a500 strb.w r0, [r1, 0xa5]
| 0x08021e42 dff8c808 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e46 90f8a600 ldrb.w r0, [r0, 0xa6]
| 0x08021e4a dff8c018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e4e 91f8a810 ldrb.w r1, [r1, 0xa8]
| 0x08021e52 0818 adds r0, r1, r0
| 0x08021e54 0221 movs r1, 2 ; 2
| 0x08021e56 90fbf1f0 sdiv r0, r0, r1
| 0x08021e5a dff8b018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e5e 81f8a700 strb.w r0, [r1, 0xa7]
| 0x08021e62 dff8a808 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e66 90f8b000 ldrb.w r0, [r0, 0xb0]
| 0x08021e6a dff8a018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e6e 91f8b210 ldrb.w r1, [r1, 0xb2]
| 0x08021e72 0818 adds r0, r1, r0
| 0x08021e74 0221 movs r1, 2 ; 2
| 0x08021e76 90fbf1f0 sdiv r0, r0, r1
| 0x08021e7a dff89018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e7e 81f8b100 strb.w r0, [r1, 0xb1]
| 0x08021e82 dff88808 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e86 90f8b200 ldrb.w r0, [r0, 0xb2]
| 0x08021e8a dff88018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e8e 91f8b410 ldrb.w r1, [r1, 0xb4]
| 0x08021e92 0818 adds r0, r1, r0
| 0x08021e94 0221 movs r1, 2 ; 2
| 0x08021e96 90fbf1f0 sdiv r0, r0, r1
| 0x08021e9a dff87018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021e9e 81f8b300 strb.w r0, [r1, 0xb3]
| 0x08021ea2 dff86808 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ea6 90f8b400 ldrb.w r0, [r0, 0xb4]
| 0x08021eaa dff86018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021eae 91f8b610 ldrb.w r1, [r1, 0xb6]
| 0x08021eb2 0818 adds r0, r1, r0
| 0x08021eb4 0221 movs r1, 2 ; 2
| 0x08021eb6 90fbf1f0 sdiv r0, r0, r1
| 0x08021eba dff85018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ebe 81f8b500 strb.w r0, [r1, 0xb5]
| 0x08021ec2 dff84808 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ec6 90f8b600 ldrb.w r0, [r0, 0xb6]
| 0x08021eca dff84018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ece 91f8b810 ldrb.w r1, [r1, 0xb8]
| 0x08021ed2 0818 adds r0, r1, r0
| 0x08021ed4 0221 movs r1, 2 ; 2
| 0x08021ed6 90fbf1f0 sdiv r0, r0, r1
| 0x08021eda dff83018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ede 81f8b700 strb.w r0, [r1, 0xb7]
| 0x08021ee2 dff82808 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ee6 90f8c000 ldrb.w r0, [r0, 0xc0]
| 0x08021eea dff82018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021eee 91f8c210 ldrb.w r1, [r1, 0xc2]
| 0x08021ef2 0818 adds r0, r1, r0
| 0x08021ef4 0221 movs r1, 2 ; 2
| 0x08021ef6 90fbf1f0 sdiv r0, r0, r1
| 0x08021efa dff81018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021efe 81f8c100 strb.w r0, [r1, 0xc1]
| 0x08021f02 dff80808 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f06 90f8c200 ldrb.w r0, [r0, 0xc2]
| 0x08021f0a dff80018 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f0e 91f8c410 ldrb.w r1, [r1, 0xc4]
| 0x08021f12 0818 adds r0, r1, r0
| 0x08021f14 0221 movs r1, 2 ; 2
| 0x08021f16 90fbf1f0 sdiv r0, r0, r1
| 0x08021f1a dff8f017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f1e 81f8c300 strb.w r0, [r1, 0xc3]
| 0x08021f22 dff8e807 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f26 90f8c400 ldrb.w r0, [r0, 0xc4]
| 0x08021f2a dff8e017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f2e 91f8c610 ldrb.w r1, [r1, 0xc6]
| 0x08021f32 0818 adds r0, r1, r0
| 0x08021f34 0221 movs r1, 2 ; 2
| 0x08021f36 90fbf1f0 sdiv r0, r0, r1
| 0x08021f3a dff8d017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f3e 81f8c500 strb.w r0, [r1, 0xc5]
| 0x08021f42 dff8c807 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f46 90f8c600 ldrb.w r0, [r0, 0xc6]
| 0x08021f4a dff8c017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f4e 91f8c810 ldrb.w r1, [r1, 0xc8]
| 0x08021f52 0818 adds r0, r1, r0
| 0x08021f54 0221 movs r1, 2 ; 2
| 0x08021f56 90fbf1f0 sdiv r0, r0, r1
| 0x08021f5a dff8b017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f5e 81f8c700 strb.w r0, [r1, 0xc7]
| 0x08021f62 dff8a807 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f66 90f8d000 ldrb.w r0, [r0, 0xd0]
| 0x08021f6a dff8a017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f6e 91f8d210 ldrb.w r1, [r1, 0xd2]
| 0x08021f72 0818 adds r0, r1, r0
| 0x08021f74 0221 movs r1, 2 ; 2
| 0x08021f76 90fbf1f0 sdiv r0, r0, r1
| 0x08021f7a dff89017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f7e 81f8d100 strb.w r0, [r1, 0xd1]
| 0x08021f82 dff88807 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f86 90f8d200 ldrb.w r0, [r0, 0xd2]
| 0x08021f8a dff88017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f8e 91f8d410 ldrb.w r1, [r1, 0xd4]
| 0x08021f92 0818 adds r0, r1, r0
| 0x08021f94 0221 movs r1, 2 ; 2
| 0x08021f96 90fbf1f0 sdiv r0, r0, r1
| 0x08021f9a dff87017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021f9e 81f8d300 strb.w r0, [r1, 0xd3]
| 0x08021fa2 dff86807 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021fa6 90f8d400 ldrb.w r0, [r0, 0xd4]
| 0x08021faa dff86017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021fae 91f8d610 ldrb.w r1, [r1, 0xd6]
| 0x08021fb2 0818 adds r0, r1, r0
| 0x08021fb4 0221 movs r1, 2 ; 2
| 0x08021fb6 90fbf1f0 sdiv r0, r0, r1
| 0x08021fba dff85017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021fbe 81f8d500 strb.w r0, [r1, 0xd5]
| 0x08021fc2 dff84807 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021fc6 90f8d600 ldrb.w r0, [r0, 0xd6]
| 0x08021fca dff84017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021fce 91f8d810 ldrb.w r1, [r1, 0xd8]
| 0x08021fd2 0818 adds r0, r1, r0
| 0x08021fd4 0221 movs r1, 2 ; 2
| 0x08021fd6 90fbf1f0 sdiv r0, r0, r1
| 0x08021fda dff83017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021fde 81f8d700 strb.w r0, [r1, 0xd7]
| 0x08021fe2 dff82807 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021fe6 90f8f000 ldrb.w r0, [r0, 0xf0]
| 0x08021fea dff82017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021fee 91f8f210 ldrb.w r1, [r1, 0xf2]
| 0x08021ff2 0818 adds r0, r1, r0
| 0x08021ff4 0221 movs r1, 2 ; 2
| 0x08021ff6 90fbf1f0 sdiv r0, r0, r1
| 0x08021ffa dff81017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08021ffe 81f8f100 strb.w r0, [r1, 0xf1]
| 0x08022002 dff80807 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022006 90f8f200 ldrb.w r0, [r0, 0xf2]
| 0x0802200a dff80017 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802200e 91f8f410 ldrb.w r1, [r1, 0xf4]
| 0x08022012 0818 adds r0, r1, r0
| 0x08022014 0221 movs r1, 2 ; 2
| 0x08022016 90fbf1f0 sdiv r0, r0, r1
| 0x0802201a dff8f016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802201e 81f8f300 strb.w r0, [r1, 0xf3]
| 0x08022022 dff8e806 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022026 90f8f400 ldrb.w r0, [r0, 0xf4]
| 0x0802202a dff8e016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802202e 91f8f610 ldrb.w r1, [r1, 0xf6]
| 0x08022032 0818 adds r0, r1, r0
| 0x08022034 0221 movs r1, 2 ; 2
| 0x08022036 90fbf1f0 sdiv r0, r0, r1
| 0x0802203a dff8d016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802203e 81f8f500 strb.w r0, [r1, 0xf5]
| 0x08022042 dff8c806 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022046 90f8f600 ldrb.w r0, [r0, 0xf6]
| 0x0802204a dff8c016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802204e 91f8f810 ldrb.w r1, [r1, 0xf8]
| 0x08022052 0818 adds r0, r1, r0
| 0x08022054 0221 movs r1, 2 ; 2
| 0x08022056 90fbf1f0 sdiv r0, r0, r1
| 0x0802205a dff8b016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802205e 81f8f700 strb.w r0, [r1, 0xf7]
| 0x08022062 dff8a806 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022066 90f80001 ldrb.w r0, [r0, 0x100]
| 0x0802206a dff8a016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802206e 91f80211 ldrb.w r1, [r1, 0x102]
| 0x08022072 0818 adds r0, r1, r0
| 0x08022074 0221 movs r1, 2 ; 2
| 0x08022076 90fbf1f0 sdiv r0, r0, r1
| 0x0802207a dff89016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802207e 81f80101 strb.w r0, [r1, 0x101]
| 0x08022082 dff88806 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022086 90f80201 ldrb.w r0, [r0, 0x102]
| 0x0802208a dff88016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802208e 91f80411 ldrb.w r1, [r1, 0x104]
| 0x08022092 0818 adds r0, r1, r0
| 0x08022094 0221 movs r1, 2 ; 2
| 0x08022096 90fbf1f0 sdiv r0, r0, r1
| 0x0802209a dff87016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802209e 81f80301 strb.w r0, [r1, 0x103]
| 0x080220a2 dff86806 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080220a6 90f80401 ldrb.w r0, [r0, 0x104]
| 0x080220aa dff86016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080220ae 91f80611 ldrb.w r1, [r1, 0x106]
| 0x080220b2 0818 adds r0, r1, r0
| 0x080220b4 0221 movs r1, 2 ; 2
| 0x080220b6 90fbf1f0 sdiv r0, r0, r1
| 0x080220ba dff85016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080220be 81f80501 strb.w r0, [r1, 0x105]
| 0x080220c2 dff84806 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080220c6 90f80601 ldrb.w r0, [r0, 0x106]
| 0x080220ca dff84016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080220ce 91f80811 ldrb.w r1, [r1, 0x108]
| 0x080220d2 0818 adds r0, r1, r0
| 0x080220d4 0221 movs r1, 2 ; 2
| 0x080220d6 90fbf1f0 sdiv r0, r0, r1
| 0x080220da dff83016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080220de 81f80701 strb.w r0, [r1, 0x107]
| 0x080220e2 dff82806 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080220e6 90f81001 ldrb.w r0, [r0, 0x110]
| 0x080220ea dff82016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080220ee 91f81211 ldrb.w r1, [r1, 0x112]
| 0x080220f2 0818 adds r0, r1, r0
| 0x080220f4 0221 movs r1, 2 ; 2
| 0x080220f6 90fbf1f0 sdiv r0, r0, r1
| 0x080220fa dff81016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080220fe 81f81101 strb.w r0, [r1, 0x111]
| 0x08022102 dff80806 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022106 90f81201 ldrb.w r0, [r0, 0x112]
| 0x0802210a dff80016 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802210e 91f81411 ldrb.w r1, [r1, 0x114]
| 0x08022112 0818 adds r0, r1, r0
| 0x08022114 0221 movs r1, 2 ; 2
| 0x08022116 90fbf1f0 sdiv r0, r0, r1
| 0x0802211a dff8f015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802211e 81f81301 strb.w r0, [r1, 0x113]
| 0x08022122 dff8e805 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022126 90f81401 ldrb.w r0, [r0, 0x114]
| 0x0802212a dff8e015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802212e 91f81611 ldrb.w r1, [r1, 0x116]
| 0x08022132 0818 adds r0, r1, r0
| 0x08022134 0221 movs r1, 2 ; 2
| 0x08022136 90fbf1f0 sdiv r0, r0, r1
| 0x0802213a dff8d015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802213e 81f81501 strb.w r0, [r1, 0x115]
| 0x08022142 dff8c805 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022146 90f81601 ldrb.w r0, [r0, 0x116]
| 0x0802214a dff8c015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802214e 91f81811 ldrb.w r1, [r1, 0x118]
| 0x08022152 0818 adds r0, r1, r0
| 0x08022154 0221 movs r1, 2 ; 2
| 0x08022156 90fbf1f0 sdiv r0, r0, r1
| 0x0802215a dff8b015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802215e 81f81701 strb.w r0, [r1, 0x117]
| 0x08022162 dff8a805 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022166 90f82001 ldrb.w r0, [r0, 0x120]
| 0x0802216a dff8a015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802216e 91f82211 ldrb.w r1, [r1, 0x122]
| 0x08022172 0818 adds r0, r1, r0
| 0x08022174 0221 movs r1, 2 ; 2
| 0x08022176 90fbf1f0 sdiv r0, r0, r1
| 0x0802217a dff89015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802217e 81f82101 strb.w r0, [r1, 0x121]
| 0x08022182 dff88805 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022186 90f82201 ldrb.w r0, [r0, 0x122]
| 0x0802218a dff88015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802218e 91f82411 ldrb.w r1, [r1, 0x124]
| 0x08022192 0818 adds r0, r1, r0
| 0x08022194 0221 movs r1, 2 ; 2
| 0x08022196 90fbf1f0 sdiv r0, r0, r1
| 0x0802219a dff87015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802219e 81f82301 strb.w r0, [r1, 0x123]
| 0x080221a2 dff86805 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080221a6 90f82401 ldrb.w r0, [r0, 0x124]
| 0x080221aa dff86015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080221ae 91f82611 ldrb.w r1, [r1, 0x126]
| 0x080221b2 0818 adds r0, r1, r0
| 0x080221b4 0221 movs r1, 2 ; 2
| 0x080221b6 90fbf1f0 sdiv r0, r0, r1
| 0x080221ba dff85015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080221be 81f82501 strb.w r0, [r1, 0x125]
| 0x080221c2 dff84805 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080221c6 90f82601 ldrb.w r0, [r0, 0x126]
| 0x080221ca dff84015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080221ce 91f82811 ldrb.w r1, [r1, 0x128]
| 0x080221d2 0818 adds r0, r1, r0
| 0x080221d4 0221 movs r1, 2 ; 2
| 0x080221d6 90fbf1f0 sdiv r0, r0, r1
| 0x080221da dff83015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080221de 81f82701 strb.w r0, [r1, 0x127]
| 0x080221e2 dff82805 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080221e6 90f83001 ldrb.w r0, [r0, 0x130]
| 0x080221ea dff82015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080221ee 91f83211 ldrb.w r1, [r1, 0x132]
| 0x080221f2 0818 adds r0, r1, r0
| 0x080221f4 0221 movs r1, 2 ; 2
| 0x080221f6 90fbf1f0 sdiv r0, r0, r1
| 0x080221fa dff81015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080221fe 81f83101 strb.w r0, [r1, 0x131]
| 0x08022202 dff80805 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022206 90f83201 ldrb.w r0, [r0, 0x132]
| 0x0802220a dff80015 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802220e 91f83411 ldrb.w r1, [r1, 0x134]
| 0x08022212 0818 adds r0, r1, r0
| 0x08022214 0221 movs r1, 2 ; 2
| 0x08022216 90fbf1f0 sdiv r0, r0, r1
| 0x0802221a dff8f014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802221e 81f83301 strb.w r0, [r1, 0x133]
| 0x08022222 dff8e804 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022226 90f83401 ldrb.w r0, [r0, 0x134]
| 0x0802222a dff8e014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802222e 91f83611 ldrb.w r1, [r1, 0x136]
| 0x08022232 0818 adds r0, r1, r0
| 0x08022234 0221 movs r1, 2 ; 2
| 0x08022236 90fbf1f0 sdiv r0, r0, r1
| 0x0802223a dff8d014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802223e 81f83501 strb.w r0, [r1, 0x135]
| 0x08022242 dff8c804 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022246 90f83601 ldrb.w r0, [r0, 0x136]
| 0x0802224a dff8c014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802224e 91f83811 ldrb.w r1, [r1, 0x138]
| 0x08022252 0818 adds r0, r1, r0
| 0x08022254 0221 movs r1, 2 ; 2
| 0x08022256 90fbf1f0 sdiv r0, r0, r1
| 0x0802225a dff8b014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802225e 81f83701 strb.w r0, [r1, 0x137]
| 0x08022262 dff8a804 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022266 90f84001 ldrb.w r0, [r0, 0x140]
| 0x0802226a dff8a014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802226e 91f84211 ldrb.w r1, [r1, 0x142]
| 0x08022272 0818 adds r0, r1, r0
| 0x08022274 0221 movs r1, 2 ; 2
| 0x08022276 90fbf1f0 sdiv r0, r0, r1
| 0x0802227a dff89014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802227e 81f84101 strb.w r0, [r1, 0x141]
| 0x08022282 dff88804 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022286 90f84201 ldrb.w r0, [r0, 0x142]
| 0x0802228a dff88014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802228e 91f84411 ldrb.w r1, [r1, 0x144]
| 0x08022292 0818 adds r0, r1, r0
| 0x08022294 0221 movs r1, 2 ; 2
| 0x08022296 90fbf1f0 sdiv r0, r0, r1
| 0x0802229a dff87014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802229e 81f84301 strb.w r0, [r1, 0x143]
| 0x080222a2 dff86804 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080222a6 90f84401 ldrb.w r0, [r0, 0x144]
| 0x080222aa dff86014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080222ae 91f84611 ldrb.w r1, [r1, 0x146]
| 0x080222b2 0818 adds r0, r1, r0
| 0x080222b4 0221 movs r1, 2 ; 2
| 0x080222b6 90fbf1f0 sdiv r0, r0, r1
| 0x080222ba dff85014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080222be 81f84501 strb.w r0, [r1, 0x145]
| 0x080222c2 dff84804 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080222c6 90f84601 ldrb.w r0, [r0, 0x146]
| 0x080222ca dff84014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080222ce 91f84811 ldrb.w r1, [r1, 0x148]
| 0x080222d2 0818 adds r0, r1, r0
| 0x080222d4 0221 movs r1, 2 ; 2
| 0x080222d6 90fbf1f0 sdiv r0, r0, r1
| 0x080222da dff83014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080222de 81f84701 strb.w r0, [r1, 0x147]
| 0x080222e2 dff82804 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080222e6 90f85001 ldrb.w r0, [r0, 0x150]
| 0x080222ea dff82014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080222ee 91f85211 ldrb.w r1, [r1, 0x152]
| 0x080222f2 0818 adds r0, r1, r0
| 0x080222f4 0221 movs r1, 2 ; 2
| 0x080222f6 90fbf1f0 sdiv r0, r0, r1
| 0x080222fa dff81014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x080222fe 81f85101 strb.w r0, [r1, 0x151]
| 0x08022302 dff80804 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022306 90f85201 ldrb.w r0, [r0, 0x152]
| 0x0802230a dff80014 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802230e 91f85411 ldrb.w r1, [r1, 0x154]
| 0x08022312 0818 adds r0, r1, r0
| 0x08022314 0221 movs r1, 2 ; 2
| 0x08022316 90fbf1f0 sdiv r0, r0, r1
| 0x0802231a dff8f013 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802231e 81f85301 strb.w r0, [r1, 0x153]
| 0x08022322 dff8e803 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022326 90f85401 ldrb.w r0, [r0, 0x154]
| 0x0802232a dff8e013 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802232e 91f85611 ldrb.w r1, [r1, 0x156]
| 0x08022332 0818 adds r0, r1, r0
| 0x08022334 0221 movs r1, 2 ; 2
| 0x08022336 90fbf1f0 sdiv r0, r0, r1
| 0x0802233a dff8d013 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802233e 81f85501 strb.w r0, [r1, 0x155]
| 0x08022342 dff8c803 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022346 90f85601 ldrb.w r0, [r0, 0x156]
| 0x0802234a dff8c013 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802234e 91f85811 ldrb.w r1, [r1, 0x158]
| 0x08022352 0818 adds r0, r1, r0
| 0x08022354 0221 movs r1, 2 ; 2
| 0x08022356 90fbf1f0 sdiv r0, r0, r1
| 0x0802235a dff8b013 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802235e 81f85701 strb.w r0, [r1, 0x157]
| 0x08022362 dff8a803 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022366 90f86001 ldrb.w r0, [r0, 0x160]
| 0x0802236a dff8a013 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802236e 91f86211 ldrb.w r1, [r1, 0x162]
| 0x08022372 0818 adds r0, r1, r0
| 0x08022374 0221 movs r1, 2 ; 2
| 0x08022376 90fbf1f0 sdiv r0, r0, r1
| 0x0802237a dff89013 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802237e 81f86101 strb.w r0, [r1, 0x161]
| 0x08022382 dff88803 ldr.w r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x08022386 90f86201 ldrb.w r0, [r0, 0x162]
| 0x0802238a dff88013 ldr.w r1, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802238e 91f86411 ldrb.w r1, [r1, 0x164]
| 0x08022392 0818 adds r0, r1, r0
| 0x08022394 0221 movs r1, 2 ; 2
| 0x08022396 90fbf1f0 sdiv r0, r0, r1
| 0x0802239a dc49 ldr r1, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x0802239c 81f86301 strb.w r0, [r1, 0x163]
| 0x080223a0 da48 ldr r0, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x080223a2 90f86401 ldrb.w r0, [r0, 0x164]
| 0x080223a6 d949 ldr r1, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x080223a8 91f86611 ldrb.w r1, [r1, 0x166]
| 0x080223ac 0818 adds r0, r1, r0
| 0x080223ae 0221 movs r1, 2 ; 2
| 0x080223b0 90fbf1f0 sdiv r0, r0, r1
| 0x080223b4 d549 ldr r1, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x080223b6 81f86501 strb.w r0, [r1, 0x165]
| 0x080223ba d448 ldr r0, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x080223bc 90f86601 ldrb.w r0, [r0, 0x166]
| 0x080223c0 d249 ldr r1, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x080223c2 91f86811 ldrb.w r1, [r1, 0x168]
| 0x080223c6 0818 adds r0, r1, r0
| 0x080223c8 0221 movs r1, 2 ; 2
| 0x080223ca 90fbf1f0 sdiv r0, r0, r1
| 0x080223ce cf49 ldr r1, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x080223d0 81f86701 strb.w r0, [r1, 0x167]
| 0x080223d4 cd48 ldr r0, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x080223d6 90f87001 ldrb.w r0, [r0, 0x170]
| 0x080223da cc49 ldr r1, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x080223dc 91f87211 ldrb.w r1, [r1, 0x172]
| 0x080223e0 0818 adds r0, r1, r0
| 0x080223e2 0221 movs r1, 2 ; 2
| 0x080223e4 90fbf1f0 sdiv r0, r0, r1
| 0x080223e8 c849 ldr r1, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x080223ea 81f87101 strb.w r0, [r1, 0x171]
| 0x080223ee c748 ldr r0, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x080223f0 90f87201 ldrb.w r0, [r0, 0x172]
| 0x080223f4 c549 ldr r1, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x080223f6 91f87411 ldrb.w r1, [r1, 0x174]
| 0x080223fa 0818 adds r0, r1, r0
| 0x080223fc 0221 movs r1, 2 ; 2
| 0x080223fe 90fbf1f0 sdiv r0, r0, r1
| 0x08022402 c249 ldr r1, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x08022404 81f87301 strb.w r0, [r1, 0x173]
| 0x08022408 c048 ldr r0, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x0802240a 90f87401 ldrb.w r0, [r0, 0x174]
| 0x0802240e bf49 ldr r1, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x08022410 91f87611 ldrb.w r1, [r1, 0x176]
| 0x08022414 0818 adds r0, r1, r0
| 0x08022416 0221 movs r1, 2 ; 2
| 0x08022418 90fbf1f0 sdiv r0, r0, r1
| 0x0802241c bb49 ldr r1, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x0802241e 81f87501 strb.w r0, [r1, 0x175]
| 0x08022422 ba48 ldr r0, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x08022424 90f87601 ldrb.w r0, [r0, 0x176]
| 0x08022428 b849 ldr r1, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x0802242a 91f87811 ldrb.w r1, [r1, 0x178]
| 0x0802242e 0818 adds r0, r1, r0
| 0x08022430 0221 movs r1, 2 ; 2
| 0x08022432 90fbf1f0 sdiv r0, r0, r1
| 0x08022436 b549 ldr r1, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x08022438 81f87701 strb.w r0, [r1, 0x177]
| 0x0802243c b348 ldr r0, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x0802243e 90f88001 ldrb.w r0, [r0, 0x180]
| 0x08022442 b249 ldr r1, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x08022444 91f88211 ldrb.w r1, [r1, 0x182]
| 0x08022448 0818 adds r0, r1, r0
| 0x0802244a 0221 movs r1, 2 ; 2
| 0x0802244c 90fbf1f0 sdiv r0, r0, r1
| 0x08022450 ae49 ldr r1, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x08022452 81f88101 strb.w r0, [r1, 0x181]
| 0x08022456 ad48 ldr r0, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x08022458 90f88201 ldrb.w r0, [r0, 0x182]
| 0x0802245c ab49 ldr r1, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x0802245e 91f88411 ldrb.w r1, [r1, 0x184]
| 0x08022462 0818 adds r0, r1, r0
| 0x08022464 0221 movs r1, 2 ; 2
| 0x08022466 90fbf1f0 sdiv r0, r0, r1
| 0x0802246a a849 ldr r1, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x0802246c 81f88301 strb.w r0, [r1, 0x183]
| 0x08022470 a648 ldr r0, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x08022472 90f88401 ldrb.w r0, [r0, 0x184]
| 0x08022476 a549 ldr r1, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x08022478 91f88611 ldrb.w r1, [r1, 0x186]
| 0x0802247c 0818 adds r0, r1, r0
| 0x0802247e 0221 movs r1, 2 ; 2
| 0x08022480 90fbf1f0 sdiv r0, r0, r1
| 0x08022484 a149 ldr r1, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x08022486 81f88501 strb.w r0, [r1, 0x185]
| 0x0802248a a048 ldr r0, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x0802248c 90f88601 ldrb.w r0, [r0, 0x186]
| 0x08022490 9e49 ldr r1, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x08022492 91f88811 ldrb.w r1, [r1, 0x188]
| 0x08022496 0818 adds r0, r1, r0
| 0x08022498 0221 movs r1, 2 ; 2
| 0x0802249a 90fbf1f0 sdiv r0, r0, r1
| 0x0802249e 9b49 ldr r1, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x080224a0 81f88701 strb.w r0, [r1, 0x187]
| 0x080224a4 9948 ldr r0, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x080224a6 90f8b301 ldrb.w r0, [r0, 0x1b3]
| 0x080224aa 0002 lsls r0, r0, 8
| 0x080224ac 9749 ldr r1, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x080224ae 91f8b211 ldrb.w r1, [r1, 0x1b2]
| 0x080224b2 4018 adds r0, r0, r1
| 0x080224b4 dff85c1b ldr.w r1, [func_23018_spiflash_rd_15] ; [0x8023018:4]=0xb2c0b510
| 0x080224b8 0880 strh r0, [r1]
| 0x080224ba 9448 ldr r0, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x080224bc 90f8f301 ldrb.w r0, [r0, 0x1f3]
| 0x080224c0 0002 lsls r0, r0, 8
| 0x080224c2 9249 ldr r1, [0x0802270e] ; [0x802270c:4]=0x2001c380
| 0x080224c4 91f8f211 ldrb.w r1, [r1, 0x1f2]
| 0x080224c8 4018 adds r0, r0, r1
| 0x080224ca dff8d41c ldr.w r1, [0x080231a6] ; [0x80231a4:4]=0x8094d10
| 0x080224ce 0880 strh r0, [r1]
| 0x080224d0 dff8400b ldr.w r0, [func_23018_spiflash_rd_15] ; [0x8023018:4]=0xb2c0b510
| 0x080224d4 0088 ldrh r0, [r0]
| 0x080224d6 49f69a11 movw r1, 0x999a
| 0x080224da 8842 cmp r0, r1
| ,=< 0x080224dc 06d2 bhs 0x80224ec
| | 0x080224de dff8c00c ldr.w r0, [0x080231a6] ; [0x80231a4:4]=0x8094d10
| | 0x080224e2 0088 ldrh r0, [r0]
| | 0x080224e4 49f69a11 movw r1, 0x999a
| | 0x080224e8 8842 cmp r0, r1
| ,==< 0x080224ea 09d3 blo 0x8022500
| |`-> 0x080224ec dff8240b ldr.w r0, [func_23018_spiflash_rd_15] ; [0x8023018:4]=0xb2c0b510
| | 0x080224f0 4ff48041 mov.w r1, 0x4000
| | 0x080224f4 0180 strh r1, [r0]
| | 0x080224f6 dff8a80c ldr.w r0, [0x080231a6] ; [0x80231a4:4]=0x8094d10
| | 0x080224fa 4ff48e41 mov.w r1, 0x4700
| | 0x080224fe 0180 strh r1, [r0]
\ `--> 0x08022500 01bd pop {r0, pc}
/ (fcn) func_22502_spiflash_security 48
| Caller: c5000_wr_60_5 usb_dnld_handle
| func_22502_spiflash_security ();
| 0x08022502 80b5 push {r7, lr}
| 0x08022504 4ff48050 mov.w r0, 0x1000
| 0x08022508 0ff092f9 bl spiflash_Erase_Security_Registers_44h
| 0x0802250c 4ff48072 mov.w r2, 0x100 ; 256
| 0x08022510 4ff48051 mov.w r1, 0x1000
| 0x08022514 7d48 ldr r0, [0x0802270c] ; [0x802270c:4]=0x2001c380
| 0x08022516 0ff0a5f9 bl spiflash_Program_Security_Registers_42h
| 0x0802251a 4ff40050 mov.w r0, 0x2000
| 0x0802251e 0ff087f9 bl spiflash_Erase_Security_Registers_44h
| 0x08022522 4ff48072 mov.w r2, 0x100 ; 256
| 0x08022526 4ff40051 mov.w r1, 0x2000
| 0x0802252a 7948 ldr r0, [0x08022712] ; [0x8022710:4]=0x2001c480
| 0x0802252c 0ff09af9 bl spiflash_Program_Security_Registers_42h
\ 0x08022530 01bd pop {r0, pc}
/ (fcn) func_22532_spiflash_security_2 30
| Caller: func_475b8
| func_22532_spiflash_security_2 ();
| 0x08022532 80b5 push {r7, lr}
| 0x08022534 4022 movs r2, 0x40 ; '@' ; 64
| 0x08022536 4ff44051 mov.w r1, 0x3000
| 0x0802253a dff8a80b ldr.w r0, [0x080230ea] ; [0x80230e8:4]=0xb2c0b580
| 0x0802253e 0ff0b7f9 bl md380_spiflash_security_registers_read
| 0x08022542 dff8a00b ldr.w r0, [0x080230ea] ; [0x80230e8:4]=0xb2c0b580
| 0x08022546 406b ldr r0, [r0, 0x34]
| 0x08022548 dff8c81c ldr.w r1, [0x08023218] ; [0x8023218:4]=0x2001e8e7
| 0x0802254c 0860 str r0, [r1]
\ 0x0802254e 01bd pop {r0, pc}
/ (fcn) func_22550_spiflash_security_3 26
| Caller: usb_dnld_handle
| func_22550_spiflash_security_3 ();
| 0x08022550 80b5 push {r7, lr}
| 0x08022552 4ff44050 mov.w r0, 0x3000
| 0x08022556 0ff06bf9 bl spiflash_Erase_Security_Registers_44h
| 0x0802255a 4022 movs r2, 0x40 ; '@' ; 64
| 0x0802255c 4ff44051 mov.w r1, 0x3000
| 0x08022560 dff8800b ldr.w r0, [func_230e8_spiflash_rd_19] ; [0x80230e8:4]=0xb2c0b580
| 0x08022564 0ff07ef9 bl spiflash_Program_Security_Registers_42h
\ 0x08022568 01bd pop {r0, pc}
/ (fcn) func_226ae_spiflash_rd_2 18
| Caller: func_475b8
| func_226ae_spiflash_rd_2 ();
| 0x080226ae 80b5 push {r7, lr}
| 0x080226b0 0422 movs r2, 4 ; 4
| 0x080226b2 42f20801 movw r1, 0x2008
| 0x080226b6 dff8c40c ldr.w r0, [0x08023382] ; [0x8023380:4]=0xb2c0b580
| 0x080226ba 0ef0dcfe bl md380_spiflash_read
\ 0x080226be 01bd pop {r0, pc}
/ (fcn) func_226e4_spiflash_rd_3 18
| Caller: func_475b8
| func_226e4_spiflash_rd_3 ();
| 0x080226e4 80b5 push {r7, lr}
| 0x080226e6 5022 movs r2, 0x50 ; 'P' ; 80
| 0x080226e8 4ff40251 mov.w r1, 0x2080
| 0x080226ec dff8d80c ldr.w r0, [func_233cc] ; [0x80233cc:4]=0xb2c0b580
| 0x080226f0 0ef0c1fe bl md380_spiflash_read
\ 0x080226f4 01bd pop {r0, pc}
/ (fcn) init_radioconfig_2_from_spi 554
| Caller: func_475b8
| init_radioconfig_2_from_spi ();
| 0x08022714 80b5 push {r7, lr}
| ;-- read_40_from_2100_spi:
| 0x08022716 4022 movs r2, 0x40 ; '@' ; 64
| 0x08022718 4ff40451 mov.w r1, 0x2100
| 0x0802271c dff8fc0a ldr.w r0, [func_23220] ; [0x8023220:4]=0xcb510
| 0x08022720 0ef0a9fe bl md380_spiflash_read
| 0x08022724 dff8f40a ldr.w r0, [func_23220] ; [0x8023220:4]=0xcb510
| 0x08022728 407c ldrb r0, [r0, 0x11]
| 0x0802272a 011f subs r1, r0, 4
| 0x0802272c 89b2 uxth r1, r1
| 0x0802272e 0c29 cmp r1, 0xc ; 12
| ,=< 0x08022730 00d3 blo 0x8022734
| | 0x08022732 0420 movs r0, 4 ; 4
| `-> 0x08022734 1921 movs r1, 0x19 ; 25
| 0x08022736 10fb01f0 smulbb r0, r0, r1
| 0x0802273a dff8d01c ldr.w r1, [0x08023412] ; [0x8023410:4]=0x2001e7b6
| 0x0802273e 0880 strh r0, [r1]
| 0x08022740 dff8d80a ldr.w r0, [func_23220] ; [0x8023220:4]=0xcb510
| 0x08022744 0078 ldrb r0, [r0]
| 0x08022746 dff8d41a ldr.w r1, [0x08023222] ; [0x8023220:4]=0xcb510
| 0x0802274a 4978 ldrb r1, [r1, 1]
| 0x0802274c 8842 cmp r0, r1
| ,=< 0x0802274e 09d0 beq 0x8022764
| | 0x08022750 dff8c80a ldr.w r0, [func_23220] ; [0x8023220:4]=0xcb510
| | 0x08022754 0078 ldrb r0, [r0]
| | 0x08022756 2628 cmp r0, 0x26 ; '&' ; 38
| ,==< 0x08022758 04d0 beq 0x8022764
| || 0x0802275a dff8c00a ldr.w r0, [0x08023222] ; [0x8023220:4]=0xcb510
| || 0x0802275e 4078 ldrb r0, [r0, 1]
| || 0x08022760 2628 cmp r0, 0x26 ; '&' ; 38
| ,===< 0x08022762 08d1 bne 0x8022776
| |``-> 0x08022764 dff8280b ldr.w r0, [func_23294] ; [0x8023294:4]=0xb2c0b510
| | 0x08022768 8078 ldrb r0, [r0, 2]
| | 0x0802276a 50f00100 orrs r0, r0, 1
| | 0x0802276e dff8201b ldr.w r1, [0x08023296] ; [0x8023294:4]=0xb2c0b510
| | 0x08022772 8870 strb r0, [r1, 2]
| | ,=< 0x08022774 07e0 b 0x8022786
| `---> 0x08022776 dff8180b ldr.w r0, [0x08023296] ; [0x8023294:4]=0xb2c0b510
| | 0x0802277a 8078 ldrb r0, [r0, 2]
| | 0x0802277c 10f0fe00 ands r0, r0, 0xfe
| | 0x08022780 dff80c1b ldr.w r1, [func_23294] ; [0x8023294:4]=0xb2c0b510
| | 0x08022784 8870 strb r0, [r1, 2]
| `-> 0x08022786 dff8940a ldr.w r0, [0x08023222] ; [0x8023220:4]=0xcb510
| 0x0802278a 8078 ldrb r0, [r0, 2]
| 0x0802278c dff88c1a ldr.w r1, [func_23220] ; [0x8023220:4]=0xcb510
| 0x08022790 c978 ldrb r1, [r1, 3]
| 0x08022792 8842 cmp r0, r1
| ,=< 0x08022794 09d0 beq 0x80227aa
| | 0x08022796 dff8840a ldr.w r0, [0x08023222] ; [0x8023220:4]=0xcb510
| | 0x0802279a 8078 ldrb r0, [r0, 2]
| | 0x0802279c 2628 cmp r0, 0x26 ; '&' ; 38
| ,==< 0x0802279e 04d0 beq 0x80227aa
| || 0x080227a0 dff8780a ldr.w r0, [func_23220] ; [0x8023220:4]=0xcb510
| || 0x080227a4 c078 ldrb r0, [r0, 3]
| || 0x080227a6 2628 cmp r0, 0x26 ; '&' ; 38
| ,===< 0x080227a8 08d1 bne 0x80227bc
| |``-> 0x080227aa dff8e40a ldr.w r0, [0x08023296] ; [0x8023294:4]=0xb2c0b510
| | 0x080227ae 8078 ldrb r0, [r0, 2]
| | 0x080227b0 50f00200 orrs r0, r0, 2
| | 0x080227b4 dff8d81a ldr.w r1, [func_23294] ; [0x8023294:4]=0xb2c0b510
| | 0x080227b8 8870 strb r0, [r1, 2]
| | ,=< 0x080227ba 07e0 b 0x80227cc
| `---> 0x080227bc dff8d00a ldr.w r0, [func_23294] ; [0x8023294:4]=0xb2c0b510
| | 0x080227c0 8078 ldrb r0, [r0, 2]
| | 0x080227c2 10f0fd00 ands r0, r0, 0xfd
| | 0x080227c6 dff8c81a ldr.w r1, [0x08023296] ; [0x8023294:4]=0xb2c0b510
| | 0x080227ca 8870 strb r0, [r1, 2]
| `-> 0x080227cc dff84c0a ldr.w r0, [func_23220] ; [0x8023220:4]=0xcb510
| 0x080227d0 0079 ldrb r0, [r0, 4]
| 0x080227d2 dff8481a ldr.w r1, [0x08023222] ; [0x8023220:4]=0xcb510
| 0x080227d6 4979 ldrb r1, [r1, 5]
| 0x080227d8 8842 cmp r0, r1
| ,=< 0x080227da 09d0 beq 0x80227f0
| | 0x080227dc dff83c0a ldr.w r0, [func_23220] ; [0x8023220:4]=0xcb510
| | 0x080227e0 0079 ldrb r0, [r0, 4]
| | 0x080227e2 2628 cmp r0, 0x26 ; '&' ; 38
| ,==< 0x080227e4 04d0 beq 0x80227f0
| || 0x080227e6 dff8340a ldr.w r0, [0x08023222] ; [0x8023220:4]=0xcb510
| || 0x080227ea 4079 ldrb r0, [r0, 5]
| || 0x080227ec 2628 cmp r0, 0x26 ; '&' ; 38
| ,===< 0x080227ee 08d1 bne 0x8022802
| |``-> 0x080227f0 dff89c0a ldr.w r0, [func_23294] ; [0x8023294:4]=0xb2c0b510
| | 0x080227f4 8078 ldrb r0, [r0, 2]
| | 0x080227f6 50f00400 orrs r0, r0, 4
| | 0x080227fa dff8941a ldr.w r1, [0x08023296] ; [0x8023294:4]=0xb2c0b510
| | 0x080227fe 8870 strb r0, [r1, 2]
| | ,=< 0x08022800 07e0 b 0x8022812
| `---> 0x08022802 dff88c0a ldr.w r0, [0x08023296] ; [0x8023294:4]=0xb2c0b510
| | 0x08022806 8078 ldrb r0, [r0, 2]
| | 0x08022808 10f0fb00 ands r0, r0, 0xfb
| | 0x0802280c dff8801a ldr.w r1, [func_23294] ; [0x8023294:4]=0xb2c0b510
| | 0x08022810 8870 strb r0, [r1, 2]
| `-> 0x08022812 dff8080a ldr.w r0, [0x08023222] ; [0x8023220:4]=0xcb510
| 0x08022816 8079 ldrb r0, [r0, 6]
| 0x08022818 dff8001a ldr.w r1, [func_23220] ; [0x8023220:4]=0xcb510
| 0x0802281c c979 ldrb r1, [r1, 7]
| 0x0802281e 8842 cmp r0, r1
| ,=< 0x08022820 09d0 beq 0x8022836
| | 0x08022822 dff8f809 ldr.w r0, [0x08023222] ; [0x8023220:4]=0xcb510
| | 0x08022826 8079 ldrb r0, [r0, 6]
| | 0x08022828 2628 cmp r0, 0x26 ; '&' ; 38
| ,==< 0x0802282a 04d0 beq 0x8022836
| || 0x0802282c dff8ec09 ldr.w r0, [func_23220] ; [0x8023220:4]=0xcb510
| || 0x08022830 c079 ldrb r0, [r0, 7]
| || 0x08022832 2628 cmp r0, 0x26 ; '&' ; 38
| ,===< 0x08022834 08d1 bne 0x8022848
| |``-> 0x08022836 dff81c0b ldr.w r0, [0x0802335a] ; [0x8023358:4]=0x22c8b580
| | 0x0802283a 4078 ldrb r0, [r0, 1]
| | 0x0802283c 50f00100 orrs r0, r0, 1
| | 0x08022840 dff8101b ldr.w r1, [func_23358_spiflash_rd_d11c] ; [0x8023358:4]=0x22c8b580
| | 0x08022844 4870 strb r0, [r1, 1]
| | ,=< 0x08022846 07e0 b 0x8022858
| `---> 0x08022848 dff8080b ldr.w r0, [func_23358_spiflash_rd_d11c] ; [0x8023358:4]=0x22c8b580
| | 0x0802284c 4078 ldrb r0, [r0, 1]
| | 0x0802284e 10f0fe00 ands r0, r0, 0xfe
| | 0x08022852 dff8001b ldr.w r1, [0x0802335a] ; [0x8023358:4]=0x22c8b580
| | 0x08022856 4870 strb r0, [r1, 1]
| `-> 0x08022858 dff8c009 ldr.w r0, [func_23220] ; [0x8023220:4]=0xcb510
| 0x0802285c 007a ldrb r0, [r0, 8]
| 0x0802285e dff8bc19 ldr.w r1, [0x08023222] ; [0x8023220:4]=0xcb510
| 0x08022862 497a ldrb r1, [r1, 9]
| 0x08022864 8842 cmp r0, r1
| ,=< 0x08022866 08d1 bne 0x802287a
| | 0x08022868 dff8e80a ldr.w r0, [func_23358_spiflash_rd_d11c] ; [0x8023358:4]=0x22c8b580
| | 0x0802286c 8078 ldrb r0, [r0, 2]
| | 0x0802286e 50f00400 orrs r0, r0, 4
| | 0x08022872 dff8e01a ldr.w r1, [0x0802335a] ; [0x8023358:4]=0x22c8b580
| | 0x08022876 8870 strb r0, [r1, 2]
| ,==< 0x08022878 07e0 b 0x802288a
| |`-> 0x0802287a dff8d80a ldr.w r0, [0x0802335a] ; [0x8023358:4]=0x22c8b580
| | 0x0802287e 8078 ldrb r0, [r0, 2]
| | 0x08022880 10f0fb00 ands r0, r0, 0xfb
| | 0x08022884 dff8cc1a ldr.w r1, [func_23358_spiflash_rd_d11c] ; [0x8023358:4]=0x22c8b580
| | 0x08022888 8870 strb r0, [r1, 2]
| `--> 0x0802288a dff89009 ldr.w r0, [0x08023222] ; [0x8023220:4]=0xcb510
| 0x0802288e 807a ldrb r0, [r0, 0xa]
| 0x08022890 dff88819 ldr.w r1, [func_23220] ; [0x8023220:4]=0xcb510
| 0x08022894 c97a ldrb r1, [r1, 0xb]
| 0x08022896 8842 cmp r0, r1
| ,=< 0x08022898 08d1 bne 0x80228ac
| | 0x0802289a dff8b80a ldr.w r0, [0x0802335a] ; [0x8023358:4]=0x22c8b580
| | 0x0802289e 8078 ldrb r0, [r0, 2]
| | 0x080228a0 50f08000 orrs r0, r0, 0x80
| | 0x080228a4 dff8ac1a ldr.w r1, [func_23358_spiflash_rd_d11c] ; [0x8023358:4]=0x22c8b580
| | 0x080228a8 8870 strb r0, [r1, 2]
| ,==< 0x080228aa 07e0 b 0x80228bc
| |`-> 0x080228ac dff8a40a ldr.w r0, [func_23358_spiflash_rd_d11c] ; [0x8023358:4]=0x22c8b580
| | 0x080228b0 8078 ldrb r0, [r0, 2]
| | 0x080228b2 10f07f00 ands r0, r0, 0x7f
| | 0x080228b6 dff89c1a ldr.w r1, [0x0802335a] ; [0x8023358:4]=0x22c8b580
| | 0x080228ba 8870 strb r0, [r1, 2]
| `--> 0x080228bc dff85c09 ldr.w r0, [func_23220] ; [0x8023220:4]=0xcb510
| 0x080228c0 007b ldrb r0, [r0, 0xc]
| 0x080228c2 dff85819 ldr.w r1, [0x08023222] ; [0x8023220:4]=0xcb510
| 0x080228c6 497b ldrb r1, [r1, 0xd]
| 0x080228c8 8842 cmp r0, r1
| ,=< 0x080228ca 08d1 bne 0x80228de
| | 0x080228cc dff8840a ldr.w r0, [func_23358_spiflash_rd_d11c] ; [0x8023358:4]=0x22c8b580
| | 0x080228d0 c078 ldrb r0, [r0, 3]
| | 0x080228d2 50f01000 orrs r0, r0, 0x10
| | 0x080228d6 dff87c1a ldr.w r1, [0x0802335a] ; [0x8023358:4]=0x22c8b580
| | 0x080228da c870 strb r0, [r1, 3]
| ,==< 0x080228dc 07e0 b 0x80228ee
| |`-> 0x080228de dff8740a ldr.w r0, [0x0802335a] ; [0x8023358:4]=0x22c8b580
| | 0x080228e2 c078 ldrb r0, [r0, 3]
| | 0x080228e4 10f0ef00 ands r0, r0, 0xef
| | 0x080228e8 dff8681a ldr.w r1, [func_23358_spiflash_rd_d11c] ; [0x8023358:4]=0x22c8b580
| | 0x080228ec c870 strb r0, [r1, 3]
| `--> 0x080228ee dff82c09 ldr.w r0, [0x08023222] ; [0x8023220:4]=0xcb510
| 0x080228f2 807b ldrb r0, [r0, 0xe]
| 0x080228f4 dff82419 ldr.w r1, [func_23220] ; [0x8023220:4]=0xcb510
| 0x080228f8 c97b ldrb r1, [r1, 0xf]
| 0x080228fa 8842 cmp r0, r1
| ,=< 0x080228fc 08d1 bne 0x8022910
| | 0x080228fe dff8e40a ldr.w r0, [0x080233ea] ; [0x80233e8:4]=0x1e41b580
| | 0x08022902 0078 ldrb r0, [r0]
| | 0x08022904 50f00200 orrs r0, r0, 2
| | 0x08022908 dff8d81a ldr.w r1, [func_233e8] ; [0x80233e8:4]=0x1e41b580
| | 0x0802290c 0870 strb r0, [r1]
| ,==< 0x0802290e 07e0 b 0x8022920
| |`-> 0x08022910 dff8d00a ldr.w r0, [func_233e8] ; [0x80233e8:4]=0x1e41b580
| | 0x08022914 0078 ldrb r0, [r0]
| | 0x08022916 10f0fd00 ands r0, r0, 0xfd
| | 0x0802291a dff8c81a ldr.w r1, [0x080233ea] ; [0x80233e8:4]=0x1e41b580
| | 0x0802291e 0870 strb r0, [r1]
| `--> 0x08022920 dff86c09 ldr.w r0, [func_23294] ; [0x8023294:4]=0xb2c0b510
| 0x08022924 8078 ldrb r0, [r0, 2]
| 0x08022926 50f00800 orrs r0, r0, 8
| 0x0802292a dff86419 ldr.w r1, [0x08023296] ; [0x8023294:4]=0xb2c0b510
| 0x0802292e 8870 strb r0, [r1, 2]
| 0x08022930 dff8dc0a ldr.w r0, [func_23414] ; [0x8023414:4]=0xb2c0b510
| 0x08022934 dff8d41a ldr.w r1, [0x08023410] ; [0x8023410:4]=0x2001e7b6
| 0x08022938 0988 ldrh r1, [r1]
| 0x0802293a 0180 strh r1, [r0]
\ 0x0802293c 01bd pop {r0, pc}
/ (fcn) func_2293e_spiflash_wr_2 18
| func_2293e_spiflash_wr_2 ();
| 0x0802293e 80b5 push {r7, lr}
| 0x08022940 4022 movs r2, 0x40 ; '@' ; 64
| 0x08022942 4ff40451 mov.w r1, 0x2100
| 0x08022946 dff8d408 ldr.w r0, [0x08023222] ; [0x8023220:4]=0xcb510
| 0x0802294a 0ef008fe bl md380_spiflash_write
\ 0x0802294e 01bd pop {r0, pc}
/ (fcn) func_22950_spiflash_rd_4 18
| Caller: func_475b8
| func_22950_spiflash_rd_4 ();
| 0x08022950 80b5 push {r7, lr}
| 0x08022952 0422 movs r2, 4 ; 4
| 0x08022954 45f67021 movw r1, 0x5a70
| 0x08022958 dff8e80b ldr.w r0, [0x08023548] ; [0x8023548:4]=0x2001e160
| 0x0802295c 0ef08bfd bl md380_spiflash_read
\ 0x08022960 01bd pop {r0, pc}
/ (fcn) func_22962_spiflash_rd_5 26
| Caller: some_init func_475b8
| func_22962_spiflash_rd_5 ();
| 0x08022962 80b5 push {r7, lr}
| 0x08022964 c0b2 uxtb r0, r0
| 0x08022966 2821 movs r1, 0x28 ; '(' ; 40
| 0x08022968 45f65822 movw r2, 0x5a58
| 0x0802296c 01fb0021 mla r1, r1, r0, r2
| 0x08022970 2822 movs r2, 0x28 ; '(' ; 40
| 0x08022972 dff8d40b ldr.w r0, [0x0802354e] ; [0x802354c:4]=0x4b570
| 0x08022976 0ef07efd bl md380_spiflash_read
\ 0x0802297a 01bd pop {r0, pc}
/ (fcn) load_contact_spiflash 22
| Caller: func_229b6 load_contact func_229da func_233e8
| load_contact_spiflash ();
| 0x0802297c 80b5 push {r7, lr}
| 0x0802297e 89b2 uxth r1, r1
| 0x08022980 2422 movs r2, 0x24 ; '$' ; 36
| 0x08022982 45f65c73 movw r3, 0x5f5c
| 0x08022986 02fb0131 mla r1, r2, r1, r3
| 0x0802298a 2422 movs r2, 0x24 ; '$' ; 36
| 0x0802298c 0ef073fd bl md380_spiflash_read
\ 0x08022990 01bd pop {r0, pc}
/ (fcn) load_contact 36
| Caller: load_contact_call func_475b8
| load_contact ();
| 0x08022992 80b5 push {r7, lr}
| 0x08022994 411e subs r1, r0, 1
| 0x08022996 89b2 uxth r1, r1
| 0x08022998 b1f57a7f cmp.w r1, 0x3e8 ; 1000
| ,=< 0x0802299c 06d2 bhs 0x80229ac
| | 0x0802299e 0100 movs r1, r0
| | 0x080229a0 89b2 uxth r1, r1
| | 0x080229a2 dff8200c ldr.w r0, [0x080235ca] ; [0x80235c8:4]=0x2001e1d0 msg_sms_hdr
| | 0x080229a6 fff7e9ff bl load_contact_spiflash
| ,==< 0x080229aa 03e0 b 0x80229b4
| |`-> 0x080229ac dff8140c ldr.w r0, [0x080235c8] ; [0x80235c8:4]=0x2001e1d0 msg_sms_hdr
| | 0x080229b0 0021 movs r1, 0
| | 0x080229b2 0160 str r1, [r0]
\ `--> 0x080229b4 01bd pop {r0, pc}
/ (fcn) func_229b6 36
| Caller: func_0c7e8 func_2dd36_beeps_and_sets_kb_keycode func_2e7bc F_4315 func_214fe
| func_229b6 ();
| 0x080229b6 80b5 push {r7, lr}
| 0x080229b8 411e subs r1, r0, 1
| 0x080229ba 89b2 uxth r1, r1
| 0x080229bc b1f57a7f cmp.w r1, 0x3e8 ; 1000
| ,=< 0x080229c0 06d2 bhs 0x80229d0
| | 0x080229c2 0100 movs r1, r0
| | 0x080229c4 89b2 uxth r1, r1
| | 0x080229c6 dff8000c ldr.w r0, [0x080235ce] ; [0x80235cc:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x080229ca fff7d7ff bl load_contact_spiflash
| ,==< 0x080229ce 03e0 b 0x80229d8
| |`-> 0x080229d0 dff8f40b ldr.w r0, [0x080235cc] ; [0x80235cc:4]=0x2001cb54 msg_sms_hdr_prep
| | 0x080229d4 0021 movs r1, 0
| | 0x080229d6 0160 str r1, [r0]
\ `--> 0x080229d8 01bd pop {r0, pc}
/ (fcn) func_229da 36
| Caller: ev5_19 func_25790_menu_create_something menu_draw_something func_22f50_spiflash_rd_13
| md380_menu_12670 func_16ca4 func_0c7e8 func_213d0 func_23018_spiflash_rd_15
| func_10ae0 func_170c4
| func_229da ();
| 0x080229da 80b5 push {r7, lr}
| 0x080229dc 411e subs r1, r0, 1
| 0x080229de 89b2 uxth r1, r1
| 0x080229e0 b1f57a7f cmp.w r1, 0x3e8 ; 1000
| ,=< 0x080229e4 06d2 bhs 0x80229f4
| | 0x080229e6 0100 movs r1, r0
| | 0x080229e8 89b2 uxth r1, r1
| | 0x080229ea dff8e00b ldr.w r0, [0x080235d2] ; [0x80235d0:4]=0x2001d8d0
| | 0x080229ee fff7c5ff bl load_contact_spiflash
| ,==< 0x080229f2 03e0 b 0x80229fc
| |`-> 0x080229f4 dff8d40b ldr.w r0, [0x080235d0] ; [0x80235d0:4]=0x2001d8d0
| | 0x080229f8 0021 movs r1, 0
| | 0x080229fa 0160 str r1, [r0]
\ `--> 0x080229fc 01bd pop {r0, pc}
/ (fcn) func_229fe 116
| Caller: load_contact_call func_475b8
| func_229fe ();
| 0x080229fe 10b5 push {r4, lr}
| 0x08022a00 82b0 sub sp, 8
| 0x08022a02 c0b2 uxtb r0, r0
| 0x08022a04 0028 cmp r0, 0
| ,=< 0x08022a06 0bd1 bne 0x8022a20
| | 0x08022a08 0024 movs r4, 0
| .--> 0x08022a0a e4b2 uxtb r4, r4
| || 0x08022a0c 202c cmp r4, 0x20 ; 32
| ,===< 0x08022a0e 2fd2 bhs 0x8022a70
| ||| 0x08022a10 e4b2 uxtb r4, r4
| ||| 0x08022a12 dff8bc0b ldr.w r0, [0x080235d6] ; [0x80235d4:4]=0x2001d950
| ||| 0x08022a16 0021 movs r1, 0
| ||| 0x08022a18 40f82410 str.w r1, [r0, r4, lsl 2]
| ||| 0x08022a1c 641c adds r4, r4, 1
| |`==< 0x08022a1e f4e7 b 0x8022a0a
| | `-> 0x08022a20 c0b2 uxtb r0, r0
| | 0x08022a22 6021 movs r1, 0x60 ; '`' ; 96
| | 0x08022a24 4ef6c032 movw r2, 0xebc0
| | 0x08022a28 01fb0021 mla r1, r1, r0, r2
| | 0x08022a2c 6022 movs r2, 0x60 ; '`' ; 96
| | 0x08022a2e dff8e00a ldr.w r0, [0x08023516] ; [0x8023514:4]=0x2201b580
| | 0x08022a32 0ef020fd bl md380_spiflash_read
| | 0x08022a36 0024 movs r4, 0
| | ,=< 0x08022a38 17e0 b 0x8022a6a
| |.--> 0x08022a3a e4b2 uxtb r4, r4
| ||| 0x08022a3c dff8d00a ldr.w r0, [func_23514] ; [0x8023514:4]=0x2201b580
| ||| 0x08022a40 10eb4400 adds.w r0, r0, r4, lsl 1
| ||| 0x08022a44 008c ldrh r0, [r0, 0x20]
| ||| 0x08022a46 2421 movs r1, 0x24 ; '$' ; 36
| ||| 0x08022a48 45f65c72 movw r2, 0x5f5c
| ||| 0x08022a4c 01fb0021 mla r1, r1, r0, r2
| ||| 0x08022a50 0422 movs r2, 4 ; 4
| ||| 0x08022a52 00a8 add r0, sp, 0
| ||| 0x08022a54 0ef00ffd bl md380_spiflash_read
| ||| 0x08022a58 e4b2 uxtb r4, r4
| ||| 0x08022a5a dff8740b ldr.w r0, [0x080235d6] ; [0x80235d4:4]=0x2001d950
| ||| 0x08022a5e 0099 ldr r1, [sp]
| ||| 0x08022a60 0902 lsls r1, r1, 8
| ||| 0x08022a62 090a lsrs r1, r1, 8
| ||| 0x08022a64 40f82410 str.w r1, [r0, r4, lsl 2]
| ||| 0x08022a68 641c adds r4, r4, 1
| ||`-> 0x08022a6a e4b2 uxtb r4, r4
| || 0x08022a6c 202c cmp r4, 0x20 ; 32
| |`==< 0x08022a6e e4d3 blo 0x8022a3a
\ `---> 0x08022a70 13bd pop {r0, r1, r4, pc}
/ (fcn) func_22b42 362
| Caller: func_383b8 func_3960c ev5_19 func_2e7bc func_3955c func_3951c
| func_393dc func_384d4 channel_info_read_spi_init func_2f268 func_2f118
| call_F_4225_1
| func_22b42 ();
| 0x08022b42 80b5 push {r7, lr}
| 0x08022b44 80b2 uxth r0, r0
| 0x08022b46 4021 movs r1, 0x40 ; '@' ; 64
| 0x08022b48 dff8f029 ldr.w r2, [0x08023540] ; [0x8023540:4]=0x2001deb8 current_channel_info
| 0x08022b4c 01fb0021 mla r1, r1, r0, r2
| 0x08022b50 2022 movs r2, 0x20 ; 32
| 0x08022b52 dff8900a ldr.w r0, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| 0x08022b56 0ef08efc bl md380_spiflash_read
| 0x08022b5a dff8880a ldr.w r0, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| 0x08022b5e 4069 ldr r0, [r0, 0x14]
| 0x08022b60 dff8801a ldr.w r1, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| 0x08022b64 0969 ldr r1, [r1, 0x10]
| 0x08022b66 8842 cmp r0, r1
| ,=< 0x08022b68 07d2 bhs 0x8022b7a
| | 0x08022b6a dff8780a ldr.w r0, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| | 0x08022b6e 0069 ldr r0, [r0, 0x10]
| | 0x08022b70 dff8701a ldr.w r1, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| | 0x08022b74 4969 ldr r1, [r1, 0x14]
| | 0x08022b76 401a subs r0, r0, r1
| ,==< 0x08022b78 06e0 b 0x8022b88
| |`-> 0x08022b7a dff8680a ldr.w r0, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| | 0x08022b7e 4069 ldr r0, [r0, 0x14]
| | 0x08022b80 dff8601a ldr.w r1, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| | 0x08022b84 0969 ldr r1, [r1, 0x10]
| | 0x08022b86 401a subs r0, r0, r1
| `--> 0x08022b88 b0f5805f cmp.w r0, 0x1000
| ,=< 0x08022b8c 21d9 bls 0x8022bd2
| | 0x08022b8e dff8540a ldr.w r0, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| | 0x08022b92 4078 ldrb r0, [r0, 1]
| | 0x08022b94 c007 lsls r0, r0, 0x1f
| ,==< 0x08022b96 17d5 bpl 0x8022bc8
| || 0x08022b98 dff8480a ldr.w r0, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| || 0x08022b9c c078 ldrb r0, [r0, 3]
| || 0x08022b9e c0f34010 ubfx r0, r0, 5, 1
| || 0x08022ba2 c007 lsls r0, r0, 0x1f
| ,===< 0x08022ba4 10d4 bmi 0x8022bc8
| ||| 0x08022ba6 dff8340a ldr.w r0, [0x080235e2] ; [0x80235e0:4]=0x2001e5f4
| ||| 0x08022baa 0021 movs r1, 0
| ||| 0x08022bac 0170 strb r1, [r0]
| ||| 0x08022bae dff8340a ldr.w r0, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| ||| 0x08022bb2 dff8301a ldr.w r1, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| ||| 0x08022bb6 0969 ldr r1, [r1, 0x10]
| ||| 0x08022bb8 4161 str r1, [r0, 0x14]
| ||| 0x08022bba dff8280a ldr.w r0, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| ||| 0x08022bbe dff8241a ldr.w r1, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| ||| 0x08022bc2 098b ldrh r1, [r1, 0x18]
| ||| 0x08022bc4 4183 strh r1, [r0, 0x1a]
| ,====< 0x08022bc6 08e0 b 0x8022bda
| |``--> 0x08022bc8 dff8100a ldr.w r0, [0x080235e0] ; [0x80235e0:4]=0x2001e5f4
| | | 0x08022bcc 0121 movs r1, 1 ; 1
| | | 0x08022bce 0170 strb r1, [r0]
| | ,==< 0x08022bd0 03e0 b 0x8022bda
| | |`-> 0x08022bd2 dff8080a ldr.w r0, [0x080235e2] ; [0x80235e0:4]=0x2001e5f4
| | | 0x08022bd6 0021 movs r1, 0
| | | 0x08022bd8 0170 strb r1, [r0]
| `-`--> ;-- load_contact_call:
| `-`--> 0x08022bda dff8080a ldr.w r0, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| 0x08022bde c088 ldrh r0, [r0, 6]
| 0x08022be0 fff7d7fe bl load_contact
| 0x08022be4 dff8f809 ldr.w r0, [0x080235e4] ; [0x80235e4:4]=0x2001de78 struct_channel_info2
| 0x08022be8 4078 ldrb r0, [r0, 1]
| 0x08022bea 10f0fb00 ands r0, r0, 0xfb
| 0x08022bee dff8f019 ldr.w r1, [0x080235e6] ; [0x80235e4:4]=0x2001de78 struct_channel_info2
| 0x08022bf2 4870 strb r0, [r1, 1]
| 0x08022bf4 dff8ec09 ldr.w r0, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| 0x08022bf8 007b ldrb r0, [r0, 0xc]
| 0x08022bfa 001e subs r0, r0, 0
| 0x08022bfc c0b2 uxtb r0, r0
| 0x08022bfe fb28 cmp r0, 0xfb ; 251
| ,=< 0x08022c00 04d2 bhs 0x8022c0c
| | 0x08022c02 dff8e009 ldr.w r0, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| | 0x08022c06 007b ldrb r0, [r0, 0xc]
| | 0x08022c08 fff7f9fe bl func_229fe
| `-> 0x08022c0c dff8d409 ldr.w r0, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| 0x08022c10 8078 ldrb r0, [r0, 2]
| 0x08022c12 c0f30110 ubfx r0, r0, 4, 2
| 0x08022c16 c0b2 uxtb r0, r0
| 0x08022c18 0128 cmp r0, 1 ; 1
| ,=< 0x08022c1a 07d1 bne 0x8022c2c
| | 0x08022c1c dff8c409 ldr.w r0, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| | 0x08022c20 8078 ldrb r0, [r0, 2]
| | 0x08022c22 10f00f00 ands r0, r0, 0xf
| | 0x08022c26 00f0f8f8 bl func_22e1a_spiflash_rd_8
| ,==< 0x08022c2a 0ee0 b 0x8022c4a
| |`-> 0x08022c2c dff8b409 ldr.w r0, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| | 0x08022c30 8078 ldrb r0, [r0, 2]
| | 0x08022c32 c0f30110 ubfx r0, r0, 4, 2
| | 0x08022c36 c0b2 uxtb r0, r0
| | 0x08022c38 0228 cmp r0, 2 ; 2
| |,=< 0x08022c3a 06d1 bne 0x8022c4a
| || 0x08022c3c dff8a409 ldr.w r0, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| || 0x08022c40 8078 ldrb r0, [r0, 2]
| || 0x08022c42 10f00700 ands r0, r0, 7
| || 0x08022c46 00f0f4f8 bl func_22e32_spiflash_rd_9
| ``-> 0x08022c4a dff89809 ldr.w r0, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| 0x08022c4e 007f ldrb r0, [r0, 0x1c]
| 0x08022c50 401e subs r0, r0, 1
| 0x08022c52 c0b2 uxtb r0, r0
| 0x08022c54 0428 cmp r0, 4 ; 4
| ,=< 0x08022c56 05d2 bhs 0x8022c64
| | 0x08022c58 dff88809 ldr.w r0, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| | 0x08022c5c 007f ldrb r0, [r0, 0x1c]
| | 0x08022c5e 00f01afa bl func_23096_spiflash_rd_16
| ,==< 0x08022c62 02e0 b 0x8022c6a
| |`-> 0x08022c64 0120 movs r0, 1 ; 1
| | 0x08022c66 00f016fa bl func_23096_spiflash_rd_16
| `--> 0x08022c6a dff87809 ldr.w r0, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| 0x08022c6e 407f ldrb r0, [r0, 0x1d]
| 0x08022c70 401e subs r0, r0, 1
| 0x08022c72 c0b2 uxtb r0, r0
| 0x08022c74 0428 cmp r0, 4 ; 4
| ,=< 0x08022c76 05d2 bhs 0x8022c84
| | 0x08022c78 dff86809 ldr.w r0, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| | 0x08022c7c 407f ldrb r0, [r0, 0x1d]
| | 0x08022c7e 00f017fa bl func_230b0_spiflash_rd_17
| ,==< 0x08022c82 0ae0 b 0x8022c9a
| |`-> 0x08022c84 0120 movs r0, 1 ; 1
| | 0x08022c86 00f013fa bl func_230b0_spiflash_rd_17
| | 0x08022c8a dff8dc09 ldr.w r0, [0x0802366e] ; [0x802366c:4]=0xf44fb580
| | 0x08022c8e 007a ldrb r0, [r0, 8]
| | 0x08022c90 10f0f300 ands r0, r0, 0xf3
| | 0x08022c94 dff8d019 ldr.w r1, [func_2366c] ; [0x802366c:4]=0xf44fb580
| | 0x08022c98 0872 strb r0, [r1, 8]
| `--> 0x08022c9a dff84809 ldr.w r0, [0x080235ea] ; [0x80235e8:4]=0x2001e95e
| 0x08022c9e c078 ldrb r0, [r0, 3]
| 0x08022ca0 50f04000 orrs r0, r0, 0x40
| 0x08022ca4 dff83c19 ldr.w r1, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| 0x08022ca8 c870 strb r0, [r1, 3]
\ 0x08022caa 01bd pop {r0, pc}
/ (fcn) func_22cc6_spiflash_rd_6 152
| Caller: func_383b8 func_2f118 call_F_4225_1 func_384d4 channel_info_read_spi_init
| func_22cc6_spiflash_rd_6 ();
| 0x08022cc6 80b5 push {r7, lr}
| 0x08022cc8 dff81c19 ldr.w r1, [0x080235ec] ; [0x80235ec:4]=0x1ede0
| 0x08022ccc 0022 movs r2, 0
| 0x08022cce 0a70 strb r2, [r1]
| 0x08022cd0 80b2 uxth r0, r0
| 0x08022cd2 4021 movs r1, 0x40 ; '@' ; 64
| 0x08022cd4 dff81429 ldr.w r2, [0x080235f0] ; [0x80235f0:4]=0x2001de98
| 0x08022cd8 01fb0021 mla r1, r1, r0, r2
| 0x08022cdc 2022 movs r2, 0x20 ; 32
| 0x08022cde dff81009 ldr.w r0, [0x080235f6] ; [0x80235f4:4]=0xd0022800
| 0x08022ce2 0ef0c8fb bl md380_spiflash_read
| 0x08022ce6 0020 movs r0, 0
| ,=< 0x08022ce8 20e0 b 0x8022d2c
| .--> 0x08022cea c0b2 uxtb r0, r0
| || 0x08022cec dff8f418 ldr.w r1, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| || 0x08022cf0 11eb4001 adds.w r1, r1, r0, lsl 1
| || 0x08022cf4 098c ldrh r1, [r1, 0x20]
| || 0x08022cf6 c0b2 uxtb r0, r0
| || 0x08022cf8 dff81429 ldr.w r2, [0x08023614] ; [0x8023614:4]=0x2001e95c
| || 0x08022cfc 22f81010 strh.w r1, [r2, r0, lsl 1]
| || 0x08022d00 dff8e418 ldr.w r1, [0x080235ec] ; [0x80235ec:4]=0x1ede0
| || 0x08022d04 0978 ldrb r1, [r1]
| || 0x08022d06 491c adds r1, r1, 1
| || 0x08022d08 dff8dc28 ldr.w r2, [0x080235ec] ; [0x80235ec:4]=0x1ede0
| || 0x08022d0c 1170 strb r1, [r2]
| || 0x08022d0e c0b2 uxtb r0, r0
| || 0x08022d10 dff8fc18 ldr.w r1, [0x08023614] ; [0x8023614:4]=0x2001e95c
| || 0x08022d14 31f81010 ldrh.w r1, [r1, r0, lsl 1]
| || 0x08022d18 7f29 cmp r1, 0x7f ; 127
| ,===< 0x08022d1a 06d3 blo 0x8022d2a
| ||| 0x08022d1c dff8c818 ldr.w r1, [0x080235ec] ; [0x80235ec:4]=0x1ede0
| ||| 0x08022d20 0978 ldrb r1, [r1]
| ||| 0x08022d22 491c adds r1, r1, 1
| ||| 0x08022d24 dff8c028 ldr.w r2, [0x080235ec] ; [0x80235ec:4]=0x1ede0
| ||| 0x08022d28 1170 strb r1, [r2]
| `---> 0x08022d2a 401c adds r0, r0, 1
| |`-> 0x08022d2c c0b2 uxtb r0, r0
| | 0x08022d2e 1028 cmp r0, 0x10 ; 16
| |,=< 0x08022d30 07d2 bhs 0x8022d42
| || 0x08022d32 c0b2 uxtb r0, r0
| || 0x08022d34 dff8ac18 ldr.w r1, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| || 0x08022d38 11eb4001 adds.w r1, r1, r0, lsl 1
| || 0x08022d3c 098c ldrh r1, [r1, 0x20]
| || 0x08022d3e 0029 cmp r1, 0
| `==< 0x08022d40 d3d1 bne 0x8022cea
| `-> 0x08022d42 c0b2 uxtb r0, r0
| 0x08022d44 dff8c818 ldr.w r1, [0x08023614] ; [0x8023614:4]=0x2001e95c
| 0x08022d48 0022 movs r2, 0
| 0x08022d4a 21f81020 strh.w r2, [r1, r0, lsl 1]
| 0x08022d4e dff8c418 ldr.w r1, [0x0802361a] ; [0x8023618:4]=0x149a0
| 0x08022d52 0870 strb r0, [r1]
| 0x08022d54 dff85009 ldr.w r0, [0x080236ac] ; [0x80236ac:4]=0x2001e959
| 0x08022d58 0021 movs r1, 0
| 0x08022d5a 0170 strb r1, [r0]
\ 0x08022d5c 01bd pop {r0, pc}
/ (fcn) func_22d5e_spiflash_wr_3 22
| func_22d5e_spiflash_wr_3 ();
| 0x08022d5e 80b5 push {r7, lr}
| 0x08022d60 89b2 uxth r1, r1
| 0x08022d62 4022 movs r2, 0x40 ; '@' ; 64
| 0x08022d64 dff88438 ldr.w r3, [0x080235f0] ; [0x80235f0:4]=0x2001de98
| 0x08022d68 02fb0131 mla r1, r2, r1, r3
| 0x08022d6c 2022 movs r2, 0x20 ; 32
| 0x08022d6e 0ef0f6fb bl md380_spiflash_write
\ 0x08022d72 01bd pop {r0, pc}
/ (fcn) spiflash_rd_zone_name_2__64byte 26
| Caller: some_init func_475b8
| spiflash_rd_zone_name_2__64byte ();
| 0x08022d74 80b5 push {r7, lr}
| 0x08022d76 c0b2 uxtb r0, r0
| 0x08022d78 4021 movs r1, 0x40 ; '@' ; 64
| 0x08022d7a dff89c28 ldr.w r2, [0x0802361e] ; [0x802361c:4]=0x2201b580
| 0x08022d7e 01fb0021 mla r1, r1, r0, r2
| 0x08022d82 4022 movs r2, 0x40 ; '@' ; 64 ; read zone name (32 byte) plus 32 other bytes. Purpose ?
| 0x08022d84 dff8a408 ldr.w r0, [0x08023630] ; [0x8023630:4]=0x2001e218 zone_data_64byte
| 0x08022d88 0ef075fb bl md380_spiflash_read
\ 0x08022d8c 01bd pop {r0, pc}
/ (fcn) spiflash_rd_something_zone_depending 140
| Caller: display_idle_screen md380_menu_13270
| spiflash_rd_something_zone_depending ();
| 0x08022d8e 80b5 push {r7, lr}
| 0x08022d90 dff89418 ldr.w r1, [0x0802362c] ; [0x802362c:4]=0x2001cddc zone_name
| 0x08022d94 0022 movs r2, 0
| 0x08022d96 0a70 strb r2, [r1] ; zone_name[0] := 0x00
| 0x08022d98 c0b2 uxtb r0, r0
| 0x08022d9a 4021 movs r1, 0x40 ; '@' ; 64
| 0x08022d9c dff87828 ldr.w r2, [func_2361c] ; [0x802361c:4]=0x2201b580
| 0x08022da0 01fb0021 mla r1, r1, r0, r2 ; R1 = SPI_addr = 64 * R0 + R2
| 0x08022da4 2022 movs r2, 0x20 ; 32
| 0x08022da6 dff88408 ldr.w r0, [0x08023632] ; [0x8023630:4]=0x2001e218 zone_data_64byte
| 0x08022daa 0ef064fb bl md380_spiflash_read ; R0=dst, R1=SPI-addr, R2=length
| 0x08022dae 0020 movs r0, 0
| ,=< ;-- rd_zone_name.loop:
| ,=< 0x08022db0 1fe0 b 0x8022df2
| .--> 0x08022db2 c0b2 uxtb r0, r0
| || 0x08022db4 dff87818 ldr.w r1, [func_23634] ; [0x8023634:4]=0x4a48b580
| || 0x08022db8 c0b2 uxtb r0, r0
| || 0x08022dba dff87028 ldr.w r2, [0x08023632] ; [0x8023630:4]=0x2001e218 zone_data_64byte
| || 0x08022dbe 32f81020 ldrh.w r2, [r2, r0, lsl 1]
| || 0x08022dc2 21f81020 strh.w r2, [r1, r0, lsl 1]
| || 0x08022dc6 dff86018 ldr.w r1, [0x0802362e] ; [0x802362c:4]=0x2001cddc zone_name
| || 0x08022dca 0978 ldrb r1, [r1]
| || 0x08022dcc 491c adds r1, r1, 1
| || 0x08022dce dff85828 ldr.w r2, [0x0802362e] ; [0x802362c:4]=0x2001cddc zone_name
| || 0x08022dd2 1170 strb r1, [r2] ; zone_name[0] := zone_name[0] + 1
| || 0x08022dd4 c0b2 uxtb r0, r0
| || 0x08022dd6 dff85818 ldr.w r1, [0x08023636] ; [0x8023634:4]=0x4a48b580
| || 0x08022dda 31f81010 ldrh.w r1, [r1, r0, lsl 1]
| || 0x08022dde 7f29 cmp r1, 0x7f ; 127
| ,===< 0x08022de0 06d3 blo 0x8022df0
| ||| 0x08022de2 dff84418 ldr.w r1, [0x0802362e] ; [0x802362c:4]=0x2001cddc zone_name
| ||| 0x08022de6 0978 ldrb r1, [r1]
| ||| 0x08022de8 491c adds r1, r1, 1
| ||| 0x08022dea dff83c28 ldr.w r2, [0x0802362e] ; [0x802362c:4]=0x2001cddc zone_name
| ||| 0x08022dee 1170 strb r1, [r2]
| `---> 0x08022df0 401c adds r0, r0, 1
| |`-> 0x08022df2 c0b2 uxtb r0, r0
| | 0x08022df4 1028 cmp r0, 0x10 ; 16
| |,=< 0x08022df6 06d2 bhs 0x8022e06
| || 0x08022df8 c0b2 uxtb r0, r0
| || 0x08022dfa dff83018 ldr.w r1, [0x08023632] ; [0x8023630:4]=0x2001e218 zone_data_64byte
| || 0x08022dfe 31f81010 ldrh.w r1, [r1, r0, lsl 1]
| || 0x08022e02 0029 cmp r1, 0
| `==< 0x08022e04 d5d1 bne 0x8022db2
| `-> 0x08022e06 c0b2 uxtb r0, r0
| 0x08022e08 dff82418 ldr.w r1, [func_23634] ; [0x8023634:4]=0x4a48b580
| 0x08022e0c 0022 movs r2, 0
| 0x08022e0e 21f81020 strh.w r2, [r1, r0, lsl 1]
| 0x08022e12 dff89818 ldr.w r1, [0x080236b2] ; [0x80236b0:4]=0x2001e858
| 0x08022e16 0870 strb r0, [r1]
\ 0x08022e18 01bd pop {r0, pc}
/ (fcn) func_22e1a_spiflash_rd_8 24
| Caller: load_contact_call func_475b8
| func_22e1a_spiflash_rd_8 ();
| 0x08022e1a 80b5 push {r7, lr}
| 0x08022e1c c0b2 uxtb r0, r0
| 0x08022e1e 4000 lsls r0, r0, 1
| 0x08022e20 00f5b441 add.w r1, r0, 0x5a00
| 0x08022e24 5031 adds r1, 0x50
| 0x08022e26 0222 movs r2, 2 ; 2
| 0x08022e28 dff88408 ldr.w r0, [0x080236b4] ; [0x80236b4:4]=0x2001e494
| 0x08022e2c 0ef023fb bl md380_spiflash_read
\ 0x08022e30 01bd pop {r0, pc}
/ (fcn) func_22e32_spiflash_rd_9 24
| Caller: load_contact_call func_475b8
| func_22e32_spiflash_rd_9 ();
| 0x08022e32 80b5 push {r7, lr}
| 0x08022e34 c0b2 uxtb r0, r0
| 0x08022e36 0001 lsls r0, r0, 4
| 0x08022e38 00f5b241 add.w r1, r0, 0x5900
| 0x08022e3c c031 adds r1, 0xc0
| 0x08022e3e 1022 movs r2, 0x10 ; 16
| 0x08022e40 dff87008 ldr.w r0, [0x080236b8] ; [0x80236b8:4]=0x2001db2c msg_buffer
| 0x08022e44 0ef017fb bl md380_spiflash_read
\ 0x08022e48 01bd pop {r0, pc}
/ (fcn) func_22e4a_spiflash_rd_10 26
| Caller: func_2dd36_beeps_and_sets_kb_keycode
| func_22e4a_spiflash_rd_10 ();
| 0x08022e4a 80b5 push {r7, lr}
| 0x08022e4c c9b2 uxtb r1, r1
| 0x08022e4e 4ff49072 mov.w r2, 0x120 ; 288
| 0x08022e52 42f26003 movw r3, 0x2060
| 0x08022e56 02fb0131 mla r1, r2, r1, r3
| 0x08022e5a 4ff49072 mov.w r2, 0x120 ; 288
| 0x08022e5e 0ef00afb bl md380_spiflash_read
\ 0x08022e62 01bd pop {r0, pc}
/ (fcn) md380_spiflash_read_zone_struct_with_number_in_byte3_maybe 18
| Caller: func_475b8
| md380_spiflash_read_zone_struct_with_number_in_byte3_maybe ();
| 0x08022ebc 80b5 push {r7, lr}
| 0x08022ebe 0522 movs r2, 5 ; 5
| 0x08022ec0 5ff43c31 movs.w r1, 0x2f000
| 0x08022ec4 dff8f807 ldr.w r0, [0x080236c4] ; [0x80236c4:4]=0x416d0 ; BUG in Radare2 ! LDR R0, lit=0x2001e57c
| 0x08022ec8 0ef0d5fa bl md380_spiflash_read
\ 0x08022ecc 01bd pop {r0, pc}
/ (fcn) md380_spiflash_write_zone_struct_with_number_in_byte3_maybe 18
| Caller: func_2ea9e func_475b8 update_scr_31 update_scr_30 md380_menu_apply_new_zone_maybe
| md380_spiflash_write_zone_struct_with_number_in_byte3_maybe ();
| 0x08022ece 80b5 push {r7, lr}
| 0x08022ed0 0522 movs r2, 5 ; 5
| 0x08022ed2 5ff43c31 movs.w r1, 0x2f000
| 0x08022ed6 dff8e807 ldr.w r0, [0x080236c6] ; [0x80236c4:4]=0x416d0 ; BUG in Radare2 ! LDR R0, lit=0x2001e57c
| 0x08022eda 0ef040fb bl md380_spiflash_write ; write flash, R0=SrcAddr(RAM), R1=FlashOffset, R2=NumBytes
\ 0x08022ede 01bd pop {r0, pc}
/ (fcn) func_22ee0_spiflash_rd_12 18
| func_22ee0_spiflash_rd_12 ();
| 0x08022ee0 80b5 push {r7, lr}
| 0x08022ee2 c822 movs r2, 0xc8 ; 200
| 0x08022ee4 dff8dc17 ldr.w r1, [0x080236c8] ; [0x80236c8:4]=0x2001d374
| 0x08022ee8 dff8dc07 ldr.w r0, [0x080236cc] ; [0x80236cc:4]=0x41674
| 0x08022eec 0ef0c3fa bl md380_spiflash_read
\ 0x08022ef0 01bd pop {r0, pc}
/ (fcn) func_22ef2_spiflash_wr_12 18
| Caller: func_25e8e
| func_22ef2_spiflash_wr_12 ();
| 0x08022ef2 80b5 push {r7, lr}
| 0x08022ef4 c822 movs r2, 0xc8 ; 200
| 0x08022ef6 dff8cc17 ldr.w r1, [0x080236ca] ; [0x80236c8:4]=0x2001d374
| 0x08022efa dff8cc07 ldr.w r0, [0x080236ce] ; [0x80236cc:4]=0x41674
| 0x08022efe 0ef02efb bl md380_spiflash_write
\ 0x08022f02 01bd pop {r0, pc}
/ (fcn) func_22f04_spiflash_rd_sms_hdr 32
| func_22f04_spiflash_rd_sms_hdr ();
| 0x08022f04 80b5 push {r7, lr}
| 0x08022f06 c0b2 uxtb r0, r0
| 0x08022f08 4ff49271 mov.w r1, 0x124 ; 292
| 0x08022f0c dff8bc27 ldr.w r2, [0x080236d0] ; [0x80236d0:4]=0x2001cb9a md380_menu_edit_buf
| 0x08022f10 01fb0020 mla r0, r1, r0, r2
| 0x08022f14 4ff49072 mov.w r2, 0x120 ; 288
| 0x08022f18 011d adds r1, r0, 4
| 0x08022f1a dff8b407 ldr.w r0, [0x080236d6] ; [0x80236d4:4]=0x2001cb54 msg_sms_hdr_prep
| 0x08022f1e 0ef0aafa bl md380_spiflash_read
\ 0x08022f22 01bd pop {r0, pc}
/ (fcn) func_22f24_spiflash_wr_sms_hdr 44
| func_22f24_spiflash_wr_sms_hdr ();
| 0x08022f24 10b5 push {r4, lr}
| 0x08022f26 c0b2 uxtb r0, r0
| 0x08022f28 4ff49271 mov.w r1, 0x124 ; 292
| 0x08022f2c dff89c27 ldr.w r2, [0x080236d0] ; [0x80236d0:4]=0x2001cb9a md380_menu_edit_buf
| 0x08022f30 01fb0024 mla r4, r1, r0, r2
| 0x08022f34 0422 movs r2, 4 ; 4
| 0x08022f36 2100 movs r1, r4
| 0x08022f38 dff89006 ldr.w r0, [0x080235d0] ; [0x80235d0:4]=0x2001d8d0
| 0x08022f3c 0ef00ffb bl md380_spiflash_write
| 0x08022f40 4ff49072 mov.w r2, 0x120 ; 288
| 0x08022f44 211d adds r1, r4, 4
| 0x08022f46 dff88807 ldr.w r0, [0x080236d6] ; [0x80236d4:4]=0x2001cb54 msg_sms_hdr_prep
| 0x08022f4a 0ef008fb bl md380_spiflash_write
\ 0x08022f4e 10bd pop {r4, pc}
/ (fcn) func_22f50_spiflash_rd_13 84
| func_22f50_spiflash_rd_13 ();
| 0x08022f50 10b5 push {r4, lr}
| 0x08022f52 c0b2 uxtb r0, r0
| 0x08022f54 4ff49271 mov.w r1, 0x124 ; 292
| 0x08022f58 dff87027 ldr.w r2, [0x080236d0] ; [0x80236d0:4]=0x2001cb9a md380_menu_edit_buf
| 0x08022f5c 01fb0021 mla r1, r1, r0, r2
| 0x08022f60 0422 movs r2, 4 ; 4
| 0x08022f62 dff87007 ldr.w r0, [0x080236da] ; [0x80236d8:4]=0x2001cb58 selected_contact_name_wstring
| 0x08022f66 0ef086fa bl md380_spiflash_read
| 0x08022f6a dff86807 ldr.w r0, [0x080236da] ; [0x80236d8:4]=0x2001cb58 selected_contact_name_wstring
| 0x08022f6e 0068 ldr r0, [r0]
| 0x08022f70 03f040f8 bl func_25ff4
| 0x08022f74 dff86047 ldr.w r4, [0x080236dc] ; [0x80236dc:4]=0x45100
| 0x08022f78 80b2 uxth r0, r0
| 0x08022f7a 0028 cmp r0, 0
| ,=< 0x08022f7c 03d0 beq 0x8022f86
| | 0x08022f7e 80b2 uxth r0, r0
| | 0x08022f80 fff72bfd bl func_229da
| ,==< 0x08022f84 0de0 b 0x8022fa2
| |`-> 0x08022f86 2100 movs r1, r4
| | 0x08022f88 dff84807 ldr.w r0, [0x080236d8] ; [0x80236d8:4]=0x2001cb58 selected_contact_name_wstring
| | 0x08022f8c 0068 ldr r0, [r0]
| | 0x08022f8e 0002 lsls r0, r0, 8
| | 0x08022f90 000a lsrs r0, r0, 8
| | 0x08022f92 04f023fb bl func_275dc
| | 0x08022f96 c0b2 uxtb r0, r0
| | 0x08022f98 14eb4004 adds.w r4, r4, r0, lsl 1
| | 0x08022f9c 0020 movs r0, 0
| | 0x08022f9e 2080 strh r0, [r4]
| | 0x08022fa0 a41c adds r4, r4, 2
\ `--> 0x08022fa2 10bd pop {r4, pc}
/ (fcn) func_22fa4_spiflash_rd_14 18
| func_22fa4_spiflash_rd_14 ();
| 0x08022fa4 80b5 push {r7, lr}
| 0x08022fa6 c822 movs r2, 0xc8 ; 200
| 0x08022fa8 dff83017 ldr.w r1, [0x080236e0] ; [0x80236e0:4]=0x2001d43c
| 0x08022fac dff83007 ldr.w r0, [0x080236e4] ; [0x80236e4:4]=0x450a4
| 0x08022fb0 0ef061fa bl md380_spiflash_read
\ 0x08022fb4 01bd pop {r0, pc}
/ (fcn) func_22fb6_spiflash_wr_14 18
| Caller: menu_39e3e func_39f50
| func_22fb6_spiflash_wr_14 ();
| 0x08022fb6 80b5 push {r7, lr}
| 0x08022fb8 c822 movs r2, 0xc8 ; 200
| 0x08022fba dff82017 ldr.w r1, [0x080236e2] ; [0x80236e0:4]=0x2001d43c
| 0x08022fbe dff82007 ldr.w r0, [0x080236e6] ; [0x80236e4:4]=0x450a4
| 0x08022fc2 0ef0ccfa bl md380_spiflash_write
\ 0x08022fc6 01bd pop {r0, pc}
/ (fcn) func_22fc8_spiflash_rd_sms_bdy 32
| func_22fc8_spiflash_rd_sms_bdy ();
| 0x08022fc8 80b5 push {r7, lr}
| 0x08022fca c0b2 uxtb r0, r0
| 0x08022fcc 4ff49271 mov.w r1, 0x124 ; 292
| 0x08022fd0 dff81027 ldr.w r2, [0x080236e8] ; [0x80236e8:4]=0x2001cefc msg_sms_bdy
| 0x08022fd4 01fb0020 mla r0, r1, r0, r2
| 0x08022fd8 4ff49072 mov.w r2, 0x120 ; 288
| 0x08022fdc 011d adds r1, r0, 4
| 0x08022fde dff8f006 ldr.w r0, [0x080236d6] ; [0x80236d4:4]=0x2001cb54 msg_sms_hdr_prep
| 0x08022fe2 0ef048fa bl md380_spiflash_read
\ 0x08022fe6 01bd pop {r0, pc}
/ (fcn) msg_flash_write 44
| Caller: menu_39e3e
| msg_flash_write ();
| 0x08022fe8 10b5 push {r4, lr}
| 0x08022fea c0b2 uxtb r0, r0
| 0x08022fec 4ff49271 mov.w r1, 0x124 ; 292
| 0x08022ff0 dff8f026 ldr.w r2, [0x080236e8] ; [0x80236e8:4]=0x2001cefc msg_sms_bdy
| 0x08022ff4 01fb0024 mla r4, r1, r0, r2
| 0x08022ff8 0422 movs r2, 4 ; 4
| 0x08022ffa 2100 movs r1, r4
| 0x08022ffc dff8c805 ldr.w r0, [0x080235cc] ; [0x80235cc:4]=0x2001cb54 msg_sms_hdr_prep
| 0x08023000 0ef0adfa bl md380_spiflash_write
| 0x08023004 4ff49072 mov.w r2, 0x120 ; 288
| 0x08023008 211d adds r1, r4, 4
| 0x0802300a dff8dc06 ldr.w r0, [0x080236ee] ; [0x80236ec:4]=0x2001e90e
| 0x0802300e 0ef0a6fa bl md380_spiflash_write
\ 0x08023012 10bd pop {r4, pc}
/ (fcn) func_23018_spiflash_rd_15 126
| func_23018_spiflash_rd_15 ();
| 0x08023018 10b5 push {r4, lr}
| 0x0802301a c0b2 uxtb r0, r0
| 0x0802301c 4ff49271 mov.w r1, 0x124 ; 292
| 0x08023020 dff8c026 ldr.w r2, [0x080236e8] ; [0x80236e8:4]=0x2001cefc msg_sms_bdy
| 0x08023024 01fb0021 mla r1, r1, r0, r2
| 0x08023028 0422 movs r2, 4 ; 4
| 0x0802302a dff8a806 ldr.w r0, [0x080236da] ; [0x80236d8:4]=0x2001cb58 selected_contact_name_wstring
| 0x0802302e 0ef022fa bl md380_spiflash_read
| 0x08023032 dff8a006 ldr.w r0, [0x080236da] ; [0x80236d8:4]=0x2001cb58 selected_contact_name_wstring
| 0x08023036 c078 ldrb r0, [r0, 3]
| 0x08023038 10f00f00 ands r0, r0, 0xf
| 0x0802303c 0128 cmp r0, 1 ; 1
| ,=< 0x0802303e 09d1 bne 0x8023054
| | 0x08023040 dff89006 ldr.w r0, [0x080236d8] ; [0x80236d8:4]=0x2001cb58 selected_contact_name_wstring
| | 0x08023044 0068 ldr r0, [r0]
| | 0x08023046 03f035f8 bl 0x80260b4
| | 0x0802304a dff8a016 ldr.w r1, [0x080236f2] ; [0x80236f0:4]=0x2ffd0
| | 0x0802304e 0422 movs r2, 4 ; 4
| | 0x08023050 0a70 strb r2, [r1]
| ,==< 0x08023052 08e0 b 0x8023066
| |`-> 0x08023054 dff87c06 ldr.w r0, [0x080236d8] ; [0x80236d8:4]=0x2001cb58 selected_contact_name_wstring
| | 0x08023058 0068 ldr r0, [r0]
| | 0x0802305a 02f0cbff bl func_25ff4
| | 0x0802305e dff88c16 ldr.w r1, [0x080236f2] ; [0x80236f0:4]=0x2ffd0
| | 0x08023062 0522 movs r2, 5 ; 5
| | 0x08023064 0a70 strb r2, [r1]
| `--> 0x08023066 dff87046 ldr.w r4, [0x080236de] ; [0x80236dc:4]=0x45100
| 0x0802306a 80b2 uxth r0, r0
| 0x0802306c 0028 cmp r0, 0
| ,=< 0x0802306e 03d0 beq 0x8023078
| | 0x08023070 80b2 uxth r0, r0
| | 0x08023072 fff7b2fc bl func_229da
| ,==< 0x08023076 0de0 b 0x8023094
| |`-> 0x08023078 2100 movs r1, r4
| | 0x0802307a dff85806 ldr.w r0, [0x080236da] ; [0x80236d8:4]=0x2001cb58 selected_contact_name_wstring
| | 0x0802307e 0068 ldr r0, [r0]
| | 0x08023080 0002 lsls r0, r0, 8
| | 0x08023082 000a lsrs r0, r0, 8
| | 0x08023084 04f0aafa bl func_275dc
| | 0x08023088 c0b2 uxtb r0, r0
| | 0x0802308a 14eb4004 adds.w r4, r4, r0, lsl 1
| | 0x0802308e 0020 movs r0, 0
| | 0x08023090 2080 strh r0, [r4]
| | 0x08023092 a41c adds r4, r4, 2
\ `--> 0x08023094 10bd pop {r4, pc}
/ (fcn) func_23096_spiflash_rd_16 26
| Caller: load_contact_call
| func_23096_spiflash_rd_16 ();
| 0x08023096 80b5 push {r7, lr}
| 0x08023098 c0b2 uxtb r0, r0
| 0x0802309a 3021 movs r1, 0x30 ; '0' ; 48
| 0x0802309c dff85026 ldr.w r2, [0x080236f4] ; [0x80236f4:4]=0x2001e130
| 0x080230a0 01fb0021 mla r1, r1, r0, r2
| 0x080230a4 3022 movs r2, 0x30 ; '0' ; 48
| 0x080230a6 dff84c06 ldr.w r0, [0x080236fa] ; [0x80236f8:4]=0x2001e4b4
| 0x080230aa 0ef0e4f9 bl md380_spiflash_read
\ 0x080230ae 01bd pop {r0, pc}
/ (fcn) func_230b0_spiflash_rd_17 26
| Caller: task_468f8 load_contact_call c5000_wr_60_4 func_2dd36_beeps_and_sets_kb_keycode
| func_230b0_spiflash_rd_17 ();
| 0x080230b0 80b5 push {r7, lr}
| 0x080230b2 c0b2 uxtb r0, r0
| 0x080230b4 3021 movs r1, 0x30 ; '0' ; 48
| 0x080230b6 dff83826 ldr.w r2, [0x080236f6] ; [0x80236f4:4]=0x2001e130
| 0x080230ba 01fb0021 mla r1, r1, r0, r2
| 0x080230be 3022 movs r2, 0x30 ; '0' ; 48
| 0x080230c0 dff8a405 ldr.w r0, [func_2366c] ; [0x802366c:4]=0xf44fb580
| 0x080230c4 0ef0d7f9 bl md380_spiflash_read
\ 0x080230c8 01bd pop {r0, pc}
/ (fcn) func_230ca_spiflash_rd_18 24
| Caller: func_2dd36_beeps_and_sets_kb_keycode
| func_230ca_spiflash_rd_18 ();
| 0x080230ca 80b5 push {r7, lr}
| 0x080230cc c0b2 uxtb r0, r0
| 0x080230ce 0001 lsls r0, r0, 4
| 0x080230d0 00f54031 add.w r1, r0, 0x30000
| 0x080230d4 b031 adds r1, 0xb0
| 0x080230d6 1022 movs r2, 0x10 ; 16
| 0x080230d8 dff81c06 ldr.w r0, [0x080236fc] ; [0x80236fc:4]=0x302a8
| 0x080230dc 0ef0cbf9 bl md380_spiflash_read
\ 0x080230e0 01bd pop {r0, pc}
/ (fcn) func_230e8_spiflash_rd_19 26
| Caller: SomethingWithRadioStatus_4d1b8
| func_230e8_spiflash_rd_19 ();
| 0x080230e8 80b5 push {r7, lr}
| 0x080230ea c0b2 uxtb r0, r0
| 0x080230ec 1821 movs r1, 0x18 ; 24
| 0x080230ee dff80c26 ldr.w r2, [0x08023702] ; [0x8023700:4]=0x2001e380
| 0x080230f2 01fb0021 mla r1, r1, r0, r2
| 0x080230f6 1822 movs r2, 0x18 ; 24
| 0x080230f8 dff80406 ldr.w r0, [0x08023704] ; [0x8023704:4]=0x2001df38
| 0x080230fc 0ef0bbf9 bl md380_spiflash_read
\ 0x08023100 01bd pop {r0, pc}
/ (fcn) func_23102 20
| func_23102 ();
| 0x08023102 80b5 push {r7, lr}
| 0x08023104 c0b2 uxtb r0, r0
| 0x08023106 dff8cc14 ldr.w r1, [0x080235da] ; [0x80235d8:4]=0x2001e899
| 0x0802310a 11eb4000 adds.w r0, r1, r0, lsl 1
| 0x0802310e 408d ldrh r0, [r0, 0x2a]
| 0x08023110 00f001f8 bl func_23126_spiflash_rd_curr_chnl
\ 0x08023114 01bd pop {r0, pc}
/ (fcn) func_23126_spiflash_rd_curr_chnl 12
| Caller: func_23102
| func_23126_spiflash_rd_curr_chnl ();
| 0x08023116 80b5 push {r7, lr}
| 0x08023118 80b2 uxth r0, r0
| 0x0802311a 4021 movs r1, 0x40 ; '@' ; 64
| 0x0802311c dff81c24 ldr.w r2, [0x08023540] ; [0x8023540:4]=0x2001deb8 current_channel_info
\ 0x08023120 01fb invalid
/ (fcn) func_2314c 22
| Caller: func_23464 func_23220 func_232e4
| func_2314c ();
| 0x0802314c 80b5 push {r7, lr}
| 0x0802314e 89b2 uxth r1, r1
| 0x08023150 2422 movs r2, 0x24 ; '$' ; 36
| 0x08023152 45f65c73 movw r3, 0x5f5c
| 0x08023156 02fb0131 mla r1, r2, r1, r3
| 0x0802315a 2422 movs r2, 0x24 ; '$' ; 36
| 0x0802315c 0ef0fff9 bl md380_spiflash_write
\ 0x08023160 01bd pop {r0, pc}
/ (fcn) func_23162_spiflash_wr_20 22
| Caller: md380_menu_12900
| func_23162_spiflash_wr_20 ();
| 0x08023162 80b5 push {r7, lr}
| 0x08023164 89b2 uxth r1, r1
| 0x08023166 2422 movs r2, 0x24 ; '$' ; 36
| 0x08023168 45f65c73 movw r3, 0x5f5c
| 0x0802316c 02fb0131 mla r1, r2, r1, r3
| 0x08023170 0322 movs r2, 3 ; 3
| 0x08023172 0ef0f4f9 bl md380_spiflash_write
\ 0x08023176 01bd pop {r0, pc}
/ (fcn) func_23178_spiflash_wr_21 74
| func_23178_spiflash_wr_21 ();
| | 0x08023178 80b5 push {r7, lr}
| | 0x0802317a 89b2 uxth r1, r1
| | 0x0802317c 2422 movs r2, 0x24 ; '$' ; 36
| | 0x0802317e 45f66073 movw r3, 0x5f60
| | 0x08023182 02fb0131 mla r1, r2, r1, r3
| | 0x08023186 2022 movs r2, 0x20 ; 32
| | 0x08023188 0ef0e9f9 bl md380_spiflash_write
| | 0x0802318c 01bd pop {r0, pc}
/ (fcn) func_2318e 18
| Caller: Start
| func_2318e ();
| | 0x0802318e 80b5 push {r7, lr}
| | 0x08023190 0822 movs r2, 8 ; 8
| | 0x08023192 42f2f001 movw r1, 0x20f0
| | 0x08023196 dff87005 ldr.w r0, [0x0802370e] ; [0x802370c:4]=0x48bc4
| | 0x0802319a 0ef06cf9 bl md380_spiflash_read
\ | 0x0802319e 01bd pop {r0, pc}
| `=< 0x080231a0 c6e7 b 0x8023130
| 0x080231a2 0120 movs r0, 1 ; 1
| 0x080231a4 104d ldr r5, [0x080231e8] ; [0x80231e8:4]=0xd0032800
| 0x080231a6 0908 lsrs r1, r1, 0x20
/ (fcn) write_current_channel_info_to_spi_long 26
| Caller: Create_Menu_Entry_RX_QRG_4
| write_current_channel_info_to_spi_long ();
| 0x080231a8 80b5 push {r7, lr}
| 0x080231aa 80b2 uxth r0, r0
| 0x080231ac 4021 movs r1, 0x40 ; '@' ; 64
| 0x080231ae dff88c23 ldr.w r2, [0x08023542] ; [0x8023540:4]=0x2001deb8 current_channel_info
| 0x080231b2 01fb0021 mla r1, r1, r0, r2
| 0x080231b6 4022 movs r2, 0x40 ; '@' ; 64
| 0x080231b8 dff82804 ldr.w r0, [0x080235e8] ; [0x80235e8:4]=0x2001e95e
| 0x080231bc 0ef0cff9 bl md380_spiflash_write
\ 0x080231c0 01bd pop {r0, pc}
/ (fcn) func_2318e 18
| Caller: Start
| func_2318e ();
| 0x0802318e 80b5 push {r7, lr}
| 0x08023190 0822 movs r2, 8 ; 8
| 0x08023192 42f2f001 movw r1, 0x20f0
| 0x08023196 dff87005 ldr.w r0, [0x0802370e] ; [0x802370c:4]=0x48bc4
| 0x0802319a 0ef06cf9 bl md380_spiflash_read
\ 0x0802319e 01bd pop {r0, pc}
/ (fcn) func_231c2_spiflash_rd_22 80
| func_231c2_spiflash_rd_22 ();
| 0x080231c2 10b5 push {r4, lr}
| 0x080231c4 c0b2 uxtb r0, r0
| 0x080231c6 dff84415 ldr.w r1, [0x08023712] ; [0x8023710:4]=0x2001dd74
| 0x080231ca 11eb8001 adds.w r1, r1, r0, lsl 2
| 0x080231ce 0422 movs r2, 4 ; 4
| 0x080231d0 dff83c05 ldr.w r0, [0x08023714] ; [0x8023714:4]=0x2001dd78
| 0x080231d4 0ef04ff9 bl md380_spiflash_read
| 0x080231d8 dff83405 ldr.w r0, [0x08023714] ; [0x8023714:4]=0x2001dd78
| 0x080231dc 0068 ldr r0, [r0]
| 0x080231de 02f009ff bl func_25ff4
| 0x080231e2 dff83045 ldr.w r4, [0x0802371a] ; [0x8023718:4]=0x48dc4
| 0x080231e6 80b2 uxth r0, r0
| 0x080231e8 0028 cmp r0, 0
| ,=< 0x080231ea 03d0 beq 0x80231f4
| | 0x080231ec 80b2 uxth r0, r0
| | 0x080231ee 00f0fbf8 bl func_233e8
| ,==< 0x080231f2 0de0 b 0x8023210
| |`-> 0x080231f4 2100 movs r1, r4
| | 0x080231f6 dff81805 ldr.w r0, [0x08023716] ; [0x8023714:4]=0x2001dd78
| | 0x080231fa 0068 ldr r0, [r0]
| | 0x080231fc 0002 lsls r0, r0, 8
| | 0x080231fe 000a lsrs r0, r0, 8
| | 0x08023200 04f0ecf9 bl func_275dc
| | 0x08023204 c0b2 uxtb r0, r0
| | 0x08023206 14eb4004 adds.w r4, r4, r0, lsl 1
| | 0x0802320a 0020 movs r0, 0
| | 0x0802320c 2080 strh r0, [r4]
| | 0x0802320e a41c adds r4, r4, 2
\ `--> 0x08023210 10bd pop {r4, pc}
/ (fcn) func_23220 112
| func_23220 ();
| 0x08023220 10b5 push {r4, lr}
| 0x08023222 0c00 movs r4, r1
| 0x08023224 c0b2 uxtb r0, r0
| 0x08023226 dff8f014 ldr.w r1, [0x0802371e] ; [0x802371c:4]=0x2001e838
| 0x0802322a 11eb8001 adds.w r1, r1, r0, lsl 2
| 0x0802322e 0422 movs r2, 4 ; 4
| 0x08023230 dff8dc04 ldr.w r0, [0x08023714] ; [0x8023714:4]=0x2001dd78
| 0x08023234 0ef01ff9 bl md380_spiflash_read
| 0x08023238 dff8d404 ldr.w r0, [0x08023714] ; [0x8023714:4]=0x2001dd78
| 0x0802323c 0068 ldr r0, [r0]
| 0x0802323e 02f0d9fe bl func_25ff4
| 0x08023242 0221 movs r1, 2 ; 2
| 0x08023244 dff8c824 ldr.w r2, [0x08023714] ; [0x8023714:4]=0x2001dd78
| 0x08023248 d278 ldrb r2, [r2, 3]
| 0x0802324a 61f30302 bfi r2, r1, 0, 4
| 0x0802324e dff8c014 ldr.w r1, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x08023252 ca70 strb r2, [r1, 3]
| 0x08023254 0021 movs r1, 0
| ,=< 0x08023256 09e0 b 0x802326c
| .--> 0x08023258 c9b2 uxtb r1, r1
| || 0x0802325a dff8b424 ldr.w r2, [0x08023716] ; [0x8023714:4]=0x2001dd78
| || 0x0802325e 12eb4102 adds.w r2, r2, r1, lsl 1
| || 0x08023262 c9b2 uxtb r1, r1
| || 0x08023264 34f81130 ldrh.w r3, [r4, r1, lsl 1]
| || 0x08023268 9380 strh r3, [r2, 4]
| || 0x0802326a 491c adds r1, r1, 1
| |`-> 0x0802326c c9b2 uxtb r1, r1
| | 0x0802326e 1029 cmp r1, 0x10 ; 16
| `==< 0x08023270 f2d3 blo 0x8023258
| 0x08023272 80b2 uxth r0, r0
| 0x08023274 0028 cmp r0, 0
| ,=< 0x08023276 04d1 bne 0x8023282
| | 0x08023278 eef7b8f9 bl func_115ec
| | 0x0802327c dff89c04 ldr.w r0, [0x08023720] ; [0x8023720:4]=0x48b00
| | 0x08023280 0088 ldrh r0, [r0]
| `-> 0x08023282 0100 movs r1, r0
| 0x08023284 89b2 uxth r1, r1
| 0x08023286 dff88804 ldr.w r0, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x0802328a fff75fff bl func_2314c
\ 0x0802328e 10bd pop {r4, pc}
/ (fcn) func_23294 80
| func_23294 ();
| 0x08023294 10b5 push {r4, lr}
| 0x08023296 c0b2 uxtb r0, r0
| 0x08023298 dff87c14 ldr.w r1, [0x0802371c] ; [0x802371c:4]=0x2001e838
| 0x0802329c 11eb8001 adds.w r1, r1, r0, lsl 2
| 0x080232a0 0422 movs r2, 4 ; 4
| 0x080232a2 dff86c04 ldr.w r0, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x080232a6 0ef0e6f8 bl md380_spiflash_read
| 0x080232aa dff86404 ldr.w r0, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x080232ae 0068 ldr r0, [r0]
| 0x080232b0 02f0a0fe bl func_25ff4
| 0x080232b4 dff85c44 ldr.w r4, [0x08023718] ; [0x8023718:4]=0x48dc4
| 0x080232b8 80b2 uxth r0, r0
| 0x080232ba 0028 cmp r0, 0
| ,=< 0x080232bc 03d0 beq 0x80232c6
| | 0x080232be 80b2 uxth r0, r0
| | 0x080232c0 00f092f8 bl func_233e8
| ,==< 0x080232c4 0de0 b 0x80232e2
| |`-> 0x080232c6 2100 movs r1, r4
| | 0x080232c8 dff84404 ldr.w r0, [0x08023714] ; [0x8023714:4]=0x2001dd78
| | 0x080232cc 0068 ldr r0, [r0]
| | 0x080232ce 0002 lsls r0, r0, 8
| | 0x080232d0 000a lsrs r0, r0, 8
| | 0x080232d2 04f083f9 bl func_275dc
| | 0x080232d6 c0b2 uxtb r0, r0
| | 0x080232d8 14eb4004 adds.w r4, r4, r0, lsl 1
| | 0x080232dc 0020 movs r0, 0
| | 0x080232de 2080 strh r0, [r4]
| | 0x080232e0 a41c adds r4, r4, 2
\ `--> 0x080232e2 10bd pop {r4, pc}
/ (fcn) func_232e4 112
| func_232e4 ();
| 0x080232e4 10b5 push {r4, lr}
| 0x080232e6 0c00 movs r4, r1
| 0x080232e8 c0b2 uxtb r0, r0
| 0x080232ea dff82014 ldr.w r1, [0x08023712] ; [0x8023710:4]=0x2001dd74
| 0x080232ee 11eb8001 adds.w r1, r1, r0, lsl 2
| 0x080232f2 0422 movs r2, 4 ; 4
| 0x080232f4 dff81804 ldr.w r0, [0x08023714] ; [0x8023714:4]=0x2001dd78
| 0x080232f8 0ef0bdf8 bl md380_spiflash_read
| 0x080232fc dff81004 ldr.w r0, [0x08023714] ; [0x8023714:4]=0x2001dd78
| 0x08023300 0068 ldr r0, [r0]
| 0x08023302 02f077fe bl func_25ff4
| 0x08023306 0221 movs r1, 2 ; 2
| 0x08023308 dff80424 ldr.w r2, [0x08023714] ; [0x8023714:4]=0x2001dd78
| 0x0802330c d278 ldrb r2, [r2, 3]
| 0x0802330e 61f30302 bfi r2, r1, 0, 4
| 0x08023312 dff8fc13 ldr.w r1, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x08023316 ca70 strb r2, [r1, 3]
| 0x08023318 0021 movs r1, 0
| ,=< 0x0802331a 09e0 b 0x8023330
| .--> 0x0802331c c9b2 uxtb r1, r1
| || 0x0802331e dff8f023 ldr.w r2, [0x08023716] ; [0x8023714:4]=0x2001dd78
| || 0x08023322 12eb4102 adds.w r2, r2, r1, lsl 1
| || 0x08023326 c9b2 uxtb r1, r1
| || 0x08023328 34f81130 ldrh.w r3, [r4, r1, lsl 1]
| || 0x0802332c 9380 strh r3, [r2, 4]
| || 0x0802332e 491c adds r1, r1, 1
| |`-> 0x08023330 c9b2 uxtb r1, r1
| | 0x08023332 1029 cmp r1, 0x10 ; 16
| `==< 0x08023334 f2d3 blo 0x802331c
| 0x08023336 80b2 uxth r0, r0
| 0x08023338 0028 cmp r0, 0
| ,=< 0x0802333a 04d1 bne 0x8023346
| | 0x0802333c eef756f9 bl func_115ec
| | 0x08023340 dff8d803 ldr.w r0, [0x08023720] ; [0x8023720:4]=0x48b00
| | 0x08023344 0088 ldrh r0, [r0]
| `-> 0x08023346 0100 movs r1, r0
| 0x08023348 89b2 uxth r1, r1
| 0x0802334a dff8c403 ldr.w r0, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x0802334e fff7fdfe bl func_2314c
\ 0x08023352 10bd pop {r4, pc}
/ (fcn) func_23358_spiflash_rd_d11c 18
| func_23358_spiflash_rd_d11c ();
| 0x08023358 80b5 push {r7, lr}
| 0x0802335a c822 movs r2, 0xc8 ; 200
| 0x0802335c dff8c013 ldr.w r1, [0x08023724] ; [0x8023724:4]=0x2001d11c
| 0x08023360 dff8c003 ldr.w r0, [0x08023728] ; [0x8023728:4]=0x48d00
| 0x08023364 0ef087f8 bl md380_spiflash_read
\ 0x08023368 01bd pop {r0, pc}
/ (fcn) func_2336a 18
| func_2336a ();
| 0x0802336a 80b5 push {r7, lr}
| 0x0802336c c822 movs r2, 0xc8 ; 200
| 0x0802336e dff8b013 ldr.w r1, [0x08023726] ; [0x8023724:4]=0x2001d11c
| 0x08023372 dff8b003 ldr.w r0, [0x0802372a] ; [0x8023728:4]=0x48d00
| 0x08023376 0ef0f2f8 bl md380_spiflash_write
\ 0x0802337a 01bd pop {r0, pc}
/ (fcn) func_23380 24
| func_23380 ();
| 0x08023380 80b5 push {r7, lr}
| 0x08023382 c0b2 uxtb r0, r0
| 0x08023384 dff88413 ldr.w r1, [0x08023710] ; [0x8023710:4]=0x2001dd74
| 0x08023388 11eb8001 adds.w r1, r1, r0, lsl 2
| 0x0802338c 0422 movs r2, 4 ; 4
| 0x0802338e dff88003 ldr.w r0, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x08023392 0ef0e4f8 bl md380_spiflash_write
\ 0x08023396 01bd pop {r0, pc}
/ (fcn) func_2339c 18
| func_2339c ();
| 0x0802339c 80b5 push {r7, lr}
| 0x0802339e c822 movs r2, 0xc8 ; 200
| 0x080233a0 dff88413 ldr.w r1, [0x0802372c] ; [0x802372c:4]=0x2001d1e4
| 0x080233a4 dff88403 ldr.w r0, [0x08023730] ; [0x8023730:4]=0x48fc4
| 0x080233a8 0ef065f8 bl md380_spiflash_read
\ 0x080233ac 01bd pop {r0, pc}
/ (fcn) func_233b4 18
| func_233b4 ();
| 0x080233b4 80b5 push {r7, lr}
| 0x080233b6 c822 movs r2, 0xc8 ; 200
| 0x080233b8 dff86c13 ldr.w r1, [0x0802372c] ; [0x802372c:4]=0x2001d1e4
| 0x080233bc dff86c03 ldr.w r0, [0x08023730] ; [0x8023730:4]=0x48fc4
| 0x080233c0 0ef0cdf8 bl md380_spiflash_write
\ 0x080233c4 01bd pop {r0, pc}
/ (fcn) func_233cc 24
| func_233cc ();
| 0x080233cc 80b5 push {r7, lr}
| 0x080233ce c0b2 uxtb r0, r0
| 0x080233d0 dff84413 ldr.w r1, [0x0802371c] ; [0x802371c:4]=0x2001e838
| 0x080233d4 11eb8001 adds.w r1, r1, r0, lsl 2
| 0x080233d8 0422 movs r2, 4 ; 4
| 0x080233da dff83403 ldr.w r0, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x080233de 0ef0bef8 bl md380_spiflash_write
\ 0x080233e2 01bd pop {r0, pc}
/ (fcn) func_233e8 37
| Caller: func_23414 func_23294 func_231c2_spiflash_rd_22
| func_233e8 ();
| 0x080233e8 80b5 push {r7, lr}
| 0x080233ea 411e subs r1, r0, 1
| 0x080233ec 89b2 uxth r1, r1
| 0x080233ee b1f57a7f cmp.w r1, 0x3e8 ; 1000
| ,=< 0x080233f2 06d2 bhs 0x8023402
| | 0x080233f4 0100 movs r1, r0
| | 0x080233f6 89b2 uxth r1, r1
| | 0x080233f8 dff81403 ldr.w r0, [0x08023714] ; [0x8023714:4]=0x2001dd78
| | 0x080233fc fff7befa bl load_contact_spiflash
| ,==< 0x08023400 03e0 b 0x802340a
| |`-> 0x08023402 dff80c03 ldr.w r0, [0x08023716] ; [0x8023714:4]=0x2001dd78
| | 0x08023406 0021 movs r1, 0
| | 0x08023408 0160 str r1, [r0]
| `--> 0x0802340a 01bd pop {r0, pc}
| 0x0802340c b8 invalid
/ (fcn) func_23414 80
| func_23414 ();
| 0x08023414 10b5 push {r4, lr}
| 0x08023416 c0b2 uxtb r0, r0
| 0x08023418 dff81413 ldr.w r1, [0x08023734] ; [0x8023734:4]=0x48f00
| 0x0802341c 11eb8001 adds.w r1, r1, r0, lsl 2
| 0x08023420 0422 movs r2, 4 ; 4
| 0x08023422 dff8ec02 ldr.w r0, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x08023426 0ef026f8 bl md380_spiflash_read
| 0x0802342a dff8e402 ldr.w r0, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x0802342e 0068 ldr r0, [r0]
| 0x08023430 02f0e0fd bl func_25ff4
| 0x08023434 dff8dc42 ldr.w r4, [0x08023718] ; [0x8023718:4]=0x48dc4
| 0x08023438 80b2 uxth r0, r0
| 0x0802343a 0028 cmp r0, 0
| ,=< 0x0802343c 03d0 beq 0x8023446
| | 0x0802343e 80b2 uxth r0, r0
| | 0x08023440 fff7d2ff bl func_233e8
| ,==< 0x08023444 0de0 b 0x8023462
| |`-> 0x08023446 2100 movs r1, r4
| | 0x08023448 dff8c402 ldr.w r0, [0x08023714] ; [0x8023714:4]=0x2001dd78
| | 0x0802344c 0068 ldr r0, [r0]
| | 0x0802344e 0002 lsls r0, r0, 8
| | 0x08023450 000a lsrs r0, r0, 8
| | 0x08023452 04f0c3f8 bl func_275dc
| | 0x08023456 c0b2 uxtb r0, r0
| | 0x08023458 14eb4004 adds.w r4, r4, r0, lsl 1
| | 0x0802345c 0020 movs r0, 0
| | 0x0802345e 2080 strh r0, [r4]
| | 0x08023460 a41c adds r4, r4, 2
\ `--> 0x08023462 10bd pop {r4, pc}
/ (fcn) func_23464 112
| func_23464 ();
| 0x08023464 10b5 push {r4, lr}
| 0x08023466 0c00 movs r4, r1
| 0x08023468 c0b2 uxtb r0, r0
| 0x0802346a dff8c412 ldr.w r1, [0x08023736] ; [0x8023734:4]=0x48f00
| 0x0802346e 11eb8001 adds.w r1, r1, r0, lsl 2
| 0x08023472 0422 movs r2, 4 ; 4
| 0x08023474 dff89802 ldr.w r0, [0x08023714] ; [0x8023714:4]=0x2001dd78
| 0x08023478 0df0fdff bl md380_spiflash_read
| 0x0802347c dff89002 ldr.w r0, [0x08023714] ; [0x8023714:4]=0x2001dd78
| 0x08023480 0068 ldr r0, [r0]
| 0x08023482 02f0b7fd bl func_25ff4
| 0x08023486 0221 movs r1, 2 ; 2
| 0x08023488 dff88422 ldr.w r2, [0x08023714] ; [0x8023714:4]=0x2001dd78
| 0x0802348c d278 ldrb r2, [r2, 3]
| 0x0802348e 61f30302 bfi r2, r1, 0, 4
| 0x08023492 dff87c12 ldr.w r1, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x08023496 ca70 strb r2, [r1, 3]
| 0x08023498 0021 movs r1, 0
| ,=< 0x0802349a 09e0 b 0x80234b0
| .--> 0x0802349c c9b2 uxtb r1, r1
| || 0x0802349e dff87022 ldr.w r2, [0x08023716] ; [0x8023714:4]=0x2001dd78
| || 0x080234a2 12eb4102 adds.w r2, r2, r1, lsl 1
| || 0x080234a6 c9b2 uxtb r1, r1
| || 0x080234a8 34f81130 ldrh.w r3, [r4, r1, lsl 1]
| || 0x080234ac 9380 strh r3, [r2, 4]
| || 0x080234ae 491c adds r1, r1, 1
| |`-> 0x080234b0 c9b2 uxtb r1, r1
| | 0x080234b2 1029 cmp r1, 0x10 ; 16
| `==< 0x080234b4 f2d3 blo 0x802349c
| 0x080234b6 80b2 uxth r0, r0
| 0x080234b8 0028 cmp r0, 0
| ,=< 0x080234ba 04d1 bne 0x80234c6
| | 0x080234bc eef796f8 bl func_115ec
| | 0x080234c0 dff85802 ldr.w r0, [0x08023720] ; [0x8023720:4]=0x48b00
| | 0x080234c4 0088 ldrh r0, [r0]
| `-> 0x080234c6 0100 movs r1, r0
| 0x080234c8 89b2 uxth r1, r1
| 0x080234ca dff84402 ldr.w r0, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x080234ce fff73dfe bl func_2314c
\ 0x080234d2 10bd pop {r4, pc}
/ (fcn) func_234d4 18
| func_234d4 ();
| 0x080234d4 80b5 push {r7, lr}
| 0x080234d6 c822 movs r2, 0xc8 ; 200
| 0x080234d8 dff85812 ldr.w r1, [0x08023738] ; [0x8023738:4]=0x2001d2ac
| 0x080234dc dff85802 ldr.w r0, [0x0802373c] ; [0x802373c:4]=0x490a0
| 0x080234e0 0df0c9ff bl md380_spiflash_read
\ 0x080234e4 01bd pop {r0, pc}
/ (fcn) func_234e6 18
| Caller: func_36736 func_36672
| func_234e6 ();
| 0x080234e6 80b5 push {r7, lr}
| 0x080234e8 c822 movs r2, 0xc8 ; 200
| 0x080234ea dff84812 ldr.w r1, [0x0802373a] ; [0x8023738:4]=0x2001d2ac
| 0x080234ee dff84802 ldr.w r0, [0x0802373e] ; [0x802373c:4]=0x490a0
| 0x080234f2 0ef034f8 bl md380_spiflash_write
\ 0x080234f6 01bd pop {r0, pc}
/ (fcn) func_234f8 24
| Caller: func_36672
| func_234f8 ();
| 0x080234f8 80b5 push {r7, lr}
| 0x080234fa c0b2 uxtb r0, r0
| 0x080234fc dff83012 ldr.w r1, [0x08023734] ; [0x8023734:4]=0x48f00
| 0x08023500 11eb8001 adds.w r1, r1, r0, lsl 2
| 0x08023504 0422 movs r2, 4 ; 4
| 0x08023506 dff80802 ldr.w r0, [0x08023716] ; [0x8023714:4]=0x2001dd78
| 0x0802350a 0ef028f8 bl md380_spiflash_write
\ 0x0802350e 01bd pop {r0, pc}
/ (fcn) func_23514 18
| Caller: func_475b8
| func_23514 ();
| 0x08023514 80b5 push {r7, lr}
| 0x08023516 0122 movs r2, 1 ; 1
| 0x08023518 dff82012 ldr.w r1, [0x08023740] ; [0x8023740:4]=0x2001e935
| 0x0802351c dff82002 ldr.w r0, [0x08023744] ; [0x8023744:4]=0x10006da8
| 0x08023520 0df0a9ff bl md380_spiflash_read
\ 0x08023524 01bd pop {r0, pc}
/ (fcn) func_23526 18
| func_23526 ();
| 0x08023526 80b5 push {r7, lr}
| 0x08023528 0122 movs r2, 1 ; 1
| 0x0802352a dff81012 ldr.w r1, [0x08023742] ; [0x8023740:4]=0x2001e935
| 0x0802352e dff81002 ldr.w r0, [0x08023746] ; [0x8023744:4]=0x10006da8
| 0x08023532 0ef014f8 bl md380_spiflash_write
\ 0x08023536 01bd pop {r0, pc}
/ (fcn) func_2354c 118
| Caller: menu_func_10120
| func_2354c ();
| 0x0802354c 70b5 push {r4, r5, r6, lr}
| 0x0802354e 0400 movs r4, r0
| 0x08023550 0e00 movs r6, r1
| 0x08023552 1500 movs r5, r2
| 0x08023554 412e cmp r6, 0x41 ; 'A' ; 65
| ,=< 0x08023556 0ed2 bhs 0x8023576
| | 0x08023558 4ff48050 mov.w r0, 0x1000
| | 0x0802355c 4021 movs r1, 0x40 ; '@' ; 64
| | 0x0802355e 01fb06f1 mul r1, r1, r6
| | 0x08023562 00fb0510 mla r0, r0, r5, r1
| | 0x08023566 dff8e011 ldr.w r1, [0x0802374e] ; [0x802374c:4]=0x200049e0
| | 0x0802356a 0918 adds r1, r1, r0
| | 0x0802356c 4022 movs r2, 0x40 ; '@' ; 64
| | 0x0802356e 2000 movs r0, r4
| | 0x08023570 0df081ff bl md380_spiflash_read
| ,==< 0x08023574 24e0 b 0x80235c0
| |`-> 0x08023576 2800 movs r0, r5
| | 0x08023578 00f03cf8 bl 0x80235f4
| | 0x0802357c b0f5776f cmp.w r0, 0xf70 ; 3952
| |,=< 0x08023580 04d9 bls 0x802358c
| || 0x08023582 dff8c811 ldr.w r1, [0x08023752] ; [0x8023750:4]=0x10000000
| || 0x08023586 0968 ldr r1, [r1]
| || 0x08023588 8842 cmp r0, r1
| ,===< 0x0802358a 19d1 bne 0x80235c0
| .--`-> 0x0802358c dff8bc11 ldr.w r1, [0x08023750] ; [0x8023750:4]=0x10000000
| ||| 0x08023590 0968 ldr r1, [r1]
| ||| 0x08023592 8842 cmp r0, r1
| |||,=< 0x08023594 06d0 beq 0x80235a4
| |||| 0x08023596 0500 movs r5, r0
| |||| 0x08023598 403e subs r6, 0x40
| |||| 0x0802359a 2800 movs r0, r5
| |||| 0x0802359c 00f02af8 bl 0x80235f4
| |||| 0x080235a0 412e cmp r6, 0x41 ; 'A' ; 65
| `====< 0x080235a2 f3d2 bhs 0x802358c
| ||`-> 0x080235a4 4ff48050 mov.w r0, 0x1000
| || 0x080235a8 4021 movs r1, 0x40 ; '@' ; 64
| || 0x080235aa 01fb06f1 mul r1, r1, r6
| || 0x080235ae 00fb0510 mla r0, r0, r5, r1
| || 0x080235b2 dff89411 ldr.w r1, [0x0802374e] ; [0x802374c:4]=0x200049e0
| || 0x080235b6 0918 adds r1, r1, r0
| || 0x080235b8 4022 movs r2, 0x40 ; '@' ; 64
| || 0x080235ba 2000 movs r0, r4
| || 0x080235bc 0df05bff bl md380_spiflash_read
\ ``--> 0x080235c0 70bd pop {r4, r5, r6, pc}
/ (fcn) func_2361c 12
| func_2361c ();
| 0x0802361c 80b5 push {r7, lr}
| 0x0802361e 0122 movs r2, 1 ; 1
| 0x08023620 4c49 ldr r1, [0x08023754] ; [0x8023754:4]=0x490b0
| 0x08023622 0df09cff bl md380_spiflash_write
\ 0x08023626 01bd pop {r0, pc}
/ (fcn) func_23634 16
| func_23634 ();
| 0x08023634 80b5 push {r7, lr}
| 0x08023636 484a ldr r2, [0x0802375a] ; [0x8023758:4]=0x7ffe0
| 0x08023638 12eb4111 adds.w r1, r2, r1, lsl 5
| 0x0802363c 2022 movs r2, 0x20 ; 32
| 0x0802363e 0df01aff bl md380_spiflash_read
\ 0x08023642 01bd pop {r0, pc}
/ (fcn) func_23644 18
| Caller: func_2f8a0_erases_and_writes_flash
| func_23644 ();
| 0x08023644 80b5 push {r7, lr}
| 0x08023646 4ff40052 mov.w r2, 0x2000
| 0x0802364a 5ff40021 movs.w r1, 0x80000
| 0x0802364e 3d48 ldr r0, [0x08023746] ; [0x8023744:4]=0x10006da8
| 0x08023650 0df011ff bl md380_spiflash_read
\ 0x08023654 01bd pop {r0, pc}
/ (fcn) func_23656 18
| Caller: func_2f8f8
| func_23656 ();
| 0x08023656 80b5 push {r7, lr}
| 0x08023658 4ff40052 mov.w r2, 0x2000
| 0x0802365c 5ff40021 movs.w r1, 0x80000
| 0x08023660 3848 ldr r0, [0x08023744] ; [0x8023744:4]=0x10006da8
| 0x08023662 0df07cff bl md380_spiflash_write
\ 0x08023666 01bd pop {r0, pc}
/ (fcn) func_2366c 18
| Caller: func_2f8a0_erases_and_writes_flash
| func_2366c ();
| 0x0802366c 80b5 push {r7, lr}
| 0x0802366e 4ff47752 mov.w r2, 0x3dc0
| 0x08023672 5ff40421 movs.w r1, 0x84000
| 0x08023676 3648 ldr r0, [0x08023752] ; [0x8023750:4]=0x10000000
| 0x08023678 0df0fdfe bl md380_spiflash_read
\ 0x0802367c 01bd pop {r0, pc}
/ (fcn) func_2367e 18
| Caller: func_2f8f8
| func_2367e ();
| 0x0802367e 80b5 push {r7, lr}
| 0x08023680 4ff47752 mov.w r2, 0x3dc0
| 0x08023684 5ff40421 movs.w r1, 0x84000
| 0x08023688 3148 ldr r0, [0x08023750] ; [0x8023750:4]=0x10000000
| 0x0802368a 0df068ff bl md380_spiflash_write
\ 0x0802368e 01bd pop {r0, pc}
/ (fcn) func_23690 22
| Caller: func_2f268
| func_23690 ();
| 0x08023690 80b5 push {r7, lr}
| 0x08023692 1022 movs r2, 0x10 ; 16
| 0x08023694 c0b2 uxtb r0, r0
| 0x08023696 0001 lsls r0, r0, 4
| 0x08023698 00f57b31 add.w r1, r0, 0x3ec00
| 0x0802369c 3031 adds r1, 0x30
| 0x0802369e 2f48 ldr r0, [0x0802375e] ; [0x802375c:4]=0x2001e4e4
| 0x080236a0 0df0e9fe bl md380_spiflash_read
\ 0x080236a4 01bd pop {r0, pc}
/ (fcn) gfx_drawbmp 86
| Caller: draw_some_bitmap_and_text scr_mode_stable draw_statusline menu_draw_something
| display_idle_screen display_unprog_screen task_rtc_timer func_0c7e8 update_scr_18
| draw_statusline_more F_4315 md380_f_4520
| gfx_drawbmp ();
| 0x080237fe 7cb5 push {r2, r3, r4, r5, r6, lr}
| 0x08023800 0400 movs r4, r0 ; [in] R0 = bitmap ptr
| 0x08023802 0d00 movs r5, r1 ; [in] R1 = xpos
| 0x08023804 1600 movs r6, r2 ; [in] R2 = ypos
| 0x08023806 1348 ldr r0, [0x08023856] ; [0x8023854:4]=0x2001da1c gfx_info
| 0x08023808 006c ldr r0, [r0, 0x40] ; [r0+64] = gfx_info.bmp_w
| 0x0802380a 4519 adds r5, r0, r5 ; xpos += gfx_info.bmp_w
| 0x0802380c 1148 ldr r0, [0x08023854] ; [0x8023854:4]=0x2001da1c gfx_info
| 0x0802380e 406c ldr r0, [r0, 0x44] ; [r0+68] = gfx_info.bmp_h
| 0x08023810 8619 adds r6, r0, r6 ; ypos += gfx_info.bmp_h
| 0x08023812 2800 movs r0, r5
| 0x08023814 adf80000 strh.w r0, [sp] ; [SP+0] = xpos + gfx_info.bmp_w
| 0x08023818 b4f90010 ldrsh.w r1, [r4] ; bitmap hdr offset 0 = gfx_bitmap.width
| 0x0802381c 0818 adds r0, r1, r0
| 0x0802381e 401e subs r0, r0, 1
| 0x08023820 adf80400 strh.w r0, [sp, 4] ; [SP+4] = x_end = xpos + width - 1
| 0x08023824 3000 movs r0, r6
| 0x08023826 adf80200 strh.w r0, [sp, 2] ; [SP+2] = ypos + bitmap_height
| 0x0802382a b4f90210 ldrsh.w r1, [r4, 2] ; bitmap hdr offset 2 = gfx_bitmap.height
| 0x0802382e 0818 adds r0, r1, r0
| 0x08023830 401e subs r0, r0, 1
| 0x08023832 adf80600 strh.w r0, [sp, 6] ; [SP+6] = y_end = ypos + height - 1
| 0x08023836 00a8 add r0, sp, 0 ; R0 = address of a small struct (local var) ?
| 0x08023838 f9f75afa bl gfx_bmp_sub1 ; returns NULL when 'not drawable' ?
| 0x0802383c 0028 cmp r0, 0
| ,=< 0x0802383e 08d0 beq 0x8023852
| .--> 0x08023840 3200 movs r2, r6 ; [in] R2 = unknown for gfx_bmp_sub2
| || 0x08023842 2900 movs r1, r5 ; [in] R1 = unknown for gfx_bmp_sub2
| || 0x08023844 2000 movs r0, r4 ; [in] R0 = bitmap ptr
| || 0x08023846 fff78bff bl gfx_bmp_sub2
| || 0x0802384a f9f723fa bl gfx_bmp_sub3
| || 0x0802384e 0028 cmp r0, 0
| `==< 0x08023850 f6d1 bne 0x8023840
\ `-> 0x08023852 73bd pop {r0, r1, r4, r5, r6, pc}
/ (fcn) gfx_bmp_sub2 158
| Caller: gfx_drawbmp
| gfx_bmp_sub2 ();
| 0x08023760 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x08023764 86b0 sub sp, 0x18
| 0x08023766 0400 movs r4, r0 ; [in] R0 =
| 0x08023768 0d00 movs r5, r1 ; [in] R1 =
| 0x0802376a 1600 movs r6, r2 ; [in] R2 =
| 0x0802376c d4f80c80 ldr.w r8, [r4, 0xc]
| 0x08023770 0020 movs r0, 0
| 0x08023772 13f0e7fb bl func_36f44
| 0x08023776 0700 movs r7, r0
| 0x08023778 b8f1000f cmp.w r8, 0
| ,=< 0x0802377c 06d0 beq 0x802378c
| | 0x0802377e 98f80400 ldrb.w r0, [r8, 4]
| | 0x08023782 0028 cmp r0, 0
| ,==< 0x08023784 02d0 beq 0x802378c
| || 0x08023786 57f00200 orrs r0, r7, 2
| ,===< 0x0802378a 01e0 b 0x8023790
| |``-> 0x0802378c 37f00200 bics r0, r7, 2
| `---> 0x08023790 13f0d8fb bl func_36f44
| 0x08023794 2069 ldr r0, [r4, 0x10]
| 0x08023796 0028 cmp r0, 0
| ,=< 0x08023798 0fd0 beq 0x80237ba
| | 0x0802379a 0120 movs r0, 1 ; 1
| | 0x0802379c 0390 str r0, [sp, 0xc]
| | 0x0802379e 0120 movs r0, 1 ; 1
| | 0x080237a0 0290 str r0, [sp, 8]
| | 0x080237a2 e068 ldr r0, [r4, 0xc]
| | 0x080237a4 0190 str r0, [sp, 4]
| | 0x080237a6 a068 ldr r0, [r4, 8]
| | 0x080237a8 0090 str r0, [sp]
| | 0x080237aa 6388 ldrh r3, [r4, 2]
| | 0x080237ac 2288 ldrh r2, [r4]
| | 0x080237ae 3100 movs r1, r6
| | 0x080237b0 2800 movs r0, r5
| | 0x080237b2 2469 ldr r4, [r4, 0x10]
| | 0x080237b4 2468 ldr r4, [r4]
| | 0x080237b6 a047 blx r4
| ,==< 0x080237b8 1be0 b 0x80237f2
| |`-> 0x080237ba e068 ldr r0, [r4, 0xc]
| | 0x080237bc 13f0e8fb bl func_36f90
| | 0x080237c0 0028 cmp r0, 0
| |,=< 0x080237c2 05d1 bne 0x80237d0
| || 0x080237c4 e088 ldrh r0, [r4, 6]
| || 0x080237c6 0128 cmp r0, 1 ; 1
| ,===< 0x080237c8 01d0 beq 0x80237ce
| ||| 0x080237ca 0020 movs r0, 0
| ,====< 0x080237cc 00e0 b 0x80237d0
| |`---> 0x080237ce 2148 ldr r0, [0x08023856] ; [0x8023854:4]=0x2001da1c gfx_info
| `--`-> 0x080237d0 0590 str r0, [sp, 0x14]
| | 0x080237d2 a068 ldr r0, [r4, 8]
| | 0x080237d4 0490 str r0, [sp, 0x10]
| | 0x080237d6 a088 ldrh r0, [r4, 4]
| | 0x080237d8 0390 str r0, [sp, 0xc]
| | 0x080237da e088 ldrh r0, [r4, 6]
| | 0x080237dc 0290 str r0, [sp, 8]
| | 0x080237de 0120 movs r0, 1 ; 1
| | 0x080237e0 0190 str r0, [sp, 4]
| | 0x080237e2 0120 movs r0, 1 ; 1
| | 0x080237e4 0090 str r0, [sp]
| | 0x080237e6 6388 ldrh r3, [r4, 2]
| | 0x080237e8 2288 ldrh r2, [r4]
| | 0x080237ea 3100 movs r1, r6
| | 0x080237ec 2800 movs r0, r5
| | 0x080237ee 0ff0affb bl gfx_32f50
| `--> 0x080237f2 3800 movs r0, r7
| 0x080237f4 13f0a6fb bl func_36f44
| 0x080237f8 06b0 add sp, 0x18
\ 0x080237fa bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) 426
| Caller: update_scr_16
| func_25790_menu_create_something ();
| 0x08025790 10b5 push {r4, lr}
| 0x08025792 84b0 sub sp, 0x10
| 0x08025794 dff8f80a ldr.w r0, [0x08026294] ; [0x8026294:4]=0x2001cb58 selected_contact_name_wstring
| 0x08025798 0068 ldr r0, [r0]
| 0x0802579a 00f02bfc bl func_25ff4
| 0x0802579e dff8f44a ldr.w r4, [0x0802629a] ; [0x8026298:4]=0x2400b538
| 0x080257a2 80b2 uxth r0, r0
| 0x080257a4 0028 cmp r0, 0
| ,=< 0x080257a6 03d0 beq 0x80257b0
| | 0x080257a8 80b2 uxth r0, r0
| | 0x080257aa fdf716f9 bl func_229da
| ,==< 0x080257ae 15e0 b 0x80257dc
| |`-> 0x080257b0 dff8dc0a ldr.w r0, [0x08026294] ; [0x8026294:4]=0x2001cb58 selected_contact_name_wstring
| | 0x080257b4 0068 ldr r0, [r0]
| | 0x080257b6 50f00070 orrs r0, r0, 0x2000000
| | 0x080257ba dff8141b ldr.w r1, [0x080262d6] ; [0x80262d4:4]=0x2001e940
| | 0x080257be 0860 str r0, [r1]
| | 0x080257c0 2100 movs r1, r4
| | 0x080257c2 dff8cc0a ldr.w r0, [0x08026296] ; [0x8026294:4]=0x2001cb58 selected_contact_name_wstring
| | 0x080257c6 0068 ldr r0, [r0]
| | 0x080257c8 0002 lsls r0, r0, 8
| | 0x080257ca 000a lsrs r0, r0, 8
| | 0x080257cc 01f006ff bl func_275dc
| | 0x080257d0 c0b2 uxtb r0, r0
| | 0x080257d2 14eb4004 adds.w r4, r4, r0, lsl 1
| | 0x080257d6 0020 movs r0, 0
| | 0x080257d8 2080 strh r0, [r4]
| | 0x080257da a41c adds r4, r4, 2
| `--> 0x080257dc dff8f40a ldr.w r0, [0x080262d8] ; [0x80262d8:4]=0x2001e8a8 beep_code_send
| 0x080257e0 0121 movs r1, 1 ; 1
| 0x080257e2 0170 strb r1, [r0]
| 0x080257e4 00f082fd bl 0x80262ec
| 0x080257e8 dff8ec0a ldr.w r0, [0x080262dc] ; [0x80262dc:4]=0x2001e67c event2_mbox_poi_beep
| 0x080257ec 1621 movs r1, 0x16 ; 22
| 0x080257ee 0170 strb r1, [r0]
| 0x080257f0 dff8e41a ldr.w r1, [0x080262dc] ; [0x80262dc:4]=0x2001e67c event2_mbox_poi_beep
| 0x080257f4 dff8e40a ldr.w r0, [0x080262e0] ; [0x80262e0:4]=0x20004acc md380_menu_depth
| 0x080257f8 0068 ldr r0, [r0]
| 0x080257fa 0bf0cffc bl md380_OSMboxPost
| 0x080257fe dff8e00a ldr.w r0, [0x080262e6] ; [0x80262e4:4]=0x2001d5cc md380_menu_memory
| 0x08025802 0021 movs r1, 0
| 0x08025804 0170 strb r1, [r0]
| 0x08025806 b048 ldr r0, [0x08025aca] ; [0x8025ac8:4]=0x2001e915 md380_menu_id
| 0x08025808 0021 movs r1, 0
| 0x0802580a 0170 strb r1, [r0]
| 0x0802580c dff8d00a ldr.w r0, [0x080262e4] ; [0x80262e4:4]=0x2001d5cc md380_menu_memory
| 0x08025810 0078 ldrb r0, [r0]
| 0x08025812 0c21 movs r1, 0xc ; 12
| 0x08025814 dff8cc2a ldr.w r2, [0x080262e8] ; [0x80262e8:4]=0x2001e90e
| 0x08025818 01fb0020 mla r0, r1, r0, r2
| 0x0802581c dff8c81c ldr.w r1, [0x080264ec] ; [0x80264ec:4]=0x8025a05
| 0x08025820 0860 str r0, [r1]
| 0x08025822 dff8c40c ldr.w r0, [0x080264ee] ; [0x80264ec:4]=0x8025a05
| 0x08025826 0068 ldr r0, [r0]
| 0x08025828 dff8681a ldr.w r1, [func_26298] ; [0x8026298:4]=0x2400b538
| 0x0802582c 0160 str r1, [r0]
| 0x0802582e dff8b80c ldr.w r0, [0x080264ee] ; [0x80264ec:4]=0x8025a05
| 0x08025832 0068 ldr r0, [r0]
| 0x08025834 9d49 ldr r1, [0x08025aac] ; [0x8025aac:4]=0x2001b274 md380_menu_mem_base
| 0x08025836 4160 str r1, [r0, 4]
| 0x08025838 dff8ac0c ldr.w r0, [0x080264ec] ; [0x80264ec:4]=0x8025a05
| 0x0802583c 0068 ldr r0, [r0]
| 0x0802583e 0321 movs r1, 3 ; 3
| 0x08025840 0172 strb r1, [r0, 8]
| 0x08025842 dff8a40c ldr.w r0, [0x080264ee] ; [0x80264ec:4]=0x8025a05
| 0x08025846 0068 ldr r0, [r0]
| 0x08025848 0021 movs r1, 0
| 0x0802584a 4172 strb r1, [r0, 9]
| 0x0802584c dff8980c ldr.w r0, [0x080264ec] ; [0x80264ec:4]=0x8025a05
| 0x08025850 0068 ldr r0, [r0]
| 0x08025852 0021 movs r1, 0
| 0x08025854 4181 strh r1, [r0, 0xa]
| 0x08025856 dff8900a ldr.w r0, [0x080262ee] ; [0x80262ec:4]=0xf8dfb510
| 0x0802585a 0b21 movs r1, 0xb ; 11
| 0x0802585c 0170 strb r1, [r0]
| 0x0802585e dff8580b ldr.w r0, [0x080263be] ; [0x80263bc:4]=0x8025e8d
| 0x08025862 0121 movs r1, 1 ; 1
| 0x08025864 0170 strb r1, [r0]
| 0x08025866 0120 movs r0, 1 ; 1
| 0x08025868 0290 str r0, [sp, 8]
| 0x0802586a f020 movs r0, 0xf0 ; 240
| 0x0802586c 0190 str r0, [sp, 4]
| 0x0802586e 8a20 movs r0, 0x8a ; 138
| 0x08025870 0090 str r0, [sp]
| 0x08025872 dff8483b ldr.w r3, [0x080263c2] ; [0x80263c0:4]=0x8025e8f
| 0x08025876 dff8482b ldr.w r2, [0x080263c6] ; [0x80263c4:4]=0x2001e6ec
| 0x0802587a dff8480b ldr.w r0, [0x080263ca] ; [0x80263c8:4]=0xf8dfb580
| 0x0802587e 0068 ldr r0, [r0]
| 0x08025880 dff8841b ldr.w r1, [0x0802640c] ; [0x802640c:4]=0x8025941
| 0x08025884 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08025888 d0f81411 ldr.w r1, [r0, 0x114]
| 0x0802588c 8e48 ldr r0, [0x08025ac8] ; [0x8025ac8:4]=0x2001e915 md380_menu_id
| 0x0802588e 0078 ldrb r0, [r0]
| 0x08025890 e6f74dff bl md380_create_menu_entry
| 0x08025894 0120 movs r0, 1 ; 1
| 0x08025896 0290 str r0, [sp, 8]
| 0x08025898 0f20 movs r0, 0xf ; 15
| 0x0802589a 0190 str r0, [sp, 4]
| 0x0802589c 0a20 movs r0, 0xa ; 10
| 0x0802589e 0090 str r0, [sp]
| 0x080258a0 dff8183b ldr.w r3, [0x080263c0] ; [0x80263c0:4]=0x8025e8f
| 0x080258a4 dff8642b ldr.w r2, [0x08026410] ; [0x8026410:4]=0x8025949
| 0x080258a8 dff8180b ldr.w r0, [0x080263c8] ; [0x80263c8:4]=0xf8dfb580
| 0x080258ac 0068 ldr r0, [r0]
| 0x080258ae dff8581b ldr.w r1, [0x0802640e] ; [0x802640c:4]=0x8025941
| 0x080258b2 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080258b6 d0f81811 ldr.w r1, [r0, 0x118]
| 0x080258ba 8348 ldr r0, [0x08025aca] ; [0x8025ac8:4]=0x2001e915 md380_menu_id
| 0x080258bc 0078 ldrb r0, [r0]
| 0x080258be 401c adds r0, r0, 1
| 0x080258c0 c0b2 uxtb r0, r0
| 0x080258c2 e6f734ff bl md380_create_menu_entry
| 0x080258c6 0120 movs r0, 1 ; 1
| 0x080258c8 0290 str r0, [sp, 8]
| 0x080258ca f020 movs r0, 0xf0 ; 240
| 0x080258cc 0190 str r0, [sp, 4]
| 0x080258ce 8a20 movs r0, 0x8a ; 138
| 0x080258d0 0090 str r0, [sp]
| 0x080258d2 dff8e83a ldr.w r3, [0x080263c2] ; [0x80263c0:4]=0x8025e8f
| 0x080258d6 dff8382b ldr.w r2, [0x08026416] ; [0x8026414:4]=0xf8dfb510
| 0x080258da dff8e80a ldr.w r0, [0x080263ca] ; [0x80263c8:4]=0xf8dfb580
| 0x080258de 0068 ldr r0, [r0]
| 0x080258e0 dff8241b ldr.w r1, [0x0802640c] ; [0x802640c:4]=0x8025941
| 0x080258e4 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080258e8 d0f81c11 ldr.w r1, [r0, 0x11c]
| 0x080258ec 7648 ldr r0, [0x08025ac8] ; [0x8025ac8:4]=0x2001e915 md380_menu_id
| 0x080258ee 0078 ldrb r0, [r0]
| 0x080258f0 801c adds r0, r0, 2
| 0x080258f2 c0b2 uxtb r0, r0
| 0x080258f4 e6f71bff bl md380_create_menu_entry
| 0x080258f8 dff8e409 ldr.w r0, [0x080262e4] ; [0x80262e4:4]=0x2001d5cc md380_menu_memory
| 0x080258fc 0078 ldrb r0, [r0]
| 0x080258fe eaf7a9f9 bl menu_add_number_of_menuentries_counts
| 0x08025902 7149 ldr r1, [0x08025aca] ; [0x8025ac8:4]=0x2001e915 md380_menu_id
| 0x08025904 0870 strb r0, [r1]
| 0x08025906 dff8e00b ldr.w r0, [0x080264ee] ; [0x80264ec:4]=0x8025a05
| 0x0802590a 0068 ldr r0, [r0]
| 0x0802590c 4068 ldr r0, [r0, 4]
| 0x0802590e 6849 ldr r1, [0x08025ab2] ; [0x8025ab0:4]=0x2001e6fc
| 0x08025910 0860 str r0, [r1]
| 0x08025912 dff8cc09 ldr.w r0, [0x080262e6] ; [0x80262e4:4]=0x2001d5cc md380_menu_memory
| 0x08025916 0021 movs r1, 0
| 0x08025918 0170 strb r1, [r0]
| 0x0802591a 0020 movs r0, 0
| ,=< 0x0802591c 06e0 b 0x802592c
| .--> 0x0802591e 1421 movs r1, 0x14 ; 20
| || 0x08025920 624a ldr r2, [0x08025aac] ; [0x8025aac:4]=0x2001b274 md380_menu_mem_base
| || 0x08025922 01fb0021 mla r1, r1, r0, r2
| || 0x08025926 0222 movs r2, 2 ; 2
| || 0x08025928 0a74 strb r2, [r1, 0x10]
| || 0x0802592a 401c adds r0, r0, 1
| |`-> 0x0802592c dff8b81b ldr.w r1, [0x080264ec] ; [0x80264ec:4]=0x8025a05
| | 0x08025930 0968 ldr r1, [r1]
| | 0x08025932 097a ldrb r1, [r1, 8]
| | 0x08025934 8842 cmp r0, r1
| `==< 0x08025936 f2db blt 0x802591e
\ 0x08025938 1fbd pop {r0, r1, r2, r3, r4, pc}
/ (fcn) func_25e60 26
| Caller: update_scr_18
| func_25e60 ();
| | 0x08025e60 80b5 push {r7, lr}
| | 0x08025e62 dff82c09 ldr.w r0, [0x08026796] ; [0x8026794:4]=0x2001e5e0
| | 0x08025e66 0078 ldrb r0, [r0]
| | 0x08025e68 2028 cmp r0, 0x20 ; 32
| ,==< 0x08025e6a 04d0 beq 0x8025e76
| || 0x08025e6c 7f22 movs r2, 0x7f ; 127
| || 0x08025e6e 1121 movs r1, 0x11 ; 17
| || 0x08025e70 0120 movs r0, 1 ; 1
| || 0x08025e72 11f0a2f8 bl do_nothing_1
| `--> 0x08025e76 01bd pop {r0, pc}
\ `=< 0x08025e78 00e7 b 0x8025c7c ; F_4315+0x198
/ (fcn) func_25e8e 234
| func_25e8e ();
| 0x08025e8e 10b5 push {r4, lr}
| 0x08025e90 84b0 sub sp, 0x10
| 0x08025e92 0024 movs r4, 0
| 0x08025e94 dff8340b ldr.w r0, [0x080269d0] ; [0x80269d0:4]=0x2001e94a md380_menu_0x2001d3f4
| 0x08025e98 dff88c13 ldr.w r1, [0x0802622c] ; [0x802622c:4]=0x2001e944 md380_menu_cursor_pos_1
| 0x08025e9c 0160 str r1, [r0]
| 0x08025e9e dff8300b ldr.w r0, [0x080269d6] ; [0x80269d4:4]=0xcb538
| 0x08025ea2 0021 movs r1, 0
| 0x08025ea4 0170 strb r1, [r0]
| 0x08025ea6 dff82c04 ldr.w r0, [0x080262da] ; [0x80262d8:4]=0x2001e8a8 beep_code_send
| 0x08025eaa 0021 movs r1, 0
| 0x08025eac 0170 strb r1, [r0]
| 0x08025eae dff8880d ldr.w r0, [0x08026c3e] ; [0x8026c3c:4]=0x2001d374
| 0x08025eb2 0078 ldrb r0, [r0]
| 0x08025eb4 dff8981b ldr.w r1, [0x08026a54] ; [0x8026a54:4]=0x2001e947 md380_menu_0x2001d3f1
| 0x08025eb8 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x08025ebc 10f8030c ldrb r0, [r0, -0x3]
| 0x08025ec0 10f00100 ands r0, r0, 1
| 0x08025ec4 dff8701d ldr.w r1, [0x08026c3c] ; [0x8026c3c:4]=0x2001d374
| 0x08025ec8 0978 ldrb r1, [r1]
| 0x08025eca dff8842b ldr.w r2, [0x08026a56] ; [0x8026a54:4]=0x2001e947 md380_menu_0x2001d3f1
| 0x08025ece 12eb8101 adds.w r1, r2, r1, lsl 2
| 0x08025ed2 01f8030c strb r0, [r1, -0x3]
| 0x08025ed6 fdf70cf8 bl func_22ef2_spiflash_wr_12
| .-> 0x08025eda e4b2 uxtb r4, r4
| | 0x08025edc dff8ec0a ldr.w r0, [0x080269d0] ; [0x80269d0:4]=0x2001e94a md380_menu_0x2001d3f4
| | 0x08025ee0 0068 ldr r0, [r0]
| | 0x08025ee2 30f81400 ldrh.w r0, [r0, r4, lsl 1]
| | 0x08025ee6 0028 cmp r0, 0
| ,==< 0x08025ee8 03d0 beq 0x8025ef2
| || 0x08025eea 641c adds r4, r4, 1
| || 0x08025eec e4b2 uxtb r4, r4
| || 0x08025eee 902c cmp r4, 0x90 ; 144
| |`=< 0x08025ef0 f3d3 blo 0x8025eda
| `--> 0x08025ef2 ce48 ldr r0, [0x0802622e] ; [0x802622c:4]=0x2001e944 md380_menu_cursor_pos_1
| 0x08025ef4 0470 strb r4, [r0]
| 0x08025ef6 a148 ldr r0, [0x0802617e] ; [0x802617c:4]=0x2001e945 md380_menu_cursor_pos_2
| 0x08025ef8 0121 movs r1, 1 ; 1
| 0x08025efa 0170 strb r1, [r0]
| 0x08025efc dff88c03 ldr.w r0, [0x08026290] ; [0x8026290:4]=0x2001e5dc msg_dest_addr
| 0x08025f00 9021 movs r1, 0x90 ; 144
| 0x08025f02 0170 strb r1, [r0]
| 0x08025f04 dff84c0b ldr.w r0, [0x08026a58] ; [0x8026a58:4]=0x2001e946 md380_menu_field_type
| 0x08025f08 0021 movs r1, 0
| 0x08025f0a 0170 strb r1, [r0]
| 0x08025f0c dff8480b ldr.w r0, [0x08026a5c] ; [0x8026a5c:4]=0x2001b274 md380_menu_mem_base
| 0x08025f10 0121 movs r1, 1 ; 1
| 0x08025f12 0170 strb r1, [r0]
| 0x08025f14 dff8c803 ldr.w r0, [0x080262e4] ; [0x80262e4:4]=0x2001d5cc md380_menu_memory
| 0x08025f18 0078 ldrb r0, [r0]
| 0x08025f1a 0c21 movs r1, 0xc ; 12
| 0x08025f1c dff8c423 ldr.w r2, [0x080262e8] ; [0x80262e8:4]=0x2001e90e
| 0x08025f20 01fb0020 mla r0, r1, r0, r2
| 0x08025f24 0c30 adds r0, 0xc
| 0x08025f26 dff8541c ldr.w r1, [0x08026b82] ; [0x8026b80:4]=0x2001c580
| 0x08025f2a 0160 str r1, [r0]
| 0x08025f2c dff87c1d ldr.w r1, [0x08026cb0] ; [0x8026cb0:4]=0x2001e91a
| 0x08025f30 0978 ldrb r1, [r1]
| 0x08025f32 1422 movs r2, 0x14 ; 20
| 0x08025f34 dff8243b ldr.w r3, [0x08026a60] ; [0x8026a60:4]=0x8025f79
| 0x08025f38 02fb0131 mla r1, r2, r1, r3
| 0x08025f3c 4160 str r1, [r0, 4]
| 0x08025f3e 0121 movs r1, 1 ; 1
| 0x08025f40 0172 strb r1, [r0, 8]
| 0x08025f42 0021 movs r1, 0
| 0x08025f44 4172 strb r1, [r0, 9]
| 0x08025f46 0021 movs r1, 0
| 0x08025f48 4181 strh r1, [r0, 0xa]
| 0x08025f4a e8f765f8 bl 0x800e018
| 0x08025f4e 0120 movs r0, 1 ; 1
| 0x08025f50 0290 str r0, [sp, 8]
| 0x08025f52 ff20 movs r0, 0xff ; 255
| 0x08025f54 0190 str r0, [sp, 4]
| 0x08025f56 0820 movs r0, 8 ; 8
| 0x08025f58 0090 str r0, [sp]
| 0x08025f5a dff8043b ldr.w r3, [0x08026a66] ; [0x8026a64:4]=0xb084b510
| 0x08025f5e dff89425 ldr.w r2, [0x080264fa] ; [0x80264f8:4]=0x2001e820
| 0x08025f62 dff8680a ldr.w r0, [0x080269d2] ; [0x80269d0:4]=0x2001e94a md380_menu_0x2001d3f4
| 0x08025f66 0168 ldr r1, [r0]
| 0x08025f68 dff8400d ldr.w r0, [0x08026cb0] ; [0x8026cb0:4]=0x2001e91a
| 0x08025f6c 0078 ldrb r0, [r0]
| 0x08025f6e e6f7defb bl md380_create_menu_entry
| 0x08025f72 00f09bfc bl 0x80268ac
\ 0x08025f76 1fbd pop {r0, r1, r2, r3, r4, pc}
/ (fcn) func_25ff4 184
| Caller: func_23414 func_25790_menu_create_something func_214fe func_23464 func_23294
| func_22f50_spiflash_rd_13 func_232e4 func_0c7e8 func_213d0 func_231c2_spiflash_rd_22
| func_23018_spiflash_rd_15 F_4315 func_23220
| func_25ff4 ();
| 0x08025ff4 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x08025ff6 0400 movs r4, r0
| 0x08025ff8 0025 movs r5, 0
| 0x08025ffa dff8846b ldr.w r6, [0x08026b86] ; [0x8026b84:4]=0xf8dfb5e0
| 0x08025ffe 0020 movs r0, 0
| 0x08026000 0090 str r0, [sp]
| 0x08026002 ebf7f3fa bl func_115ec
| 0x08026006 0027 movs r7, 0
| ,=< 0x08026008 00e0 b 0x802600c
| .--> 0x0802600a 7f1c adds r7, r7, 1
| |`-> 0x0802600c bfb2 uxth r7, r7
| | 0x0802600e b7f57a7f cmp.w r7, 0x3e8 ; 1000
| |,=< 0x08026012 49d2 bhs 0x80260a8
| || 0x08026014 bfb2 uxth r7, r7
| || 0x08026016 0220 movs r0, 2 ; 2
| || 0x08026018 97fbf0f0 sdiv r0, r7, r0
| || 0x0802601c bfb2 uxth r7, r7
| || 0x0802601e 0221 movs r1, 2 ; 2
| || 0x08026020 97fbf1f2 sdiv r2, r7, r1
| || 0x08026024 02fb1172 mls r2, r2, r1, r7
| || 0x08026028 002a cmp r2, 0
| ,===< 0x0802602a 1ad0 beq 0x8026062
| ||| 0x0802602c 80b2 uxth r0, r0
| ||| 0x0802602e 805d ldrb r0, [r0, r6]
| ||| 0x08026030 10f07000 ands r0, r0, 0x70
| ||| 0x08026034 2028 cmp r0, 0x20 ; 32
| ,====< 0x08026036 2fd1 bne 0x8026098
| |||| 0x08026038 bfb2 uxth r7, r7
| |||| 0x0802603a 2420 movs r0, 0x24 ; '$' ; 36
| |||| 0x0802603c 00fb07f0 mul r0, r0, r7
| |||| 0x08026040 10f5bf41 adds.w r1, r0, 0x5f80
| |||| 0x08026044 0422 movs r2, 4 ; 4
| |||| 0x08026046 00a8 add r0, sp, 0
| |||| 0x08026048 0bf015fa bl md380_spiflash_read
| |||| 0x0802604c 6d1c adds r5, r5, 1
| |||| 0x0802604e 0098 ldr r0, [sp]
| |||| 0x08026050 0002 lsls r0, r0, 8
| |||| 0x08026052 000a lsrs r0, r0, 8
| |||| 0x08026054 2102 lsls r1, r4, 8
| |||| 0x08026056 090a lsrs r1, r1, 8
| |||| 0x08026058 8842 cmp r0, r1
| ,=====< 0x0802605a 1dd1 bne 0x8026098
| ||||| 0x0802605c 781c adds r0, r7, 1
| ||||| 0x0802605e 80b2 uxth r0, r0
| ,======< 0x08026060 23e0 b 0x80260aa
| |||`---> 0x08026062 80b2 uxth r0, r0
| ||| || 0x08026064 805d ldrb r0, [r0, r6]
| ||| || 0x08026066 10f00700 ands r0, r0, 7
| ||| || 0x0802606a 0228 cmp r0, 2 ; 2
| |||,===< 0x0802606c 14d1 bne 0x8026098
| |||||| 0x0802606e bfb2 uxth r7, r7
| |||||| 0x08026070 2420 movs r0, 0x24 ; '$' ; 36
| |||||| 0x08026072 00fb07f0 mul r0, r0, r7
| |||||| 0x08026076 10f5bf41 adds.w r1, r0, 0x5f80
| |||||| 0x0802607a 0422 movs r2, 4 ; 4
| |||||| 0x0802607c 00a8 add r0, sp, 0
| |||||| 0x0802607e 0bf0faf9 bl md380_spiflash_read
| |||||| 0x08026082 6d1c adds r5, r5, 1
| |||||| 0x08026084 0098 ldr r0, [sp]
| |||||| 0x08026086 0002 lsls r0, r0, 8
| |||||| 0x08026088 000a lsrs r0, r0, 8
| |||||| 0x0802608a 2102 lsls r1, r4, 8
| |||||| 0x0802608c 090a lsrs r1, r1, 8
| |||||| 0x0802608e 8842 cmp r0, r1
| ,=======< 0x08026090 02d1 bne 0x8026098
| ||||||| 0x08026092 781c adds r0, r7, 1
| ||||||| 0x08026094 80b2 uxth r0, r0
| ========< 0x08026096 08e0 b 0x80260aa
| `-```---> 0x08026098 dff8000d ldr.w r0, [0x08026da0] ; [0x8026da0:4]=0x2001e940
| | || 0x0802609c 0088 ldrh r0, [r0]
| | || 0x0802609e adb2 uxth r5, r5
| | || 0x080260a0 8542 cmp r5, r0
| | `==< 0x080260a2 b2d3 blo 0x802600a
| | | 0x080260a4 0020 movs r0, 0
| | ,==< 0x080260a6 00e0 b 0x80260aa
| | |`-> 0x080260a8 0020 movs r0, 0
\ -`---`--> 0x080260aa f2bd pop {r1, r4, r5, r6, r7, pc}
/ (fcn) func_26230 92
| Caller: menu_draw_something
| func_26230 ();
| 0x08026230 30b4 push {r4, r5}
| 0x08026232 0021 movs r1, 0
| 0x08026234 dff81838 ldr.w r3, [0x08026a54] ; [0x8026a54:4]=0x2001e947 md380_menu_0x2001d3f1
| 0x08026238 dff8742a ldr.w r2, [0x08026cb4] ; [0x8026cb4:4]=0x489bb5e0
| 0x0802623c 1278 ldrb r2, [r2]
| 0x0802623e 0400 movs r4, r0
| 0x08026240 64b2 sxtb r4, r4
| 0x08026242 12b2 sxth r2, r2
| 0x08026244 24b2 sxth r4, r4
| 0x08026246 a242 cmp r2, r4
| ,=< 0x08026248 1ddb blt 0x8026286
| | 0x0802624a 40b2 sxtb r0, r0
| | 0x0802624c 0128 cmp r0, 1 ; 1
| ,==< 0x0802624e 1adb blt 0x8026286
| || 0x08026250 dff8e419 ldr.w r1, [0x08026c3c] ; [0x8026c3c:4]=0x2001d374
| || 0x08026254 0978 ldrb r1, [r1]
| || 0x08026256 0122 movs r2, 1 ; 1
| ,===< 0x08026258 00e0 b 0x802625c
| .----> 0x0802625a 521c adds r2, r2, 1
| |`---> 0x0802625c 1400 movs r4, r2
| | || 0x0802625e e4b2 uxtb r4, r4
| | || 0x08026260 0500 movs r5, r0
| | || 0x08026262 6db2 sxtb r5, r5
| | || 0x08026264 24b2 sxth r4, r4
| | || 0x08026266 2db2 sxth r5, r5
| | || 0x08026268 ac42 cmp r4, r5
| |,===< 0x0802626a 09da bge 0x8026280
| |||| 0x0802626c c9b2 uxtb r1, r1
| |||| 0x0802626e 13eb8101 adds.w r1, r3, r1, lsl 2
| |||| 0x08026272 11f8011c ldrb r1, [r1, -0x1]
| |||| 0x08026276 c9b2 uxtb r1, r1
| |||| 0x08026278 0029 cmp r1, 0
| `====< 0x0802627a eed1 bne 0x802625a
| ||| 0x0802627c 0120 movs r0, 1 ; 1
| ,====< 0x0802627e 03e0 b 0x8026288
| |`---> 0x08026280 0800 movs r0, r1
| | || 0x08026282 c0b2 uxtb r0, r0
| |,===< 0x08026284 00e0 b 0x8026288
| ||``-> 0x08026286 0120 movs r0, 1 ; 1
| ``---> 0x08026288 30bc pop {r4, r5}
\ 0x0802628a 7047 bx lr
/ (fcn) func_26298 54
| Caller: display_idle_screen
| func_26298 ();
| 0x08026298 38b5 push {r3, r4, r5, lr}
| 0x0802629a 0024 movs r4, 0
| 0x0802629c dff89c59 ldr.w r5, [0x08026c40] ; [0x8026c40:4]=0xf7ffb5e0
| 0x080262a0 fff76eff bl 0x8026180
| 0x080262a4 0020 movs r0, 0
| ,=< 0x080262a6 00e0 b 0x80262aa
| .--> 0x080262a8 401c adds r0, r0, 1
| |`-> 0x080262aa dff8041a ldr.w r1, [0x08026cb6] ; [0x8026cb4:4]=0x489bb5e0
| | 0x080262ae 0978 ldrb r1, [r1]
| | 0x080262b0 c0b2 uxtb r0, r0
| | 0x080262b2 8142 cmp r1, r0
| |,=< 0x080262b4 09d3 blo 0x80262ca
| || 0x080262b6 c0b2 uxtb r0, r0
| || 0x080262b8 15eb8001 adds.w r1, r5, r0, lsl 2
| || 0x080262bc 11f8034c ldrb r4, [r1, -0x3]
| || 0x080262c0 e4b2 uxtb r4, r4
| || 0x080262c2 022c cmp r4, 2 ; 2
| `==< 0x080262c4 f0d1 bne 0x80262a8
| | 0x080262c6 0120 movs r0, 1 ; 1
| ,==< 0x080262c8 00e0 b 0x80262cc
| |`-> 0x080262ca 0020 movs r0, 0
\ `--> 0x080262cc 32bd pop {r1, r4, r5, pc}
/ (fcn) func_26f46 24
| Caller: func_0c7e8 scr_mode_stable update_scr_20
| func_26f46 ();
| 0x08027f46 10b5 push {r4, lr}
| 0x08027f48 0400 movs r4, r0
| 0x08027f4a 0800 movs r0, r1
| 0x08027f4c 1021 movs r1, 0x10 ; 16
| 0x08027f4e fff7cfff bl func_27ef0
| 0x08027f52 0349 ldr r1, [0x08027f62] ; [0x8027f60:4]=0x2001e3c0 menu_title_cstring
| 0x08027f54 2000 movs r0, r4
| 0x08027f56 00b2 sxth r0, r0
| 0x08027f58 00f004f8 bl func_26f64
\ 0x08027f5c 10bd pop {r4, pc}
/ (fcn) func_26f64 42
| Caller: func_26f46
| func_26f64 ();
| 0x08027f64 38b5 push {r3, r4, r5, lr}
| 0x08027f66 0400 movs r4, r0
| 0x08027f68 0d00 movs r5, r1
| 0x08027f6a 24b2 sxth r4, r4
| 0x08027f6c 002c cmp r4, 0
| ,=< 0x08027f6e 0dd0 beq 0x8027f8c
| | 0x08027f70 2000 movs r0, r4
| | 0x08027f72 00b2 sxth r0, r0
| | 0x08027f74 0af076fd bl gfx_draw_sub_32a64
| | 0x08027f78 2900 movs r1, r5
| | 0x08027f7a 2830 adds r0, 0x28
| | 0x08027f7c 0ff09cfd bl func_37ab8
| | 0x08027f80 0028 cmp r0, 0
| ,==< 0x08027f82 03d0 beq 0x8027f8c
| || 0x08027f84 2000 movs r0, r4
| || 0x08027f86 00b2 sxth r0, r0
| || 0x08027f88 f4f754fc bl gfx_1c834
\ ``-> 0x08027f8c 31bd pop {r0, r4, r5, pc}
/ (fcn) func_27270 172
| Caller: kb_enter_alpha md380_f_4137
| func_27270 ();
| 0x08027270 e0b5 push {r5, r6, r7, lr}
| 0x08027272 4248 ldr r0, [0x0802737e] ; [0x802737c:4]=0x20004acc md380_menu_depth
| 0x08027274 0021 movs r1, 0
| 0x08027276 0170 strb r1, [r0]
| 0x08027278 3248 ldr r0, [0x08027344] ; [0x8027344:4]=0x2001e915 md380_menu_id
| 0x0802727a 0021 movs r1, 0
| 0x0802727c 0170 strb r1, [r0]
| 0x0802727e 2a48 ldr r0, [0x0802732a] ; [0x8027328:4]=0x2001e94a md380_menu_0x2001d3f4
| 0x08027280 0021 movs r1, 0
| 0x08027282 0170 strb r1, [r0]
| 0x08027284 2948 ldr r0, [0x0802732c] ; [0x802732c:4]=0x200049fc mn_editbuffer_poi
| 0x08027286 4849 ldr r1, [0x080273aa] ; [0x80273a8:4]=0x2001cb9a md380_menu_edit_buf
| 0x08027288 0160 str r1, [r0]
| 0x0802728a 2c48 ldr r0, [0x0802733e] ; [0x802733c:4]=0x2001e947 md380_menu_0x2001d3f1
| 0x0802728c 0021 movs r1, 0
| 0x0802728e 0170 strb r1, [r0]
| 0x08027290 2b48 ldr r0, [0x08027340] ; [0x8027340:4]=0x2001e946 md380_menu_field_type
| 0x08027292 0321 movs r1, 3 ; 3
| 0x08027294 0170 strb r1, [r0]
| 0x08027296 3948 ldr r0, [0x0802737e] ; [0x802737c:4]=0x20004acc md380_menu_depth
| 0x08027298 0078 ldrb r0, [r0]
| 0x0802729a 0c21 movs r1, 0xc ; 12
| 0x0802729c 384a ldr r2, [0x08027380] ; [0x8027380:4]=0x2001d5cc md380_menu_memory
| 0x0802729e 01fb0020 mla r0, r1, r0, r2
| 0x080272a2 1f49 ldr r1, [0x08027322] ; [0x8027320:4]=0x2001e700 menu_memory_poi
| 0x080272a4 0860 str r0, [r1]
| 0x080272a6 3748 ldr r0, [0x08027386] ; [0x8027384:4]=0x2001e6ec
| 0x080272a8 0068 ldr r0, [r0]
| 0x080272aa 3749 ldr r1, [0x0802738a] ; [0x8027388:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x080272ac 11eb8000 adds.w r0, r1, r0, lsl 2
| 0x080272b0 806a ldr r0, [r0, 0x28]
| 0x080272b2 1b49 ldr r1, [0x08027322] ; [0x8027320:4]=0x2001e700 menu_memory_poi
| 0x080272b4 0968 ldr r1, [r1]
| 0x080272b6 0860 str r0, [r1]
| 0x080272b8 1948 ldr r0, [0x08027320] ; [0x8027320:4]=0x2001e700 menu_memory_poi
| 0x080272ba 0068 ldr r0, [r0]
| 0x080272bc 1749 ldr r1, [0x0802731c] ; [0x802731c:4]=0x2001b274 md380_menu_mem_base
| 0x080272be 4160 str r1, [r0, 4]
| 0x080272c0 1748 ldr r0, [0x08027320] ; [0x8027320:4]=0x2001e700 menu_memory_poi
| 0x080272c2 0068 ldr r0, [r0]
| 0x080272c4 0121 movs r1, 1 ; 1
| 0x080272c6 0172 strb r1, [r0, 8]
| 0x080272c8 1548 ldr r0, [0x08027320] ; [0x8027320:4]=0x2001e700 menu_memory_poi
| 0x080272ca 0068 ldr r0, [r0]
| 0x080272cc 0021 movs r1, 0
| 0x080272ce 4172 strb r1, [r0, 9]
| 0x080272d0 1348 ldr r0, [0x08027320] ; [0x8027320:4]=0x2001e700 menu_memory_poi
| 0x080272d2 0068 ldr r0, [r0]
| 0x080272d4 0021 movs r1, 0
| 0x080272d6 4181 strh r1, [r0, 0xa]
| 0x080272d8 2348 ldr r0, [0x08027368] ; [0x8027368:4]=0x2001e87a
| 0x080272da 0021 movs r1, 0
| 0x080272dc 0170 strb r1, [r0]
| 0x080272de e6f79bfe bl 0x800e018
| 0x080272e2 0120 movs r0, 1 ; 1
| 0x080272e4 0290 str r0, [sp, 8]
| 0x080272e6 ff20 movs r0, 0xff ; 255
| 0x080272e8 0190 str r0, [sp, 4]
| 0x080272ea 0120 movs r0, 1 ; 1
| 0x080272ec 0090 str r0, [sp]
| 0x080272ee 274b ldr r3, [0x0802738e] ; [0x802738c:4]=0x800fc85 menu_entry_back_1
| 0x080272f0 264a ldr r2, [0x0802738c] ; [0x802738c:4]=0x800fc85 menu_entry_back_1
| 0x080272f2 0e48 ldr r0, [0x0802732e] ; [0x802732c:4]=0x200049fc mn_editbuffer_poi
| 0x080272f4 0168 ldr r1, [r0]
| 0x080272f6 1348 ldr r0, [0x08027346] ; [0x8027344:4]=0x2001e915 md380_menu_id
| 0x080272f8 0078 ldrb r0, [r0]
| 0x080272fa e5f718fa bl md380_create_menu_entry
| 0x080272fe 1f48 ldr r0, [0x0802737e] ; [0x802737c:4]=0x20004acc md380_menu_depth
| 0x08027300 0078 ldrb r0, [r0]
| 0x08027302 e8f7a7fc bl menu_add_number_of_menuentries_counts
| 0x08027306 0f49 ldr r1, [0x08027346] ; [0x8027344:4]=0x2001e915 md380_menu_id
| 0x08027308 0870 strb r0, [r1]
| 0x0802730a 0548 ldr r0, [0x08027322] ; [0x8027320:4]=0x2001e700 menu_memory_poi
| 0x0802730c 0068 ldr r0, [r0]
| 0x0802730e 4068 ldr r0, [r0, 4]
| 0x08027310 2649 ldr r1, [0x080273ac] ; [0x80273ac:4]=0x2001e6fc
| 0x08027312 0860 str r0, [r1]
| 0x08027314 1948 ldr r0, [0x0802737c] ; [0x802737c:4]=0x20004acc md380_menu_depth
| 0x08027316 0021 movs r1, 0
| 0x08027318 0170 strb r1, [r0]
\ 0x0802731a 07bd pop {r0, r1, r2, pc}
/ (fcn) func_273b0 70
| Caller: func_44cb4 func_47ab6 SomethingWithChannelInfo2 func_4d6f4 func_3f314
| func_273b0 ();
| 0x080273b0 0021 movs r1, 0
| 0x080273b2 10f00f02 ands r2, r0, 0xf
| 0x080273b6 1100 movs r1, r2
| 0x080273b8 80b2 uxth r0, r0
| 0x080273ba 0009 lsrs r0, r0, 4
| 0x080273bc 80b2 uxth r0, r0
| 0x080273be 10f00f02 ands r2, r0, 0xf
| 0x080273c2 0a23 movs r3, 0xa ; 10
| 0x080273c4 5a43 muls r2, r3, r2
| 0x080273c6 12fa81f1 uxtah r1, r2, r1
| 0x080273ca 80b2 uxth r0, r0
| 0x080273cc 0009 lsrs r0, r0, 4
| 0x080273ce 80b2 uxth r0, r0
| 0x080273d0 10f00f02 ands r2, r0, 0xf
| 0x080273d4 6423 movs r3, 0x64 ; 'd' ; 100
| 0x080273d6 5a43 muls r2, r3, r2
| 0x080273d8 12fa81f1 uxtah r1, r2, r1
| 0x080273dc 80b2 uxth r0, r0
| 0x080273de 0009 lsrs r0, r0, 4
| 0x080273e0 80b2 uxth r0, r0
| 0x080273e2 10f00f00 ands r0, r0, 0xf
| 0x080273e6 4ff47a72 mov.w r2, 0x3e8 ; 1000
| 0x080273ea 5043 muls r0, r2, r0
| 0x080273ec 10fa81f1 uxtah r1, r0, r1
| 0x080273f0 0800 movs r0, r1
| 0x080273f2 80b2 uxth r0, r0
\ 0x080273f4 7047 bx lr
/ (fcn) func_275dc 122
| Caller: func_23414 func_23018_spiflash_rd_15 func_109ca func_25790_menu_create_something
| func_214fe func_23294 func_22f50_spiflash_rd_13 md380_menu_12670 func_1182c
| func_213d0 func_0c7e8 convert_freq_to_str disp_something menu_6_1_1
| func_16ca4 func_10674 func_10798 func_231c2_spiflash_rd_22 F_4315
| func_10a5e
| func_275dc ();
| 0x080275dc 30b4 push {r4, r5}
| 0x080275de 85b0 sub sp, 0x14
| 0x080275e0 0022 movs r2, 0
| 0x080275e2 0023 movs r3, 0
| ,=< 0x080275e4 03e0 b 0x80275ee
| .--> 0x080275e6 0a24 movs r4, 0xa ; 10
| || 0x080275e8 b0fbf4f0 udiv r0, r0, r4
| || 0x080275ec 5b1c adds r3, r3, 1
| |`-> 0x080275ee dbb2 uxtb r3, r3
| | 0x080275f0 0a2b cmp r3, 0xa ; 10
| |,=< 0x080275f2 10d2 bhs 0x8027616
| || 0x080275f4 0a24 movs r4, 0xa ; 10
| || 0x080275f6 b0fbf4f5 udiv r5, r0, r4
| || 0x080275fa 04fb1504 mls r4, r4, r5, r0
| || 0x080275fe dbb2 uxtb r3, r3
| || 0x08027600 00ad add r5, sp, 0
| || 0x08027602 25f81340 strh.w r4, [r5, r3, lsl 1]
| || 0x08027606 dbb2 uxtb r3, r3
| || 0x08027608 00ac add r4, sp, 0
| || 0x0802760a 34f81340 ldrh.w r4, [r4, r3, lsl 1]
| || 0x0802760e 001b subs r0, r0, r4
| || 0x08027610 0028 cmp r0, 0
| `==< 0x08027612 e8d1 bne 0x80275e6
| | 0x08027614 5a1c adds r2, r3, 1
| `-> 0x08027616 0023 movs r3, 0
| ,=< 0x08027618 14e0 b 0x8027644
| .--> 0x0802761a dbb2 uxtb r3, r3
| || 0x0802761c 00a8 add r0, sp, 0
| || 0x0802761e 30f81300 ldrh.w r0, [r0, r3, lsl 1]
| || 0x08027622 3030 adds r0, 0x30
| || 0x08027624 dbb2 uxtb r3, r3
| || 0x08027626 00ac add r4, sp, 0
| || 0x08027628 24f81300 strh.w r0, [r4, r3, lsl 1]
| || 0x0802762c d2b2 uxtb r2, r2
| || 0x0802762e dbb2 uxtb r3, r3
| || 0x08027630 d01a subs r0, r2, r3
| || 0x08027632 11eb4000 adds.w r0, r1, r0, lsl 1
| || 0x08027636 dbb2 uxtb r3, r3
| || 0x08027638 00ac add r4, sp, 0
| || 0x0802763a 34f81340 ldrh.w r4, [r4, r3, lsl 1]
| || 0x0802763e 20f8024c strh r4, [r0, -0x2]
| || 0x08027642 5b1c adds r3, r3, 1
| |`-> 0x08027644 dbb2 uxtb r3, r3
| | 0x08027646 d2b2 uxtb r2, r2
| | 0x08027648 9342 cmp r3, r2
| `==< 0x0802764a e6d3 blo 0x802761a
| 0x0802764c 1000 movs r0, r2
| 0x0802764e c0b2 uxtb r0, r0
| 0x08027650 05b0 add sp, 0x14
| 0x08027652 30bc pop {r4, r5}
\ 0x08027654 7047 bx lr
/ (fcn) func_27e3e 24
| Caller: func_0c7e8 menu.dispatcher.unkn1 func_0db88
| func_27e3e ();
| 0x08027e3e 10b5 push {r4, lr}
| 0x08027e40 0400 movs r4, r0
| 0x08027e42 0800 movs r0, r1
| 0x08027e44 1121 movs r1, 0x11 ; 17
| 0x08027e46 00f053f8 bl func_27ef0
| 0x08027e4a 0749 ldr r1, [0x08027e6a] ; [0x8027e68:4]=0x2001e3c0 menu_title_cstring
| 0x08027e4c 2000 movs r0, r4
| 0x08027e4e 00b2 sxth r0, r0
| 0x08027e50 00f00cf8 bl func_27e6c
\ 0x08027e54 10bd pop {r4, pc}
/ (fcn) func_27e6c 84
| Caller: func_0c7e8 func_27e3e
| func_27e6c ();
| 0x08027e6c 38b5 push {r3, r4, r5, lr}
| 0x08027e6e 0400 movs r4, r0
| 0x08027e70 0d00 movs r5, r1
| 0x08027e72 24b2 sxth r4, r4
| 0x08027e74 002c cmp r4, 0
| ,=< 0x08027e76 0dd0 beq 0x8027e94
| | 0x08027e78 2000 movs r0, r4
| | 0x08027e7a 00b2 sxth r0, r0
| | 0x08027e7c 0af0f2fd bl gfx_draw_sub_32a64
| | 0x08027e80 2900 movs r1, r5
| | 0x08027e82 5030 adds r0, 0x50
| | 0x08027e84 0ff018fe bl func_37ab8
| | 0x08027e88 0028 cmp r0, 0
| ,==< 0x08027e8a 03d0 beq 0x8027e94
| || 0x08027e8c 2000 movs r0, r4
| || 0x08027e8e 00b2 sxth r0, r0
| || 0x08027e90 f4f7d0fc bl gfx_1c834
| ``-> 0x08027e94 31bd pop {r0, r4, r5, pc}
| 0x08027e96 38b5 push {r3, r4, r5, lr}
| 0x08027e98 0400 movs r4, r0
| 0x08027e9a 0d00 movs r5, r1
| 0x08027e9c 24b2 sxth r4, r4
| 0x08027e9e 002c cmp r4, 0
| ,=< 0x08027ea0 0dd0 beq 0x8027ebe
| | 0x08027ea2 2000 movs r0, r4
| | 0x08027ea4 00b2 sxth r0, r0
| | 0x08027ea6 0af0ddfd bl gfx_draw_sub_32a64
| | 0x08027eaa b0f95a10 ldrsh.w r1, [r0, 0x5a]
| | 0x08027eae a942 cmp r1, r5
| ,==< 0x08027eb0 05d0 beq 0x8027ebe
| || 0x08027eb2 a0f85a50 strh.w r5, [r0, 0x5a]
| || 0x08027eb6 2000 movs r0, r4
| || 0x08027eb8 00b2 sxth r0, r0
| || 0x08027eba f4f7bbfc bl gfx_1c834
\ ``-> 0x08027ebe 31bd pop {r0, r4, r5, pc}
/ (fcn) func_27ed0 32
| Caller: func_0c7e8 F_4284 F_4315
| func_27ed0 ();
| 0x08027ed0 f0b5 push {r4, r5, r6, r7, lr}
| 0x08027ed2 85b0 sub sp, 0x14
| 0x08027ed4 0a9c ldr r4, [sp, 0x28]
| 0x08027ed6 0b9d ldr r5, [sp, 0x2c]
| 0x08027ed8 0c9e ldr r6, [sp, 0x30]
| 0x08027eda 0d9f ldr r7, [sp, 0x34]
| 0x08027edc 0496 str r6, [sp, 0x10]
| 0x08027ede 0394 str r4, [sp, 0xc]
| 0x08027ee0 0297 str r7, [sp, 8]
| 0x08027ee2 0195 str r5, [sp, 4]
| 0x08027ee4 0024 movs r4, 0
| 0x08027ee6 0094 str r4, [sp]
| 0x08027ee8 0ff066fe bl func_37bb8
| 0x08027eec 05b0 add sp, 0x14
\ 0x08027eee f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) func_27ef0 86
| Caller: func_26f46 func_27e3e
| func_27ef0 ();
| 0x08027ef0 70b5 push {r4, r5, r6, lr}
| 0x08027ef2 0500 movs r5, r0
| 0x08027ef4 0c00 movs r4, r1
| 0x08027ef6 0026 movs r6, 0
| ,=< 0x08027ef8 00e0 b 0x8027efc
| .--> 0x08027efa ad1c adds r5, r5, 2
| |`-> 0x08027efc 2888 ldrh r0, [r5]
| | 0x08027efe 0028 cmp r0, 0
| |,=< 0x08027f00 1dd0 beq 0x8027f3e
| || 0x08027f02 2888 ldrh r0, [r5]
| || 0x08027f04 8028 cmp r0, 0x80 ; 128
| ,===< 0x08027f06 0cd3 blo 0x8027f22
| ||| 0x08027f08 2888 ldrh r0, [r5]
| ||| 0x08027f0a 0bf053fc bl gfx_drawtext_sub2
| ||| 0x08027f0e 1449 ldr r1, [0x08027f62] ; [0x8027f60:4]=0x2001e3c0 menu_title_cstring
| ||| 0x08027f10 7054 strb r0, [r6, r1]
| ||| 0x08027f12 761c adds r6, r6, 1
| ||| 0x08027f14 2888 ldrh r0, [r5]
| ||| 0x08027f16 0bf0bafc bl gfx_drawtext_sub3
| ||| 0x08027f1a 1149 ldr r1, [0x08027f62] ; [0x8027f60:4]=0x2001e3c0 menu_title_cstring
| ||| 0x08027f1c 7054 strb r0, [r6, r1]
| ||| 0x08027f1e 761c adds r6, r6, 1
| ,====< 0x08027f20 03e0 b 0x8027f2a
| |`---> 0x08027f22 0f48 ldr r0, [0x08027f62] ; [0x8027f60:4]=0x2001e3c0 menu_title_cstring
| | || 0x08027f24 2988 ldrh r1, [r5]
| | || 0x08027f26 3154 strb r1, [r6, r0]
| | || 0x08027f28 761c adds r6, r6, 1
| `----> 0x08027f2a a642 cmp r6, r4
| `==< 0x08027f2c e5db blt 0x8027efa
| | 0x08027f2e 0c48 ldr r0, [0x08027f62] ; [0x8027f60:4]=0x2001e3c0 menu_title_cstring
| | 0x08027f30 2e21 movs r1, 0x2e ; '.' ; 46
| | 0x08027f32 3154 strb r1, [r6, r0]
| | 0x08027f34 761c adds r6, r6, 1
| | 0x08027f36 0a48 ldr r0, [0x08027f62] ; [0x8027f60:4]=0x2001e3c0 menu_title_cstring
| | 0x08027f38 2e21 movs r1, 0x2e ; '.' ; 46
| | 0x08027f3a 3154 strb r1, [r6, r0]
| | 0x08027f3c 761c adds r6, r6, 1
| `-> 0x08027f3e 0848 ldr r0, [0x08027f62] ; [0x8027f60:4]=0x2001e3c0 menu_title_cstring
| 0x08027f40 0021 movs r1, 0
| 0x08027f42 3154 strb r1, [r6, r0]
\ 0x08027f44 70bd pop {r4, r5, r6, pc}
/ (fcn) func_2aac0 174
| Caller: func_0dda8 menu.dispatch.greenkey menu_func_0f6a8 update_scr_19 func_0db88
| menu.dispatcher.unkn1 menu_F_4144 menu_func_0f4ac update_scr_36
| func_2aac0 ();
| 0x0802aac0 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x0802aac2 0400 movs r4, r0
| 0x0802aac4 0d00 movs r5, r1
| 0x0802aac6 24b2 sxth r4, r4
| 0x0802aac8 002c cmp r4, 0
| ,=< 0x0802aaca 4fd0 beq 0x802ab6c
| | 0x0802aacc 2e48 ldr r0, [0x0802ab88] ; [0x802ab88:4]=0x2001e880
| | 0x0802aace 0021 movs r1, 0
| | 0x0802aad0 0170 strb r1, [r0]
| | 0x0802aad2 2000 movs r0, r4
| | 0x0802aad4 00b2 sxth r0, r0
| | 0x0802aad6 07f0c5ff bl gfx_draw_sub_32a64
| | 0x0802aada 0600 movs r6, r0
| | 0x0802aadc 3000 movs r0, r6
| | 0x0802aade fdf787fa bl menu_draw_sub_27ff0
| | 0x0802aae2 0028 cmp r0, 0
| ,==< 0x0802aae4 01d0 beq 0x802aaea
| || 0x0802aae6 401e subs r0, r0, 1
| ,===< 0x0802aae8 00e0 b 0x802aaec
| |`--> 0x0802aaea 0020 movs r0, 0
| `---> 0x0802aaec a842 cmp r0, r5
| ,==< 0x0802aaee 00da bge 0x802aaf2
| || 0x0802aaf0 0500 movs r5, r0
| `--> 0x0802aaf2 002d cmp r5, 0
| ,==< 0x0802aaf4 02d5 bpl 0x802aafc
| || 0x0802aaf6 5ff0ff35 movs.w r5, -1 ; -1
| ,===< 0x0802aafa 0fe0 b 0x802ab1c
| |`--> 0x0802aafc 2900 movs r1, r5
| | | 0x0802aafe 16f12800 adds.w r0, r6, 0x28
| | | 0x0802ab02 0df0fef8 bl menu_draw_sub_37d02
| | | 0x0802ab06 00b2 sxth r0, r0
| | | 0x0802ab08 0028 cmp r0, 0
| |,==< 0x0802ab0a 07d0 beq 0x802ab1c
| ||| 0x0802ab0c 00b2 sxth r0, r0
| ||| 0x0802ab0e 07f0a9ff bl gfx_draw_sub_32a64
| ||| 0x0802ab12 0079 ldrb r0, [r0, 4]
| ||| 0x0802ab14 8007 lsls r0, r0, 0x1e
| ,====< 0x0802ab16 01d5 bpl 0x802ab1c
| |||| 0x0802ab18 5ff0ff35 movs.w r5, -1 ; -1
| ```--> 0x0802ab1c b6f97200 ldrsh.w r0, [r6, 0x72]
| | 0x0802ab20 8542 cmp r5, r0
| ,==< 0x0802ab22 20d0 beq 0x802ab66
| || 0x0802ab24 b6f97270 ldrsh.w r7, [r6, 0x72]
| || 0x0802ab28 a6f87250 strh.w r5, [r6, 0x72]
| || 0x0802ab2c 3100 movs r1, r6
| || 0x0802ab2e 2000 movs r0, r4
| || 0x0802ab30 00b2 sxth r0, r0
| || 0x0802ab32 fef725f9 bl 0x8028d80
| || 0x0802ab36 0028 cmp r0, 0
| ,===< 0x0802ab38 04d0 beq 0x802ab44
| ||| 0x0802ab3a 2000 movs r0, r4
| ||| 0x0802ab3c 00b2 sxth r0, r0
| ||| 0x0802ab3e fef75af9 bl 0x8028df6
| ,====< 0x0802ab42 0be0 b 0x802ab5c
| |`---> 0x0802ab44 3a00 movs r2, r7
| | || 0x0802ab46 3100 movs r1, r6
| | || 0x0802ab48 2000 movs r0, r4
| | || 0x0802ab4a 00b2 sxth r0, r0
| | || 0x0802ab4c fef760f9 bl 0x8028e10
| | || 0x0802ab50 2a00 movs r2, r5
| | || 0x0802ab52 3100 movs r1, r6
| | || 0x0802ab54 2000 movs r0, r4
| | || 0x0802ab56 00b2 sxth r0, r0
| | || 0x0802ab58 fef75af9 bl 0x8028e10
| `----> 0x0802ab5c 0421 movs r1, 4 ; 4
| || 0x0802ab5e 2000 movs r0, r4
| || 0x0802ab60 00b2 sxth r0, r0
| || 0x0802ab62 fdf746fb bl 0x80281f2
| `--> 0x0802ab66 0848 ldr r0, [0x0802ab8a] ; [0x802ab88:4]=0x2001e880
| | 0x0802ab68 0021 movs r1, 0
| | 0x0802ab6a 0170 strb r1, [r0]
\ `-> 0x0802ab6c f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) func_2aba8 18
| Caller: menu_func_0f4ac
| func_2aba8 ();
| 0x0802aba8 80b5 push {r7, lr}
| 0x0802abaa 00b2 sxth r0, r0
| 0x0802abac 0028 cmp r0, 0
| ,=< 0x0802abae 03d0 beq 0x802abb8
| | 0x0802abb0 0121 movs r1, 1 ; 1
| | 0x0802abb2 00b2 sxth r0, r0
| | 0x0802abb4 fef7f3fb bl 0x802939e
\ `-> 0x0802abb8 01bd pop {r0, pc}
/ (fcn) func_2abba 20
| Caller: menu_F_4144
| func_2abba ();
| 0x0802abba 80b5 push {r7, lr}
| 0x0802abbc 00b2 sxth r0, r0
| 0x0802abbe 0028 cmp r0, 0
| ,=< 0x0802abc0 04d0 beq 0x802abcc
| | 0x0802abc2 5ff0ff31 movs.w r1, -1 ; -1
| | 0x0802abc6 00b2 sxth r0, r0
| | 0x0802abc8 fef7e9fb bl 0x802939e
\ `-> 0x0802abcc 01bd pop {r0, pc}
/ (fcn) func_2abce 62
| Caller: func_0dda8 menu.dispatch.greenkey menu.dispatcher.unkn1 menu_func_0f6a8 func_0db88
| func_2abce ();
| 0x0802abce 1fb5 push {r0, r1, r2, r3, r4, lr}
| 0x0802abd0 0a07 lsls r2, r1, 0x1c
| ,=< 0x0802abd2 03d5 bpl 0x802abdc
| | 0x0802abd4 fe22 movs r2, 0xfe ; 254
| | 0x0802abd6 40f28a53 movw r3, 0x58a ; 1418
| ,==< 0x0802abda 02e0 b 0x802abe2
| |`-> 0x0802abdc ff22 movs r2, 0xff ; 255
| | 0x0802abde 40f28a33 movw r3, 0x38a ; 906
| `--> 0x0802abe2 0392 str r2, [sp, 0xc]
| 0x0802abe4 0291 str r1, [sp, 8]
| 0x0802abe6 0193 str r3, [sp, 4]
| 0x0802abe8 00b2 sxth r0, r0
| 0x0802abea 0090 str r0, [sp]
| 0x0802abec 0023 movs r3, 0
| 0x0802abee 0022 movs r2, 0
| 0x0802abf0 0021 movs r1, 0
| 0x0802abf2 0020 movs r0, 0
| 0x0802abf4 10f019fc bl func_3b42a
| 0x0802abf8 0400 movs r4, r0
| 0x0802abfa 0621 movs r1, 6 ; 6
| 0x0802abfc 2000 movs r0, r4
| 0x0802abfe 00b2 sxth r0, r0
| 0x0802ac00 08f0ebf8 bl gfx_32dda
| 0x0802ac04 2000 movs r0, r4
| 0x0802ac06 00b2 sxth r0, r0
| 0x0802ac08 04b0 add sp, 0x10
\ 0x0802ac0a 10bd pop {r4, pc}
/ (fcn) func_2ac0c 34
| Caller: func_0dda8 menu.dispatch.greenkey menu.dispatcher.unkn1 menu_func_0f6a8 func_0db88
| func_2ac0c ();
| 0x0802ac0c 38b5 push {r3, r4, r5, lr}
| 0x0802ac0e 0400 movs r4, r0
| 0x0802ac10 0025 movs r5, 0
| 0x0802ac12 24b2 sxth r4, r4
| 0x0802ac14 002c cmp r4, 0
| ,=< 0x0802ac16 08d0 beq 0x802ac2a
| | 0x0802ac18 2000 movs r0, r4
| | 0x0802ac1a 00b2 sxth r0, r0
| | 0x0802ac1c 10f0c0fc bl func_3b5a0
| | 0x0802ac20 0500 movs r5, r0
| | 0x0802ac22 2000 movs r0, r4
| | 0x0802ac24 00b2 sxth r0, r0
| | 0x0802ac26 10f0a6fb bl func_3b376
| `-> 0x0802ac2a 2800 movs r0, r5
\ 0x0802ac2c 32bd pop {r1, r4, r5, pc}
/ (fcn) func_2ac2e 46
| Caller: func_0dcec
| func_2ac2e ();
| 0x0802ac2e 70b5 push {r4, r5, r6, lr}
| 0x0802ac30 86b0 sub sp, 0x18
| 0x0802ac32 0400 movs r4, r0
| 0x0802ac34 0800 movs r0, r1
| 0x0802ac36 1e00 movs r6, r3
| 0x0802ac38 0a99 ldr r1, [sp, 0x28]
| 0x0802ac3a 0b9d ldr r5, [sp, 0x2c]
| 0x0802ac3c 0c9b ldr r3, [sp, 0x30]
| 0x0802ac3e 0590 str r0, [sp, 0x14]
| 0x0802ac40 0494 str r4, [sp, 0x10]
| 0x0802ac42 0020 movs r0, 0
| 0x0802ac44 0390 str r0, [sp, 0xc]
| 0x0802ac46 0020 movs r0, 0
| 0x0802ac48 0290 str r0, [sp, 8]
| 0x0802ac4a 0192 str r2, [sp, 4]
| 0x0802ac4c 0020 movs r0, 0
| 0x0802ac4e 0090 str r0, [sp]
| 0x0802ac50 2a00 movs r2, r5
| 0x0802ac52 3000 movs r0, r6
| 0x0802ac54 fdf777f8 bl 0x8027d46
| 0x0802ac58 06b0 add sp, 0x18
\ 0x0802ac5a 70bd pop {r4, r5, r6, pc}
/ (fcn) gfx_2b088 76
| Caller: gfx_drawtext_sub4
| gfx_2b088 ();
| 0x0802b088 2de9fc41 push.w {r2, r3, r4, r5, r6, r7, r8, lr}
| 0x0802b08c 0400 movs r4, r0
| 0x0802b08e 0d00 movs r5, r1
| 0x0802b090 1600 movs r6, r2
| 0x0802b092 1f00 movs r7, r3
| 0x0802b094 002c cmp r4, 0
| ,=< 0x0802b096 1bd0 beq 0x802b0d0
| | 0x0802b098 5ff00008 movs.w r8, 0
| | 0x0802b09c 002d cmp r5, 0
| ,==< 0x0802b09e 0ed0 beq 0x802b0be
| || 0x0802b0a0 2800 movs r0, r5
| || 0x0802b0a2 0ff097fe bl gfx_3add4
| || 0x0802b0a6 8046 mov r8, r0
| || 0x0802b0a8 b8f1000f cmp.w r8, 0
| ,===< 0x0802b0ac 07d0 beq 0x802b0be
| ||| 0x0802b0ae 4246 mov r2, r8
| ||| 0x0802b0b0 2900 movs r1, r5
| ||| 0x0802b0b2 00a8 add r0, sp, 0
| ||| 0x0802b0b4 07f037fd bl gfx_ThreeRectSomething
| ||| 0x0802b0b8 00a8 add r0, sp, 0
| ||| 0x0802b0ba 0ff08bfe bl gfx_3add4
| ``--> 0x0802b0be 3b00 movs r3, r7
| | 0x0802b0c0 3200 movs r2, r6
| | 0x0802b0c2 2900 movs r1, r5
| | 0x0802b0c4 2000 movs r0, r4
| | 0x0802b0c6 fff727ff bl 0x802af18
| | 0x0802b0ca 4046 mov r0, r8
| | 0x0802b0cc 0ff082fe bl gfx_3add4
\ `-> 0x0802b0d0 bde8f381 pop.w {r0, r1, r4, r5, r6, r7, r8, pc}
/ (fcn) func_2b726 34
| Caller: F_4284 F_4315
| func_2b726 ();
| 0x0802b726 38b5 push {r3, r4, r5, lr}
| 0x0802b728 0400 movs r4, r0
| 0x0802b72a 0d00 movs r5, r1
| 0x0802b72c 24b2 sxth r4, r4
| 0x0802b72e 002c cmp r4, 0
| ,=< 0x0802b730 08d0 beq 0x802b744
| | 0x0802b732 2000 movs r0, r4
| | 0x0802b734 00b2 sxth r0, r0
| | 0x0802b736 07f095f9 bl gfx_draw_sub_32a64
| | 0x0802b73a 8563 str r5, [r0, 0x38]
| | 0x0802b73c 2000 movs r0, r4
| | 0x0802b73e 00b2 sxth r0, r0
| | 0x0802b740 f1f778f8 bl gfx_1c834
| `-> 0x0802b744 31bd pop {r0, r4, r5, pc}
\ 0x0802b746 6200 lsls r2, r4, 1
/ (fcn) func_2b874 4
| Caller: often_called_something_keycode_menu func_2c6fc
| func_2b874 ();
\ 0x0802b874 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
/ (fcn) func_2bad0 4
| Caller: often_called_something_keycode_menu
| func_2bad0 ();
| 0x0802bad0 38b5 push {r3, r4, r5, lr}
\ 0x0802bad2 dff8 invalid
/ (fcn) func_2bfcc 4
| Caller: often_called_something_keycode_menu
| func_2bfcc ();
| 0x0802bfcc 38b5 push {r3, r4, r5, lr}
\ 0x0802bfce dff8 invalid
/ (fcn) func_2c4e0 4
| Caller: often_called_something_keycode_menu
| func_2c4e0 ();
| 0x0802c4e0 80b5 push {r7, lr}
\ 0x0802c4e2 8248 ldr r0, [0x0802c6ee] ; [0x802c6ec:4]=0x2001e946 md380_menu_field_type
/ (fcn) func_2c6fc 170
| Caller: often_called_something_keycode_menu
| func_2c6fc ();
| 0x0802c6fc 80b5 push {r7, lr}
| 0x0802c6fe 4e48 ldr r0, [0x0802c83a] ; [0x802c838:4]=0x2001e87b
| 0x0802c700 0078 ldrb r0, [r0]
| 0x0802c702 0128 cmp r0, 1 ; 1
| ,=< 0x0802c704 24d1 bne 0x802c750
| | 0x0802c706 4448 ldr r0, [0x0802c81a] ; [0x802c818:4]=0x2001e5c0
| | 0x0802c708 0021 movs r1, 0
| | 0x0802c70a 0160 str r1, [r0]
| | 0x0802c70c 4a48 ldr r0, [0x0802c838] ; [0x802c838:4]=0x2001e87b
| | 0x0802c70e 0021 movs r1, 0
| | 0x0802c710 0170 strb r1, [r0]
| | 0x0802c712 3c48 ldr r0, [0x0802c806] ; [0x802c804:4]=0x2001e87e
| | 0x0802c714 0021 movs r1, 0
| | 0x0802c716 0170 strb r1, [r0]
| | 0x0802c718 0020 movs r0, 0
| ,==< 0x0802c71a 03e0 b 0x802c724
| .---> 0x0802c71c 4549 ldr r1, [0x0802c834] ; [0x802c834:4]=0x2001e504
| ||| 0x0802c71e 0022 movs r2, 0
| ||| 0x0802c720 4254 strb r2, [r0, r1]
| ||| 0x0802c722 401c adds r0, r0, 1
| |`--> 0x0802c724 0a28 cmp r0, 0xa ; 10
| `===< 0x0802c726 f9db blt 0x802c71c
| | 0x0802c728 7ff07f40 mvns r0, 0xff000000
| | 0x0802c72c f0f720fe bl gfx_set_fg_color
| | 0x0802c730 6d23 movs r3, 0x6d ; 'm' ; 109
| | 0x0802c732 9b22 movs r2, 0x9b ; 155
| | 0x0802c734 5121 movs r1, 0x51 ; 'Q' ; 81
| | 0x0802c736 0120 movs r0, 1 ; 1
| | 0x0802c738 f1f7a8f8 bl gfx_blockfill
| | 0x0802c73c 0020 movs r0, 0
| | 0x0802c73e f0f717fe bl gfx_set_fg_color
| | 0x0802c742 2d48 ldr r0, [0x0802c7fa] ; [0x802c7f8:4]=0x20004aca
| | 0x0802c744 6321 movs r1, 0x63 ; 'c' ; 99
| | 0x0802c746 0170 strb r1, [r0]
| | 0x0802c748 3148 ldr r0, [0x0802c810] ; [0x802c810:4]=0x20004ac9
| | 0x0802c74a 0521 movs r1, 5 ; 5
| | 0x0802c74c 0170 strb r1, [r0]
| ,==< 0x0802c74e 29e0 b 0x802c7a4
| |`-> 0x0802c750 3948 ldr r0, [0x0802c838] ; [0x802c838:4]=0x2001e87b
| | 0x0802c752 0078 ldrb r0, [r0]
| | 0x0802c754 0228 cmp r0, 2 ; 2
| |,=< 0x0802c756 22d3 blo 0x802c79e
| || 0x0802c758 2748 ldr r0, [0x0802c7f8] ; [0x802c7f8:4]=0x20004aca
| || 0x0802c75a 0078 ldrb r0, [r0]
| || 0x0802c75c 6328 cmp r0, 0x63 ; 'c' ; 99
| ,===< 0x0802c75e 0bd0 beq 0x802c778
| ||| 0x0802c760 3548 ldr r0, [0x0802c838] ; [0x802c838:4]=0x2001e87b
| ||| 0x0802c762 0078 ldrb r0, [r0]
| ||| 0x0802c764 3349 ldr r1, [0x0802c834] ; [0x802c834:4]=0x2001e504
| ||| 0x0802c766 4018 adds r0, r0, r1
| ||| 0x0802c768 0021 movs r1, 0
| ||| 0x0802c76a 00f8011c strb r1, [r0, -0x1]
| ||| 0x0802c76e 3248 ldr r0, [0x0802c83a] ; [0x802c838:4]=0x2001e87b
| ||| 0x0802c770 0078 ldrb r0, [r0]
| ||| 0x0802c772 401e subs r0, r0, 1
| ||| 0x0802c774 3049 ldr r1, [0x0802c838] ; [0x802c838:4]=0x2001e87b
| ||| 0x0802c776 0870 strb r0, [r1]
| `---> 0x0802c778 2048 ldr r0, [0x0802c7fc] ; [0x802c7fc:4]=0x809a4c0 gfx_font_small
| || 0x0802c77a f5f77bf8 bl gfx_select_font
| || 0x0802c77e 2e48 ldr r0, [0x0802c83a] ; [0x802c838:4]=0x2001e87b
| || 0x0802c780 0178 ldrb r1, [r0]
| || 0x0802c782 2c48 ldr r0, [0x0802c836] ; [0x802c834:4]=0x2001e504
| || 0x0802c784 fff776f8 bl func_2b874
| || 0x0802c788 7ff07f40 mvns r0, 0xff000000
| || 0x0802c78c f0f7ecfd bl gfx_set_bg_color
| || 0x0802c790 0020 movs r0, 0
| || 0x0802c792 f0f7edfd bl gfx_set_fg_color
| || 0x0802c796 1448 ldr r0, [0x0802c7ea] ; [0x802c7e8:4]=0x80cf780 gfx_font_norm
| || 0x0802c798 f5f76cf8 bl gfx_select_font
| ,===< 0x0802c79c 02e0 b 0x802c7a4
| ||`-> 0x0802c79e 1248 ldr r0, [0x0802c7ea] ; [0x802c7e8:4]=0x80cf780 gfx_font_norm
| || 0x0802c7a0 f5f768f8 bl gfx_select_font
\ ``--> 0x0802c7a4 01bd pop {r0, pc}
/ (fcn) func_2c7a6 66
| Caller: display_idle_screen menu_6_1_1
| func_2c7a6 ();
| 0x0802c7a6 0020 movs r0, 0
| ,=< 0x0802c7a8 03e0 b 0x802c7b2
| .--> 0x0802c7aa 2249 ldr r1, [0x0802c836] ; [0x802c834:4]=0x2001e504
| || 0x0802c7ac 0022 movs r2, 0
| || 0x0802c7ae 4254 strb r2, [r0, r1]
| || 0x0802c7b0 401c adds r0, r0, 1
| |`-> 0x0802c7b2 0a28 cmp r0, 0xa ; 10
| `==< 0x0802c7b4 f9db blt 0x802c7aa
| 0x0802c7b6 1848 ldr r0, [0x0802c81a] ; [0x802c818:4]=0x2001e5c0
| 0x0802c7b8 0021 movs r1, 0
| 0x0802c7ba 0160 str r1, [r0]
| 0x0802c7bc 1e48 ldr r0, [0x0802c838] ; [0x802c838:4]=0x2001e87b
| 0x0802c7be 0021 movs r1, 0
| 0x0802c7c0 0170 strb r1, [r0]
| 0x0802c7c2 1048 ldr r0, [0x0802c806] ; [0x802c804:4]=0x2001e87e
| 0x0802c7c4 0021 movs r1, 0
| 0x0802c7c6 0170 strb r1, [r0]
| 0x0802c7c8 1248 ldr r0, [0x0802c814] ; [0x802c814:4]=0x2001e87d
| 0x0802c7ca 0021 movs r1, 0
| 0x0802c7cc 0170 strb r1, [r0]
| 0x0802c7ce 0e48 ldr r0, [0x0802c80a] ; [0x802c808:4]=0x2001e87c
| 0x0802c7d0 0021 movs r1, 0
| 0x0802c7d2 0170 strb r1, [r0]
| 0x0802c7d4 0d48 ldr r0, [0x0802c80c] ; [0x802c80c:4]=0x20004acb
| 0x0802c7d6 6321 movs r1, 0x63 ; 'c' ; 99
| 0x0802c7d8 0170 strb r1, [r0]
| 0x0802c7da 0748 ldr r0, [0x0802c7fa] ; [0x802c7f8:4]=0x20004aca
| 0x0802c7dc 6321 movs r1, 0x63 ; 'c' ; 99
| 0x0802c7de 0170 strb r1, [r0]
| 0x0802c7e0 0b48 ldr r0, [0x0802c810] ; [0x802c810:4]=0x20004ac9
| 0x0802c7e2 0521 movs r1, 5 ; 5
| 0x0802c7e4 0170 strb r1, [r0]
\ 0x0802c7e6 7047 bx lr
/ (fcn) some_init 430
| Caller: func_2ea9e
| some_init ();
| 0x0802d368 80b5 push {r7, lr}
| 0x0802d36a dff8c409 ldr.w r0, [func_2dd36_beeps_and_sets_kb_keycode] ; [0x802dd34:4]=0xb5104770
| 0x0802d36e 0078 ldrb r0, [r0]
| 0x0802d370 401e subs r0, r0, 1
| 0x0802d372 c0b2 uxtb r0, r0
| 0x0802d374 0828 cmp r0, 8 ; 8
| ,=< 0x0802d376 0dd2 bhs 0x802d394
| | 0x0802d378 dff8f80a ldr.w r0, [0x0802de78] ; [0x802de78:4]=0x2001e660 event4_mbox_poi
| | 0x0802d37c 1f21 movs r1, 0x1f ; 31
| | 0x0802d37e 0170 strb r1, [r0]
| | 0x0802d380 dff8f01a ldr.w r1, [0x0802de78] ; [0x802de78:4]=0x2001e660 event4_mbox_poi
| | 0x0802d384 dff8f00a ldr.w r0, [0x0802de7c] ; [0x802de7c:4]=0x2001e958
| | 0x0802d388 0068 ldr r0, [r0]
| | 0x0802d38a 03f007ff bl md380_OSMboxPost
| | 0x0802d38e 0a20 movs r0, 0xa ; 10
| | 0x0802d390 06f090fd bl OSTimeDly
| `-> 0x0802d394 fff7f3fe bl 0x802d17e
| 0x0802d398 dff88c0b ldr.w r0, [0x0802df2c] ; [0x802df2c:4]=0x2001e8c1 channel_num
| 0x0802d39c c078 ldrb r0, [r0, 3]
| 0x0802d39e f5f7e9fc bl spiflash_rd_zone_name_2__64byte
| 0x0802d3a2 dff8d80a ldr.w r0, [0x0802de82] ; [0x802de80:4]=0x2001e850 selected_channel
| 0x0802d3a6 dff8841b ldr.w r1, [0x0802df32] ; [0x802df30:4]=0x2001cddc zone_name
| 0x0802d3aa 0978 ldrb r1, [r1]
| 0x0802d3ac 0170 strb r1, [r0]
| 0x0802d3ae dff8cc0a ldr.w r0, [0x0802de82] ; [0x802de80:4]=0x2001e850 selected_channel
| 0x0802d3b2 0078 ldrb r0, [r0]
| 0x0802d3b4 dff8781b ldr.w r1, [0x0802df34] ; [0x802df34:4]=0x2001e8aa event1_buffer
| 0x0802d3b8 11eb4000 adds.w r0, r1, r0, lsl 1
| 0x0802d3bc c08b ldrh r0, [r0, 0x1e]
| 0x0802d3be dff8c01a ldr.w r1, [0x0802de86] ; [0x802de84:4]=0xf8dfb580
| 0x0802d3c2 0880 strh r0, [r1]
| 0x0802d3c4 dff8b80a ldr.w r0, [func_2de84] ; [0x802de84:4]=0xf8dfb580
| 0x0802d3c8 0088 ldrh r0, [r0]
| 0x0802d3ca 0028 cmp r0, 0
| ,=< 0x0802d3cc 06d0 beq 0x802d3dc
| | 0x0802d3ce dff8b00a ldr.w r0, [0x0802de86] ; [0x802de84:4]=0xf8dfb580
| | 0x0802d3d2 0088 ldrh r0, [r0]
| | 0x0802d3d4 40f2e931 movw r1, 0x3e9 ; 1001
| | 0x0802d3d8 8842 cmp r0, r1
| ,==< 0x0802d3da 0cd3 blo 0x802d3f6
| |`-> 0x0802d3dc 5748 ldr r0, [0x0802d53c] ; [0x802d53c:4]=0x2001de78 struct_channel_info2
| | 0x0802d3de 0078 ldrb r0, [r0]
| | 0x0802d3e0 50f00300 orrs r0, r0, 3
| | 0x0802d3e4 5549 ldr r1, [0x0802d53c] ; [0x802d53c:4]=0x2001de78 struct_channel_info2
| | 0x0802d3e6 0870 strb r0, [r1]
| | 0x0802d3e8 5348 ldr r0, [0x0802d538] ; [0x802d538:4]=0x2001deb8 current_channel_info
| | 0x0802d3ea 0078 ldrb r0, [r0]
| | 0x0802d3ec 50f00300 orrs r0, r0, 3
| | 0x0802d3f0 5149 ldr r1, [0x0802d538] ; [0x802d538:4]=0x2001deb8 current_channel_info
| | 0x0802d3f2 0870 strb r0, [r1]
| |,=< 0x0802d3f4 04e0 b 0x802d400
| `--> 0x0802d3f6 dff8880a ldr.w r0, [0x0802de86] ; [0x802de84:4]=0xf8dfb580
| | 0x0802d3fa 0088 ldrh r0, [r0]
| | 0x0802d3fc f5f753fb bl channel_info_read_spi_init
| `-> 0x0802d400 4e48 ldr r0, [0x0802d53c] ; [0x802d53c:4]=0x2001de78 struct_channel_info2
| 0x0802d402 0078 ldrb r0, [r0]
| 0x0802d404 10f00300 ands r0, r0, 3
| 0x0802d408 0328 cmp r0, 3 ; 3
| ,=< 0x0802d40a 04d1 bne 0x802d416
| | 0x0802d40c def7bcfe bl md380_create_main_menu_entry
| | 0x0802d410 00f0b4f8 bl display_unprog_screen
| ,==< 0x0802d414 7ee0 b 0x802d514
| |`-> 0x0802d416 4648 ldr r0, [0x0802d532] ; [0x802d530:4]=0x2001e8a8 beep_code_send
| | 0x0802d418 0021 movs r1, 0
| | 0x0802d41a 0170 strb r1, [r0]
| | 0x0802d41c 4449 ldr r1, [0x0802d530] ; [0x802d530:4]=0x2001e8a8 beep_code_send
| | 0x0802d41e 4548 ldr r0, [0x0802d536] ; [0x802d534:4]=0x2001e67c event2_mbox_poi_beep
| | 0x0802d420 0068 ldr r0, [r0]
| | 0x0802d422 03f0bbfe bl md380_OSMboxPost
| | 0x0802d426 3f48 ldr r0, [0x0802d526] ; [0x802d524:4]=0x2001e892 gui_opmode3
| | 0x0802d428 0021 movs r1, 0
| | 0x0802d42a 0170 strb r1, [r0]
| | 0x0802d42c 4248 ldr r0, [0x0802d538] ; [0x802d538:4]=0x2001deb8 current_channel_info
| | 0x0802d42e c07a ldrb r0, [r0, 0xb]
| | 0x0802d430 401e subs r0, r0, 1
| | 0x0802d432 c0b2 uxtb r0, r0
| | 0x0802d434 fa28 cmp r0, 0xfa ; 250
| |,=< 0x0802d436 03d2 bhs 0x802d440
| || 0x0802d438 3f48 ldr r0, [0x0802d538] ; [0x802d538:4]=0x2001deb8 current_channel_info
| || 0x0802d43a c07a ldrb r0, [r0, 0xb]
| || 0x0802d43c f5f726fb bl func_22a8c
| |`-> 0x0802d440 3d48 ldr r0, [0x0802d538] ; [0x802d538:4]=0x2001deb8 current_channel_info
| | 0x0802d442 807a ldrb r0, [r0, 0xa]
| | 0x0802d444 401e subs r0, r0, 1
| | 0x0802d446 c0b2 uxtb r0, r0
| | 0x0802d448 2028 cmp r0, 0x20 ; 32
| |,=< 0x0802d44a 03d2 bhs 0x802d454
| || 0x0802d44c 3b48 ldr r0, [0x0802d53c] ; [0x802d53c:4]=0x2001de78 struct_channel_info2
| || 0x0802d44e 807a ldrb r0, [r0, 0xa]
| || 0x0802d450 f5f787fa bl func_22962_spiflash_rd_5
| |`-> 0x0802d454 3848 ldr r0, [0x0802d538] ; [0x802d538:4]=0x2001deb8 current_channel_info
| | 0x0802d456 0078 ldrb r0, [r0]
| | 0x0802d458 0006 lsls r0, r0, 0x18
| |,=< 0x0802d45a 0cd5 bpl 0x802d476
| || 0x0802d45c 3748 ldr r0, [0x0802d53c] ; [0x802d53c:4]=0x2001de78 struct_channel_info2
| || 0x0802d45e 0078 ldrb r0, [r0]
| || 0x0802d460 10f00300 ands r0, r0, 3
| || 0x0802d464 0228 cmp r0, 2 ; 2
| ,===< 0x0802d466 06d1 bne 0x802d476
| ||| 0x0802d468 2c48 ldr r0, [0x0802d51c] ; [0x802d51c:4]=0x2001e604 q_status_4
| ||| 0x0802d46a 0078 ldrb r0, [r0]
| ||| 0x0802d46c 50f00100 orrs r0, r0, 1
| ||| 0x0802d470 2a49 ldr r1, [0x0802d51c] ; [0x802d51c:4]=0x2001e604 q_status_4
| ||| 0x0802d472 0870 strb r0, [r1]
| ,====< 0x0802d474 05e0 b 0x802d482
| |`-`-> 0x0802d476 2948 ldr r0, [0x0802d51e] ; [0x802d51c:4]=0x2001e604 q_status_4
| | | 0x0802d478 0078 ldrb r0, [r0]
| | | 0x0802d47a 10f0fe00 ands r0, r0, 0xfe
| | | 0x0802d47e 2749 ldr r1, [0x0802d51e] ; [0x802d51c:4]=0x2001e604 q_status_4
| | | 0x0802d480 0870 strb r0, [r1]
| `----> 0x0802d482 2548 ldr r0, [0x0802d51a] ; [0x802d518:4]=0x2001e638
| | 0x0802d484 0021 movs r1, 0
| | 0x0802d486 0160 str r1, [r0]
| | 0x0802d488 2448 ldr r0, [0x0802d51c] ; [0x802d51c:4]=0x2001e604 q_status_4
| | 0x0802d48a 0078 ldrb r0, [r0]
| | 0x0802d48c 10f0fd00 ands r0, r0, 0xfd
| | 0x0802d490 2249 ldr r1, [0x0802d51c] ; [0x802d51c:4]=0x2001e604 q_status_4
| | 0x0802d492 0870 strb r0, [r1]
| | 0x0802d494 dff89c0a ldr.w r0, [0x0802df38] ; [0x802df38:4]=0x2001e65c event1_mbox_poi_radio
| | 0x0802d498 0321 movs r1, 3 ; 3
| | 0x0802d49a 0170 strb r1, [r0]
| | 0x0802d49c dff8941a ldr.w r1, [0x0802df38] ; [0x802df38:4]=0x2001e65c event1_mbox_poi_radio
| | 0x0802d4a0 dff8940a ldr.w r0, [0x0802df3c] ; [0x802df3c:4]=0x2001e893
| | 0x0802d4a4 0068 ldr r0, [r0]
| | 0x0802d4a6 03f079fe bl md380_OSMboxPost
| | 0x0802d4aa 04f037fd bl func_31f1c
| | 0x0802d4ae dff88c0a ldr.w r0, [0x0802df42] ; [0x802df40:4]=0x2001e894
| | 0x0802d4b2 0421 movs r1, 4 ; 4
| | 0x0802d4b4 0170 strb r1, [r0]
| | 0x0802d4b6 1a48 ldr r0, [0x0802d522] ; [0x802d520:4]=0x2001e5d0 msg_timer_500
| | 0x0802d4b8 4ff4fa71 mov.w r1, 0x1f4 ; 500
| | 0x0802d4bc 0160 str r1, [r0]
| | 0x0802d4be dff8800a ldr.w r0, [0x0802df46] ; [0x802df44:4]=0x2001e895 msg_sms_flags_shifted
| | 0x0802d4c2 0121 movs r1, 1 ; 1
| | 0x0802d4c4 0170 strb r1, [r0]
| | 0x0802d4c6 dff87c0a ldr.w r0, [0x0802df4a] ; [0x802df48:4]=0x2001e5f0 radio_status_1
| | 0x0802d4ca 0021 movs r1, 0
| | 0x0802d4cc 0170 strb r1, [r0]
| | 0x0802d4ce dff8780a ldr.w r0, [0x0802df4e] ; [0x802df4c:4]=0x2001e931
| | 0x0802d4d2 4078 ldrb r0, [r0, 1]
| | 0x0802d4d4 10f0fe00 ands r0, r0, 0xfe
| | 0x0802d4d8 dff86c1a ldr.w r1, [0x0802df4c] ; [0x802df4c:4]=0x2001e931
| | 0x0802d4dc 4870 strb r0, [r1, 1]
| | 0x0802d4de dff8680a ldr.w r0, [0x0802df4e] ; [0x802df4c:4]=0x2001e931
| | 0x0802d4e2 4078 ldrb r0, [r0, 1]
| | 0x0802d4e4 50f00200 orrs r0, r0, 2
| | 0x0802d4e8 dff85c1a ldr.w r1, [0x0802df4c] ; [0x802df4c:4]=0x2001e931
| | 0x0802d4ec 4870 strb r0, [r1, 1]
| | 0x0802d4ee 1348 ldr r0, [0x0802d53e] ; [0x802d53c:4]=0x2001de78 struct_channel_info2
| | 0x0802d4f0 0078 ldrb r0, [r0]
| | 0x0802d4f2 c0f30010 ubfx r0, r0, 4, 1
| | 0x0802d4f6 c007 lsls r0, r0, 0x1f
| |,=< 0x0802d4f8 08d5 bpl 0x802d50c
| || 0x0802d4fa 0f48 ldr r0, [0x0802d53a] ; [0x802d538:4]=0x2001deb8 current_channel_info
| || 0x0802d4fc c07a ldrb r0, [r0, 0xb]
| || 0x0802d4fe 401e subs r0, r0, 1
| || 0x0802d500 c0b2 uxtb r0, r0
| || 0x0802d502 fa28 cmp r0, 0xfa ; 250
| ,===< 0x0802d504 02d2 bhs 0x802d50c
| ||| 0x0802d506 0af077ff bl func_383f8
| ,====< 0x0802d50a 03e0 b 0x802d514
| |`-`-> 0x0802d50c def73cfe bl md380_create_main_menu_entry
| | | 0x0802d510 00f072f9 bl display_idle_screen
\ `-`--> 0x0802d514 01bd pop {r0, pc}
/ (fcn) display_unprog_screen 608
| Caller: some_init return_to_mode_1_from10
| display_unprog_screen ();
| 0x0802d57c 10b5 push {r4, lr}
| 0x0802d57e 88b0 sub sp, 0x20
| 0x0802d580 e0f794fd bl F_786
| 0x0802d584 dff8c409 ldr.w r0, [0x0802df50] ; [0x802df50:4]=0x2001e94d gui_opmode1
| 0x0802d588 0021 movs r1, 0
| 0x0802d58a 0170 strb r1, [r0]
| 0x0802d58c 9348 ldr r0, [0x0802d7dc] ; [0x802d7dc:4]=0x2001e905
| 0x0802d58e 0021 movs r1, 0
| 0x0802d590 0170 strb r1, [r0]
| 0x0802d592 9448 ldr r0, [0x0802d7e6] ; [0x802d7e4:4]=0x2001e908
| 0x0802d594 0021 movs r1, 0
| 0x0802d596 0170 strb r1, [r0]
| 0x0802d598 0320 movs r0, 3 ; 3
| 0x0802d59a 12f095f8 bl func_3f6c8
| 0x0802d59e 9048 ldr r0, [0x0802d7e2] ; [0x802d7e0:4]=0x2001e81c not_the_volume_knob
| 0x0802d5a0 b0f90000 ldrsh.w r0, [r0]
| 0x0802d5a4 eff716fa bl gfx_1c9d4
| 0x0802d5a8 8d48 ldr r0, [0x0802d7e0] ; [0x802d7e0:4]=0x2001e81c not_the_volume_knob
| 0x0802d5aa 0021 movs r1, 0
| 0x0802d5ac 0180 strh r1, [r0]
| 0x0802d5ae dff8a009 ldr.w r0, [0x0802df56] ; [0x802df54:4]=0x80cfb78 unprogrammed_str
| 0x0802d5b2 9c21 movs r1, 0x9c ; 156
| 0x0802d5b4 0170 strb r1, [r0]
| 0x0802d5b6 01a8 add r0, sp, 4
| 0x0802d5b8 dff89819 ldr.w r1, [0x0802df58] ; [0x802df58:4]=0x2001e8a8 beep_code_send
| 0x0802d5bc 1c22 movs r2, 0x1c ; 28
| 0x0802d5be 05f045fb bl func_32c4c
| 0x0802d5c2 dff89409 ldr.w r0, [0x0802df5e] ; [0x802df5c:4]=0x2001e67c event2_mbox_poi_beep
| 0x0802d5c6 0f21 movs r1, 0xf ; 15
| 0x0802d5c8 0170 strb r1, [r0]
| 0x0802d5ca dff88c19 ldr.w r1, [0x0802df5e] ; [0x802df5c:4]=0x2001e67c event2_mbox_poi_beep
| 0x0802d5ce dff88c09 ldr.w r0, [0x0802df62] ; [0x802df60:4]=0x2001e892 gui_opmode3
| 0x0802d5d2 0068 ldr r0, [r0]
| 0x0802d5d4 03f0e2fd bl md380_OSMboxPost
| 0x0802d5d8 dff88409 ldr.w r0, [0x0802df64] ; [0x802df64:4]=0x80cf780 gfx_font_norm
| 0x0802d5dc 0321 movs r1, 3 ; 3
| 0x0802d5de 0170 strb r1, [r0]
| 0x0802d5e0 04f055fc bl func_31e8e
| 0x0802d5e4 dff85409 ldr.w r0, [0x0802df40] ; [0x802df40:4]=0x2001e894
| 0x0802d5e8 0021 movs r1, 0
| 0x0802d5ea 0170 strb r1, [r0]
| 0x0802d5ec 7ff07f40 mvns r0, 0xff000000
| 0x0802d5f0 eff7befe bl gfx_set_fg_color
| 0x0802d5f4 0f23 movs r3, 0xf ; 15
| 0x0802d5f6 9f22 movs r2, 0x9f ; 159
| 0x0802d5f8 0021 movs r1, 0
| 0x0802d5fa 0020 movs r0, 0
| 0x0802d5fc f0f746f9 bl gfx_blockfill
| 0x0802d600 f4f748f8 bl draw_statusline_more
| 0x0802d604 dff8e804 ldr.w r0, [0x0802daf4] ; [0x802daf4:4]=0x2001e8e0
| 0x0802d608 eff7b2fe bl gfx_set_fg_color
| 0x0802d60c dff85409 ldr.w r0, [0x0802df68] ; [0x802df68:4]=0x2001e6ec
| 0x0802d610 f4f730f9 bl gfx_select_font
| 0x0802d614 7e23 movs r3, 0x7e ; '~' ; 126
| 0x0802d616 0922 movs r2, 9 ; 9
| 0x0802d618 6e21 movs r1, 0x6e ; 'n' ; 110
| 0x0802d61a 0120 movs r0, 1 ; 1
| 0x0802d61c f0f736f9 bl gfx_blockfill
| 0x0802d620 7e23 movs r3, 0x7e ; '~' ; 126
| 0x0802d622 9e22 movs r2, 0x9e ; 158
| 0x0802d624 6e21 movs r1, 0x6e ; 'n' ; 110
| 0x0802d626 2a20 movs r0, 0x2a ; '*' ; 42
| 0x0802d628 f0f730f9 bl gfx_blockfill
| 0x0802d62c 7e23 movs r3, 0x7e ; '~' ; 126
| 0x0802d62e 2922 movs r2, 0x29 ; ')' ; 41
| 0x0802d630 7e21 movs r1, 0x7e ; '~' ; 126
| 0x0802d632 0120 movs r0, 1 ; 1
| 0x0802d634 f0f72af9 bl gfx_blockfill
| 0x0802d638 7ff07f40 mvns r0, 0xff000000
| 0x0802d63c eff798fe bl gfx_set_fg_color
| 0x0802d640 dff8ac04 ldr.w r0, [0x0802daf4] ; [0x802daf4:4]=0x2001e8e0
| 0x0802d644 eff790fe bl gfx_set_bg_color
| 0x0802d648 9d23 movs r3, 0x9d ; 157
| 0x0802d64a 6e22 movs r2, 0x6e ; 'n' ; 110
| 0x0802d64c 0a21 movs r1, 0xa ; 10
| 0x0802d64e dff81809 ldr.w r0, [0x0802df6e] ; [0x802df6c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0802d652 0068 ldr r0, [r0]
| 0x0802d654 dff81449 ldr.w r4, [0x0802df70] ; [0x802df70:4]=0x80f8538
| 0x0802d658 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x0802d65c d0f81c03 ldr.w r0, [r0, 0x31c]
| 0x0802d660 f0f752fb bl gfx_drawtext2
| 0x0802d664 0020 movs r0, 0
| 0x0802d666 eff783fe bl gfx_set_fg_color
| 0x0802d66a 7ff07f40 mvns r0, 0xff000000
| 0x0802d66e eff77bfe bl gfx_set_bg_color
| 0x0802d672 3922 movs r2, 0x39 ; '9' ; 57
| 0x0802d674 0221 movs r1, 2 ; 2
| 0x0802d676 dff8f808 ldr.w r0, [0x0802df76] ; [0x802df74:4]=0xff8032
| 0x0802d67a f6f7c0f8 bl gfx_drawbmp
| 0x0802d67e dff8f408 ldr.w r0, [0x0802df7a] ; [0x802df78:4]=0x2001e90d
| 0x0802d682 eff775fe bl gfx_set_fg_color
| 0x0802d686 1f23 movs r3, 0x1f ; 31
| 0x0802d688 9d22 movs r2, 0x9d ; 157
| 0x0802d68a 1021 movs r1, 0x10 ; 16
| 0x0802d68c 0220 movs r0, 2 ; 2
| 0x0802d68e f0f7fdf8 bl gfx_blockfill
| 0x0802d692 3923 movs r3, 0x39 ; '9' ; 57
| 0x0802d694 2c22 movs r2, 0x2c ; ',' ; 44
| 0x0802d696 3521 movs r1, 0x35 ; '5' ; 53
| 0x0802d698 0220 movs r0, 2 ; 2
| 0x0802d69a f0f7f7f8 bl gfx_blockfill
| 0x0802d69e 3023 movs r3, 0x30 ; '0' ; 48
| 0x0802d6a0 1822 movs r2, 0x18 ; 24
| 0x0802d6a2 2021 movs r1, 0x20 ; 32
| 0x0802d6a4 0220 movs r0, 2 ; 2
| 0x0802d6a6 f0f7f1f8 bl gfx_blockfill
| 0x0802d6aa 3023 movs r3, 0x30 ; '0' ; 48
| 0x0802d6ac 9d22 movs r2, 0x9d ; 157
| 0x0802d6ae 2021 movs r1, 0x20 ; 32
| 0x0802d6b0 9120 movs r0, 0x91 ; 145
| 0x0802d6b2 f0f7ebf8 bl gfx_blockfill
| 0x0802d6b6 3923 movs r3, 0x39 ; '9' ; 57
| 0x0802d6b8 9d22 movs r2, 0x9d ; 157
| 0x0802d6ba 3021 movs r1, 0x30 ; '0' ; 48
| 0x0802d6bc 0220 movs r0, 2 ; 2
| 0x0802d6be f0f7e5f8 bl gfx_blockfill
| 0x0802d6c2 4a23 movs r3, 0x4a ; 'J' ; 74
| 0x0802d6c4 9d22 movs r2, 0x9d ; 157
| 0x0802d6c6 3a21 movs r1, 0x3a ; ':' ; 58
| 0x0802d6c8 2220 movs r0, 0x22 ; '"' ; 34
| 0x0802d6ca f0f7dff8 bl gfx_blockfill
| 0x0802d6ce dff8a408 ldr.w r0, [0x0802df7a] ; [0x802df78:4]=0x2001e90d
| 0x0802d6d2 eff749fe bl gfx_set_bg_color
| 0x0802d6d6 0020 movs r0, 0
| 0x0802d6d8 eff74afe bl gfx_set_fg_color
| 0x0802d6dc dff88408 ldr.w r0, [0x0802df68] ; [0x802df68:4]=0x2001e6ec
| 0x0802d6e0 f4f7c8f8 bl gfx_select_font
| 0x0802d6e4 0620 movs r0, 6 ; 6
| 0x0802d6e6 0090 str r0, [sp]
| 0x0802d6e8 9d23 movs r3, 0x9d ; 157
| 0x0802d6ea 4b22 movs r2, 0x4b ; 'K' ; 75
| 0x0802d6ec 2221 movs r1, 0x22 ; '"' ; 34
| 0x0802d6ee dff84008 ldr.w r0, [0x0802df36] ; [0x802df34:4]=0x2001e8aa event1_buffer
| 0x0802d6f2 f0f712fb bl gfx_drawtext4
| 0x0802d6f6 9d23 movs r3, 0x9d ; 157
| 0x0802d6f8 4b22 movs r2, 0x4b ; 'K' ; 75
| 0x0802d6fa 6921 movs r1, 0x69 ; 'i' ; 105
| 0x0802d6fc dff86808 ldr.w r0, [0x0802df6c] ; [0x802df6c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0802d700 0068 ldr r0, [r0]
| 0x0802d702 dff86848 ldr.w r4, [0x0802df72] ; [0x802df70:4]=0x80f8538
| 0x0802d706 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x0802d70a d0f84403 ldr.w r0, [r0, 0x344]
| 0x0802d70e f0f7fbfa bl gfx_drawtext2
| 0x0802d712 dff81808 ldr.w r0, [0x0802df32] ; [0x802df30:4]=0x2001cddc zone_name
| 0x0802d716 0078 ldrb r0, [r0]
| 0x0802d718 0a28 cmp r0, 0xa ; 10
| ,=< 0x0802d71a 09d2 bhs 0x802d730
| | 0x0802d71c 4b22 movs r2, 0x4b ; 'K' ; 75
| | 0x0802d71e 8c21 movs r1, 0x8c ; 140
| | 0x0802d720 dff80808 ldr.w r0, [0x0802df30] ; [0x802df30:4]=0x2001cddc zone_name
| | 0x0802d724 0078 ldrb r0, [r0]
| | 0x0802d726 3030 adds r0, 0x30
| | 0x0802d728 80b2 uxth r0, r0
| | 0x0802d72a f4f709f9 bl gfx_drawchar_pos
| ,==< 0x0802d72e 0de0 b 0x802d74c
| |`-> 0x0802d730 4b22 movs r2, 0x4b ; 'K' ; 75
| | 0x0802d732 8b21 movs r1, 0x8b ; 139
| | 0x0802d734 3120 movs r0, 0x31 ; '1' ; 49
| | 0x0802d736 f4f703f9 bl gfx_drawchar_pos
| | 0x0802d73a 4b22 movs r2, 0x4b ; 'K' ; 75
| | 0x0802d73c 9221 movs r1, 0x92 ; 146
| | 0x0802d73e dff8ec07 ldr.w r0, [0x0802df32] ; [0x802df30:4]=0x2001cddc zone_name
| | 0x0802d742 0078 ldrb r0, [r0]
| | 0x0802d744 2630 adds r0, 0x26
| | 0x0802d746 80b2 uxth r0, r0
| | 0x0802d748 f4f7faf8 bl gfx_drawchar_pos
| `--> 0x0802d74c dff82408 ldr.w r0, [0x0802df78] ; [0x802df78:4]=0x2001e90d
| 0x0802d750 eff70efe bl gfx_set_fg_color
| 0x0802d754 5f23 movs r3, 0x5f ; '_' ; 95
| 0x0802d756 9d22 movs r2, 0x9d ; 157
| 0x0802d758 5b21 movs r1, 0x5b ; '[' ; 91
| 0x0802d75a 0220 movs r0, 2 ; 2
| 0x0802d75c f0f796f8 bl gfx_blockfill
| 0x0802d760 6c23 movs r3, 0x6c ; 'l' ; 108
| 0x0802d762 0922 movs r2, 9 ; 9
| 0x0802d764 6021 movs r1, 0x60 ; '`' ; 96
| 0x0802d766 0220 movs r0, 2 ; 2
| 0x0802d768 f0f790f8 bl gfx_blockfill
| 0x0802d76c e0f7d5fb bl draw_datetime_row
| 0x0802d770 dff80008 ldr.w r0, [0x0802df78] ; [0x802df78:4]=0x2001e90d
| 0x0802d774 eff7fcfd bl gfx_set_fg_color
| 0x0802d778 6d23 movs r3, 0x6d ; 'm' ; 109
| 0x0802d77a 9d22 movs r2, 0x9d ; 157
| 0x0802d77c 6d21 movs r1, 0x6d ; 'm' ; 109
| 0x0802d77e 0220 movs r0, 2 ; 2
| 0x0802d780 f0f784f8 bl gfx_blockfill
| 0x0802d784 7ff07f40 mvns r0, 0xff000000
| 0x0802d788 eff7f2fd bl gfx_set_fg_color
| 0x0802d78c 6d23 movs r3, 0x6d ; 'm' ; 109
| 0x0802d78e 0122 movs r2, 1 ; 1
| 0x0802d790 1021 movs r1, 0x10 ; 16
| 0x0802d792 0020 movs r0, 0
| 0x0802d794 f0f77af8 bl gfx_blockfill
| 0x0802d798 6d23 movs r3, 0x6d ; 'm' ; 109
| 0x0802d79a 9f22 movs r2, 0x9f ; 159
| 0x0802d79c 1021 movs r1, 0x10 ; 16
| 0x0802d79e 9e20 movs r0, 0x9e ; 158
| 0x0802d7a0 f0f774f8 bl gfx_blockfill
| 0x0802d7a4 6d23 movs r3, 0x6d ; 'm' ; 109
| 0x0802d7a6 9f22 movs r2, 0x9f ; 159
| 0x0802d7a8 6c21 movs r1, 0x6c ; 'l' ; 108
| 0x0802d7aa 0020 movs r0, 0
| 0x0802d7ac f0f76ef8 bl gfx_blockfill
| 0x0802d7b0 0020 movs r0, 0
| 0x0802d7b2 eff7ddfd bl gfx_set_fg_color
| 0x0802d7b6 dff8bc07 ldr.w r0, [0x0802df7a] ; [0x802df78:4]=0x2001e90d
| 0x0802d7ba eff7d5fd bl gfx_set_bg_color
| 0x0802d7be 1223 movs r3, 0x12 ; 18
| 0x0802d7c0 2022 movs r2, 0x20 ; 32
| 0x0802d7c2 1921 movs r1, 0x19 ; 25
| 0x0802d7c4 01a8 add r0, sp, 4
| 0x0802d7c6 f9f7afff bl gfx_drawtext6
| 0x0802d7ca 0020 movs r0, 0
| 0x0802d7cc eff7d0fd bl gfx_set_fg_color
| 0x0802d7d0 7ff07f40 mvns r0, 0xff000000
| 0x0802d7d4 eff7c8fd bl gfx_set_bg_color
| 0x0802d7d8 08b0 add sp, 0x20
\ 0x0802d7da 10bd pop {r4, pc}
/ (fcn) display_idle_screen 740
| Caller: some_init scr_mode_stable return_to_mode_1_from10
| display_idle_screen ();
| 0x0802d7f8 10b5 push {r4, lr}
| 0x0802d7fa 82b0 sub sp, 8
| 0x0802d7fc e0f756fc bl F_786
| 0x0802d800 dff87407 ldr.w r0, [0x0802df7c] ; [0x802df7c:4]=0x2001e905
| 0x0802d804 0021 movs r1, 0
| 0x0802d806 0170 strb r1, [r0]
| 0x0802d808 dff84007 ldr.w r0, [0x0802df50] ; [0x802df50:4]=0x2001e94d gui_opmode1
| 0x0802d80c 0021 movs r1, 0
| 0x0802d80e 0170 strb r1, [r0]
| 0x0802d810 dff86807 ldr.w r0, [0x0802df80] ; [0x802df80:4]=0x2001e908
| 0x0802d814 0021 movs r1, 0
| 0x0802d816 0170 strb r1, [r0]
| 0x0802d818 dff86407 ldr.w r0, [0x0802df84] ; [0x802df84:4]=0x2001e90b
| 0x0802d81c 0021 movs r1, 0
| 0x0802d81e 0170 strb r1, [r0]
| 0x0802d820 fef7c1ff bl func_2c7a6
| 0x0802d824 dff85c07 ldr.w r0, [0x0802df88] ; [0x802df88:4]=0x2001e81c not_the_volume_knob
| 0x0802d828 0021 movs r1, 0
| 0x0802d82a 0170 strb r1, [r0]
| 0x0802d82c 0320 movs r0, 3 ; 3
| 0x0802d82e 11f04bff bl func_3f6c8
| 0x0802d832 dff85407 ldr.w r0, [0x0802df8e] ; [0x802df8c:4]=0x2001e94c gui_opmode1_prev
| 0x0802d836 b0f90000 ldrsh.w r0, [r0]
| 0x0802d83a eff7cbf8 bl gfx_1c9d4
| 0x0802d83e dff84807 ldr.w r0, [0x0802df8e] ; [0x802df8c:4]=0x2001e94c gui_opmode1_prev
| 0x0802d842 0021 movs r1, 0
| 0x0802d844 0180 strh r1, [r0]
| 0x0802d846 dff80807 ldr.w r0, [0x0802df56] ; [0x802df54:4]=0x80cfb78 unprogrammed_str
| 0x0802d84a 9c21 movs r1, 0x9c ; 156
| 0x0802d84c 0170 strb r1, [r0]
| 0x0802d84e dff83c07 ldr.w r0, [0x0802df92] ; [0x802df90:4]=0x2001e94b gui_opmode2
| 0x0802d852 1c21 movs r1, 0x1c ; 28
| 0x0802d854 0170 strb r1, [r0]
| 0x0802d856 dff83807 ldr.w r0, [0x0802df96] ; [0x802df94:4]=0x2001e844
| 0x0802d85a 0121 movs r1, 1 ; 1
| 0x0802d85c 0170 strb r1, [r0]
| 0x0802d85e dff83407 ldr.w r0, [0x0802df9a] ; [0x802df98:4]=0x2001e8ed
| 0x0802d862 0a21 movs r1, 0xa ; 10
| 0x0802d864 0180 strh r1, [r0]
| 0x0802d866 dff8e006 ldr.w r0, [0x0802df4e] ; [0x802df4c:4]=0x2001e931
| 0x0802d86a 4078 ldrb r0, [r0, 1]
| 0x0802d86c c0f34000 ubfx r0, r0, 1, 1
| 0x0802d870 c007 lsls r0, r0, 0x1f
| ,=< 0x0802d872 03d5 bpl 0x802d87c
| | 0x0802d874 dff82007 ldr.w r0, [0x0802df9c] ; [0x802df9c:4]=0x2001e882
| | 0x0802d878 0021 movs r1, 0
| | 0x0802d87a 0170 strb r1, [r0]
| `-> 0x0802d87c f8f70cfd bl func_26298
| 0x0802d880 dff81817 ldr.w r1, [0x0802dfa0] ; [0x802dfa0:4]=0x2001e95a
| 0x0802d884 0870 strb r0, [r1]
| 0x0802d886 f3f705ff bl draw_statusline_more
| 0x0802d88a dff8d806 ldr.w r0, [0x0802df6a] ; [0x802df68:4]=0x2001e6ec
| 0x0802d88e f3f7f1ff bl gfx_select_font
| 0x0802d892 9748 ldr r0, [0x0802daf2] ; [0x802daf0:4]=0xff1414
| 0x0802d894 eff768fd bl gfx_set_bg_color
| 0x0802d898 9548 ldr r0, [0x0802daf0] ; [0x802daf0:4]=0xff1414
| 0x0802d89a eff769fd bl gfx_set_fg_color
| 0x0802d89e 7e23 movs r3, 0x7e ; '~' ; 126
| 0x0802d8a0 0922 movs r2, 9 ; 9
| 0x0802d8a2 6e21 movs r1, 0x6e ; 'n' ; 110
| 0x0802d8a4 0120 movs r0, 1 ; 1
| 0x0802d8a6 eff7f1ff bl gfx_blockfill
| 0x0802d8aa 7e23 movs r3, 0x7e ; '~' ; 126
| 0x0802d8ac 9e22 movs r2, 0x9e ; 158
| 0x0802d8ae 6e21 movs r1, 0x6e ; 'n' ; 110
| 0x0802d8b0 2a20 movs r0, 0x2a ; '*' ; 42
| 0x0802d8b2 eff7ebff bl gfx_blockfill
| 0x0802d8b6 7e23 movs r3, 0x7e ; '~' ; 126
| 0x0802d8b8 2922 movs r2, 0x29 ; ')' ; 41
| 0x0802d8ba 7e21 movs r1, 0x7e ; '~' ; 126
| 0x0802d8bc 0120 movs r0, 1 ; 1
| 0x0802d8be eff7e5ff bl gfx_blockfill
| 0x0802d8c2 7ff07f40 mvns r0, 0xff000000
| 0x0802d8c6 eff753fd bl gfx_set_fg_color
| 0x0802d8ca 9d23 movs r3, 0x9d ; 157
| 0x0802d8cc 6e22 movs r2, 0x6e ; 'n' ; 110
| 0x0802d8ce 0a21 movs r1, 0xa ; 10
| 0x0802d8d0 dff89406 ldr.w r0, [0x0802df6c] ; [0x802df6c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0802d8d4 0068 ldr r0, [r0]
| 0x0802d8d6 dff89446 ldr.w r4, [0x0802df72] ; [0x802df70:4]=0x80f8538
| 0x0802d8da 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x0802d8de d0f81c03 ldr.w r0, [r0, 0x31c]
| 0x0802d8e2 f0f711fa bl gfx_drawtext2
| 0x0802d8e6 0020 movs r0, 0
| 0x0802d8e8 eff742fd bl gfx_set_fg_color
| 0x0802d8ec dff88406 ldr.w r0, [0x0802df78] ; [0x802df78:4]=0x2001e90d
| 0x0802d8f0 eff73afd bl gfx_set_bg_color
| 0x0802d8f4 dff87c06 ldr.w r0, [0x0802df78] ; [0x802df78:4]=0x2001e90d
| 0x0802d8f8 eff73afd bl gfx_set_fg_color
| 0x0802d8fc 2123 movs r3, 0x21 ; '!' ; 33
| 0x0802d8fe 9d22 movs r2, 0x9d ; 157
| 0x0802d900 1021 movs r1, 0x10 ; 16
| 0x0802d902 2d20 movs r0, 0x2d ; '-' ; 45
| 0x0802d904 eff7c2ff bl gfx_blockfill
| 0x0802d908 0020 movs r0, 0
| 0x0802d90a eff731fd bl gfx_set_fg_color
| 0x0802d90e dff89006 ldr.w r0, [0x0802dfa6] ; [0x802dfa4:4]=0x2001e95d
| 0x0802d912 0021 movs r1, 0
| 0x0802d914 0170 strb r1, [r0]
| 0x0802d916 dff88c06 ldr.w r0, [0x0802dfaa] ; [0x802dfa8:4]=0x2001deb8 current_channel_info
| 0x0802d91a 0021 movs r1, 0
| 0x0802d91c 0170 strb r1, [r0]
| 0x0802d91e e0f70bfe bl draw_zone_channel
| 0x0802d922 dff88406 ldr.w r0, [0x0802dfae] ; [0x802dfac:4]=0x80f8524
| 0x0802d926 0078 ldrb r0, [r0]
| 0x0802d928 10f00300 ands r0, r0, 3
| 0x0802d92c 0128 cmp r0, 1 ; 1
| ,=< 0x0802d92e 06d1 bne 0x802d93e
| | 0x0802d930 1022 movs r2, 0x10 ; 16
| | 0x0802d932 0221 movs r1, 2 ; 2
| | 0x0802d934 dff87406 ldr.w r0, [0x0802dfb0] ; [0x802dfb0:4]=0x80f8560
| | 0x0802d938 f5f761ff bl gfx_drawbmp
| ,==< 0x0802d93c 1ae0 b 0x802d974
| |`-> 0x0802d93e dff86806 ldr.w r0, [0x0802dfae] ; [0x802dfac:4]=0x80f8524
| | 0x0802d942 0078 ldrb r0, [r0]
| | 0x0802d944 10f00300 ands r0, r0, 3
| | 0x0802d948 0228 cmp r0, 2 ; 2
| |,=< 0x0802d94a 06d1 bne 0x802d95a
| || 0x0802d94c 1022 movs r2, 0x10 ; 16
| || 0x0802d94e 0221 movs r1, 2 ; 2
| || 0x0802d950 dff85c06 ldr.w r0, [0x0802dfb4] ; [0x802dfb4:4]=0x809a4c0 gfx_font_small
| || 0x0802d954 f5f753ff bl gfx_drawbmp
| ,===< 0x0802d958 0ce0 b 0x802d974
| ||`-> 0x0802d95a dff81806 ldr.w r0, [0x0802df7a] ; [0x802df78:4]=0x2001e90d
| || 0x0802d95e eff707fd bl gfx_set_fg_color
| || 0x0802d962 5a23 movs r3, 0x5a ; 'Z' ; 90
| || 0x0802d964 2d22 movs r2, 0x2d ; '-' ; 45
| || 0x0802d966 1421 movs r1, 0x14 ; 20
| || 0x0802d968 0020 movs r0, 0
| || 0x0802d96a eff78fff bl gfx_blockfill
| || 0x0802d96e 0020 movs r0, 0
| || 0x0802d970 eff7fefc bl gfx_set_fg_color
| ``--> 0x0802d974 0020 movs r0, 0
| 0x0802d976 eff7fbfc bl gfx_set_fg_color
| 0x0802d97a dff8f805 ldr.w r0, [0x0802df7a] ; [0x802df78:4]=0x2001e90d
| 0x0802d97e eff7f3fc bl gfx_set_bg_color
| 0x0802d982 dff8f005 ldr.w r0, [0x0802df7a] ; [0x802df78:4]=0x2001e90d
| 0x0802d986 eff7f3fc bl gfx_set_fg_color
| 0x0802d98a 4a23 movs r3, 0x4a ; 'J' ; 74
| 0x0802d98c 9d22 movs r2, 0x9d ; 157
| 0x0802d98e 3221 movs r1, 0x32 ; '2' ; 50
| 0x0802d990 2220 movs r0, 0x22 ; '"' ; 34
| 0x0802d992 eff77bff bl gfx_blockfill
| 0x0802d996 3923 movs r3, 0x39 ; '9' ; 57
| 0x0802d998 2c22 movs r2, 0x2c ; ',' ; 44
| 0x0802d99a 3321 movs r1, 0x33 ; '3' ; 51
| 0x0802d99c 0220 movs r0, 2 ; 2
| 0x0802d99e eff775ff bl gfx_blockfill
| 0x0802d9a2 0020 movs r0, 0
| 0x0802d9a4 eff7e4fc bl gfx_set_fg_color
| 0x0802d9a8 dff8b805 ldr.w r0, [0x0802df68] ; [0x802df68:4]=0x2001e6ec
| 0x0802d9ac f3f762ff bl gfx_select_font
| 0x0802d9b0 dff87405 ldr.w r0, [0x0802df2c] ; [0x802df2c:4]=0x2001e8c1 channel_num
| 0x0802d9b4 c078 ldrb r0, [r0, 3]
| 0x0802d9b6 f5f7eaf9 bl spiflash_rd_something_zone_depending
| 0x0802d9ba 0620 movs r0, 6 ; 6
| 0x0802d9bc 0090 str r0, [sp]
| 0x0802d9be 6823 movs r3, 0x68 ; 'h' ; 104
| 0x0802d9c0 4b22 movs r2, 0x4b ; 'K' ; 75
| 0x0802d9c2 2221 movs r1, 0x22 ; '"' ; 34
| 0x0802d9c4 dff86805 ldr.w r0, [0x0802df34] ; [0x802df34:4]=0x2001e8aa event1_buffer
| 0x0802d9c8 f0f7a7f9 bl gfx_drawtext4
| 0x0802d9cc 9d23 movs r3, 0x9d ; 157
| 0x0802d9ce 4b22 movs r2, 0x4b ; 'K' ; 75
| 0x0802d9d0 6921 movs r1, 0x69 ; 'i' ; 105
| 0x0802d9d2 dff89405 ldr.w r0, [0x0802df6e] ; [0x802df6c:4]=0x20001704 md380_menu_ptr_to_80d032c
| 0x0802d9d6 0068 ldr r0, [r0]
| 0x0802d9d8 dff89045 ldr.w r4, [0x0802df70] ; [0x802df70:4]=0x80f8538
| 0x0802d9dc 14eb8000 adds.w r0, r4, r0, lsl 2
| 0x0802d9e0 d0f84403 ldr.w r0, [r0, 0x344]
| 0x0802d9e4 f0f790f9 bl gfx_drawtext2
| 0x0802d9e8 dff84005 ldr.w r0, [0x0802df30] ; [0x802df30:4]=0x2001cddc zone_name
| 0x0802d9ec 0078 ldrb r0, [r0]
| 0x0802d9ee 0a28 cmp r0, 0xa ; 10
| ,=< 0x0802d9f0 09d2 bhs 0x802da06
| | 0x0802d9f2 4b22 movs r2, 0x4b ; 'K' ; 75
| | 0x0802d9f4 8c21 movs r1, 0x8c ; 140
| | 0x0802d9f6 dff83405 ldr.w r0, [0x0802df32] ; [0x802df30:4]=0x2001cddc zone_name
| | 0x0802d9fa 0078 ldrb r0, [r0]
| | 0x0802d9fc 3030 adds r0, 0x30
| | 0x0802d9fe 80b2 uxth r0, r0
| | 0x0802da00 f3f79eff bl gfx_drawchar_pos
| ,==< 0x0802da04 0de0 b 0x802da22
| |`-> 0x0802da06 4b22 movs r2, 0x4b ; 'K' ; 75
| | 0x0802da08 8b21 movs r1, 0x8b ; 139
| | 0x0802da0a 3120 movs r0, 0x31 ; '1' ; 49
| | 0x0802da0c f3f798ff bl gfx_drawchar_pos
| | 0x0802da10 4b22 movs r2, 0x4b ; 'K' ; 75
| | 0x0802da12 9221 movs r1, 0x92 ; 146
| | 0x0802da14 dff81405 ldr.w r0, [0x0802df30] ; [0x802df30:4]=0x2001cddc zone_name
| | 0x0802da18 0078 ldrb r0, [r0]
| | 0x0802da1a 2630 adds r0, 0x26
| | 0x0802da1c 80b2 uxth r0, r0
| | 0x0802da1e f3f78fff bl gfx_drawchar_pos
| `--> 0x0802da22 dff85005 ldr.w r0, [0x0802df7a] ; [0x802df78:4]=0x2001e90d
| 0x0802da26 eff7a3fc bl gfx_set_fg_color
| 0x0802da2a 5f23 movs r3, 0x5f ; '_' ; 95
| 0x0802da2c 9d22 movs r2, 0x9d ; 157
| 0x0802da2e 5b21 movs r1, 0x5b ; '[' ; 91
| 0x0802da30 0220 movs r0, 2 ; 2
| 0x0802da32 eff72bff bl gfx_blockfill
| 0x0802da36 6c23 movs r3, 0x6c ; 'l' ; 108
| 0x0802da38 0922 movs r2, 9 ; 9
| 0x0802da3a 6021 movs r1, 0x60 ; '`' ; 96
| 0x0802da3c 0220 movs r0, 2 ; 2
| 0x0802da3e eff725ff bl gfx_blockfill
| 0x0802da42 e0f76afa bl draw_datetime_row
| 0x0802da46 dff82c05 ldr.w r0, [0x0802df7a] ; [0x802df78:4]=0x2001e90d
| 0x0802da4a eff791fc bl gfx_set_fg_color
| 0x0802da4e 6d23 movs r3, 0x6d ; 'm' ; 109
| 0x0802da50 9d22 movs r2, 0x9d ; 157
| 0x0802da52 6d21 movs r1, 0x6d ; 'm' ; 109
| 0x0802da54 0220 movs r0, 2 ; 2
| 0x0802da56 eff719ff bl gfx_blockfill
| 0x0802da5a 0020 movs r0, 0
| 0x0802da5c eff788fc bl gfx_set_fg_color
| 0x0802da60 3922 movs r2, 0x39 ; '9' ; 57
| 0x0802da62 0221 movs r1, 2 ; 2
| 0x0802da64 dff80805 ldr.w r0, [0x0802df74] ; [0x802df74:4]=0xff8032
| 0x0802da68 f5f7c9fe bl gfx_drawbmp
| 0x0802da6c dff84405 ldr.w r0, [0x0802dfb8] ; [0x802dfb8:4]=0x2001e8b8 some_state_var
| 0x0802da70 f3f700ff bl gfx_select_font
| 0x0802da74 7ff07f40 mvns r0, 0xff000000
| 0x0802da78 eff77afc bl gfx_set_fg_color
| 0x0802da7c 6d23 movs r3, 0x6d ; 'm' ; 109
| 0x0802da7e 0122 movs r2, 1 ; 1
| 0x0802da80 1021 movs r1, 0x10 ; 16
| 0x0802da82 0020 movs r0, 0
| 0x0802da84 eff702ff bl gfx_blockfill
| 0x0802da88 6d23 movs r3, 0x6d ; 'm' ; 109
| 0x0802da8a 9f22 movs r2, 0x9f ; 159
| 0x0802da8c 1021 movs r1, 0x10 ; 16
| 0x0802da8e 9e20 movs r0, 0x9e ; 158
| 0x0802da90 eff7fcfe bl gfx_blockfill
| 0x0802da94 6d23 movs r3, 0x6d ; 'm' ; 109
| 0x0802da96 9f22 movs r2, 0x9f ; 159
| 0x0802da98 6c21 movs r1, 0x6c ; 'l' ; 108
| 0x0802da9a 0020 movs r0, 0
| 0x0802da9c eff7f6fe bl gfx_blockfill
| 0x0802daa0 7f23 movs r3, 0x7f ; 127
| 0x0802daa2 0022 movs r2, 0
| 0x0802daa4 6e21 movs r1, 0x6e ; 'n' ; 110
| 0x0802daa6 0020 movs r0, 0
| 0x0802daa8 eff7f0fe bl gfx_blockfill
| 0x0802daac 7f23 movs r3, 0x7f ; 127
| 0x0802daae 9f22 movs r2, 0x9f ; 159
| 0x0802dab0 6e21 movs r1, 0x6e ; 'n' ; 110
| 0x0802dab2 9f20 movs r0, 0x9f ; 159
| 0x0802dab4 eff7eafe bl gfx_blockfill
| 0x0802dab8 7f23 movs r3, 0x7f ; 127
| 0x0802daba 9f22 movs r2, 0x9f ; 159
| 0x0802dabc 7f21 movs r1, 0x7f ; 127
| 0x0802dabe 0020 movs r0, 0
| 0x0802dac0 eff7e4fe bl gfx_blockfill
| 0x0802dac4 0020 movs r0, 0
| 0x0802dac6 eff753fc bl gfx_set_fg_color
| 0x0802daca 7ff07f40 mvns r0, 0xff000000
| 0x0802dace eff74bfc bl gfx_set_bg_color
| 0x0802dad2 dff89004 ldr.w r0, [0x0802df6a] ; [0x802df68:4]=0x2001e6ec
| 0x0802dad6 f3f7cdfe bl gfx_select_font
\ 0x0802dada 13bd pop {r0, r1, r4, pc}
;-- scr_1:
/ (fcn) func_2daf8 538
| Caller: md380_f_4520
| func_2daf8 ();
| 0x0802daf8 80b5 push {r7, lr}
| 0x0802dafa dff86404 ldr.w r0, [0x0802df66] ; [0x802df64:4]=0x80cf780 gfx_font_norm
| 0x0802dafe 0078 ldrb r0, [r0]
| 0x0802db00 0628 cmp r0, 6 ; 6
| ,=< 0x0802db02 80f00581 bhs.w 0x802dd10
| | 0x0802db06 dff84004 ldr.w r0, [0x0802df4e] ; [0x802df4c:4]=0x2001e931
| | 0x0802db0a 4078 ldrb r0, [r0, 1]
| | 0x0802db0c c0f34000 ubfx r0, r0, 1, 1
| | 0x0802db10 c007 lsls r0, r0, 0x1f
| ,==< 0x0802db12 40f1fd80 bpl.w 0x802dd10
| || 0x0802db16 8648 ldr r0, [0x0802dd32] ; [0x802dd30:4]=0x2001e8f5 msg_status_flag1
| || 0x0802db18 0078 ldrb r0, [r0]
| || 0x0802db1a 401e subs r0, r0, 1
| || 0x0802db1c c0b2 uxtb r0, r0
| || 0x0802db1e 0828 cmp r0, 8 ; 8
| ,===< 0x0802db20 14d2 bhs 0x802db4c
| ||| 0x0802db22 dff82004 ldr.w r0, [0x0802df4a] ; [0x802df48:4]=0x2001e5f0 radio_status_1
| ||| 0x0802db26 0078 ldrb r0, [r0]
| ||| 0x0802db28 0f21 movs r1, 0xf ; 15
| ||| 0x0802db2a 0842 tst r0, r1
| ,====< 0x0802db2c 0ed0 beq 0x802db4c
| |||| 0x0802db2e d148 ldr r0, [0x0802de76] ; [0x802de74:4]=0x2001e8ab
| |||| 0x0802db30 1f21 movs r1, 0x1f ; 31
| |||| 0x0802db32 0170 strb r1, [r0]
| |||| 0x0802db34 cf49 ldr r1, [0x0802de74] ; [0x802de74:4]=0x2001e8ab
| |||| 0x0802db36 d048 ldr r0, [0x0802de7a] ; [0x802de78:4]=0x2001e660 event4_mbox_poi
| |||| 0x0802db38 0068 ldr r0, [r0]
| |||| 0x0802db3a 03f02ffb bl md380_OSMboxPost
| |||| 0x0802db3e e2f7aaf8 bl return_to_mode_1_from10
| |||| ;-- call_F_4225_1:
| |||| 0x0802db42 f2f78bf9 bl f_4225
| |||| 0x0802db46 0a20 movs r0, 0xa ; 10
| |||| 0x0802db48 06f0b4f9 bl OSTimeDly
| ``---> 0x0802db4c dff81004 ldr.w r0, [0x0802df64] ; [0x802df64:4]=0x80cf780 gfx_font_norm
| || 0x0802db50 0078 ldrb r0, [r0]
| || 0x0802db52 0228 cmp r0, 2 ; 2
| ,===< 0x0802db54 40f0a480 bne.w 0x802dca0
| ||| 0x0802db58 dff85c04 ldr.w r0, [md380_f_4137] ; [0x802dfbc:4]=0xf8dfb510 LEA md380_f_4137 ; md380_f_4137
| ||| 0x0802db5c 0078 ldrb r0, [r0]
| ||| 0x0802db5e 0528 cmp r0, 5 ; 5
| ,====< 0x0802db60 18d0 beq 0x802db94
| |||| 0x0802db62 dff85404 ldr.w r0, [0x0802dfbe] ; [0x802dfbc:4]=0xf8dfb510 LEA md380_f_4137 ; md380_f_4137
| |||| 0x0802db66 0078 ldrb r0, [r0]
| |||| 0x0802db68 0628 cmp r0, 6 ; 6
| ,=====< 0x0802db6a 13d0 beq 0x802db94
| ||||| 0x0802db6c dff84804 ldr.w r0, [md380_f_4137] ; [0x802dfbc:4]=0xf8dfb510 LEA md380_f_4137 ; md380_f_4137
| ||||| 0x0802db70 0078 ldrb r0, [r0]
| ||||| 0x0802db72 0828 cmp r0, 8 ; 8
| ,======< 0x0802db74 0ed0 beq 0x802db94
| |||||| 0x0802db76 dff84004 ldr.w r0, [0x0802dfbe] ; [0x802dfbc:4]=0xf8dfb510 LEA md380_f_4137 ; md380_f_4137
| |||||| 0x0802db7a 0078 ldrb r0, [r0]
| |||||| 0x0802db7c 0928 cmp r0, 9 ; 9
| ,=======< 0x0802db7e 09d0 beq 0x802db94
| ||||||| 0x0802db80 dff83404 ldr.w r0, [md380_f_4137] ; [0x802dfbc:4]=0xf8dfb510 LEA md380_f_4137 ; md380_f_4137
| ||||||| 0x0802db84 0078 ldrb r0, [r0]
| ||||||| 0x0802db86 0a28 cmp r0, 0xa ; 10
| ========< 0x0802db88 04d0 beq 0x802db94
| ||||||| 0x0802db8a dff82c04 ldr.w r0, [0x0802dfbe] ; [0x802dfbc:4]=0xf8dfb510 LEA md380_f_4137 ; md380_f_4137
| ||||||| 0x0802db8e 0078 ldrb r0, [r0]
| ||||||| 0x0802db90 0b28 cmp r0, 0xb ; 11
| ========< 0x0802db92 0bd1 bne 0x802dbac
| ````----> 0x0802db94 dff8980b ldr.w r0, [0x0802e734] ; [0x802e734:4]=0x2001e852
| ||| 0x0802db98 0088 ldrh r0, [r0]
| ||| 0x0802db9a f4f7d2ff bl func_22b42
| ||| 0x0802db9e dff8940b ldr.w r0, [0x0802e73a] ; [0x802e738:4]=0x2001d950
| ||| 0x0802dba2 dff88c1b ldr.w r1, [0x0802e736] ; [0x802e734:4]=0x2001e852
| ||| 0x0802dba6 0988 ldrh r1, [r1]
| ||| 0x0802dba8 0180 strh r1, [r0]
| ,====< 0x0802dbaa 37e0 b 0x802dc1c
| --------> 0x0802dbac dff8e003 ldr.w r0, [0x0802df94] ; [0x802df94:4]=0x2001e844
| |||| 0x0802dbb0 0078 ldrb r0, [r0]
| |||| 0x0802dbb2 0428 cmp r0, 4 ; 4
| ,=====< 0x0802dbb4 0bd1 bne 0x802dbce
| ||||| 0x0802dbb6 dff8780b ldr.w r0, [0x0802e736] ; [0x802e734:4]=0x2001e852
| ||||| 0x0802dbba 0088 ldrh r0, [r0]
| ||||| 0x0802dbbc f4f7c1ff bl func_22b42
| ||||| 0x0802dbc0 dff8700b ldr.w r0, [0x0802e738] ; [0x802e738:4]=0x2001d950
| ||||| 0x0802dbc4 dff8681b ldr.w r1, [0x0802e734] ; [0x802e734:4]=0x2001e852
| ||||| 0x0802dbc8 0988 ldrh r1, [r1]
| ||||| 0x0802dbca 0180 strh r1, [r0]
| ,======< 0x0802dbcc 26e0 b 0x802dc1c
| |`-----> 0x0802dbce dff8680b ldr.w r0, [0x0802e73e] ; [0x802e73c:4]=0xf8dfb580
| | |||| 0x0802dbd2 808c ldrh r0, [r0, 0x24]
| | |||| 0x0802dbd4 0028 cmp r0, 0
| |,=====< 0x0802dbd6 09d1 bne 0x802dbec
| |||||| 0x0802dbd8 a948 ldr r0, [0x0802de80] ; [0x802de80:4]=0x2001e850 selected_channel
| |||||| 0x0802dbda 0088 ldrh r0, [r0]
| |||||| 0x0802dbdc f4f7b1ff bl func_22b42
| |||||| 0x0802dbe0 dff8500b ldr.w r0, [0x0802e738] ; [0x802e738:4]=0x2001d950
| |||||| 0x0802dbe4 a649 ldr r1, [0x0802de80] ; [0x802de80:4]=0x2001e850 selected_channel
| |||||| 0x0802dbe6 0988 ldrh r1, [r1]
| |||||| 0x0802dbe8 0180 strh r1, [r0]
| ,=======< 0x0802dbea 17e0 b 0x802dc1c
| ||`-----> 0x0802dbec dff8480b ldr.w r0, [func_2e73c_uses_menu_cursor_pos_1] ; [0x802e73c:4]=0xf8dfb580
| || |||| 0x0802dbf0 808c ldrh r0, [r0, 0x24]
| || |||| 0x0802dbf2 40f2e931 movw r1, 0x3e9 ; 1001
| || |||| 0x0802dbf6 8842 cmp r0, r1
| ||,=====< 0x0802dbf8 0bd2 bhs 0x802dc12
| ||||||| 0x0802dbfa dff83c0b ldr.w r0, [0x0802e73e] ; [0x802e73c:4]=0xf8dfb580
| ||||||| 0x0802dbfe 808c ldrh r0, [r0, 0x24]
| ||||||| 0x0802dc00 f4f79fff bl func_22b42
| ||||||| 0x0802dc04 dff8300b ldr.w r0, [func_2e73c_uses_menu_cursor_pos_1] ; [0x802e73c:4]=0xf8dfb580
| ||||||| 0x0802dc08 808c ldrh r0, [r0, 0x24]
| ||||||| 0x0802dc0a dff8281b ldr.w r1, [0x0802e73a] ; [0x802e738:4]=0x2001d950
| ||||||| 0x0802dc0e 0880 strh r0, [r1]
| ========< 0x0802dc10 04e0 b 0x802dc1c
| ||`-----> 0x0802dc12 dff8200b ldr.w r0, [0x0802e73a] ; [0x802e738:4]=0x2001d950
| || |||| 0x0802dc16 0088 ldrh r0, [r0]
| || |||| 0x0802dc18 f4f793ff bl func_22b42
| ``-`----> 0x0802dc1c dff8140b ldr.w r0, [0x0802e738] ; [0x802e738:4]=0x2001d950
| ||| 0x0802dc20 0088 ldrh r0, [r0]
| ||| 0x0802dc22 f5f750f8 bl func_22cc6_spiflash_rd_6
| ||| 0x0802dc26 dff8840b ldr.w r0, [0x0802e7b2] ; [0x802e7b0:4]=0x2001e5d0 msg_timer_500
| ||| 0x0802dc2a 0088 ldrh r0, [r0]
| ||| 0x0802dc2c dff8041b ldr.w r1, [0x0802e738] ; [0x802e738:4]=0x2001d950
| ||| 0x0802dc30 0988 ldrh r1, [r1]
| ||| 0x0802dc32 8842 cmp r0, r1
| ,====< 0x0802dc34 12d0 beq 0x802dc5c
| |||| 0x0802dc36 dff8740b ldr.w r0, [0x0802e7b2] ; [0x802e7b0:4]=0x2001e5d0 msg_timer_500
| |||| 0x0802dc3a dff8f81a ldr.w r1, [0x0802e73a] ; [0x802e738:4]=0x2001d950
| |||| 0x0802dc3e 0988 ldrh r1, [r1]
| |||| 0x0802dc40 0180 strh r1, [r0]
| |||| 0x0802dc42 04f06bf9 bl func_31f1c
| |||| 0x0802dc46 bd48 ldr r0, [0x0802df3e] ; [0x802df3c:4]=0x2001e893
| |||| 0x0802dc48 0421 movs r1, 4 ; 4
| |||| 0x0802dc4a 0170 strb r1, [r0]
| |||| 0x0802dc4c dff8600b ldr.w r0, [0x0802e7b4] ; [0x802e7b4:4]=0x2001de78 struct_channel_info2
| |||| 0x0802dc50 4ff4fa71 mov.w r1, 0x1f4 ; 500
| |||| 0x0802dc54 0160 str r1, [r0]
| |||| 0x0802dc56 0a20 movs r0, 0xa ; 10
| |||| 0x0802dc58 06f02cf9 bl OSTimeDly
| `----> 0x0802dc5c dff8540b ldr.w r0, [0x0802e7b8] ; [0x802e7b8:4]=0x2001e5f4
| ||| 0x0802dc60 4078 ldrb r0, [r0, 1]
| ||| 0x0802dc62 c0f34000 ubfx r0, r0, 1, 1
| ||| 0x0802dc66 c007 lsls r0, r0, 0x1f
| ,====< 0x0802dc68 06d4 bmi 0x802dc78
| |||| 0x0802dc6a dff84c0b ldr.w r0, [0x0802e7be] ; [0x802e7bc:4]=0x4890b580
| |||| 0x0802dc6e 4078 ldrb r0, [r0, 1]
| |||| 0x0802dc70 c0f38000 ubfx r0, r0, 2, 1
| |||| 0x0802dc74 c007 lsls r0, r0, 0x1f
| ,=====< 0x0802dc76 08d5 bpl 0x802dc8a
| |`----> 0x0802dc78 b748 ldr r0, [0x0802df58] ; [0x802df58:4]=0x2001e8a8 beep_code_send
| | ||| 0x0802dc7a 0e21 movs r1, 0xe ; 14
| | ||| 0x0802dc7c 0170 strb r1, [r0]
| | ||| 0x0802dc7e b649 ldr r1, [0x0802df5a] ; [0x802df58:4]=0x2001e8a8 beep_code_send
| | ||| 0x0802dc80 b648 ldr r0, [0x0802df5c] ; [0x802df5c:4]=0x2001e67c event2_mbox_poi_beep
| | ||| 0x0802dc82 0068 ldr r0, [r0]
| | ||| 0x0802dc84 03f08afa bl md380_OSMboxPost
| |,====< 0x0802dc88 42e0 b 0x802dd10
| `-----> 0x0802dc8a dff82c0b ldr.w r0, [0x0802e7be] ; [0x802e7bc:4]=0x4890b580
| |||| 0x0802dc8e 4078 ldrb r0, [r0, 1]
| |||| 0x0802dc90 10f0f700 ands r0, r0, 0xf7
| |||| 0x0802dc94 dff8201b ldr.w r1, [func_2e7bc] ; [0x802e7bc:4]=0x4890b580
| |||| 0x0802dc98 4870 strb r0, [r1, 1]
| |||| 0x0802dc9a 0ff01df8 bl func_3ccd8
| ,=====< 0x0802dc9e 37e0 b 0x802dd10
| ||`---> 0x0802dca0 dff8100b ldr.w r0, [0x0802e7b8] ; [0x802e7b8:4]=0x2001e5f4
| || || 0x0802dca4 4078 ldrb r0, [r0, 1]
| || || 0x0802dca6 c0f34000 ubfx r0, r0, 1, 1
| || || 0x0802dcaa c007 lsls r0, r0, 0x1f
| ||,===< 0x0802dcac 06d4 bmi 0x802dcbc
| ||||| 0x0802dcae dff8080b ldr.w r0, [0x0802e7be] ; [0x802e7bc:4]=0x4890b580
| ||||| 0x0802dcb2 4078 ldrb r0, [r0, 1]
| ||||| 0x0802dcb4 c0f38000 ubfx r0, r0, 2, 1
| ||||| 0x0802dcb8 c007 lsls r0, r0, 0x1f
| ,======< 0x0802dcba 08d5 bpl 0x802dcce
| |||`---> 0x0802dcbc a648 ldr r0, [0x0802df58] ; [0x802df58:4]=0x2001e8a8 beep_code_send
| ||| || 0x0802dcbe 0e21 movs r1, 0xe ; 14
| ||| || 0x0802dcc0 0170 strb r1, [r0]
| ||| || 0x0802dcc2 a549 ldr r1, [0x0802df5a] ; [0x802df58:4]=0x2001e8a8 beep_code_send
| ||| || 0x0802dcc4 a548 ldr r0, [0x0802df5c] ; [0x802df5c:4]=0x2001e67c event2_mbox_poi_beep
| ||| || 0x0802dcc6 0068 ldr r0, [r0]
| ||| || 0x0802dcc8 03f068fa bl md380_OSMboxPost
| |||,===< 0x0802dccc 20e0 b 0x802dd10
| `------> 0x0802dcce dff8e80a ldr.w r0, [0x0802e7be] ; [0x802e7bc:4]=0x4890b580
| ||||| 0x0802dcd2 4078 ldrb r0, [r0, 1]
| ||||| 0x0802dcd4 10f0f700 ands r0, r0, 0xf7
| ||||| 0x0802dcd8 dff8dc1a ldr.w r1, [func_2e7bc] ; [0x802e7bc:4]=0x4890b580
| ||||| 0x0802dcdc 4870 strb r0, [r1, 1]
| ||||| 0x0802dcde dff8d80a ldr.w r0, [0x0802e7be] ; [0x802e7bc:4]=0x4890b580
| ||||| 0x0802dce2 4078 ldrb r0, [r0, 1]
| ||||| 0x0802dce4 10f0fe00 ands r0, r0, 0xfe
| ||||| 0x0802dce8 dff8cc1a ldr.w r1, [func_2e7bc] ; [0x802e7bc:4]=0x4890b580
| ||||| 0x0802dcec 4870 strb r0, [r1, 1]
| ||||| 0x0802dcee 9c48 ldr r0, [0x0802df62] ; [0x802df60:4]=0x2001e892 gui_opmode3
| ||||| 0x0802dcf0 0078 ldrb r0, [r0]
| ||||| 0x0802dcf2 0128 cmp r0, 1 ; 1
| ,======< 0x0802dcf4 0ad1 bne 0x802dd0c
| |||||| 0x0802dcf6 dff8080d ldr.w r0, [0x0802ea06] ; [0x802ea04:4]=0x2001e8e0
| |||||| 0x0802dcfa 90f82000 ldrb.w r0, [r0, 0x20]
| |||||| 0x0802dcfe c0f30110 ubfx r0, r0, 4, 2
| |||||| 0x0802dd02 c0b2 uxtb r0, r0
| |||||| 0x0802dd04 0028 cmp r0, 0
| ,=======< 0x0802dd06 01d1 bne 0x802dd0c
| ||||||| 0x0802dd08 0af056fb bl func_383b8
| ``------> 0x0802dd0c 0ef0e4ff bl func_3ccd8
\ `````-> 0x0802dd10 01bd pop {r0, pc}
/ (fcn) func_2dd12 28
| Caller: func_2f378 md380_f_4520
| func_2dd12 ();
| 0x0802dd12 80b5 push {r7, lr}
| 0x0802dd14 9248 ldr r0, [0x0802df60] ; [0x802df60:4]=0x2001e892 gui_opmode3
| 0x0802dd16 0078 ldrb r0, [r0]
| 0x0802dd18 0628 cmp r0, 6 ; 6
| ,=< 0x0802dd1a 07d2 bhs 0x802dd2c
| | 0x0802dd1c 8a48 ldr r0, [0x0802df48] ; [0x802df48:4]=0x2001e5f0 radio_status_1
| | 0x0802dd1e 4078 ldrb r0, [r0, 1]
| | 0x0802dd20 c007 lsls r0, r0, 0x1f
| ,==< 0x0802dd22 03d5 bpl 0x802dd2c
| || 0x0802dd24 06f089fa bl func_3423a
| || 0x0802dd28 0ff009fc bl func_3d53e
\ ``-> 0x0802dd2c 01bd pop {r0, pc}
/ (fcn) func_2dd34 2
| Caller: update_scr_19
| func_2dd34 ();
\ 0x0802dd34 7047 bx lr
/ (fcn) func_2dd36_beeps_and_sets_kb_keycode 262
| func_2dd36_beeps_and_sets_kb_keycode ();
| 0x0802dd36 10b5 push {r4, lr}
| 0x0802dd38 8949 ldr r1, [0x0802df60] ; [0x802df60:4]=0x2001e892 gui_opmode3
| 0x0802dd3a 0978 ldrb r1, [r1]
| 0x0802dd3c 0629 cmp r1, 6 ; 6
| ,=< 0x0802dd3e 7cd2 bhs 0x802de3a
| | 0x0802dd40 c0b2 uxtb r0, r0
| | 0x0802dd42 dff8141b ldr.w r1, [0x0802e85e] ; [0x802e85c:4]=0x2001e79e
| | 0x0802dd46 11eb8000 adds.w r0, r1, r0, lsl 2
| | 0x0802dd4a 10f11004 adds.w r4, r0, 0x10
| | 0x0802dd4e 2078 ldrb r0, [r4]
| | 0x0802dd50 c0f30110 ubfx r0, r0, 4, 2
| | 0x0802dd54 c0b2 uxtb r0, r0
| | 0x0802dd56 0128 cmp r0, 1 ; 1
| ,==< 0x0802dd58 41d1 bne 0x802ddde
| || 0x0802dd5a 9348 ldr r0, [0x0802dfaa] ; [0x802dfa8:4]=0x2001deb8 current_channel_info
| || 0x0802dd5c 0078 ldrb r0, [r0]
| || 0x0802dd5e 10f00300 ands r0, r0, 3
| || 0x0802dd62 0228 cmp r0, 2 ; 2
| ,===< 0x0802dd64 3bd1 bne 0x802ddde
| ||| 0x0802dd66 6088 ldrh r0, [r4, 2]
| ||| 0x0802dd68 f4f725fe bl func_229b6
| ||| 0x0802dd6c 6088 ldrh r0, [r4, 2]
| ||| 0x0802dd6e dff8ec1a ldr.w r1, [0x0802e862] ; [0x802e860:4]=0x48b1b580
| ||| 0x0802dd72 0880 strh r0, [r1]
| ||| 0x0802dd74 2078 ldrb r0, [r4]
| ||| 0x0802dd76 10f00f00 ands r0, r0, 0xf
| ||| 0x0802dd7a 0128 cmp r0, 1 ; 1
| ,====< 0x0802dd7c 14d1 bne 0x802dda8
| |||| 0x0802dd7e 7048 ldr r0, [0x0802df42] ; [0x802df40:4]=0x2001e894
| |||| 0x0802dd80 0078 ldrb r0, [r0]
| |||| 0x0802dd82 0128 cmp r0, 1 ; 1
| ,=====< 0x0802dd84 59d1 bne 0x802de3a
| ||||| 0x0802dd86 6178 ldrb r1, [r4, 1]
| ||||| 0x0802dd88 dff8800b ldr.w r0, [0x0802e910] ; [0x802e910:4]=0x2001e8a9 event5_buffer
| ||||| 0x0802dd8c f5f75df8 bl func_22e4a_spiflash_rd_10
| ||||| 0x0802dd90 dff87c0b ldr.w r0, [0x0802e914] ; [0x802e914:4]=0x2001e658 event5_mbox_poi
| ||||| 0x0802dd94 0321 movs r1, 3 ; 3
| ||||| 0x0802dd96 0170 strb r1, [r0]
| ||||| 0x0802dd98 dff8741b ldr.w r1, [0x0802e914] ; [0x802e914:4]=0x2001e658 event5_mbox_poi
| ||||| 0x0802dd9c dff8740b ldr.w r0, [func_2e918] ; [0x802e918:4]=0x4882b580
| ||||| 0x0802dda0 0068 ldr r0, [r0]
| ||||| 0x0802dda2 03f0fbf9 bl md380_OSMboxPost
| ,======< 0x0802dda6 48e0 b 0x802de3a
| ||`----> 0x0802dda8 2078 ldrb r0, [r4]
| || ||| 0x0802ddaa 10f00f00 ands r0, r0, 0xf
| || ||| 0x0802ddae 0228 cmp r0, 2 ; 2
| ||,====< 0x0802ddb0 43d0 beq 0x802de3a
| |||||| 0x0802ddb2 2078 ldrb r0, [r4]
| |||||| 0x0802ddb4 10f00f00 ands r0, r0, 0xf
| |||||| 0x0802ddb8 0328 cmp r0, 3 ; 3
| ,=======< 0x0802ddba 3ed0 beq 0x802de3a
| ||||||| 0x0802ddbc 6048 ldr r0, [0x0802df40] ; [0x802df40:4]=0x2001e894
| ||||||| 0x0802ddbe 0078 ldrb r0, [r0]
| ||||||| 0x0802ddc0 0128 cmp r0, 1 ; 1
| ========< 0x0802ddc2 0bd1 bne 0x802dddc
| ||||||| 0x0802ddc4 6248 ldr r0, [0x0802df50] ; [0x802df50:4]=0x2001e94d gui_opmode1
| ||||||| 0x0802ddc6 a021 movs r1, 0xa0 ; 160
| ||||||| 0x0802ddc8 0170 strb r1, [r0]
| ||||||| 0x0802ddca 6348 ldr r0, [0x0802df5a] ; [0x802df58:4]=0x2001e8a8 beep_code_send
| ||||||| 0x0802ddcc 0921 movs r1, 9 ; 9
| ||||||| 0x0802ddce 0170 strb r1, [r0]
| ||||||| 0x0802ddd0 6149 ldr r1, [0x0802df58] ; [0x802df58:4]=0x2001e8a8 beep_code_send
| ||||||| 0x0802ddd2 6248 ldr r0, [0x0802df5e] ; [0x802df5c:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0802ddd4 0068 ldr r0, [r0]
| ||||||| 0x0802ddd6 03f0e1f9 bl md380_OSMboxPost
| ========< 0x0802ddda 2ee0 b 0x802de3a
| --------> 0x0802dddc 2de0 b 0x802de3a
| ||||``--> 0x0802ddde 2078 ldrb r0, [r4]
| |||| | 0x0802dde0 c0f30110 ubfx r0, r0, 4, 2
| |||| | 0x0802dde4 c0b2 uxtb r0, r0
| |||| | 0x0802dde6 0228 cmp r0, 2 ; 2
| |||| ,==< 0x0802dde8 27d1 bne 0x802de3a
| |||| || 0x0802ddea 6f48 ldr r0, [0x0802dfaa] ; [0x802dfa8:4]=0x2001deb8 current_channel_info
| |||| || 0x0802ddec 0078 ldrb r0, [r0]
| |||| || 0x0802ddee 10f00300 ands r0, r0, 3
| |||| || 0x0802ddf2 0128 cmp r0, 1 ; 1
| ||||,===< 0x0802ddf4 21d1 bne 0x802de3a
| ||||||| 0x0802ddf6 5448 ldr r0, [0x0802df4a] ; [0x802df48:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802ddf8 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802ddfa c0f34000 ubfx r0, r0, 1, 1
| ||||||| 0x0802ddfe c007 lsls r0, r0, 0x1f
| ========< 0x0802de00 1bd5 bpl 0x802de3a
| ||||||| 0x0802de02 2078 ldrb r0, [r4]
| ||||||| 0x0802de04 10f00f00 ands r0, r0, 0xf
| ||||||| 0x0802de08 0828 cmp r0, 8 ; 8
| ========< 0x0802de0a 17d1 bne 0x802de3c
| ||||||| 0x0802de0c 0120 movs r0, 1 ; 1
| ||||||| 0x0802de0e f5f74ff9 bl func_230b0_spiflash_rd_17
| ||||||| 0x0802de12 dff86c0b ldr.w r0, [0x0802e986] ; [0x802e984:4]=0x4867b580
| ||||||| 0x0802de16 007a ldrb r0, [r0, 8]
| ||||||| 0x0802de18 10f0f300 ands r0, r0, 0xf3
| ||||||| 0x0802de1c dff8601b ldr.w r1, [func_2e984_beeps_and_uses_msg_timer_500] ; [0x802e984:4]=0x4867b580
| ||||||| 0x0802de20 0872 strb r0, [r1, 8]
| ||||||| 0x0802de22 dff8f80c ldr.w r0, [0x0802eb22] ; [0x802eb20:4]=0x2001e890 kb_keycode
| ||||||| 0x0802de26 0421 movs r1, 4 ; 4
| ||||||| 0x0802de28 0170 strb r1, [r0]
| ||||||| 0x0802de2a 6078 ldrb r0, [r4, 1]
| ||||||| 0x0802de2c f5f74df9 bl func_230ca_spiflash_rd_18
| ||||||| 0x0802de30 0120 movs r0, 1 ; 1
| ||||||| 0x0802de32 01f071f9 bl func_2f118
| ||||||| 0x0802de36 0ef04fff bl func_3ccd8
\ ```````-> 0x0802de3a 10bd pop {r4, pc}
/ (fcn) func_2de84 106
| func_2de84 ();
| 0x0802de84 80b5 push {r7, lr}
| 0x0802de86 dff82c09 ldr.w r0, [0x0802e7ba] ; [0x802e7b8:4]=0x2001e5f4
| 0x0802de8a 0078 ldrb r0, [r0]
| 0x0802de8c 10f00300 ands r0, r0, 3
| 0x0802de90 0128 cmp r0, 1 ; 1
| ,=< 0x0802de92 2bd1 bne 0x802deec
| | 0x0802de94 2c48 ldr r0, [0x0802df48] ; [0x802df48:4]=0x2001e5f0 radio_status_1
| | 0x0802de96 4078 ldrb r0, [r0, 1]
| | 0x0802de98 c0f34000 ubfx r0, r0, 1, 1
| | 0x0802de9c c007 lsls r0, r0, 0x1f
| ,==< 0x0802de9e 25d5 bpl 0x802deec
| || 0x0802dea0 dff8600b ldr.w r0, [0x0802ea08] ; [0x802ea08:4]=0x2001dadc md380_radio_config
| || 0x0802dea4 0078 ldrb r0, [r0]
| || 0x0802dea6 0028 cmp r0, 0
| ,===< 0x0802dea8 07d0 beq 0x802deba
| ||| 0x0802deaa dff8580b ldr.w r0, [0x0802ea0a] ; [0x802ea08:4]=0x2001dadc md380_radio_config
| ||| 0x0802deae 0021 movs r1, 0
| ||| 0x0802deb0 0170 strb r1, [r0]
| ||| 0x0802deb2 2948 ldr r0, [0x0802df5a] ; [0x802df58:4]=0x2001e8a8 beep_code_send
| ||| 0x0802deb4 0a21 movs r1, 0xa ; 10
| ||| 0x0802deb6 0170 strb r1, [r0]
| ,====< 0x0802deb8 12e0 b 0x802dee0
| |`---> 0x0802deba dff84c0b ldr.w r0, [0x0802ea0e] ; [0x802ea0c:4]=0x4845b580
| | || 0x0802debe 0078 ldrb r0, [r0]
| | || 0x0802dec0 c0f30010 ubfx r0, r0, 4, 1
| | || 0x0802dec4 c007 lsls r0, r0, 0x1f
| |,===< 0x0802dec6 04d5 bpl 0x802ded2
| |||| 0x0802dec8 dff8380b ldr.w r0, [0x0802ea08] ; [0x802ea08:4]=0x2001dadc md380_radio_config
| |||| 0x0802decc 0121 movs r1, 1 ; 1
| |||| 0x0802dece 0170 strb r1, [r0]
| ,=====< 0x0802ded0 03e0 b 0x802deda
| ||`---> 0x0802ded2 dff8300b ldr.w r0, [0x0802ea0a] ; [0x802ea08:4]=0x2001dadc md380_radio_config
| || || 0x0802ded6 0221 movs r1, 2 ; 2
| || || 0x0802ded8 0170 strb r1, [r0]
| `-----> 0x0802deda 1f48 ldr r0, [0x0802df5a] ; [0x802df58:4]=0x2001e8a8 beep_code_send
| | || 0x0802dedc 0921 movs r1, 9 ; 9
| | || 0x0802dede 0170 strb r1, [r0]
| `----> 0x0802dee0 1d49 ldr r1, [0x0802df58] ; [0x802df58:4]=0x2001e8a8 beep_code_send
| || 0x0802dee2 dff8d00c ldr.w r0, [0x0802ebba] ; [0x802ebb8:4]=0x2001e60c
| || 0x0802dee6 0068 ldr r0, [r0]
| || 0x0802dee8 03f058f9 bl md380_OSMboxPost
\ ``-> 0x0802deec 01bd pop {r0, pc}
/ (fcn) 112
| func_2e73c_uses_menu_cursor_pos_1 ();
| 0x0802e73c 80b5 push {r7, lr}
| 0x0802e73e dff8e803 ldr.w r0, [0x0802eb2e] ; [0x802eb2c:4]=0x2001e8ed
| 0x0802e742 0078 ldrb r0, [r0]
| 0x0802e744 0228 cmp r0, 2 ; 2
| ,=< 0x0802e746 14d1 bne 0x802e772
| | 0x0802e748 dff8d803 ldr.w r0, [0x0802eb28] ; [0x802eb28:4]=0x2001e892 gui_opmode3
| | 0x0802e74c 4078 ldrb r0, [r0, 1]
| | 0x0802e74e c0f34000 ubfx r0, r0, 1, 1
| | 0x0802e752 c007 lsls r0, r0, 0x1f
| ,==< 0x0802e754 0dd5 bpl 0x802e772
| || 0x0802e756 09f02ffe bl func_383b8
| || 0x0802e75a dff86404 ldr.w r0, [0x0802ebc6] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| || 0x0802e75e 0a21 movs r1, 0xa ; 10
| || 0x0802e760 0170 strb r1, [r0]
| || 0x0802e762 dff85c14 ldr.w r1, [0x0802ebc6] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| || 0x0802e766 dff84c04 ldr.w r0, [0x0802ebba] ; [0x802ebb8:4]=0x2001e60c
| || 0x0802e76a 0068 ldr r0, [r0]
| || 0x0802e76c 02f016fd bl md380_OSMboxPost
| ,===< 0x0802e770 1be0 b 0x802e7aa
| |``-> 0x0802e772 dff8b003 ldr.w r0, [0x0802eb2a] ; [0x802eb28:4]=0x2001e892 gui_opmode3
| | 0x0802e776 4078 ldrb r0, [r0, 1]
| | 0x0802e778 c0f34000 ubfx r0, r0, 1, 1
| | 0x0802e77c c007 lsls r0, r0, 0x1f
| | ,=< 0x0802e77e 14d5 bpl 0x802e7aa
| | | 0x0802e780 dff8a403 ldr.w r0, [0x0802eb2c] ; [0x802eb2c:4]=0x2001e8ed
| | | 0x0802e784 0078 ldrb r0, [r0]
| | | 0x0802e786 0028 cmp r0, 0
| |,==< 0x0802e788 0fd1 bne 0x802e7aa
| ||| 0x0802e78a dff83404 ldr.w r0, [0x0802ebc6] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||| 0x0802e78e 0921 movs r1, 9 ; 9
| ||| 0x0802e790 0170 strb r1, [r0]
| ||| 0x0802e792 dff82c14 ldr.w r1, [0x0802ebc6] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||| 0x0802e796 dff81c04 ldr.w r0, [0x0802ebba] ; [0x802ebb8:4]=0x2001e60c
| ||| 0x0802e79a 0068 ldr r0, [r0]
| ||| 0x0802e79c 02f0fefc bl md380_OSMboxPost
| ||| 0x0802e7a0 c820 movs r0, 0xc8 ; 200
| ||| 0x0802e7a2 05f087fb bl OSTimeDly
| ||| 0x0802e7a6 09f027fe bl func_383f8
\ ```-> 0x0802e7aa 01bd pop {r0, pc}
/ (fcn) func_2e7bc 156
| func_2e7bc ();
| 0x0802e7bc 80b5 push {r7, lr}
| 0x0802e7be 9048 ldr r0, [0x0802ea02] ; [0x802ea00:4]=0x2001e160
| 0x0802e7c0 808c ldrh r0, [r0, 0x24]
| 0x0802e7c2 0028 cmp r0, 0
| ,=< 0x0802e7c4 0ad0 beq 0x802e7dc
| | 0x0802e7c6 8e48 ldr r0, [0x0802ea02] ; [0x802ea00:4]=0x2001e160
| | 0x0802e7c8 90f82000 ldrb.w r0, [r0, 0x20]
| | 0x0802e7cc 0321 movs r1, 3 ; 3
| | 0x0802e7ce 0842 tst r0, r1
| ,==< 0x0802e7d0 04d0 beq 0x802e7dc
| || 0x0802e7d2 dff85003 ldr.w r0, [0x0802eb2a] ; [0x802eb28:4]=0x2001e892 gui_opmode3
| || 0x0802e7d6 4078 ldrb r0, [r0, 1]
| || 0x0802e7d8 c007 lsls r0, r0, 0x1f
| ,===< 0x0802e7da 00d5 bpl 0x802e7de
| ,=``-> 0x0802e7dc 3be0 b 0x802e856
| |`---> 0x0802e7de 8848 ldr r0, [0x0802ea02] ; [0x802ea00:4]=0x2001e160
| | 0x0802e7e0 808c ldrh r0, [r0, 0x24]
| | 0x0802e7e2 4ff6fe71 movw r1, 0xfffe
| | 0x0802e7e6 8842 cmp r0, r1
| | ,=< 0x0802e7e8 27d1 bne 0x802e83a
| | | 0x0802e7ea dff82009 ldr.w r0, [0x0802f112] ; [0x802f110:4]=0x2001de78 struct_channel_info2
| | | 0x0802e7ee 0088 ldrh r0, [r0]
| | | 0x0802e7f0 f4f7a7f9 bl func_22b42
| | | 0x0802e7f4 03f092fb bl func_31f1c
| | .--> 0x0802e7f8 dff81409 ldr.w r0, [0x0802f114] ; [0x802f114:4]=0x2001e86e
| | || 0x0802e7fc c088 ldrh r0, [r0, 6]
| | || 0x0802e7fe 0028 cmp r0, 0
| |,===< 0x0802e800 29d0 beq 0x802e856
| |||| 0x0802e802 dff80c09 ldr.w r0, [0x0802f116] ; [0x802f114:4]=0x2001e86e
| |||| 0x0802e806 c088 ldrh r0, [r0, 6]
| |||| 0x0802e808 f4f7d5f8 bl func_229b6
| |||| 0x0802e80c e1f743fa bl return_to_mode_1_from10
| |||| 0x0802e810 c548 ldr r0, [0x0802eb28] ; [0x802eb28:4]=0x2001e892 gui_opmode3
| |||| 0x0802e812 0121 movs r1, 1 ; 1
| |||| 0x0802e814 0170 strb r1, [r0]
| |||| 0x0802e816 3e48 ldr r0, [0x0802e912] ; [0x802e910:4]=0x2001e8a9 event5_buffer
| |||| 0x0802e818 0921 movs r1, 9 ; 9
| |||| 0x0802e81a 0170 strb r1, [r0]
| |||| 0x0802e81c 3c49 ldr r1, [0x0802e910] ; [0x802e910:4]=0x2001e8a9 event5_buffer
| |||| 0x0802e81e 3d48 ldr r0, [0x0802e916] ; [0x802e914:4]=0x2001e658 event5_mbox_poi
| |||| 0x0802e820 0068 ldr r0, [r0]
| |||| 0x0802e822 02f0bbfc bl md380_OSMboxPost
| |||| 0x0802e826 dff8ec08 ldr.w r0, [0x0802f11a] ; [0x802f118:4]=0x4b510
| |||| 0x0802e82a 0078 ldrb r0, [r0]
| |||| 0x0802e82c 401c adds r0, r0, 1
| |||| 0x0802e82e 10f00f00 ands r0, r0, 0xf
| |||| 0x0802e832 dff8e018 ldr.w r1, [0x0802f11a] ; [0x802f118:4]=0x4b510
| |||| 0x0802e836 0870 strb r0, [r1]
| ,=====< 0x0802e838 0de0 b 0x802e856
| ||||`-> 0x0802e83a 7148 ldr r0, [0x0802ea02] ; [0x802ea00:4]=0x2001e160
| |||| 0x0802e83c 808c ldrh r0, [r0, 0x24]
| |||| 0x0802e83e 40f2e931 movw r1, 0x3e9 ; 1001
| |||| 0x0802e842 8842 cmp r0, r1
| ||||,=< 0x0802e844 06d2 bhs 0x802e854
| ||||| 0x0802e846 6e48 ldr r0, [0x0802ea02] ; [0x802ea00:4]=0x2001e160
| ||||| 0x0802e848 808c ldrh r0, [r0, 0x24]
| ||||| 0x0802e84a f4f77af9 bl func_22b42
| ||||| 0x0802e84e 03f065fb bl func_31f1c
| |||`==< 0x0802e852 d1e7 b 0x802e7f8
| |||,`-> 0x0802e854 ffe7 b 0x802e856
\ ````--> 0x0802e856 01bd pop {r0, pc}
/ (fcn) func_2e860 170
| func_2e860 ();
| 0x0802e860 80b5 push {r7, lr}
| 0x0802e862 b148 ldr r0, [0x0802eb2a] ; [0x802eb28:4]=0x2001e892 gui_opmode3
| 0x0802e864 0078 ldrb r0, [r0]
| 0x0802e866 0128 cmp r0, 1 ; 1
| ,=< 0x0802e868 06d0 beq 0x802e878
| | 0x0802e86a dff8780a ldr.w r0, [0x0802f2ea] ; [0x802f2e8:4]=0x2001e57c zone_number_in_byte_3
| | 0x0802e86e 0078 ldrb r0, [r0]
| | 0x0802e870 c0f3c000 ubfx r0, r0, 3, 1
| | 0x0802e874 c007 lsls r0, r0, 0x1f
| ,==< 0x0802e876 47d5 bpl 0x802e908
| |`-> 0x0802e878 aa48 ldr r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| | 0x0802e87a 4078 ldrb r0, [r0, 1]
| | 0x0802e87c c0f34000 ubfx r0, r0, 1, 1
| | 0x0802e880 c007 lsls r0, r0, 0x1f
| |,=< 0x0802e882 41d5 bpl 0x802e908
| || 0x0802e884 dff8d409 ldr.w r0, [0x0802f260] ; [0x802f260:4]=0x2001e660 event4_mbox_poi
| || 0x0802e888 1f21 movs r1, 0x1f ; 31
| || 0x0802e88a 0170 strb r1, [r0]
| || 0x0802e88c dff8cc19 ldr.w r1, [0x0802f260] ; [0x802f260:4]=0x2001e660 event4_mbox_poi
| || 0x0802e890 dff8cc09 ldr.w r0, [0x0802f264] ; [0x802f264:4]=0x2001e5f4
| || 0x0802e894 0068 ldr r0, [r0]
| || 0x0802e896 02f081fc bl md380_OSMboxPost
| || 0x0802e89a 09f08dfd bl func_383b8
| || 0x0802e89e c848 ldr r0, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| || 0x0802e8a0 0a21 movs r1, 0xa ; 10
| || 0x0802e8a2 0170 strb r1, [r0]
| || 0x0802e8a4 c649 ldr r1, [0x0802ebc0] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| || 0x0802e8a6 c348 ldr r0, [0x0802ebb6] ; [0x802ebb4:4]=0x2001e67c event2_mbox_poi_beep
| || 0x0802e8a8 0068 ldr r0, [r0]
| || 0x0802e8aa 02f077fc bl md380_OSMboxPost
| || 0x0802e8ae dff8b409 ldr.w r0, [0x0802f26a] ; [0x802f268:4]=0x1e41b580
| || 0x0802e8b2 4078 ldrb r0, [r0, 1]
| || 0x0802e8b4 10f0fe00 ands r0, r0, 0xfe
| || 0x0802e8b8 dff8a819 ldr.w r1, [func_2f268] ; [0x802f268:4]=0x1e41b580
| || 0x0802e8bc 4870 strb r0, [r1, 1]
| || 0x0802e8be dff8240a ldr.w r0, [0x0802f2ea] ; [0x802f2e8:4]=0x2001e57c zone_number_in_byte_3
| || 0x0802e8c2 0078 ldrb r0, [r0]
| || 0x0802e8c4 10f0f700 ands r0, r0, 0xf7
| || 0x0802e8c8 dff8181a ldr.w r1, [0x0802f2e8] ; [0x802f2e8:4]=0x2001e57c zone_number_in_byte_3
| || 0x0802e8cc 0870 strb r0, [r1]
| || 0x0802e8ce dff87c06 ldr.w r0, [0x0802ef52] ; [0x802ef50:4]=0x2001e6fc
| || 0x0802e8d2 0078 ldrb r0, [r0]
| || 0x0802e8d4 0006 lsls r0, r0, 0x18
| ,===< 0x0802e8d6 0fd5 bpl 0x802e8f8
| ||| 0x0802e8d8 dff83408 ldr.w r0, [0x0802f114] ; [0x802f114:4]=0x2001e86e
| ||| 0x0802e8dc 0078 ldrb r0, [r0]
| ||| 0x0802e8de 10f00300 ands r0, r0, 3
| ||| 0x0802e8e2 0228 cmp r0, 2 ; 2
| ,====< 0x0802e8e4 08d1 bne 0x802e8f8
| |||| 0x0802e8e6 dff8fc09 ldr.w r0, [0x0802f2ea] ; [0x802f2e8:4]=0x2001e57c zone_number_in_byte_3
| |||| 0x0802e8ea 0078 ldrb r0, [r0]
| |||| 0x0802e8ec 50f00100 orrs r0, r0, 1
| |||| 0x0802e8f0 dff8f019 ldr.w r1, [0x0802f2e8] ; [0x802f2e8:4]=0x2001e57c zone_number_in_byte_3
| |||| 0x0802e8f4 0870 strb r0, [r1]
| ,=====< 0x0802e8f6 07e0 b 0x802e908
| |``---> 0x0802e8f8 dff8e809 ldr.w r0, [0x0802f2e8] ; [0x802f2e8:4]=0x2001e57c zone_number_in_byte_3
| | || 0x0802e8fc 0078 ldrb r0, [r0]
| | || 0x0802e8fe 10f0fe00 ands r0, r0, 0xfe
| | || 0x0802e902 dff8e019 ldr.w r1, [0x0802f2ea] ; [0x802f2e8:4]=0x2001e57c zone_number_in_byte_3
| | || 0x0802e906 0870 strb r0, [r1]
\ `--``-> 0x0802e908 01bd pop {r0, pc}
/ (fcn) func_2e918 104
| func_2e918 ();
| 0x0802e918 80b5 push {r7, lr}
| 0x0802e91a 8248 ldr r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| 0x0802e91c 4078 ldrb r0, [r0, 1]
| 0x0802e91e c0f34000 ubfx r0, r0, 1, 1
| 0x0802e922 c007 lsls r0, r0, 0x1f
| ,=< 0x0802e924 2bd5 bpl 0x802e97e
| | 0x0802e926 8048 ldr r0, [0x0802eb2a] ; [0x802eb28:4]=0x2001e892 gui_opmode3
| | 0x0802e928 0078 ldrb r0, [r0]
| | 0x0802e92a 0028 cmp r0, 0
| ,==< 0x0802e92c 27d1 bne 0x802e97e
| || 0x0802e92e 3648 ldr r0, [0x0802ea0a] ; [0x802ea08:4]=0x2001dadc md380_radio_config
| || 0x0802e930 4078 ldrb r0, [r0, 1]
| || 0x0802e932 c0f38000 ubfx r0, r0, 2, 1
| || 0x0802e936 c007 lsls r0, r0, 0x1f
| ,===< 0x0802e938 11d5 bpl 0x802e95e
| ||| 0x0802e93a a148 ldr r0, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| ||| 0x0802e93c 0a21 movs r1, 0xa ; 10
| ||| 0x0802e93e 0170 strb r1, [r0]
| ||| 0x0802e940 9f49 ldr r1, [0x0802ebc0] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| ||| 0x0802e942 9c48 ldr r0, [0x0802ebb6] ; [0x802ebb4:4]=0x2001e67c event2_mbox_poi_beep
| ||| 0x0802e944 0068 ldr r0, [r0]
| ||| 0x0802e946 02f029fc bl md380_OSMboxPost
| ||| 0x0802e94a 0a20 movs r0, 0xa ; 10
| ||| 0x0802e94c 05f0b2fa bl OSTimeDly
| ||| 0x0802e950 2d48 ldr r0, [0x0802ea08] ; [0x802ea08:4]=0x2001dadc md380_radio_config
| ||| 0x0802e952 4078 ldrb r0, [r0, 1]
| ||| 0x0802e954 10f0fb00 ands r0, r0, 0xfb
| ||| 0x0802e958 2b49 ldr r1, [0x0802ea08] ; [0x802ea08:4]=0x2001dadc md380_radio_config
| ||| 0x0802e95a 4870 strb r0, [r1, 1]
| ,====< 0x0802e95c 0de0 b 0x802e97a
| |`---> 0x0802e95e 2a48 ldr r0, [0x0802ea0a] ; [0x802ea08:4]=0x2001dadc md380_radio_config
| | || 0x0802e960 4078 ldrb r0, [r0, 1]
| | || 0x0802e962 50f00400 orrs r0, r0, 4
| | || 0x0802e966 2849 ldr r1, [0x0802ea0a] ; [0x802ea08:4]=0x2001dadc md380_radio_config
| | || 0x0802e968 4870 strb r0, [r1, 1]
| | || 0x0802e96a 9548 ldr r0, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| | || 0x0802e96c 0921 movs r1, 9 ; 9
| | || 0x0802e96e 0170 strb r1, [r0]
| | || 0x0802e970 9349 ldr r1, [0x0802ebc0] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| | || 0x0802e972 9048 ldr r0, [0x0802ebb6] ; [0x802ebb4:4]=0x2001e67c event2_mbox_poi_beep
| | || 0x0802e974 0068 ldr r0, [r0]
| | || 0x0802e976 02f011fc bl md380_OSMboxPost
| `----> 0x0802e97a f3f7bcfe bl rc_write_radio_config_to_flash
\ ``-> 0x0802e97e 01bd pop {r0, pc}
/ (fcn) func_2e984_beeps_and_uses_msg_timer_500 124
| func_2e984_beeps_and_uses_msg_timer_500 ();
| 0x0802e984 80b5 push {r7, lr}
| 0x0802e986 6748 ldr r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| 0x0802e988 4078 ldrb r0, [r0, 1]
| 0x0802e98a c0f34000 ubfx r0, r0, 1, 1
| 0x0802e98e c007 lsls r0, r0, 0x1f
| ,=< 0x0802e990 35d5 bpl 0x802e9fe
| | 0x0802e992 6548 ldr r0, [0x0802eb2a] ; [0x802eb28:4]=0x2001e892 gui_opmode3
| | 0x0802e994 0078 ldrb r0, [r0]
| | 0x0802e996 0028 cmp r0, 0
| ,==< 0x0802e998 31d1 bne 0x802e9fe
| || 0x0802e99a dff8b005 ldr.w r0, [0x0802ef52] ; [0x802ef50:4]=0x2001e6fc
| || 0x0802e99e 0079 ldrb r0, [r0, 4]
| || 0x0802e9a0 c0f34010 ubfx r0, r0, 5, 1
| || 0x0802e9a4 c007 lsls r0, r0, 0x1f
| ,===< 0x0802e9a6 10d5 bpl 0x802e9ca
| ||| 0x0802e9a8 8548 ldr r0, [0x0802ebc0] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| ||| 0x0802e9aa 0a21 movs r1, 0xa ; 10
| ||| 0x0802e9ac 0170 strb r1, [r0]
| ||| 0x0802e9ae 8449 ldr r1, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| ||| 0x0802e9b0 8048 ldr r0, [0x0802ebb4] ; [0x802ebb4:4]=0x2001e67c event2_mbox_poi_beep
| ||| 0x0802e9b2 0068 ldr r0, [r0]
| ||| 0x0802e9b4 02f0f2fb bl md380_OSMboxPost
| ||| 0x0802e9b8 dff89005 ldr.w r0, [0x0802ef50] ; [0x802ef50:4]=0x2001e6fc
| ||| 0x0802e9bc 0079 ldrb r0, [r0, 4]
| ||| 0x0802e9be 10f0df00 ands r0, r0, 0xdf
| ||| 0x0802e9c2 dff88815 ldr.w r1, [0x0802ef52] ; [0x802ef50:4]=0x2001e6fc
| ||| 0x0802e9c6 0871 strb r0, [r1, 4]
| ,====< 0x0802e9c8 0fe0 b 0x802e9ea
| |`---> 0x0802e9ca dff88005 ldr.w r0, [0x0802ef52] ; [0x802ef50:4]=0x2001e6fc
| | || 0x0802e9ce 0079 ldrb r0, [r0, 4]
| | || 0x0802e9d0 50f02000 orrs r0, r0, 0x20
| | || 0x0802e9d4 dff87415 ldr.w r1, [0x0802ef50] ; [0x802ef50:4]=0x2001e6fc
| | || 0x0802e9d8 0871 strb r0, [r1, 4]
| | || 0x0802e9da 7948 ldr r0, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| | || 0x0802e9dc 0921 movs r1, 9 ; 9
| | || 0x0802e9de 0170 strb r1, [r0]
| | || 0x0802e9e0 7749 ldr r1, [0x0802ebc0] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| | || 0x0802e9e2 7448 ldr r0, [0x0802ebb6] ; [0x802ebb4:4]=0x2001e67c event2_mbox_poi_beep
| | || 0x0802e9e4 0068 ldr r0, [r0]
| | || 0x0802e9e6 02f0d9fb bl md380_OSMboxPost
| `----> 0x0802e9ea dff8b009 ldr.w r0, [0x0802f3a2] ; [0x802f3a0:4]=0x2001e5d0 msg_timer_500
| || 0x0802e9ee 0088 ldrh r0, [r0]
| || 0x0802e9f0 f4f75cf9 bl write_current_channel_info_to_spi
| || 0x0802e9f4 dff8a409 ldr.w r0, [0x0802f3a0] ; [0x802f3a0:4]=0x2001e5d0 msg_timer_500
| || 0x0802e9f8 0088 ldrh r0, [r0]
| || 0x0802e9fa f4f754f8 bl channel_info_read_spi_init
\ ``-> 0x0802e9fe 01bd pop {r0, pc}
/ (fcn) func_2ea0c_beeps_and_uses_struct_channel_info2 146
| func_2ea0c_beeps_and_uses_struct_channel_info2 ();
| 0x0802ea0c 80b5 push {r7, lr}
| 0x0802ea0e 4548 ldr r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| 0x0802ea10 4078 ldrb r0, [r0, 1]
| 0x0802ea12 c0f34000 ubfx r0, r0, 1, 1
| 0x0802ea16 c007 lsls r0, r0, 0x1f
| ,=< 0x0802ea18 40d5 bpl 0x802ea9c
| | 0x0802ea1a 4348 ldr r0, [0x0802eb2a] ; [0x802eb28:4]=0x2001e892 gui_opmode3
| | 0x0802ea1c 0078 ldrb r0, [r0]
| | 0x0802ea1e 0028 cmp r0, 0
| ,==< 0x0802ea20 3cd1 bne 0x802ea9c
| || 0x0802ea22 dff82805 ldr.w r0, [0x0802ef52] ; [0x802ef50:4]=0x2001e6fc
| || 0x0802ea26 0078 ldrb r0, [r0]
| || 0x0802ea28 c0f34010 ubfx r0, r0, 5, 1
| || 0x0802ea2c c007 lsls r0, r0, 0x1f
| ,===< 0x0802ea2e 10d5 bpl 0x802ea52
| ||| 0x0802ea30 6348 ldr r0, [0x0802ebc0] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| ||| 0x0802ea32 0a21 movs r1, 0xa ; 10
| ||| 0x0802ea34 0170 strb r1, [r0]
| ||| 0x0802ea36 6249 ldr r1, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| ||| 0x0802ea38 5e48 ldr r0, [0x0802ebb4] ; [0x802ebb4:4]=0x2001e67c event2_mbox_poi_beep
| ||| 0x0802ea3a 0068 ldr r0, [r0]
| ||| 0x0802ea3c 02f0aefb bl md380_OSMboxPost
| ||| 0x0802ea40 dff80805 ldr.w r0, [0x0802ef50] ; [0x802ef50:4]=0x2001e6fc
| ||| 0x0802ea44 0078 ldrb r0, [r0]
| ||| 0x0802ea46 10f0df00 ands r0, r0, 0xdf
| ||| 0x0802ea4a dff80015 ldr.w r1, [0x0802ef52] ; [0x802ef50:4]=0x2001e6fc
| ||| 0x0802ea4e 0870 strb r0, [r1]
| ,====< 0x0802ea50 0fe0 b 0x802ea72
| |`---> 0x0802ea52 dff8f804 ldr.w r0, [0x0802ef52] ; [0x802ef50:4]=0x2001e6fc
| | || 0x0802ea56 0078 ldrb r0, [r0]
| | || 0x0802ea58 50f02000 orrs r0, r0, 0x20
| | || 0x0802ea5c dff8ec14 ldr.w r1, [0x0802ef50] ; [0x802ef50:4]=0x2001e6fc
| | || 0x0802ea60 0870 strb r0, [r1]
| | || 0x0802ea62 5748 ldr r0, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| | || 0x0802ea64 0921 movs r1, 9 ; 9
| | || 0x0802ea66 0170 strb r1, [r0]
| | || 0x0802ea68 5549 ldr r1, [0x0802ebc0] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| | || 0x0802ea6a 5248 ldr r0, [0x0802ebb6] ; [0x802ebb4:4]=0x2001e67c event2_mbox_poi_beep
| | || 0x0802ea6c 0068 ldr r0, [r0]
| | || 0x0802ea6e 02f095fb bl md380_OSMboxPost
| `----> 0x0802ea72 dff89806 ldr.w r0, [0x0802f112] ; [0x802f110:4]=0x2001de78 struct_channel_info2
| || 0x0802ea76 0088 ldrh r0, [r0]
| || 0x0802ea78 f4f718f9 bl write_current_channel_info_to_spi
| || 0x0802ea7c dff88c06 ldr.w r0, [0x0802f110] ; [0x802f110:4]=0x2001de78 struct_channel_info2
| || 0x0802ea80 0088 ldrh r0, [r0]
| || 0x0802ea82 f4f710f8 bl channel_info_read_spi_init
| || 0x0802ea86 03f049fa bl func_31f1c
| || 0x0802ea8a dff85408 ldr.w r0, [0x0802f2e6] ; [0x802f2e4:4]=0x2001e604 q_status_4
| || 0x0802ea8e 0421 movs r1, 4 ; 4
| || 0x0802ea90 0170 strb r1, [r0]
| || 0x0802ea92 dff80c09 ldr.w r0, [0x0802f3a6] ; [0x802f3a4:4]=0x2001e899
| || 0x0802ea96 4ff4fa71 mov.w r1, 0x1f4 ; 500
| || 0x0802ea9a 0160 str r1, [r0]
\ ``-> 0x0802ea9c 01bd pop {r0, pc}
/ (fcn) func_2ea9e 126
| func_2ea9e ();
| 0x0802ea9e 80b5 push {r7, lr}
| 0x0802eaa0 2048 ldr r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| 0x0802eaa2 4078 ldrb r0, [r0, 1]
| 0x0802eaa4 c0f34000 ubfx r0, r0, 1, 1
| 0x0802eaa8 c007 lsls r0, r0, 0x1f
| ,=< 0x0802eaaa 03d5 bpl 0x802eab4
| | 0x0802eaac 1e48 ldr r0, [0x0802eb28] ; [0x802eb28:4]=0x2001e892 gui_opmode3
| | 0x0802eaae 0078 ldrb r0, [r0]
| | 0x0802eab0 0028 cmp r0, 0
| ,==< 0x0802eab2 03d0 beq 0x802eabc
| |`-> 0x0802eab4 1c48 ldr r0, [0x0802eb28] ; [0x802eb28:4]=0x2001e892 gui_opmode3
| | 0x0802eab6 0078 ldrb r0, [r0]
| | 0x0802eab8 0328 cmp r0, 3 ; 3
| |,=< 0x0802eaba 2ed1 bne 0x802eb1a
| `--> 0x0802eabc e4f72afc bl md380_menu_channel_related_13314
| | 0x0802eac0 dff82408 ldr.w r0, [0x0802f2ec] ; [0x802f2ec:4]=0x2001e5f0 radio_status_1
| | 0x0802eac4 c078 ldrb r0, [r0, 3]
| | 0x0802eac6 0428 cmp r0, 4 ; 4
| ,==< 0x0802eac8 01d3 blo 0x802eace
| || 0x0802eaca 0120 movs r0, 1 ; 1
| ,===< 0x0802eacc 03e0 b 0x802ead6
| |`--> 0x0802eace dff81808 ldr.w r0, [0x0802f2ee] ; [0x802f2ec:4]=0x2001e5f0 radio_status_1
| | | 0x0802ead2 c078 ldrb r0, [r0, 3]
| | | 0x0802ead4 401c adds r0, r0, 1
| `---> 0x0802ead6 c0b2 uxtb r0, r0
| | 0x0802ead8 e4f76afc bl md380_menu_curr_chn_related_133b0
| | 0x0802eadc c0b2 uxtb r0, r0
| | 0x0802eade 0528 cmp r0, 5 ; 5
| ,==< 0x0802eae0 04d3 blo 0x802eaec
| || 0x0802eae2 dff80408 ldr.w r0, [0x0802f2ee] ; [0x802f2ec:4]=0x2001e5f0 radio_status_1
| || 0x0802eae6 0121 movs r1, 1 ; 1
| || 0x0802eae8 c170 strb r1, [r0, 3]
| ,===< 0x0802eaea 02e0 b 0x802eaf2
| |`--> 0x0802eaec dff8f817 ldr.w r1, [0x0802f2ec] ; [0x802f2ec:4]=0x2001e5f0 radio_status_1
| | | 0x0802eaf0 c870 strb r0, [r1, 3]
| `---> 0x0802eaf2 f4f7ecf9 bl md380_spiflash_write_zone_struct_with_number_in_byte3_maybe
| | 0x0802eaf6 dff8f007 ldr.w r0, [0x0802f2ee] ; [0x802f2ec:4]=0x2001e5f0 radio_status_1
| | 0x0802eafa c078 ldrb r0, [r0, 3]
| | 0x0802eafc 1f30 adds r0, 0x1f
| | 0x0802eafe 3049 ldr r1, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| | 0x0802eb00 0870 strb r0, [r1]
| | 0x0802eb02 2f49 ldr r1, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| | 0x0802eb04 dff86c08 ldr.w r0, [func_2f378] ; [0x802f378:4]=0x4821b580
| | 0x0802eb08 0068 ldr r0, [r0]
| | 0x0802eb0a 02f047fb bl md380_OSMboxPost
| | 0x0802eb0e 4ff47a70 mov.w r0, 0x3e8 ; 1000
| | 0x0802eb12 05f0cff9 bl OSTimeDly
| | 0x0802eb16 fef727fc bl some_init
\ `-> 0x0802eb1a 01bd pop {r0, pc}
/ (fcn) func_2f118 322
| Caller: ev5_21 ev5_22 func_2f302 ev5_4_8 func_2dd36_beeps_and_sets_kb_keycode
| ev5_3
| func_2f118 ();
| 0x0802f118 10b5 push {r4, lr}
| 0x0802f11a 0400 movs r4, r0
| 0x0802f11c dff8d001 ldr.w r0, [0x0802f2f4] ; [0x802f2f4:4]=0x2001e534 smeter_rssi
| 0x0802f120 0078 ldrb r0, [r0]
| 0x0802f122 0228 cmp r0, 2 ; 2
| ,=< 0x0802f124 40f09880 bne.w 0x802f258
| | 0x0802f128 dff87c02 ldr.w r0, [0x0802f3ac] ; [0x802f3ac:4]=0x2001e8a5
| | 0x0802f12c 0078 ldrb r0, [r0]
| | 0x0802f12e 0528 cmp r0, 5 ; 5
| ,==< 0x0802f130 18d0 beq 0x802f164
| || 0x0802f132 dff87402 ldr.w r0, [0x0802f3ae] ; [0x802f3ac:4]=0x2001e8a5
| || 0x0802f136 0078 ldrb r0, [r0]
| || 0x0802f138 0628 cmp r0, 6 ; 6
| ,===< 0x0802f13a 13d0 beq 0x802f164
| ||| 0x0802f13c dff86802 ldr.w r0, [0x0802f3ac] ; [0x802f3ac:4]=0x2001e8a5
| ||| 0x0802f140 0078 ldrb r0, [r0]
| ||| 0x0802f142 0828 cmp r0, 8 ; 8
| ,====< 0x0802f144 0ed0 beq 0x802f164
| |||| 0x0802f146 dff86002 ldr.w r0, [0x0802f3ae] ; [0x802f3ac:4]=0x2001e8a5
| |||| 0x0802f14a 0078 ldrb r0, [r0]
| |||| 0x0802f14c 0928 cmp r0, 9 ; 9
| ,=====< 0x0802f14e 09d0 beq 0x802f164
| ||||| 0x0802f150 dff85402 ldr.w r0, [0x0802f3ac] ; [0x802f3ac:4]=0x2001e8a5
| ||||| 0x0802f154 0078 ldrb r0, [r0]
| ||||| 0x0802f156 0a28 cmp r0, 0xa ; 10
| ,======< 0x0802f158 04d0 beq 0x802f164
| |||||| 0x0802f15a dff84c02 ldr.w r0, [0x0802f3ae] ; [0x802f3ac:4]=0x2001e8a5
| |||||| 0x0802f15e 0078 ldrb r0, [r0]
| |||||| 0x0802f160 0b28 cmp r0, 0xb ; 11
| ,=======< 0x0802f162 0bd1 bne 0x802f17c
| |`````--> 0x0802f164 dff85c02 ldr.w r0, [0x0802f3c8] ; [0x802f3c8:4]=0x2001e894
| | | 0x0802f168 0088 ldrh r0, [r0]
| | | 0x0802f16a f3f7eafc bl func_22b42
| | | 0x0802f16e dff85002 ldr.w r0, [0x0802f3c6] ; [0x802f3c4:4]=0x2001e856
| | | 0x0802f172 dff85012 ldr.w r1, [0x0802f3ca] ; [0x802f3c8:4]=0x2001e894
| | | 0x0802f176 0988 ldrh r1, [r1]
| | | 0x0802f178 0180 strh r1, [r0]
| | ,==< 0x0802f17a 28e0 b 0x802f1ce
| `-------> 0x0802f17c dff86c02 ldr.w r0, [0x0802f3f0] ; [0x802f3f0:4]=0x2001de78 struct_channel_info2
| || 0x0802f180 808c ldrh r0, [r0, 0x24]
| || 0x0802f182 0028 cmp r0, 0
| ,===< 0x0802f184 0bd1 bne 0x802f19e
| ||| 0x0802f186 dff81402 ldr.w r0, [0x0802f3a2] ; [0x802f3a0:4]=0x2001e5d0 msg_timer_500
| ||| 0x0802f18a 0088 ldrh r0, [r0]
| ||| 0x0802f18c f3f7d9fc bl func_22b42
| ||| 0x0802f190 dff82c02 ldr.w r0, [0x0802f3c4] ; [0x802f3c4:4]=0x2001e856
| ||| 0x0802f194 dff80412 ldr.w r1, [0x0802f3a0] ; [0x802f3a0:4]=0x2001e5d0 msg_timer_500
| ||| 0x0802f198 0988 ldrh r1, [r1]
| ||| 0x0802f19a 0180 strh r1, [r0]
| ,====< 0x0802f19c 17e0 b 0x802f1ce
| |`---> 0x0802f19e dff84c02 ldr.w r0, [0x0802f3f2] ; [0x802f3f0:4]=0x2001de78 struct_channel_info2
| | || 0x0802f1a2 808c ldrh r0, [r0, 0x24]
| | || 0x0802f1a4 40f2e931 movw r1, 0x3e9 ; 1001
| | || 0x0802f1a8 8842 cmp r0, r1
| |,===< 0x0802f1aa 0bd2 bhs 0x802f1c4
| |||| 0x0802f1ac dff83c02 ldr.w r0, [0x0802f3f0] ; [0x802f3f0:4]=0x2001de78 struct_channel_info2
| |||| 0x0802f1b0 808c ldrh r0, [r0, 0x24]
| |||| 0x0802f1b2 f3f7c6fc bl func_22b42
| |||| 0x0802f1b6 dff83402 ldr.w r0, [0x0802f3f2] ; [0x802f3f0:4]=0x2001de78 struct_channel_info2
| |||| 0x0802f1ba 808c ldrh r0, [r0, 0x24]
| |||| 0x0802f1bc dff80012 ldr.w r1, [0x0802f3c4] ; [0x802f3c4:4]=0x2001e856
| |||| 0x0802f1c0 0880 strh r0, [r1]
| ,=====< 0x0802f1c2 04e0 b 0x802f1ce
| ||`---> 0x0802f1c4 dff8f801 ldr.w r0, [0x0802f3c4] ; [0x802f3c4:4]=0x2001e856
| || || 0x0802f1c8 0088 ldrh r0, [r0]
| || || 0x0802f1ca f3f7bafc bl func_22b42
| ``-`--> 0x0802f1ce e4b2 uxtb r4, r4
| | 0x0802f1d0 022c cmp r4, 2 ; 2
| ,==< 0x0802f1d2 12d1 bne 0x802f1fa
| || 0x0802f1d4 dff81802 ldr.w r0, [0x0802f3f4] ; [0x802f3f4:4]=0x2001e4e4
| || 0x0802f1d8 0078 ldrb r0, [r0]
| || 0x0802f1da 10f00300 ands r0, r0, 3
| || 0x0802f1de 0228 cmp r0, 2 ; 2
| ,===< 0x0802f1e0 1dd0 beq 0x802f21e
| ||| 0x0802f1e2 dff8b801 ldr.w r0, [0x0802f3a2] ; [0x802f3a0:4]=0x2001e5d0 msg_timer_500
| ||| 0x0802f1e6 0088 ldrh r0, [r0]
| ||| 0x0802f1e8 f3f7abfc bl func_22b42
| ||| 0x0802f1ec dff8d001 ldr.w r0, [0x0802f3c4] ; [0x802f3c4:4]=0x2001e856
| ||| 0x0802f1f0 dff8a811 ldr.w r1, [0x0802f3a0] ; [0x802f3a0:4]=0x2001e5d0 msg_timer_500
| ||| 0x0802f1f4 0988 ldrh r1, [r1]
| ||| 0x0802f1f6 0180 strh r1, [r0]
| ,====< 0x0802f1f8 11e0 b 0x802f21e
| ||`--> 0x0802f1fa dff8f401 ldr.w r0, [0x0802f3f6] ; [0x802f3f4:4]=0x2001e4e4
| || | 0x0802f1fe 0078 ldrb r0, [r0]
| || | 0x0802f200 10f00300 ands r0, r0, 3
| || | 0x0802f204 0128 cmp r0, 1 ; 1
| ||,==< 0x0802f206 0ad0 beq 0x802f21e
| |||| 0x0802f208 dff89001 ldr.w r0, [0x0802f3a0] ; [0x802f3a0:4]=0x2001e5d0 msg_timer_500
| |||| 0x0802f20c 0088 ldrh r0, [r0]
| |||| 0x0802f20e f3f798fc bl func_22b42
| |||| 0x0802f212 dff8ac01 ldr.w r0, [0x0802f3c6] ; [0x802f3c4:4]=0x2001e856
| |||| 0x0802f216 dff88411 ldr.w r1, [0x0802f3a2] ; [0x802f3a0:4]=0x2001e5d0 msg_timer_500
| |||| 0x0802f21a 0988 ldrh r1, [r1]
| |||| 0x0802f21c 0180 strh r1, [r0]
| ```--> 0x0802f21e dff8a001 ldr.w r0, [0x0802f3c6] ; [0x802f3c4:4]=0x2001e856
| | 0x0802f222 0088 ldrh r0, [r0]
| | 0x0802f224 f3f74ffd bl func_22cc6_spiflash_rd_6
| | 0x0802f228 dff89001 ldr.w r0, [0x0802f3c0] ; [0x802f3c0:4]=0x2001e852
| | 0x0802f22c 0088 ldrh r0, [r0]
| | 0x0802f22e dff89011 ldr.w r1, [0x0802f3c6] ; [0x802f3c4:4]=0x2001e856
| | 0x0802f232 0988 ldrh r1, [r1]
| | 0x0802f234 8842 cmp r0, r1
| ,==< 0x0802f236 0fd0 beq 0x802f258
| || 0x0802f238 dff88001 ldr.w r0, [0x0802f3c0] ; [0x802f3c0:4]=0x2001e852
| || 0x0802f23c dff88011 ldr.w r1, [0x0802f3c4] ; [0x802f3c4:4]=0x2001e856
| || 0x0802f240 0988 ldrh r1, [r1]
| || 0x0802f242 0180 strh r1, [r0]
| || 0x0802f244 02f06afe bl func_31f1c
| || 0x0802f248 2548 ldr r0, [0x0802f2e0] ; [0x802f2e0:4]=0x2001e893
| || 0x0802f24a 0421 movs r1, 4 ; 4
| || 0x0802f24c 0170 strb r1, [r0]
| || 0x0802f24e dff85001 ldr.w r0, [0x0802f3a6] ; [0x802f3a4:4]=0x2001e899
| || 0x0802f252 4ff4fa71 mov.w r1, 0x1f4 ; 500
| || 0x0802f256 0160 str r1, [r0]
\ ``-> 0x0802f258 10bd pop {r4, pc}
/ (fcn) func_2f268 116
| Caller: ev5_21
| func_2f268 ();
| 0x0802f268 80b5 push {r7, lr}
| 0x0802f26a 411e subs r1, r0, 1
| 0x0802f26c c9b2 uxtb r1, r1
| 0x0802f26e 1029 cmp r1, 0x10 ; 16
| ,=< 0x0802f270 33d2 bhs 0x802f2da
| | 0x0802f272 c0b2 uxtb r0, r0
| | 0x0802f274 f4f70cfa bl func_23690
| | 0x0802f278 dff87801 ldr.w r0, [0x0802f3f8] ; [0x802f3f8:4]=0x2001e900
| | 0x0802f27c 0088 ldrh r0, [r0]
| | 0x0802f27e 0028 cmp r0, 0
| ,==< 0x0802f280 04d0 beq 0x802f28c
| || 0x0802f282 dff87401 ldr.w r0, [0x0802f3fe] ; [0x802f3fc:4]=0x2001e898 simplex_or_repeater_flagword
| || 0x0802f286 0078 ldrb r0, [r0]
| || 0x0802f288 8028 cmp r0, 0x80 ; 128
| ,===< 0x0802f28a 0fd0 beq 0x802f2ac
| |`--> 0x0802f28c dff86c01 ldr.w r0, [0x0802f400] ; [0x802f400:4]=0x2001e5f0 radio_status_1
| | | 0x0802f290 0078 ldrb r0, [r0]
| | | 0x0802f292 0128 cmp r0, 1 ; 1
| |,==< 0x0802f294 21d0 beq 0x802f2da
| ||| 0x0802f296 02f041fe bl func_31f1c
| ||| 0x0802f29a 1148 ldr r0, [0x0802f2e2] ; [0x802f2e0:4]=0x2001e893
| ||| 0x0802f29c 0421 movs r1, 4 ; 4
| ||| 0x0802f29e 0170 strb r1, [r0]
| ||| 0x0802f2a0 dff8fc00 ldr.w r0, [0x0802f3a4] ; [0x802f3a4:4]=0x2001e899
| ||| 0x0802f2a4 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||| 0x0802f2a8 0160 str r1, [r0]
| ,====< 0x0802f2aa 16e0 b 0x802f2da
| |`---> 0x0802f2ac dff84401 ldr.w r0, [0x0802f3f8] ; [0x802f3f8:4]=0x2001e900
| | || 0x0802f2b0 0088 ldrh r0, [r0]
| | || 0x0802f2b2 401e subs r0, r0, 1
| | || 0x0802f2b4 80b2 uxth r0, r0
| | || 0x0802f2b6 b0f57a7f cmp.w r0, 0x3e8 ; 1000
| |,===< 0x0802f2ba 0ed2 bhs 0x802f2da
| |||| 0x0802f2bc dff83401 ldr.w r0, [0x0802f3f8] ; [0x802f3f8:4]=0x2001e900
| |||| 0x0802f2c0 0088 ldrh r0, [r0]
| |||| 0x0802f2c2 f3f73efc bl func_22b42
| |||| 0x0802f2c6 02f029fe bl func_31f1c
| |||| 0x0802f2ca 0548 ldr r0, [0x0802f2e2] ; [0x802f2e0:4]=0x2001e893
| |||| 0x0802f2cc 0421 movs r1, 4 ; 4
| |||| 0x0802f2ce 0170 strb r1, [r0]
| |||| 0x0802f2d0 dff8cc00 ldr.w r0, [0x0802f3a4] ; [0x802f3a4:4]=0x2001e899
| |||| 0x0802f2d4 4ff4fa71 mov.w r1, 0x1f4 ; 500
| |||| 0x0802f2d8 0160 str r1, [r0]
\ ````-> 0x0802f2da 01bd pop {r0, pc}
/ (fcn) func_2f302 114
| func_2f302 ();
| 0x0802f302 80b5 push {r7, lr}
| 0x0802f304 3e48 ldr r0, [0x0802f400] ; [0x802f400:4]=0x2001e5f0 radio_status_1
| 0x0802f306 4078 ldrb r0, [r0, 1]
| 0x0802f308 c0f34000 ubfx r0, r0, 1, 1
| 0x0802f30c c007 lsls r0, r0, 0x1f
| ,=< 0x0802f30e 30d5 bpl 0x802f372
| | 0x0802f310 3c48 ldr r0, [0x0802f404] ; [0x802f404:4]=0x2001e892 gui_opmode3
| | 0x0802f312 0078 ldrb r0, [r0]
| | 0x0802f314 0028 cmp r0, 0
| ,==< 0x0802f316 2cd1 bne 0x802f372
| || 0x0802f318 3c48 ldr r0, [0x0802f40c] ; [0x802f40c:4]=0x2001e604 q_status_4
| || 0x0802f31a 4078 ldrb r0, [r0, 1]
| || 0x0802f31c c007 lsls r0, r0, 0x1f
| ,===< 0x0802f31e 28d4 bmi 0x802f372
| ||| 0x0802f320 2e48 ldr r0, [0x0802f3dc] ; [0x802f3dc:4]=0x2001deb8 current_channel_info
| ||| 0x0802f322 0078 ldrb r0, [r0]
| ||| 0x0802f324 10f00300 ands r0, r0, 3
| ||| 0x0802f328 0128 cmp r0, 1 ; 1
| ,====< 0x0802f32a 22d1 bne 0x802f372
| |||| 0x0802f32c 3848 ldr r0, [0x0802f410] ; [0x802f410:4]=0x2001e5f4
| |||| 0x0802f32e 4078 ldrb r0, [r0, 1]
| |||| 0x0802f330 c0f38000 ubfx r0, r0, 2, 1
| |||| 0x0802f334 c007 lsls r0, r0, 0x1f
| ,=====< 0x0802f336 05d4 bmi 0x802f344
| ||||| 0x0802f338 2d48 ldr r0, [0x0802f3f0] ; [0x802f3f0:4]=0x2001de78 struct_channel_info2
| ||||| 0x0802f33a 4078 ldrb r0, [r0, 1]
| ||||| 0x0802f33c c0f34000 ubfx r0, r0, 1, 1
| ||||| 0x0802f340 c007 lsls r0, r0, 0x1f
| ,======< 0x0802f342 08d5 bpl 0x802f356
| |`-----> 0x0802f344 3048 ldr r0, [0x0802f408] ; [0x802f408:4]=0x2001e8a8 beep_code_send
| | |||| 0x0802f346 0e21 movs r1, 0xe ; 14
| | |||| 0x0802f348 0170 strb r1, [r0]
| | |||| 0x0802f34a 2f49 ldr r1, [0x0802f40a] ; [0x802f408:4]=0x2001e8a8 beep_code_send
| | |||| 0x0802f34c 0948 ldr r0, [0x0802f374] ; [0x802f374:4]=0x2001e67c event2_mbox_poi_beep
| | |||| 0x0802f34e 0068 ldr r0, [r0]
| | |||| 0x0802f350 01f024ff bl md380_OSMboxPost
| |,=====< 0x0802f354 0de0 b 0x802f372
| `------> 0x0802f356 2d48 ldr r0, [0x0802f40e] ; [0x802f40c:4]=0x2001e604 q_status_4
| ||||| 0x0802f358 4078 ldrb r0, [r0, 1]
| ||||| 0x0802f35a 50f00100 orrs r0, r0, 1
| ||||| 0x0802f35e 2b49 ldr r1, [0x0802f40e] ; [0x802f40c:4]=0x2001e604 q_status_4
| ||||| 0x0802f360 4870 strb r0, [r1, 1]
| ||||| 0x0802f362 2c48 ldr r0, [0x0802f416] ; [0x802f414:4]=0x2001e8e3
| ||||| 0x0802f364 0621 movs r1, 6 ; 6
| ||||| 0x0802f366 0170 strb r1, [r0]
| ||||| 0x0802f368 0120 movs r0, 1 ; 1
| ||||| 0x0802f36a fff7d5fe bl func_2f118
| ||||| 0x0802f36e 0df0b3fc bl func_3ccd8
\ `````-> 0x0802f372 01bd pop {r0, pc}
/ (fcn) func_2f378 36
| func_2f378 ();
| 0x0802f378 80b5 push {r7, lr}
| 0x0802f37a 2148 ldr r0, [0x0802f402] ; [0x802f400:4]=0x2001e5f0 radio_status_1
| 0x0802f37c 4078 ldrb r0, [r0, 1]
| 0x0802f37e c007 lsls r0, r0, 0x1f
| ,=< 0x0802f380 0bd5 bpl 0x802f39a
| | 0x0802f382 2248 ldr r0, [0x0802f40e] ; [0x802f40c:4]=0x2001e604 q_status_4
| | 0x0802f384 4078 ldrb r0, [r0, 1]
| | 0x0802f386 c007 lsls r0, r0, 0x1f
| ,==< 0x0802f388 07d5 bpl 0x802f39a
| || 0x0802f38a 2048 ldr r0, [0x0802f40e] ; [0x802f40c:4]=0x2001e604 q_status_4
| || 0x0802f38c 4078 ldrb r0, [r0, 1]
| || 0x0802f38e 10f0fe00 ands r0, r0, 0xfe
| || 0x0802f392 1e49 ldr r1, [0x0802f40e] ; [0x802f40c:4]=0x2001e604 q_status_4
| || 0x0802f394 4870 strb r0, [r1, 1]
| || 0x0802f396 fef7bcfc bl func_2dd12
\ ``-> 0x0802f39a 01bd pop {r0, pc}
/ (fcn) func_2f418 96
| Caller: func_2f8a0_erases_and_writes_flash
| func_2f418 ();
| 0x0802f418 30b4 push {r4, r5}
| 0x0802f41a dff86804 ldr.w r0, [0x0802f88a] ; [0x802f888:4]=0x10000000
| 0x0802f41e dff86014 ldr.w r1, [0x0802f886] ; [0x802f884:4]=0x2001c964
| 0x0802f422 0022 movs r2, 0
| 0x0802f424 0a60 str r2, [r1]
| 0x0802f426 0021 movs r1, 0
| ,=< 0x0802f428 21e0 b 0x802f46e
| .--> 0x0802f42a dff85c24 ldr.w r2, [0x0802f88e] ; [0x802f88c:4]=0x200049e0
| || 0x0802f42e 52f82120 ldr.w r2, [r2, r1, lsl 2]
| || 0x0802f432 002a cmp r2, 0
| ,===< 0x0802f434 02d0 beq 0x802f43c
| ||| 0x0802f436 b2f5776f cmp.w r2, 0xf70 ; 3952
| ,====< 0x0802f43a 04d9 bls 0x802f446
| |`---> 0x0802f43c dff84c34 ldr.w r3, [0x0802f890] ; [0x802f890:4]=0x2001e23c
| | || 0x0802f440 1b68 ldr r3, [r3]
| | || 0x0802f442 9a42 cmp r2, r3
| |,===< 0x0802f444 12d1 bne 0x802f46c
| `----> 0x0802f446 ca08 lsrs r2, r1, 3
| ||| 0x0802f448 125c ldrb r2, [r2, r0]
| ||| 0x0802f44a 0123 movs r3, 1 ; 1
| ||| 0x0802f44c 0824 movs r4, 8 ; 8
| ||| 0x0802f44e b1fbf4f5 udiv r5, r1, r4
| ||| 0x0802f452 05fb1415 mls r5, r5, r4, r1
| ||| 0x0802f456 ab40 lsls r3, r5
| ||| 0x0802f458 1a43 orrs r2, r3
| ||| 0x0802f45a cb08 lsrs r3, r1, 3
| ||| 0x0802f45c 1a54 strb r2, [r3, r0]
| ||| 0x0802f45e dff82024 ldr.w r2, [0x0802f886] ; [0x802f884:4]=0x2001c964
| ||| 0x0802f462 1268 ldr r2, [r2]
| ||| 0x0802f464 521c adds r2, r2, 1
| ||| 0x0802f466 dff81834 ldr.w r3, [0x0802f886] ; [0x802f884:4]=0x2001c964
| ||| 0x0802f46a 1a60 str r2, [r3]
| `---> 0x0802f46c 491c adds r1, r1, 1
| |`-> 0x0802f46e b1f5776f cmp.w r1, 0xf70 ; 3952
| `==< 0x0802f472 dad3 blo 0x802f42a
| 0x0802f474 30bc pop {r4, r5}
\ 0x0802f476 7047 bx lr
/ (fcn) func_2f478 168
| Caller: func_2f520 menu_func_0fe74 usb_dnld_handle
| func_2f478 ();
| 0x0802f478 70b4 push {r4, r5, r6}
| 0x0802f47a dff81404 ldr.w r0, [0x0802f896] ; [0x802f894:4]=0x2001e83c
| 0x0802f47e dff81414 ldr.w r1, [0x0802f89a] ; [0x802f898:4]=0x2001c774
| 0x0802f482 0022 movs r2, 0
| 0x0802f484 0a80 strh r2, [r1]
| 0x0802f486 dff8f013 ldr.w r1, [0x0802f87e] ; [0x802f87c:4]=0x10006da8
| 0x0802f48a 0022 movs r2, 0
| 0x0802f48c 0a80 strh r2, [r1]
| 0x0802f48e 0021 movs r1, 0
| ,=< 0x0802f490 03e0 b 0x802f49a
| .--> 0x0802f492 89b2 uxth r1, r1
| || 0x0802f494 0022 movs r2, 0
| || 0x0802f496 0a54 strb r2, [r1, r0]
| || 0x0802f498 491c adds r1, r1, 1
| |`-> 0x0802f49a 89b2 uxth r1, r1
| | 0x0802f49c 2029 cmp r1, 0x20 ; 32
| `==< 0x0802f49e f8d3 blo 0x802f492
| 0x0802f4a0 0021 movs r1, 0
| ,=< 0x0802f4a2 37e0 b 0x802f514
| .--> 0x0802f4a4 89b2 uxth r1, r1
| || 0x0802f4a6 4a01 lsls r2, r1, 5
| || 0x0802f4a8 dff8d033 ldr.w r3, [0x0802f880] ; [0x802f880:4]=0x2001e5a0
| || 0x0802f4ac d358 ldr r3, [r2, r3]
| || 0x0802f4ae 89b2 uxth r1, r1
| || 0x0802f4b0 dff8c823 ldr.w r2, [0x0802f880] ; [0x802f880:4]=0x2001e5a0
| || 0x0802f4b4 12eb4112 adds.w r2, r2, r1, lsl 5
| || 0x0802f4b8 9289 ldrh r2, [r2, 0xc]
| || 0x0802f4ba b3f5776f cmp.w r3, 0xf70 ; 3952
| ,===< 0x0802f4be 28d2 bhs 0x802f512
| ||| 0x0802f4c0 002b cmp r3, 0
| ,====< 0x0802f4c2 26d0 beq 0x802f512
| |||| 0x0802f4c4 dff8cc33 ldr.w r3, [0x0802f898] ; [0x802f898:4]=0x2001c774
| |||| 0x0802f4c8 1b88 ldrh r3, [r3]
| |||| 0x0802f4ca 5b1c adds r3, r3, 1
| |||| 0x0802f4cc dff8c443 ldr.w r4, [0x0802f898] ; [0x802f898:4]=0x2001c774
| |||| 0x0802f4d0 2380 strh r3, [r4]
| |||| 0x0802f4d2 89b2 uxth r1, r1
| |||| 0x0802f4d4 0823 movs r3, 8 ; 8
| |||| 0x0802f4d6 91fbf3f3 sdiv r3, r1, r3
| |||| 0x0802f4da 89b2 uxth r1, r1
| |||| 0x0802f4dc 0825 movs r5, 8 ; 8
| |||| 0x0802f4de 91fbf5f4 sdiv r4, r1, r5
| |||| 0x0802f4e2 04fb1514 mls r4, r4, r5, r1
| |||| 0x0802f4e6 9bb2 uxth r3, r3
| |||| 0x0802f4e8 1d5c ldrb r5, [r3, r0]
| |||| 0x0802f4ea 0126 movs r6, 1 ; 1
| |||| 0x0802f4ec 16fa04f4 lsls.w r4, r6, r4
| |||| 0x0802f4f0 2c43 orrs r4, r5
| |||| 0x0802f4f2 9bb2 uxth r3, r3
| |||| 0x0802f4f4 1c54 strb r4, [r3, r0]
| |||| 0x0802f4f6 dff88033 ldr.w r3, [0x0802f87e] ; [0x802f87c:4]=0x10006da8
| |||| 0x0802f4fa 1b88 ldrh r3, [r3]
| |||| 0x0802f4fc 92b2 uxth r2, r2
| |||| 0x0802f4fe 9342 cmp r3, r2
| ,=====< 0x0802f500 07d2 bhs 0x802f512
| ||||| 0x0802f502 531e subs r3, r2, 1
| ||||| 0x0802f504 9bb2 uxth r3, r3
| ||||| 0x0802f506 b3f5776f cmp.w r3, 0xf70 ; 3952
| ,======< 0x0802f50a 02d2 bhs 0x802f512
| |||||| 0x0802f50c dff86833 ldr.w r3, [0x0802f87c] ; [0x802f87c:4]=0x10006da8
| |||||| 0x0802f510 1a80 strh r2, [r3]
| ````---> 0x0802f512 491c adds r1, r1, 1
| |`-> 0x0802f514 89b2 uxth r1, r1
| | 0x0802f516 b1f5807f cmp.w r1, 0x100 ; 256
| `==< 0x0802f51a c3d3 blo 0x802f4a4
| 0x0802f51c 70bc pop {r4, r5, r6}
\ 0x0802f51e 7047 bx lr
/ (fcn) func_2f520 110
| Caller: menu_func_0ff62
| func_2f520 ();
| 0x0802f520 70b5 push {r4, r5, r6, lr}
| 0x0802f522 0400 movs r4, r0
| 0x0802f524 0025 movs r5, 0
| 0x0802f526 dff86863 ldr.w r6, [0x0802f896] ; [0x802f894:4]=0x2001e83c
| 0x0802f52a fff7a5ff bl func_2f478
| 0x0802f52e dff86403 ldr.w r0, [0x0802f89a] ; [0x802f898:4]=0x2001c774
| 0x0802f532 0088 ldrh r0, [r0]
| 0x0802f534 a4b2 uxth r4, r4
| 0x0802f536 a042 cmp r0, r4
| ,=< 0x0802f538 27d3 blo 0x802f58a
| | 0x0802f53a a4b2 uxth r4, r4
| | 0x0802f53c 012c cmp r4, 1 ; 1
| ,==< 0x0802f53e 24d3 blo 0x802f58a
| || 0x0802f540 0020 movs r0, 0
| ,===< 0x0802f542 00e0 b 0x802f546
| ..----> 0x0802f544 401c adds r0, r0, 1
| ||`---> 0x0802f546 80b2 uxth r0, r0
| || || 0x0802f548 b0f5807f cmp.w r0, 0x100 ; 256
| ||,===< 0x0802f54c 1bd2 bhs 0x802f586
| ||||| 0x0802f54e 80b2 uxth r0, r0
| ||||| 0x0802f550 0821 movs r1, 8 ; 8
| ||||| 0x0802f552 90fbf1f1 sdiv r1, r0, r1
| ||||| 0x0802f556 80b2 uxth r0, r0
| ||||| 0x0802f558 0823 movs r3, 8 ; 8
| ||||| 0x0802f55a 90fbf3f2 sdiv r2, r0, r3
| ||||| 0x0802f55e 02fb1302 mls r2, r2, r3, r0
| ||||| 0x0802f562 89b2 uxth r1, r1
| ||||| 0x0802f564 895d ldrb r1, [r1, r6]
| ||||| 0x0802f566 1141 asrs r1, r2
| ||||| 0x0802f568 c907 lsls r1, r1, 0x1f
| `=====< 0x0802f56a ebd5 bpl 0x802f544
| |||| 0x0802f56c 6d1c adds r5, r5, 1
| |||| 0x0802f56e dff82413 ldr.w r1, [0x0802f89a] ; [0x802f898:4]=0x2001c774
| |||| 0x0802f572 0988 ldrh r1, [r1]
| |||| 0x0802f574 a4b2 uxth r4, r4
| |||| 0x0802f576 091b subs r1, r1, r4
| |||| 0x0802f578 491c adds r1, r1, 1
| |||| 0x0802f57a adb2 uxth r5, r5
| |||| 0x0802f57c a942 cmp r1, r5
| `====< 0x0802f57e e1d1 bne 0x802f544
| ||| 0x0802f580 401c adds r0, r0, 1
| ||| 0x0802f582 80b2 uxth r0, r0
| ,====< 0x0802f584 02e0 b 0x802f58c
| |`---> 0x0802f586 0020 movs r0, 0
| |,===< 0x0802f588 00e0 b 0x802f58c
| ||``-> 0x0802f58a 0020 movs r0, 0
\ ``---> 0x0802f58c 70bd pop {r4, r5, r6, pc}
/ (fcn) func_2f58e 376
| Caller: menu_func_0ff62
| func_2f58e ();
| 0x0802f58e 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x0802f592 82b0 sub sp, 8
| 0x0802f594 8046 mov r8, r0
| 0x0802f596 0025 movs r5, 0
| 0x0802f598 dff8fc42 ldr.w r4, [0x0802f89c] ; [0x802f89c:4]=0x2001e83a
| 0x0802f59c dff8fc02 ldr.w r0, [func_2f8a0_erases_and_writes_flash] ; [0x802f8a0:4]=0x2000b580
| 0x0802f5a0 0021 movs r1, 0
| 0x0802f5a2 0180 strh r1, [r0]
| 0x0802f5a4 0027 movs r7, 0
| ,=< 0x0802f5a6 05e0 b 0x802f5b4
| .--> 0x0802f5a8 bfb2 uxth r7, r7
| || 0x0802f5aa dff8ec02 ldr.w r0, [0x0802f89e] ; [0x802f89c:4]=0x2001e83a
| || 0x0802f5ae 0021 movs r1, 0
| || 0x0802f5b0 3954 strb r1, [r7, r0]
| || 0x0802f5b2 7f1c adds r7, r7, 1
| |`-> 0x0802f5b4 bfb2 uxth r7, r7
| | 0x0802f5b6 b7f5f77f cmp.w r7, 0x1ee ; 494
| `==< 0x0802f5ba f5d3 blo 0x802f5a8
| 0x0802f5bc b8f1000f cmp.w r8, 0
| ,=< 0x0802f5c0 02d0 beq 0x802f5c8
| | 0x0802f5c2 b8f5776f cmp.w r8, 0xf70 ; 3952
| ,==< 0x0802f5c6 00d9 bls 0x802f5ca
| ,=`-> 0x0802f5c8 9be0 b 0x802f702
| |`--> 0x0802f5ca 4ff48050 mov.w r0, 0x1000
| | 0x0802f5ce 00fb08f0 mul r0, r0, r8
| | 0x0802f5d2 10f50f26 adds.w r6, r0, 0x8f000
| | 0x0802f5d6 0027 movs r7, 0
| | ,=< 0x0802f5d8 33e0 b 0x802f642
| |.--> 0x0802f5da 0422 movs r2, 4 ; 4
| ||| 0x0802f5dc 3100 movs r1, r6
| ||| 0x0802f5de 00a8 add r0, sp, 0
| ||| 0x0802f5e0 01f049ff bl md380_spiflash_read
| ||| 0x0802f5e4 9df80300 ldrb.w r0, [sp, 3]
| ||| 0x0802f5e8 9df80210 ldrb.w r1, [sp, 2]
| ||| 0x0802f5ec 0904 lsls r1, r1, 0x10
| ||| 0x0802f5ee 11eb0060 adds.w r0, r1, r0, lsl 24
| ||| 0x0802f5f2 9df80110 ldrb.w r1, [sp, 1]
| ||| 0x0802f5f6 10eb0120 adds.w r0, r0, r1, lsl 8
| ||| 0x0802f5fa 9df80010 ldrb.w r1, [sp]
| ||| 0x0802f5fe 50fa81f0 uxtab r0, r0, r1
| ||| 0x0802f602 4036 adds r6, 0x40
| ||| 0x0802f604 b0f5776f cmp.w r0, 0xf70 ; 3952
| ,====< 0x0802f608 1ad8 bhi 0x802f640
| |||| 0x0802f60a 0028 cmp r0, 0
| ,=====< 0x0802f60c 18d0 beq 0x802f640
| ||||| 0x0802f60e dff88c02 ldr.w r0, [0x0802f8a2] ; [0x802f8a0:4]=0x2000b580
| ||||| 0x0802f612 0088 ldrh r0, [r0]
| ||||| 0x0802f614 401c adds r0, r0, 1
| ||||| 0x0802f616 dff88412 ldr.w r1, [0x0802f8a2] ; [0x802f8a0:4]=0x2000b580
| ||||| 0x0802f61a 0880 strh r0, [r1]
| ||||| 0x0802f61c bfb2 uxth r7, r7
| ||||| 0x0802f61e 0820 movs r0, 8 ; 8
| ||||| 0x0802f620 97fbf0f0 sdiv r0, r7, r0
| ||||| 0x0802f624 bfb2 uxth r7, r7
| ||||| 0x0802f626 0822 movs r2, 8 ; 8
| ||||| 0x0802f628 97fbf2f1 sdiv r1, r7, r2
| ||||| 0x0802f62c 01fb1271 mls r1, r1, r2, r7
| ||||| 0x0802f630 80b2 uxth r0, r0
| ||||| 0x0802f632 025d ldrb r2, [r0, r4]
| ||||| 0x0802f634 0123 movs r3, 1 ; 1
| ||||| 0x0802f636 13fa01f1 lsls.w r1, r3, r1
| ||||| 0x0802f63a 1143 orrs r1, r2
| ||||| 0x0802f63c 80b2 uxth r0, r0
| ||||| 0x0802f63e 0155 strb r1, [r0, r4]
| ``----> 0x0802f640 7f1c adds r7, r7, 1
| ||`-> 0x0802f642 bfb2 uxth r7, r7
| || 0x0802f644 402f cmp r7, 0x40 ; '@' ; 64
| |`==< 0x0802f646 c8d3 blo 0x802f5da
| | 0x0802f648 4046 mov r0, r8
| | 0x0802f64a f3f7d3ff bl 0x80235f4
| | 0x0802f64e 8046 mov r8, r0
| | .-> 0x0802f650 dff83802 ldr.w r0, [0x0802f890] ; [0x802f890:4]=0x2001e23c
| | | 0x0802f654 0068 ldr r0, [r0]
| | | 0x0802f656 8045 cmp r8, r0
| |,==< 0x0802f658 53d0 beq 0x802f702
| ||| 0x0802f65a b8f5776f cmp.w r8, 0xf70 ; 3952
| ,====< 0x0802f65e 50d8 bhi 0x802f702
| |||| 0x0802f660 b8f1000f cmp.w r8, 0
| ,=====< 0x0802f664 4dd0 beq 0x802f702
| ||||| 0x0802f666 adb2 uxth r5, r5
| ||||| 0x0802f668 3c2d cmp r5, 0x3c ; '<' ; 60
| ,======< 0x0802f66a 4ad2 bhs 0x802f702
| |||||| 0x0802f66c 6d1c adds r5, r5, 1
| |||||| 0x0802f66e 4646 mov r6, r8
| |||||| 0x0802f670 4046 mov r0, r8
| |||||| 0x0802f672 f3f7bfff bl 0x80235f4
| |||||| 0x0802f676 8046 mov r8, r0
| |||||| 0x0802f678 4ff48050 mov.w r0, 0x1000
| |||||| 0x0802f67c 00fb06f0 mul r0, r0, r6
| |||||| 0x0802f680 10f50f26 adds.w r6, r0, 0x8f000
| |||||| 0x0802f684 4020 movs r0, 0x40 ; '@' ; 64
| |||||| 0x0802f686 15fb00f7 smulbb r7, r5, r0
| .-------> 0x0802f68a bfb2 uxth r7, r7
| ||||||| 0x0802f68c adb2 uxth r5, r5
| ||||||| 0x0802f68e 681c adds r0, r5, 1
| ||||||| 0x0802f690 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0802f692 4843 muls r0, r1, r0
| ||||||| 0x0802f694 8742 cmp r7, r0
| ||||||`=< 0x0802f696 dbda bge 0x802f650
| |||||| 0x0802f698 0422 movs r2, 4 ; 4
| |||||| 0x0802f69a 3100 movs r1, r6
| |||||| 0x0802f69c 00a8 add r0, sp, 0
| |||||| 0x0802f69e 01f0eafe bl md380_spiflash_read
| |||||| 0x0802f6a2 9df80300 ldrb.w r0, [sp, 3]
| |||||| 0x0802f6a6 9df80210 ldrb.w r1, [sp, 2]
| |||||| 0x0802f6aa 0904 lsls r1, r1, 0x10
| |||||| 0x0802f6ac 11eb0060 adds.w r0, r1, r0, lsl 24
| |||||| 0x0802f6b0 9df80110 ldrb.w r1, [sp, 1]
| |||||| 0x0802f6b4 10eb0120 adds.w r0, r0, r1, lsl 8
| |||||| 0x0802f6b8 9df80010 ldrb.w r1, [sp]
| |||||| 0x0802f6bc 50fa81f0 uxtab r0, r0, r1
| |||||| 0x0802f6c0 4036 adds r6, 0x40
| |||||| 0x0802f6c2 b0f5776f cmp.w r0, 0xf70 ; 3952
| ||||||,=< 0x0802f6c6 1ad8 bhi 0x802f6fe
| ||||||| 0x0802f6c8 0028 cmp r0, 0
| ========< 0x0802f6ca 18d0 beq 0x802f6fe
| ||||||| 0x0802f6cc dff8cc01 ldr.w r0, [func_2f8a0_erases_and_writes_flash] ; [0x802f8a0:4]=0x2000b580
| ||||||| 0x0802f6d0 0088 ldrh r0, [r0]
| ||||||| 0x0802f6d2 401c adds r0, r0, 1
| ||||||| 0x0802f6d4 dff8c411 ldr.w r1, [func_2f8a0_erases_and_writes_flash] ; [0x802f8a0:4]=0x2000b580
| ||||||| 0x0802f6d8 0880 strh r0, [r1]
| ||||||| 0x0802f6da bfb2 uxth r7, r7
| ||||||| 0x0802f6dc 0820 movs r0, 8 ; 8
| ||||||| 0x0802f6de 97fbf0f0 sdiv r0, r7, r0
| ||||||| 0x0802f6e2 bfb2 uxth r7, r7
| ||||||| 0x0802f6e4 0822 movs r2, 8 ; 8
| ||||||| 0x0802f6e6 97fbf2f1 sdiv r1, r7, r2
| ||||||| 0x0802f6ea 01fb1271 mls r1, r1, r2, r7
| ||||||| 0x0802f6ee 80b2 uxth r0, r0
| ||||||| 0x0802f6f0 025d ldrb r2, [r0, r4]
| ||||||| 0x0802f6f2 0123 movs r3, 1 ; 1
| ||||||| 0x0802f6f4 13fa01f1 lsls.w r1, r3, r1
| ||||||| 0x0802f6f8 1143 orrs r1, r2
| ||||||| 0x0802f6fa 80b2 uxth r0, r0
| ||||||| 0x0802f6fc 0155 strb r1, [r0, r4]
| ------`-> 0x0802f6fe 7f1c adds r7, r7, 1
| `=======< 0x0802f700 c3e7 b 0x802f68a
\ `````--> 0x0802f702 bde8f381 pop.w {r0, r1, r4, r5, r6, r7, r8, pc}
/ (fcn) func_2f706 368
| Caller: menu_func_10120
| func_2f706 ();
| 0x0802f706 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x0802f70a 0400 movs r4, r0
| 0x0802f70c 0800 movs r0, r1
| 0x0802f70e 0027 movs r7, 0
| 0x0802f710 0025 movs r5, 0
| 0x0802f712 dff88461 ldr.w r6, [0x0802f89e] ; [0x802f89c:4]=0x2001e83a
| 0x0802f716 dff88411 ldr.w r1, [0x0802f8a2] ; [0x802f8a0:4]=0x2000b580
| 0x0802f71a 0988 ldrh r1, [r1]
| 0x0802f71c 4029 cmp r1, 0x40 ; '@' ; 64
| ,=< 0x0802f71e 2ed2 bhs 0x802f77e
| | 0x0802f720 dff87801 ldr.w r0, [func_2f8a0_erases_and_writes_flash] ; [0x802f8a0:4]=0x2000b580
| | 0x0802f724 0088 ldrh r0, [r0]
| | 0x0802f726 a4b2 uxth r4, r4
| | 0x0802f728 a042 cmp r0, r4
| ,==< 0x0802f72a 26d3 blo 0x802f77a
| || 0x0802f72c a4b2 uxth r4, r4
| || 0x0802f72e 012c cmp r4, 1 ; 1
| ,===< 0x0802f730 23d3 blo 0x802f77a
| ||| 0x0802f732 0021 movs r1, 0
| ,====< 0x0802f734 00e0 b 0x802f738
| ..-----> 0x0802f736 491c adds r1, r1, 1
| ||`----> 0x0802f738 89b2 uxth r1, r1
| || ||| 0x0802f73a 4029 cmp r1, 0x40 ; '@' ; 64
| ||,====< 0x0802f73c 1bd2 bhs 0x802f776
| |||||| 0x0802f73e 89b2 uxth r1, r1
| |||||| 0x0802f740 0820 movs r0, 8 ; 8
| |||||| 0x0802f742 91fbf0f3 sdiv r3, r1, r0
| |||||| 0x0802f746 89b2 uxth r1, r1
| |||||| 0x0802f748 0820 movs r0, 8 ; 8
| |||||| 0x0802f74a 91fbf0f2 sdiv r2, r1, r0
| |||||| 0x0802f74e 02fb1012 mls r2, r2, r0, r1
| |||||| 0x0802f752 9bb2 uxth r3, r3
| |||||| 0x0802f754 985d ldrb r0, [r3, r6]
| |||||| 0x0802f756 1041 asrs r0, r2
| |||||| 0x0802f758 c007 lsls r0, r0, 0x1f
| `======< 0x0802f75a ecd5 bpl 0x802f736
| ||||| 0x0802f75c 6d1c adds r5, r5, 1
| ||||| 0x0802f75e adb2 uxth r5, r5
| ||||| 0x0802f760 dff83801 ldr.w r0, [func_2f8a0_erases_and_writes_flash] ; [0x802f8a0:4]=0x2000b580
| ||||| 0x0802f764 0088 ldrh r0, [r0]
| ||||| 0x0802f766 a4b2 uxth r4, r4
| ||||| 0x0802f768 001b subs r0, r0, r4
| ||||| 0x0802f76a 401c adds r0, r0, 1
| ||||| 0x0802f76c 8542 cmp r5, r0
| `=====< 0x0802f76e e2d1 bne 0x802f736
| |||| 0x0802f770 481c adds r0, r1, 1
| |||| 0x0802f772 80b2 uxth r0, r0
| ,=====< 0x0802f774 7de0 b 0x802f872
| |`----> 0x0802f776 0020 movs r0, 0
| |,====< 0x0802f778 7be0 b 0x802f872
| ||``--> 0x0802f77a 0020 movs r0, 0
| || ,==< 0x0802f77c 79e0 b 0x802f872
| || |`-> 0x0802f77e dff81c11 ldr.w r1, [0x0802f8a2] ; [0x802f8a0:4]=0x2000b580
| || | 0x0802f782 0988 ldrh r1, [r1]
| || | 0x0802f784 a4b2 uxth r4, r4
| || | 0x0802f786 a142 cmp r1, r4
| || |,=< 0x0802f788 26d3 blo 0x802f7d8
| || || 0x0802f78a a4b2 uxth r4, r4
| || || 0x0802f78c 012c cmp r4, 1 ; 1
| ||,===< 0x0802f78e 23d3 blo 0x802f7d8
| ||||| 0x0802f790 0021 movs r1, 0
| ,======< 0x0802f792 00e0 b 0x802f796
| .-------> 0x0802f794 491c adds r1, r1, 1
| |`------> 0x0802f796 89b2 uxth r1, r1
| | ||||| 0x0802f798 4029 cmp r1, 0x40 ; '@' ; 64
| |,======< 0x0802f79a 1dd2 bhs 0x802f7d8
| ||||||| 0x0802f79c 89b2 uxth r1, r1
| ||||||| 0x0802f79e 0822 movs r2, 8 ; 8
| ||||||| 0x0802f7a0 91fbf2f3 sdiv r3, r1, r2
| ||||||| 0x0802f7a4 89b2 uxth r1, r1
| ||||||| 0x0802f7a6 5ff0080c movs.w ip, 8 ; 8
| ||||||| 0x0802f7aa 91fbfcf2 sdiv r2, r1, ip
| ||||||| 0x0802f7ae 02fb1c12 mls r2, r2, ip, r1
| ||||||| 0x0802f7b2 9bb2 uxth r3, r3
| ||||||| 0x0802f7b4 9b5d ldrb r3, [r3, r6]
| ||||||| 0x0802f7b6 53fa02f2 asrs.w r2, r3, r2
| ||||||| 0x0802f7ba d207 lsls r2, r2, 0x1f
| ========< 0x0802f7bc ead5 bpl 0x802f794
| ||||||| 0x0802f7be 6d1c adds r5, r5, 1
| ||||||| 0x0802f7c0 adb2 uxth r5, r5
| ||||||| 0x0802f7c2 dff8d820 ldr.w r2, [0x0802f8a2] ; [0x802f8a0:4]=0x2000b580
| ||||||| 0x0802f7c6 1288 ldrh r2, [r2]
| ||||||| 0x0802f7c8 a4b2 uxth r4, r4
| ||||||| 0x0802f7ca 121b subs r2, r2, r4
| ||||||| 0x0802f7cc 521c adds r2, r2, 1
| ||||||| 0x0802f7ce 9542 cmp r5, r2
| `=======< 0x0802f7d0 e0d1 bne 0x802f794
| |||||| 0x0802f7d2 481c adds r0, r1, 1
| |||||| 0x0802f7d4 80b2 uxth r0, r0
| ,=======< 0x0802f7d6 4ce0 b 0x802f872
| |`--`-`-> 0x0802f7d8 7f1c adds r7, r7, 1
| | || | 0x0802f7da dff8c010 ldr.w r1, [0x0802f8a2] ; [0x802f8a0:4]=0x2000b580
| | || | 0x0802f7de 0988 ldrh r1, [r1]
| | || | 0x0802f7e0 4022 movs r2, 0x40 ; '@' ; 64
| | || | 0x0802f7e2 91fbf2f8 sdiv r8, r1, r2
| | || |,=< 0x0802f7e6 02e0 b 0x802f7ee
| -.--.---> 0x0802f7e8 7f1c adds r7, r7, 1
| ||||||| 0x0802f7ea b8f10108 subs.w r8, r8, 1
| ||||||`-> 0x0802f7ee 1ffa88f8 uxth.w r8, r8
| |||||| 0x0802f7f2 b8f1010f cmp.w r8, 1 ; 1
| ||||||,=< 0x0802f7f6 3bd3 blo 0x802f870
| ||||||| 0x0802f7f8 80b2 uxth r0, r0
| ||||||| 0x0802f7fa f3f7fbfe bl 0x80235f4
| ||||||| 0x0802f7fe dff89c10 ldr.w r1, [0x0802f8a2] ; [0x802f8a0:4]=0x2000b580
| ||||||| 0x0802f802 0988 ldrh r1, [r1]
| ||||||| 0x0802f804 a4b2 uxth r4, r4
| ||||||| 0x0802f806 a142 cmp r1, r4
| ========< 0x0802f808 eed3 blo 0x802f7e8
| ||||||| 0x0802f80a a4b2 uxth r4, r4
| ||||||| 0x0802f80c 012c cmp r4, 1 ; 1
| |`======< 0x0802f80e ebd3 blo 0x802f7e8
| | ||||| 0x0802f810 4021 movs r1, 0x40 ; '@' ; 64
| | ||||| 0x0802f812 17fb01f1 smulbb r1, r7, r1
| |,======< 0x0802f816 00e0 b 0x802f81a
| --------> 0x0802f818 491c adds r1, r1, 1
| |`------> 0x0802f81a 89b2 uxth r1, r1
| | ||||| 0x0802f81c bfb2 uxth r7, r7
| | ||||| 0x0802f81e 7a1c adds r2, r7, 1
| | ||||| 0x0802f820 4023 movs r3, 0x40 ; '@' ; 64
| | ||||| 0x0802f822 5a43 muls r2, r3, r2
| | ||||| 0x0802f824 9142 cmp r1, r2
| | ||`===< 0x0802f826 dfda bge 0x802f7e8
| | || || 0x0802f828 89b2 uxth r1, r1
| | || || 0x0802f82a 0822 movs r2, 8 ; 8
| | || || 0x0802f82c 91fbf2f3 sdiv r3, r1, r2
| | || || 0x0802f830 89b2 uxth r1, r1
| | || || 0x0802f832 5ff0080c movs.w ip, 8 ; 8
| | || || 0x0802f836 91fbfcf2 sdiv r2, r1, ip
| | || || 0x0802f83a 02fb1c12 mls r2, r2, ip, r1
| | || || 0x0802f83e 89b2 uxth r1, r1
| | || || 0x0802f840 bfb2 uxth r7, r7
| | || || 0x0802f842 5ff0400c movs.w ip, 0x40 ; '@' ; 64
| | || || 0x0802f846 0cfb171c mls ip, ip, r7, r1
| | || || 0x0802f84a 9bb2 uxth r3, r3
| | || || 0x0802f84c 9b5d ldrb r3, [r3, r6]
| | || || 0x0802f84e 53fa02f2 asrs.w r2, r3, r2
| | || || 0x0802f852 d207 lsls r2, r2, 0x1f
| ========< 0x0802f854 e0d5 bpl 0x802f818
| | || || 0x0802f856 6d1c adds r5, r5, 1
| | || || 0x0802f858 adb2 uxth r5, r5
| | || || 0x0802f85a dff84020 ldr.w r2, [0x0802f8a2] ; [0x802f8a0:4]=0x2000b580
| | || || 0x0802f85e 1288 ldrh r2, [r2]
| | || || 0x0802f860 a4b2 uxth r4, r4
| | || || 0x0802f862 121b subs r2, r2, r4
| | || || 0x0802f864 521c adds r2, r2, 1
| | || || 0x0802f866 9542 cmp r5, r2
| ========< 0x0802f868 d6d1 bne 0x802f818
| | || || 0x0802f86a 481c adds r0, r1, 1
| | || || 0x0802f86c 80b2 uxth r0, r0
| | ||,===< 0x0802f86e 00e0 b 0x802f872
| | ||||`-> 0x0802f870 0020 movs r0, 0
\ `-````--> 0x0802f872 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) func_2f8a0_erases_and_writes_flash 88
| Caller: usb_dnld_handle
| func_2f8a0_erases_and_writes_flash ();
| 0x0802f8a0 80b5 push {r7, lr}
| 0x0802f8a2 0020 movs r0, 0
| ,=< 0x0802f8a4 05e0 b 0x802f8b2
| .--> 0x0802f8a6 80b2 uxth r0, r0
| || 0x0802f8a8 dff87410 ldr.w r1, [0x0802f924] ; [0x802f924:4]=0x2001e7a4
| || 0x0802f8ac 0022 movs r2, 0
| || 0x0802f8ae 4254 strb r2, [r0, r1]
| || 0x0802f8b0 401c adds r0, r0, 1
| |`-> 0x0802f8b2 80b2 uxth r0, r0
| | 0x0802f8b4 2028 cmp r0, 0x20 ; 32
| `==< 0x0802f8b6 f6d3 blo 0x802f8a6
| 0x0802f8b8 0020 movs r0, 0
| ,=< 0x0802f8ba 05e0 b 0x802f8c8
| .--> 0x0802f8bc 80b2 uxth r0, r0
| || 0x0802f8be dff85c10 ldr.w r1, [0x0802f922] ; [0x802f920:4]=0x2001e23c
| || 0x0802f8c2 0022 movs r2, 0
| || 0x0802f8c4 4254 strb r2, [r0, r1]
| || 0x0802f8c6 401c adds r0, r0, 1
| |`-> 0x0802f8c8 80b2 uxth r0, r0
| | 0x0802f8ca b0f5f77f cmp.w r0, 0x1ee ; 494
| `==< 0x0802f8ce f5d3 blo 0x802f8bc
| 0x0802f8d0 dff84000 ldr.w r0, [0x0802f918] ; [0x802f918:4]=0x2001e5a4
| 0x0802f8d4 0021 movs r1, 0
| 0x0802f8d6 0180 strh r1, [r0]
| 0x0802f8d8 dff83c00 ldr.w r0, [0x0802f91c] ; [0x802f91c:4]=0x2001c964
| 0x0802f8dc 4ff47761 mov.w r1, 0xf70 ; 3952
| 0x0802f8e0 0160 str r1, [r0]
| 0x0802f8e2 5ff40020 movs.w r0, 0x80000
| 0x0802f8e6 01f0e0fc bl md380_spiflash_block_erase64k
| 0x0802f8ea f3f7abfe bl func_23644
| 0x0802f8ee f3f7bdfe bl func_2366c
| 0x0802f8f2 fff791fd bl func_2f418
\ 0x0802f8f6 01bd pop {r0, pc}
/ (fcn) func_2f8f8 24
| Caller: DrawSomethingThenBitBangIO update_scr_29
| func_2f8f8 ();
| 0x0802f8f8 80b5 push {r7, lr}
| 0x0802f8fa 0a48 ldr r0, [0x0802f926] ; [0x802f924:4]=0x2001e7a4
| 0x0802f8fc 0021 movs r1, 0
| 0x0802f8fe 0180 strh r1, [r0]
| 0x0802f900 0948 ldr r0, [0x0802f928] ; [0x802f928:4]=0x2001e6dc
| 0x0802f902 0021 movs r1, 0
| 0x0802f904 0160 str r1, [r0]
| 0x0802f906 f3f7a6fe bl func_23656
| 0x0802f90a f3f7b8fe bl func_2367e
\ 0x0802f90e 01bd pop {r0, pc}
/ (fcn) func_30e74 4
| Caller: task_468f8
| func_30e74 ();
| 0x08030e74 f8b5 push {r3, r4, r5, r6, r7, lr}
\ 0x08030e76 0400 movs r4, r0
/ (fcn) func_311f4 4
| Caller: init_a_lot_gfx_and_lcd
| func_311f4 ();
| 0x080311f4 00b5 push {lr}
\ 0x080311f6 85b0 sub sp, 0x14
/ (fcn) func_31900 4
| Caller: func_170c4 often_called_something_keycode_menu
| func_31900 ();
| 0x08031900 8207 lsls r2, r0, 0x1e
\ ,=< 0x08031902 07d0 beq 0x8031914
/ (fcn) func_31da6 4
| Caller: md380_menu_13270
| func_31da6 ();
| 0x08031da6 38b5 push {r3, r4, r5, lr}
\ 0x08031da8 0400 movs r4, r0
/ (fcn) func_31e10 80
| Caller: ev5_22 update_scr_17
| func_31e10 ();
| 0x08031e10 1448 ldr r0, [0x08031e64] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e12 0021 movs r1, 0
| 0x08031e14 0170 strb r1, [r0]
| 0x08031e16 1348 ldr r0, [0x08031e66] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e18 0021 movs r1, 0
| 0x08031e1a 4170 strb r1, [r0, 1]
| 0x08031e1c 1148 ldr r0, [0x08031e64] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e1e 0021 movs r1, 0
| 0x08031e20 8170 strb r1, [r0, 2]
| 0x08031e22 1048 ldr r0, [0x08031e66] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e24 0021 movs r1, 0
| 0x08031e26 c170 strb r1, [r0, 3]
| 0x08031e28 0e48 ldr r0, [0x08031e64] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e2a 0021 movs r1, 0
| 0x08031e2c 0171 strb r1, [r0, 4]
| 0x08031e2e 0d48 ldr r0, [0x08031e66] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e30 0021 movs r1, 0
| 0x08031e32 4171 strb r1, [r0, 5]
| 0x08031e34 0b48 ldr r0, [0x08031e64] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e36 0021 movs r1, 0
| 0x08031e38 8171 strb r1, [r0, 6]
| 0x08031e3a 0a48 ldr r0, [0x08031e66] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e3c 0021 movs r1, 0
| 0x08031e3e 0181 strh r1, [r0, 8]
| 0x08031e40 0848 ldr r0, [0x08031e64] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e42 0021 movs r1, 0
| 0x08031e44 8172 strb r1, [r0, 0xa]
| 0x08031e46 0748 ldr r0, [0x08031e66] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e48 0021 movs r1, 0
| 0x08031e4a c172 strb r1, [r0, 0xb]
| 0x08031e4c 0548 ldr r0, [0x08031e64] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e4e 0021 movs r1, 0
| 0x08031e50 8181 strh r1, [r0, 0xc]
| 0x08031e52 0448 ldr r0, [0x08031e66] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e54 0021 movs r1, 0
| 0x08031e56 c181 strh r1, [r0, 0xe]
| 0x08031e58 0248 ldr r0, [0x08031e64] ; [0x8031e64:4]=0x2001e3e8
| 0x08031e5a 0021 movs r1, 0
| 0x08031e5c 0182 strh r1, [r0, 0x10]
\ 0x08031e5e 7047 bx lr
/ (fcn) func_31e68 38
| Caller: func_322d2
| func_31e68 ();
| 0x08031e68 80b5 push {r7, lr}
| 0x08031e6a dff81408 ldr.w r0, [0x08032686] ; [0x8032684:4]=0x2001e893
| 0x08031e6e 4078 ldrb r0, [r0, 1]
| 0x08031e70 c0f34000 ubfx r0, r0, 1, 1
| 0x08031e74 c007 lsls r0, r0, 0x1f
| ,=< 0x08031e76 09d5 bpl 0x8031e8c
| | 0x08031e78 00f009f8 bl func_31e8e
| | 0x08031e7c dff80408 ldr.w r0, [0x08032688] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| | 0x08031e80 0121 movs r1, 1 ; 1
| | 0x08031e82 0170 strb r1, [r0]
| | 0x08031e84 dff80008 ldr.w r0, [0x0803268c] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| | 0x08031e88 0621 movs r1, 6 ; 6
| | 0x08031e8a 0160 str r1, [r0]
\ `-> 0x08031e8c 01bd pop {r0, pc}
/ (fcn) func_31e8e 142
| Caller: c5000_wr_60_5 func_31e68 display_unprog_screen update_scr_29
| func_31e8e ();
| 0x08031e8e 80b5 push {r7, lr}
| 0x08031e90 dff8f807 ldr.w r0, [0x08032690] ; [0x8032690:4]=0x40020800 io_GPIOC
| 0x08031e94 c078 ldrb r0, [r0, 3]
| 0x08031e96 10f0fd00 ands r0, r0, 0xfd
| 0x08031e9a dff8f017 ldr.w r1, [0x08032692] ; [0x8032690:4]=0x40020800 io_GPIOC
| 0x08031e9e c870 strb r0, [r1, 3]
| 0x08031ea0 3e21 movs r1, 0x3e ; '>' ; 62
| 0x08031ea2 2520 movs r0, 0x25 ; '%' ; 37
| 0x08031ea4 0ef06ef8 bl c5000_spi0_writereg
| 0x08031ea8 ff21 movs r1, 0xff ; 255
| 0x08031eaa 2620 movs r0, 0x26 ; '&' ; 38
| 0x08031eac 0ef06af8 bl c5000_spi0_writereg
| 0x08031eb0 0022 movs r2, 0
| 0x08031eb2 1021 movs r1, 0x10 ; 16
| 0x08031eb4 dff8d807 ldr.w r0, [0x08032694] ; [0x8032694:4]=0x40020000 io_GPIOA
| 0x08031eb8 f9f7abfc bl GPIO_WriteBit
| 0x08031ebc 0022 movs r2, 0
| 0x08031ebe 2021 movs r1, 0x20 ; 32
| 0x08031ec0 dff8cc07 ldr.w r0, [0x08032694] ; [0x8032694:4]=0x40020000 io_GPIOA
| 0x08031ec4 f9f7a5fc bl GPIO_WriteBit
| 0x08031ec8 0022 movs r2, 0
| 0x08031eca 4ff40071 mov.w r1, 0x200 ; 512
| 0x08031ece dff8c007 ldr.w r0, [0x08032696] ; [0x8032694:4]=0x40020000 io_GPIOA
| 0x08031ed2 f9f79efc bl GPIO_WriteBit
| 0x08031ed6 0022 movs r2, 0
| 0x08031ed8 4ff48061 mov.w r1, 0x400 ; 1024
| 0x08031edc dff8b407 ldr.w r0, [0x08032698] ; [0x8032698:4]=0x40020400 io_GPIOB
| 0x08031ee0 f9f797fc bl GPIO_WriteBit
| 0x08031ee4 0022 movs r2, 0
| 0x08031ee6 0421 movs r1, 4 ; 4
| 0x08031ee8 dff8ac07 ldr.w r0, [0x0803269c] ; [0x803269c:4]=0x2001de78 struct_channel_info2
| 0x08031eec f9f791fc bl GPIO_WriteBit
| 0x08031ef0 0022 movs r2, 0
| 0x08031ef2 4ff48071 mov.w r1, 0x100 ; 256
| 0x08031ef6 dff89c07 ldr.w r0, [0x0803269a] ; [0x8032698:4]=0x40020400 io_GPIOB
| 0x08031efa f9f78afc bl GPIO_WriteBit
| 0x08031efe dff89c07 ldr.w r0, [0x080326a2] ; [0x80326a0:4]=0x2001e600 q_struct_1
| 0x08031f02 0079 ldrb r0, [r0, 4]
| 0x08031f04 c0f30010 ubfx r0, r0, 4, 1
| 0x08031f08 c007 lsls r0, r0, 0x1f
| ,=< 0x08031f0a 06d4 bmi 0x8031f1a
| | 0x08031f0c 0022 movs r2, 0
| | 0x08031f0e 4ff48041 mov.w r1, 0x4000
| | 0x08031f12 dff88007 ldr.w r0, [0x0803269a] ; [0x8032698:4]=0x40020400 io_GPIOB
| | 0x08031f16 f9f77cfc bl GPIO_WriteBit
\ `-> 0x08031f1a 01bd pop {r0, pc}
/ (fcn) func_31f1c 18
| Caller: func_383b8 func_3960c ev5_19 func_2e7bc some_init Create_Menu_Entry_RX_QRG_4
| func_3955c draw_botline_text func_3951c func_393dc func_384d4 func_2ea0c_beeps_and_uses_struct_channel_info2
| func_2f268 func_2f118 call_F_4225_1 update_scr_30
| func_31f1c ();
| 0x08031f1c 80b5 push {r7, lr}
| 0x08031f1e dff86407 ldr.w r0, [0x0803268a] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| 0x08031f22 0221 movs r1, 2 ; 2
| 0x08031f24 0170 strb r1, [r0]
| 0x08031f26 dff86007 ldr.w r0, [0x0803268e] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| 0x08031f2a 0321 movs r1, 3 ; 3
\ 0x08031f2c 0160 str r1, [r0]
/ (fcn) func_31fe2 282
| Caller: func_322d2 DrawSomethingThenBitBangIO md380_f_4520
| func_31fe2 ();
| 0x08031fe2 80b5 push {r7, lr}
| 0x08031fe4 dff89c06 ldr.w r0, [0x08032688] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| 0x08031fe8 0221 movs r1, 2 ; 2
| 0x08031fea 0170 strb r1, [r0]
| 0x08031fec dff89806 ldr.w r0, [0x0803268c] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| 0x08031ff0 0321 movs r1, 3 ; 3
| 0x08031ff2 0160 str r1, [r0]
| 0x08031ff4 0122 movs r2, 1 ; 1
| 0x08031ff6 4ff48071 mov.w r1, 0x100 ; 256
| 0x08031ffa dff89806 ldr.w r0, [0x0803269a] ; [0x8032698:4]=0x40020400 io_GPIOB
| 0x08031ffe f9f708fc bl GPIO_WriteBit
| 0x08032002 0122 movs r2, 1 ; 1
| 0x08032004 4ff48041 mov.w r1, 0x4000
| 0x08032008 dff88806 ldr.w r0, [0x08032698] ; [0x8032698:4]=0x40020400 io_GPIOB
| 0x0803200c f9f701fc bl GPIO_WriteBit
| 0x08032010 12f050fe bl func_44cb4
| 0x08032014 13f070fc bl func_458f8
| 0x08032018 dff88406 ldr.w r0, [0x080326a4] ; [0x80326a4:4]=0x2001e8e5
| 0x0803201c 0078 ldrb r0, [r0]
| 0x0803201e 10f07f00 ands r0, r0, 0x7f
| 0x08032022 dff87c16 ldr.w r1, [0x080326a6] ; [0x80326a4:4]=0x2001e8e5
| 0x08032026 0870 strb r0, [r1]
| 0x08032028 dff87406 ldr.w r0, [0x080326a4] ; [0x80326a4:4]=0x2001e8e5
| 0x0803202c 4078 ldrb r0, [r0, 1]
| 0x0803202e 10f0fe00 ands r0, r0, 0xfe
| 0x08032032 dff86c16 ldr.w r1, [0x080326a6] ; [0x80326a4:4]=0x2001e8e5
| 0x08032036 4870 strb r0, [r1, 1]
| 0x08032038 dff86806 ldr.w r0, [0x080326a8] ; [0x80326a8:4]=0x2001e648 sema_1e648
| 0x0803203c 0021 movs r1, 0
| 0x0803203e 0170 strb r1, [r0]
| 0x08032040 dff86806 ldr.w r0, [0x080326b0] ; [0x80326b0:4]=0x2001e650 sema1_poi
| 0x08032044 0078 ldrb r0, [r0]
| 0x08032046 0228 cmp r0, 2 ; 2
| ,=< 0x08032048 0cd1 bne 0x8032064
| | 0x0803204a dff84006 ldr.w r0, [0x08032692] ; [0x8032690:4]=0x40020800 io_GPIOC
| | 0x0803204e 8078 ldrb r0, [r0, 2]
| | 0x08032050 50f00400 orrs r0, r0, 4
| | 0x08032054 dff83416 ldr.w r1, [0x08032690] ; [0x8032690:4]=0x40020800 io_GPIOC
| | 0x08032058 8870 strb r0, [r1, 2]
| | 0x0803205a dff85406 ldr.w r0, [0x080326b6] ; [0x80326b4:4]=0x2001e8e9
| | 0x0803205e 0068 ldr r0, [r0]
| | 0x08032060 0df0f0fb bl OSSemPost
| `-> 0x08032064 0e21 movs r1, 0xe ; 14
| 0x08032066 2520 movs r0, 0x25 ; '%' ; 37
| 0x08032068 0df08cff bl c5000_spi0_writereg
| 0x0803206c dff84406 ldr.w r0, [0x080326b8] ; [0x80326b8:4]=0x2001e664 event3_mbox_poi
| 0x08032070 0221 movs r1, 2 ; 2
| 0x08032072 0170 strb r1, [r0]
| 0x08032074 dff83c16 ldr.w r1, [0x080326b8] ; [0x80326b8:4]=0x2001e664 event3_mbox_poi
| 0x08032078 dff83c06 ldr.w r0, [0x080326bc] ; [0x80326bc:4]=0x2001e8bd
| 0x0803207c 0068 ldr r0, [r0]
| 0x0803207e fff78df8 bl md380_OSMboxPost
| 0x08032082 dff80006 ldr.w r0, [0x0803268a] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| 0x08032086 0321 movs r1, 3 ; 3
| 0x08032088 0170 strb r1, [r0]
| 0x0803208a dff80006 ldr.w r0, [0x08032692] ; [0x8032690:4]=0x40020800 io_GPIOC
| 0x0803208e 4078 ldrb r0, [r0, 1]
| 0x08032090 10f0fe00 ands r0, r0, 0xfe
| 0x08032094 dff8f415 ldr.w r1, [0x08032690] ; [0x8032690:4]=0x40020800 io_GPIOC
| 0x08032098 4870 strb r0, [r1, 1]
| 0x0803209a dff8f005 ldr.w r0, [0x08032692] ; [0x8032690:4]=0x40020800 io_GPIOC
| 0x0803209e 4078 ldrb r0, [r0, 1]
| 0x080320a0 50f00200 orrs r0, r0, 2
| 0x080320a4 dff8e415 ldr.w r1, [0x08032690] ; [0x8032690:4]=0x40020800 io_GPIOC
| 0x080320a8 4870 strb r0, [r1, 1]
| 0x080320aa dff8f005 ldr.w r0, [0x080326a2] ; [0x80326a0:4]=0x2001e600 q_struct_1
| 0x080320ae 0078 ldrb r0, [r0]
| 0x080320b0 10f00300 ands r0, r0, 3
| 0x080320b4 0128 cmp r0, 1 ; 1
| ,=< 0x080320b6 0dd1 bne 0x80320d4
| | 0x080320b8 0022 movs r2, 0
| | 0x080320ba 4ff48061 mov.w r1, 0x400 ; 1024
| | 0x080320be dff8d405 ldr.w r0, [0x0803269a] ; [0x8032698:4]=0x40020400 io_GPIOB
| | 0x080320c2 f9f7a6fb bl GPIO_WriteBit
| | 0x080320c6 0122 movs r2, 1 ; 1
| | 0x080320c8 0421 movs r1, 4 ; 4
| | 0x080320ca dff8cc05 ldr.w r0, [0x0803269e] ; [0x803269c:4]=0x2001de78 struct_channel_info2
| | 0x080320ce f9f7a0fb bl GPIO_WriteBit
| ,==< 0x080320d2 13e0 b 0x80320fc
| |`-> 0x080320d4 fd21 movs r1, 0xfd ; 253
| | 0x080320d6 2620 movs r0, 0x26 ; '&' ; 38
| | 0x080320d8 0df054ff bl c5000_spi0_writereg
| | 0x080320dc 0122 movs r2, 1 ; 1
| | 0x080320de 4ff48061 mov.w r1, 0x400 ; 1024
| | 0x080320e2 dff8b005 ldr.w r0, [0x0803269a] ; [0x8032698:4]=0x40020400 io_GPIOB
| | 0x080320e6 f9f794fb bl GPIO_WriteBit
| | 0x080320ea 0022 movs r2, 0
| | 0x080320ec 0421 movs r1, 4 ; 4
| | 0x080320ee dff8a805 ldr.w r0, [0x0803269e] ; [0x803269c:4]=0x2001de78 struct_channel_info2
| | 0x080320f2 f9f78efb bl GPIO_WriteBit
| | 0x080320f6 0120 movs r0, 1 ; 1
\ | 0x080320f8 14f026ff bl func_46f48
/ (fcn) func_320fe 50
| Caller: func_32130
| func_320fe ();
| 0x080320fe 80b5 push {r7, lr}
| 0x08032100 dff88005 ldr.w r0, [0x08032688] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| 0x08032104 0421 movs r1, 4 ; 4
| 0x08032106 0170 strb r1, [r0]
| 0x08032108 dff87c05 ldr.w r0, [0x0803268c] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| 0x0803210c 4ff4fa71 mov.w r1, 0x1f4 ; 500
| 0x08032110 0160 str r1, [r0]
| 0x08032112 dff88805 ldr.w r0, [0x080326a2] ; [0x80326a0:4]=0x2001e600 q_struct_1
| 0x08032116 0078 ldrb r0, [r0]
| 0x08032118 10f00300 ands r0, r0, 3
| 0x0803211c 0128 cmp r0, 1 ; 1
| ,=< 0x0803211e 04d1 bne 0x803212a
| | 0x08032120 0ef080f8 bl func_40224
| | 0x08032124 0df06af8 bl func_3f1fc
| ,==< 0x08032128 01e0 b 0x803212e
| |`-> 0x0803212a 0ef057f8 bl func_401dc
\ `--> 0x0803212e 01bd pop {r0, pc}
/ (fcn) func_32130 200
| Caller: func_3da68 func_3d5a0
| func_32130 ();
| 0x08032130 80b5 push {r7, lr}
| 0x08032132 dff85005 ldr.w r0, [0x0803268a] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| 0x08032136 0521 movs r1, 5 ; 5
| 0x08032138 0170 strb r1, [r0]
| 0x0803213a dff84c05 ldr.w r0, [0x0803268e] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| 0x0803213e 4ff4fa71 mov.w r1, 0x1f4 ; 500
| 0x08032142 0160 str r1, [r0]
| 0x08032144 12f0b6fd bl func_44cb4
| 0x08032148 13f0d6fb bl func_458f8
| 0x0803214c dff83c05 ldr.w r0, [0x08032690] ; [0x8032690:4]=0x40020800 io_GPIOC
| 0x08032150 4078 ldrb r0, [r0, 1]
| 0x08032152 c007 lsls r0, r0, 0x1f
| ,=< 0x08032154 1ad5 bpl 0x803218c
| | 0x08032156 dff84405 ldr.w r0, [0x080326a2] ; [0x80326a0:4]=0x2001e600 q_struct_1
| | 0x0803215a 0078 ldrb r0, [r0]
| | 0x0803215c 10f00300 ands r0, r0, 3
| | 0x08032160 0128 cmp r0, 1 ; 1
| ,==< 0x08032162 13d0 beq 0x803218c
| || 0x08032164 dff82405 ldr.w r0, [0x08032690] ; [0x8032690:4]=0x40020800 io_GPIOC
| || 0x08032168 4078 ldrb r0, [r0, 1]
| || 0x0803216a 10f0fe00 ands r0, r0, 0xfe
| || 0x0803216e dff81c15 ldr.w r1, [0x08032692] ; [0x8032690:4]=0x40020800 io_GPIOC
| || 0x08032172 4870 strb r0, [r1, 1]
| || 0x08032174 dff81405 ldr.w r0, [0x08032690] ; [0x8032690:4]=0x40020800 io_GPIOC
| || 0x08032178 4078 ldrb r0, [r0, 1]
| || 0x0803217a 50f00200 orrs r0, r0, 2
| || 0x0803217e dff80c15 ldr.w r1, [0x08032692] ; [0x8032690:4]=0x40020800 io_GPIOC
| || 0x08032182 4870 strb r0, [r1, 1]
| || 0x08032184 0220 movs r0, 2 ; 2
| || 0x08032186 01f095fe bl OSTimeDly
| ,===< 0x0803218a 0fe0 b 0x80321ac
| |``-> 0x0803218c dff8fc04 ldr.w r0, [0x08032690] ; [0x8032690:4]=0x40020800 io_GPIOC
| | 0x08032190 4078 ldrb r0, [r0, 1]
| | 0x08032192 10f0fe00 ands r0, r0, 0xfe
| | 0x08032196 dff8f414 ldr.w r1, [0x08032692] ; [0x8032690:4]=0x40020800 io_GPIOC
| | 0x0803219a 4870 strb r0, [r1, 1]
| | 0x0803219c dff8ec04 ldr.w r0, [0x08032690] ; [0x8032690:4]=0x40020800 io_GPIOC
| | 0x080321a0 4078 ldrb r0, [r0, 1]
| | 0x080321a2 50f00200 orrs r0, r0, 2
| | 0x080321a6 dff8e414 ldr.w r1, [0x08032692] ; [0x8032690:4]=0x40020800 io_GPIOC
| | 0x080321aa 4870 strb r0, [r1, 1]
| `---> 0x080321ac dff80405 ldr.w r0, [0x080326b8] ; [0x80326b8:4]=0x2001e664 event3_mbox_poi
| 0x080321b0 0221 movs r1, 2 ; 2
| 0x080321b2 0170 strb r1, [r0]
| 0x080321b4 dff8fc14 ldr.w r1, [0x080326b8] ; [0x80326b8:4]=0x2001e664 event3_mbox_poi
| 0x080321b8 dff8fc04 ldr.w r0, [0x080326bc] ; [0x80326bc:4]=0x2001e8bd
| 0x080321bc 0068 ldr r0, [r0]
| 0x080321be fef7edff bl md380_OSMboxPost
| 0x080321c2 dff8f804 ldr.w r0, [0x080326c2] ; [0x80326c0:4]=0x2001e8be
| 0x080321c6 0021 movs r1, 0
| 0x080321c8 0170 strb r1, [r0]
| 0x080321ca dff8f404 ldr.w r0, [0x080326c6] ; [0x80326c4:4]=0x2001e604 q_status_4
| 0x080321ce 0021 movs r1, 0
| 0x080321d0 0170 strb r1, [r0]
| 0x080321d2 dff8f004 ldr.w r0, [0x080326ca] ; [0x80326c8:4]=0x2001e5f4
| 0x080321d6 4078 ldrb r0, [r0, 1]
| 0x080321d8 10f0fd00 ands r0, r0, 0xfd
| 0x080321dc dff8e414 ldr.w r1, [0x080326c8] ; [0x80326c8:4]=0x2001e5f4
| 0x080321e0 4870 strb r0, [r1, 1]
| 0x080321e2 dff8e004 ldr.w r0, [0x080326ca] ; [0x80326c8:4]=0x2001e5f4
| 0x080321e6 4078 ldrb r0, [r0, 1]
| 0x080321e8 10f0f700 ands r0, r0, 0xf7
| 0x080321ec dff8d414 ldr.w r1, [0x080326c8] ; [0x80326c8:4]=0x2001e5f4
| 0x080321f0 4870 strb r0, [r1, 1]
| 0x080321f2 fff784ff bl func_320fe
\ 0x080321f6 01bd pop {r0, pc}
/ (fcn) func_321f8 70
| Caller: LongSwitchWithRadioStatus1
| func_321f8 ();
| 0x080321f8 80b5 push {r7, lr}
| 0x080321fa dff88804 ldr.w r0, [0x0803268a] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| 0x080321fe 0621 movs r1, 6 ; 6
| 0x08032200 0170 strb r1, [r0]
| 0x08032202 dff88404 ldr.w r0, [0x0803268e] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| 0x08032206 4ff4fa71 mov.w r1, 0x1f4 ; 500
| 0x0803220a 0160 str r1, [r0]
| 0x0803220c dff88c04 ldr.w r0, [0x080326a0] ; [0x80326a0:4]=0x2001e600 q_struct_1
| 0x08032210 0078 ldrb r0, [r0]
| 0x08032212 10f00300 ands r0, r0, 3
| 0x08032216 0128 cmp r0, 1 ; 1
| ,=< 0x08032218 10d1 bne 0x803223c
| | 0x0803221a dff88004 ldr.w r0, [0x080326a2] ; [0x80326a0:4]=0x2001e600 q_struct_1
| | 0x0803221e 008b ldrh r0, [r0, 0x18]
| | 0x08032220 4ff6ff71 movw r1, 0xffff
| | 0x08032224 8842 cmp r0, r1
| ,==< 0x08032226 09d0 beq 0x803223c
| || 0x08032228 dff87004 ldr.w r0, [0x080326a0] ; [0x80326a0:4]=0x2001e600 q_struct_1
| || 0x0803222c 008b ldrh r0, [r0, 0x18]
| || 0x0803222e 0004 lsls r0, r0, 0x10
| ,===< 0x08032230 02d5 bpl 0x8032238
| ||| 0x08032232 0cf0adff bl func_3f190
| ,====< 0x08032236 01e0 b 0x803223c
| |`---> 0x08032238 0cf076ff bl func_3f128
\ `-``-> 0x0803223c 01bd pop {r0, pc}
/ (fcn) func_3223e 80
| Caller: func_4fe14_monster_accessing_C5000 c5000_set_local_addr c5000_wr_60_5 c5000_set_local_addr2
| dmr_CSBK_handler
| func_3223e ();
| 0x0803223e 80b5 push {r7, lr}
| 0x08032240 dff84004 ldr.w r0, [0x08032688] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| 0x08032244 0921 movs r1, 9 ; 9
| 0x08032246 0170 strb r1, [r0]
| 0x08032248 dff83c04 ldr.w r0, [0x0803268c] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| 0x0803224c 4ff4fa71 mov.w r1, 0x1f4 ; 500
| 0x08032250 0160 str r1, [r0]
| 0x08032252 dff86004 ldr.w r0, [0x080326ba] ; [0x80326b8:4]=0x2001e664 event3_mbox_poi
| 0x08032256 0121 movs r1, 1 ; 1
| 0x08032258 0170 strb r1, [r0]
| 0x0803225a dff85814 ldr.w r1, [0x080326ba] ; [0x80326b8:4]=0x2001e664 event3_mbox_poi
| 0x0803225e dff85804 ldr.w r0, [0x080326be] ; [0x80326bc:4]=0x2001e8bd
| 0x08032262 0068 ldr r0, [r0]
| 0x08032264 fef79aff bl md380_OSMboxPost
| 0x08032268 dff82004 ldr.w r0, [0x08032690] ; [0x8032690:4]=0x40020800 io_GPIOC
| 0x0803226c 4078 ldrb r0, [r0, 1]
| 0x0803226e 10f0fd00 ands r0, r0, 0xfd
| 0x08032272 dff81814 ldr.w r1, [0x08032692] ; [0x8032690:4]=0x40020800 io_GPIOC
| 0x08032276 4870 strb r0, [r1, 1]
| 0x08032278 dff81004 ldr.w r0, [0x08032690] ; [0x8032690:4]=0x40020800 io_GPIOC
| 0x0803227c 4078 ldrb r0, [r0, 1]
| 0x0803227e 50f00100 orrs r0, r0, 1
| 0x08032282 dff80814 ldr.w r1, [0x08032692] ; [0x8032690:4]=0x40020800 io_GPIOC
| 0x08032286 4870 strb r0, [r1, 1]
| 0x08032288 00f001f8 bl func_3228e
\ 0x0803228c 01bd pop {r0, pc}
/ (fcn) func_3228e 68
| Caller: func_3223e
| func_3228e ();
| 0x0803228e 80b5 push {r7, lr}
| 0x08032290 dff80804 ldr.w r0, [0x080326a0] ; [0x80326a0:4]=0x2001e600 q_struct_1
| 0x08032294 0078 ldrb r0, [r0]
| 0x08032296 10f00300 ands r0, r0, 3
| 0x0803229a 0128 cmp r0, 1 ; 1
| ,=< 0x0803229c 0bd1 bne 0x80322b6
| | 0x0803229e dff8e403 ldr.w r0, [0x0803268a] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| | 0x080322a2 0a21 movs r1, 0xa ; 10
| | 0x080322a4 0170 strb r1, [r0]
| | 0x080322a6 dff8e003 ldr.w r0, [0x0803268e] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| | 0x080322aa 4ff4fa71 mov.w r1, 0x1f4 ; 500
| | 0x080322ae 0160 str r1, [r0]
| | 0x080322b0 0ef022f8 bl c5000_some2
| ,==< 0x080322b4 0ce0 b 0x80322d0
| |`-> 0x080322b6 dff8cc03 ldr.w r0, [0x0803268a] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| | 0x080322ba 0b21 movs r1, 0xb ; 11
| | 0x080322bc 0170 strb r1, [r0]
| | 0x080322be dff8c803 ldr.w r0, [0x0803268e] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| | 0x080322c2 4ff4fa71 mov.w r1, 0x1f4 ; 500
| | 0x080322c6 0160 str r1, [r0]
| | 0x080322c8 0df0e2ff bl c5000_some3
| | 0x080322cc 15f0f3fb bl func_47ab6
\ `--> 0x080322d0 01bd pop {r0, pc}
/ (fcn) func_322d2 276
| Caller: mainloop_entry
| func_322d2 ();
| 0x080322d2 80b5 push {r7, lr}
| 0x080322d4 dff8f003 ldr.w r0, [0x080326cc] ; [0x80326cc:4]=0x2001e6e0
| 0x080322d8 4078 ldrb r0, [r0, 1]
| 0x080322da c0f34000 ubfx r0, r0, 1, 1
| 0x080322de c007 lsls r0, r0, 0x1f
| ,=< 0x080322e0 32d5 bpl 0x8032348
| | 0x080322e2 dff8e803 ldr.w r0, [0x080326d2] ; [0x80326d0:4]=0x2001e8a8 beep_code_send
| | 0x080322e6 0068 ldr r0, [r0]
| | 0x080322e8 401c adds r0, r0, 1
| | 0x080322ea dff8e013 ldr.w r1, [0x080326d2] ; [0x80326d0:4]=0x2001e8a8 beep_code_send
| | 0x080322ee 0860 str r0, [r1]
| | 0x080322f0 dff8d803 ldr.w r0, [0x080326d0] ; [0x80326d0:4]=0x2001e8a8 beep_code_send
| | 0x080322f4 0068 ldr r0, [r0]
| | 0x080322f6 dff88813 ldr.w r1, [0x08032686] ; [0x8032684:4]=0x2001e893
| | 0x080322fa 897b ldrb r1, [r1, 0xe]
| | 0x080322fc 4ff4fa72 mov.w r2, 0x1f4 ; 500
| | 0x08032300 5143 muls r1, r2, r1
| | 0x08032302 8842 cmp r0, r1
| ,==< 0x08032304 24d3 blo 0x8032350
| || 0x08032306 dff87803 ldr.w r0, [0x08032686] ; [0x8032684:4]=0x2001e893
| || 0x0803230a 807b ldrb r0, [r0, 0xe]
| || 0x0803230c 0028 cmp r0, 0
| ,===< 0x0803230e 1fd0 beq 0x8032350
| ||| 0x08032310 dff8b803 ldr.w r0, [0x080326d0] ; [0x80326d0:4]=0x2001e8a8 beep_code_send
| ||| 0x08032314 0021 movs r1, 0
| ||| 0x08032316 0160 str r1, [r0]
| ||| 0x08032318 dff86803 ldr.w r0, [0x08032688] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| ||| 0x0803231c 0078 ldrb r0, [r0]
| ||| 0x0803231e 0128 cmp r0, 1 ; 1
| ,====< 0x08032320 01d1 bne 0x8032326
| |||| 0x08032322 fff75efe bl func_31fe2
| `----> 0x08032326 dff86003 ldr.w r0, [0x0803268e] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| ||| 0x0803232a 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||| 0x0803232e 0160 str r1, [r0]
| ||| 0x08032330 dff89c03 ldr.w r0, [0x080326d4] ; [0x80326d4:4]=0x2001e67c event2_mbox_poi_beep
| ||| 0x08032334 1021 movs r1, 0x10 ; 16
| ||| 0x08032336 0170 strb r1, [r0]
| ||| 0x08032338 dff89413 ldr.w r1, [0x080326d4] ; [0x80326d4:4]=0x2001e67c event2_mbox_poi_beep
| ||| 0x0803233c dff89403 ldr.w r0, [0x080326d8] ; [0x80326d8:4]=0x2001e894
| ||| 0x08032340 0068 ldr r0, [r0]
| ||| 0x08032342 fef72bff bl md380_OSMboxPost
| ,====< 0x08032346 03e0 b 0x8032350
| |||`-> 0x08032348 dff88003 ldr.w r0, [0x080326d0] ; [0x80326d0:4]=0x2001e8a8 beep_code_send
| ||| 0x0803234c 0021 movs r1, 0
| ||| 0x0803234e 0160 str r1, [r0]
| ```--> 0x08032350 dff83003 ldr.w r0, [0x08032688] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| 0x08032354 0078 ldrb r0, [r0]
| 0x08032356 0128 cmp r0, 1 ; 1
| ,=< 0x08032358 0bd1 bne 0x8032372
| | 0x0803235a dff82c03 ldr.w r0, [0x0803268e] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| | 0x0803235e 0068 ldr r0, [r0]
| | 0x08032360 401e subs r0, r0, 1
| | 0x08032362 dff82413 ldr.w r1, [0x0803268e] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| | 0x08032366 0860 str r0, [r1]
| | 0x08032368 0028 cmp r0, 0
| ,==< 0x0803236a 2fd1 bne 0x80323cc
| || 0x0803236c fff739fe bl func_31fe2
| ,===< 0x08032370 2ce0 b 0x80323cc
| ||`-> 0x08032372 dff81003 ldr.w r0, [0x0803268a] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| || 0x08032376 0078 ldrb r0, [r0]
| || 0x08032378 0328 cmp r0, 3 ; 3
| ||,=< 0x0803237a 04d0 beq 0x8032386
| ||| 0x0803237c dff80403 ldr.w r0, [0x08032688] ; [0x8032688:4]=0x2001e5d0 msg_timer_500
| ||| 0x08032380 0078 ldrb r0, [r0]
| ||| 0x08032382 0428 cmp r0, 4 ; 4
| ,====< 0x08032384 22d1 bne 0x80323cc
| |||`-> 0x08032386 dff85003 ldr.w r0, [0x080326de] ; [0x80326dc:4]=0x2001e892 gui_opmode3
| ||| 0x0803238a 0078 ldrb r0, [r0]
| ||| 0x0803238c 0128 cmp r0, 1 ; 1
| |||,=< 0x0803238e 1dd1 bne 0x80323cc
| |||| 0x08032390 dff84803 ldr.w r0, [0x080326e0] ; [0x80326e0:4]=0x2001e8dd
| |||| 0x08032394 0078 ldrb r0, [r0]
| |||| 0x08032396 3028 cmp r0, 0x30 ; '0' ; 48
| ,=====< 0x08032398 18d2 bhs 0x80323cc
| ||||| 0x0803239a dff8ec02 ldr.w r0, [0x0803268e] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| ||||| 0x0803239e 0068 ldr r0, [r0]
| ||||| 0x080323a0 401e subs r0, r0, 1
| ||||| 0x080323a2 dff8e412 ldr.w r1, [0x0803268e] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| ||||| 0x080323a6 0860 str r0, [r1]
| ||||| 0x080323a8 0028 cmp r0, 0
| ,======< 0x080323aa 0fd1 bne 0x80323cc
| |||||| 0x080323ac dff83003 ldr.w r0, [0x080326e4] ; [0x80326e4:4]=0x2001e7f4
| |||||| 0x080323b0 0078 ldrb r0, [r0]
| |||||| 0x080323b2 0001 lsls r0, r0, 4
| |||||| 0x080323b4 dff82c13 ldr.w r1, [0x080326e8] ; [0x80326e8:4]=0x2001e8a6
| |||||| 0x080323b8 0988 ldrh r1, [r1]
| |||||| 0x080323ba 8842 cmp r0, r1
| ,=======< 0x080323bc 04db blt 0x80323c8
| ||||||| 0x080323be dff8c802 ldr.w r0, [0x0803268e] ; [0x803268c:4]=0x2001e5f0 radio_status_1
| ||||||| 0x080323c2 0121 movs r1, 1 ; 1
| ||||||| 0x080323c4 0160 str r1, [r0]
| ========< 0x080323c6 01e0 b 0x80323cc
| `-------> 0x080323c8 fff74efd bl func_31e68
| -``````-> 0x080323cc dff81803 ldr.w r0, [0x080326ec] ; [0x80326ec:4]=0x200178b8
| 0x080323d0 0078 ldrb r0, [r0]
| 0x080323d2 0028 cmp r0, 0
| ,=< 0x080323d4 06d0 beq 0x80323e4
| | 0x080323d6 dff81003 ldr.w r0, [0x080326ee] ; [0x80326ec:4]=0x200178b8
| | 0x080323da 0078 ldrb r0, [r0]
| | 0x080323dc 401e subs r0, r0, 1
| | 0x080323de dff80813 ldr.w r1, [0x080326ee] ; [0x80326ec:4]=0x200178b8
| | 0x080323e2 0870 strb r0, [r1]
\ `-> 0x080323e4 01bd pop {r0, pc}
/ (fcn) func_32416 4
| Caller: c5000_wr_60_4
| func_32416 ();
| 0x08032416 00b5 push {lr}
\ 0x08032418 83b0 sub sp, 0xc
/ (fcn) func_32536 4
| Caller: call_F_4225_2
| func_32536 ();
| 0x08032536 80b5 push {r7, lr}
\ 0x08032538 6248 ldr r0, [0x080326c4] ; [0x80326c4:4]=0x2001e604 q_status_4
/ (fcn) func_32712 4
| Caller: gfx_32af0
| func_32712 ();
| 0x08032712 00b2 sxth r0, r0
\ 0x08032714 dff8 invalid
/ (fcn) func_32722 4
| Caller: gfx_32b04
| func_32722 ();
| 0x08032722 00b2 sxth r0, r0
\ 0x08032724 dff8 invalid
/ (fcn) func_32a10 4
| Caller: menu_328ec
| func_32a10 ();
\ 0x08032a10 40f2fc50 movw r0, 0x5fc ; 1532
/ (fcn) func_32a4e 4
| Caller: func_4855c func_37ab8 gfx_32d60
| func_32a4e ();
| 0x08032a4e 80b5 push {r7, lr}
\ 0x08032a50 00b2 sxth r0, r0
/ (fcn) gfx_32af0 20
| gfx_32af0 ();
| 0x08032af0 80b5 push {r7, lr}
| 0x08032af2 00b2 sxth r0, r0
| 0x08032af4 0028 cmp r0, 0
| ,=< 0x08032af6 01d1 bne 0x8032afc
| | 0x08032af8 0020 movs r0, 0
| ,==< 0x08032afa 02e0 b 0x8032b02
| |`-> 0x08032afc 00b2 sxth r0, r0
| | 0x08032afe fff708fe bl func_32712
\ `--> 0x08032b02 02bd pop {r1, pc}
/ (fcn) gfx_32b04 16
| Caller: gfx_32b14 func_4851e gfx_1c9d4 func_4855c func_523d8 func_5258c
| gfx_32b04 ();
| 0x08032b04 80b5 push {r7, lr}
| 0x08032b06 00b2 sxth r0, r0
| 0x08032b08 0028 cmp r0, 0
| ,=< 0x08032b0a 02d0 beq 0x8032b12
| | 0x08032b0c 00b2 sxth r0, r0
| | 0x08032b0e fff708fe bl func_32722
\ `-> 0x08032b12 01bd pop {r0, pc}
/ (fcn) gfx_32b04 16
| Caller: gfx_32b14 func_4851e gfx_1c9d4 func_4855c func_523d8 func_5258c
| gfx_32b04 ();
| 0x08032b04 80b5 push {r7, lr}
| 0x08032b06 00b2 sxth r0, r0
| 0x08032b08 0028 cmp r0, 0
| ,=< 0x08032b0a 02d0 beq 0x8032b12
| | 0x08032b0c 00b2 sxth r0, r0
| | 0x08032b0e fff708fe bl func_32722
\ `-> 0x08032b12 01bd pop {r0, pc}
/ (fcn) gfx_32b14 18
| Caller: func_37ab8 func_37b00
| gfx_32b14 ();
| 0x08032b14 10b5 push {r4, lr}
| 0x08032b16 0400 movs r4, r0
| 0x08032b18 b4f90000 ldrsh.w r0, [r4]
| 0x08032b1c fff7f2ff bl gfx_32b04
| 0x08032b20 0020 movs r0, 0
| 0x08032b22 2080 strh r0, [r4]
\ 0x08032b24 10bd pop {r4, pc}
/ (fcn) gfx_ThreeRectSomething 136
| Caller: gfx_1c63c gfx_1c1fe gfx_1c58a gfx_1c6d4 gfx_32ca4 gfx_2b088
| gfx_ThreeRectSomething ();
| 0x08032b26 10b4 push {r4}
| 0x08032b28 b2f90030 ldrsh.w r3, [r2] ; [in] R2 = src struct, GUI_RECT ?
| 0x08032b2c b1f90040 ldrsh.w r4, [r1] ; [in] R1 = src struct, GUI_RECT ?
| 0x08032b30 a342 cmp r3, r4
| ,=< 0x08032b32 02da bge 0x8032b3a
| | 0x08032b34 b1f90030 ldrsh.w r3, [r1]
| ,==< 0x08032b38 01e0 b 0x8032b3e
| |`-> 0x08032b3a b2f90030 ldrsh.w r3, [r2]
| `--> 0x08032b3e 0380 strh r3, [r0] ; [in] R0 = dest struct, GUI_RECT ?
| 0x08032b40 b2f90230 ldrsh.w r3, [r2, 2]
| 0x08032b44 b1f90240 ldrsh.w r4, [r1, 2]
| 0x08032b48 a342 cmp r3, r4
| ,=< 0x08032b4a 02da bge 0x8032b52
| | 0x08032b4c b1f90230 ldrsh.w r3, [r1, 2]
| ,==< 0x08032b50 01e0 b 0x8032b56
| |`-> 0x08032b52 b2f90230 ldrsh.w r3, [r2, 2]
| `--> 0x08032b56 4380 strh r3, [r0, 2]
| 0x08032b58 b2f90430 ldrsh.w r3, [r2, 4]
| 0x08032b5c b1f90440 ldrsh.w r4, [r1, 4]
| 0x08032b60 a342 cmp r3, r4
| ,=< 0x08032b62 02da bge 0x8032b6a
| | 0x08032b64 b2f90430 ldrsh.w r3, [r2, 4]
| ,==< 0x08032b68 01e0 b 0x8032b6e
| |`-> 0x08032b6a b1f90430 ldrsh.w r3, [r1, 4]
| `--> 0x08032b6e 8380 strh r3, [r0, 4]
| 0x08032b70 b2f90630 ldrsh.w r3, [r2, 6]
| 0x08032b74 b1f90640 ldrsh.w r4, [r1, 6]
| 0x08032b78 a342 cmp r3, r4
| ,=< 0x08032b7a 02da bge 0x8032b82
| | 0x08032b7c b2f90610 ldrsh.w r1, [r2, 6]
| ,==< 0x08032b80 01e0 b 0x8032b86
| |`-> 0x08032b82 b1f90610 ldrsh.w r1, [r1, 6]
| `--> 0x08032b86 c180 strh r1, [r0, 6]
| 0x08032b88 b0f90410 ldrsh.w r1, [r0, 4]
| 0x08032b8c b0f90020 ldrsh.w r2, [r0]
| 0x08032b90 9142 cmp r1, r2
| ,=< 0x08032b92 01da bge 0x8032b98
| | 0x08032b94 0020 movs r0, 0
| ,==< 0x08032b96 08e0 b 0x8032baa
| |`-> 0x08032b98 b0f90610 ldrsh.w r1, [r0, 6]
| | 0x08032b9c b0f90200 ldrsh.w r0, [r0, 2]
| | 0x08032ba0 8142 cmp r1, r0
| |,=< 0x08032ba2 01da bge 0x8032ba8
| || 0x08032ba4 0020 movs r0, 0
| ,===< 0x08032ba6 00e0 b 0x8032baa
| ||`-> 0x08032ba8 0120 movs r0, 1 ; 1
| ``--> 0x08032baa 10bc pop {r4}
\ 0x08032bac 7047 bx lr
/ (fcn) gfx_32bae 126
| Caller: func_541ae gfx_1c1fe
| gfx_32bae ();
| 0x08032bae 10b5 push {r4, lr}
| 0x08032bb0 0028 cmp r0, 0
| ,=< 0x08032bb2 3ad0 beq 0x8032c2a
| | 0x08032bb4 0029 cmp r1, 0
| ,==< 0x08032bb6 32d0 beq 0x8032c1e
| || 0x08032bb8 002a cmp r2, 0
| ,===< 0x08032bba 30d0 beq 0x8032c1e
| ||| 0x08032bbc b2f90030 ldrsh.w r3, [r2]
| ||| 0x08032bc0 b1f90040 ldrsh.w r4, [r1]
| ||| 0x08032bc4 a342 cmp r3, r4
| ,====< 0x08032bc6 02da bge 0x8032bce
| |||| 0x08032bc8 b2f90030 ldrsh.w r3, [r2]
| ,=====< 0x08032bcc 01e0 b 0x8032bd2
| |`----> 0x08032bce b1f90030 ldrsh.w r3, [r1]
| `-----> 0x08032bd2 0380 strh r3, [r0]
| ||| 0x08032bd4 b2f90230 ldrsh.w r3, [r2, 2]
| ||| 0x08032bd8 b1f90240 ldrsh.w r4, [r1, 2]
| ||| 0x08032bdc a342 cmp r3, r4
| ,====< 0x08032bde 02da bge 0x8032be6
| |||| 0x08032be0 b2f90230 ldrsh.w r3, [r2, 2]
| ,=====< 0x08032be4 01e0 b 0x8032bea
| |`----> 0x08032be6 b1f90230 ldrsh.w r3, [r1, 2]
| `-----> 0x08032bea 4380 strh r3, [r0, 2]
| ||| 0x08032bec b2f90430 ldrsh.w r3, [r2, 4]
| ||| 0x08032bf0 b1f90440 ldrsh.w r4, [r1, 4]
| ||| 0x08032bf4 a342 cmp r3, r4
| ,====< 0x08032bf6 02da bge 0x8032bfe
| |||| 0x08032bf8 b1f90430 ldrsh.w r3, [r1, 4]
| ,=====< 0x08032bfc 01e0 b 0x8032c02
| |`----> 0x08032bfe b2f90430 ldrsh.w r3, [r2, 4]
| `-----> 0x08032c02 8380 strh r3, [r0, 4]
| ||| 0x08032c04 b2f90630 ldrsh.w r3, [r2, 6]
| ||| 0x08032c08 b1f90640 ldrsh.w r4, [r1, 6]
| ||| 0x08032c0c a342 cmp r3, r4
| ,====< 0x08032c0e 02da bge 0x8032c16
| |||| 0x08032c10 b1f90610 ldrsh.w r1, [r1, 6]
| ,=====< 0x08032c14 01e0 b 0x8032c1a
| |`----> 0x08032c16 b2f90610 ldrsh.w r1, [r2, 6]
| `-----> 0x08032c1a c180 strh r1, [r0, 6]
| ,====< 0x08032c1c 05e0 b 0x8032c2a
| |``--> 0x08032c1e 0029 cmp r1, 0
| | ,==< 0x08032c20 00d1 bne 0x8032c24
| | || 0x08032c22 1100 movs r1, r2
| | `--> 0x08032c24 0822 movs r2, 8 ; 8
| | | 0x08032c26 00f001f8 bl gfx_memcpy
\ `--`-> 0x08032c2a 10bd pop {r4, pc}
/ (fcn) gfx_memcpy 118
| Caller: gfx_32bae gfx_bmp_s1_1 gfx_4bac4 func_53a88 func_486be gfx_1c63c
| gfx_1c1fe gfx_1c58a gfx_1c6d4 gfx_copy_8byte_thing func_52aa0 gfx_1c2a0
| func_4bb2c func_541ae gfx_bmp_sub1 func_1d074 gfx_1c7bc menu_37d44
| gfx_drawtext_sub8
| gfx_memcpy ();
| 0x08032c2c 62b3 cbz r2, 0x8032c88 ; [in] R2 = number of bytes to copy
| 0x08032c2e 8b07 lsls r3, r1, 0x1e ; [in] R1 = src address
| 0x08032c30 08d0 beq 0x8032c44
| .-> 0x08032c32 521e subs r2, r2, 1
| | 0x08032c34 11f8013b ldrb r3, [r1], 1
| | 0x08032c38 00f8013b strb r3, [r0], 1 ; [in] R0 = dst address (here byte-wise copy)
| | 0x08032c3c 00f02480 beq.w 0x8032c88
| | 0x08032c40 8b07 lsls r3, r1, 0x1e
| `=< 0x08032c42 f6d1 bne 0x8032c32
| 0x08032c44 8307 lsls r3, r0, 0x1e
| ,=< 0x08032c46 40f02080 bne.w 0x8032c8a
| | 0x08032c4a 00bf nop ; if more than 16 bytes, use fastest loop
/ (fcn) func_32c4c 4
| Caller: gfx_33374 gfx_33368 func_3f8f2_init_PLL_and_C5000 func_4520c display_unprog_screen
| func_55706 func_4c148
| func_32c4c ();
| | 0x08032c4c 103a subs r2, 0x10
\ ,==< 0x08032c4e 07d3 blo 0x8032c60 ; gfx_memcpy+0x34 ; if lower then skip and copy the rest
| || 0x08032c50 30b4 push {r4, r5}
| .---> 0x08032c52 b1e83810 ldm.w r1!, {r3, r4, r5, ip} ; fastcopy 16-byte-wise (ip = r12)
| ||| 0x08032c56 103a subs r2, 0x10
| ||| 0x08032c58 a0e83810 stm.w r0!, {r3, r4, r5, ip}
| `===< 0x08032c5c f9d2 bhs 0x8032c52
| || 0x08032c5e 30bc pop {r4, r5}
| `--> 0x08032c60 5307 lsls r3, r2, 0x1d
| ,==< 0x08032c62 24bf itt hs ; sometimes I hate ARM for this.. 'if then then higher or same'
| `--> 0x08032c64 b1e80810 ldm.w r1!, {r3, ip} ; not even Radare2 understood how many instructions 'itt' may skip
| | 0x08032c68 a0e80810 stm.w r0!, {r3, ip}
| ,.--> 0x08032c6c 44bf itt mi ; This code looks better than much of the compiled stuff.
| `---> 0x08032c6e 51f8043b ldr r3, [r1], 4 ; Quite likely this is hand-crafted asm by S....r (?)
| || 0x08032c72 40f8043b str r3, [r0], 4
| || 0x08032c76 d207 lsls r2, r2, 0x1f
| ,===< 0x08032c78 24bf itt hs
| `---> 0x08032c7a 31f8022b ldrh r2, [r1], 2
| || 0x08032c7e 20f8022b strh r2, [r0], 2
| ,===< 0x08032c82 44bf itt mi
| `---> 0x08032c84 0b78 ldrb r3, [r1]
| || 0x08032c86 0370 strb r3, [r0]
| || 0x08032c88 7047 bx lr
| |`-> 0x08032c8a 083a subs r2, 8
| |,=< 0x08032c8c 07d3 blo 0x8032c9e
| .---> 0x08032c8e b1e80810 ldm.w r1!, {r3, ip}
| ||| 0x08032c92 083a subs r2, 8
| ||| 0x08032c94 40f8043b str r3, [r0], 4
| ||| 0x08032c98 40f804cb str ip, [r0], 4
| `===< 0x08032c9c f7d2 bhs 0x8032c8e
| |`-> 0x08032c9e 5307 lsls r3, r2, 0x1d
\ `==< 0x08032ca0 e4e7 b 0x8032c6c
/ (fcn) gfx_32ca4 26
| Caller: gfx_1c2a0
| gfx_32ca4 ();
| 0x08032ca4 1cb5 push {r2, r3, r4, lr}
| 0x08032ca6 0400 movs r4, r0
| 0x08032ca8 00a8 add r0, sp, 0
| 0x08032caa 0549 ldr r1, [0x08032cc2] ; [0x8032cc0:4]=0x2001da1c gfx_info
| 0x08032cac 896c ldr r1, [r1, 0x48] ; [r1+0x48] = gfx_info.jmptable, 0x8098280 = gfx_jmptbl
| 0x08032cae 096a ldr r1, [r1, 0x20] ; [r1+0x20] = gfx_info.jmptable[8] = 0x08048a15 = gfx_48a14
| 0x08032cb0 8847 blx r1
| 0x08032cb2 00aa add r2, sp, 0
| 0x08032cb4 2100 movs r1, r4
| 0x08032cb6 0348 ldr r0, [0x08032cc6] ; [0x8032cc4:4]=0x2001da20 gfx_info.off4
| 0x08032cb8 fff735ff bl gfx_ThreeRectSomething
\ 0x08032cbc 13bd pop {r0, r1, r4, pc}
/ (fcn) some_long_adding 30
| Caller: menu_37d44 gfx_bmp_s1_4
| some_long_adding ();
| 0x08032d0a 0028 cmp r0, 0
| ,=< 0x08032d0c 0bd0 beq 0x8032d26
| | 0x08032d0e 0388 ldrh r3, [r0]
| | 0x08032d10 cb18 adds r3, r1, r3
| | 0x08032d12 0380 strh r3, [r0]
| | 0x08032d14 8388 ldrh r3, [r0, 4]
| | 0x08032d16 c918 adds r1, r1, r3
| | 0x08032d18 8180 strh r1, [r0, 4]
| | 0x08032d1a 4188 ldrh r1, [r0, 2]
| | 0x08032d1c 5118 adds r1, r2, r1
| | 0x08032d1e 4180 strh r1, [r0, 2]
| | 0x08032d20 c188 ldrh r1, [r0, 6]
| | 0x08032d22 5118 adds r1, r2, r1
| | 0x08032d24 c180 strh r1, [r0, 6]
\ `-> 0x08032d26 7047 bx lr
/ (fcn) func_32d28 56
| Caller: gfx_1c58a gfx_1c6d4 gfx_1c63c func_3b618
| func_32d28 ();
| 0x08032d28 b1f90620 ldrsh.w r2, [r1, 6]
| 0x08032d2c b0f90230 ldrsh.w r3, [r0, 2]
| 0x08032d30 9a42 cmp r2, r3
| ,=< 0x08032d32 13db blt 0x8032d5c
| | 0x08032d34 b0f90620 ldrsh.w r2, [r0, 6]
| | 0x08032d38 b1f90230 ldrsh.w r3, [r1, 2]
| | 0x08032d3c 9a42 cmp r2, r3
| ,==< 0x08032d3e 0ddb blt 0x8032d5c
| || 0x08032d40 b1f90420 ldrsh.w r2, [r1, 4]
| || 0x08032d44 b0f90030 ldrsh.w r3, [r0]
| || 0x08032d48 9a42 cmp r2, r3
| ,===< 0x08032d4a 07db blt 0x8032d5c
| ||| 0x08032d4c b0f90400 ldrsh.w r0, [r0, 4]
| ||| 0x08032d50 b1f90010 ldrsh.w r1, [r1]
| ||| 0x08032d54 8842 cmp r0, r1
| ,====< 0x08032d56 01db blt 0x8032d5c
| |||| 0x08032d58 0120 movs r0, 1 ; 1
| ,=====< 0x08032d5a 00e0 b 0x8032d5e
| |````-> 0x08032d5c 0020 movs r0, 0
\ `-----> 0x08032d5e 7047 bx lr
/ (fcn) gfx_32d60 44
| Caller: func_4855c gfx_1c86c func_52596 func_37bb8
| gfx_32d60 ();
| 0x08032d60 38b5 push {r3, r4, r5, lr}
| 0x08032d62 0400 movs r4, r0
| 0x08032d64 2000 movs r0, r4
| 0x08032d66 00b2 sxth r0, r0
| 0x08032d68 fff771fe bl func_32a4e
| 0x08032d6c 0500 movs r5, r0
| 0x08032d6e 2db2 sxth r5, r5
| 0x08032d70 002d cmp r5, 0
| ,=< 0x08032d72 08d0 beq 0x8032d86
| | 0x08032d74 2800 movs r0, r5
| | 0x08032d76 00b2 sxth r0, r0
| | 0x08032d78 fff774fe bl gfx_draw_sub_32a64
| | 0x08032d7c 24b2 sxth r4, r4
| | 0x08032d7e 2200 movs r2, r4
| | 0x08032d80 0021 movs r1, 0
| | 0x08032d82 15f01dfb bl func_483c0
| `-> 0x08032d86 2800 movs r0, r5
| 0x08032d88 00b2 sxth r0, r0
\ 0x08032d8a 32bd pop {r1, r4, r5, pc}
/ (fcn) gfx_32d8c 78
| Caller: gfx_1c86c
| gfx_32d8c ();
| 0x08032d8c f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x08032d8e 0400 movs r4, r0
| 0x08032d90 24b2 sxth r4, r4
| 0x08032d92 002c cmp r4, 0
| ,=< 0x08032d94 20d0 beq 0x8032dd8
| | 0x08032d96 2000 movs r0, r4
| | 0x08032d98 00b2 sxth r0, r0
| | 0x08032d9a fff763fe bl gfx_draw_sub_32a64
| | 0x08032d9e 0600 movs r6, r0
| | 0x08032da0 2000 movs r0, r4
| | 0x08032da2 00b2 sxth r0, r0
| | 0x08032da4 15f03bfb bl func_4841e
| | 0x08032da8 0500 movs r5, r0
| | 0x08032daa 2db2 sxth r5, r5
| | 0x08032dac 002d cmp r5, 0
| ,==< 0x08032dae 13d0 beq 0x8032dd8
| || 0x08032db0 2000 movs r0, r4
| || 0x08032db2 00b2 sxth r0, r0
| || 0x08032db4 04f05efe bl func_37a74
| || 0x08032db8 00b2 sxth r0, r0
| || 0x08032dba fff753fe bl gfx_draw_sub_32a64
| || 0x08032dbe 0700 movs r7, r0
| || 0x08032dc0 2800 movs r0, r5
| || 0x08032dc2 00b2 sxth r0, r0
| || 0x08032dc4 fff74efe bl gfx_draw_sub_32a64
| || 0x08032dc8 718b ldrh r1, [r6, 0x1a]
| || 0x08032dca 4183 strh r1, [r0, 0x1a]
| || 0x08032dcc 388b ldrh r0, [r7, 0x18]
| || 0x08032dce 7083 strh r0, [r6, 0x1a]
| || 0x08032dd0 3c83 strh r4, [r7, 0x18]
| || 0x08032dd2 3000 movs r0, r6
| || 0x08032dd4 e9f734fd bl gfx_1c840
\ ``-> 0x08032dd8 f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) gfx_32dda 18
| Caller: func_2abce gfx_1c9d4 func_4c030
| gfx_32dda ();
| 0x08032dda e0b5 push {r5, r6, r7, lr}
| 0x08032ddc 2622 movs r2, 0x26 ; '&' ; 38
| 0x08032dde 0092 str r2, [sp]
| 0x08032de0 0291 str r1, [sp, 8]
| 0x08032de2 00a9 add r1, sp, 0
| 0x08032de4 00b2 sxth r0, r0
| 0x08032de6 00f087fb bl gfx_334f8
\ 0x08032dea 07bd pop {r0, r1, r2, pc}
/ (fcn) gfx_setcolor_sub4 16
| Caller: gfx_setcolor_sub3 gfx_setcolor_sub2
| gfx_setcolor_sub4 ();
| 0x08032dec dff80814 ldr.w r1, [0x080331fc] ; [0x80331fc:4]=0x2001e5b0
| 0x08032df0 097b ldrb r1, [r1, 0xc]
| 0x08032df2 4907 lsls r1, r1, 0x1d
| ,=< 0x08032df4 01d5 bpl 0x8032dfa
| | 0x08032df6 401e subs r0, r0, 1
| ,==< 0x08032df8 ffe7 b 0x8032dfa
\ ``-> 0x08032dfa 7047 bx lr
/ (fcn) gfx_setcolor_sub2 20
| Caller: gfx_set_fg_color2 func_55408_gfx
| gfx_setcolor_sub2 ();
| 0x08032dfc 10b5 push {r4, lr}
| 0x08032dfe 0400 movs r4, r0
| 0x08032e00 0120 movs r0, 1 ; 1
| 0x08032e02 fff7f3ff bl gfx_setcolor_sub4
| 0x08032e06 dff8f013 ldr.w r1, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| 0x08032e0a 21f81040 strh.w r4, [r1, r0, lsl 1]
\ 0x08032e0e 10bd pop {r4, pc}
/ (fcn) gfx_setcolor_sub3 20
| Caller: func_55408_gfx gfx_set_bg_color2
| gfx_setcolor_sub3 ();
| 0x08032e10 10b5 push {r4, lr}
| 0x08032e12 0400 movs r4, r0
| 0x08032e14 0020 movs r0, 0
| 0x08032e16 fff7e9ff bl gfx_setcolor_sub4
| 0x08032e1a dff8dc13 ldr.w r1, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| 0x08032e1e 21f81040 strh.w r4, [r1, r0, lsl 1]
\ 0x08032e22 10bd pop {r4, pc}
/ (fcn) gfx_32e24 56
| Caller: font_method_called_via_hdr_offset0 gfx_init_lcd func_36f44 gfx_33428
| gfx_32e24 ();
| 0x08032e24 10b4 push {r4}
| 0x08032e26 dff8d013 ldr.w r1, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| 0x08032e2a 097b ldrb r1, [r1, 0xc]
| 0x08032e2c dff8c823 ldr.w r2, [0x080331fc] ; [0x80331fc:4]=0x2001e5b0
| 0x08032e30 127b ldrb r2, [r2, 0xc]
| 0x08032e32 4240 eors r2, r0
| 0x08032e34 5207 lsls r2, r2, 0x1d
| ,=< 0x08032e36 0bd5 bpl 0x8032e50
| | 0x08032e38 dff8bc23 ldr.w r2, [0x080331fc] ; [0x80331fc:4]=0x2001e5b0
| | 0x08032e3c 1288 ldrh r2, [r2]
| | 0x08032e3e dff8b833 ldr.w r3, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| | 0x08032e42 5b88 ldrh r3, [r3, 2]
| | 0x08032e44 dff8b043 ldr.w r4, [0x080331fc] ; [0x80331fc:4]=0x2001e5b0
| | 0x08032e48 2380 strh r3, [r4]
| | 0x08032e4a dff8ac33 ldr.w r3, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| | 0x08032e4e 5a80 strh r2, [r3, 2]
| `-> 0x08032e50 dff8a423 ldr.w r2, [0x080331fc] ; [0x80331fc:4]=0x2001e5b0
| 0x08032e54 1073 strb r0, [r2, 0xc]
| 0x08032e56 0800 movs r0, r1
| 0x08032e58 10bc pop {r4}
\ 0x08032e5a 7047 bx lr
/ (fcn) gfx_32e5c 90
| Caller: menu_draw_sub_3abf8
| gfx_32e5c ();
| 0x08032e5c 80b5 push {r7, lr}
| 0x08032e5e dff89823 ldr.w r2, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| 0x08032e62 b2f90620 ldrsh.w r2, [r2, 6]
| 0x08032e66 9142 cmp r1, r2
| ,=< 0x08032e68 24db blt 0x8032eb4
| | 0x08032e6a dff88c23 ldr.w r2, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| | 0x08032e6e b2f90a20 ldrsh.w r2, [r2, 0xa]
| | 0x08032e72 8a42 cmp r2, r1
| ,==< 0x08032e74 1edb blt 0x8032eb4
| || 0x08032e76 dff88023 ldr.w r2, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| || 0x08032e7a b2f90420 ldrsh.w r2, [r2, 4]
| || 0x08032e7e 9042 cmp r0, r2
| ,===< 0x08032e80 18db blt 0x8032eb4
| ||| 0x08032e82 dff87423 ldr.w r2, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| ||| 0x08032e86 b2f90820 ldrsh.w r2, [r2, 8]
| ||| 0x08032e8a 8242 cmp r2, r0
| ,====< 0x08032e8c 12db blt 0x8032eb4
| |||| 0x08032e8e dff86823 ldr.w r2, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| |||| 0x08032e92 127b ldrb r2, [r2, 0xc]
| |||| 0x08032e94 d207 lsls r2, r2, 0x1f
| ,=====< 0x08032e96 05d5 bpl 0x8032ea4
| ||||| 0x08032e98 dff85c23 ldr.w r2, [0x080331fc] ; [0x80331fc:4]=0x2001e5b0
| ||||| 0x08032e9c 926c ldr r2, [r2, 0x48]
| ||||| 0x08032e9e 926a ldr r2, [r2, 0x28]
| ||||| 0x08032ea0 9047 blx r2
| ,======< 0x08032ea2 07e0 b 0x8032eb4
| |`-----> 0x08032ea4 dff85023 ldr.w r2, [0x080331fc] ; [0x80331fc:4]=0x2001e5b0
| | |||| 0x08032ea8 5288 ldrh r2, [r2, 2]
| | |||| 0x08032eaa dff84c33 ldr.w r3, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| | |||| 0x08032eae 9b6c ldr r3, [r3, 0x48]
| | |||| 0x08032eb0 5b6a ldr r3, [r3, 0x24]
| | |||| 0x08032eb2 9847 blx r3
\ `-````-> 0x08032eb4 01bd pop {r0, pc}
/ (fcn) gfx_32eb6 70
| gfx_32eb6 ();
| 0x08032eb6 80b5 push {r7, lr}
| 0x08032eb8 dff83c33 ldr.w r3, [0x080331fc] ; [0x80331fc:4]=0x2001e5b0
| 0x08032ebc b3f90630 ldrsh.w r3, [r3, 6]
| 0x08032ec0 9942 cmp r1, r3
| ,=< 0x08032ec2 1adb blt 0x8032efa
| | 0x08032ec4 cc4b ldr r3, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| | 0x08032ec6 b3f90a30 ldrsh.w r3, [r3, 0xa]
| | 0x08032eca 8b42 cmp r3, r1
| ,==< 0x08032ecc 15db blt 0x8032efa
| || 0x08032ece ca4b ldr r3, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| || 0x08032ed0 b3f90430 ldrsh.w r3, [r3, 4]
| || 0x08032ed4 9842 cmp r0, r3
| ,===< 0x08032ed6 02da bge 0x8032ede
| ||| 0x08032ed8 c748 ldr r0, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| ||| 0x08032eda b0f90400 ldrsh.w r0, [r0, 4]
| `---> 0x08032ede c64b ldr r3, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| || 0x08032ee0 b3f90830 ldrsh.w r3, [r3, 8]
| || 0x08032ee4 9342 cmp r3, r2
| ,===< 0x08032ee6 02da bge 0x8032eee
| ||| 0x08032ee8 c34a ldr r2, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| ||| 0x08032eea b2f90820 ldrsh.w r2, [r2, 8]
| `---> 0x08032eee 8242 cmp r2, r0
| ,===< 0x08032ef0 03db blt 0x8032efa
| ||| 0x08032ef2 c14b ldr r3, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| ||| 0x08032ef4 9b6c ldr r3, [r3, 0x48]
| ||| 0x08032ef6 1b69 ldr r3, [r3, 0x10]
| ||| 0x08032ef8 9847 blx r3
\ ```-> 0x08032efa 01bd pop {r0, pc}
/ (fcn) gfx_clipped_blockfill_maybe 84
| Caller: font_method_called_via_hdr_offset0 gfx_init_lcd gfx_32f50 gfx_33428
| gfx_clipped_blockfill_maybe ();
| 0x08032efc 10b5 push {r4, lr} ; [in] R0=x1, R1=y1, R2=x2, R3=y2 ?
| 0x08032efe be4c ldr r4, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| 0x08032f00 b4f90440 ldrsh.w r4, [r4, 4] ; [R4+4] = gfx_info.clip.left ?
| 0x08032f04 a042 cmp r0, r4
| ,=< 0x08032f06 02da bge 0x8032f0e
| | 0x08032f08 bb48 ldr r0, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| | 0x08032f0a b0f90400 ldrsh.w r0, [r0, 4]
| `-> 0x08032f0e ba4c ldr r4, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| 0x08032f10 b4f90840 ldrsh.w r4, [r4, 8] ; [R4+8] = gfx_info.clip.right ?
| 0x08032f14 9442 cmp r4, r2
| ,=< 0x08032f16 02da bge 0x8032f1e
| | 0x08032f18 b74a ldr r2, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| | 0x08032f1a b2f90820 ldrsh.w r2, [r2, 8]
| `-> 0x08032f1e 8242 cmp r2, r0
| ,=< 0x08032f20 15db blt 0x8032f4e ; nothing visible (horz) ?
| | 0x08032f22 b54c ldr r4, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| | 0x08032f24 b4f90640 ldrsh.w r4, [r4, 6] ; [R4+6] = gfx_info.clip.top ?
| | 0x08032f28 a142 cmp r1, r4
| ,==< 0x08032f2a 02da bge 0x8032f32
| || 0x08032f2c b249 ldr r1, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| || 0x08032f2e b1f90610 ldrsh.w r1, [r1, 6]
| `--> 0x08032f32 b14c ldr r4, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| | 0x08032f34 b4f90a40 ldrsh.w r4, [r4, 0xa] ; [R4+10] = gfx_info.clip.bottom ?
| | 0x08032f38 9c42 cmp r4, r3
| ,==< 0x08032f3a 02da bge 0x8032f42
| || 0x08032f3c ae4b ldr r3, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| || 0x08032f3e b3f90a30 ldrsh.w r3, [r3, 0xa]
| `--> 0x08032f42 8b42 cmp r3, r1
| ,==< 0x08032f44 03db blt 0x8032f4e ; nothing visible (vert) ?
| || 0x08032f46 ac4c ldr r4, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| || 0x08032f48 a46c ldr r4, [r4, 0x48] ; [R4+0x18] = gfx_jmptbl[6] = 0x0801d88d = gfx_blockfill
| || 0x08032f4a a469 ldr r4, [r4, 0x18]
| || 0x08032f4c a047 blx r4 ; gfx_blockfill(R0=x_from,R1=y_from,R2=x_to,R3=y_to)
\ ``-> 0x08032f4e 10bd pop {r4, pc}
/ (fcn) gfx_32f50 540
| Caller: func_4870c gfx_bmp_sub2 font_method_called_via_hdr_offset0
| gfx_32f50 ();
| 0x08032f50 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08032f54 87b0 sub sp, 0x1c
| 0x08032f56 0400 movs r4, r0
| 0x08032f58 1500 movs r5, r2
| 0x08032f5a 1e00 movs r6, r3
| 0x08032f5c 5ff0000a movs.w sl, 0
| 0x08032f60 1098 ldr r0, [sp, 0x40]
| 0x08032f62 1090 str r0, [sp, 0x40]
| 0x08032f64 1198 ldr r0, [sp, 0x44]
| 0x08032f66 1190 str r0, [sp, 0x44]
| 0x08032f68 1298 ldr r0, [sp, 0x48]
| 0x08032f6a 1290 str r0, [sp, 0x48]
| 0x08032f6c 1398 ldr r0, [sp, 0x4c]
| 0x08032f6e 1390 str r0, [sp, 0x4c]
| 0x08032f70 149f ldr r7, [sp, 0x50]
| 0x08032f72 1598 ldr r0, [sp, 0x54]
| 0x08032f74 1590 str r0, [sp, 0x54]
| 0x08032f76 a148 ldr r0, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| 0x08032f78 0068 ldr r0, [r0]
| 0x08032f7a 0028 cmp r0, 0
| ,=< 0x08032f7c 12d0 beq 0x8032fa4
| | 0x08032f7e 1598 ldr r0, [sp, 0x54]
| | 0x08032f80 0590 str r0, [sp, 0x14]
| | 0x08032f82 0497 str r7, [sp, 0x10]
| | 0x08032f84 1398 ldr r0, [sp, 0x4c]
| | 0x08032f86 0390 str r0, [sp, 0xc]
| | 0x08032f88 1298 ldr r0, [sp, 0x48]
| | 0x08032f8a 0290 str r0, [sp, 8]
| | 0x08032f8c 1198 ldr r0, [sp, 0x44]
| | 0x08032f8e 0190 str r0, [sp, 4]
| | 0x08032f90 1098 ldr r0, [sp, 0x40]
| | 0x08032f92 0090 str r0, [sp]
| | 0x08032f94 3300 movs r3, r6
| | 0x08032f96 2a00 movs r2, r5
| | 0x08032f98 2000 movs r0, r4
| | 0x08032f9a 984c ldr r4, [0x080331fe] ; [0x80331fc:4]=0x2001e5b0
| | 0x08032f9c 2468 ldr r4, [r4]
| | 0x08032f9e 2468 ldr r4, [r4]
| | 0x08032fa0 a047 blx r4
| ,==< 0x08032fa2 72e0 b 0x803308a
| |`-> 0x08032fa4 7018 adds r0, r6, r1
| | 0x08032fa6 401e subs r0, r0, 1
| | 0x08032fa8 2a19 adds r2, r5, r4
| | 0x08032faa 521e subs r2, r2, 1
| | 0x08032fac 109b ldr r3, [sp, 0x40]
| | 0x08032fae ddf844c0 ldr.w ip, [sp, 0x44]
| | 0x08032fb2 5cea0303 orrs.w r3, ip, r3
| | 0x08032fb6 012b cmp r3, 1 ; 1
| |,=< 0x08032fb8 6ad1 bne 0x8033090
| || 0x08032fba 8f4b ldr r3, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| || 0x08032fbc b3f90630 ldrsh.w r3, [r3, 6]
| || 0x08032fc0 5b1a subs r3, r3, r1
| || 0x08032fc2 012b cmp r3, 1 ; 1
| ,===< 0x08032fc4 09db blt 0x8032fda
| ||| 0x08032fc6 f61a subs r6, r6, r3
| ||| 0x08032fc8 012e cmp r6, 1 ; 1
| ,====< 0x08032fca 5edb blt 0x803308a
| |||| 0x08032fcc 8a49 ldr r1, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| |||| 0x08032fce b1f90610 ldrsh.w r1, [r1, 6]
| |||| 0x08032fd2 ddf84cc0 ldr.w ip, [sp, 0x4c]
| |||| 0x08032fd6 0cfb0377 mla r7, ip, r3, r7
| |`---> 0x08032fda 874b ldr r3, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| | || 0x08032fdc b3f90a30 ldrsh.w r3, [r3, 0xa]
| | || 0x08032fe0 c31a subs r3, r0, r3
| | || 0x08032fe2 012b cmp r3, 1 ; 1
| |,===< 0x08032fe4 02db blt 0x8032fec
| |||| 0x08032fe6 f61a subs r6, r6, r3
| |||| 0x08032fe8 012e cmp r6, 1 ; 1
| ,=====< 0x08032fea 4edb blt 0x803308a
| ||`---> 0x08032fec 8248 ldr r0, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| || || 0x08032fee b0f90800 ldrsh.w r0, [r0, 8]
| || || 0x08032ff2 131a subs r3, r2, r0
| || || 0x08032ff4 012b cmp r3, 1 ; 1
| ||,===< 0x08032ff6 00db blt 0x8032ffa
| ||||| 0x08032ff8 ed1a subs r5, r5, r3
| ||`---> 0x08032ffa 0023 movs r3, 0
| || || 0x08032ffc 7e48 ldr r0, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| || || 0x08032ffe b0f90400 ldrsh.w r0, [r0, 4]
| || || 0x08033002 8442 cmp r4, r0
| ||,===< 0x08033004 30da bge 0x8033068
| ||||| 0x08033006 7c48 ldr r0, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| ||||| 0x08033008 b0f90400 ldrsh.w r0, [r0, 4]
| ||||| 0x0803300c 031b subs r3, r0, r4
| ||||| 0x0803300e ed1a subs r5, r5, r3
| ||||| 0x08033010 1298 ldr r0, [sp, 0x48]
| ||||| 0x08033012 0128 cmp r0, 1 ; 1
| ,======< 0x08033014 08d0 beq 0x8033028
| |||||| 0x08033016 0228 cmp r0, 2 ; 2
| ,=======< 0x08033018 0ed0 beq 0x8033038
| ||||||| 0x0803301a 0428 cmp r0, 4 ; 4
| ========< 0x0803301c 14d0 beq 0x8033048
| ||||||| 0x0803301e 0828 cmp r0, 8 ; 8
| ========< 0x08033020 1ad0 beq 0x8033058
| ||||||| 0x08033022 1028 cmp r0, 0x10 ; 16
| ========< 0x08033024 1cd0 beq 0x8033060
| ========< 0x08033026 1fe0 b 0x8033068
| |`------> 0x08033028 17ebe307 adds.w r7, r7, r3, asr 3
| | ||||| 0x0803302c 33f00700 bics r0, r3, 7
| | ||||| 0x08033030 0419 adds r4, r0, r4
| | ||||| 0x08033032 13f00703 ands r3, r3, 7
| |,======< 0x08033036 17e0 b 0x8033068
| `-------> 0x08033038 17eba307 adds.w r7, r7, r3, asr 2
| |||||| 0x0803303c 33f00300 bics r0, r3, 3
| |||||| 0x08033040 0419 adds r4, r0, r4
| |||||| 0x08033042 13f00303 ands r3, r3, 3
| ,=======< 0x08033046 0fe0 b 0x8033068
| --------> 0x08033048 17eb6307 adds.w r7, r7, r3, asr 1
| ||||||| 0x0803304c 33f00100 bics r0, r3, 1
| ||||||| 0x08033050 0419 adds r4, r0, r4
| ||||||| 0x08033052 13f00103 ands r3, r3, 1
| ========< 0x08033056 07e0 b 0x8033068
| --------> 0x08033058 df19 adds r7, r3, r7
| ||||||| 0x0803305a 1c19 adds r4, r3, r4
| ||||||| 0x0803305c 0023 movs r3, 0
| ========< 0x0803305e 03e0 b 0x8033068
| --------> 0x08033060 17eb4307 adds.w r7, r7, r3, lsl 1
| ||||||| 0x08033064 1c19 adds r4, r3, r4
| ||||||| 0x08033066 0023 movs r3, 0
| ``--`---> 0x08033068 012d cmp r5, 1 ; 1
| ||,===< 0x0803306a 0edb blt 0x803308a
| ||||| 0x0803306c 1598 ldr r0, [sp, 0x54]
| ||||| 0x0803306e 0490 str r0, [sp, 0x10]
| ||||| 0x08033070 0393 str r3, [sp, 0xc]
| ||||| 0x08033072 0297 str r7, [sp, 8]
| ||||| 0x08033074 1398 ldr r0, [sp, 0x4c]
| ||||| 0x08033076 0190 str r0, [sp, 4]
| ||||| 0x08033078 1298 ldr r0, [sp, 0x48]
| ||||| 0x0803307a 0090 str r0, [sp]
| ||||| 0x0803307c 3300 movs r3, r6
| ||||| 0x0803307e 2a00 movs r2, r5
| ||||| 0x08033080 2000 movs r0, r4
| ||||| 0x08033082 5d4c ldr r4, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| ||||| 0x08033084 a46c ldr r4, [r4, 0x48]
| ||||| 0x08033086 e468 ldr r4, [r4, 0xc]
| ||||| 0x08033088 a047 blx r4
| .````--> 0x0803308a 07b0 add sp, 0x1c
| | | 0x0803308c bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} ; return but not the end of this function
| | `-> 0x08033090 1298 ldr r0, [sp, 0x48]
| | 0x08033092 d0f10800 rsbs.w r0, r0, 8
| | 0x08033096 0590 str r0, [sp, 0x14]
| | 0x08033098 0091 str r1, [sp]
| | 0x0803309a 0020 movs r0, 0
| | 0x0803309c 0390 str r0, [sp, 0xc]
| | ,=< 0x0803309e 08e0 b 0x80330b2
| | ...--> 0x080330a0 0398 ldr r0, [sp, 0xc]
| | |||| 0x080330a2 401c adds r0, r0, 1
| | |||| 0x080330a4 0390 str r0, [sp, 0xc]
| | |||| 0x080330a6 0098 ldr r0, [sp]
| | |||| 0x080330a8 1199 ldr r1, [sp, 0x44]
| | |||| 0x080330aa 0818 adds r0, r1, r0
| | |||| 0x080330ac 0090 str r0, [sp]
| | |||| 0x080330ae 1398 ldr r0, [sp, 0x4c]
| | |||| 0x080330b0 c719 adds r7, r0, r7
| | |||`-> 0x080330b2 0398 ldr r0, [sp, 0xc]
| | ||| 0x080330b4 b042 cmp r0, r6
| `======< 0x080330b6 e8da bge 0x803308a
| ||| 0x080330b8 0098 ldr r0, [sp]
| ||| 0x080330ba 1199 ldr r1, [sp, 0x44]
| ||| 0x080330bc 0818 adds r0, r1, r0
| ||| 0x080330be 401e subs r0, r0, 1
| ||| 0x080330c0 0490 str r0, [sp, 0x10]
| ||| 0x080330c2 0498 ldr r0, [sp, 0x10]
| ||| 0x080330c4 4c49 ldr r1, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| ||| 0x080330c6 b1f90610 ldrsh.w r1, [r1, 6]
| ||| 0x080330ca 8842 cmp r0, r1
| `====< 0x080330cc e8db blt 0x80330a0
| || 0x080330ce 4a48 ldr r0, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| || 0x080330d0 b0f90a00 ldrsh.w r0, [r0, 0xa]
| || 0x080330d4 0099 ldr r1, [sp]
| || 0x080330d6 8842 cmp r0, r1
| `===< 0x080330d8 e2db blt 0x80330a0
| | 0x080330da 5ff0000b movs.w fp, 0
| | 0x080330de 0297 str r7, [sp, 8]
| | 0x080330e0 a146 mov sb, r4
| | 0x080330e2 5ff00008 movs.w r8, 0
| |,=< 0x080330e6 14e0 b 0x8033112
| .---> 0x080330e8 4349 ldr r1, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| ||| 0x080330ea c0b2 uxtb r0, r0
| ||| 0x080330ec 4880 strh r0, [r1, 2]
| .----> 0x080330ee 049b ldr r3, [sp, 0x10]
| |||| 0x080330f0 1098 ldr r0, [sp, 0x40]
| |||| 0x080330f2 10eb0900 adds.w r0, r0, sb
| |||| 0x080330f6 421e subs r2, r0, 1
| |||| 0x080330f8 0099 ldr r1, [sp]
| |||| 0x080330fa 4846 mov r0, sb
| |||| 0x080330fc fff7fefe bl gfx_clipped_blockfill_maybe
| |||| 0x08033100 3d48 ldr r0, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| |||| 0x08033102 bdf80410 ldrh.w r1, [sp, 4]
| |||| 0x08033106 4180 strh r1, [r0, 2]
| .-----> 0x08033108 18f10108 adds.w r8, r8, 1
| ||||| 0x0803310c 1098 ldr r0, [sp, 0x40]
| ||||| 0x0803310e 10eb0909 adds.w sb, r0, sb
| ||||`-> 0x08033112 a845 cmp r8, r5
| |||`==< 0x08033114 c4da bge 0x80330a0
| ||| 0x08033116 bbf1000f cmp.w fp, 0
| ||| ,=< 0x0803311a 07d1 bne 0x803312c
| ||| | 0x0803311c 0298 ldr r0, [sp, 8]
| ||| | 0x0803311e 90f800a0 ldrb.w sl, [r0]
| ||| | 0x08033122 0298 ldr r0, [sp, 8]
| ||| | 0x08033124 401c adds r0, r0, 1
| ||| | 0x08033126 0290 str r0, [sp, 8]
| ||| | 0x08033128 5ff0080b movs.w fp, 8 ; 8
| ||| `-> 0x0803312c 5ffa8afa uxtb.w sl, sl
| ||| 0x08033130 0598 ldr r0, [sp, 0x14]
| ||| 0x08033132 5afa00f0 asrs.w r0, sl, r0
| ||| 0x08033136 1299 ldr r1, [sp, 0x48]
| ||| 0x08033138 1afa01fa lsls.w sl, sl, r1
| ||| 0x0803313c 1299 ldr r1, [sp, 0x48]
| ||| 0x0803313e bbeb010b subs.w fp, fp, r1
| ||| 0x08033142 c0b2 uxtb r0, r0
| ||| 0x08033144 0028 cmp r0, 0
| ||| ,=< 0x08033146 03d1 bne 0x8033150
| ||| | 0x08033148 2b49 ldr r1, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| ||| | 0x0803314a 097b ldrb r1, [r1, 0xc]
| ||| | 0x0803314c 8907 lsls r1, r1, 0x1e
| `=====< 0x0803314e dbd4 bmi 0x8033108
| || `-> 0x08033150 2949 ldr r1, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| || 0x08033152 4988 ldrh r1, [r1, 2]
| || 0x08033154 adf80410 strh.w r1, [sp, 4]
| || 0x08033158 1599 ldr r1, [sp, 0x54]
| || 0x0803315a 0029 cmp r1, 0
| |`===< 0x0803315c c4d0 beq 0x80330e8
| | 0x0803315e c0b2 uxtb r0, r0
| | 0x08033160 1599 ldr r1, [sp, 0x54]
| | 0x08033162 31f81000 ldrh.w r0, [r1, r0, lsl 1]
| | 0x08033166 2449 ldr r1, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| | 0x08033168 4880 strh r0, [r1, 2]
\ `====< 0x0803316a c0e7 b 0x80330ee
/ (fcn) gfx_IntersectRect 66
| Caller: gfx_1c2a0 gfx_1c7bc gfx_bmp_s1_5 func_541ae gfx_bmp_sub1
| gfx_IntersectRect ();
| 0x08032cc8 b0f90020 ldrsh.w r2, [r0] ; [in,out] R0 = address of rectangle coords (GUI_RECT* pDest ?)
| 0x08032ccc b1f90030 ldrsh.w r3, [r1] ; [in] R1 = address of another rectangle (GUI_RECT* pSrc ?)
| 0x08032cd0 9a42 cmp r2, r3 ; if( pDest.x0 > pSrc.x0) .. (speculative)
| ,=< 0x08032cd2 01da bge 0x8032cd8 ; branch if 1st cmp operand GREATER OR EQUAL than 2nd
| | 0x08032cd4 0a88 ldrh r2, [r1] ; .. then pDest.x0 = pSrc.x0 (x0,y0 = FIRST coord in a GUI_RECT)
| | 0x08032cd6 0280 strh r2, [r0]
| `-> 0x08032cd8 b0f90220 ldrsh.w r2, [r0, 2]
| 0x08032cdc b1f90230 ldrsh.w r3, [r1, 2]
| 0x08032ce0 9a42 cmp r2, r3 ; if( pDest.y0 > pSrc.y0) .. (speculative)
| 0x08032ce2 01da bge 0x8032ce8
| 0x08032ce4 4a88 ldrh r2, [r1, 2]
| 0x08032ce6 4280 strh r2, [r0, 2] ; .. then pDest.y0 = pSrc.y0
| 0x08032ce8 b1f90420 ldrsh.w r2, [r1, 4]
| 0x08032cec b0f90430 ldrsh.w r3, [r0, 4]
| 0x08032cf0 9a42 cmp r2, r3 ; if( pDest.x1 < pSrc.x1) .. (speculative)
| 0x08032cf2 01da bge 0x8032cf8
| 0x08032cf4 8a88 ldrh r2, [r1, 4]
| 0x08032cf6 8280 strh r2, [r0, 4] ; .. then pDest.x1 = pSrc.x1 (x1,y1 = SECOND coord)
| 0x08032cf8 b1f90620 ldrsh.w r2, [r1, 6]
| 0x08032cfc b0f90630 ldrsh.w r3, [r0, 6]
| 0x08032d00 9a42 cmp r2, r3 ; if( pDest.y1 < pSrc.y1) .. (speculative)
| 0x08032d02 01da bge 0x8032d08
| 0x08032d04 c988 ldrh r1, [r1, 6]
| 0x08032d06 c180 strh r1, [r0, 6] ; .. then pDest.x1 = pSrc.x1
\ 0x08032d08 7047 bx lr ; on return, pDest has grown to 'include' pSrc (speculative)
/ (fcn) gfx_3316c 14
| Caller: func_553dc_gfx func_486be gfx_1caa4 gfx_init_lcd gfx_1d224 func_48934
| gfx_3316c ();
| 0x0803316c 80b5 push {r7, lr}
| 0x0803316e 2448 ldr r0, [0x08033202] ; [0x8033200:4]=0x2001da20 gfx_info.off4
| 0x08033170 2149 ldr r1, [0x080331f8] ; [0x80331f8:4]=0x2001da1c gfx_info
| 0x08033172 896c ldr r1, [r1, 0x48]
| 0x08033174 096a ldr r1, [r1, 0x20]
| 0x08033176 8847 blx r1
\ 0x08033178 01bd pop {r0, pc}
/ (fcn) gfx_init_lcd 54
| Caller: gfx_init_lcd_and_others
| gfx_init_lcd ();
| 0x0803317a 10b5 push {r4, lr}
| 0x0803317c 0024 movs r4, 0
| 0x0803317e fff7f5ff bl gfx_3316c
| 0x08033182 eaf7e7fb bl InitLCD_wrapper
| 0x08033186 0443 orrs r4, r0
| 0x08033188 03f006ff bl func_36f98
| 0x0803318c 0420 movs r0, 4 ; 4
| 0x0803318e fff749fe bl gfx_32e24
| 0x08033192 40f6ff73 movw r3, 0xfff
| 0x08033196 40f6ff72 movw r2, 0xfff
| 0x0803319a 0021 movs r1, 0
| 0x0803319c 0020 movs r0, 0
| 0x0803319e fff7adfe bl gfx_clipped_blockfill_maybe
| 0x080331a2 0020 movs r0, 0
| 0x080331a4 fff73efe bl gfx_32e24
| 0x080331a8 eaf7d3fb bl gfx_1d952_does_nothing
| 0x080331ac 2000 movs r0, r4
\ 0x080331ae 10bd pop {r4, pc}
/ (fcn) gfx_331bc 12
| Caller: gfx_48a42 gfx_48a36
| gfx_331bc ();
| 0x080331bc 80b5 push {r7, lr}
| 0x080331be 0e49 ldr r1, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| 0x080331c0 896c ldr r1, [r1, 0x48]
| 0x080331c2 4968 ldr r1, [r1, 4]
| 0x080331c4 8847 blx r1 ; omg - this branch may go anywhere. VMT ?
\ 0x080331c6 02bd pop {r1, pc}
/ (fcn) gfx_set_bg_color2 24
| Caller: gfx_before_lcd_init gfx_set_bg_color func_37b0a draw_some_bitmap_and_text
| menu_draw_something2
| gfx_set_bg_color2 ();
| 0x080331c8 80b5 push {r7, lr}
| 0x080331ca 0b49 ldr r1, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| 0x080331cc 496b ldr r1, [r1, 0x34] ; [R1+52] = gfx_info.bg_color, 24-bit RGB
| 0x080331ce 8142 cmp r1, r0
| ,=< 0x080331d0 05d0 beq 0x80331de ; RGB value not modified, no need to convert to TFT-format
| | 0x080331d2 0949 ldr r1, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| | 0x080331d4 4863 str r0, [r1, 0x34]
| | 0x080331d6 fff7ebff bl gfx_setcolor_sub1 ; convert colour model via fx ptr / class method ?
| | 0x080331da fff719fe bl gfx_setcolor_sub3
\ `-> 0x080331de 01bd pop {r0, pc}
/ (fcn) gfx_set_fg_color2 24
| Caller: gfx_before_lcd_init draw_some_bitmap_and_text func_37b0a gfx_set_fg_color
| menu_draw_something2
| gfx_set_fg_color2 ();
| 0x080331e0 80b5 push {r7, lr}
| 0x080331e2 0549 ldr r1, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| 0x080331e4 096b ldr r1, [r1, 0x30] ; [R1+48] = gfx_info.fg_color, 24-bit RGB
| 0x080331e6 8142 cmp r1, r0
| ,=< 0x080331e8 05d0 beq 0x80331f6 ; RGB value not modified, no need to convert to TFT-format
| | 0x080331ea 0349 ldr r1, [0x080331fa] ; [0x80331f8:4]=0x2001da1c gfx_info
| | 0x080331ec 0863 str r0, [r1, 0x30]
| | 0x080331ee fff7dfff bl gfx_setcolor_sub1 ; convert colour model via fx ptr / class method ?
| | 0x080331f2 fff703fe bl gfx_setcolor_sub2
\ `-> 0x080331f6 01bd pop {r0, pc}
/ (fcn) gfx_33204 54
| gfx_33204 ();
| 0x08033204 80b5 push {r7, lr}
| 0x08033206 7ff07f40 mvns r0, 0xff000000
| 0x0803320a eaf7adf8 bl gfx_set_bg_color
| 0x0803320e 0b48 ldr r0, [0x0803323e] ; [0x803323c:4]=0xff1414
| 0x08033210 eaf7aef8 bl gfx_set_fg_color
| 0x08033214 0120 movs r0, 1 ; 1
| 0x08033216 15f021f9 bl func_4845c
| 0x0803321a 0020 movs r0, 0
| 0x0803321c 15f028f9 bl gfx_set_i16_in_GfxInfoPlus0x2C
| 0x08033220 0020 movs r0, 0
| 0x08033222 07f0dffc bl menu_draw_sub_3abe4
| 0x08033226 0020 movs r0, 0
| 0x08033228 03f08cfe bl func_36f44
| 0x0803322c 0448 ldr r0, [0x08033240] ; [0x8033240:4]=0x80cf780 gfx_font_norm
| 0x0803322e eef721fb bl gfx_select_font
| 0x08033232 0020 movs r0, 0
| 0x08033234 15f026f9 bl gfx_set_u8_in_GfxInfoPlus0x16
\ 0x08033238 01bd pop {r0, pc}
/ (fcn) gfx_3323a 18
| gfx_3323a ();
| 0x0803323a 0000 movs r0, r0
| 0x0803323c 1414 asrs r4, r2, 0x10
| 0x0803323e ff00 lsls r7, r7, 3
| 0x08033240 80f70c08 usat r8, 0xc, r0
/ (fcn) gfx_33244 8
| Caller: gfx_3324c
| gfx_33244 ();
| 0x08033244 8142 cmp r1, r0
| ,=< 0x08033246 00da bge 0x803324a
| | 0x08033248 0800 movs r0, r1
\ `-> 0x0803324a 7047 bx lr
/ (fcn) gfx_3324c 284
| Caller: func_1d074
| gfx_3324c ();
| 0x0803324c 2de9f84f push.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08033250 0400 movs r4, r0
| 0x08033252 0d00 movs r5, r1
| 0x08033254 1600 movs r6, r2
| 0x08033256 1f00 movs r7, r3
| 0x08033258 ddf82880 ldr.w r8, [sp, 0x28]
| 0x0803325c 002c cmp r4, 0
| ,=< 0x0803325e 28d0 beq 0x80332b2
| | 0x08033260 b4f90000 ldrsh.w r0, [r4]
| | 0x08033264 0028 cmp r0, 0
| ,==< 0x08033266 02d5 bpl 0x803326e
| || 0x08033268 5ff00009 movs.w sb, 0
| ,===< 0x0803326c 01e0 b 0x8033272
| |`--> 0x0803326e b4f90090 ldrsh.w sb, [r4]
| `---> 0x08033272 b4f90200 ldrsh.w r0, [r4, 2]
| | 0x08033276 0028 cmp r0, 0
| ,==< 0x08033278 02d5 bpl 0x8033280
| || 0x0803327a 5ff0000a movs.w sl, 0
| ,===< 0x0803327e 01e0 b 0x8033284
| |`--> 0x08033280 b4f902a0 ldrsh.w sl, [r4, 2]
| `---> 0x08033284 15f008f9 bl func_48498
| | 0x08033288 411e subs r1, r0, 1
| | 0x0803328a b4f90400 ldrsh.w r0, [r4, 4]
| | 0x0803328e fff7d9ff bl gfx_33244
| | 0x08033292 8346 mov fp, r0
| | 0x08033294 15f002f9 bl return_0x80
| | 0x08033298 411e subs r1, r0, 1
| | 0x0803329a b4f90600 ldrsh.w r0, [r4, 6]
| | 0x0803329e fff7d1ff bl gfx_33244
| | 0x080332a2 bbeb0901 subs.w r1, fp, sb
| | 0x080332a6 4c1c adds r4, r1, 1
| | 0x080332a8 b0eb0a00 subs.w r0, r0, sl
| | 0x080332ac 10f1010b adds.w fp, r0, 1
| ,==< 0x080332b0 09e0 b 0x80332c6
| |`-> 0x080332b2 5ff00009 movs.w sb, 0
| | 0x080332b6 5ff0000a movs.w sl, 0
| | 0x080332ba 15f0edf8 bl func_48498
| | 0x080332be 0400 movs r4, r0
| | 0x080332c0 15f0ecf8 bl return_0x80
| | 0x080332c4 8346 mov fp, r0
| `--> 0x080332c6 002f cmp r7, 0
| ,=< 0x080332c8 01d1 bne 0x80332ce
| | 0x080332ca dbf10007 rsbs.w r7, fp, 0
| `-> 0x080332ce 012c cmp r4, 1 ; 1
| ,=< 0x080332d0 02db blt 0x80332d8
| | 0x080332d2 bbf1010f cmp.w fp, 1 ; 1
| ,==< 0x080332d6 01da bge 0x80332dc
| |`-> 0x080332d8 0020 movs r0, 0
| |,=< 0x080332da 43e0 b 0x8033364
| `--> 0x080332dc cdf80080 str.w r8, [sp]
| | 0x080332e0 3b00 movs r3, r7
| | 0x080332e2 2200 movs r2, r4
| | 0x080332e4 5146 mov r1, sl
| | 0x080332e6 4846 mov r0, sb
| | 0x080332e8 15f0b4f9 bl func_48654
| | 0x080332ec 0400 movs r4, r0
| | 0x080332ee 24b2 sxth r4, r4
| | 0x080332f0 002c cmp r4, 0
| ,==< 0x080332f2 03d1 bne 0x80332fc
| || 0x080332f4 3000 movs r0, r6
| || 0x080332f6 a847 blx r5
| || 0x080332f8 0120 movs r0, 1 ; 1
| ,===< 0x080332fa 33e0 b 0x8033364
| |`--> 0x080332fc 2000 movs r0, r4
| | | 0x080332fe 00b2 sxth r0, r0
| | | 0x08033300 15f0ecfa bl func_488dc
| | | 0x08033304 0700 movs r7, r0
| | | 0x08033306 2000 movs r0, r4
| | | 0x08033308 00b2 sxth r0, r0
| | | 0x0803330a 15f0d8f9 bl func_486be
| | | 0x0803330e 5ff00008 movs.w r8, 0
| |,==< 0x08033312 1de0 b 0x8033350
| .----> 0x08033314 bbeb0801 subs.w r1, fp, r8
| |||| 0x08033318 b942 cmp r1, r7
| ,=====< 0x0803331a 03da bge 0x8033324
| ||||| 0x0803331c 2000 movs r0, r4
| ||||| 0x0803331e 00b2 sxth r0, r0
| ||||| 0x08033320 15f0f2fa bl func_48908
| `-----> 0x08033324 b8f1000f cmp.w r8, 0
| ,=====< 0x08033328 0ad0 beq 0x8033340
| ||||| 0x0803332a 18eb0a02 adds.w r2, r8, sl
| ||||| 0x0803332e 4946 mov r1, sb
| ||||| 0x08033330 2000 movs r0, r4
| ||||| 0x08033332 00b2 sxth r0, r0
| ||||| 0x08033334 15f0fefa bl func_48934
| ||||| 0x08033338 2000 movs r0, r4
| ||||| 0x0803333a 00b2 sxth r0, r0
| ||||| 0x0803333c 15f028fb bl func_48990
| `-----> 0x08033340 3000 movs r0, r6
| |||| 0x08033342 a847 blx r5
| |||| 0x08033344 2000 movs r0, r4
| |||| 0x08033346 00b2 sxth r0, r0
| |||| 0x08033348 15f0b5fa bl func_488b6
| |||| 0x0803334c 17eb0808 adds.w r8, r7, r8
| ||`--> 0x08033350 d845 cmp r8, fp
| `====< 0x08033352 dfdb blt 0x8033314
| | | 0x08033354 2000 movs r0, r4
| | | 0x08033356 00b2 sxth r0, r0
| | | 0x08033358 15f0e1f8 bl func_4851e
| | | 0x0803335c 0020 movs r0, 0
| | | 0x0803335e 15f0aef9 bl func_486be
| | | 0x08033362 0020 movs r0, 0
\ `-`-> 0x08033364 bde8f28f pop.w {r1, r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) gfx_33244 8
| Caller: gfx_3324c
| gfx_33244 ();
| 0x08033244 8142 cmp r1, r0
| ,=< 0x08033246 00da bge 0x803324a
| | 0x08033248 0800 movs r0, r1
\ `-> 0x0803324a 7047 bx lr
/ (fcn) gfx_33368 12
| Caller: func_1d118
| gfx_33368 ();
| 0x08033368 00b5 push {lr}
| 0x0803336a 0649 ldr r1, [0x08033386] ; [0x8033384:4]=0x2001da1c gfx_info
| 0x0803336c 6022 movs r2, 0x60 ; '`' ; 96
| 0x0803336e fff76dfc bl func_32c4c
\ 0x08033372 00bd pop {pc}
/ (fcn) gfx_33374 14
| Caller: func_1d118
| gfx_33374 ();
| 0x08033374 00b5 push {lr}
| 0x08033376 0100 movs r1, r0
| 0x08033378 0248 ldr r0, [0x08033384] ; [0x8033384:4]=0x2001da1c gfx_info
| 0x0803337a 6022 movs r2, 0x60 ; '`' ; 96
| 0x0803337c fff766fc bl func_32c4c
\ 0x08033380 00bd pop {pc}
/ (fcn) gfx_33382 20
| gfx_33382 ();
| 0x08033382 0000 movs r0, r0
| ,=< 0x08033384 1cda bge 0x80333c0 ; gfx_33396+0x2a
| | 0x08033386 0120 movs r0, 1 ; 1
/ (fcn) func_33388 4
| Caller: gfx_33396 func_4c030
| func_33388 ();
| | 0x08033388 1049 ldr r1, [0x080333cc] ; [0x80333cc:4]=0x2001e5b8
\ | 0x0803338a 0968 ldr r1, [r1]
| | 0x0803338c 0029 cmp r1, 0
| ,==< 0x0803338e 01d1 bne 0x8033394
| || 0x08033390 0e49 ldr r1, [0x080333cc] ; [0x80333cc:4]=0x2001e5b8
| || 0x08033392 0860 str r0, [r1]
\ `--> 0x08033394 7047 bx lr
/ (fcn) gfx_33396 54
| Caller: func_1d174
| gfx_33396 ();
| 0x08033396 10b5 push {r4, lr}
| 0x08033398 0020 movs r0, 0
| 0x0803339a 0e49 ldr r1, [0x080333d6] ; [0x80333d4:4]=0x2001e5b4
| 0x0803339c 0968 ldr r1, [r1]
| 0x0803339e 0029 cmp r1, 0
| ,=< 0x080333a0 13d0 beq 0x80333ca
| | 0x080333a2 0c48 ldr r0, [0x080333d6] ; [0x80333d4:4]=0x2001e5b4
| | 0x080333a4 0068 ldr r0, [r0]
| | 0x080333a6 401e subs r0, r0, 1
| | 0x080333a8 0a49 ldr r1, [0x080333d4] ; [0x80333d4:4]=0x2001e5b4
| | 0x080333aa 0860 str r0, [r1]
| | 0x080333ac 0848 ldr r0, [0x080333d0] ; [0x80333d0:4]=0x2001e54c
| | 0x080333ae 0468 ldr r4, [r0]
| | 0x080333b0 0748 ldr r0, [0x080333d0] ; [0x80333d0:4]=0x2001e54c
| | 0x080333b2 4168 ldr r1, [r0, 4]
| | 0x080333b4 2000 movs r0, r4
| | 0x080333b6 15f007fb bl func_489c8
| | 0x080333ba 0548 ldr r0, [0x080333d2] ; [0x80333d0:4]=0x2001e54c
| | 0x080333bc 4068 ldr r0, [r0, 4]
| | 0x080333be 0128 cmp r0, 1 ; 1
| ,==< 0x080333c0 02d1 bne 0x80333c8
| || 0x080333c2 2000 movs r0, r4
| || 0x080333c4 fff7e0ff bl func_33388
| `--> 0x080333c8 0120 movs r0, 1 ; 1
\ `-> 0x080333ca 10bd pop {r4, pc}
/ (fcn) gfx_before_lcd_init 80
| Caller: gfx_init_lcd_and_others
| gfx_before_lcd_init ();
| 0x080333d8 10b5 push {r4, lr}
| 0x080333da 0400 movs r4, r0 ; in: R0 = addr(gfx_info)
| 0x080333dc 3d48 ldr r0, [0x080334d4] ; [0x80334d4:4]=0x200049e4 address_of_gfx_jumptbl
| 0x080333de 0068 ldr r0, [r0]
| 0x080333e0 a064 str r0, [r4, 0x48]
| 0x080333e2 3d48 ldr r0, [0x080334da] ; [0x80334d8:4]=0x2001da20 gfx_info.off4
| 0x080333e4 2061 str r0, [r4, 0x10]
| 0x080333e6 201d adds r0, r4, 4
| 0x080333e8 15f014fb bl gfx_48a14
| 0x080333ec 3b48 ldr r0, [0x080334dc] ; [0x80334dc:4]=0x80fb018
| 0x080333ee a065 str r0, [r4, 0x58]
| 0x080333f0 3b48 ldr r0, [0x080334e0] ; [0x80334e0:4]=0x80cf780 gfx_font_norm
| 0x080333f2 a061 str r0, [r4, 0x18] ; [r4+24] = gfx_info.font_pointer
| 0x080333f4 3848 ldr r0, [0x080334d8] ; [0x80334d8:4]=0x2001da20 gfx_info.off4
| 0x080333f6 2061 str r0, [r4, 0x10]
| 0x080333f8 0120 movs r0, 1 ; 1
| 0x080333fa 2075 strb r0, [r4, 0x14]
| 0x080333fc 15f014fb bl gfx_48a28
| 0x08033400 a087 strh r0, [r4, 0x3c]
| 0x08033402 0320 movs r0, 3 ; 3
| 0x08033404 84f85c00 strb.w r0, [r4, 0x5c]
| 0x08033408 7ff07040 mvns r0, 0xf0000000
| 0x0803340c 2063 str r0, [r4, 0x30]
| 0x0803340e 7ff07040 mvns r0, 0xf0000000
| 0x08033412 6063 str r0, [r4, 0x34]
| 0x08033414 7ff07f40 mvns r0, 0xff000000
| 0x08033418 fff7d6fe bl gfx_set_bg_color2
| 0x0803341c 3148 ldr r0, [0x080334e4] ; [0x80334e4:4]=0xff1414
| 0x0803341e fff7dffe bl gfx_set_fg_color2
| 0x08033422 3148 ldr r0, [0x080334ea] ; [0x80334e8:4]=0x80f8744
| 0x08033424 e061 str r0, [r4, 0x1c]
\ 0x08033426 10bd pop {r4, pc}
/ (fcn) gfx_33428 110
| Caller: gfx_clear3 gfx_3adec gfx_33496
| gfx_33428 ();
| 0x08033428 2de9fc41 push.w {r2, r3, r4, r5, r6, r7, r8, lr}
| 0x0803342c 0500 movs r5, r0 ; [in] R0 = x1 ?
| 0x0803342e 0e00 movs r6, r1 ; [in] R1 = y1 ?
| 0x08033430 1700 movs r7, r2 ; [in] R2 = x2 ?
| 0x08033432 9846 mov r8, r3 ; [in] R3 = y2 ?
| 0x08033434 0420 movs r0, 4 ; 4
| 0x08033436 fff7f5fc bl gfx_32e24
| 0x0803343a 0400 movs r4, r0
| 0x0803343c 2b48 ldr r0, [0x080334ec] ; [0x80334ec:4]=0x2001da1c gfx_info
| 0x0803343e 006c ldr r0, [r0, 0x40] ; [r0+64] = gfx_info.bmp_w
| 0x08033440 4519 adds r5, r0, r5
| 0x08033442 2a48 ldr r0, [0x080334ee] ; [0x80334ec:4]=0x2001da1c gfx_info
| 0x08033444 406c ldr r0, [r0, 0x44] ; [r0+68] = gfx_info.bmp_h
| 0x08033446 8619 adds r6, r0, r6
| 0x08033448 2848 ldr r0, [0x080334ec] ; [0x80334ec:4]=0x2001da1c gfx_info
| 0x0803344a 006c ldr r0, [r0, 0x40] ; [r0+64] = gfx_info.bmp_w
| 0x0803344c c719 adds r7, r0, r7
| 0x0803344e 2748 ldr r0, [0x080334ee] ; [0x80334ec:4]=0x2001da1c gfx_info
| 0x08033450 406c ldr r0, [r0, 0x44] ; [r0+68] = gfx_info.bmp_h
| 0x08033452 10eb0808 adds.w r8, r0, r8
| 0x08033456 2800 movs r0, r5
| 0x08033458 adf80000 strh.w r0, [sp]
| 0x0803345c 3800 movs r0, r7
| 0x0803345e adf80400 strh.w r0, [sp, 4]
| 0x08033462 3000 movs r0, r6
| 0x08033464 adf80200 strh.w r0, [sp, 2]
| 0x08033468 4046 mov r0, r8
| 0x0803346a adf80600 strh.w r0, [sp, 6]
| 0x0803346e 00a8 add r0, sp, 0
| 0x08033470 e9f73efc bl gfx_bmp_sub1
| 0x08033474 0028 cmp r0, 0
| ,=< 0x08033476 09d0 beq 0x803348c
| .--> 0x08033478 4346 mov r3, r8
| || 0x0803347a 3a00 movs r2, r7
| || 0x0803347c 3100 movs r1, r6
| || 0x0803347e 2800 movs r0, r5
| || 0x08033480 fff73cfd bl gfx_clipped_blockfill_maybe
| || 0x08033484 e9f706fc bl gfx_bmp_sub3
| || 0x08033488 0028 cmp r0, 0
| `==< 0x0803348a f5d1 bne 0x8033478
| `-> 0x0803348c 2000 movs r0, r4
| 0x0803348e fff7c9fc bl gfx_32e24
\ 0x08033492 bde8f381 pop.w {r0, r1, r4, r5, r6, r7, r8, pc}
/ (fcn) gfx_33496 28
| Caller: Start draw_some_bitmap_and_text func_37b0a menu_draw_something2
| gfx_33496 ();
| 0x08033496 80b5 push {r7, lr}
| 0x08033498 0021 movs r1, 0
| 0x0803349a 0020 movs r0, 0
| 0x0803349c 00f018fc bl func_33cd0
| 0x080334a0 40f6ff73 movw r3, 0xfff
| 0x080334a4 40f6ff72 movw r2, 0xfff
| 0x080334a8 1149 ldr r1, [0x080334f0] ; [0x80334f0:4]=0xfffff001
| 0x080334aa 1148 ldr r0, [0x080334f2] ; [0x80334f0:4]=0xfffff001
| 0x080334ac fff7bcff bl gfx_33428
\ 0x080334b0 01bd pop {r0, pc}
/ (fcn) gfx_init_lcd_and_others 32
| Caller: init_a_lot_gfx_and_lcd
| gfx_init_lcd_and_others ();
| 0x080334b2 10b5 push {r4, lr}
| 0x080334b4 0f48 ldr r0, [0x080334f4] ; [0x80334f4:4]=0x2001e877
| 0x080334b6 2e21 movs r1, 0x2e ; '.' ; 46
| 0x080334b8 0170 strb r1, [r0]
| 0x080334ba 15f0bbfa bl gfx_48a34_nop
| 0x080334be 0b48 ldr r0, [0x080334ee] ; [0x80334ec:4]=0x2001da1c gfx_info
| 0x080334c0 fff78aff bl gfx_before_lcd_init
| 0x080334c4 fff759fe bl gfx_init_lcd
| 0x080334c8 0400 movs r4, r0
| 0x080334ca e9f7e4fe bl gfx_1d296
| 0x080334ce 2000 movs r0, r4
\ 0x080334d0 10bd pop {r4, pc}
/ (fcn) gfx_334f8 36
| Caller: gfx_32dda gfx_1d238
| gfx_334f8 ();
| 0x080334f8 38b5 push {r3, r4, r5, lr}
| 0x080334fa 0400 movs r4, r0
| 0x080334fc 0d00 movs r5, r1
| 0x080334fe 002d cmp r5, 0
| ,=< 0x08033500 0bd0 beq 0x803351a
| | 0x08033502 2000 movs r0, r4
| | 0x08033504 00b2 sxth r0, r0
| | 0x08033506 04f0b5fa bl func_37a74
| | 0x0803350a 00b2 sxth r0, r0
| | 0x0803350c 0028 cmp r0, 0
| ,==< 0x0803350e 04d0 beq 0x803351a
| || 0x08033510 ec80 strh r4, [r5, 6]
| || 0x08033512 2900 movs r1, r5
| || 0x08033514 00b2 sxth r0, r0
| || 0x08033516 e9f71ff9 bl gfx_1c758
\ ``-> 0x0803351a 31bd pop {r0, r4, r5, pc}
/ (fcn) gfx_3351c 12
| Caller: gfx_1d296
| gfx_3351c ();
| 0x0803351c 0249 ldr r1, [0x08033528] ; [0x8033528:4]=0x2001e6a4
| 0x0803351e 0968 ldr r1, [r1]
| 0x08033520 0160 str r1, [r0]
| 0x08033522 0149 ldr r1, [0x0803352a] ; [0x8033528:4]=0x2001e6a4
| 0x08033524 0860 str r0, [r1]
\ 0x08033526 7047 bx lr
/ (fcn) gfx_33966 258
| gfx_33966 ();
| 0x08033966 10b4 push {r4}
| 0x08033968 0021 movs r1, 0
| 0x0803396a 80b2 uxth r0, r0
| 0x0803396c 030a lsrs r3, r0, 8
| 0x0803396e 0400 movs r4, r0
| 0x08033970 0022 movs r2, 0
| ,=< 0x08033972 00e0 b 0x8033976
| ..--> 0x08033974 521c adds r2, r2, 1
| ||`-> 0x08033976 45f2a711 movw r1, 0x51a7
| || 0x0803397a 92b2 uxth r2, r2
| || 0x0803397c 8a42 cmp r2, r1
| ||,=< 0x0803397e 13d2 bhs 0x80339a8
| ||| 0x08033980 92b2 uxth r2, r2
| ||| 0x08033982 3949 ldr r1, [0x08033a6a] ; [0x8033a68:4]=0x807df68
| ||| 0x08033984 11f81210 ldrb.w r1, [r1, r2, lsl 1]
| ||| 0x08033988 dbb2 uxtb r3, r3
| ||| 0x0803398a 9942 cmp r1, r3
| `===< 0x0803398c f2d1 bne 0x8033974
| || 0x0803398e 92b2 uxth r2, r2
| || 0x08033990 3549 ldr r1, [0x08033a68] ; [0x8033a68:4]=0x807df68
| || 0x08033992 11eb4201 adds.w r1, r1, r2, lsl 1
| || 0x08033996 4978 ldrb r1, [r1, 1]
| || 0x08033998 e4b2 uxtb r4, r4
| || 0x0803399a a142 cmp r1, r4
| `==< 0x0803399c ead1 bne 0x8033974
| | 0x0803399e 12f59c41 adds.w r1, r2, 0x4e00
| | 0x080339a2 0800 movs r0, r1
| | 0x080339a4 80b2 uxth r0, r0
| ,==< 0x080339a6 5de0 b 0x8033a64
| |`-> 0x080339a8 80b2 uxth r0, r0
| | 0x080339aa 4af2a211 movw r1, 0xa1a2
| | 0x080339ae 401a subs r0, r0, r1
| |,=< 0x080339b0 28d0 beq 0x8033a04
| || 0x080339b2 401e subs r0, r0, 1
| ,===< 0x080339b4 23d0 beq 0x80339fe
| ||| 0x080339b6 0b38 subs r0, 0xb
| ,====< 0x080339b8 33d0 beq 0x8033a22
| |||| 0x080339ba 401e subs r0, r0, 1
| ,=====< 0x080339bc 34d0 beq 0x8033a28
| ||||| 0x080339be 401e subs r0, r0, 1
| ,======< 0x080339c0 35d0 beq 0x8033a2e
| |||||| 0x080339c2 401e subs r0, r0, 1
| ,=======< 0x080339c4 36d0 beq 0x8033a34
| ||||||| 0x080339c6 401f subs r0, r0, 5
| ========< 0x080339c8 43d0 beq 0x8033a52
| ||||||| 0x080339ca 401e subs r0, r0, 1
| ========< 0x080339cc 44d0 beq 0x8033a58
| ||||||| 0x080339ce c01f subs r0, r0, 7
| ========< 0x080339d0 39d0 beq 0x8033a46
| ||||||| 0x080339d2 401e subs r0, r0, 1
| ========< 0x080339d4 3ad0 beq 0x8033a4c
| ||||||| 0x080339d6 4ff4f171 mov.w r1, 0x1e2 ; 482
| ||||||| 0x080339da 401a subs r0, r0, r1
| ========< 0x080339dc 18d0 beq 0x8033a10
| ||||||| 0x080339de c01f subs r0, r0, 7
| ========< 0x080339e0 2bd0 beq 0x8033a3a
| ||||||| 0x080339e2 401e subs r0, r0, 1
| ========< 0x080339e4 2cd0 beq 0x8033a40
| ||||||| 0x080339e6 c01e subs r0, r0, 3
| ========< 0x080339e8 06d0 beq 0x80339f8
| ||||||| 0x080339ea 0e38 subs r0, 0xe
| ========< 0x080339ec 13d0 beq 0x8033a16
| ||||||| 0x080339ee 401e subs r0, r0, 1
| ========< 0x080339f0 14d0 beq 0x8033a1c
| ||||||| 0x080339f2 001f subs r0, r0, 4
| ========< 0x080339f4 09d0 beq 0x8033a0a
| ========< 0x080339f6 32e0 b 0x8033a5e
| --------> 0x080339f8 4ff60c71 movw r1, 0xff0c
| ========< 0x080339fc 30e0 b 0x8033a60
| ||||`---> 0x080339fe 43f20201 movw r1, 0x3002
| ||||,===< 0x08033a02 2de0 b 0x8033a60
| ||||||`-> 0x08033a04 43f20101 movw r1, 0x3001
| ||||||,=< 0x08033a08 2ae0 b 0x8033a60
| --------> 0x08033a0a 4ff61f71 movw r1, 0xff1f
| ========< 0x08033a0e 27e0 b 0x8033a60
| --------> 0x08033a10 4ff60171 movw r1, 0xff01
| ========< 0x08033a14 24e0 b 0x8033a60
| --------> 0x08033a16 4ff61a71 movw r1, 0xff1a
| ========< 0x08033a1a 21e0 b 0x8033a60
| --------> 0x08033a1c 4ff61b71 movw r1, 0xff1b
| ========< 0x08033a20 1ee0 b 0x8033a60
| |||`----> 0x08033a22 42f21801 movw r1, 0x2018
| |||,====< 0x08033a26 1be0 b 0x8033a60
| ||`-----> 0x08033a28 42f21901 movw r1, 0x2019
| ||,=====< 0x08033a2c 18e0 b 0x8033a60
| |`------> 0x08033a2e 42f21c01 movw r1, 0x201c
| |,======< 0x08033a32 15e0 b 0x8033a60
| `-------> 0x08033a34 42f21d01 movw r1, 0x201d
| ,=======< 0x08033a38 12e0 b 0x8033a60
| --------> 0x08033a3a 4ff60871 movw r1, 0xff08
| ========< 0x08033a3e 0fe0 b 0x8033a60
| --------> 0x08033a40 4ff60971 movw r1, 0xff09
| ========< 0x08033a44 0ce0 b 0x8033a60
| --------> 0x08033a46 43f21001 movw r1, 0x3010
| ========< 0x08033a4a 09e0 b 0x8033a60
| --------> 0x08033a4c 43f21101 movw r1, 0x3011
| ========< 0x08033a50 06e0 b 0x8033a60
| --------> 0x08033a52 43f20a01 movw r1, 0x300a
| ========< 0x08033a56 03e0 b 0x8033a60
| --------> 0x08033a58 43f20b01 movw r1, 0x300b
| ========< 0x08033a5c 00e0 b 0x8033a60
| --------> 0x08033a5e 2a21 movs r1, 0x2a ; '*' ; 42
| `````-`-> 0x08033a60 0800 movs r0, r1
| | 0x08033a62 80b2 uxth r0, r0
| `--> 0x08033a64 10bc pop {r4}
\ 0x08033a66 7047 bx lr
/ (fcn) func_33cd0 24
| Caller: paint_a_lot gfx_33496
| func_33cd0 ();
| 0x08033cd0 38b5 push {r3, r4, r5, lr}
| 0x08033cd2 0c00 movs r4, r1
| 0x08033cd4 fff7f6ff bl gfx_set_xpos
| 0x08033cd8 0500 movs r5, r0
| 0x08033cda 2000 movs r0, r4
| 0x08033cdc fff7eeff bl gfx_set_ypos
| 0x08033ce0 0543 orrs r5, r0
| 0x08033ce2 2800 movs r0, r5
| 0x08033ce4 c0b2 uxtb r0, r0
\ 0x08033ce6 32bd pop {r1, r4, r5, pc}
/ (fcn) func_33ce8 90
| Caller: paint_a_lot
| func_33ce8 ();
| 0x08033ce8 70b5 push {r4, r5, r6, lr}
| 0x08033cea 86b0 sub sp, 0x18
| 0x08033cec 0500 movs r5, r0
| 0x08033cee 0c00 movs r4, r1
| 0x08033cf0 00a8 add r0, sp, 0
| 0x08033cf2 1421 movs r1, 0x14 ; 20
| 0x08033cf4 fff782ff bl gfx_drawtext_sub1
| 0x08033cf8 0026 movs r6, 0
| ,=< 0x08033cfa 00e0 b 0x8033cfe
| .--> 0x08033cfc ad1c adds r5, r5, 2
| |`-> 0x08033cfe 2888 ldrh r0, [r5]
| | 0x08033d00 0028 cmp r0, 0
| |,=< 0x08033d02 15d0 beq 0x8033d30
| || 0x08033d04 2888 ldrh r0, [r5]
| || 0x08033d06 8028 cmp r0, 0x80 ; 128
| ,===< 0x08033d08 0cd3 blo 0x8033d24
| ||| 0x08033d0a 2888 ldrh r0, [r5]
| ||| 0x08033d0c fff752fd bl gfx_drawtext_sub2
| ||| 0x08033d10 00a9 add r1, sp, 0
| ||| 0x08033d12 7054 strb r0, [r6, r1]
| ||| 0x08033d14 761c adds r6, r6, 1
| ||| 0x08033d16 2888 ldrh r0, [r5]
| ||| 0x08033d18 fff7b9fd bl gfx_drawtext_sub3
| ||| 0x08033d1c 00a9 add r1, sp, 0
| ||| 0x08033d1e 7054 strb r0, [r6, r1]
| ||| 0x08033d20 761c adds r6, r6, 1
| ,====< 0x08033d22 03e0 b 0x8033d2c
| |`---> 0x08033d24 00a8 add r0, sp, 0
| | || 0x08033d26 2988 ldrh r1, [r5]
| | || 0x08033d28 3154 strb r1, [r6, r0]
| | || 0x08033d2a 761c adds r6, r6, 1
| `----> 0x08033d2c a642 cmp r6, r4
| `==< 0x08033d2e e5db blt 0x8033cfc
| `-> 0x08033d30 00a8 add r0, sp, 0
| 0x08033d32 0021 movs r1, 0
| 0x08033d34 3154 strb r1, [r6, r0]
| 0x08033d36 2100 movs r1, r4
| 0x08033d38 00a8 add r0, sp, 0
| 0x08033d3a 00f002f8 bl func_33d42
| 0x08033d3e 06b0 add sp, 0x18
\ 0x08033d40 70bd pop {r4, r5, r6, pc}
/ (fcn) func_33d42 52
| Caller: func_33ce8
| func_33d42 ();
| 0x08033d42 11b5 push {r0, r4, lr}
| 0x08033d44 81b0 sub sp, 4
| 0x08033d46 0c00 movs r4, r1
| ,=< 0x08033d48 03e0 b 0x8033d52
| .--> 0x08033d4a 80b2 uxth r0, r0
| || 0x08033d4c edf7f3fd bl func_21936
| || 0x08033d50 641e subs r4, r4, 1
| |`-> 0x08033d52 002c cmp r4, 0
| |,=< 0x08033d54 06d0 beq 0x8033d64
| || 0x08033d56 01a8 add r0, sp, 4
| || 0x08033d58 07f034fd bl gfx_3b7c4
| || 0x08033d5c 0100 movs r1, r0
| || 0x08033d5e 89b2 uxth r1, r1
| || 0x08033d60 0029 cmp r1, 0
| `==< 0x08033d62 f2d1 bne 0x8033d4a
| .`-> 0x08033d64 2000 movs r0, r4
| | 0x08033d66 441e subs r4, r0, 1
| | 0x08033d68 0028 cmp r0, 0
| |,=< 0x08033d6a 03d0 beq 0x8033d74
| || 0x08033d6c 2020 movs r0, 0x20 ; 32
| || 0x08033d6e edf7e2fd bl func_21936
| `==< 0x08033d72 f7e7 b 0x8033d64
\ `-> 0x08033d74 13bd pop {r0, r1, r4, pc}
/ (fcn) func_33f30 4
| Caller: Start
| func_33f30 ();
| 0x08033f30 10b5 push {r4, lr}
\ 0x08033f32 0400 movs r4, r0
/ (fcn) func_3409a 4
| Caller: update_scr_17
| func_3409a ();
| 0x0803409a c0b2 uxtb r0, r0
\ 0x0803409c 0128 cmp r0, 1 ; 1
/ (fcn) func_340ec 4
| Caller: update_scr_17
| func_340ec ();
| 0x080340ec 1449 ldr r1, [0x08034140] ; [0x8034140:4]=0x20013594 ambe_mystery
\ 0x080340ee 81f8 invalid
/ (fcn) func_34164 4
| Caller: update_scr_18
| func_34164 ();
| 0x08034164 80b5 push {r7, lr}
\ 0x08034166 0028 cmp r0, 0
/ (fcn) func_341a2 4
| Caller: update_scr_19 update_scr_18 dmr_before_squelch
| func_341a2 ();
| 0x080341a2 80b5 push {r7, lr}
\ 0x080341a4 00ab add r3, sp, 0
/ (fcn) func_34208 4
| Caller: CalledFromLongDispatcher
| func_34208 ();
| 0x08034208 80b5 push {r7, lr}
\ 0x0803420a 0028 cmp r0, 0
/ (fcn) func_3423a 4
| Caller: DrawSomethingThenBitBangIO func_2dd12
| func_3423a ();
| 0x0803423a 80b5 push {r7, lr}
\ 0x0803423c 00ab add r3, sp, 0
/ (fcn) func_35524 4
| Caller: update_scr_19
| func_35524 ();
| 0x08035524 10b5 push {r4, lr}
\ 0x08035526 dff8 invalid
/ (fcn) func_35a12 4
| Caller: update_scr_19
| func_35a12 ();
| 0x08035a12 10b5 push {r4, lr}
\ 0x08035a14 dff8 invalid
/ (fcn) func_35be4 4
| Caller: update_scr_19
| func_35be4 ();
| 0x08035be4 e0b5 push {r5, r6, r7, lr}
\ 0x08035be6 4748 ldr r0, [0x08035d06] ; [0x8035d04:4]=0x20004acc md380_menu_depth
/ (fcn) func_36574 4
| Caller: func_36736 func_36672
| func_36574 ();
| 0x08036574 38b5 push {r3, r4, r5, lr}
\ 0x08036576 0124 movs r4, 1 ; 1
/ (fcn) gfx_36980 50
| Caller: func_51c6a
| gfx_36980 ();
| 0x08036980 dff85412 ldr.w r1, [0x08036bdc] ; [0x8036bdc:4]=0x42470e80
| 0x08036984 0022 movs r2, 0
| 0x08036986 0a70 strb r2, [r1]
| 0x08036988 dff84c12 ldr.w r1, [0x08036bdc] ; [0x8036bdc:4]=0x42470e80
| 0x0803698c 0022 movs r2, 0
| 0x0803698e 0a70 strb r2, [r1]
| 0x08036990 c0b2 uxtb r0, r0
| 0x08036992 0128 cmp r0, 1 ; 1
| ,=< 0x08036994 02d0 beq 0x803699c
| | 0x08036996 0428 cmp r0, 4 ; 4
| ,==< 0x08036998 05d0 beq 0x80369a6
| ,===< 0x0803699a 09e0 b 0x80369b0
| ||`-> 0x0803699c dff83802 ldr.w r0, [0x08036bdc] ; [0x8036bdc:4]=0x42470e80
| || 0x080369a0 0121 movs r1, 1 ; 1
| || 0x080369a2 0170 strb r1, [r0]
| ||,=< 0x080369a4 04e0 b 0x80369b0
| |`--> 0x080369a6 dff83002 ldr.w r0, [0x08036bde] ; [0x8036bdc:4]=0x42470e80
| | | 0x080369aa 0521 movs r1, 5 ; 5
| | | 0x080369ac 0170 strb r1, [r0]
| |,==< 0x080369ae ffe7 b 0x80369b0
\ ```-> 0x080369b0 7047 bx lr
/ (fcn) func_369b2 4
| Caller: func_51c6a
| func_369b2 ();
\ 0x080369b2 dff82812 ldr.w r1, [0x08036be2] ; [0x8036be0:4]=0x4247004c
/ (fcn) func_36aa8 4
| Caller: func_51c6a
| func_36aa8 ();
| 0x08036aa8 0021 movs r1, 0
\ 0x08036aaa 10f4 invalid
/ (fcn) func_36ad6 4
| Caller: func_51c6a
| func_36ad6 ();
| 0x08036ad6 4749 ldr r1, [0x08036bf6] ; [0x8036bf4:4]=0x42470e3c
\ 0x08036ad8 c0b2 uxtb r0, r0
/ (fcn) func_36c14 4
| Caller: func_4ccbc aes_startup_check
| func_36c14 ();
| 0x08036c14 0448 ldr r0, [0x08036c28] ; [0x8036c28:4]=0x40023008 io_CRC_CTRL
\ 0x08036c16 0121 movs r1, 1 ; 1
/ (fcn) func_36f44 8
| Caller: gfx_bmp_sub2 gfx_33204
| func_36f44 ();
| 0x08036f44 80b5 push {r7, lr}
| 0x08036f46 fbf76dff bl gfx_32e24
\ 0x08036f4a 02bd pop {r1, pc}
/ (fcn) func_36f4c 64
| Caller: func_36f90
| func_36f4c ();
| 0x08036f4c 70b5 push {r4, r5, r6, lr}
| 0x08036f4e 0028 cmp r0, 0
| ,=< 0x08036f50 01d1 bne 0x8036f56
| | 0x08036f52 0020 movs r0, 0
| ,==< 0x08036f54 19e0 b 0x8036f8a
| |`-> 0x08036f56 8168 ldr r1, [r0, 8]
| | 0x08036f58 0029 cmp r1, 0
| |,=< 0x08036f5a 01d1 bne 0x8036f60
| || 0x08036f5c 0020 movs r0, 0
| ,===< 0x08036f5e 14e0 b 0x8036f8a
| ||`-> 0x08036f60 0168 ldr r1, [r0]
| || 0x08036f62 b1f5807f cmp.w r1, 0x100 ; 256
| ||,=< 0x08036f66 01dd ble 0x8036f6c
| ||| 0x08036f68 0020 movs r0, 0
| ,====< 0x08036f6a 0ee0 b 0x8036f8a
| |||`-> 0x08036f6c 0568 ldr r5, [r0]
| ||| 0x08036f6e 8668 ldr r6, [r0, 8]
| ||| 0x08036f70 0024 movs r4, 0
| |||,=< 0x08036f72 07e0 b 0x8036f84
| .-----> 0x08036f74 56f82400 ldr.w r0, [r6, r4, lsl 2]
| ||||| 0x08036f78 fcf71af9 bl gfx_setcolor_sub1
| ||||| 0x08036f7c 0349 ldr r1, [0x08036f8c] ; [0x8036f8c:4]=0x2001bd80
| ||||| 0x08036f7e 21f81400 strh.w r0, [r1, r4, lsl 1]
| ||||| 0x08036f82 641c adds r4, r4, 1
| ||||`-> 0x08036f84 ac42 cmp r4, r5
| `=====< 0x08036f86 f5db blt 0x8036f74
| ||| 0x08036f88 0048 ldr r0, [0x08036f8c] ; [0x8036f8c:4]=0x2001bd80
\ ```--> 0x08036f8a 70bd pop {r4, r5, r6, pc}
/ (fcn) func_36f98 2
| Caller: gfx_init_lcd
| func_36f98 ();
\ 0x08036f98 7047 bx lr
/ (fcn) func_37144 4
| Caller: func_37892
| func_37144 ();
| 0x08037144 30b5 push {r4, r5, lr}
\ 0x08037146 85b0 sub sp, 0x14
/ (fcn) func_376b0 4
| Caller: func_37892
| func_376b0 ();
| 0x080376b0 10b5 push {r4, lr}
\ 0x080376b2 82b0 sub sp, 8
/ (fcn) func_376ca 4
| Caller: func_379f0
| func_376ca ();
| 0x080376ca 7cb5 push {r2, r3, r4, r5, r6, lr}
\ 0x080376cc 0600 movs r6, r0
/ (fcn) func_37736 4
| Caller: func_379b0 func_379f0
| func_37736 ();
| 0x08037736 30b4 push {r4, r5}
\ 0x08037738 b2f9 invalid
/ (fcn) func_37a6a 4
| Caller: func_4c148
| func_37a6a ();
| 0x08037a6a 0148 ldr r0, [0x08037a72] ; [0x8037a70:4]=0x200049f4
\ 0x08037a6c 0068 ldr r0, [r0]
/ (fcn) func_37b0a 98
| Caller: func_37b74
| func_37b0a ();
| 0x08037b0a 30b5 push {r4, r5, lr}
| 0x08037b0c 83b0 sub sp, 0xc
| 0x08037b0e 0400 movs r4, r0
| 0x08037b10 0d00 movs r5, r1
| 0x08037b12 686b ldr r0, [r5, 0x34]
| 0x08037b14 fbf764fb bl gfx_set_fg_color2
| 0x08037b18 e86a ldr r0, [r5, 0x2c]
| 0x08037b1a e9f7abfe bl gfx_select_font
| 0x08037b1e a86b ldr r0, [r5, 0x38]
| 0x08037b20 7ff07041 mvns r1, 0xf0000000
| 0x08037b24 8842 cmp r0, r1
| ,=< 0x08037b26 06d1 bne 0x8037b36
| | 0x08037b28 2000 movs r0, r4
| | 0x08037b2a 00b2 sxth r0, r0
| | 0x08037b2c fff731fe bl func_37792
| | 0x08037b30 fbf74afb bl gfx_set_bg_color2
| ,==< 0x08037b34 02e0 b 0x8037b3c
| |`-> 0x08037b36 a86b ldr r0, [r5, 0x38]
| | 0x08037b38 fbf746fb bl gfx_set_bg_color2
| `--> 0x08037b3c fbf7abfc bl gfx_33496
| 0x08037b40 b5f92800 ldrsh.w r0, [r5, 0x28]
| 0x08037b44 0028 cmp r0, 0
| ,=< 0x08037b46 10d0 beq 0x8037b6a
| | 0x08037b48 b5f92800 ldrsh.w r0, [r5, 0x28]
| | 0x08037b4c faf78aff bl gfx_draw_sub_32a64
| | 0x08037b50 0400 movs r4, r0
| | 0x08037b52 0220 movs r0, 2 ; 2
| | 0x08037b54 03f046f8 bl menu_draw_sub_3abe4
| | 0x08037b58 00a8 add r0, sp, 0
| | 0x08037b5a 14f09ff8 bl func_4bc9c
| | 0x08037b5e b5f93020 ldrsh.w r2, [r5, 0x30]
| | 0x08037b62 00a9 add r1, sp, 0
| | 0x08037b64 2000 movs r0, r4
| | 0x08037b66 f3f736fb bl gfx_drawtext_sub4
\ `-> 0x08037b6a 37bd pop {r0, r1, r2, r4, r5, pc}
/ (fcn) func_37792 28
| Caller: draw_some_bitmap_and_text func_37b0a
| func_37792 ();
| 0x08037792 80b5 push {r7, lr}
| 0x08037794 00b2 sxth r0, r0
| 0x08037796 00f06df9 bl func_37a74
| 0x0803779a 00b2 sxth r0, r0
| 0x0803779c 0df0b9f8 bl func_44912
| 0x080377a0 7ff07041 mvns r1, 0xf0000000
| 0x080377a4 8842 cmp r0, r1
| ,=< 0x080377a6 01d1 bne 0x80377ac
| | 0x080377a8 14f090fa bl func_4bccc
\ `-> 0x080377ac 02bd pop {r1, pc}
/ (fcn) func_39000 4
| Caller: func_384d4
| func_39000 ();
| 0x08039000 80b5 push {r7, lr}
\ 0x08039002 7348 ldr r0, [0x080391d2] ; [0x80391d0:4]=0x2001e8bb
/ (fcn) func_391e4 4
| Caller: func_384d4
| func_391e4 ();
| 0x080391e4 80b5 push {r7, lr}
\ 0x080391e6 dff8 invalid
/ (fcn) func_39d3c 4
| Caller: menu_39e3e func_39f50
| func_39d3c ();
| 0x08039d3c 38b5 push {r3, r4, r5, lr}
\ 0x08039d3e 0124 movs r4, 1 ; 1
/ (fcn) func_3b376 36
| Caller: func_2ac0c func_3b42a
| func_3b376 ();
| 0x0803b376 10b5 push {r4, lr}
| 0x0803b378 0400 movs r4, r0
| 0x0803b37a 2000 movs r0, r4
| 0x0803b37c 00b2 sxth r0, r0
| 0x0803b37e 10f0a5ff bl func_4c2cc
| 0x0803b382 00b2 sxth r0, r0
| 0x0803b384 e1f756fa bl gfx_1c834
| 0x0803b388 2000 movs r0, r4
| 0x0803b38a 00b2 sxth r0, r0
| 0x0803b38c fcf772fb bl func_37a74
| 0x0803b390 2521 movs r1, 0x25 ; '%' ; 37
| 0x0803b392 00b2 sxth r0, r0
| 0x0803b394 10f0b1ff bl func_4c2fa
\ 0x0803b398 10bd pop {r4, pc}
/ (fcn) func_3b42a 226
| Caller: func_2abce
| func_3b42a ();
| 0x0803b42a f0b5 push {r4, r5, r6, r7, lr}
| 0x0803b42c 87b0 sub sp, 0x1c
| 0x0803b42e 0d9d ldr r5, [sp, 0x34]
| 0x0803b430 bdf93060 ldrsh.w r6, [sp, 0x30]
| 0x0803b434 0e9c ldr r4, [sp, 0x38]
| 0x0803b436 53ea0207 orrs.w r7, r3, r2
| 0x0803b43a 002f cmp r7, 0
| ,=< 0x0803b43c 25d1 bne 0x803b48a
| | 0x0803b43e 04a9 add r1, sp, 0x10
| | 0x0803b440 3000 movs r0, r6
| | 0x0803b442 00b2 sxth r0, r0
| | 0x0803b444 fff7bafb bl menu_draw_sub_3abbc
| | 0x0803b448 2007 lsls r0, r4, 0x1c
| ,==< 0x0803b44a 0fd5 bpl 0x803b46c
| || 0x0803b44c 2f48 ldr r0, [0x0803b50c] ; [0x803b50c:4]=0x20004aae
| || 0x0803b44e b0f90020 ldrsh.w r2, [r0]
| || 0x0803b452 bdf91400 ldrsh.w r0, [sp, 0x14]
| || 0x0803b456 401c adds r0, r0, 1
| || 0x0803b458 801a subs r0, r0, r2
| || 0x0803b45a bdf91210 ldrsh.w r1, [sp, 0x12]
| || 0x0803b45e bdf91630 ldrsh.w r3, [sp, 0x16]
| || 0x0803b462 bdf91270 ldrsh.w r7, [sp, 0x12]
| || 0x0803b466 db1b subs r3, r3, r7
| || 0x0803b468 5b1c adds r3, r3, 1
| ,===< 0x0803b46a 0ee0 b 0x803b48a
| |`--> 0x0803b46c 2748 ldr r0, [0x0803b50c] ; [0x803b50c:4]=0x20004aae
| | | 0x0803b46e b0f90030 ldrsh.w r3, [r0]
| | | 0x0803b472 bdf91600 ldrsh.w r0, [sp, 0x16]
| | | 0x0803b476 401c adds r0, r0, 1
| | | 0x0803b478 c11a subs r1, r0, r3
| | | 0x0803b47a bdf91000 ldrsh.w r0, [sp, 0x10]
| | | 0x0803b47e bdf91420 ldrsh.w r2, [sp, 0x14]
| | | 0x0803b482 bdf91070 ldrsh.w r7, [sp, 0x10]
| | | 0x0803b486 d21b subs r2, r2, r7
| | | 0x0803b488 521c adds r2, r2, 1
| `-`-> 0x0803b48a 2427 movs r7, 0x24 ; '$' ; 36
| 0x0803b48c 0397 str r7, [sp, 0xc]
| 0x0803b48e 204f ldr r7, [0x0803b512] ; [0x803b510:4]=0x803b39b
| 0x0803b490 0297 str r7, [sp, 8]
| 0x0803b492 adb2 uxth r5, r5
| 0x0803b494 0195 str r5, [sp, 4]
| 0x0803b496 36b2 sxth r6, r6
| 0x0803b498 0096 str r6, [sp]
| 0x0803b49a e1f7e7f9 bl gfx_1c86c
| 0x0803b49e 0500 movs r5, r0
| 0x0803b4a0 2db2 sxth r5, r5
| 0x0803b4a2 002d cmp r5, 0
| ,=< 0x0803b4a4 2ed0 beq 0x803b504
| | 0x0803b4a6 2800 movs r0, r5
| | 0x0803b4a8 00b2 sxth r0, r0
| | 0x0803b4aa f7f7dbfa bl gfx_draw_sub_32a64
| | 0x0803b4ae 0600 movs r6, r0
| | 0x0803b4b0 0022 movs r2, 0
| | 0x0803b4b2 2007 lsls r0, r4, 0x1c
| ,==< 0x0803b4b4 01d5 bpl 0x803b4ba
| || 0x0803b4b6 52f00802 orrs r2, r2, 8
| `--> 0x0803b4ba e006 lsls r0, r4, 0x1b
| ,==< 0x0803b4bc 01d5 bpl 0x803b4c2
| || 0x0803b4be 52f01002 orrs r2, r2, 0x10
| `--> 0x0803b4c2 0f99 ldr r1, [sp, 0x3c]
| | 0x0803b4c4 ff29 cmp r1, 0xff ; 255
| ,==< 0x0803b4c6 03d0 beq 0x803b4d0
| || 0x0803b4c8 fe29 cmp r1, 0xfe ; 254
| ,===< 0x0803b4ca 01d0 beq 0x803b4d0
| ||| 0x0803b4cc 52f01002 orrs r2, r2, 0x10
| ``--> 0x0803b4d0 92b2 uxth r2, r2
| | 0x0803b4d2 3000 movs r0, r6
| | 0x0803b4d4 fcf7d7f9 bl func_37886
| | 0x0803b4d8 0e48 ldr r0, [0x0803b514] ; [0x803b514:4]=0x2000499c
| | 0x0803b4da 0068 ldr r0, [r0]
| | 0x0803b4dc b062 str r0, [r6, 0x28]
| | 0x0803b4de 0d48 ldr r0, [0x0803b516] ; [0x803b514:4]=0x2000499c
| | 0x0803b4e0 4068 ldr r0, [r0, 4]
| | 0x0803b4e2 f062 str r0, [r6, 0x2c]
| | 0x0803b4e4 0c48 ldr r0, [0x0803b518] ; [0x803b518:4]=0x200049a4
| | 0x0803b4e6 0068 ldr r0, [r0]
| | 0x0803b4e8 3063 str r0, [r6, 0x30]
| | 0x0803b4ea 0b48 ldr r0, [0x0803b51a] ; [0x803b518:4]=0x200049a4
| | 0x0803b4ec 4068 ldr r0, [r0, 4]
| | 0x0803b4ee 7063 str r0, [r6, 0x34]
| | 0x0803b4f0 6420 movs r0, 0x64 ; 'd' ; 100
| | 0x0803b4f2 b063 str r0, [r6, 0x38]
| | 0x0803b4f4 0a20 movs r0, 0xa ; 10
| | 0x0803b4f6 3064 str r0, [r6, 0x40]
| | 0x0803b4f8 0020 movs r0, 0
| | 0x0803b4fa f063 str r0, [r6, 0x3c]
| | 0x0803b4fc 2800 movs r0, r5
| | 0x0803b4fe 00b2 sxth r0, r0
| | 0x0803b500 fff739ff bl func_3b376
| `-> 0x0803b504 2800 movs r0, r5
| 0x0803b506 00b2 sxth r0, r0
| 0x0803b508 07b0 add sp, 0x1c
\ 0x0803b50a f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) func_3b5a0 54
| Caller: func_2ac0c
| func_3b5a0 ();
| 0x0803b5a0 38b5 push {r3, r4, r5, lr}
| 0x0803b5a2 0400 movs r4, r0
| 0x0803b5a4 0d00 movs r5, r1
| 0x0803b5a6 0020 movs r0, 0
| 0x0803b5a8 24b2 sxth r4, r4
| 0x0803b5aa 002c cmp r4, 0
| ,=< 0x0803b5ac 12d0 beq 0x803b5d4
| | 0x0803b5ae 2000 movs r0, r4
| | 0x0803b5b0 00b2 sxth r0, r0
| | 0x0803b5b2 f7f757fa bl gfx_draw_sub_32a64
| | 0x0803b5b6 90f82600 ldrb.w r0, [r0, 0x26]
| | 0x0803b5ba 0007 lsls r0, r0, 0x1c
| ,==< 0x0803b5bc 05d5 bpl 0x803b5ca
| || 0x0803b5be 2900 movs r1, r5
| || 0x0803b5c0 2000 movs r0, r4
| || 0x0803b5c2 00b2 sxth r0, r0
| || 0x0803b5c4 10f09efe bl func_4c304
| ,===< 0x0803b5c8 04e0 b 0x803b5d4
| |`--> 0x0803b5ca 2900 movs r1, r5
| | | 0x0803b5cc 2000 movs r0, r4
| | | 0x0803b5ce 00b2 sxth r0, r0
| | | 0x0803b5d0 10f0b8fe bl func_4c344
\ `-`-> 0x0803b5d4 32bd pop {r1, r4, r5, pc}
/ (fcn) func_3b5d6 22
| Caller: draw_some_bitmap_and_text func_4c0a8
| func_3b5d6 ();
| 0x0803b5d6 10b5 push {r4, lr}
| 0x0803b5d8 0124 movs r4, 1 ; 1
| 0x0803b5da 00b2 sxth r0, r0
| 0x0803b5dc f7f742fa bl gfx_draw_sub_32a64
| 0x0803b5e0 007f ldrb r0, [r0, 0x1c]
| 0x0803b5e2 c006 lsls r0, r0, 0x1b
| ,=< 0x0803b5e4 00d5 bpl 0x803b5e8
| | 0x0803b5e6 0024 movs r4, 0
| `-> 0x0803b5e8 2000 movs r0, r4
\ 0x0803b5ea 10bd pop {r4, pc}
/ (fcn) func_3b618 100
| Caller: gfx_drawtext_sub8
| func_3b618 ();
| 0x0803b618 31b5 push {r0, r4, r5, lr}
| 0x0803b61a 0c00 movs r4, r1
| 0x0803b61c 1100 movs r1, r2
| 0x0803b61e 6648 ldr r0, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| 0x0803b620 0069 ldr r0, [r0, 0x10]
| 0x0803b622 0028 cmp r0, 0
| ,=< 0x0803b624 05d0 beq 0x803b632
| | 0x0803b626 6448 ldr r0, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| | 0x0803b628 0069 ldr r0, [r0, 0x10]
| | 0x0803b62a f7f77dfb bl func_32d28
| | 0x0803b62e 0028 cmp r0, 0
| ,==< 0x0803b630 23d0 beq 0x803b67a
| |`-> 0x0803b632 6148 ldr r0, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| | 0x0803b634 8069 ldr r0, [r0, 0x18] ; [r0+24] = gfx_info.font_pointer
| | 0x0803b636 0069 ldr r0, [r0, 0x10]
| | 0x0803b638 0028 cmp r0, 0
| |,=< 0x0803b63a 07d0 beq 0x803b64c
| || 0x0803b63c 2100 movs r1, r4
| || 0x0803b63e 0098 ldr r0, [sp]
| || 0x0803b640 5d4a ldr r2, [0x0803b7b8] ; [0x803b7b8:4]=0x2001da1c gfx_info
| || 0x0803b642 9269 ldr r2, [r2, 0x18] ; [r2+24] = gfx_info.font_pointer
| || 0x0803b644 1269 ldr r2, [r2, 0x10]
| || 0x0803b646 9268 ldr r2, [r2, 8]
| || 0x0803b648 9047 blx r2
| ,===< 0x0803b64a 16e0 b 0x803b67a
| ,==`-> 0x0803b64c 12e0 b 0x803b674
| |||.-> 0x0803b64e 00a8 add r0, sp, 0
| |||| 0x0803b650 00f0b8f8 bl gfx_3b7c4
| |||| 0x0803b654 0500 movs r5, r0
| |||| 0x0803b656 2800 movs r0, r5
| |||| 0x0803b658 80b2 uxth r0, r0
| |||| 0x0803b65a 5749 ldr r1, [0x0803b7ba] ; [0x803b7b8:4]=0x2001da1c gfx_info
| |||| 0x0803b65c 8969 ldr r1, [r1, 0x18] ; [r0+24] = gfx_info.font_pointer
| |||| 0x0803b65e 0968 ldr r1, [r1]
| |||| 0x0803b660 8847 blx r1
| |||| 0x0803b662 5648 ldr r0, [0x0803b7be] ; [0x803b7bc:4]=0x2001e5ac
| |||| 0x0803b664 0068 ldr r0, [r0]
| |||| 0x0803b666 0028 cmp r0, 0
| ,=====< 0x0803b668 04d0 beq 0x803b674
| ||||| 0x0803b66a 2800 movs r0, r5
| ||||| 0x0803b66c 80b2 uxth r0, r0
| ||||| 0x0803b66e 5349 ldr r1, [0x0803b7be] ; [0x803b7bc:4]=0x2001e5ac
| ||||| 0x0803b670 0968 ldr r1, [r1]
| ||||| 0x0803b672 8847 blx r1
| ``----> 0x0803b674 641e subs r4, r4, 1
| ||| 0x0803b676 002c cmp r4, 0
| ||`=< 0x0803b678 e9d5 bpl 0x803b64e
\ ``--> 0x0803b67a 31bd pop {r0, r4, r5, pc}
/ (fcn) gfx_3b7c4 100
| Caller: func_33d42 gfx_drawtext_sub7 gfx_font_count_something func_3b618
| gfx_3b7c4 ();
| 0x0803b7c4 f8b5 push {r3, r4, r5, r6, r7, lr} ; [in] R0 = address of something
| 0x0803b7c6 0400 movs r4, r0
| 0x0803b7c8 2568 ldr r5, [r4]
| 0x0803b7ca 2878 ldrb r0, [r5]
| 0x0803b7cc 7f28 cmp r0, 0x7f ; 127
| ,=< 0x0803b7ce 0cd2 bhs 0x803b7ea
| | 0x0803b7d0 2800 movs r0, r5
| | 0x0803b7d2 1e49 ldr r1, [0x0803b84e] ; [0x803b84c:4]=0x2001da1c gfx_info
| | 0x0803b7d4 c969 ldr r1, [r1, 0x1c] ; [r1+0x1C] = 0x80F8744, set in gfx_before_lcd_init
| | 0x0803b7d6 0968 ldr r1, [r1] ; [0x80F8744] = 0x080F7EB5 = read_byte_ptr_R0
| | 0x0803b7d8 8847 blx r1
| | 0x0803b7da 0600 movs r6, r0
| | 0x0803b7dc 2800 movs r0, r5
| | 0x0803b7de 1b49 ldr r1, [0x0803b84e] ; [0x803b84c:4]=0x2001da1c gfx_info
| | 0x0803b7e0 c969 ldr r1, [r1, 0x1c]
| | 0x0803b7e2 4968 ldr r1, [r1, 4]
| | 0x0803b7e4 8847 blx r1
| | 0x0803b7e6 4519 adds r5, r0, r5
| ,==< 0x0803b7e8 1ae0 b 0x803b820
| |`-> 0x0803b7ea 2800 movs r0, r5
| | 0x0803b7ec 1749 ldr r1, [0x0803b84c] ; [0x803b84c:4]=0x2001da1c gfx_info
| | 0x0803b7ee c969 ldr r1, [r1, 0x1c]
| | 0x0803b7f0 0968 ldr r1, [r1]
| | 0x0803b7f2 8847 blx r1
| | 0x0803b7f4 0600 movs r6, r0
| | 0x0803b7f6 2800 movs r0, r5
| | 0x0803b7f8 1449 ldr r1, [0x0803b84c] ; [0x803b84c:4]=0x2001da1c gfx_info
| | 0x0803b7fa c969 ldr r1, [r1, 0x1c]
| | 0x0803b7fc 4968 ldr r1, [r1, 4]
| | 0x0803b7fe 8847 blx r1
| | 0x0803b800 681c adds r0, r5, 1
| | 0x0803b802 1249 ldr r1, [0x0803b84e] ; [0x803b84c:4]=0x2001da1c gfx_info
| | 0x0803b804 c969 ldr r1, [r1, 0x1c]
| | 0x0803b806 0968 ldr r1, [r1]
| | 0x0803b808 8847 blx r1
| | 0x0803b80a 0700 movs r7, r0
| | 0x0803b80c 2800 movs r0, r5
| | 0x0803b80e 0f49 ldr r1, [0x0803b84e] ; [0x803b84c:4]=0x2001da1c gfx_info
| | 0x0803b810 c969 ldr r1, [r1, 0x1c]
| | 0x0803b812 4968 ldr r1, [r1, 4]
| | 0x0803b814 8847 blx r1
| | 0x0803b816 ffb2 uxtb r7, r7
| | 0x0803b818 f6b2 uxtb r6, r6
| | 0x0803b81a 57ea0626 orrs.w r6, r7, r6, lsl 8
| | 0x0803b81e ad1c adds r5, r5, 2
| `--> 0x0803b820 2560 str r5, [r4]
| 0x0803b822 3000 movs r0, r6
| 0x0803b824 80b2 uxth r0, r0
\ 0x0803b826 f2bd pop {r1, r4, r5, r6, r7, pc}
/ (fcn) gfx_3b850 28
| gfx_3b850 ();
| 0x0803b850 0168 ldr r1, [r0]
| 0x0803b852 0a78 ldrb r2, [r1]
| 0x0803b854 491c adds r1, r1, 1
| 0x0803b856 d2b2 uxtb r2, r2
| 0x0803b858 002a cmp r2, 0
| ,=< 0x0803b85a 01d1 bne 0x803b860
| | 0x0803b85c 0120 movs r0, 1 ; 1
| ,==< 0x0803b85e 04e0 b 0x803b86a
| |`-> 0x0803b860 d2b2 uxtb r2, r2
| | 0x0803b862 0a2a cmp r2, 0xa ; 10
| |,=< 0x0803b864 00d1 bne 0x803b868
| || 0x0803b866 0160 str r1, [r0]
| |`-> 0x0803b868 0020 movs r0, 0
\ `--> 0x0803b86a 7047 bx lr
/ (fcn) gfx_3b86c 108
| gfx_3b86c ();
| 0x0803b86c 01b5 push {r0, lr}
| 0x0803b86e 8b07 lsls r3, r1, 0x1e
| ,=< 0x0803b870 18d1 bne 0x803b8a4
| ..--> 0x0803b872 121f subs r2, r2, 4
| ,====< 0x0803b874 21d3 blo 0x803b8ba
| |||| 0x0803b876 51f8043b ldr r3, [r1], 4
| |||| 0x0803b87a a3f1013c sub.w ip, r3, 0x1010101
| |||| 0x0803b87e 2cea030c bic.w ip, ip, r3
| |||| 0x0803b882 1cf0803c ands ip, ip, 0x80808080
| ,=====< 0x0803b886 04bf itt eq
| `-----> 0x0803b888 40f8043b str r3, [r0], 4
| |`===< 0x0803b88c f1e7 b 0x803b872
| | || 0x0803b88e 9cfa8cfc rev.w ip, ip
| | || 0x0803b892 bcfa8cf1 clz r1, ip
| | || 0x0803b896 c1f11801 rsb.w r1, r1, 0x18
| | || 0x0803b89a 8b40 lsls r3, r1
| | || 0x0803b89c cb40 lsrs r3, r1
| | || 0x0803b89e 40f8043b str r3, [r0], 4
| |,===< 0x0803b8a2 13e0 b 0x803b8cc
| |||`-> 0x0803b8a4 042a cmp r2, 4 ; 4
| |||,=< 0x0803b8a6 09d3 blo 0x803b8bc
| .-----> 0x0803b8a8 11f8013b ldrb r3, [r1], 1
| ||||| 0x0803b8ac 521e subs r2, r2, 1
| ||||| 0x0803b8ae 00f8013b strb r3, [r0], 1
| ,======< 0x0803b8b2 5bb1 cbz r3, 0x803b8cc
| |||||| 0x0803b8b4 8b07 lsls r3, r1, 0x1e
| |`=====< 0x0803b8b6 f7d1 bne 0x803b8a8
| | ||`==< 0x0803b8b8 dbe7 b 0x803b872
| | `----> 0x0803b8ba 121d adds r2, r2, 4
| | |,`-> 0x0803b8bc 5ab1 cbz r2, 0x803b8d6
| | ||.-> 0x0803b8be 11f8013b ldrb r3, [r1], 1
| | ||| 0x0803b8c2 521e subs r2, r2, 1
| | ||| 0x0803b8c4 00f8013b strb r3, [r0], 1
| | ,====< 0x0803b8c8 03b1 cbz r3, 0x803b8cc
| | |||`=< 0x0803b8ca f8d1 bne 0x803b8be
| `-``---> 0x0803b8cc 1100 movs r1, r2
| |,=< 0x0803b8ce 1cbf itt ne
| |`-> 0x0803b8d0 0022 movs r2, 0
| | 0x0803b8d2 10f05bfd bl func_4c38c
\ `--> 0x0803b8d6 01bd pop {r0, pc}
/ (fcn) func_3ccd8 4
| Caller: func_4fe14_monster_accessing_C5000 func_2dd36_beeps_and_sets_kb_keycode c5000_wr_60_5
| func_2f302 call_F_4225_1
| func_3ccd8 ();
| 0x0803ccd8 80b5 push {r7, lr}
\ 0x0803ccda 4021 movs r1, 0x40 ; '@' ; 64
/ (fcn) func_48e40 4
| Caller: func_48f28
| func_48e40 ();
| 0x08048e40 7b49 ldr r1, [0x08049030] ; [0x8049030:4]=0x20004a00
\ 0x08048e42 0968 ldr r1, [r1]
/ (fcn) func_4b2fe 4
| Caller: ambe_4a88e_calls_encode
| func_4b2fe ();
\ 0x0804b2fe 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
/ (fcn) func_4b356 4
| Caller: ambe_4a88e_calls_encode
| func_4b356 ();
| 0x0804b356 10b5 push {r4, lr}
\ 0x0804b358 82b0 sub sp, 8
/ (fcn) func_4b6f4 52
| Caller: func_4b534
| func_4b6f4 ();
| 0x0804b6f4 9748 ldr r0, [0x0804b954] ; [0x804b954:4]=0x2001e734
| 0x0804b6f6 0068 ldr r0, [r0]
| 0x0804b6f8 0028 cmp r0, 0
| ,=< 0x0804b6fa 01d1 bne 0x804b700
| | 0x0804b6fc 0020 movs r0, 0
| ,==< 0x0804b6fe 12e0 b 0x804b726
| |`-> 0x0804b700 9448 ldr r0, [0x0804b954] ; [0x804b954:4]=0x2001e734
| | 0x0804b702 0068 ldr r0, [r0]
| | 0x0804b704 c168 ldr r1, [r0, 0xc]
| | 0x0804b706 934a ldr r2, [0x0804b956] ; [0x804b954:4]=0x2001e734
| | 0x0804b708 1160 str r1, [r2]
| | 0x0804b70a 0021 movs r1, 0
| | 0x0804b70c c160 str r1, [r0, 0xc]
| | 0x0804b70e 0021 movs r1, 0
| | 0x0804b710 0161 str r1, [r0, 0x10]
| | 0x0804b712 9149 ldr r1, [0x0804b95a] ; [0x804b958:4]=0x2001e84c
| | 0x0804b714 0988 ldrh r1, [r1]
| | 0x0804b716 491c adds r1, r1, 1
| | 0x0804b718 8f4a ldr r2, [0x0804b958] ; [0x804b958:4]=0x2001e84c
| | 0x0804b71a 1180 strh r1, [r2]
| | 0x0804b71c 8f49 ldr r1, [0x0804b95c] ; [0x804b95c:4]=0x2001e84a
| | 0x0804b71e 0988 ldrh r1, [r1]
| | 0x0804b720 491e subs r1, r1, 1
| | 0x0804b722 8e4a ldr r2, [0x0804b95e] ; [0x804b95c:4]=0x2001e84a
| | 0x0804b724 1180 strh r1, [r2]
\ `--> 0x0804b726 7047 bx lr
/ (fcn) func_4b810 110
| Caller: func_4b5ac func_4b8c8
| func_4b810 ();
| 0x0804b810 0322 movs r2, 3 ; 3
| 0x0804b812 80f82520 strb.w r2, [r0, 0x25]
| 0x0804b816 c9b2 uxtb r1, r1
| 0x0804b818 0129 cmp r1, 1 ; 1
| ,=< 0x0804b81a 05d1 bne 0x804b828
| | 0x0804b81c c169 ldr r1, [r0, 0x1c]
| | 0x0804b81e 4b4a ldr r2, [0x0804b94e] ; [0x804b94c:4]=0x2001e728
| | 0x0804b820 1268 ldr r2, [r2]
| | 0x0804b822 5118 adds r1, r2, r1
| | 0x0804b824 4161 str r1, [r0, 0x14]
| ,==< 0x0804b826 0de0 b 0x804b844
| |`-> 0x0804b828 8169 ldr r1, [r0, 0x18]
| | 0x0804b82a 0029 cmp r1, 0
| |,=< 0x0804b82c 05d1 bne 0x804b83a
| || 0x0804b82e c169 ldr r1, [r0, 0x1c]
| || 0x0804b830 464a ldr r2, [0x0804b94c] ; [0x804b94c:4]=0x2001e728
| || 0x0804b832 1268 ldr r2, [r2]
| || 0x0804b834 5118 adds r1, r2, r1
| || 0x0804b836 4161 str r1, [r0, 0x14]
| ,===< 0x0804b838 04e0 b 0x804b844
| ||`-> 0x0804b83a 8169 ldr r1, [r0, 0x18]
| || 0x0804b83c 434a ldr r2, [0x0804b94c] ; [0x804b94c:4]=0x2001e728
| || 0x0804b83e 1268 ldr r2, [r2]
| || 0x0804b840 5118 adds r1, r2, r1
| || 0x0804b842 4161 str r1, [r0, 0x14]
| ``--> 0x0804b844 4269 ldr r2, [r0, 0x14]
| 0x0804b846 0823 movs r3, 8 ; 8
| 0x0804b848 b2fbf3f1 udiv r1, r2, r3
| 0x0804b84c 01fb1321 mls r1, r1, r3, r2
| 0x0804b850 89b2 uxth r1, r1
| 0x0804b852 444a ldr r2, [0x0804b966] ; [0x804b964:4]=0x2001ddf8
| 0x0804b854 12ebc102 adds.w r2, r2, r1, lsl 3
| 0x0804b858 1168 ldr r1, [r2]
| 0x0804b85a 0029 cmp r1, 0
| ,=< 0x0804b85c 05d1 bne 0x804b86a
| | 0x0804b85e 1060 str r0, [r2]
| | 0x0804b860 0021 movs r1, 0
| | 0x0804b862 c160 str r1, [r0, 0xc]
| | 0x0804b864 0121 movs r1, 1 ; 1
| | 0x0804b866 9180 strh r1, [r2, 4]
| ,==< 0x0804b868 06e0 b 0x804b878
| |`-> 0x0804b86a 1168 ldr r1, [r2]
| | 0x0804b86c 1060 str r0, [r2]
| | 0x0804b86e c160 str r1, [r0, 0xc]
| | 0x0804b870 0861 str r0, [r1, 0x10]
| | 0x0804b872 9188 ldrh r1, [r2, 4]
| | 0x0804b874 491c adds r1, r1, 1
| | 0x0804b876 9180 strh r1, [r2, 4]
| `--> 0x0804b878 0021 movs r1, 0
| 0x0804b87a 0161 str r1, [r0, 0x10]
\ 0x0804b87c 7047 bx lr
/ (fcn) func_4b87e 74
| Caller: func_4b5ac func_4b8c8 func_4b62e
| func_4b87e ();
| 0x0804b87e 4269 ldr r2, [r0, 0x14]
| 0x0804b880 0823 movs r3, 8 ; 8
| 0x0804b882 b2fbf3f1 udiv r1, r2, r3
| 0x0804b886 01fb1321 mls r1, r1, r3, r2
| 0x0804b88a 89b2 uxth r1, r1
| 0x0804b88c 354a ldr r2, [0x0804b964] ; [0x804b964:4]=0x2001ddf8
| 0x0804b88e 12ebc103 adds.w r3, r2, r1, lsl 3
| 0x0804b892 1968 ldr r1, [r3]
| 0x0804b894 8142 cmp r1, r0
| ,=< 0x0804b896 06d1 bne 0x804b8a6
| | 0x0804b898 c168 ldr r1, [r0, 0xc]
| | 0x0804b89a 1960 str r1, [r3]
| | 0x0804b89c 0029 cmp r1, 0
| ,==< 0x0804b89e 08d0 beq 0x804b8b2
| || 0x0804b8a0 0022 movs r2, 0
| || 0x0804b8a2 0a61 str r2, [r1, 0x10]
| ,===< 0x0804b8a4 05e0 b 0x804b8b2
| ||`-> 0x0804b8a6 0169 ldr r1, [r0, 0x10]
| || 0x0804b8a8 c268 ldr r2, [r0, 0xc]
| || 0x0804b8aa ca60 str r2, [r1, 0xc]
| || 0x0804b8ac 002a cmp r2, 0
| ||,=< 0x0804b8ae 00d0 beq 0x804b8b2
| ||| 0x0804b8b0 1161 str r1, [r2, 0x10]
| ```-> 0x0804b8b2 0121 movs r1, 1 ; 1
| 0x0804b8b4 80f82510 strb.w r1, [r0, 0x25]
| 0x0804b8b8 0021 movs r1, 0
| 0x0804b8ba c160 str r1, [r0, 0xc]
| 0x0804b8bc 0021 movs r1, 0
| 0x0804b8be 0161 str r1, [r0, 0x10]
| 0x0804b8c0 9888 ldrh r0, [r3, 4]
| 0x0804b8c2 401e subs r0, r0, 1
| 0x0804b8c4 9880 strh r0, [r3, 4]
\ 0x0804b8c6 7047 bx lr
/ (fcn) func_4b8c8 162
| func_4b8c8 ();
| |||| 0x0804b8c8 82b0 sub sp, 8
| ,=====< 0x0804b8ca 01e0 b 0x804b8d0
| .------> 0x0804b8cc f8f77dfb bl func_43fca
| |`-----> 0x0804b8d0 00aa add r2, sp, 0
| | |||| 0x0804b8d2 0021 movs r1, 0
| | |||| 0x0804b8d4 1e48 ldr r0, [0x0804b950] ; [0x804b950:4]=0x2001e730
| | |||| 0x0804b8d6 0068 ldr r0, [r0]
| | |||| 0x0804b8d8 f3f73cff bl OSSemPend
| | |||| 0x0804b8dc f8f758fb bl func_43f90
| | |||| 0x0804b8e0 1a48 ldr r0, [0x0804b94c] ; [0x804b94c:4]=0x2001e728
| | |||| 0x0804b8e2 0068 ldr r0, [r0]
| | |||| 0x0804b8e4 401c adds r0, r0, 1
| | |||| 0x0804b8e6 1949 ldr r1, [0x0804b94e] ; [0x804b94c:4]=0x2001e728
| | |||| 0x0804b8e8 0860 str r0, [r1]
| | |||| 0x0804b8ea 1848 ldr r0, [0x0804b94e] ; [0x804b94c:4]=0x2001e728
| | |||| 0x0804b8ec 0168 ldr r1, [r0]
| | |||| 0x0804b8ee 0822 movs r2, 8 ; 8
| | |||| 0x0804b8f0 b1fbf2f0 udiv r0, r1, r2
| | |||| 0x0804b8f4 00fb1210 mls r0, r0, r2, r1
| | |||| 0x0804b8f8 80b2 uxth r0, r0
| | |||| 0x0804b8fa 1a49 ldr r1, [0x0804b966] ; [0x804b964:4]=0x2001ddf8
| | |||| 0x0804b8fc 11ebc000 adds.w r0, r1, r0, lsl 3
| | |||| 0x0804b900 0468 ldr r4, [r0]
| |,=====< 0x0804b902 0ae0 b 0x804b91a
| .-------> 0x0804b904 0220 movs r0, 2 ; 2
| ||||||| 0x0804b906 84f82500 strb.w r0, [r4, 0x25]
| --------> 0x0804b90a 6268 ldr r2, [r4, 4]
| ||||||| 0x0804b90c 1000 movs r0, r2
| ||||||| 0x0804b90e 0028 cmp r0, 0
| ========< 0x0804b910 02d0 beq 0x804b918
| ||||||| 0x0804b912 a168 ldr r1, [r4, 8]
| ||||||| 0x0804b914 2000 movs r0, r4
| ||||||| 0x0804b916 9047 blx r2
| --------> 0x0804b918 2c00 movs r4, r5
| ||`-----> 0x0804b91a 002c cmp r4, 0
| |`======< 0x0804b91c d6d0 beq 0x804b8cc
| | |||| 0x0804b91e e568 ldr r5, [r4, 0xc]
| | |||| 0x0804b920 0a48 ldr r0, [0x0804b94c] ; [0x804b94c:4]=0x2001e728
| | |||| 0x0804b922 0068 ldr r0, [r0]
| | |||| 0x0804b924 6169 ldr r1, [r4, 0x14]
| | |||| 0x0804b926 8842 cmp r0, r1
| ========< 0x0804b928 f6d1 bne 0x804b918
| | |||| 0x0804b92a 2000 movs r0, r4
| | |||| 0x0804b92c fff7a7ff bl func_4b87e
| | |||| 0x0804b930 94f82400 ldrb.w r0, [r4, 0x24]
| | |||| 0x0804b934 0228 cmp r0, 2 ; 2
| `=======< 0x0804b936 e5d1 bne 0x804b904
| |||| 0x0804b938 0121 movs r1, 1 ; 1
| |||| 0x0804b93a 2000 movs r0, r4
| |||| 0x0804b93c fff768ff bl func_4b810
| ========< 0x0804b940 e3e7 b 0x804b90a
| |||| 0x0804b942 0000 movs r0, r0
| |||| 0x0804b944 3f00 movs r7, r7
| |||| 0x0804b946 0000 movs r0, r0
| |||| 0x0804b948 51e90120 ldrd r2, r0, [r1, -0x4]
| |||`=< 0x0804b94c 28e7 b 0x804b7a0 ; CreateTwoSemasAndTimerTask+0x78
| ||| 0x0804b94e 0120 movs r0, 1 ; 1
| ||`==< 0x0804b950 30e7 b 0x804b7b4 ; CreateTwoSemasAndTimerTask+0x8c
| || 0x0804b952 0120 movs r0, 1 ; 1
| |`===< 0x0804b954 34e7 b 0x804b7c0 ; CreateTwoSemasAndTimerTask+0x98
| | 0x0804b956 0120 movs r0, 1 ; 1
| | .-> 0x0804b958 4ce80120 strex r0, r2, [ip, 4]
| | | 0x0804b95c 4ae80120 strex r0, r2, [sl, 4]
| | ,==< 0x0804b960 00bb cbnz r0, 0x804b9a4
| | || 0x0804b962 0120 movs r0, 1 ; 1
| | |`=< 0x0804b964 f8dd ble 0x804b958
| | | 0x0804b966 0120 movs r0, 1 ; 1
\ `====< 0x0804b968 2ce7 b 0x804b7c4 ; CreateTwoSemasAndTimerTask+0x9c
/ (fcn) gfx__GetFontSizeY 16
| Caller: gfx_GetFontSizeY
| gfx__GetFontSizeY ();
| 0x0804b980 0348 ldr r0, [0x0804b990] ; [0x804b990:4]=0x2001da1c gfx_info
| 0x0804b982 8069 ldr r0, [r0, 0x18] ; [r0+0x18] = gfx_info.font_pointer
| 0x0804b984 007d ldrb r0, [r0, 0x14] ; [r0+0x14] = matrix height in pixels (see gfx.h:gfx_font_t)
| 0x0804b986 0249 ldr r1, [0x0804b992] ; [0x804b990:4]=0x2001da1c gfx_info
| 0x0804b988 8969 ldr r1, [r1, 0x18] ; [r1+0x18] = gfx_info.font_pointer (why read again?)
| 0x0804b98a c97d ldrb r1, [r1, 0x17] ; [r1+0x17] may be a 'magnifier' (see gfx.h)
| 0x0804b98c 4843 muls r0, r1, r0 ; returns the 'real' height in pixels
\ 0x0804b98e 7047 bx lr
/ (fcn) gfx_4b994 10
| Caller: func_5414c
| gfx_4b994 ();
| 0x0804b994 80b5 push {r7, lr}
| 0x0804b996 00b2 sxth r0, r0
| 0x0804b998 08f0d8fb bl func_5414c
\ 0x0804b99c 01bd pop {r0, pc}
/ (fcn) func_4b9a0 4
| Caller: func_4c030
| func_4b9a0 ();
| 0x0804b9a0 0549 ldr r1, [0x0804b9b8] ; [0x804b9b8:4]=0x2001e806
\ 0x0804b9a2 b1f9 invalid
/ (fcn) func_4b9e0 4
| Caller: func_4c030
| func_4b9e0 ();
| 0x0804b9e0 38b5 push {r3, r4, r5, lr}
\ 0x0804b9e2 0400 movs r4, r0
/ (fcn) gfx_4bac4 36
| Caller: menu_37d44
| gfx_4bac4 ();
| 0x0804bac4 10b5 push {r4, lr}
| 0x0804bac6 0c00 movs r4, r1
| 0x0804bac8 00b2 sxth r0, r0
| 0x0804baca 0028 cmp r0, 0
| ,=< 0x0804bacc 0bd0 beq 0x804bae6
| | 0x0804bace 002c cmp r4, 0
| ,==< 0x0804bad0 09d0 beq 0x804bae6
| || 0x0804bad2 00b2 sxth r0, r0
| || 0x0804bad4 e6f7c6ff bl gfx_draw_sub_32a64
| || 0x0804bad8 0100 movs r1, r0
| || 0x0804bada 0029 cmp r1, 0
| ,===< 0x0804badc 03d0 beq 0x804bae6
| ||| 0x0804bade 2000 movs r0, r4
| ||| 0x0804bae0 0822 movs r2, 8 ; 8
| ||| 0x0804bae2 e7f7a3f8 bl gfx_memcpy
\ ```-> 0x0804bae6 10bd pop {r4, pc}
/ (fcn) func_4bb2c 338
| Caller: func_541ae
| func_4bb2c ();
| 0x0804bb2c 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x0804bb30 85b0 sub sp, 0x14
| 0x0804bb32 0c00 movs r4, r1
| 0x0804bb34 1500 movs r5, r2
| 0x0804bb36 1e00 movs r6, r3
| 0x0804bb38 b0f91880 ldrsh.w r8, [r0, 0x18]
| 0x0804bb3c 0c9f ldr r7, [sp, 0x30]
| ,=< 0x0804bb3e 3de0 b 0x804bbbc
| .--> 0x0804bb40 bdf80200 ldrh.w r0, [sp, 2]
| || 0x0804bb44 2818 adds r0, r5, r0
| || 0x0804bb46 adf80200 strh.w r0, [sp, 2]
| || 0x0804bb4a bdf80600 ldrh.w r0, [sp, 6]
| || 0x0804bb4e 2818 adds r0, r5, r0
| || 0x0804bb50 adf80600 strh.w r0, [sp, 6]
| ..---> 0x0804bb54 bdf90000 ldrsh.w r0, [sp]
| |||| 0x0804bb58 bdf90810 ldrsh.w r1, [sp, 8]
| |||| 0x0804bb5c 411a subs r1, r0, r1
| |||| 0x0804bb5e bdf90200 ldrsh.w r0, [sp, 2]
| |||| 0x0804bb62 bdf90a20 ldrsh.w r2, [sp, 0xa]
| |||| 0x0804bb66 821a subs r2, r0, r2
| |||| 0x0804bb68 52ea0100 orrs.w r0, r2, r1
| |||| 0x0804bb6c 0028 cmp r0, 0
| ,=====< 0x0804bb6e 03d0 beq 0x804bb78
| ||||| 0x0804bb70 4046 mov r0, r8
| ||||| 0x0804bb72 00b2 sxth r0, r0
| ||||| 0x0804bb74 fff7a0ff bl 0x804bab8
| `-----> 0x0804bb78 bdf90400 ldrsh.w r0, [sp, 4]
| |||| 0x0804bb7c bdf90010 ldrsh.w r1, [sp]
| |||| 0x0804bb80 401a subs r0, r0, r1
| |||| 0x0804bb82 bdf90c10 ldrsh.w r1, [sp, 0xc]
| |||| 0x0804bb86 401a subs r0, r0, r1
| |||| 0x0804bb88 bdf90810 ldrsh.w r1, [sp, 8]
| |||| 0x0804bb8c 00fa81f1 sxtah r1, r0, r1
| |||| 0x0804bb90 bdf90600 ldrsh.w r0, [sp, 6]
| |||| 0x0804bb94 bdf90220 ldrsh.w r2, [sp, 2]
| |||| 0x0804bb98 801a subs r0, r0, r2
| |||| 0x0804bb9a bdf90e20 ldrsh.w r2, [sp, 0xe]
| |||| 0x0804bb9e 801a subs r0, r0, r2
| |||| 0x0804bba0 bdf90a20 ldrsh.w r2, [sp, 0xa]
| |||| 0x0804bba4 00fa82f2 sxtah r2, r0, r2
| |||| 0x0804bba8 52ea0100 orrs.w r0, r2, r1
| |||| 0x0804bbac 0028 cmp r0, 0
| ,=====< 0x0804bbae 03d0 beq 0x804bbb8
| ||||| 0x0804bbb0 4046 mov r0, r8
| ||||| 0x0804bbb2 00b2 sxth r0, r0
| ||||| 0x0804bbb4 08f0fbfa bl func_541ae
| `-----> 0x0804bbb8 b9f91a80 ldrsh.w r8, [sb, 0x1a]
| |||`-> 0x0804bbbc 0ffa88f8 sxth.w r8, r8
| ||| 0x0804bbc0 b8f1000f cmp.w r8, 0
| |||,=< 0x0804bbc4 58d0 beq 0x804bc78
| |||| 0x0804bbc6 4046 mov r0, r8
| |||| 0x0804bbc8 00b2 sxth r0, r0
| |||| 0x0804bbca e6f74bff bl gfx_draw_sub_32a64
| |||| 0x0804bbce 8146 mov sb, r0
| |||| 0x0804bbd0 02a8 add r0, sp, 8
| |||| 0x0804bbd2 4946 mov r1, sb
| |||| 0x0804bbd4 0822 movs r2, 8 ; 8
| |||| 0x0804bbd6 e7f729f8 bl gfx_memcpy
| |||| 0x0804bbda dde90201 ldrd r0, r1, [sp, 8]
| |||| 0x0804bbde cde90001 strd r0, r1, [sp]
| |||| 0x0804bbe2 b9f81c00 ldrh.w r0, [sb, 0x1c]
| |||| 0x0804bbe6 10f42070 ands r0, r0, 0x280
| |||| 0x0804bbea 8028 cmp r0, 0x80 ; 128
| ,=====< 0x0804bbec 03d0 beq 0x804bbf6
| ||||| 0x0804bbee b0f5207f cmp.w r0, 0x280 ; 640
| ,======< 0x0804bbf2 0bd0 beq 0x804bc0c
| ,=======< 0x0804bbf4 15e0 b 0x804bc22
| ||`-----> 0x0804bbf6 bdf80000 ldrh.w r0, [sp]
| || |||| 0x0804bbfa 3018 adds r0, r6, r0
| || |||| 0x0804bbfc adf80000 strh.w r0, [sp]
| || |||| 0x0804bc00 bdf80400 ldrh.w r0, [sp, 4]
| || |||| 0x0804bc04 3018 adds r0, r6, r0
| || |||| 0x0804bc06 adf80400 strh.w r0, [sp, 4]
| ||,=====< 0x0804bc0a 14e0 b 0x804bc36
| |`------> 0x0804bc0c bdf80000 ldrh.w r0, [sp]
| | ||||| 0x0804bc10 2018 adds r0, r4, r0
| | ||||| 0x0804bc12 adf80000 strh.w r0, [sp]
| | ||||| 0x0804bc16 bdf80400 ldrh.w r0, [sp, 4]
| | ||||| 0x0804bc1a 3018 adds r0, r6, r0
| | ||||| 0x0804bc1c adf80400 strh.w r0, [sp, 4]
| |,======< 0x0804bc20 09e0 b 0x804bc36
| `-------> 0x0804bc22 bdf80000 ldrh.w r0, [sp]
| |||||| 0x0804bc26 2018 adds r0, r4, r0
| |||||| 0x0804bc28 adf80000 strh.w r0, [sp]
| |||||| 0x0804bc2c bdf80400 ldrh.w r0, [sp, 4]
| |||||| 0x0804bc30 2018 adds r0, r4, r0
| |||||| 0x0804bc32 adf80400 strh.w r0, [sp, 4]
| ``-----> 0x0804bc36 b9f81c00 ldrh.w r0, [sb, 0x1c]
| |||| 0x0804bc3a 10f4a060 ands r0, r0, 0x500
| |||| 0x0804bc3e b0f5807f cmp.w r0, 0x100 ; 256
| ,=====< 0x0804bc42 03d0 beq 0x804bc4c
| ||||| 0x0804bc44 b0f5a06f cmp.w r0, 0x500 ; 1280
| ,======< 0x0804bc48 0bd0 beq 0x804bc62
| ||||`==< 0x0804bc4a 79e7 b 0x804bb40
| |`-----> 0x0804bc4c bdf80200 ldrh.w r0, [sp, 2]
| | || | 0x0804bc50 3818 adds r0, r7, r0
| | || | 0x0804bc52 adf80200 strh.w r0, [sp, 2]
| | || | 0x0804bc56 bdf80600 ldrh.w r0, [sp, 6]
| | || | 0x0804bc5a 3818 adds r0, r7, r0
| | || | 0x0804bc5c adf80600 strh.w r0, [sp, 6]
| | `====< 0x0804bc60 78e7 b 0x804bb54
| `------> 0x0804bc62 bdf80200 ldrh.w r0, [sp, 2]
| | | 0x0804bc66 2818 adds r0, r5, r0
| | | 0x0804bc68 adf80200 strh.w r0, [sp, 2]
| | | 0x0804bc6c bdf80600 ldrh.w r0, [sp, 6]
| | | 0x0804bc70 3818 adds r0, r7, r0
| | | 0x0804bc72 adf80600 strh.w r0, [sp, 6]
| `===< 0x0804bc76 6de7 b 0x804bb54
| `-> 0x0804bc78 05b0 add sp, 0x14
\ 0x0804bc7a bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_4bccc 6
| Caller: func_37792
| func_4bccc ();
| 0x0804bccc 0148 ldr r0, [0x0804bcd4] ; [0x804bcd4:4]=0x200049dc
| 0x0804bcce 0068 ldr r0, [r0]
\ 0x0804bcd0 7047 bx lr
/ (fcn) func_4bc9c 38
| Caller: func_37b0a draw_some_bitmap_and_text func_379f0
| func_4bc9c ();
| 0x0804bc9c 80b5 push {r7, lr}
| 0x0804bc9e 0949 ldr r1, [0x0804bcc6] ; [0x804bcc4:4]=0x2001e80a
| 0x0804bca0 b1f90010 ldrsh.w r1, [r1]
| 0x0804bca4 0029 cmp r1, 0
| ,=< 0x0804bca6 03d0 beq 0x804bcb0
| | 0x0804bca8 0649 ldr r1, [0x0804bcc4] ; [0x804bcc4:4]=0x2001e80a
| | 0x0804bcaa b1f90020 ldrsh.w r2, [r1]
| ,==< 0x0804bcae 02e0 b 0x804bcb6
| |`-> 0x0804bcb0 0549 ldr r1, [0x0804bcc8] ; [0x804bcc8:4]=0x2001da1c gfx_info
| | 0x0804bcb2 b1f93c20 ldrsh.w r2, [r1, 0x3c]
| `--> 0x0804bcb6 0100 movs r1, r0
| 0x0804bcb8 1000 movs r0, r2
| 0x0804bcba 00b2 sxth r0, r0
| 0x0804bcbc fff7e0ff bl func_4bc80
\ 0x0804bcc0 01bd pop {r0, pc}
/ (fcn) func_4bc80 28
| Caller: func_4bc9c
| func_4bc80 ();
| 0x0804bc80 10b5 push {r4, lr}
| 0x0804bc82 0c00 movs r4, r1
| 0x0804bc84 00b2 sxth r0, r0
| 0x0804bc86 0028 cmp r0, 0
| ,=< 0x0804bc88 07d0 beq 0x804bc9a
| | 0x0804bc8a 002c cmp r4, 0
| ,==< 0x0804bc8c 05d0 beq 0x804bc9a
| || 0x0804bc8e 00b2 sxth r0, r0
| || 0x0804bc90 e6f7e8fe bl gfx_draw_sub_32a64
| || 0x0804bc94 2100 movs r1, r4
| || 0x0804bc96 d0f77cfd bl gfx_1c792
\ ``-> 0x0804bc9a 10bd pop {r4, pc}
/ (fcn) gfx_4bd40 30
| Caller: func_37ab8
| gfx_4bd40 ();
| 0x0804bd40 10b5 push {r4, lr}
| 0x0804bd42 0c00 movs r4, r1
| 0x0804bd44 0022 movs r2, 0
| 0x0804bd46 00b2 sxth r0, r0
| 0x0804bd48 0028 cmp r0, 0
| ,=< 0x0804bd4a 03d0 beq 0x804bd54
| | 0x0804bd4c 00b2 sxth r0, r0
| | 0x0804bd4e e6f789fe bl gfx_draw_sub_32a64
| | 0x0804bd52 0200 movs r2, r0
| `-> 0x0804bd54 2100 movs r1, r4
| 0x0804bd56 1000 movs r0, r2
| 0x0804bd58 fff7d8ff bl 0x804bd0c
\ 0x0804bd5c 10bd pop {r4, pc}
/ (fcn) gfx_4bd5e 24
| Caller: func_37ab8 menu_draw_sub_3aba8
| gfx_4bd5e ();
| 0x0804bd5e 5ff0ff31 movs.w r1, -1 ; -1
| 0x0804bd62 0028 cmp r0, 0
| ,=< 0x0804bd64 05d0 beq 0x804bd72
| .--> 0x0804bd66 491c adds r1, r1, 1
| || 0x0804bd68 0200 movs r2, r0
| || 0x0804bd6a 501c adds r0, r2, 1
| || 0x0804bd6c 1278 ldrb r2, [r2]
| || 0x0804bd6e 002a cmp r2, 0
| `==< 0x0804bd70 f9d1 bne 0x804bd66
| `-> 0x0804bd72 0800 movs r0, r1
\ 0x0804bd74 7047 bx lr
/ (fcn) gfx_4be14 26
| Caller: menu_37d44
| gfx_4be14 ();
| 0x0804be14 80b5 push {r7, lr}
| 0x0804be16 0100 movs r1, r0
| 0x0804be18 0020 movs r0, 0
| 0x0804be1a 09b2 sxth r1, r1
| 0x0804be1c 0029 cmp r1, 0
| ,=< 0x0804be1e 04d0 beq 0x804be2a
| | 0x0804be20 0800 movs r0, r1
| | 0x0804be22 00b2 sxth r0, r0
| | 0x0804be24 e6f71efe bl gfx_draw_sub_32a64
| | 0x0804be28 808b ldrh r0, [r0, 0x1c]
| `-> 0x0804be2a 80b2 uxth r0, r0
\ 0x0804be2c 02bd pop {r1, pc}
/ (fcn) gfx_4be2e 18
| Caller: func_4c2cc
| gfx_4be2e ();
| 0x0804be2e e0b5 push {r5, r6, r7, lr}
| 0x0804be30 1521 movs r1, 0x15 ; 21
| 0x0804be32 0091 str r1, [sp]
| 0x0804be34 00a9 add r1, sp, 0
| 0x0804be36 00b2 sxth r0, r0
| 0x0804be38 d0f78efc bl gfx_1c758
| 0x0804be3c 0298 ldr r0, [sp, 8]
\ 0x0804be3e 0ebd pop {r1, r2, r3, pc}
/ (fcn) gfx_4be40 52
| gfx_4be40 ();
| 0x0804be40 10b5 push {r4, lr}
| 0x0804be42 0400 movs r4, r0
| 0x0804be44 24b2 sxth r4, r4
| 0x0804be46 002c cmp r4, 0
| ,=< 0x0804be48 13d0 beq 0x804be72
| | 0x0804be4a 2000 movs r0, r4
| | 0x0804be4c 00b2 sxth r0, r0
| | 0x0804be4e e6f709fe bl gfx_draw_sub_32a64
| | 0x0804be52 017f ldrb r1, [r0, 0x1c]
| | 0x0804be54 8907 lsls r1, r1, 0x1e
| ,==< 0x0804be56 0cd5 bpl 0x804be72
| || 0x0804be58 818b ldrh r1, [r0, 0x1c]
| || 0x0804be5a 4ff6fd72 movw r2, 0xfffd
| || 0x0804be5e 1140 ands r1, r2
| || 0x0804be60 8183 strh r1, [r0, 0x1c]
| || 0x0804be62 2000 movs r0, r4
| || 0x0804be64 00b2 sxth r0, r0
| || 0x0804be66 e6f7fdfd bl gfx_draw_sub_32a64
| || 0x0804be6a 2100 movs r1, r4
| || 0x0804be6c 09b2 sxth r1, r1
| || 0x0804be6e d0f73ffb bl gfx_1c4f0
\ ``-> 0x0804be72 10bd pop {r4, pc}
/ (fcn) draw_some_bitmap_and_text 444
| Caller: func_4c0ea
| draw_some_bitmap_and_text ();
| 0x0804be74 f0b5 push {r4, r5, r6, r7, lr}
| 0x0804be76 87b0 sub sp, 0x1c
| 0x0804be78 0400 movs r4, r0
| 0x0804be7a 0d00 movs r5, r1
| 0x0804be7c df48 ldr r0, [0x0804c1fc] ; [0x804c1fc:4]=0x80fafe8
| 0x0804be7e d0e90023 ldrd r2, r3, [r0]
| 0x0804be82 cde90423 strd r2, r3, [sp, 0x10]
| 0x0804be86 206a ldr r0, [r4, 0x20]
| 0x0804be88 4669 ldr r6, [r0, 0x14]
| 0x0804be8a 2800 movs r0, r5
| 0x0804be8c 00b2 sxth r0, r0
| 0x0804be8e eff7a2fb bl func_3b5d6
| 0x0804be92 0700 movs r7, r0
| 0x0804be94 2800 movs r0, r5
| 0x0804be96 00b2 sxth r0, r0
| 0x0804be98 f8f71cfd bl 0x80448d4 ; func_44846+0x8e
| 0x0804be9c 0028 cmp r0, 0
| ,=< 0x0804be9e 10d1 bne 0x804bec2
| | 0x0804bea0 606b ldr r0, [r4, 0x34]
| | 0x0804bea2 7ff07041 mvns r1, 0xf0000000
| | 0x0804bea6 8842 cmp r0, r1
| ,==< 0x0804bea8 06d1 bne 0x804beb8
| || 0x0804beaa 2800 movs r0, r5
| || 0x0804beac 00b2 sxth r0, r0
| || 0x0804beae ebf770fc bl func_37792
| || 0x0804beb2 e7f789f9 bl gfx_set_bg_color2
| ,===< 0x0804beb6 02e0 b 0x804bebe
| |`--> 0x0804beb8 606b ldr r0, [r4, 0x34]
| | | 0x0804beba e7f785f9 bl gfx_set_bg_color2
| `---> 0x0804bebe e7f7eafa bl gfx_33496
| `-> 0x0804bec2 206c ldr r0, [r4, 0x40]
| 0x0804bec4 b0f90000 ldrsh.w r0, [r0]
| 0x0804bec8 3100 movs r1, r6
| 0x0804beca 09b2 sxth r1, r1
| 0x0804becc 10eb4100 adds.w r0, r0, r1, lsl 1
| 0x0804bed0 401e subs r0, r0, 1
| 0x0804bed2 adf81400 strh.w r0, [sp, 0x14]
| 0x0804bed6 206c ldr r0, [r4, 0x40]
| 0x0804bed8 b0f90200 ldrsh.w r0, [r0, 2]
| 0x0804bedc 3100 movs r1, r6
| 0x0804bede 09b2 sxth r1, r1
| 0x0804bee0 10eb4100 adds.w r0, r0, r1, lsl 1
| 0x0804bee4 401e subs r0, r0, 1
| 0x0804bee6 adf81600 strh.w r0, [sp, 0x16]
| 0x0804beea 04a8 add r0, sp, 0x10
| 0x0804beec eef772ff bl gfx_3add4
| 0x0804bef0 14eb8700 adds.w r0, r4, r7, lsl 2
| 0x0804bef4 c06a ldr r0, [r0, 0x2c]
| 0x0804bef6 e7f767f9 bl gfx_set_bg_color2
| 0x0804befa e7f7ccfa bl gfx_33496
| 0x0804befe 94f85100 ldrb.w r0, [r4, 0x51]
| 0x0804bf02 0028 cmp r0, 0
| ,=< 0x0804bf04 0bd0 beq 0x804bf1e
| | 0x0804bf06 94f85100 ldrb.w r0, [r4, 0x51]
| | 0x0804bf0a 401e subs r0, r0, 1
| | 0x0804bf0c 17eb4000 adds.w r0, r7, r0, lsl 1
| | 0x0804bf10 3200 movs r2, r6
| | 0x0804bf12 3100 movs r1, r6
| | 0x0804bf14 14eb8000 adds.w r0, r4, r0, lsl 2
| | 0x0804bf18 006c ldr r0, [r0, 0x40]
| | 0x0804bf1a d7f770fc bl gfx_drawbmp
| `-> 0x0804bf1e 04a9 add r1, sp, 0x10
| 0x0804bf20 2000 movs r0, r4
| 0x0804bf22 ebf765fd bl func_379f0
| 0x0804bf26 0020 movs r0, 0
| 0x0804bf28 eef754ff bl gfx_3add4
| 0x0804bf2c b4f95200 ldrsh.w r0, [r4, 0x52]
| 0x0804bf30 0028 cmp r0, 0
| ,=< 0x0804bf32 7bd0 beq 0x804c02c
| | 0x0804bf34 b4f95200 ldrsh.w r0, [r4, 0x52]
| | 0x0804bf38 e6f794fd bl gfx_draw_sub_32a64
| | 0x0804bf3c 0500 movs r5, r0
| | 0x0804bf3e 02a8 add r0, sp, 8
| | 0x0804bf40 fff7acfe bl func_4bc9c
| | 0x0804bf44 bdf80800 ldrh.w r0, [sp, 8]
| | 0x0804bf48 bdf81410 ldrh.w r1, [sp, 0x14]
| | 0x0804bf4c 94f83e20 ldrb.w r2, [r4, 0x3e]
| | 0x0804bf50 8918 adds r1, r1, r2
| | 0x0804bf52 491c adds r1, r1, 1
| | 0x0804bf54 0818 adds r0, r1, r0
| | 0x0804bf56 adf80800 strh.w r0, [sp, 8]
| | 0x0804bf5a 0220 movs r0, 2 ; 2
| | 0x0804bf5c eef742fe bl menu_draw_sub_3abe4
| | 0x0804bf60 a06b ldr r0, [r4, 0x38]
| | 0x0804bf62 e7f73df9 bl gfx_set_fg_color2
| | 0x0804bf66 a06a ldr r0, [r4, 0x28]
| | 0x0804bf68 d5f784fc bl gfx_select_font
| | 0x0804bf6c b4f93c20 ldrsh.w r2, [r4, 0x3c]
| | 0x0804bf70 02a9 add r1, sp, 8
| | 0x0804bf72 2800 movs r0, r5
| | 0x0804bf74 dff72ff9 bl gfx_drawtext_sub4
| | 0x0804bf78 94f82600 ldrb.w r0, [r4, 0x26]
| | 0x0804bf7c c007 lsls r0, r0, 0x1f
| ,==< 0x0804bf7e 55d5 bpl 0x804c02c
| || 0x0804bf80 2800 movs r0, r5
| || 0x0804bf82 eef711fe bl menu_draw_sub_3aba8
| || 0x0804bf86 0500 movs r5, r0
| || 0x0804bf88 eaf7f6fc bl gfx_GetFontSizeY
| || 0x0804bf8c dde90223 ldrd r2, r3, [sp, 8]
| || 0x0804bf90 cde90023 strd r2, r3, [sp]
| || 0x0804bf94 b4f93c10 ldrsh.w r1, [r4, 0x3c]
| || 0x0804bf98 31f00301 bics r1, r1, 3
| || 0x0804bf9c 89b2 uxth r1, r1
| || 0x0804bf9e 0429 cmp r1, 4 ; 4
| ,===< 0x0804bfa0 0ad0 beq 0x804bfb8
| ||| 0x0804bfa2 0c29 cmp r1, 0xc ; 12
| ,====< 0x0804bfa4 0dd1 bne 0x804bfc2
| |||| 0x0804bfa6 bdf90e10 ldrsh.w r1, [sp, 0xe]
| |||| 0x0804bfaa 091a subs r1, r1, r0
| |||| 0x0804bfac 0222 movs r2, 2 ; 2
| |||| 0x0804bfae 91fbf2f1 sdiv r1, r1, r2
| |||| 0x0804bfb2 adf80210 strh.w r1, [sp, 2]
| ,=====< 0x0804bfb6 04e0 b 0x804bfc2
| ||`---> 0x0804bfb8 bdf80e10 ldrh.w r1, [sp, 0xe]
| || || 0x0804bfbc 091a subs r1, r1, r0
| || || 0x0804bfbe adf80210 strh.w r1, [sp, 2]
| ``----> 0x0804bfc2 b4f93c10 ldrsh.w r1, [r4, 0x3c]
| || 0x0804bfc6 31f00c01 bics r1, r1, 0xc
| || 0x0804bfca 89b2 uxth r1, r1
| || 0x0804bfcc 0129 cmp r1, 1 ; 1
| ,===< 0x0804bfce 10d0 beq 0x804bff2
| ||| 0x0804bfd0 0229 cmp r1, 2 ; 2
| ,====< 0x0804bfd2 19d1 bne 0x804c008
| |||| 0x0804bfd4 bdf80010 ldrh.w r1, [sp]
| |||| 0x0804bfd8 bdf90c20 ldrsh.w r2, [sp, 0xc]
| |||| 0x0804bfdc bdf90830 ldrsh.w r3, [sp, 8]
| |||| 0x0804bfe0 d21a subs r2, r2, r3
| |||| 0x0804bfe2 521b subs r2, r2, r5
| |||| 0x0804bfe4 0223 movs r3, 2 ; 2
| |||| 0x0804bfe6 92fbf3f2 sdiv r2, r2, r3
| |||| 0x0804bfea 5118 adds r1, r2, r1
| |||| 0x0804bfec adf80010 strh.w r1, [sp]
| ,=====< 0x0804bff0 0ae0 b 0x804c008
| ||`---> 0x0804bff2 bdf80010 ldrh.w r1, [sp]
| || || 0x0804bff6 bdf80c20 ldrh.w r2, [sp, 0xc]
| || || 0x0804bffa 5118 adds r1, r2, r1
| || || 0x0804bffc bdf80820 ldrh.w r2, [sp, 8]
| || || 0x0804c000 891a subs r1, r1, r2
| || || 0x0804c002 491b subs r1, r1, r5
| || || 0x0804c004 adf80010 strh.w r1, [sp]
| ``----> 0x0804c008 bdf80010 ldrh.w r1, [sp]
| || 0x0804c00c 6918 adds r1, r5, r1
| || 0x0804c00e adf80410 strh.w r1, [sp, 4]
| || 0x0804c012 bdf80210 ldrh.w r1, [sp, 2]
| || 0x0804c016 4018 adds r0, r0, r1
| || 0x0804c018 adf80600 strh.w r0, [sp, 6]
| || 0x0804c01c 0020 movs r0, 0
| || 0x0804c01e e7f7dff8 bl gfx_set_fg_color2
| || 0x0804c022 0022 movs r2, 0
| || 0x0804c024 00a9 add r1, sp, 0
| || 0x0804c026 2000 movs r0, r4
| || 0x0804c028 ebf7c2fc bl func_379b0
| ``-> 0x0804c02c 07b0 add sp, 0x1c
\ 0x0804c02e f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) func_4c030 120
| Caller: func_4c0ea
| func_4c030 ();
| 0x0804c030 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x0804c034 0400 movs r4, r0
| 0x0804c036 0d00 movs r5, r1
| 0x0804c038 0027 movs r7, 0
| 0x0804c03a 0026 movs r6, 0
| 0x0804c03c d2f80880 ldr.w r8, [r2, 8]
| 0x0804c040 9068 ldr r0, [r2, 8]
| 0x0804c042 0028 cmp r0, 0
| ,=< 0x0804c044 22d0 beq 0x804c08c
| | 0x0804c046 2000 movs r0, r4
| | 0x0804c048 00b2 sxth r0, r0
| | 0x0804c04a fff7a9fc bl func_4b9a0
| | 0x0804c04e 0028 cmp r0, 0
| ,==< 0x0804c050 1dd1 bne 0x804c08e
| || 0x0804c052 98f80800 ldrb.w r0, [r8, 8]
| || 0x0804c056 0028 cmp r0, 0
| ,===< 0x0804c058 15d0 beq 0x804c086
| ||| 0x0804c05a 0121 movs r1, 1 ; 1
| ||| 0x0804c05c 2000 movs r0, r4
| ||| 0x0804c05e 00b2 sxth r0, r0
| ||| 0x0804c060 fff7befc bl func_4b9e0
| ||| 0x0804c064 95f85100 ldrb.w r0, [r5, 0x51]
| ||| 0x0804c068 401c adds r0, r0, 1
| ||| 0x0804c06a 95f85010 ldrb.w r1, [r5, 0x50]
| ||| 0x0804c06e 90fbf1f2 sdiv r2, r0, r1
| ||| 0x0804c072 01fb1200 mls r0, r1, r2, r0
| ||| 0x0804c076 85f85100 strb.w r0, [r5, 0x51]
| ||| 0x0804c07a 2000 movs r0, r4
| ||| 0x0804c07c 00b2 sxth r0, r0
| ||| 0x0804c07e d0f7d9fb bl gfx_1c834
| ||| 0x0804c082 0127 movs r7, 1 ; 1
| ,====< 0x0804c084 03e0 b 0x804c08e
| |`---> 0x0804c086 0126 movs r6, 1 ; 1
| | || 0x0804c088 0227 movs r7, 2 ; 2
| |,===< 0x0804c08a 00e0 b 0x804c08e
| |||`-> 0x0804c08c 0327 movs r7, 3 ; 3
| ```--> 0x0804c08e 3900 movs r1, r7
| 0x0804c090 2000 movs r0, r4
| 0x0804c092 00b2 sxth r0, r0
| 0x0804c094 e6f7a1fe bl gfx_32dda
| 0x0804c098 012e cmp r6, 1 ; 1
| ,=< 0x0804c09a 03d1 bne 0x804c0a4
| | 0x0804c09c b5f92400 ldrsh.w r0, [r5, 0x24]
| | 0x0804c0a0 e7f772f9 bl func_33388
\ `-> 0x0804c0a4 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) func_4c0a8 66
| Caller: func_4c0ea
| func_4c0a8 ();
| 0x0804c0a8 70b5 push {r4, r5, r6, lr}
| 0x0804c0aa 0400 movs r4, r0
| 0x0804c0ac 0d00 movs r5, r1
| 0x0804c0ae 1600 movs r6, r2
| 0x0804c0b0 2000 movs r0, r4
| 0x0804c0b2 00b2 sxth r0, r0
| 0x0804c0b4 eff78ffa bl func_3b5d6
| 0x0804c0b8 0028 cmp r0, 0
| ,=< 0x0804c0ba 15d0 beq 0x804c0e8
| | 0x0804c0bc b068 ldr r0, [r6, 8]
| | 0x0804c0be 4168 ldr r1, [r0, 4]
| | 0x0804c0c0 0129 cmp r1, 1 ; 1
| ,==< 0x0804c0c2 11db blt 0x804c0e8
| || 0x0804c0c4 0068 ldr r0, [r0]
| || 0x0804c0c6 2028 cmp r0, 0x20 ; 32
| ,===< 0x0804c0c8 0ed1 bne 0x804c0e8
| ||| 0x0804c0ca 95f85100 ldrb.w r0, [r5, 0x51]
| ||| 0x0804c0ce 401c adds r0, r0, 1
| ||| 0x0804c0d0 95f85010 ldrb.w r1, [r5, 0x50]
| ||| 0x0804c0d4 90fbf1f2 sdiv r2, r0, r1
| ||| 0x0804c0d8 01fb1200 mls r0, r1, r2, r0
| ||| 0x0804c0dc 85f85100 strb.w r0, [r5, 0x51]
| ||| 0x0804c0e0 2000 movs r0, r4
| ||| 0x0804c0e2 00b2 sxth r0, r0
| ||| 0x0804c0e4 d0f7a6fb bl gfx_1c834
\ ```-> 0x0804c0e8 70bd pop {r4, r5, r6, pc}
/ (fcn) func_4c0ea 94
| func_4c0ea ();
| 0x0804c0ea 70b5 push {r4, r5, r6, lr}
| 0x0804c0ec 0400 movs r4, r0
| 0x0804c0ee b4f90450 ldrsh.w r5, [r4, 4]
| 0x0804c0f2 2800 movs r0, r5
| 0x0804c0f4 00b2 sxth r0, r0
| 0x0804c0f6 e6f7b5fc bl gfx_draw_sub_32a64
| 0x0804c0fa 0600 movs r6, r0
| 0x0804c0fc 2100 movs r1, r4
| 0x0804c0fe 2800 movs r0, r5
| 0x0804c100 00b2 sxth r0, r0
| 0x0804c102 ebf7c6fb bl func_37892
| 0x0804c106 0028 cmp r0, 0
| ,=< 0x0804c108 1dd0 beq 0x804c146
| | 0x0804c10a 2068 ldr r0, [r4]
| | 0x0804c10c 0c28 cmp r0, 0xc ; 12
| ,==< 0x0804c10e 11d0 beq 0x804c134
| || 0x0804c110 0e28 cmp r0, 0xe ; 14
| ,===< 0x0804c112 02d0 beq 0x804c11a
| ||| 0x0804c114 0f28 cmp r0, 0xf ; 15
| ,====< 0x0804c116 07d0 beq 0x804c128
| ,=====< 0x0804c118 12e0 b 0x804c140
| ||`---> 0x0804c11a 2200 movs r2, r4
| || || 0x0804c11c 3100 movs r1, r6
| || || 0x0804c11e 2800 movs r0, r5
| || || 0x0804c120 00b2 sxth r0, r0
| || || 0x0804c122 fff7c1ff bl func_4c0a8
| ||,===< 0x0804c126 0be0 b 0x804c140
| |`----> 0x0804c128 2900 movs r1, r5
| | ||| 0x0804c12a 09b2 sxth r1, r1
| | ||| 0x0804c12c 3000 movs r0, r6
| | ||| 0x0804c12e fff7a1fe bl draw_some_bitmap_and_text
| |,====< 0x0804c132 08e0 b 0x804c146
| |||`--> 0x0804c134 2200 movs r2, r4
| ||| | 0x0804c136 3100 movs r1, r6
| ||| | 0x0804c138 2800 movs r0, r5
| ||| | 0x0804c13a 00b2 sxth r0, r0
| ||| | 0x0804c13c fff778ff bl func_4c030
| `-`---> 0x0804c140 2000 movs r0, r4
| | | 0x0804c142 d1f779f8 bl gfx_1d238
\ `--`-> 0x0804c146 70bd pop {r4, r5, r6, pc}
/ (fcn) func_4c148 178
| func_4c148 ();
| 0x0804c148 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x0804c14c 85b0 sub sp, 0x14
| 0x0804c14e 0500 movs r5, r0
| 0x0804c150 0e00 movs r6, r1
| 0x0804c152 1700 movs r7, r2
| 0x0804c154 9846 mov r8, r3
| 0x0804c156 bdf93090 ldrsh.w sb, [sp, 0x30]
| 0x0804c15a 0f9c ldr r4, [sp, 0x3c]
| 0x0804c15c 0e98 ldr r0, [sp, 0x38]
| 0x0804c15e 002f cmp r7, 0
| ,=< 0x0804c160 02d0 beq 0x804c168
| | 0x0804c162 b8f1000f cmp.w r8, 0
| ,==< 0x0804c166 13d1 bne 0x804c190
| |`-> 0x0804c168 ebf77ffc bl func_37a6a
| | 0x0804c16c 4069 ldr r0, [r0, 0x14]
| | 0x0804c16e 002f cmp r7, 0
| |,=< 0x0804c170 05d1 bne 0x804c17e
| || 0x0804c172 2349 ldr r1, [0x0804c202] ; [0x804c200:4]=0x200046c4
| || 0x0804c174 8969 ldr r1, [r1, 0x18]
| || 0x0804c176 0988 ldrh r1, [r1]
| || 0x0804c178 4200 lsls r2, r0, 1
| || 0x0804c17a 12fa81f7 uxtah r7, r2, r1
| |`-> 0x0804c17e b8f1000f cmp.w r8, 0
| |,=< 0x0804c182 05d1 bne 0x804c190
| || 0x0804c184 1e49 ldr r1, [0x0804c200] ; [0x804c200:4]=0x200046c4
| || 0x0804c186 8969 ldr r1, [r1, 0x18]
| || 0x0804c188 4988 ldrh r1, [r1, 2]
| || 0x0804c18a 4000 lsls r0, r0, 1
| || 0x0804c18c 10fa81f8 uxtah r8, r0, r1
| ``-> 0x0804c190 0d98 ldr r0, [sp, 0x34]
| 0x0804c192 1b49 ldr r1, [0x0804c202] ; [0x804c200:4]=0x200046c4
| 0x0804c194 c968 ldr r1, [r1, 0xc]
| 0x0804c196 7ff07042 mvns r2, 0xf0000000
| 0x0804c19a 9142 cmp r1, r2
| ,=< 0x0804c19c 01d1 bne 0x804c1a2
| | 0x0804c19e 50f00100 orrs r0, r0, 1
| `-> 0x0804c1a2 3421 movs r1, 0x34 ; '4' ; 52
| 0x0804c1a4 0391 str r1, [sp, 0xc]
| 0x0804c1a6 1749 ldr r1, [0x0804c206] ; [0x804c204:4]=0x804c0eb
| 0x0804c1a8 0291 str r1, [sp, 8]
| 0x0804c1aa 80b2 uxth r0, r0
| 0x0804c1ac 0190 str r0, [sp, 4]
| 0x0804c1ae 0ffa89f9 sxth.w sb, sb
| 0x0804c1b2 cdf80090 str.w sb, [sp]
| 0x0804c1b6 4346 mov r3, r8
| 0x0804c1b8 3a00 movs r2, r7
| 0x0804c1ba 3100 movs r1, r6
| 0x0804c1bc 2800 movs r0, r5
| 0x0804c1be d0f755fb bl gfx_1c86c
| 0x0804c1c2 0500 movs r5, r0
| 0x0804c1c4 2db2 sxth r5, r5
| 0x0804c1c6 002d cmp r5, 0
| ,=< 0x0804c1c8 12d0 beq 0x804c1f0
| | 0x0804c1ca 2800 movs r0, r5
| | 0x0804c1cc 00b2 sxth r0, r0
| | 0x0804c1ce e6f749fc bl gfx_draw_sub_32a64
| | 0x0804c1d2 0600 movs r6, r0
| | 0x0804c1d4 1022 movs r2, 0x10 ; 16
| | 0x0804c1d6 2100 movs r1, r4
| | 0x0804c1d8 3000 movs r0, r6
| | 0x0804c1da ebf754fb bl func_37886
| | 0x0804c1de 16f12800 adds.w r0, r6, 0x28
| | 0x0804c1e2 0749 ldr r1, [0x0804c202] ; [0x804c200:4]=0x200046c4
| | 0x0804c1e4 2822 movs r2, 0x28 ; '(' ; 40
| | 0x0804c1e6 e6f731fd bl func_32c4c
| | 0x0804c1ea 0220 movs r0, 2 ; 2
| | 0x0804c1ec 86f85000 strb.w r0, [r6, 0x50]
| `-> 0x0804c1f0 2800 movs r0, r5
| 0x0804c1f2 00b2 sxth r0, r0
| 0x0804c1f4 05b0 add sp, 0x14
\ 0x0804c1f6 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_4c220 82
| func_4c220 ();
| 0x0804c220 7cb5 push {r2, r3, r4, r5, r6, lr}
| 0x0804c222 0400 movs r4, r0
| 0x0804c224 0e00 movs r6, r1
| 0x0804c226 1500 movs r5, r2
| 0x0804c228 1248 ldr r0, [0x0804c274] ; [0x804c274:4]=0x2001da1c gfx_info
| 0x0804c22a 006c ldr r0, [r0, 0x40]
| 0x0804c22c 8619 adds r6, r0, r6
| 0x0804c22e 1148 ldr r0, [0x0804c276] ; [0x804c274:4]=0x2001da1c gfx_info
| 0x0804c230 406c ldr r0, [r0, 0x44]
| 0x0804c232 0419 adds r4, r0, r4
| 0x0804c234 0f48 ldr r0, [0x0804c274] ; [0x804c274:4]=0x2001da1c gfx_info
| 0x0804c236 006c ldr r0, [r0, 0x40]
| 0x0804c238 4519 adds r5, r0, r5
| 0x0804c23a 3000 movs r0, r6
| 0x0804c23c adf80000 strh.w r0, [sp]
| 0x0804c240 2800 movs r0, r5
| 0x0804c242 adf80400 strh.w r0, [sp, 4]
| 0x0804c246 2000 movs r0, r4
| 0x0804c248 adf80200 strh.w r0, [sp, 2]
| 0x0804c24c adf80600 strh.w r0, [sp, 6]
| 0x0804c250 00a8 add r0, sp, 0
| 0x0804c252 d0f74dfd bl gfx_bmp_sub1
| 0x0804c256 0028 cmp r0, 0
| ,=< 0x0804c258 0ad0 beq 0x804c270
| .--> 0x0804c25a 2a00 movs r2, r5
| || 0x0804c25c 2100 movs r1, r4
| || 0x0804c25e 3000 movs r0, r6
| || 0x0804c260 044b ldr r3, [0x0804c274] ; [0x804c274:4]=0x2001da1c gfx_info
| || 0x0804c262 9b6d ldr r3, [r3, 0x58]
| || 0x0804c264 1b68 ldr r3, [r3]
| || 0x0804c266 9847 blx r3
| || 0x0804c268 d0f714fd bl gfx_bmp_sub3
| || 0x0804c26c 0028 cmp r0, 0
| `==< 0x0804c26e f4d1 bne 0x804c25a
\ `-> 0x0804c270 73bd pop {r0, r1, r4, r5, r6, pc}
/ (fcn) func_4c278 78
| func_4c278 ();
| 0x0804c278 7cb5 push {r2, r3, r4, r5, r6, lr}
| 0x0804c27a 0600 movs r6, r0
| 0x0804c27c 0c00 movs r4, r1
| 0x0804c27e 1500 movs r5, r2
| 0x0804c280 1148 ldr r0, [0x0804c2c8] ; [0x804c2c8:4]=0x2001da1c gfx_info
| 0x0804c282 006c ldr r0, [r0, 0x40]
| 0x0804c284 8619 adds r6, r0, r6
| 0x0804c286 1048 ldr r0, [0x0804c2ca] ; [0x804c2c8:4]=0x2001da1c gfx_info
| 0x0804c288 406c ldr r0, [r0, 0x44]
| 0x0804c28a 0419 adds r4, r0, r4
| 0x0804c28c 0e48 ldr r0, [0x0804c2c8] ; [0x804c2c8:4]=0x2001da1c gfx_info
| 0x0804c28e 406c ldr r0, [r0, 0x44]
| 0x0804c290 4519 adds r5, r0, r5
| 0x0804c292 3000 movs r0, r6
| 0x0804c294 adf80000 strh.w r0, [sp]
| 0x0804c298 adf80400 strh.w r0, [sp, 4]
| 0x0804c29c 2000 movs r0, r4
| 0x0804c29e adf80200 strh.w r0, [sp, 2]
| 0x0804c2a2 2800 movs r0, r5
| 0x0804c2a4 adf80600 strh.w r0, [sp, 6]
| 0x0804c2a8 00a8 add r0, sp, 0
| 0x0804c2aa d0f721fd bl gfx_bmp_sub1
| 0x0804c2ae 0028 cmp r0, 0
| ,=< 0x0804c2b0 08d0 beq 0x804c2c4
| .--> 0x0804c2b2 2a00 movs r2, r5
| || 0x0804c2b4 2100 movs r1, r4
| || 0x0804c2b6 3000 movs r0, r6
| || 0x0804c2b8 07f0eaff bl func_54290
| || 0x0804c2bc d0f7eafc bl gfx_bmp_sub3
| || 0x0804c2c0 0028 cmp r0, 0
| `==< 0x0804c2c2 f6d1 bne 0x804c2b2
\ `-> 0x0804c2c4 73bd pop {r0, r1, r4, r5, r6, pc}
/ (fcn) func_4c2cc 46
| Caller: func_3b376
| func_4c2cc ();
| 0x0804c2cc 38b5 push {r3, r4, r5, lr}
| 0x0804c2ce 0400 movs r4, r0
| 0x0804c2d0 2000 movs r0, r4
| 0x0804c2d2 00b2 sxth r0, r0
| 0x0804c2d4 fff7abfd bl gfx_4be2e
| 0x0804c2d8 0500 movs r5, r0
| 0x0804c2da ff2d cmp r5, 0xff ; 255
| ,=< 0x0804c2dc 01d1 bne 0x804c2e2
| | 0x0804c2de fe25 movs r5, 0xfe ; 254
| ,==< 0x0804c2e0 02e0 b 0x804c2e8
| |`-> 0x0804c2e2 fe2d cmp r5, 0xfe ; 254
| |,=< 0x0804c2e4 00d1 bne 0x804c2e8
| || 0x0804c2e6 ff25 movs r5, 0xff ; 255
| ``-> 0x0804c2e8 2000 movs r0, r4
| 0x0804c2ea 00b2 sxth r0, r0
| 0x0804c2ec ebf7c2fb bl func_37a74
| 0x0804c2f0 2900 movs r1, r5
| 0x0804c2f2 00b2 sxth r0, r0
| 0x0804c2f4 eef722fd bl func_3ad3c
\ 0x0804c2f8 32bd pop {r1, r4, r5, pc}
/ (fcn) func_4c2fa 10
| Caller: func_3b376
| func_4c2fa ();
| 0x0804c2fa 80b5 push {r7, lr}
| 0x0804c2fc 00b2 sxth r0, r0
| 0x0804c2fe 07f0ebff bl func_542d8
\ 0x0804c302 01bd pop {r0, pc}
/ (fcn) func_4c304 64
| Caller: func_3b5a0
| func_4c304 ();
| 0x0804c304 70b5 push {r4, r5, r6, lr}
| 0x0804c306 0400 movs r4, r0
| 0x0804c308 0d00 movs r5, r1
| 0x0804c30a 0020 movs r0, 0
| 0x0804c30c 24b2 sxth r4, r4
| 0x0804c30e 002c cmp r4, 0
| ,=< 0x0804c310 17d0 beq 0x804c342
| | 0x0804c312 2000 movs r0, r4
| | 0x0804c314 00b2 sxth r0, r0
| | 0x0804c316 e6f7a5fb bl gfx_draw_sub_32a64
| | 0x0804c31a 0600 movs r6, r0
| | 0x0804c31c b6f90400 ldrsh.w r0, [r6, 4]
| | 0x0804c320 281a subs r0, r5, r0
| | 0x0804c322 b6f90010 ldrsh.w r1, [r6]
| | 0x0804c326 00fa81f0 sxtah r0, r0, r1
| | 0x0804c32a 411e subs r1, r0, 1
| | 0x0804c32c 0022 movs r2, 0
| | 0x0804c32e 2000 movs r0, r4
| | 0x0804c330 00b2 sxth r0, r0
| | 0x0804c332 07f03cff bl func_541ae
| | 0x0804c336 b6f90400 ldrsh.w r0, [r6, 4]
| | 0x0804c33a b6f90010 ldrsh.w r1, [r6]
| | 0x0804c33e 401a subs r0, r0, r1
| | 0x0804c340 401c adds r0, r0, 1
\ `-> 0x0804c342 70bd pop {r4, r5, r6, pc}
/ (fcn) func_4c344 62
| Caller: func_3b5a0
| func_4c344 ();
| 0x0804c344 70b5 push {r4, r5, r6, lr}
| 0x0804c346 0400 movs r4, r0
| 0x0804c348 0d00 movs r5, r1
| 0x0804c34a 0020 movs r0, 0
| 0x0804c34c 24b2 sxth r4, r4
| 0x0804c34e 002c cmp r4, 0
| ,=< 0x0804c350 16d0 beq 0x804c380
| | 0x0804c352 2000 movs r0, r4
| | 0x0804c354 00b2 sxth r0, r0
| | 0x0804c356 e6f785fb bl gfx_draw_sub_32a64
| | 0x0804c35a 0600 movs r6, r0
| | 0x0804c35c b6f90600 ldrsh.w r0, [r6, 6]
| | 0x0804c360 281a subs r0, r5, r0
| | 0x0804c362 b6f90210 ldrsh.w r1, [r6, 2]
| | 0x0804c366 4018 adds r0, r0, r1
| | 0x0804c368 421e subs r2, r0, 1
| | 0x0804c36a 0021 movs r1, 0
| | 0x0804c36c 2000 movs r0, r4
| | 0x0804c36e 00b2 sxth r0, r0
| | 0x0804c370 07f01dff bl func_541ae
| | 0x0804c374 b6f90600 ldrsh.w r0, [r6, 6]
| | 0x0804c378 b6f90210 ldrsh.w r1, [r6, 2]
| | 0x0804c37c 401a subs r0, r0, r1
| | 0x0804c37e 401c adds r0, r0, 1
\ `-> 0x0804c380 70bd pop {r4, r5, r6, pc}
/ (fcn) func_4c38c 94
| Caller: gfx_3b86c
| func_4c38c ();
| 0x0804c38c 4018 adds r0, r0, r1
| 0x0804c38e 10f00303 ands r3, r0, 3
| ,=< 0x0804c392 08d0 beq 0x804c3a6
| | 0x0804c394 c91a subs r1, r1, r3
| ,==< 0x0804c396 1fd3 blo 0x804c3d8
| || 0x0804c398 db07 lsls r3, r3, 0x1f
| ,===< 0x0804c39a 48bf it mi
| `---> 0x0804c39c 00f8012d strb r2, [r0, -0x1]!
| ,===< 0x0804c3a0 28bf it hs
| `---> 0x0804c3a2 20f8022d strh r2, [r0, -0x2]!
| |`-> 0x0804c3a6 1300 movs r3, r2
| | 0x0804c3a8 30b4 push {r4, r5}
| | 0x0804c3aa 1446 mov r4, r2
| | 0x0804c3ac 1546 mov r5, r2
| |.-> 0x0804c3ae 1039 subs r1, 0x10
| ,===< 0x0804c3b0 28bf it hs
| `---> 0x0804c3b2 20e93c00 stmdb r0!, {r2, r3, r4, r5}
| |`=< 0x0804c3b6 fad8 bhi 0x804c3ae
| | 0x0804c3b8 4907 lsls r1, r1, 0x1d
| |,=< 0x0804c3ba 28bf it hs
| |`-> 0x0804c3bc 20e90c00 stmdb r0!, {r2, r3}
| |,=< 0x0804c3c0 48bf it mi
| |`-> 0x0804c3c2 40f8042d str r2, [r0, -0x4]!
| | 0x0804c3c6 8900 lsls r1, r1, 2
| |,=< 0x0804c3c8 28bf it hs
| |`-> 0x0804c3ca 20f8022d strh r2, [r0, -0x2]!
| |,=< 0x0804c3ce 48bf it mi
| |`-> 0x0804c3d0 00f8012d strb r2, [r0, -0x1]!
| | 0x0804c3d4 30bc pop {r4, r5}
| | 0x0804c3d6 7047 bx lr
| `--> 0x0804c3d8 c918 adds r1, r1, r3
| ,=< 0x0804c3da 18bf it ne
| `-> 0x0804c3dc 00f8012d strb r2, [r0, -0x1]!
| 0x0804c3e0 cb07 lsls r3, r1, 0x1f
| ,=< 0x0804c3e2 28bf it hs
| `-> 0x0804c3e4 00f8012d strb r2, [r0, -0x1]!
\ 0x0804c3e8 7047 bx lr
/ (fcn) func_4c38c 94
| Caller: gfx_3b86c
| func_4c38c ();
| 0x0804c38c 4018 adds r0, r0, r1
| 0x0804c38e 10f00303 ands r3, r0, 3
| ,=< 0x0804c392 08d0 beq 0x804c3a6
| | 0x0804c394 c91a subs r1, r1, r3
| ,==< 0x0804c396 1fd3 blo 0x804c3d8
| || 0x0804c398 db07 lsls r3, r3, 0x1f
| ,===< 0x0804c39a 48bf it mi
| `---> 0x0804c39c 00f8012d strb r2, [r0, -0x1]!
| ,===< 0x0804c3a0 28bf it hs
| `---> 0x0804c3a2 20f8022d strh r2, [r0, -0x2]!
| |`-> 0x0804c3a6 1300 movs r3, r2
| | 0x0804c3a8 30b4 push {r4, r5}
| | 0x0804c3aa 1446 mov r4, r2
| | 0x0804c3ac 1546 mov r5, r2
| |.-> 0x0804c3ae 1039 subs r1, 0x10
| ,===< 0x0804c3b0 28bf it hs
| `---> 0x0804c3b2 20e93c00 stmdb r0!, {r2, r3, r4, r5}
| |`=< 0x0804c3b6 fad8 bhi 0x804c3ae
| | 0x0804c3b8 4907 lsls r1, r1, 0x1d
| |,=< 0x0804c3ba 28bf it hs
| |`-> 0x0804c3bc 20e90c00 stmdb r0!, {r2, r3}
| |,=< 0x0804c3c0 48bf it mi
| |`-> 0x0804c3c2 40f8042d str r2, [r0, -0x4]!
| | 0x0804c3c6 8900 lsls r1, r1, 2
| |,=< 0x0804c3c8 28bf it hs
| |`-> 0x0804c3ca 20f8022d strh r2, [r0, -0x2]!
| |,=< 0x0804c3ce 48bf it mi
| |`-> 0x0804c3d0 00f8012d strb r2, [r0, -0x1]!
| | 0x0804c3d4 30bc pop {r4, r5}
| | 0x0804c3d6 7047 bx lr
| `--> 0x0804c3d8 c918 adds r1, r1, r3
| ,=< 0x0804c3da 18bf it ne
| `-> 0x0804c3dc 00f8012d strb r2, [r0, -0x1]!
| 0x0804c3e0 cb07 lsls r3, r1, 0x1f
| ,=< 0x0804c3e2 28bf it hs
| `-> 0x0804c3e4 00f8012d strb r2, [r0, -0x1]!
\ 0x0804c3e8 7047 bx lr
/ (fcn) func_4c3ec 90
| Caller: func_4c446 func_4c64e
| func_4c3ec ();
| 0x0804c3ec 30b4 push {r4, r5}
| 0x0804c3ee 0022 movs r2, 0
| 0x0804c3f0 89b2 uxth r1, r1
| 0x0804c3f2 0223 movs r3, 2 ; 2
| 0x0804c3f4 91fbf3f3 sdiv r3, r1, r3
| 0x0804c3f8 89b2 uxth r1, r1
| 0x0804c3fa 0225 movs r5, 2 ; 2
| 0x0804c3fc 91fbf5f4 sdiv r4, r1, r5
| 0x0804c400 04fb1514 mls r4, r4, r5, r1
| ,=< 0x0804c404 0de0 b 0x804c422
| .--> 0x0804c406 0178 ldrb r1, [r0]
| || 0x0804c408 4578 ldrb r5, [r0, 1]
| || 0x0804c40a 2d02 lsls r5, r5, 8
| || 0x0804c40c 55fa81f1 uxtab r1, r5, r1
| || 0x0804c410 801c adds r0, r0, 2
| || 0x0804c412 12fa81f2 uxtah r2, r2, r1
| || 0x0804c416 110c lsrs r1, r2, 0x10
| || 0x0804c418 11fa82f2 uxtah r2, r1, r2
| || 0x0804c41c 12eb1242 adds.w r2, r2, r2, lsr 16
| || 0x0804c420 5b1e subs r3, r3, 1
| |`-> 0x0804c422 9bb2 uxth r3, r3
| | 0x0804c424 012b cmp r3, 1 ; 1
| `==< 0x0804c426 eed2 bhs 0x804c406
| 0x0804c428 a4b2 uxth r4, r4
| 0x0804c42a 002c cmp r4, 0
| ,=< 0x0804c42c 07d0 beq 0x804c43e
| | 0x0804c42e 0178 ldrb r1, [r0]
| | 0x0804c430 12fa81f2 uxtah r2, r2, r1
| | 0x0804c434 100c lsrs r0, r2, 0x10
| | 0x0804c436 10fa82f2 uxtah r2, r0, r2
| | 0x0804c43a 12eb1242 adds.w r2, r2, r2, lsr 16
| `-> 0x0804c43e d043 mvns r0, r2
| 0x0804c440 80b2 uxth r0, r0
| 0x0804c442 30bc pop {r4, r5}
\ 0x0804c444 7047 bx lr
/ (fcn) func_4c446 520
| Caller: msg_handle_type_11 msg_handle_type_21 msg_handle_type_other
| func_4c446 ();
| 0x0804c446 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x0804c44a 0500 movs r5, r0
| 0x0804c44c 8846 mov r8, r1
| 0x0804c44e 1600 movs r6, r2
| 0x0804c450 1f00 movs r7, r3
| 0x0804c452 0020 movs r0, 0
| ,=< 0x0804c454 03e0 b 0x804c45e
| .--> 0x0804c456 80b2 uxth r0, r0
| || 0x0804c458 0021 movs r1, 0
| || 0x0804c45a 4155 strb r1, [r0, r5]
| || 0x0804c45c 401c adds r0, r0, 1
| |`-> 0x0804c45e 80b2 uxth r0, r0
| | 0x0804c460 2628 cmp r0, 0x26 ; '&' ; 38
| `==< 0x0804c462 f8d3 blo 0x804c456
| 0x0804c464 0f20 movs r0, 0xf ; 15
| 0x0804c466 2875 strb r0, [r5, 0x14]
| 0x0804c468 a720 movs r0, 0xa7 ; 167
| 0x0804c46a 6875 strb r0, [r5, 0x15]
| 0x0804c46c 0f20 movs r0, 0xf ; 15
| 0x0804c46e a875 strb r0, [r5, 0x16]
| 0x0804c470 a720 movs r0, 0xa7 ; 167
| 0x0804c472 e875 strb r0, [r5, 0x17]
| 0x0804c474 0798 ldr r0, [sp, 0x1c]
| 0x0804c476 089c ldr r4, [sp, 0x20]
| 0x0804c478 e4b2 uxtb r4, r4
| 0x0804c47a 012c cmp r4, 1 ; 1
| ,=< 0x0804c47c 13d1 bne 0x804c4a6
| | 0x0804c47e 0021 movs r1, 0
| | 0x0804c480 2976 strb r1, [r5, 0x18]
| | 0x0804c482 0d21 movs r1, 0xd ; 13
| | 0x0804c484 6976 strb r1, [r5, 0x19]
| | 0x0804c486 0021 movs r1, 0
| | 0x0804c488 2977 strb r1, [r5, 0x1c]
| | 0x0804c48a 0321 movs r1, 3 ; 3
| | 0x0804c48c 6977 strb r1, [r5, 0x1d]
| | 0x0804c48e bf21 movs r1, 0xbf ; 191
| | 0x0804c490 a977 strb r1, [r5, 0x1e]
| | 0x0804c492 0021 movs r1, 0
| | 0x0804c494 e977 strb r1, [r5, 0x1f]
| | 0x0804c496 10f01f00 ands r0, r0, 0x1f
| | 0x0804c49a 85f82000 strb.w r0, [r5, 0x20]
| | 0x0804c49e 0020 movs r0, 0
| | 0x0804c4a0 85f82100 strb.w r0, [r5, 0x21]
| ,==< 0x0804c4a4 2fe0 b 0x804c506
| |`-> 0x0804c4a6 1ffa88f8 uxth.w r8, r8
| | 0x0804c4aa 18f11201 adds.w r1, r8, 0x12
| | 0x0804c4ae 0912 asrs r1, r1, 8
| | 0x0804c4b0 2976 strb r1, [r5, 0x18]
| | 0x0804c4b2 18f11201 adds.w r1, r8, 0x12
| | 0x0804c4b6 6976 strb r1, [r5, 0x19]
| | 0x0804c4b8 1ffa88f8 uxth.w r8, r8
| | 0x0804c4bc 18f10801 adds.w r1, r8, 8
| | 0x0804c4c0 0912 asrs r1, r1, 8
| | 0x0804c4c2 2977 strb r1, [r5, 0x1c]
| | 0x0804c4c4 18f10801 adds.w r1, r8, 8
| | 0x0804c4c8 6977 strb r1, [r5, 0x1d]
| | 0x0804c4ca f6b2 uxtb r6, r6
| | 0x0804c4cc 212e cmp r6, 0x21 ; '!' ; 33
| |,=< 0x0804c4ce 02d1 bne 0x804c4d6
| || 0x0804c4d0 e021 movs r1, 0xe0 ; 224
| || 0x0804c4d2 a977 strb r1, [r5, 0x1e]
| ,===< 0x0804c4d4 01e0 b 0x804c4da
| ||`-> 0x0804c4d6 a021 movs r1, 0xa0 ; 160
| || 0x0804c4d8 a977 strb r1, [r5, 0x1e]
| `---> 0x0804c4da 80b2 uxth r0, r0
| | 0x0804c4dc 010a lsrs r1, r0, 8
| | 0x0804c4de e977 strb r1, [r5, 0x1f]
| | 0x0804c4e0 50f08000 orrs r0, r0, 0x80
| | 0x0804c4e4 85f82000 strb.w r0, [r5, 0x20]
| | 0x0804c4e8 0420 movs r0, 4 ; 4
| | 0x0804c4ea 85f82100 strb.w r0, [r5, 0x21]
| | 0x0804c4ee 0d20 movs r0, 0xd ; 13
| | 0x0804c4f0 85f82200 strb.w r0, [r5, 0x22]
| | 0x0804c4f4 0020 movs r0, 0
| | 0x0804c4f6 85f82300 strb.w r0, [r5, 0x23]
| | 0x0804c4fa 0a20 movs r0, 0xa ; 10
| | 0x0804c4fc 85f82400 strb.w r0, [r5, 0x24]
| | 0x0804c500 0020 movs r0, 0
| | 0x0804c502 85f82500 strb.w r0, [r5, 0x25]
| `--> 0x0804c506 0c20 movs r0, 0xc ; 12
| 0x0804c508 2872 strb r0, [r5, 8]
| 0x0804c50a dff84c07 ldr.w r0, [0x0804cc5e] ; [0x804cc5c:4]=0x20004ab0
| 0x0804c50e 4068 ldr r0, [r0, 4]
| 0x0804c510 000c lsrs r0, r0, 0x10
| 0x0804c512 6872 strb r0, [r5, 9]
| 0x0804c514 dff84007 ldr.w r0, [0x0804cc5c] ; [0x804cc5c:4]=0x20004ab0
| 0x0804c518 4068 ldr r0, [r0, 4]
| 0x0804c51a 000a lsrs r0, r0, 8
| 0x0804c51c a872 strb r0, [r5, 0xa]
| 0x0804c51e dff83807 ldr.w r0, [0x0804cc5e] ; [0x804cc5c:4]=0x20004ab0
| 0x0804c522 4068 ldr r0, [r0, 4]
| 0x0804c524 e872 strb r0, [r5, 0xb]
| 0x0804c526 f6b2 uxtb r6, r6
| 0x0804c528 312e cmp r6, 0x31 ; '1' ; 49
| ,=< 0x0804c52a 02d1 bne 0x804c532
| | 0x0804c52c ff20 movs r0, 0xff ; 255
| | 0x0804c52e 2873 strb r0, [r5, 0xc]
| ,==< 0x0804c530 07e0 b 0x804c542
| |`-> 0x0804c532 f6b2 uxtb r6, r6
| | 0x0804c534 112e cmp r6, 0x11 ; 17
| |,=< 0x0804c536 02d1 bne 0x804c53e
| || 0x0804c538 e120 movs r0, 0xe1 ; 225
| || 0x0804c53a 2873 strb r0, [r5, 0xc]
| ,===< 0x0804c53c 01e0 b 0x804c542
| ||`-> 0x0804c53e 0c20 movs r0, 0xc ; 12
| || 0x0804c540 2873 strb r0, [r5, 0xc]
| ``--> 0x0804c542 380c lsrs r0, r7, 0x10
| 0x0804c544 6873 strb r0, [r5, 0xd]
| 0x0804c546 380a lsrs r0, r7, 8
| 0x0804c548 a873 strb r0, [r5, 0xe]
| 0x0804c54a ef73 strb r7, [r5, 0xf]
| 0x0804c54c 0020 movs r0, 0
| 0x0804c54e 2874 strb r0, [r5, 0x10]
| 0x0804c550 1120 movs r0, 0x11 ; 17
| 0x0804c552 6874 strb r0, [r5, 0x11]
| 0x0804c554 e4b2 uxtb r4, r4
| 0x0804c556 012c cmp r4, 1 ; 1
| ,=< 0x0804c558 04d1 bne 0x804c564
| | 0x0804c55a 0020 movs r0, 0
| | 0x0804c55c a874 strb r0, [r5, 0x12]
| | 0x0804c55e 0d20 movs r0, 0xd ; 13
| | 0x0804c560 e874 strb r0, [r5, 0x13]
| ,==< 0x0804c562 08e0 b 0x804c576
| |`-> 0x0804c564 1ffa88f8 uxth.w r8, r8
| | 0x0804c568 18f11200 adds.w r0, r8, 0x12
| | 0x0804c56c 0012 asrs r0, r0, 8
| | 0x0804c56e a874 strb r0, [r5, 0x12]
| | 0x0804c570 18f11200 adds.w r0, r8, 0x12
| | 0x0804c574 e874 strb r0, [r5, 0x13]
| `--> 0x0804c576 e4b2 uxtb r4, r4
| 0x0804c578 012c cmp r4, 1 ; 1
| ,=< 0x0804c57a 05d1 bne 0x804c588
| | 0x0804c57c 1921 movs r1, 0x19 ; 25
| | 0x0804c57e 15f10800 adds.w r0, r5, 8
| | 0x0804c582 fff733ff bl func_4c3ec
| ,==< 0x0804c586 06e0 b 0x804c596
| |`-> 0x0804c588 18f11e01 adds.w r1, r8, 0x1e
| | 0x0804c58c 89b2 uxth r1, r1
| | 0x0804c58e 15f10800 adds.w r0, r5, 8
| | 0x0804c592 fff72bff bl func_4c3ec
| `--> 0x0804c596 80b2 uxth r0, r0
| 0x0804c598 010a lsrs r1, r0, 8
| 0x0804c59a e976 strb r1, [r5, 0x1b]
| 0x0804c59c a876 strb r0, [r5, 0x1a]
| 0x0804c59e 4520 movs r0, 0x45 ; 'E' ; 69
| 0x0804c5a0 2870 strb r0, [r5]
| 0x0804c5a2 0020 movs r0, 0
| 0x0804c5a4 6870 strb r0, [r5, 1]
| 0x0804c5a6 e4b2 uxtb r4, r4
| 0x0804c5a8 012c cmp r4, 1 ; 1
| ,=< 0x0804c5aa 04d1 bne 0x804c5b6
| | 0x0804c5ac 0020 movs r0, 0
| | 0x0804c5ae a870 strb r0, [r5, 2]
| | 0x0804c5b0 2120 movs r0, 0x21 ; '!' ; 33
| | 0x0804c5b2 e870 strb r0, [r5, 3]
| ,==< 0x0804c5b4 08e0 b 0x804c5c8
| |`-> 0x0804c5b6 1ffa88f8 uxth.w r8, r8
| | 0x0804c5ba 18f12600 adds.w r0, r8, 0x26
| | 0x0804c5be 0012 asrs r0, r0, 8
| | 0x0804c5c0 a870 strb r0, [r5, 2]
| | 0x0804c5c2 18f12600 adds.w r0, r8, 0x26
| | 0x0804c5c6 e870 strb r0, [r5, 3]
| `--> 0x0804c5c8 0698 ldr r0, [sp, 0x18]
| 0x0804c5ca 80b2 uxth r0, r0
| 0x0804c5cc 010a lsrs r1, r0, 8
| 0x0804c5ce 2971 strb r1, [r5, 4]
| 0x0804c5d0 6871 strb r0, [r5, 5]
| 0x0804c5d2 0020 movs r0, 0
| 0x0804c5d4 a871 strb r0, [r5, 6]
| 0x0804c5d6 0020 movs r0, 0
| 0x0804c5d8 e871 strb r0, [r5, 7]
| 0x0804c5da 4020 movs r0, 0x40 ; '@' ; 64
| 0x0804c5dc 2872 strb r0, [r5, 8]
| 0x0804c5de 1120 movs r0, 0x11 ; 17
| 0x0804c5e0 6872 strb r0, [r5, 9]
| 0x0804c5e2 0c20 movs r0, 0xc ; 12
| 0x0804c5e4 2873 strb r0, [r5, 0xc]
| 0x0804c5e6 dff87006 ldr.w r0, [0x0804cc5e] ; [0x804cc5c:4]=0x20004ab0
| 0x0804c5ea 4068 ldr r0, [r0, 4]
| 0x0804c5ec 000c lsrs r0, r0, 0x10
| 0x0804c5ee 6873 strb r0, [r5, 0xd]
| 0x0804c5f0 dff86406 ldr.w r0, [0x0804cc5c] ; [0x804cc5c:4]=0x20004ab0
| 0x0804c5f4 4068 ldr r0, [r0, 4]
| 0x0804c5f6 000a lsrs r0, r0, 8
| 0x0804c5f8 a873 strb r0, [r5, 0xe]
| 0x0804c5fa dff85c06 ldr.w r0, [0x0804cc5e] ; [0x804cc5c:4]=0x20004ab0
| 0x0804c5fe 4068 ldr r0, [r0, 4]
| 0x0804c600 e873 strb r0, [r5, 0xf]
| 0x0804c602 f6b2 uxtb r6, r6
| 0x0804c604 312e cmp r6, 0x31 ; '1' ; 49
| ,=< 0x0804c606 02d1 bne 0x804c60e
| | 0x0804c608 ff20 movs r0, 0xff ; 255
| | 0x0804c60a 2874 strb r0, [r5, 0x10]
| ,==< 0x0804c60c 07e0 b 0x804c61e
| |`-> 0x0804c60e f6b2 uxtb r6, r6
| | 0x0804c610 112e cmp r6, 0x11 ; 17
| |,=< 0x0804c612 02d1 bne 0x804c61a
| || 0x0804c614 e120 movs r0, 0xe1 ; 225
| || 0x0804c616 2874 strb r0, [r5, 0x10]
| ,===< 0x0804c618 01e0 b 0x804c61e
| ||`-> 0x0804c61a 0c20 movs r0, 0xc ; 12
| || 0x0804c61c 2874 strb r0, [r5, 0x10]
| ``--> 0x0804c61e 380c lsrs r0, r7, 0x10
| 0x0804c620 6874 strb r0, [r5, 0x11]
| 0x0804c622 380a lsrs r0, r7, 8
| 0x0804c624 a874 strb r0, [r5, 0x12]
| 0x0804c626 ef74 strb r7, [r5, 0x13]
| 0x0804c628 0020 movs r0, 0
| 0x0804c62a e872 strb r0, [r5, 0xb]
| 0x0804c62c 0020 movs r0, 0
| 0x0804c62e a872 strb r0, [r5, 0xa]
| 0x0804c630 1421 movs r1, 0x14 ; 20
| 0x0804c632 2800 movs r0, r5
| 0x0804c634 fff7dafe bl func_4c3ec
| 0x0804c638 80b2 uxth r0, r0
| 0x0804c63a 010a lsrs r1, r0, 8
| 0x0804c63c e972 strb r1, [r5, 0xb]
| 0x0804c63e a872 strb r0, [r5, 0xa]
| 0x0804c640 a878 ldrb r0, [r5, 2]
| 0x0804c642 0002 lsls r0, r0, 8
| 0x0804c644 e978 ldrb r1, [r5, 3]
| 0x0804c646 4018 adds r0, r0, r1
| 0x0804c648 80b2 uxth r0, r0
\ 0x0804c64a bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) func_4c64e 308
| Caller: ev5_20
| func_4c64e ();
| 0x0804c64e 38b5 push {r3, r4, r5, lr}
| 0x0804c650 0400 movs r4, r0
| 0x0804c652 0d00 movs r5, r1
| 0x0804c654 1421 movs r1, 0x14 ; 20
| 0x0804c656 2000 movs r0, r4
| 0x0804c658 fff7c8fe bl func_4c3ec
| 0x0804c65c 80b2 uxth r0, r0
| 0x0804c65e 0028 cmp r0, 0
| ,=< 0x0804c660 01d0 beq 0x804c666
| | 0x0804c662 0020 movs r0, 0
| ,==< 0x0804c664 8ce0 b 0x804c780
| |`-> 0x0804c666 dff8f405 ldr.w r0, [0x0804cc62] ; [0x804cc60:4]=0x2001e6d4
| | 0x0804c66a 0088 ldrh r0, [r0]
| | 0x0804c66c 2179 ldrb r1, [r4, 4]
| | 0x0804c66e 0902 lsls r1, r1, 8
| | 0x0804c670 6279 ldrb r2, [r4, 5]
| | 0x0804c672 8918 adds r1, r1, r2
| | 0x0804c674 8842 cmp r0, r1
| |,=< 0x0804c676 06d1 bne 0x804c686
| || 0x0804c678 dff8e005 ldr.w r0, [0x0804cc60] ; [0x804cc60:4]=0x2001e6d4
| || 0x0804c67c 0088 ldrh r0, [r0]
| || 0x0804c67e 0028 cmp r0, 0
| ,===< 0x0804c680 01d0 beq 0x804c686
| ||| 0x0804c682 0020 movs r0, 0
| ,====< 0x0804c684 7ce0 b 0x804c780
| |`-`-> 0x0804c686 2079 ldrb r0, [r4, 4]
| | | 0x0804c688 0002 lsls r0, r0, 8
| | | 0x0804c68a 6179 ldrb r1, [r4, 5]
| | | 0x0804c68c 4018 adds r0, r0, r1
| | | 0x0804c68e dff8cc15 ldr.w r1, [0x0804cc62] ; [0x804cc60:4]=0x2001e6d4
| | | 0x0804c692 0880 strh r0, [r1]
| | | 0x0804c694 207b ldrb r0, [r4, 0xc]
| | | 0x0804c696 617b ldrb r1, [r4, 0xd]
| | | 0x0804c698 0904 lsls r1, r1, 0x10
| | | 0x0804c69a 11eb0060 adds.w r0, r1, r0, lsl 24
| | | 0x0804c69e a17b ldrb r1, [r4, 0xe]
| | | 0x0804c6a0 10eb0120 adds.w r0, r0, r1, lsl 8
| | | 0x0804c6a4 e17b ldrb r1, [r4, 0xf]
| | | 0x0804c6a6 4018 adds r0, r0, r1
| | | 0x0804c6a8 dff8b415 ldr.w r1, [0x0804cc64] ; [0x804cc64:4]=0x2001e6d8
| | | 0x0804c6ac 0860 str r0, [r1]
| | | 0x0804c6ae 207c ldrb r0, [r4, 0x10]
| | | 0x0804c6b0 617c ldrb r1, [r4, 0x11]
| | | 0x0804c6b2 0904 lsls r1, r1, 0x10
| | | 0x0804c6b4 11eb0060 adds.w r0, r1, r0, lsl 24
| | | 0x0804c6b8 a17c ldrb r1, [r4, 0x12]
| | | 0x0804c6ba 10eb0120 adds.w r0, r0, r1, lsl 8
| | | 0x0804c6be e17c ldrb r1, [r4, 0x13]
| | | 0x0804c6c0 4018 adds r0, r0, r1
| | | 0x0804c6c2 dff8a015 ldr.w r1, [0x0804cc6a] ; [0x804cc68:4]=0x2001e816
| | | 0x0804c6c6 0860 str r0, [r1]
| | | 0x0804c6c8 0820 movs r0, 8 ; 8
| | |,=< 0x0804c6ca 05e0 b 0x804c6d8
| |.---> 0x0804c6cc 80b2 uxth r0, r0
| |||| 0x0804c6ce 0119 adds r1, r0, r4
| |||| 0x0804c6d0 0979 ldrb r1, [r1, 4]
| |||| 0x0804c6d2 80b2 uxth r0, r0
| |||| 0x0804c6d4 0155 strb r1, [r0, r4]
| |||| 0x0804c6d6 401c adds r0, r0, 1
| |||`-> 0x0804c6d8 80b2 uxth r0, r0
| ||| 0x0804c6da 1028 cmp r0, 0x10 ; 16
| |`===< 0x0804c6dc f6d3 blo 0x804c6cc
| | | 0x0804c6de 0020 movs r0, 0
| | | 0x0804c6e0 2074 strb r0, [r4, 0x10]
| | | 0x0804c6e2 1120 movs r0, 0x11 ; 17
| | | 0x0804c6e4 6074 strb r0, [r4, 0x11]
| | | 0x0804c6e6 207e ldrb r0, [r4, 0x18]
| | | 0x0804c6e8 a074 strb r0, [r4, 0x12]
| | | 0x0804c6ea 607e ldrb r0, [r4, 0x19]
| | | 0x0804c6ec e074 strb r0, [r4, 0x13]
| | | 0x0804c6ee b5f10801 subs.w r1, r5, 8
| | | 0x0804c6f2 89b2 uxth r1, r1
| | | 0x0804c6f4 14f10800 adds.w r0, r4, 8
| | | 0x0804c6f8 fff778fe bl func_4c3ec
| | | 0x0804c6fc 80b2 uxth r0, r0
| | | 0x0804c6fe 0028 cmp r0, 0
| | |,=< 0x0804c700 01d0 beq 0x804c706
| | || 0x0804c702 0020 movs r0, 0
| |,===< 0x0804c704 3ce0 b 0x804c780
| |||`-> 0x0804c706 e07f ldrb r0, [r4, 0x1f]
| ||| 0x0804c708 0002 lsls r0, r0, 8
| ||| 0x0804c70a 94f82010 ldrb.w r1, [r4, 0x20]
| ||| 0x0804c70e 4018 adds r0, r0, r1
| ||| 0x0804c710 dff85415 ldr.w r1, [0x0804cc6c] ; [0x804cc6c:4]=0x2001cb9a md380_menu_edit_buf
| ||| 0x0804c714 0880 strh r0, [r1]
| ||| 0x0804c716 a07f ldrb r0, [r4, 0x1e]
| ||| 0x0804c718 bf28 cmp r0, 0xbf ; 191
| |||,=< 0x0804c71a 30d0 beq 0x804c77e
| |||| 0x0804c71c 94f82200 ldrb.w r0, [r4, 0x22]
| |||| 0x0804c720 0d28 cmp r0, 0xd ; 13
| ,=====< 0x0804c722 1cd1 bne 0x804c75e
| ||||| 0x0804c724 94f82300 ldrb.w r0, [r4, 0x23]
| ||||| 0x0804c728 0028 cmp r0, 0
| ,======< 0x0804c72a 18d1 bne 0x804c75e
| |||||| 0x0804c72c 94f82400 ldrb.w r0, [r4, 0x24]
| |||||| 0x0804c730 0a28 cmp r0, 0xa ; 10
| ,=======< 0x0804c732 14d1 bne 0x804c75e
| ||||||| 0x0804c734 94f82500 ldrb.w r0, [r4, 0x25]
| ||||||| 0x0804c738 0028 cmp r0, 0
| ========< 0x0804c73a 10d1 bne 0x804c75e
| ||||||| 0x0804c73c 263d subs r5, 0x26
| ||||||| 0x0804c73e 40f22110 movw r0, 0x121 ; 289
| ||||||| 0x0804c742 adb2 uxth r5, r5
| ||||||| 0x0804c744 8542 cmp r5, r0
| ========< 0x0804c746 01d3 blo 0x804c74c
| ||||||| 0x0804c748 4ff49075 mov.w r5, 0x120 ; 288
| --------> 0x0804c74c dff81c25 ldr.w r2, [0x0804cc70] ; [0x804cc70:4]=0x20018490 msg_buff_complete ; md380_menu_edit_buf
| ||||||| 0x0804c750 2900 movs r1, r5
| ||||||| 0x0804c752 89b2 uxth r1, r1
| ||||||| 0x0804c754 14f12600 adds.w r0, r4, 0x26
| ||||||| 0x0804c758 00f013f8 bl func_4c782
| ========< 0x0804c75c 0fe0 b 0x804c77e
| ```-----> 0x0804c75e 223d subs r5, 0x22
| |||| 0x0804c760 40f22110 movw r0, 0x121 ; 289
| |||| 0x0804c764 adb2 uxth r5, r5
| |||| 0x0804c766 8542 cmp r5, r0
| ,=====< 0x0804c768 01d3 blo 0x804c76e
| ||||| 0x0804c76a 4ff49075 mov.w r5, 0x120 ; 288
| `-----> 0x0804c76e dff8fc24 ldr.w r2, [0x0804cc72] ; [0x804cc70:4]=0x20018490 msg_buff_complete ; md380_menu_edit_buf
| |||| 0x0804c772 2900 movs r1, r5
| |||| 0x0804c774 89b2 uxth r1, r1
| |||| 0x0804c776 14f12200 adds.w r0, r4, 0x22
| |||| 0x0804c77a 00f002f8 bl func_4c782
| ------`-> 0x0804c77e a07f ldrb r0, [r4, 0x1e]
\ ```--> 0x0804c780 32bd pop {r1, r4, r5, pc}
/ (fcn) func_4c782 52
| Caller: func_4c64e
| func_4c782 ();
| 0x0804c782 10b4 push {r4}
| 0x0804c784 0023 movs r3, 0
| ,=< 0x0804c786 04e0 b 0x804c792
| .--> 0x0804c788 9bb2 uxth r3, r3
| || 0x0804c78a 9bb2 uxth r3, r3
| || 0x0804c78c 1c5c ldrb r4, [r3, r0]
| || 0x0804c78e 9c54 strb r4, [r3, r2]
| || 0x0804c790 5b1c adds r3, r3, 1
| |`-> 0x0804c792 9bb2 uxth r3, r3
| | 0x0804c794 89b2 uxth r1, r1
| | 0x0804c796 8b42 cmp r3, r1
| `==< 0x0804c798 f6d3 blo 0x804c788
| 0x0804c79a 40f21f10 movw r0, 0x11f ; 287
| 0x0804c79e 89b2 uxth r1, r1
| 0x0804c7a0 8142 cmp r1, r0
| ,=< 0x0804c7a2 06d2 bhs 0x804c7b2
| | 0x0804c7a4 9bb2 uxth r3, r3
| | 0x0804c7a6 0020 movs r0, 0
| | 0x0804c7a8 9854 strb r0, [r3, r2]
| | 0x0804c7aa 9bb2 uxth r3, r3
| | 0x0804c7ac 9818 adds r0, r3, r2
| | 0x0804c7ae 0021 movs r1, 0
| | 0x0804c7b0 4170 strb r1, [r0, 1]
| `-> 0x0804c7b2 10bc pop {r4}
\ 0x0804c7b4 7047 bx lr
/ (fcn) func_4c7b6 162
| Caller: msg_handle_types
| func_4c7b6 ();
| 0x0804c7b6 30b4 push {r4, r5}
| 0x0804c7b8 0300 movs r3, r0
| 0x0804c7ba 0020 movs r0, 0
| ,=< 0x0804c7bc 0de0 b 0x804c7da
| ..--> 0x0804c7be 80b2 uxth r0, r0
| ||| 0x0804c7c0 8418 adds r4, r0, r2
| ||| 0x0804c7c2 80b2 uxth r0, r0
| ||| 0x0804c7c4 c55c ldrb r5, [r0, r3]
| ||| 0x0804c7c6 84f82650 strb.w r5, [r4, 0x26]
| ||| 0x0804c7ca 80b2 uxth r0, r0
| ||| 0x0804c7cc 8418 adds r4, r0, r2
| ||| 0x0804c7ce 80b2 uxth r0, r0
| ||| 0x0804c7d0 c518 adds r5, r0, r3
| ||| 0x0804c7d2 6d78 ldrb r5, [r5, 1]
| ||| 0x0804c7d4 84f82750 strb.w r5, [r4, 0x27]
| ||| 0x0804c7d8 801c adds r0, r0, 2
| ||`-> 0x0804c7da 80b2 uxth r0, r0
| || 0x0804c7dc 89b2 uxth r1, r1
| || 0x0804c7de 4c1e subs r4, r1, 1
| || 0x0804c7e0 a042 cmp r0, r4
| ||,=< 0x0804c7e2 2cda bge 0x804c83e
| ||| 0x0804c7e4 80b2 uxth r0, r0
| ||| 0x0804c7e6 c45c ldrb r4, [r0, r3]
| ||| 0x0804c7e8 ff2c cmp r4, 0xff ; 255
| ,====< 0x0804c7ea 10d1 bne 0x804c80e
| |||| 0x0804c7ec 80b2 uxth r0, r0
| |||| 0x0804c7ee c418 adds r4, r0, r3
| |||| 0x0804c7f0 6478 ldrb r4, [r4, 1]
| |||| 0x0804c7f2 ff2c cmp r4, 0xff ; 255
| ,=====< 0x0804c7f4 0bd1 bne 0x804c80e
| ||||| 0x0804c7f6 80b2 uxth r0, r0
| ||||| 0x0804c7f8 8118 adds r1, r0, r2
| ||||| 0x0804c7fa 0023 movs r3, 0
| ||||| 0x0804c7fc 81f82630 strb.w r3, [r1, 0x26]
| ||||| 0x0804c800 80b2 uxth r0, r0
| ||||| 0x0804c802 8118 adds r1, r0, r2
| ||||| 0x0804c804 0022 movs r2, 0
| ||||| 0x0804c806 81f82720 strb.w r2, [r1, 0x27]
| ||||| 0x0804c80a 80b2 uxth r0, r0
| ,======< 0x0804c80c 22e0 b 0x804c854
| |``----> 0x0804c80e 80b2 uxth r0, r0
| | ||| 0x0804c810 c45c ldrb r4, [r0, r3]
| | ||| 0x0804c812 002c cmp r4, 0
| | `===< 0x0804c814 d3d1 bne 0x804c7be
| | || 0x0804c816 80b2 uxth r0, r0
| | || 0x0804c818 c418 adds r4, r0, r3
| | || 0x0804c81a 6478 ldrb r4, [r4, 1]
| | || 0x0804c81c 002c cmp r4, 0
| | `==< 0x0804c81e ced1 bne 0x804c7be
| | | 0x0804c820 80b2 uxth r0, r0
| | | 0x0804c822 8118 adds r1, r0, r2
| | | 0x0804c824 80b2 uxth r0, r0
| | | 0x0804c826 c45c ldrb r4, [r0, r3]
| | | 0x0804c828 81f82640 strb.w r4, [r1, 0x26]
| | | 0x0804c82c 80b2 uxth r0, r0
| | | 0x0804c82e 8118 adds r1, r0, r2
| | | 0x0804c830 80b2 uxth r0, r0
| | | 0x0804c832 c218 adds r2, r0, r3
| | | 0x0804c834 5278 ldrb r2, [r2, 1]
| | | 0x0804c836 81f82720 strb.w r2, [r1, 0x27]
| | | 0x0804c83a 80b2 uxth r0, r0
| | ,==< 0x0804c83c 0ae0 b 0x804c854
| | |`-> 0x0804c83e 80b2 uxth r0, r0
| | | 0x0804c840 8118 adds r1, r0, r2
| | | 0x0804c842 0023 movs r3, 0
| | | 0x0804c844 81f82630 strb.w r3, [r1, 0x26]
| | | 0x0804c848 80b2 uxth r0, r0
| | | 0x0804c84a 8118 adds r1, r0, r2
| | | 0x0804c84c 0022 movs r2, 0
| | | 0x0804c84e 81f82720 strb.w r2, [r1, 0x27]
| | | 0x0804c852 80b2 uxth r0, r0
| `---`--> 0x0804c854 30bc pop {r4, r5}
\ 0x0804c856 7047 bx lr
/ (fcn) msg_handle_types 484
| Caller: msg_process_sms2
| msg_handle_types ();
| 0x0804c858 3eb5 push {r1, r2, r3, r4, r5, lr}
| 0x0804c85a 0400 movs r4, r0
| 0x0804c85c 0d00 movs r5, r1
| 0x0804c85e 1000 movs r0, r2
| 0x0804c860 1900 movs r1, r3
| 0x0804c862 dff80c24 ldr.w r2, [0x0804cc76] ; [0x804cc74:4]=0x2001e81a
| 0x0804c866 89b2 uxth r1, r1
| 0x0804c868 fff7a5ff bl func_4c7b6
| 0x0804c86c dff80414 ldr.w r1, [0x0804cc78] ; [0x804cc78:4]=0x2001e902
| 0x0804c870 0880 strh r0, [r1]
| 0x0804c872 e4b2 uxtb r4, r4
| 0x0804c874 2000 movs r0, r4
| 0x0804c876 1128 cmp r0, 0x11 ; 17
| ,=< 0x0804c878 00f0e080 beq.w msg_handle_type_11
| | 0x0804c87c 2128 cmp r0, 0x21 ; '!' ; 33
| ,==< 0x0804c87e 03d0 beq 0x804c888
| || 0x0804c880 3128 cmp r0, 0x31 ; '1' ; 49
| ,===< 0x0804c882 00f0db80 beq.w msg_handle_type_11
| ,====< 0x0804c886 3be1 b msg_handle_type_other
| ||`--> ;-- msg_handle_type_21:
| ||`--> 0x0804c888 dff8ec03 ldr.w r0, [0x0804cc7c] ; [0x804cc7c:4]=0x2001de78 struct_channel_info2
| || | 0x0804c88c 0121 movs r1, 1 ; 1
| || | 0x0804c88e 0170 strb r1, [r0]
| || | 0x0804c890 dff8e803 ldr.w r0, [0x0804cc80] ; [0x804cc80:4]=0x2001e901
| || | 0x0804c894 8078 ldrb r0, [r0, 2]
| || | 0x0804c896 0006 lsls r0, r0, 0x18
| ||,==< 0x0804c898 70d5 bpl 0x804c97c
| |||| 0x0804c89a dff8e403 ldr.w r0, [0x0804cc86] ; [0x804cc84:4]=0x2001e818
| |||| 0x0804c89e 0121 movs r1, 1 ; 1
| |||| 0x0804c8a0 0170 strb r1, [r0]
| |||| 0x0804c8a2 0020 movs r0, 0
| |||| 0x0804c8a4 0290 str r0, [sp, 8]
| |||| 0x0804c8a6 dff8dc03 ldr.w r0, [0x0804cc8a] ; [0x804cc88:4]=0x2001e814
| |||| 0x0804c8aa 0088 ldrh r0, [r0]
| |||| 0x0804c8ac 0190 str r0, [sp, 4]
| |||| 0x0804c8ae dff8d803 ldr.w r0, [0x0804cc8e] ; [0x804cc8c:4]=0x2001e8b1
| |||| 0x0804c8b2 0088 ldrh r0, [r0]
| |||| 0x0804c8b4 0090 str r0, [sp]
| |||| 0x0804c8b6 2b00 movs r3, r5
| |||| 0x0804c8b8 2200 movs r2, r4
| |||| 0x0804c8ba d2b2 uxtb r2, r2
| |||| 0x0804c8bc dff8b403 ldr.w r0, [0x0804cc78] ; [0x804cc78:4]=0x2001e902
| |||| 0x0804c8c0 0188 ldrh r1, [r0]
| |||| 0x0804c8c2 dff8ac03 ldr.w r0, [0x0804cc76] ; [0x804cc74:4]=0x2001e81a
| |||| 0x0804c8c6 fff7befd bl func_4c446
| |||| 0x0804c8ca dff8a813 ldr.w r1, [0x0804cc7a] ; [0x804cc78:4]=0x2001e902
| |||| 0x0804c8ce 0880 strh r0, [r1]
| |||| 0x0804c8d0 dff8b803 ldr.w r0, [0x0804cc90] ; [0x804cc90:4]=0x2001e8ad
| |||| 0x0804c8d4 1021 movs r1, 0x10 ; 16
| |||| 0x0804c8d6 0170 strb r1, [r0]
| |||| 0x0804c8d8 dff8b003 ldr.w r0, [0x0804cc90] ; [0x804cc90:4]=0x2001e8ad
| |||| 0x0804c8dc 0178 ldrb r1, [r0]
| |||| 0x0804c8de dff89403 ldr.w r0, [0x0804cc7a] ; [0x804cc78:4]=0x2001e902
| |||| 0x0804c8e2 0088 ldrh r0, [r0]
| |||| 0x0804c8e4 00f04dfa bl 0x804cd82
| |||| 0x0804c8e8 80b2 uxth r0, r0
| |||| 0x0804c8ea 010a lsrs r1, r0, 8
| |||| 0x0804c8ec dff8a023 ldr.w r2, [0x0804cc94] ; [0x804cc94:4]=0x2001e8b2
| |||| 0x0804c8f0 1170 strb r1, [r2]
| |||| 0x0804c8f2 dff8a013 ldr.w r1, [0x0804cc9a] ; [0x804cc98:4]=0x2001e5d8
| |||| 0x0804c8f6 0870 strb r0, [r1]
| |||| 0x0804c8f8 dff89803 ldr.w r0, [0x0804cc98] ; [0x804cc98:4]=0x2001e5d8
| |||| 0x0804c8fc 0278 ldrb r2, [r0]
| |||| 0x0804c8fe dff87403 ldr.w r0, [0x0804cc7a] ; [0x804cc78:4]=0x2001e902
| |||| 0x0804c902 0188 ldrh r1, [r0]
| |||| 0x0804c904 dff86803 ldr.w r0, [0x0804cc74] ; [0x804cc74:4]=0x2001e81a
| |||| 0x0804c908 00f0d8f9 bl func_4ccbc
| |||| 0x0804c90c dff88813 ldr.w r1, [0x0804cc9c] ; [0x804cc9c:4]=0x2001e8bc
| |||| 0x0804c910 0860 str r0, [r1]
| |||| 0x0804c912 dff88803 ldr.w r0, [0x0804cca2] ; [0x804cca0:4]=0x2001e8ae
| |||| 0x0804c916 8021 movs r1, 0x80 ; 128
| |||| 0x0804c918 0170 strb r1, [r0]
| |||| 0x0804c91a dff88403 ldr.w r0, [0x0804cca6] ; [0x804cca4:4]=0x2001e8b3
| |||| 0x0804c91e 0121 movs r1, 1 ; 1
| |||| 0x0804c920 0170 strb r1, [r0]
| |||| 0x0804c922 dff87003 ldr.w r0, [0x0804cc9a] ; [0x804cc98:4]=0x2001e5d8
| |||| 0x0804c926 0078 ldrb r0, [r0]
| |||| 0x0804c928 10f01000 ands r0, r0, 0x10
| |||| 0x0804c92c 90f04300 eors r0, r0, 0x43
| |||| 0x0804c930 dff87013 ldr.w r1, [0x0804cca8] ; [0x804cca8:4]=0x2001e8b4
| |||| 0x0804c934 0870 strb r0, [r1]
| |||| 0x0804c936 dff85c03 ldr.w r0, [0x0804cc9a] ; [0x804cc98:4]=0x2001e5d8
| |||| 0x0804c93a 0078 ldrb r0, [r0]
| |||| 0x0804c93c 10f00f00 ands r0, r0, 0xf
| |||| 0x0804c940 90f04000 eors r0, r0, 0x40
| |||| 0x0804c944 dff86013 ldr.w r1, [0x0804ccac] ; [0x804ccac:4]=0x2001e8b5
| |||| 0x0804c948 0870 strb r0, [r1]
| |||| 0x0804c94a dff84403 ldr.w r0, [0x0804cc96] ; [0x804cc94:4]=0x2001e8b2
| |||| 0x0804c94e 0078 ldrb r0, [r0]
| |||| 0x0804c950 dff84c13 ldr.w r1, [0x0804cca4] ; [0x804cca4:4]=0x2001e8b3
| |||| 0x0804c954 0978 ldrb r1, [r1]
| |||| 0x0804c956 0818 adds r0, r1, r0
| |||| 0x0804c958 401e subs r0, r0, 1
| |||| 0x0804c95a 50f08000 orrs r0, r0, 0x80
| |||| 0x0804c95e dff84c13 ldr.w r1, [0x0804ccb2] ; [0x804ccb0:4]=0x2001e86c
| |||| 0x0804c962 0870 strb r0, [r1]
| |||| 0x0804c964 dff84803 ldr.w r0, [0x0804ccb4] ; [0x804ccb4:4]=0x2001e8b6
| |||| 0x0804c968 0078 ldrb r0, [r0]
| |||| 0x0804c96a 0001 lsls r0, r0, 4
| |||| 0x0804c96c 90f00800 eors r0, r0, 8
| |||| 0x0804c970 dff84013 ldr.w r1, [0x0804ccb8] ; [0x804ccb8:4]=0x2001e8ac
| |||| 0x0804c974 0870 strb r0, [r1]
| |||| 0x0804c976 f0f7ddf8 bl c5000_set_local_addr2
| ,=====< 0x0804c97a 5ee0 b 0x804ca3a
| |||`--> 0x0804c97c dff80003 ldr.w r0, [0x0804cc84] ; [0x804cc84:4]=0x2001e818
| ||| | 0x0804c980 0021 movs r1, 0
| ||| | 0x0804c982 0170 strb r1, [r0]
| ||| | 0x0804c984 0020 movs r0, 0
| ||| | 0x0804c986 0290 str r0, [sp, 8]
| ||| | 0x0804c988 be48 ldr r0, [0x0804cc84] ; [0x804cc84:4]=0x2001e818
| ||| | 0x0804c98a 0088 ldrh r0, [r0]
| ||| | 0x0804c98c 0190 str r0, [sp, 4]
| ||| | 0x0804c98e be48 ldr r0, [0x0804cc8a] ; [0x804cc88:4]=0x2001e814
| ||| | 0x0804c990 0088 ldrh r0, [r0]
| ||| | 0x0804c992 0090 str r0, [sp]
| ||| | 0x0804c994 2b00 movs r3, r5
| ||| | 0x0804c996 2200 movs r2, r4
| ||| | 0x0804c998 d2b2 uxtb r2, r2
| ||| | 0x0804c99a b648 ldr r0, [0x0804cc76] ; [0x804cc74:4]=0x2001e81a
| ||| | 0x0804c99c 0188 ldrh r1, [r0]
| ||| | 0x0804c99e b448 ldr r0, [0x0804cc72] ; [0x804cc70:4]=0x20018490 msg_buff_complete
| ||| | 0x0804c9a0 fff751fd bl func_4c446
| ||| | 0x0804c9a4 b349 ldr r1, [0x0804cc74] ; [0x804cc74:4]=0x2001e81a
| ||| | 0x0804c9a6 0880 strh r0, [r1]
| ||| | 0x0804c9a8 b848 ldr r0, [0x0804cc8c] ; [0x804cc8c:4]=0x2001e8b1
| ||| | 0x0804c9aa 0c21 movs r1, 0xc ; 12
| ||| | 0x0804c9ac 0170 strb r1, [r0]
| ||| | 0x0804c9ae b748 ldr r0, [0x0804cc8e] ; [0x804cc8c:4]=0x2001e8b1
| ||| | 0x0804c9b0 0178 ldrb r1, [r0]
| ||| | 0x0804c9b2 b048 ldr r0, [0x0804cc76] ; [0x804cc74:4]=0x2001e81a
| ||| | 0x0804c9b4 0088 ldrh r0, [r0]
| ||| | 0x0804c9b6 00f0e4f9 bl 0x804cd82
| ||| | 0x0804c9ba 80b2 uxth r0, r0
| ||| | 0x0804c9bc 010a lsrs r1, r0, 8
| ||| | 0x0804c9be b44a ldr r2, [0x0804cc92] ; [0x804cc90:4]=0x2001e8ad
| ||| | 0x0804c9c0 1170 strb r1, [r2]
| ||| | 0x0804c9c2 b449 ldr r1, [0x0804cc96] ; [0x804cc94:4]=0x2001e8b2
| ||| | 0x0804c9c4 0870 strb r0, [r1]
| ||| | 0x0804c9c6 b348 ldr r0, [0x0804cc96] ; [0x804cc94:4]=0x2001e8b2
| ||| | 0x0804c9c8 0278 ldrb r2, [r0]
| ||| | 0x0804c9ca aa48 ldr r0, [0x0804cc76] ; [0x804cc74:4]=0x2001e81a
| ||| | 0x0804c9cc 0188 ldrh r1, [r0]
| ||| | 0x0804c9ce a848 ldr r0, [0x0804cc72] ; [0x804cc70:4]=0x20018490 msg_buff_complete
| ||| | 0x0804c9d0 00f074f9 bl func_4ccbc
| ||| | 0x0804c9d4 b049 ldr r1, [0x0804cc98] ; [0x804cc98:4]=0x2001e5d8
| ||| | 0x0804c9d6 0860 str r0, [r1]
| ||| | 0x0804c9d8 b048 ldr r0, [0x0804cc9c] ; [0x804cc9c:4]=0x2001e8bc
| ||| | 0x0804c9da 7021 movs r1, 0x70 ; 'p' ; 112
| ||| | 0x0804c9dc 0170 strb r1, [r0]
| ||| | 0x0804c9de b048 ldr r0, [0x0804cca2] ; [0x804cca0:4]=0x2001e8ae
| ||| | 0x0804c9e0 0121 movs r1, 1 ; 1
| ||| | 0x0804c9e2 0170 strb r1, [r0]
| ||| | 0x0804c9e4 9c48 ldr r0, [0x0804cc58] ; [0x804cc58:4]=0x2001dadc md380_radio_config
| ||| | 0x0804c9e6 4078 ldrb r0, [r0, 1]
| ||| | 0x0804c9e8 c007 lsls r0, r0, 0x1f
| |||,==< 0x0804c9ea 04d5 bpl 0x804c9f6
| ||||| 0x0804c9ec 9a48 ldr r0, [0x0804cc58] ; [0x804cc58:4]=0x2001dadc md380_radio_config
| ||||| 0x0804c9ee 007a ldrb r0, [r0, 8]
| ||||| 0x0804c9f0 b149 ldr r1, [0x0804ccb8] ; [0x804ccb8:4]=0x2001e8ac
| ||||| 0x0804c9f2 0870 strb r0, [r1]
| ,======< 0x0804c9f4 02e0 b 0x804c9fc
| ||||`--> 0x0804c9f6 b048 ldr r0, [0x0804ccba] ; [0x804ccb8:4]=0x2001e8ac
| |||| | 0x0804c9f8 0221 movs r1, 2 ; 2
| |||| | 0x0804c9fa 0170 strb r1, [r0]
| `------> 0x0804c9fc a548 ldr r0, [0x0804cc94] ; [0x804cc94:4]=0x2001e8b2
| ||| | 0x0804c9fe 0078 ldrb r0, [r0]
| ||| | 0x0804ca00 10f01000 ands r0, r0, 0x10
| ||| | 0x0804ca04 90f00200 eors r0, r0, 2
| ||| | 0x0804ca08 a649 ldr r1, [0x0804cca4] ; [0x804cca4:4]=0x2001e8b3
| ||| | 0x0804ca0a 0870 strb r0, [r1]
| ||| | 0x0804ca0c a148 ldr r0, [0x0804cc94] ; [0x804cc94:4]=0x2001e8b2
| ||| | 0x0804ca0e 0078 ldrb r0, [r0]
| ||| | 0x0804ca10 10f00f00 ands r0, r0, 0xf
| ||| | 0x0804ca14 90f04000 eors r0, r0, 0x40
| ||| | 0x0804ca18 a349 ldr r1, [0x0804cca8] ; [0x804cca8:4]=0x2001e8b4
| ||| | 0x0804ca1a 0870 strb r0, [r1]
| ||| | 0x0804ca1c 9c48 ldr r0, [0x0804cc90] ; [0x804cc90:4]=0x2001e8ad
| ||| | 0x0804ca1e 0078 ldrb r0, [r0]
| ||| | 0x0804ca20 9f49 ldr r1, [0x0804cca0] ; [0x804cca0:4]=0x2001e8ae
| ||| | 0x0804ca22 0978 ldrb r1, [r1]
| ||| | 0x0804ca24 0818 adds r0, r1, r0
| ||| | 0x0804ca26 401e subs r0, r0, 1
| ||| | 0x0804ca28 50f08000 orrs r0, r0, 0x80
| ||| | 0x0804ca2c 9f49 ldr r1, [0x0804ccac] ; [0x804ccac:4]=0x2001e8b5
| ||| | 0x0804ca2e 0870 strb r0, [r1]
| ||| | 0x0804ca30 a048 ldr r0, [0x0804ccb4] ; [0x804ccb4:4]=0x2001e8b6
| ||| | 0x0804ca32 0021 movs r1, 0
| ||| | 0x0804ca34 0170 strb r1, [r0]
| ||| | 0x0804ca36 f0f77df8 bl c5000_set_local_addr2
\ `-----> 0x0804ca3a 37bd pop {r0, r1, r2, r4, r5, pc}
/ (fcn) msg_handle_type_11 196
| msg_handle_type_11 ();
| | 0x0804ca3c 9048 ldr r0, [0x0804cc80] ; [0x804cc80:4]=0x2001e901
| | 0x0804ca3e 0021 movs r1, 0
| | 0x0804ca40 0170 strb r1, [r0]
| | 0x0804ca42 8d48 ldr r0, [0x0804cc7a] ; [0x804cc78:4]=0x2001e902
| | 0x0804ca44 0021 movs r1, 0
| | 0x0804ca46 0170 strb r1, [r0]
| | 0x0804ca48 0020 movs r0, 0
| | 0x0804ca4a 0290 str r0, [sp, 8]
| | 0x0804ca4c 8d48 ldr r0, [0x0804cc84] ; [0x804cc84:4]=0x2001e818
| | 0x0804ca4e 0088 ldrh r0, [r0]
| | 0x0804ca50 0190 str r0, [sp, 4]
| | 0x0804ca52 8d48 ldr r0, [0x0804cc8a] ; [0x804cc88:4]=0x2001e814
| | 0x0804ca54 0088 ldrh r0, [r0]
| | 0x0804ca56 0090 str r0, [sp]
| | 0x0804ca58 2b00 movs r3, r5
| | 0x0804ca5a 2200 movs r2, r4
| | 0x0804ca5c d2b2 uxtb r2, r2
| | 0x0804ca5e 8548 ldr r0, [0x0804cc76] ; [0x804cc74:4]=0x2001e81a
| | 0x0804ca60 0188 ldrh r1, [r0]
| | 0x0804ca62 8348 ldr r0, [0x0804cc72] ; [0x804cc70:4]=0x20018490 msg_buff_complete
| | 0x0804ca64 fff7effc bl func_4c446
| | 0x0804ca68 8249 ldr r1, [0x0804cc74] ; [0x804cc74:4]=0x2001e81a
| | 0x0804ca6a 0880 strh r0, [r1]
| | 0x0804ca6c 8748 ldr r0, [0x0804cc8c] ; [0x804cc8c:4]=0x2001e8b1
| | 0x0804ca6e 0c21 movs r1, 0xc ; 12
| | 0x0804ca70 0170 strb r1, [r0]
| | 0x0804ca72 8648 ldr r0, [0x0804cc8e] ; [0x804cc8c:4]=0x2001e8b1
| | 0x0804ca74 0178 ldrb r1, [r0]
| | 0x0804ca76 7f48 ldr r0, [0x0804cc76] ; [0x804cc74:4]=0x2001e81a
| | 0x0804ca78 0088 ldrh r0, [r0]
| | 0x0804ca7a 00f082f9 bl 0x804cd82
| | 0x0804ca7e 80b2 uxth r0, r0
| | 0x0804ca80 010a lsrs r1, r0, 8
| | 0x0804ca82 834a ldr r2, [0x0804cc92] ; [0x804cc90:4]=0x2001e8ad
| | 0x0804ca84 1170 strb r1, [r2]
| | 0x0804ca86 8349 ldr r1, [0x0804cc96] ; [0x804cc94:4]=0x2001e8b2
| | 0x0804ca88 0870 strb r0, [r1]
| | 0x0804ca8a 8248 ldr r0, [0x0804cc96] ; [0x804cc94:4]=0x2001e8b2
| | 0x0804ca8c 0278 ldrb r2, [r0]
| | 0x0804ca8e 7948 ldr r0, [0x0804cc76] ; [0x804cc74:4]=0x2001e81a
| | 0x0804ca90 0188 ldrh r1, [r0]
| | 0x0804ca92 7748 ldr r0, [0x0804cc72] ; [0x804cc70:4]=0x20018490 msg_buff_complete
| | 0x0804ca94 00f012f9 bl func_4ccbc
| | 0x0804ca98 7f49 ldr r1, [0x0804cc98] ; [0x804cc98:4]=0x2001e5d8
| | 0x0804ca9a 0860 str r0, [r1]
| | 0x0804ca9c 7f48 ldr r0, [0x0804cc9c] ; [0x804cc9c:4]=0x2001e8bc
| | 0x0804ca9e 7021 movs r1, 0x70 ; 'p' ; 112
| | 0x0804caa0 0170 strb r1, [r0]
| | 0x0804caa2 7f48 ldr r0, [0x0804cca2] ; [0x804cca0:4]=0x2001e8ae
| | 0x0804caa4 0121 movs r1, 1 ; 1
| | 0x0804caa6 0170 strb r1, [r0]
| | 0x0804caa8 6b48 ldr r0, [0x0804cc58] ; [0x804cc58:4]=0x2001dadc md380_radio_config
| | 0x0804caaa 4078 ldrb r0, [r0, 1]
| | 0x0804caac c007 lsls r0, r0, 0x1f
| ,==< 0x0804caae 04d5 bpl 0x804caba
| || 0x0804cab0 6948 ldr r0, [0x0804cc58] ; [0x804cc58:4]=0x2001dadc md380_radio_config
| || 0x0804cab2 007a ldrb r0, [r0, 8]
| || 0x0804cab4 8049 ldr r1, [0x0804ccb8] ; [0x804ccb8:4]=0x2001e8ac
| || 0x0804cab6 0870 strb r0, [r1]
| ,===< 0x0804cab8 02e0 b 0x804cac0
| |`--> 0x0804caba 7f48 ldr r0, [0x0804ccba] ; [0x804ccb8:4]=0x2001e8ac
| | | 0x0804cabc 0221 movs r1, 2 ; 2
| | | 0x0804cabe 0170 strb r1, [r0]
| `---> 0x0804cac0 7448 ldr r0, [0x0804cc94] ; [0x804cc94:4]=0x2001e8b2
| | 0x0804cac2 0078 ldrb r0, [r0]
| | 0x0804cac4 10f01000 ands r0, r0, 0x10
| | 0x0804cac8 90f08200 eors r0, r0, 0x82
| | 0x0804cacc 7549 ldr r1, [0x0804cca4] ; [0x804cca4:4]=0x2001e8b3
| | 0x0804cace 0870 strb r0, [r1]
| | 0x0804cad0 7048 ldr r0, [0x0804cc94] ; [0x804cc94:4]=0x2001e8b2
| | 0x0804cad2 0078 ldrb r0, [r0]
| | 0x0804cad4 10f00f00 ands r0, r0, 0xf
| | 0x0804cad8 90f04000 eors r0, r0, 0x40
| | 0x0804cadc 7249 ldr r1, [0x0804cca8] ; [0x804cca8:4]=0x2001e8b4
| | 0x0804cade 0870 strb r0, [r1]
| | 0x0804cae0 6b48 ldr r0, [0x0804cc90] ; [0x804cc90:4]=0x2001e8ad
| | 0x0804cae2 0078 ldrb r0, [r0]
| | 0x0804cae4 6e49 ldr r1, [0x0804cca0] ; [0x804cca0:4]=0x2001e8ae
| | 0x0804cae6 0978 ldrb r1, [r1]
| | 0x0804cae8 0818 adds r0, r1, r0
| | 0x0804caea 401e subs r0, r0, 1
| | 0x0804caec 50f08000 orrs r0, r0, 0x80
| | 0x0804caf0 6e49 ldr r1, [0x0804ccac] ; [0x804ccac:4]=0x2001e8b5
| | 0x0804caf2 0870 strb r0, [r1]
| | 0x0804caf4 6f48 ldr r0, [0x0804ccb4] ; [0x804ccb4:4]=0x2001e8b6
| | 0x0804caf6 0021 movs r1, 0
| | 0x0804caf8 0170 strb r1, [r0]
| | 0x0804cafa f0f71bf8 bl c5000_set_local_addr2
\ `=< 0x0804cafe 9ce7 b 0x804ca3a ; msg_handle_types+0x1e2
/ (fcn) msg_handle_type_other 342
| msg_handle_type_other ();
| `=< 0x0804cb00 9be7 b 0x804ca3a ; msg_handle_types+0x1e2
| 0x0804cb02 e0b5 push {r5, r6, r7, lr}
| 0x0804cb04 5c49 ldr r1, [0x0804cc78] ; [0x804cc78:4]=0x2001e902
| 0x0804cb06 0022 movs r2, 0
| 0x0804cb08 0a70 strb r2, [r1]
| 0x0804cb0a 0121 movs r1, 1 ; 1
| 0x0804cb0c 0291 str r1, [sp, 8]
| 0x0804cb0e 5649 ldr r1, [0x0804cc6a] ; [0x804cc68:4]=0x2001e816
| 0x0804cb10 0988 ldrh r1, [r1]
| 0x0804cb12 0191 str r1, [sp, 4]
| 0x0804cb14 5c49 ldr r1, [0x0804cc88] ; [0x804cc88:4]=0x2001e814
| 0x0804cb16 0988 ldrh r1, [r1]
| 0x0804cb18 0091 str r1, [sp]
| 0x0804cb1a 0300 movs r3, r0
| 0x0804cb1c 2122 movs r2, 0x21 ; '!' ; 33
| 0x0804cb1e 0021 movs r1, 0
| 0x0804cb20 5348 ldr r0, [0x0804cc70] ; [0x804cc70:4]=0x20018490 msg_buff_complete
| 0x0804cb22 fff790fc bl func_4c446
| 0x0804cb26 5349 ldr r1, [0x0804cc76] ; [0x804cc74:4]=0x2001e81a
| 0x0804cb28 0880 strh r0, [r1]
| 0x0804cb2a 5448 ldr r0, [0x0804cc7e] ; [0x804cc7c:4]=0x2001de78 struct_channel_info2
| 0x0804cb2c 8078 ldrb r0, [r0, 2]
| 0x0804cb2e 0006 lsls r0, r0, 0x18
| ,=< 0x0804cb30 44d5 bpl 0x804cbbc
| | 0x0804cb32 5348 ldr r0, [0x0804cc82] ; [0x804cc80:4]=0x2001e901
| | 0x0804cb34 0121 movs r1, 1 ; 1
| | 0x0804cb36 0170 strb r1, [r0]
| | 0x0804cb38 5448 ldr r0, [0x0804cc8c] ; [0x804cc8c:4]=0x2001e8b1
| | 0x0804cb3a 1021 movs r1, 0x10 ; 16
| | 0x0804cb3c 0170 strb r1, [r0]
| | 0x0804cb3e 5348 ldr r0, [0x0804cc8e] ; [0x804cc8c:4]=0x2001e8b1
| | 0x0804cb40 0178 ldrb r1, [r0]
| | 0x0804cb42 4c48 ldr r0, [0x0804cc76] ; [0x804cc74:4]=0x2001e81a
| | 0x0804cb44 0088 ldrh r0, [r0]
| | 0x0804cb46 00f01cf9 bl 0x804cd82
| | 0x0804cb4a 80b2 uxth r0, r0
| | 0x0804cb4c 010a lsrs r1, r0, 8
| | 0x0804cb4e 504a ldr r2, [0x0804cc92] ; [0x804cc90:4]=0x2001e8ad
| | 0x0804cb50 1170 strb r1, [r2]
| | 0x0804cb52 5049 ldr r1, [0x0804cc96] ; [0x804cc94:4]=0x2001e8b2
| | 0x0804cb54 0870 strb r0, [r1]
| | 0x0804cb56 4f48 ldr r0, [0x0804cc96] ; [0x804cc94:4]=0x2001e8b2
| | 0x0804cb58 0278 ldrb r2, [r0]
| | 0x0804cb5a 4648 ldr r0, [0x0804cc76] ; [0x804cc74:4]=0x2001e81a
| | 0x0804cb5c 0188 ldrh r1, [r0]
| | 0x0804cb5e 4448 ldr r0, [0x0804cc72] ; [0x804cc70:4]=0x20018490 msg_buff_complete
| | 0x0804cb60 00f0acf8 bl func_4ccbc
| | 0x0804cb64 4c49 ldr r1, [0x0804cc98] ; [0x804cc98:4]=0x2001e5d8
| | 0x0804cb66 0860 str r0, [r1]
| | 0x0804cb68 4c48 ldr r0, [0x0804cc9c] ; [0x804cc9c:4]=0x2001e8bc
| | 0x0804cb6a 8021 movs r1, 0x80 ; 128
| | 0x0804cb6c 0170 strb r1, [r0]
| | 0x0804cb6e 4c48 ldr r0, [0x0804cca2] ; [0x804cca0:4]=0x2001e8ae
| | 0x0804cb70 0121 movs r1, 1 ; 1
| | 0x0804cb72 0170 strb r1, [r0]
| | 0x0804cb74 4748 ldr r0, [0x0804cc94] ; [0x804cc94:4]=0x2001e8b2
| | 0x0804cb76 0078 ldrb r0, [r0]
| | 0x0804cb78 10f01000 ands r0, r0, 0x10
| | 0x0804cb7c 90f04300 eors r0, r0, 0x43
| | 0x0804cb80 4849 ldr r1, [0x0804cca4] ; [0x804cca4:4]=0x2001e8b3
| | 0x0804cb82 0870 strb r0, [r1]
| | 0x0804cb84 4348 ldr r0, [0x0804cc94] ; [0x804cc94:4]=0x2001e8b2
| | 0x0804cb86 0078 ldrb r0, [r0]
| | 0x0804cb88 10f00f00 ands r0, r0, 0xf
| | 0x0804cb8c 90f04000 eors r0, r0, 0x40
| | 0x0804cb90 4549 ldr r1, [0x0804cca8] ; [0x804cca8:4]=0x2001e8b4
| | 0x0804cb92 0870 strb r0, [r1]
| | 0x0804cb94 3e48 ldr r0, [0x0804cc90] ; [0x804cc90:4]=0x2001e8ad
| | 0x0804cb96 0078 ldrb r0, [r0]
| | 0x0804cb98 4149 ldr r1, [0x0804cca0] ; [0x804cca0:4]=0x2001e8ae
| | 0x0804cb9a 0978 ldrb r1, [r1]
| | 0x0804cb9c 0818 adds r0, r1, r0
| | 0x0804cb9e 401e subs r0, r0, 1
| | 0x0804cba0 50f08000 orrs r0, r0, 0x80
| | 0x0804cba4 4149 ldr r1, [0x0804ccac] ; [0x804ccac:4]=0x2001e8b5
| | 0x0804cba6 0870 strb r0, [r1]
| | 0x0804cba8 4148 ldr r0, [0x0804ccb0] ; [0x804ccb0:4]=0x2001e86c
| | 0x0804cbaa 0078 ldrb r0, [r0]
| | 0x0804cbac 0001 lsls r0, r0, 4
| | 0x0804cbae 90f00800 eors r0, r0, 8
| | 0x0804cbb2 4049 ldr r1, [0x0804ccb6] ; [0x804ccb4:4]=0x2001e8b6
| | 0x0804cbb4 0870 strb r0, [r1]
| | 0x0804cbb6 eff7bdff bl c5000_set_local_addr2
| ,==< 0x0804cbba 4be0 b 0x804cc54
| |`-> 0x0804cbbc 3048 ldr r0, [0x0804cc80] ; [0x804cc80:4]=0x2001e901
| | 0x0804cbbe 0021 movs r1, 0
| | 0x0804cbc0 0170 strb r1, [r0]
| | 0x0804cbc2 3248 ldr r0, [0x0804cc8e] ; [0x804cc8c:4]=0x2001e8b1
| | 0x0804cbc4 0c21 movs r1, 0xc ; 12
| | 0x0804cbc6 0170 strb r1, [r0]
| | 0x0804cbc8 3048 ldr r0, [0x0804cc8c] ; [0x804cc8c:4]=0x2001e8b1
| | 0x0804cbca 0178 ldrb r1, [r0]
| | 0x0804cbcc 2948 ldr r0, [0x0804cc74] ; [0x804cc74:4]=0x2001e81a
| | 0x0804cbce 0088 ldrh r0, [r0]
| | 0x0804cbd0 00f0d7f8 bl 0x804cd82
| | 0x0804cbd4 80b2 uxth r0, r0
| | 0x0804cbd6 010a lsrs r1, r0, 8
| | 0x0804cbd8 2d4a ldr r2, [0x0804cc90] ; [0x804cc90:4]=0x2001e8ad
| | 0x0804cbda 1170 strb r1, [r2]
| | 0x0804cbdc 2d49 ldr r1, [0x0804cc94] ; [0x804cc94:4]=0x2001e8b2
| | 0x0804cbde 0870 strb r0, [r1]
| | 0x0804cbe0 2c48 ldr r0, [0x0804cc94] ; [0x804cc94:4]=0x2001e8b2
| | 0x0804cbe2 0278 ldrb r2, [r0]
| | 0x0804cbe4 2348 ldr r0, [0x0804cc74] ; [0x804cc74:4]=0x2001e81a
| | 0x0804cbe6 0188 ldrh r1, [r0]
| | 0x0804cbe8 2148 ldr r0, [0x0804cc70] ; [0x804cc70:4]=0x20018490 msg_buff_complete
| | 0x0804cbea 00f067f8 bl func_4ccbc
| | 0x0804cbee 2a49 ldr r1, [0x0804cc9a] ; [0x804cc98:4]=0x2001e5d8
| | 0x0804cbf0 0860 str r0, [r1]
| | 0x0804cbf2 2a48 ldr r0, [0x0804cc9e] ; [0x804cc9c:4]=0x2001e8bc
| | 0x0804cbf4 7021 movs r1, 0x70 ; 'p' ; 112
| | 0x0804cbf6 0170 strb r1, [r0]
| | 0x0804cbf8 2948 ldr r0, [0x0804cca0] ; [0x804cca0:4]=0x2001e8ae
| | 0x0804cbfa 0121 movs r1, 1 ; 1
| | 0x0804cbfc 0170 strb r1, [r0]
| | 0x0804cbfe 1648 ldr r0, [0x0804cc5a] ; [0x804cc58:4]=0x2001dadc md380_radio_config
| | 0x0804cc00 4078 ldrb r0, [r0, 1]
| | 0x0804cc02 c007 lsls r0, r0, 0x1f
| |,=< 0x0804cc04 04d5 bpl 0x804cc10
| || 0x0804cc06 1448 ldr r0, [0x0804cc5a] ; [0x804cc58:4]=0x2001dadc md380_radio_config
| || 0x0804cc08 007a ldrb r0, [r0, 8]
| || 0x0804cc0a 2b49 ldr r1, [0x0804ccba] ; [0x804ccb8:4]=0x2001e8ac
| || 0x0804cc0c 0870 strb r0, [r1]
| ,===< 0x0804cc0e 02e0 b 0x804cc16
| ||`-> 0x0804cc10 2948 ldr r0, [0x0804ccb8] ; [0x804ccb8:4]=0x2001e8ac
| || 0x0804cc12 0221 movs r1, 2 ; 2
| || 0x0804cc14 0170 strb r1, [r0]
| `---> 0x0804cc16 1f48 ldr r0, [0x0804cc96] ; [0x804cc94:4]=0x2001e8b2
| | 0x0804cc18 0078 ldrb r0, [r0]
| | 0x0804cc1a 10f01000 ands r0, r0, 0x10
| | 0x0804cc1e 90f00200 eors r0, r0, 2
| | 0x0804cc22 2049 ldr r1, [0x0804cca6] ; [0x804cca4:4]=0x2001e8b3
| | 0x0804cc24 0870 strb r0, [r1]
| | 0x0804cc26 1b48 ldr r0, [0x0804cc96] ; [0x804cc94:4]=0x2001e8b2
| | 0x0804cc28 0078 ldrb r0, [r0]
| | 0x0804cc2a 10f00f00 ands r0, r0, 0xf
| | 0x0804cc2e 90f04000 eors r0, r0, 0x40
| | 0x0804cc32 1d49 ldr r1, [0x0804ccaa] ; [0x804cca8:4]=0x2001e8b4
| | 0x0804cc34 0870 strb r0, [r1]
| | 0x0804cc36 1648 ldr r0, [0x0804cc92] ; [0x804cc90:4]=0x2001e8ad
| | 0x0804cc38 0078 ldrb r0, [r0]
| | 0x0804cc3a 1949 ldr r1, [0x0804cca2] ; [0x804cca0:4]=0x2001e8ae
| | 0x0804cc3c 0978 ldrb r1, [r1]
| | 0x0804cc3e 0818 adds r0, r1, r0
| | 0x0804cc40 401e subs r0, r0, 1
| | 0x0804cc42 50f08000 orrs r0, r0, 0x80
| | 0x0804cc46 1949 ldr r1, [0x0804ccae] ; [0x804ccac:4]=0x2001e8b5
| | 0x0804cc48 0870 strb r0, [r1]
| | 0x0804cc4a 1a48 ldr r0, [0x0804ccb6] ; [0x804ccb4:4]=0x2001e8b6
| | 0x0804cc4c 0021 movs r1, 0
| | 0x0804cc4e 0170 strb r1, [r0]
| | 0x0804cc50 eff770ff bl c5000_set_local_addr2
\ `--> 0x0804cc54 07bd pop {r0, r1, r2, pc}
/ (fcn) func_4ccbc 198
| Caller: msg_handle_type_11 msg_handle_type_21 msg_handle_type_other
| func_4ccbc ();
| 0x0804ccbc f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x0804ccbe 0400 movs r4, r0
| 0x0804ccc0 0d00 movs r5, r1
| 0x0804ccc2 0027 movs r7, 0
| ,=< 0x0804ccc4 04e0 b 0x804ccd0
| .--> 0x0804ccc6 adb2 uxth r5, r5
| || 0x0804ccc8 0020 movs r0, 0
| || 0x0804ccca 2855 strb r0, [r5, r4]
| || 0x0804cccc 6d1c adds r5, r5, 1
| || 0x0804ccce 521e subs r2, r2, 1
| |`-> 0x0804ccd0 d2b2 uxtb r2, r2
| | 0x0804ccd2 002a cmp r2, 0
| `==< 0x0804ccd4 f7d1 bne 0x804ccc6
| 0x0804ccd6 adb2 uxth r5, r5
| 0x0804ccd8 0420 movs r0, 4 ; 4
| 0x0804ccda 95fbf0f6 sdiv r6, r5, r0
| 0x0804ccde 06fb1056 mls r6, r6, r0, r5
| 0x0804cce2 b6b2 uxth r6, r6
| 0x0804cce4 032e cmp r6, 3 ; 3
| ,=< 0x0804cce6 03d1 bne 0x804ccf0
| | 0x0804cce8 adb2 uxth r5, r5
| | 0x0804ccea 0020 movs r0, 0
| | 0x0804ccec 2855 strb r0, [r5, r4]
| ,==< 0x0804ccee 18e0 b 0x804cd22
| |`-> 0x0804ccf0 b6b2 uxth r6, r6
| | 0x0804ccf2 022e cmp r6, 2 ; 2
| |,=< 0x0804ccf4 07d1 bne 0x804cd06
| || 0x0804ccf6 adb2 uxth r5, r5
| || 0x0804ccf8 0020 movs r0, 0
| || 0x0804ccfa 2855 strb r0, [r5, r4]
| || 0x0804ccfc adb2 uxth r5, r5
| || 0x0804ccfe 2819 adds r0, r5, r4
| || 0x0804cd00 0021 movs r1, 0
| || 0x0804cd02 4170 strb r1, [r0, 1]
| ,===< 0x0804cd04 0de0 b 0x804cd22
| ||`-> 0x0804cd06 b6b2 uxth r6, r6
| || 0x0804cd08 012e cmp r6, 1 ; 1
| ||,=< 0x0804cd0a 0ad1 bne 0x804cd22
| ||| 0x0804cd0c adb2 uxth r5, r5
| ||| 0x0804cd0e 0020 movs r0, 0
| ||| 0x0804cd10 2855 strb r0, [r5, r4]
| ||| 0x0804cd12 adb2 uxth r5, r5
| ||| 0x0804cd14 2819 adds r0, r5, r4
| ||| 0x0804cd16 0021 movs r1, 0
| ||| 0x0804cd18 4170 strb r1, [r0, 1]
| ||| 0x0804cd1a adb2 uxth r5, r5
| ||| 0x0804cd1c 2819 adds r0, r5, r4
| ||| 0x0804cd1e 0021 movs r1, 0
| ||| 0x0804cd20 8170 strb r1, [r0, 2]
| ```-> 0x0804cd22 0121 movs r1, 1 ; 1
| 0x0804cd24 4ff48050 mov.w r0, 0x1000
| 0x0804cd28 e9f7ddfe bl func_36ae6
| 0x0804cd2c e9f772ff bl func_36c14
| 0x0804cd30 5ff0ff30 movs.w r0, -1 ; -1
| 0x0804cd34 e9f772ff bl func_36c1c
| 0x0804cd38 0700 movs r7, r0
| 0x0804cd3a 0026 movs r6, 0
| ,=< 0x0804cd3c 16e0 b 0x804cd6c
| .--> 0x0804cd3e b6b2 uxth r6, r6
| || 0x0804cd40 3019 adds r0, r6, r4
| || 0x0804cd42 4078 ldrb r0, [r0, 1]
| || 0x0804cd44 b6b2 uxth r6, r6
| || 0x0804cd46 315d ldrb r1, [r6, r4]
| || 0x0804cd48 0904 lsls r1, r1, 0x10
| || 0x0804cd4a 11eb0060 adds.w r0, r1, r0, lsl 24
| || 0x0804cd4e b6b2 uxth r6, r6
| || 0x0804cd50 3119 adds r1, r6, r4
| || 0x0804cd52 c978 ldrb r1, [r1, 3]
| || 0x0804cd54 10eb0120 adds.w r0, r0, r1, lsl 8
| || 0x0804cd58 b6b2 uxth r6, r6
| || 0x0804cd5a 3119 adds r1, r6, r4
| || 0x0804cd5c 8978 ldrb r1, [r1, 2]
| || 0x0804cd5e 50fa81f7 uxtab r7, r0, r1
| || 0x0804cd62 3800 movs r0, r7
| || 0x0804cd64 e9f75aff bl func_36c1c
| || 0x0804cd68 0700 movs r7, r0
| || 0x0804cd6a 361d adds r6, r6, 4
| |`-> 0x0804cd6c b6b2 uxth r6, r6
| | 0x0804cd6e adb2 uxth r5, r5
| | 0x0804cd70 ae42 cmp r6, r5
| `==< 0x0804cd72 e4d3 blo 0x804cd3e
| 0x0804cd74 0021 movs r1, 0
| 0x0804cd76 4ff48050 mov.w r0, 0x1000
| 0x0804cd7a e9f7b4fe bl func_36ae6
| 0x0804cd7e 3800 movs r0, r7
\ 0x0804cd80 f2bd pop {r1, r4, r5, r6, r7, pc}
/ (fcn) func_4cdc6 100
| func_4cdc6 ();
| 0x0804cdc6 70b4 push {r4, r5, r6}
| 0x0804cdc8 0300 movs r3, r0
| 0x0804cdca 0800 movs r0, r1
| 0x0804cdcc 0021 movs r1, 0
| ,=< 0x0804cdce 03e0 b 0x804cdd8
| .--> 0x0804cdd0 0024 movs r4, 0
| .---> 0x0804cdd2 7040 eors r0, r6
| ||| 0x0804cdd4 6040 eors r0, r4
| ||| 0x0804cdd6 491c adds r1, r1, 1
| ||`-> 0x0804cdd8 1400 movs r4, r2
| || 0x0804cdda e4b2 uxtb r4, r4
| || 0x0804cddc 89b2 uxth r1, r1
| || 0x0804cdde a4b2 uxth r4, r4
| || 0x0804cde0 a142 cmp r1, r4
| ||,=< 0x0804cde2 1fd2 bhs 0x804ce24
| ||| 0x0804cde4 11f00704 ands r4, r1, 7
| ||| 0x0804cde8 e4b2 uxtb r4, r4
| ||| 0x0804cdea 002c cmp r4, 0
| ,====< 0x0804cdec 03d1 bne 0x804cdf6
| |||| 0x0804cdee 89b2 uxth r1, r1
| |||| 0x0804cdf0 cd08 lsrs r5, r1, 3
| |||| 0x0804cdf2 edb2 uxtb r5, r5
| |||| 0x0804cdf4 ed5c ldrb r5, [r5, r3]
| `----> 0x0804cdf6 edb2 uxtb r5, r5
| ||| 0x0804cdf8 15fa04f4 lsls.w r4, r5, r4
| ||| 0x0804cdfc 14f08004 ands r4, r4, 0x80
| ||| 0x0804ce00 80b2 uxth r0, r0
| ||| 0x0804ce02 c60b lsrs r6, r0, 0xf
| ||| 0x0804ce04 f6b2 uxtb r6, r6
| ||| 0x0804ce06 56ea4000 orrs.w r0, r6, r0, lsl 1
| ||| 0x0804ce0a f6b2 uxtb r6, r6
| ||| 0x0804ce0c 002e cmp r6, 0
| ,====< 0x0804ce0e 02d0 beq 0x804ce16
| |||| 0x0804ce10 4ff48156 mov.w r6, 0x1020
| ,=====< 0x0804ce14 00e0 b 0x804ce18
| |`----> 0x0804ce16 0026 movs r6, 0
| `-----> 0x0804ce18 e4b2 uxtb r4, r4
| ||| 0x0804ce1a 002c cmp r4, 0
| |`==< 0x0804ce1c d8d0 beq 0x804cdd0
| | | 0x0804ce1e 41f22104 movw r4, 0x1021
| `===< 0x0804ce22 d6e7 b 0x804cdd2
| `-> 0x0804ce24 80b2 uxth r0, r0
| 0x0804ce26 70bc pop {r4, r5, r6}
\ 0x0804ce28 7047 bx lr
/ (fcn) init_Tone_fft_task 92
| Caller: Start
| init_Tone_fft_task ();
| 0x0804ce2c 00b5 push {lr}
| 0x0804ce2e 87b0 sub sp, 0x1c
| 0x0804ce30 dff86c06 ldr.w r0, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| 0x0804ce34 0078 ldrb r0, [r0]
| 0x0804ce36 10f0fd00 ands r0, r0, 0xfd
| 0x0804ce3a dff86416 ldr.w r1, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| 0x0804ce3e 0870 strb r0, [r1]
| 0x0804ce40 00f061f8 bl func_4cf06_uses_ADC2_and_TIM3
| 0x0804ce44 0020 movs r0, 0
| 0x0804ce46 f2f75ffc bl OSSemCreate
| 0x0804ce4a dff85816 ldr.w r1, [0x0804d4aa] ; [0x804d4a8:4]=0x20016ab8
| 0x0804ce4e 0860 str r0, [r1]
| 0x0804ce50 0320 movs r0, 3 ; 3
| 0x0804ce52 0490 str r0, [sp, 0x10]
| 0x0804ce54 0020 movs r0, 0
| 0x0804ce56 0390 str r0, [sp, 0xc]
| 0x0804ce58 4ff40070 mov.w r0, 0x200 ; 512
| 0x0804ce5c 0290 str r0, [sp, 8]
| 0x0804ce5e dff84806 ldr.w r0, [0x0804d4ae] ; [0x804d4ac:4]=0x200172b4
| 0x0804ce62 0190 str r0, [sp, 4]
| 0x0804ce64 0c20 movs r0, 0xc ; 12
| 0x0804ce66 0090 str r0, [sp]
| 0x0804ce68 0c23 movs r3, 0xc ; 12
| 0x0804ce6a dff84026 ldr.w r2, [0x0804d4b2] ; [0x804d4b0:4]=0x80f9f50 string_Tone_fft
| 0x0804ce6e 0021 movs r1, 0
| 0x0804ce70 0ff20d10 addw r0, pc, 0x10d
| 0x0804ce74 01f084fb bl OSTaskCreateExt
| 0x0804ce78 05aa add r2, sp, 0x14
| 0x0804ce7a dff83416 ldr.w r1, [0x0804d4b6] ; [0x804d4b4:4]=0x2001e4c4
| 0x0804ce7e 0c20 movs r0, 0xc ; 12
| 0x0804ce80 01f0e4fb bl OSTaskNameSet
| 0x0804ce84 07b0 add sp, 0x1c
\ 0x0804ce86 00bd pop {pc}
/ (fcn) func_4ce88 126
| Caller: SomethingWithGPIOC_and_Backlight_Timer
| func_4ce88 ();
| 0x0804ce88 80b5 push {r7, lr}
| 0x0804ce8a dff81406 ldr.w r0, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| 0x0804ce8e 0078 ldrb r0, [r0]
| 0x0804ce90 c0f34000 ubfx r0, r0, 1, 1
| 0x0804ce94 c007 lsls r0, r0, 0x1f
| ,=< 0x0804ce96 35d4 bmi 0x804cf04
| | 0x0804ce98 dff80406 ldr.w r0, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804ce9c 0078 ldrb r0, [r0]
| | 0x0804ce9e 50f00200 orrs r0, r0, 2
| | 0x0804cea2 dff8fc15 ldr.w r1, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804cea6 0870 strb r0, [r1]
| | 0x0804cea8 dff8f405 ldr.w r0, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804ceac 0078 ldrb r0, [r0]
| | 0x0804ceae 10f0fb00 ands r0, r0, 0xfb
| | 0x0804ceb2 dff8ec15 ldr.w r1, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804ceb6 0870 strb r0, [r1]
| | 0x0804ceb8 dff8e405 ldr.w r0, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804cebc 0078 ldrb r0, [r0]
| | 0x0804cebe 10f0df00 ands r0, r0, 0xdf
| | 0x0804cec2 dff8dc15 ldr.w r1, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804cec6 0870 strb r0, [r1]
| | 0x0804cec8 dff8d405 ldr.w r0, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804cecc 0078 ldrb r0, [r0]
| | 0x0804cece 10f0bf00 ands r0, r0, 0xbf
| | 0x0804ced2 dff8cc15 ldr.w r1, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804ced6 0870 strb r0, [r1]
| | 0x0804ced8 dff8d805 ldr.w r0, [0x0804d4b8] ; [0x804d4b8:4]=0x2001e961
| | 0x0804cedc 0021 movs r1, 0
| | 0x0804cede 0170 strb r1, [r0]
| | 0x0804cee0 dff8d405 ldr.w r0, [0x0804d4bc] ; [0x804d4bc:4]=0x2001e8dc
| | 0x0804cee4 0021 movs r1, 0
| | 0x0804cee6 0170 strb r1, [r0]
| | 0x0804cee8 dff8d005 ldr.w r0, [0x0804d4c0] ; [0x804d4c0:4]=0x40012100 io_ADC2
| | 0x0804ceec ff21 movs r1, 0xff ; 255
| | 0x0804ceee 0170 strb r1, [r0]
| | 0x0804cef0 0121 movs r1, 1 ; 1
| | 0x0804cef2 dff8cc05 ldr.w r0, [0x0804d4c6] ; [0x804d4c4:4]=0x40000400 io_TIM3
| | 0x0804cef6 00f050fb bl adc_enable_disable
| | 0x0804cefa 0121 movs r1, 1 ; 1
| | 0x0804cefc dff8c405 ldr.w r0, [0x0804d4c8] ; [0x804d4c8:4]=0x2001e8db
| | 0x0804cf00 f6f7e2fd bl TIM_EnableOrDisableCounter
\ `-> 0x0804cf04 01bd pop {r0, pc}
/ (fcn) func_4cf06_uses_ADC2_and_TIM3 120
| Caller: SomethingWithGPIOC_and_Backlight_Timer init_Tone_fft_task
| func_4cf06_uses_ADC2_and_TIM3 ();
| 0x0804cf06 80b5 push {r7, lr}
| 0x0804cf08 dff89405 ldr.w r0, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| 0x0804cf0c 0078 ldrb r0, [r0]
| 0x0804cf0e c0f34000 ubfx r0, r0, 1, 1
| 0x0804cf12 c007 lsls r0, r0, 0x1f
| ,=< 0x0804cf14 32d5 bpl 0x804cf7c
| | 0x0804cf16 dff88805 ldr.w r0, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804cf1a 0078 ldrb r0, [r0]
| | 0x0804cf1c 10f0fd00 ands r0, r0, 0xfd
| | 0x0804cf20 dff87c15 ldr.w r1, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804cf24 0870 strb r0, [r1]
| | 0x0804cf26 dff87805 ldr.w r0, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804cf2a 0078 ldrb r0, [r0]
| | 0x0804cf2c 10f0fb00 ands r0, r0, 0xfb
| | 0x0804cf30 dff86c15 ldr.w r1, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804cf34 0870 strb r0, [r1]
| | 0x0804cf36 dff86805 ldr.w r0, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804cf3a 0078 ldrb r0, [r0]
| | 0x0804cf3c 10f0bf00 ands r0, r0, 0xbf
| | 0x0804cf40 dff85c15 ldr.w r1, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| | 0x0804cf44 0870 strb r0, [r1]
| | 0x0804cf46 dff86c05 ldr.w r0, [0x0804d4ba] ; [0x804d4b8:4]=0x2001e961
| | 0x0804cf4a 0078 ldrb r0, [r0]
| | 0x0804cf4c 0028 cmp r0, 0
| ,==< 0x0804cf4e 07d0 beq 0x804cf60
| || 0x0804cf50 dff84c05 ldr.w r0, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| || 0x0804cf54 0078 ldrb r0, [r0]
| || 0x0804cf56 50f02000 orrs r0, r0, 0x20
| || 0x0804cf5a dff84415 ldr.w r1, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| || 0x0804cf5e 0870 strb r0, [r1]
| `--> 0x0804cf60 dff85805 ldr.w r0, [0x0804d4c0] ; [0x804d4c0:4]=0x40012100 io_ADC2
| | 0x0804cf64 ff21 movs r1, 0xff ; 255
| | 0x0804cf66 0170 strb r1, [r0]
| | 0x0804cf68 0021 movs r1, 0
| | 0x0804cf6a dff85405 ldr.w r0, [0x0804d4c6] ; [0x804d4c4:4]=0x40000400 io_TIM3
| | 0x0804cf6e 00f014fb bl adc_enable_disable ; wtf.. address of a TIMER passed in R0 (???)
| | 0x0804cf72 0021 movs r1, 0
| | 0x0804cf74 dff84c05 ldr.w r0, [0x0804d4c8] ; [0x804d4c8:4]=0x2001e8db
| | 0x0804cf78 f6f7a6fd bl TIM_EnableOrDisableCounter
\ `-> 0x0804cf7c 01bd pop {r0, pc}
/ (fcn) func_4cf80 568
| func_4cf80 ();
| 0x0804cf80 88b0 sub sp, 0x20
| ,=< 0x0804cf82 05e0 b 0x804cf90
| .--> 0x0804cf84 dff83405 ldr.w r0, [0x0804d4c0] ; [0x804d4c0:4]=0x40012100 io_ADC2
| || 0x0804cf88 dff83c15 ldr.w r1, [0x0804d4cc] ; [0x804d4cc:4]=0x2001e892 gui_opmode3
| || 0x0804cf8c 0978 ldrb r1, [r1]
| || 0x0804cf8e 0170 strb r1, [r0]
| .....-`-> 0x0804cf90 02aa add r2, sp, 8
| |||||| 0x0804cf92 0021 movs r1, 0
| |||||| 0x0804cf94 dff80c05 ldr.w r0, [0x0804d4a8] ; [0x804d4a8:4]=0x20016ab8
| |||||| 0x0804cf98 0068 ldr r0, [r0]
| |||||| 0x0804cf9a f2f7dbfb bl OSSemPend
| |||||| 0x0804cf9e dff82c05 ldr.w r0, [0x0804d4d2] ; [0x804d4d0:4]=0x2001c180
| |||||| 0x0804cfa2 0078 ldrb r0, [r0]
| |||||| 0x0804cfa4 3028 cmp r0, 0x30 ; '0' ; 48
| `=======< 0x0804cfa6 f3d2 bhs 0x804cf90
| ||||| 0x0804cfa8 0024 movs r4, 0
| |||||,=< 0x0804cfaa 21e0 b 0x804cff0
| .-------> 0x0804cfac a4b2 uxth r4, r4
| ||||||| 0x0804cfae dff82005 ldr.w r0, [0x0804d4d6] ; [0x804d4d4:4]=0x400a6666 io_0x400a6666
| ||||||| 0x0804cfb2 30f81400 ldrh.w r0, [r0, r4, lsl 1]
| ||||||| 0x0804cfb6 07f0a7f9 bl func_54308
| ||||||| 0x0804cfba 5ff06632 movs.w r2, 0x66666666
| ||||||| 0x0804cfbe dff81435 ldr.w r3, [0x0804d4da] ; [0x804d4d8:4]=0x40b00000
| ||||||| 0x0804cfc2 07f0aff9 bl func_54324_lots_of_arithmetics
| ||||||| 0x0804cfc6 0022 movs r2, 0
| ||||||| 0x0804cfc8 dff80c35 ldr.w r3, [0x0804d4dc] ; [0x804d4dc:4]=0x2000aa9c
| ||||||| 0x0804cfcc 07f07cfa bl func_544c8_even_more_arithmetics
| ||||||| 0x0804cfd0 07f09efb bl func_54710
| ||||||| 0x0804cfd4 a4b2 uxth r4, r4
| ||||||| 0x0804cfd6 dff80415 ldr.w r1, [0x0804d4e2] ; [0x804d4e0:4]=0x2001e744
| ||||||| 0x0804cfda 41f83400 str.w r0, [r1, r4, lsl 3]
| ||||||| 0x0804cfde a4b2 uxth r4, r4
| ||||||| 0x0804cfe0 6000 lsls r0, r4, 1
| ||||||| 0x0804cfe2 dff8f814 ldr.w r1, [0x0804d4e2] ; [0x804d4e0:4]=0x2001e744
| ||||||| 0x0804cfe6 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||||| 0x0804cfea 0021 movs r1, 0
| ||||||| 0x0804cfec 4160 str r1, [r0, 4]
| ||||||| 0x0804cfee 641c adds r4, r4, 1
| ||||||`-> 0x0804cff0 a4b2 uxth r4, r4
| |||||| 0x0804cff2 b4f5807f cmp.w r4, 0x100 ; 256
| `=======< 0x0804cff6 d9d3 blo 0x804cfac
| ||||| 0x0804cff8 4ff48074 mov.w r4, 0x100 ; 256
| |||||,=< 0x0804cffc 0ee0 b 0x804d01c
| .-------> 0x0804cffe a4b2 uxth r4, r4
| ||||||| 0x0804d000 dff8d804 ldr.w r0, [0x0804d4e0] ; [0x804d4e0:4]=0x2001e744
| ||||||| 0x0804d004 0021 movs r1, 0
| ||||||| 0x0804d006 40f83410 str.w r1, [r0, r4, lsl 3]
| ||||||| 0x0804d00a a4b2 uxth r4, r4
| ||||||| 0x0804d00c 6000 lsls r0, r4, 1
| ||||||| 0x0804d00e dff8cc14 ldr.w r1, [0x0804d4e2] ; [0x804d4e0:4]=0x2001e744
| ||||||| 0x0804d012 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||||| 0x0804d016 0021 movs r1, 0
| ||||||| 0x0804d018 4160 str r1, [r0, 4]
| ||||||| 0x0804d01a 641c adds r4, r4, 1
| ||||||`-> 0x0804d01c a4b2 uxth r4, r4
| |||||| 0x0804d01e b4f5806f cmp.w r4, 0x400 ; 1024
| `=======< 0x0804d022 ecd3 blo 0x804cffe
| ||||| 0x0804d024 dff8b804 ldr.w r0, [0x0804d4e4] ; [0x804d4e4:4]=0x20004a08
| ||||| 0x0804d028 0021 movs r1, 0
| ||||| 0x0804d02a 0160 str r1, [r0]
| ||||| 0x0804d02c dff8b404 ldr.w r0, [0x0804d4e8] ; [0x804d4e8:4]=0x20004a04
| ||||| 0x0804d030 0368 ldr r3, [r0]
| ||||| 0x0804d032 dbb2 uxtb r3, r3
| ||||| 0x0804d034 dff8a804 ldr.w r0, [0x0804d4e4] ; [0x804d4e4:4]=0x20004a08
| ||||| 0x0804d038 0268 ldr r2, [r0]
| ||||| 0x0804d03a d2b2 uxtb r2, r2
| ||||| 0x0804d03c dff8a804 ldr.w r0, [0x0804d4ec] ; [0x804d4ec:4]=0x20011594
| ||||| 0x0804d040 0168 ldr r1, [r0]
| ||||| 0x0804d042 89b2 uxth r1, r1
| ||||| 0x0804d044 03a8 add r0, sp, 0xc
| ||||| 0x0804d046 07f0abfb bl func_547a0
| ||||| 0x0804d04a dff89014 ldr.w r1, [0x0804d4e2] ; [0x804d4e0:4]=0x2001e744
| ||||| 0x0804d04e 03a8 add r0, sp, 0xc
| ||||| 0x0804d050 07f0fefb bl func_54850
| ||||| 0x0804d054 dff89004 ldr.w r0, [0x0804d4ec] ; [0x804d4ec:4]=0x20011594
| ||||| 0x0804d058 0268 ldr r2, [r0]
| ||||| 0x0804d05a dff89014 ldr.w r1, [0x0804d4f2] ; [0x804d4f0:4]=0x2001165c
| ||||| 0x0804d05e dff87c04 ldr.w r0, [0x0804d4e2] ; [0x804d4e0:4]=0x2001e744
| ||||| 0x0804d062 07f076ff bl func_54f52_floating_point_stuff
| ||||| 0x0804d066 0020 movs r0, 0
| ||||| 0x0804d068 0090 str r0, [sp]
| ||||| 0x0804d06a 00ab add r3, sp, 0
| ||||| 0x0804d06c 01aa add r2, sp, 4
| ||||| 0x0804d06e 3c21 movs r1, 0x3c ; '<' ; 60
| ||||| 0x0804d070 dff87c04 ldr.w r0, [0x0804d4f4] ; [0x804d4f4:4]=0x2001174c
| ||||| 0x0804d074 07f0f2ff bl func_5505c_more_floating_point
| ||||| 0x0804d078 9ded010a vldr s0, [sp, 4]
| ||||| 0x0804d07c f2ee0e0a vmov.f32 s1, 1.500000e+001
| ||||| 0x0804d080 b4ee600a vcmp.f32 s0, s1
| ||||| 0x0804d084 f1ee10fa vmrs APSR_nzcv, fpscr
| |||||,=< 0x0804d088 01d5 bpl 0x804d08e
| |||||| 0x0804d08a 0020 movs r0, 0
| |||||| 0x0804d08c 0090 str r0, [sp]
| |||||`-> 0x0804d08e 0098 ldr r0, [sp]
| ||||| 0x0804d090 10f13204 adds.w r4, r0, 0x32
| ||||| 0x0804d094 0020 movs r0, 0
| ||||| 0x0804d096 0090 str r0, [sp]
| ||||| 0x0804d098 00ab add r3, sp, 0
| ||||| 0x0804d09a 01aa add r2, sp, 4
| ||||| 0x0804d09c 5f21 movs r1, 0x5f ; '_' ; 95
| ||||| 0x0804d09e dff85404 ldr.w r0, [0x0804d4fa] ; [0x804d4f8:4]=0x809a4a0
| ||||| 0x0804d0a2 07f0dbff bl func_5505c_more_floating_point
| ||||| 0x0804d0a6 9ded010a vldr s0, [sp, 4]
| ||||| 0x0804d0aa f2ee0e0a vmov.f32 s1, 1.500000e+001
| ||||| 0x0804d0ae b4ee600a vcmp.f32 s0, s1
| ||||| 0x0804d0b2 f1ee10fa vmrs APSR_nzcv, fpscr
| |||||,=< 0x0804d0b6 01d5 bpl 0x804d0bc
| |||||| 0x0804d0b8 0020 movs r0, 0
| |||||| 0x0804d0ba 0090 str r0, [sp]
| |||||`-> 0x0804d0bc 0098 ldr r0, [sp]
| ||||| 0x0804d0be 10f16e01 adds.w r1, r0, 0x6e
| ||||| 0x0804d0c2 0020 movs r0, 0
| |||||,=< 0x0804d0c4 00e0 b 0x804d0c8
| .-------> 0x0804d0c6 401c adds r0, r0, 1
| ||||||`-> 0x0804d0c8 c0b2 uxtb r0, r0
| |||||| 0x0804d0ca 0828 cmp r0, 8 ; 8
| ||||||,=< 0x0804d0cc 07d2 bhs 0x804d0de
| ||||||| 0x0804d0ce c0b2 uxtb r0, r0
| ||||||| 0x0804d0d0 dff82424 ldr.w r2, [0x0804d4fc] ; [0x804d4fc:4]=0x80f8fc4
| ||||||| 0x0804d0d4 32f81020 ldrh.w r2, [r2, r0, lsl 1]
| ||||||| 0x0804d0d8 a4b2 uxth r4, r4
| ||||||| 0x0804d0da 9442 cmp r4, r2
| `=======< 0x0804d0dc f3d2 bhs 0x804d0c6
| |||||`-> 0x0804d0de 0022 movs r2, 0
| |||||,=< 0x0804d0e0 00e0 b 0x804d0e4
| .-------> 0x0804d0e2 521c adds r2, r2, 1
| ||||||`-> 0x0804d0e4 d2b2 uxtb r2, r2
| |||||| 0x0804d0e6 082a cmp r2, 8 ; 8
| ||||||,=< 0x0804d0e8 08d2 bhs 0x804d0fc
| ||||||| 0x0804d0ea d2b2 uxtb r2, r2
| ||||||| 0x0804d0ec dff80834 ldr.w r3, [0x0804d4fc] ; [0x804d4fc:4]=0x80f8fc4
| ||||||| 0x0804d0f0 13eb4203 adds.w r3, r3, r2, lsl 1
| ||||||| 0x0804d0f4 1b8a ldrh r3, [r3, 0x10]
| ||||||| 0x0804d0f6 89b2 uxth r1, r1
| ||||||| 0x0804d0f8 9942 cmp r1, r3
| `=======< 0x0804d0fa f2d2 bhs 0x804d0e2
| |||||`-> 0x0804d0fc c0b2 uxtb r0, r0
| ||||| 0x0804d0fe 0221 movs r1, 2 ; 2
| ||||| 0x0804d100 90fbf1f3 sdiv r3, r0, r1
| ||||| 0x0804d104 03fb1103 mls r3, r3, r1, r0
| ||||| 0x0804d108 012b cmp r3, 1 ; 1
| |||||,=< 0x0804d10a 3cd1 bne 0x804d186
| |||||| 0x0804d10c d2b2 uxtb r2, r2
| |||||| 0x0804d10e 0221 movs r1, 2 ; 2
| |||||| 0x0804d110 92fbf1f3 sdiv r3, r2, r1
| |||||| 0x0804d114 03fb1123 mls r3, r3, r1, r2
| |||||| 0x0804d118 012b cmp r3, 1 ; 1
| ,=======< 0x0804d11a 34d1 bne 0x804d186
| ||||||| 0x0804d11c c0b2 uxtb r0, r0
| ||||||| 0x0804d11e 0221 movs r1, 2 ; 2
| ||||||| 0x0804d120 90fbf1f0 sdiv r0, r0, r1
| ||||||| 0x0804d124 8000 lsls r0, r0, 2
| ||||||| 0x0804d126 d2b2 uxtb r2, r2
| ||||||| 0x0804d128 0221 movs r1, 2 ; 2
| ||||||| 0x0804d12a 92fbf1f2 sdiv r2, r2, r1
| ||||||| 0x0804d12e 1043 orrs r0, r2
| ||||||| 0x0804d130 10f00f02 ands r2, r0, 0xf
| ||||||| 0x0804d134 d2b2 uxtb r2, r2
| ||||||| 0x0804d136 dff8c403 ldr.w r0, [0x0804d502] ; [0x804d500:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0804d13a 105c ldrb r0, [r2, r0]
| ||||||| 0x0804d13c dff88813 ldr.w r1, [0x0804d4cc] ; [0x804d4cc:4]=0x2001e892 gui_opmode3
| ||||||| 0x0804d140 0870 strb r0, [r1]
| ||||||| 0x0804d142 dff87803 ldr.w r0, [0x0804d4c2] ; [0x804d4c0:4]=0x40012100 io_ADC2
| ||||||| 0x0804d146 0078 ldrb r0, [r0]
| ||||||| 0x0804d148 dff87c13 ldr.w r1, [0x0804d4cc] ; [0x804d4cc:4]=0x2001e892 gui_opmode3
| ||||||| 0x0804d14c 0978 ldrb r1, [r1]
| ||||||| 0x0804d14e 8842 cmp r0, r1
| |||||`==< 0x0804d150 7ff418af bne.w 0x804cf84
| ||||| | 0x0804d154 dff84803 ldr.w r0, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| ||||| | 0x0804d158 0078 ldrb r0, [r0]
| ||||| | 0x0804d15a c0f38000 ubfx r0, r0, 2, 1
| ||||| | 0x0804d15e c007 lsls r0, r0, 0x1f
| |`======< 0x0804d160 3ff516af bmi.w 0x804cf90
| | ||| | 0x0804d164 dff83803 ldr.w r0, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| | ||| | 0x0804d168 0078 ldrb r0, [r0]
| | ||| | 0x0804d16a 50f00400 orrs r0, r0, 4
| | ||| | 0x0804d16e dff83013 ldr.w r1, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| | ||| | 0x0804d172 0870 strb r0, [r1]
| | ||| | 0x0804d174 dff82803 ldr.w r0, [0x0804d4a4] ; [0x804d4a4:4]=0x2001e68c
| | ||| | 0x0804d178 0078 ldrb r0, [r0]
| | ||| | 0x0804d17a 50f00800 orrs r0, r0, 8
| | ||| | 0x0804d17e dff82013 ldr.w r1, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| | ||| | 0x0804d182 0870 strb r0, [r1]
| | `=====< 0x0804d184 04e7 b 0x804cf90
| `-----`-> 0x0804d186 dff83403 ldr.w r0, [0x0804d4c2] ; [0x804d4c0:4]=0x40012100 io_ADC2
| || 0x0804d18a ff21 movs r1, 0xff ; 255
| || 0x0804d18c 0170 strb r1, [r0]
| || 0x0804d18e dff81003 ldr.w r0, [0x0804d4a6] ; [0x804d4a4:4]=0x2001e68c
| || 0x0804d192 0078 ldrb r0, [r0]
| || 0x0804d194 c0f38000 ubfx r0, r0, 2, 1
| || 0x0804d198 c007 lsls r0, r0, 0x1f
| `====< 0x0804d19a 7ff5f9ae bpl.w 0x804cf90
| | 0x0804d19e c048 ldr r0, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| | 0x0804d1a0 0078 ldrb r0, [r0]
| | 0x0804d1a2 10f0fb00 ands r0, r0, 0xfb
| | 0x0804d1a6 be49 ldr r1, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| | 0x0804d1a8 0870 strb r0, [r1]
| | 0x0804d1aa bd48 ldr r0, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| | 0x0804d1ac 0078 ldrb r0, [r0]
| | 0x0804d1ae 50f01000 orrs r0, r0, 0x10
| | 0x0804d1b2 bb49 ldr r1, [0x0804d4a2] ; [0x804d4a0:4]=0x2001e5f4
| | 0x0804d1b4 0870 strb r0, [r1]
\ `===< 0x0804d1b6 ebe6 b 0x804cf90
/ (fcn) func_4dc0c_more_bitbang_io 120
| Caller: init_a_lot_gfx_and_lcd
| func_4dc0c_more_bitbang_io ();
| 0x0804dc0c 00b5 push {lr}
| 0x0804dc0e 83b0 sub sp, 0xc
| 0x0804dc10 0121 movs r1, 1 ; 1
| 0x0804dc12 1020 movs r0, 0x10 ; 16
| 0x0804dc14 e8f767ff bl func_36ae6
| 0x0804dc18 0220 movs r0, 2 ; 2
| 0x0804dc1a 8df80500 strb.w r0, [sp, 5]
| 0x0804dc1e 0120 movs r0, 1 ; 1
| 0x0804dc20 8df80400 strb.w r0, [sp, 4]
| 0x0804dc24 0020 movs r0, 0
| 0x0804dc26 8df80600 strb.w r0, [sp, 6]
| 0x0804dc2a 0020 movs r0, 0
| 0x0804dc2c 8df80700 strb.w r0, [sp, 7]
| 0x0804dc30 2420 movs r0, 0x24 ; '$' ; 36
| 0x0804dc32 0090 str r0, [sp]
| 0x0804dc34 00a9 add r1, sp, 0
| 0x0804dc36 4b48 ldr r0, [0x0804dd66] ; [0x804dd64:4]=0x40021000 io_GPIOE
| 0x0804dc38 ddf786fd bl GPIO_Init
| 0x0804dc3c 4ff40050 mov.w r0, 0x2000
| 0x0804dc40 0090 str r0, [sp]
| 0x0804dc42 00a9 add r1, sp, 0
| 0x0804dc44 4848 ldr r0, [0x0804dd68] ; [0x804dd68:4]=0x40020800 io_GPIOC
| 0x0804dc46 ddf77ffd bl GPIO_Init
| 0x0804dc4a 0220 movs r0, 2 ; 2
| 0x0804dc4c 8df80500 strb.w r0, [sp, 5]
| 0x0804dc50 0020 movs r0, 0
| 0x0804dc52 8df80400 strb.w r0, [sp, 4]
| 0x0804dc56 0020 movs r0, 0
| 0x0804dc58 8df80700 strb.w r0, [sp, 7]
| 0x0804dc5c 0820 movs r0, 8 ; 8
| 0x0804dc5e 0090 str r0, [sp]
| 0x0804dc60 00a9 add r1, sp, 0
| 0x0804dc62 4048 ldr r0, [0x0804dd66] ; [0x804dd64:4]=0x40021000 io_GPIOE
| 0x0804dc64 ddf770fd bl GPIO_Init ; clear PC13 = 'B_SHIFT' ?
| 0x0804dc68 4ff40051 mov.w r1, 0x2000
| 0x0804dc6c 3e48 ldr r0, [0x0804dd68] ; [0x804dd68:4]=0x40020800 io_GPIOC
| 0x0804dc6e ddf7cefd bl GPIO_ResetBits
| 0x0804dc72 0421 movs r1, 4 ; 4
| 0x0804dc74 3b48 ldr r0, [0x0804dd64] ; [0x804dd64:4]=0x40021000 io_GPIOE
| 0x0804dc76 ddf7c8fd bl GPIO_SetBits ; set PE2 = 'DMR_CS' ?
| 0x0804dc7a 2021 movs r1, 0x20 ; 32
| 0x0804dc7c 3948 ldr r0, [0x0804dd64] ; [0x804dd64:4]=0x40021000 io_GPIOE
| 0x0804dc7e ddf7c6fd bl GPIO_ResetBits ; clear PE5 = 'DMR_SDI' or 'PLL_DAT' ?
\ 0x0804dc82 07bd pop {r0, r1, r2, pc}
/ (fcn) func_4f070 4
| Caller: biglist_pollsubsys_maybe
| func_4f070 ();
\ 0x0804f070 dff86c08 ldr.w r0, [func_4f8e4] ; [0x804f8e4:4]=0xe0002100 LEA get_keycode_from_table ; get_keycode_from_table
/ (fcn) func_4f29c 4
| Caller: biglist_pollsubsys_maybe
| func_4f29c ();
\ 0x0804f29c dff84006 ldr.w r0, [func_4f8e4] ; [0x804f8e4:4]=0xe0002100 LEA get_keycode_from_table ; get_keycode_from_table
/ (fcn) 78
| Caller: draw_botline_text
| something_using_menu_depth ();
| 0x0804f482 0120 movs r0, 1 ; 1
| 0x0804f484 0121 movs r1, 1 ; 1
| 0x0804f486 0122 movs r2, 1 ; 1
| 0x0804f488 0843 orrs r0, r1
| 0x0804f48a 1043 orrs r0, r2
| 0x0804f48c c0b2 uxtb r0, r0
| 0x0804f48e 0028 cmp r0, 0
| ,=< 0x0804f490 15d1 bne 0x804f4be
| | 0x0804f492 dff84007 ldr.w r0, [0x0804fbda] ; [0x804fbd8:4]=0x2001e7b4
| | 0x0804f496 0078 ldrb r0, [r0]
| | 0x0804f498 c0f30010 ubfx r0, r0, 4, 1
| | 0x0804f49c c007 lsls r0, r0, 0x1f
| ,==< 0x0804f49e 07d4 bmi 0x804f4b0
| || 0x0804f4a0 dff83007 ldr.w r0, [0x0804fbd8] ; [0x804fbd8:4]=0x2001e7b4
| || 0x0804f4a4 0078 ldrb r0, [r0]
| || 0x0804f4a6 50f01000 orrs r0, r0, 0x10
| || 0x0804f4aa dff82817 ldr.w r1, [0x0804fbda] ; [0x804fbd8:4]=0x2001e7b4
| || 0x0804f4ae 0870 strb r0, [r1]
| `--> 0x0804f4b0 dff82407 ldr.w r0, [0x0804fbdc] ; [0x804fbdc:4]=0x2001e88d
| | 0x0804f4b4 dff87c14 ldr.w r1, [0x0804f938] ; [0x804f938:4]=0x20004acc md380_menu_depth
| | 0x0804f4b8 0988 ldrh r1, [r1]
| | 0x0804f4ba 0180 strh r1, [r0]
| ,==< 0x0804f4bc 07e0 b 0x804f4ce
| |`-> 0x0804f4be dff81407 ldr.w r0, [0x0804fbda] ; [0x804fbd8:4]=0x2001e7b4
| | 0x0804f4c2 0078 ldrb r0, [r0]
| | 0x0804f4c4 10f0ef00 ands r0, r0, 0xef
| | 0x0804f4c8 dff80817 ldr.w r1, [0x0804fbd8] ; [0x804fbd8:4]=0x2001e7b4
| | 0x0804f4cc 0870 strb r0, [r1]
\ `--> 0x0804f4ce 7047 bx lr
/ (fcn) func_4f4d0 438
| Caller: biglist_pollsubsys_maybe
| func_4f4d0 ();
| 0x0804f4d0 dff80c04 ldr.w r0, [func_4f8e4] ; [0x804f8e4:4]=0xe0002100 LEA get_keycode_from_table ; get_keycode_from_table
| 0x0804f4d4 0078 ldrb r0, [r0]
| 0x0804f4d6 0006 lsls r0, r0, 0x18
| ,=< 0x0804f4d8 00f1d480 bmi.w 0x804f684
| | 0x0804f4dc dff8fc06 ldr.w r0, [0x0804fbe0] ; [0x804fbe0:4]=0x2001e887
| | 0x0804f4e0 0078 ldrb r0, [r0]
| | 0x0804f4e2 dff8f816 ldr.w r1, [0x0804fbe2] ; [0x804fbe0:4]=0x2001e887
| | 0x0804f4e6 0978 ldrb r1, [r1]
| | 0x0804f4e8 dff8f026 ldr.w r2, [0x0804fbe0] ; [0x804fbe0:4]=0x2001e887
| | 0x0804f4ec 1278 ldrb r2, [r2]
| | 0x0804f4ee 0843 orrs r0, r1
| | 0x0804f4f0 1043 orrs r0, r2
| | 0x0804f4f2 c0b2 uxtb r0, r0
| | 0x0804f4f4 0028 cmp r0, 0
| ,==< 0x0804f4f6 6ad1 bne 0x804f5ce
| || 0x0804f4f8 dff83004 ldr.w r0, [0x0804f930] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| || 0x0804f4fc 0078 ldrb r0, [r0]
| || 0x0804f4fe c0f30010 ubfx r0, r0, 4, 1
| || 0x0804f502 c007 lsls r0, r0, 0x1f
| ,===< 0x0804f504 33d4 bmi 0x804f56e
| ||| 0x0804f506 dff8d806 ldr.w r0, [0x0804fbe6] ; [0x804fbe4:4]=0x2001e888
| ||| 0x0804f50a 0078 ldrb r0, [r0]
| ||| 0x0804f50c 401c adds r0, r0, 1
| ||| 0x0804f50e dff8d016 ldr.w r1, [0x0804fbe6] ; [0x804fbe4:4]=0x2001e888
| ||| 0x0804f512 0870 strb r0, [r1]
| ||| 0x0804f514 dff8c806 ldr.w r0, [0x0804fbe4] ; [0x804fbe4:4]=0x2001e888
| ||| 0x0804f518 0078 ldrb r0, [r0]
| ||| 0x0804f51a 0528 cmp r0, 5 ; 5
| ,====< 0x0804f51c c0f0b280 blo.w 0x804f684
| |||| 0x0804f520 dff8bc06 ldr.w r0, [0x0804fbe4] ; [0x804fbe4:4]=0x2001e888
| |||| 0x0804f524 0021 movs r1, 0
| |||| 0x0804f526 0170 strb r1, [r0]
| |||| 0x0804f528 dff80004 ldr.w r0, [0x0804f930] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| |||| 0x0804f52c 0078 ldrb r0, [r0]
| |||| 0x0804f52e 50f01000 orrs r0, r0, 0x10
| |||| 0x0804f532 dff8f813 ldr.w r1, [0x0804f932] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| |||| 0x0804f536 0870 strb r0, [r1]
| |||| 0x0804f538 dff89c06 ldr.w r0, [0x0804fbdc] ; [0x804fbdc:4]=0x2001e88d
| |||| 0x0804f53c 0021 movs r1, 0
| |||| 0x0804f53e 0180 strh r1, [r0]
| |||| 0x0804f540 dff8e803 ldr.w r0, [0x0804f930] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| |||| 0x0804f544 4078 ldrb r0, [r0, 1]
| |||| 0x0804f546 c007 lsls r0, r0, 0x1f
| ,=====< 0x0804f548 40f19c80 bpl.w 0x804f684
| ||||| 0x0804f54c dff8dc03 ldr.w r0, [0x0804f930] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| ||||| 0x0804f550 0078 ldrb r0, [r0]
| ||||| 0x0804f552 50f02000 orrs r0, r0, 0x20
| ||||| 0x0804f556 dff8d413 ldr.w r1, [0x0804f932] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| ||||| 0x0804f55a 0870 strb r0, [r1]
| ||||| 0x0804f55c dff88003 ldr.w r0, [func_4f8e4] ; [0x804f8e4:4]=0xe0002100 LEA get_keycode_from_table ; get_keycode_from_table
| ||||| 0x0804f560 0078 ldrb r0, [r0]
| ||||| 0x0804f562 50f08000 orrs r0, r0, 0x80
| ||||| 0x0804f566 dff87813 ldr.w r1, [0x0804f8e6] ; [0x804f8e4:4]=0xe0002100 LEA get_keycode_from_table ; get_keycode_from_table
| ||||| 0x0804f56a 0870 strb r0, [r1]
| ,======< 0x0804f56c 8ae0 b 0x804f684
| |||`---> 0x0804f56e dff87006 ldr.w r0, [0x0804fbe6] ; [0x804fbe4:4]=0x2001e888
| ||| || 0x0804f572 0021 movs r1, 0
| ||| || 0x0804f574 0170 strb r1, [r0]
| ||| || 0x0804f576 dff8b403 ldr.w r0, [0x0804f932] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| ||| || 0x0804f57a 4078 ldrb r0, [r0, 1]
| ||| || 0x0804f57c c007 lsls r0, r0, 0x1f
| |||,===< 0x0804f57e 07d4 bmi 0x804f590
| |||||| 0x0804f580 dff85406 ldr.w r0, [0x0804fbdc] ; [0x804fbdc:4]=0x2001e88d
| |||||| 0x0804f584 0088 ldrh r0, [r0]
| |||||| 0x0804f586 dff8ac13 ldr.w r1, [0x0804f93a] ; [0x804f938:4]=0x20004acc md380_menu_depth
| |||||| 0x0804f58a 0988 ldrh r1, [r1]
| |||||| 0x0804f58c 8842 cmp r0, r1
| ,=======< 0x0804f58e 00d3 blo 0x804f592
| ====`---> 0x0804f590 78e0 b 0x804f684
| `-------> 0x0804f592 dff84406 ldr.w r0, [0x0804fbde] ; [0x804fbdc:4]=0x2001e88d
| ||| || 0x0804f596 0088 ldrh r0, [r0]
| ||| || 0x0804f598 401c adds r0, r0, 1
| ||| || 0x0804f59a dff83c16 ldr.w r1, [0x0804fbde] ; [0x804fbdc:4]=0x2001e88d
| ||| || 0x0804f59e 0880 strh r0, [r1]
| ||| || 0x0804f5a0 dff83406 ldr.w r0, [0x0804fbdc] ; [0x804fbdc:4]=0x2001e88d
| ||| || 0x0804f5a4 0088 ldrh r0, [r0]
| ||| || 0x0804f5a6 dff88c13 ldr.w r1, [0x0804f93a] ; [0x804f938:4]=0x20004acc md380_menu_depth
| ||| || 0x0804f5aa 0988 ldrh r1, [r1]
| ||| || 0x0804f5ac 8842 cmp r0, r1
| |||,===< 0x0804f5ae 69d1 bne 0x804f684
| |||||| 0x0804f5b0 dff87803 ldr.w r0, [0x0804f930] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| |||||| 0x0804f5b4 0078 ldrb r0, [r0]
| |||||| 0x0804f5b6 50f04000 orrs r0, r0, 0x40
| |||||| 0x0804f5ba dff87013 ldr.w r1, [0x0804f932] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| |||||| 0x0804f5be 0870 strb r0, [r1]
| |||||| 0x0804f5c0 c748 ldr r0, [0x0804f8e0] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| |||||| 0x0804f5c2 0078 ldrb r0, [r0]
| |||||| 0x0804f5c4 50f08000 orrs r0, r0, 0x80
| |||||| 0x0804f5c8 c549 ldr r1, [0x0804f8e0] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| |||||| 0x0804f5ca 0870 strb r0, [r1]
| ,=======< 0x0804f5cc 5ae0 b 0x804f684
| |||||`--> 0x0804f5ce dff85c03 ldr.w r0, [0x0804f932] ; [0x804f930:4]=0x2001e7ac keypress_time_some_button
| ||||| | 0x0804f5d2 0078 ldrb r0, [r0]
| ||||| | 0x0804f5d4 c0f30010 ubfx r0, r0, 4, 1
| ||||| | 0x0804f5d8 c007 lsls r0, r0, 0x1f
| |||||,==< 0x0804f5da 4fd5 bpl 0x804f67c
| ||||||| 0x0804f5dc dff80006 ldr.w r0, [0x0804fbe4] ; [0x804fbe4:4]=0x2001e888
| ||||||| 0x0804f5e0 0078 ldrb r0, [r0]
| ||||||| 0x0804f5e2 401c adds r0, r0, 1
| ||||||| 0x0804f5e4 dff8f815 ldr.w r1, [0x0804fbe4] ; [0x804fbe4:4]=0x2001e888
| ||||||| 0x0804f5e8 0870 strb r0, [r1]
| ||||||| 0x0804f5ea dff8f405 ldr.w r0, [0x0804fbe6] ; [0x804fbe4:4]=0x2001e888
| ||||||| 0x0804f5ee 0078 ldrb r0, [r0]
| ||||||| 0x0804f5f0 0528 cmp r0, 5 ; 5
| ========< 0x0804f5f2 47d3 blo 0x804f684
| ||||||| 0x0804f5f4 dff8e805 ldr.w r0, [0x0804fbe4] ; [0x804fbe4:4]=0x2001e888
| ||||||| 0x0804f5f8 0021 movs r1, 0
| ||||||| 0x0804f5fa 0170 strb r1, [r0]
| ||||||| 0x0804f5fc cb48 ldr r0, [0x0804f92c] ; [0x804f92c:4]=0x2001e5f8 kb_keypressed
| ||||||| 0x0804f5fe 0078 ldrb r0, [r0]
| ||||||| 0x0804f600 10f0ef00 ands r0, r0, 0xef
| ||||||| 0x0804f604 c949 ldr r1, [0x0804f92c] ; [0x804f92c:4]=0x2001e5f8 kb_keypressed
| ||||||| 0x0804f606 0870 strb r0, [r1]
| ||||||| 0x0804f608 dff8cc05 ldr.w r0, [0x0804fbdc] ; [0x804fbdc:4]=0x2001e88d
| ||||||| 0x0804f60c 0088 ldrh r0, [r0]
| ||||||| 0x0804f60e c949 ldr r1, [0x0804f936] ; [0x804f934:4]=0x2001e7b8 kb_side_key_max_time
| ||||||| 0x0804f610 0988 ldrh r1, [r1]
| ||||||| 0x0804f612 8842 cmp r0, r1
| ========< 0x0804f614 25d2 bhs 0x804f662
| ||||||| 0x0804f616 c548 ldr r0, [0x0804f92e] ; [0x804f92c:4]=0x2001e5f8 kb_keypressed
| ||||||| 0x0804f618 4078 ldrb r0, [r0, 1]
| ||||||| 0x0804f61a c007 lsls r0, r0, 0x1f
| ========< 0x0804f61c 0cd5 bpl 0x804f638
| ||||||| 0x0804f61e c348 ldr r0, [0x0804f92e] ; [0x804f92c:4]=0x2001e5f8 kb_keypressed
| ||||||| 0x0804f620 0078 ldrb r0, [r0]
| ||||||| 0x0804f622 50f08000 orrs r0, r0, 0x80
| ||||||| 0x0804f626 c149 ldr r1, [0x0804f92e] ; [0x804f92c:4]=0x2001e5f8 kb_keypressed
| ||||||| 0x0804f628 0870 strb r0, [r1]
| ||||||| 0x0804f62a ad48 ldr r0, [0x0804f8e2] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0804f62c 0078 ldrb r0, [r0]
| ||||||| 0x0804f62e 50f08000 orrs r0, r0, 0x80
| ||||||| 0x0804f632 ab49 ldr r1, [0x0804f8e2] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0804f634 0870 strb r0, [r1]
| ========< 0x0804f636 25e0 b 0x804f684
| --------> 0x0804f638 bc48 ldr r0, [0x0804f92c] ; [0x804f92c:4]=0x2001e5f8 kb_keypressed
| ||||||| 0x0804f63a 0078 ldrb r0, [r0]
| ||||||| 0x0804f63c 50f02000 orrs r0, r0, 0x20
| ||||||| 0x0804f640 ba49 ldr r1, [0x0804f92c] ; [0x804f92c:4]=0x2001e5f8 kb_keypressed
| ||||||| 0x0804f642 0870 strb r0, [r1]
| ||||||| 0x0804f644 dff86c05 ldr.w r0, [0x0804fbb8] ; [0x804fbb8:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0804f648 0078 ldrb r0, [r0]
| ||||||| 0x0804f64a 50f00400 orrs r0, r0, 4
| ||||||| 0x0804f64e dff86415 ldr.w r1, [0x0804fbba] ; [0x804fbb8:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0804f652 0870 strb r0, [r1]
| ||||||| 0x0804f654 a248 ldr r0, [0x0804f8e0] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0804f656 0078 ldrb r0, [r0]
| ||||||| 0x0804f658 50f08000 orrs r0, r0, 0x80
| ||||||| 0x0804f65c a049 ldr r1, [0x0804f8e0] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0804f65e 0870 strb r0, [r1]
| ========< 0x0804f660 10e0 b 0x804f684
| --------> 0x0804f662 b248 ldr r0, [0x0804f92e] ; [0x804f92c:4]=0x2001e5f8 kb_keypressed
| ||||||| 0x0804f664 0078 ldrb r0, [r0]
| ||||||| 0x0804f666 50f08000 orrs r0, r0, 0x80
| ||||||| 0x0804f66a b049 ldr r1, [0x0804f92e] ; [0x804f92c:4]=0x2001e5f8 kb_keypressed
| ||||||| 0x0804f66c 0870 strb r0, [r1]
| ||||||| 0x0804f66e 9c48 ldr r0, [0x0804f8e2] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0804f670 0078 ldrb r0, [r0]
| ||||||| 0x0804f672 50f08000 orrs r0, r0, 0x80
| ||||||| 0x0804f676 9a49 ldr r1, [0x0804f8e2] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0804f678 0870 strb r0, [r1]
| ========< 0x0804f67a 03e0 b 0x804f684
| |||||`--> 0x0804f67c dff86005 ldr.w r0, [0x0804fbe4] ; [0x804fbe4:4]=0x2001e888
| ||||| | 0x0804f680 0021 movs r1, 0
| ||||| | 0x0804f682 0170 strb r1, [r0]
\ `````-`-> 0x0804f684 7047 bx lr
/ (fcn) dummy_4f686 2
| Caller: draw_botline_text
| dummy_4f686 ();
\ 0x0804f686 7047 bx lr
/ (fcn) dummy_4f688 2
| Caller: biglist_pollsubsys_maybe
| dummy_4f688 ();
\ 0x0804f688 7047 bx lr
/ (fcn) func_4f68a_polls_EXT_PTT 84
| Caller: draw_botline_text
| func_4f68a_polls_EXT_PTT ();
| 0x0804f68a 38b5 push {r3, r4, r5, lr}
| 0x0804f68c 4ff48051 mov.w r1, 0x1000
| 0x0804f690 5148 ldr r0, [0x0804f7d8] ; [0x804f7d8:4]=0x40021000 io_GPIOE
| 0x0804f692 dcf7acf8 bl GPIO_ReadInputDataBit ; poll PE12 = 'EXT_PTT' ..
| 0x0804f696 0400 movs r4, r0
| 0x0804f698 4ff48051 mov.w r1, 0x1000
| 0x0804f69c 4e48 ldr r0, [0x0804f7d8] ; [0x804f7d8:4]=0x40021000 io_GPIOE
| 0x0804f69e dcf7a6f8 bl GPIO_ReadInputDataBit ; .. 3 times for debouncing ?
| 0x0804f6a2 0500 movs r5, r0
| 0x0804f6a4 4ff48051 mov.w r1, 0x1000
| 0x0804f6a8 4b48 ldr r0, [0x0804f7d8] ; [0x804f7d8:4]=0x40021000 io_GPIOE
| 0x0804f6aa dcf7a0f8 bl GPIO_ReadInputDataBit
| 0x0804f6ae 55ea0401 orrs.w r1, r5, r4
| 0x0804f6b2 0843 orrs r0, r1
| 0x0804f6b4 c0b2 uxtb r0, r0
| 0x0804f6b6 0028 cmp r0, 0
| ,=< 0x0804f6b8 08d1 bne 0x804f6cc
| | 0x0804f6ba dff8fc04 ldr.w r0, [0x0804fbbe] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| | 0x0804f6be c078 ldrb r0, [r0, 3]
| | 0x0804f6c0 50f00800 orrs r0, r0, 8
| | 0x0804f6c4 dff8f014 ldr.w r1, [0x0804fbbc] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| | 0x0804f6c8 c870 strb r0, [r1, 3]
| ,==< 0x0804f6ca 07e0 b 0x804f6dc
| |`-> 0x0804f6cc dff8e804 ldr.w r0, [0x0804fbbc] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| | 0x0804f6d0 c078 ldrb r0, [r0, 3]
| | 0x0804f6d2 10f0f700 ands r0, r0, 0xf7
| | 0x0804f6d6 dff8e014 ldr.w r1, [0x0804fbbe] ; [0x804fbbc:4]=0x2001e7b0 kb_top_side_key_press_time
| | 0x0804f6da c870 strb r0, [r1, 3]
\ `--> 0x0804f6dc 31bd pop {r0, r4, r5, pc}
/ (fcn) func_4f6de 240
| Caller: biglist_pollsubsys_maybe
| func_4f6de ();
| 0x0804f6de 38b5 push {r3, r4, r5, lr}
| 0x0804f6e0 7f48 ldr r0, [0x0804f8e0] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| 0x0804f6e2 0078 ldrb r0, [r0]
| 0x0804f6e4 0006 lsls r0, r0, 0x18
| ,=< 0x0804f6e6 71d4 bmi 0x804f7cc
| | 0x0804f6e8 4ff48051 mov.w r1, 0x1000
| | 0x0804f6ec 3a48 ldr r0, [0x0804f7d8] ; [0x804f7d8:4]=0x40021000 io_GPIOE
| | 0x0804f6ee dcf77ef8 bl GPIO_ReadInputDataBit
| | 0x0804f6f2 0400 movs r4, r0
| | 0x0804f6f4 4ff48051 mov.w r1, 0x1000
| | 0x0804f6f8 3748 ldr r0, [0x0804f7d8] ; [0x804f7d8:4]=0x40021000 io_GPIOE
| | 0x0804f6fa dcf778f8 bl GPIO_ReadInputDataBit
| | 0x0804f6fe 0500 movs r5, r0
| | 0x0804f700 4ff48051 mov.w r1, 0x1000
| | 0x0804f704 3448 ldr r0, [0x0804f7d8] ; [0x804f7d8:4]=0x40021000 io_GPIOE
| | 0x0804f706 dcf772f8 bl GPIO_ReadInputDataBit
| | 0x0804f70a 55ea0401 orrs.w r1, r5, r4
| | 0x0804f70e 0843 orrs r0, r1
| | 0x0804f710 c0b2 uxtb r0, r0
| | 0x0804f712 0028 cmp r0, 0
| ,==< 0x0804f714 2dd1 bne 0x804f772
| || 0x0804f716 8048 ldr r0, [0x0804f91a] ; [0x804f918:4]=0x2001e5ec base_for_longpress_struct
| || 0x0804f718 c078 ldrb r0, [r0, 3]
| || 0x0804f71a c0f3c000 ubfx r0, r0, 3, 1
| || 0x0804f71e c007 lsls r0, r0, 0x1f
| ,===< 0x0804f720 22d4 bmi 0x804f768
| ||| 0x0804f722 dff8c004 ldr.w r0, [0x0804fbea] ; [0x804fbe8:4]=0x40020c00 io_GPIOD
| ||| 0x0804f726 0078 ldrb r0, [r0]
| ||| 0x0804f728 401c adds r0, r0, 1
| ||| 0x0804f72a dff8b814 ldr.w r1, [0x0804fbea] ; [0x804fbe8:4]=0x40020c00 io_GPIOD
| ||| 0x0804f72e 0870 strb r0, [r1]
| ||| 0x0804f730 dff8b004 ldr.w r0, [0x0804fbe8] ; [0x804fbe8:4]=0x40020c00 io_GPIOD
| ||| 0x0804f734 0078 ldrb r0, [r0]
| ||| 0x0804f736 0c28 cmp r0, 0xc ; 12
| ,====< 0x0804f738 48d3 blo 0x804f7cc
| |||| 0x0804f73a dff8a804 ldr.w r0, [0x0804fbea] ; [0x804fbe8:4]=0x40020c00 io_GPIOD
| |||| 0x0804f73e 0021 movs r1, 0
| |||| 0x0804f740 0170 strb r1, [r0]
| |||| 0x0804f742 7548 ldr r0, [0x0804f91a] ; [0x804f918:4]=0x2001e5ec base_for_longpress_struct
| |||| 0x0804f744 c078 ldrb r0, [r0, 3]
| |||| 0x0804f746 50f00800 orrs r0, r0, 8
| |||| 0x0804f74a 7349 ldr r1, [0x0804f91a] ; [0x804f918:4]=0x2001e5ec base_for_longpress_struct
| |||| 0x0804f74c c870 strb r0, [r1, 3]
| |||| 0x0804f74e 7248 ldr r0, [0x0804f91a] ; [0x804f918:4]=0x2001e5ec base_for_longpress_struct
| |||| 0x0804f750 c078 ldrb r0, [r0, 3]
| |||| 0x0804f752 50f01000 orrs r0, r0, 0x10
| |||| 0x0804f756 7049 ldr r1, [0x0804f91a] ; [0x804f918:4]=0x2001e5ec base_for_longpress_struct
| |||| 0x0804f758 c870 strb r0, [r1, 3]
| |||| 0x0804f75a 6148 ldr r0, [0x0804f8e2] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| |||| 0x0804f75c 0078 ldrb r0, [r0]
| |||| 0x0804f75e 50f08000 orrs r0, r0, 0x80
| |||| 0x0804f762 5f49 ldr r1, [0x0804f8e2] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| |||| 0x0804f764 0870 strb r0, [r1]
| ,=====< 0x0804f766 31e0 b 0x804f7cc
| ||`---> 0x0804f768 dff87804 ldr.w r0, [0x0804fbe8] ; [0x804fbe8:4]=0x40020c00 io_GPIOD
| || || 0x0804f76c 0021 movs r1, 0
| || || 0x0804f76e 0170 strb r1, [r0]
| ||,===< 0x0804f770 2ce0 b 0x804f7cc
| |||`--> 0x0804f772 6948 ldr r0, [0x0804f91a] ; [0x804f918:4]=0x2001e5ec base_for_longpress_struct
| ||| | 0x0804f774 c078 ldrb r0, [r0, 3]
| ||| | 0x0804f776 c0f3c000 ubfx r0, r0, 3, 1
| ||| | 0x0804f77a c007 lsls r0, r0, 0x1f
| |||,==< 0x0804f77c 22d5 bpl 0x804f7c4
| ||||| 0x0804f77e dff86404 ldr.w r0, [0x0804fbea] ; [0x804fbe8:4]=0x40020c00 io_GPIOD
| ||||| 0x0804f782 0078 ldrb r0, [r0]
| ||||| 0x0804f784 401c adds r0, r0, 1
| ||||| 0x0804f786 dff85c14 ldr.w r1, [0x0804fbea] ; [0x804fbe8:4]=0x40020c00 io_GPIOD
| ||||| 0x0804f78a 0870 strb r0, [r1]
| ||||| 0x0804f78c dff85404 ldr.w r0, [0x0804fbe8] ; [0x804fbe8:4]=0x40020c00 io_GPIOD
| ||||| 0x0804f790 0078 ldrb r0, [r0]
| ||||| 0x0804f792 0628 cmp r0, 6 ; 6
| ,======< 0x0804f794 1ad3 blo 0x804f7cc
| |||||| 0x0804f796 dff84c04 ldr.w r0, [0x0804fbea] ; [0x804fbe8:4]=0x40020c00 io_GPIOD
| |||||| 0x0804f79a 0021 movs r1, 0
| |||||| 0x0804f79c 0170 strb r1, [r0]
| |||||| 0x0804f79e 5e48 ldr r0, [0x0804f91a] ; [0x804f918:4]=0x2001e5ec base_for_longpress_struct
| |||||| 0x0804f7a0 c078 ldrb r0, [r0, 3]
| |||||| 0x0804f7a2 10f0f700 ands r0, r0, 0xf7
| |||||| 0x0804f7a6 5c49 ldr r1, [0x0804f91a] ; [0x804f918:4]=0x2001e5ec base_for_longpress_struct
| |||||| 0x0804f7a8 c870 strb r0, [r1, 3]
| |||||| 0x0804f7aa 5b48 ldr r0, [0x0804f91a] ; [0x804f918:4]=0x2001e5ec base_for_longpress_struct
| |||||| 0x0804f7ac c078 ldrb r0, [r0, 3]
| |||||| 0x0804f7ae 50f02000 orrs r0, r0, 0x20
| |||||| 0x0804f7b2 5949 ldr r1, [0x0804f91a] ; [0x804f918:4]=0x2001e5ec base_for_longpress_struct
| |||||| 0x0804f7b4 c870 strb r0, [r1, 3]
| |||||| 0x0804f7b6 4a48 ldr r0, [0x0804f8e2] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| |||||| 0x0804f7b8 0078 ldrb r0, [r0]
| |||||| 0x0804f7ba 50f08000 orrs r0, r0, 0x80
| |||||| 0x0804f7be 4849 ldr r1, [0x0804f8e2] ; [0x804f8e0:4]=0x2001e5f0 radio_status_1
| |||||| 0x0804f7c0 0870 strb r0, [r1]
| ,=======< 0x0804f7c2 03e0 b 0x804f7cc
| |||||`--> 0x0804f7c4 dff81c04 ldr.w r0, [0x0804fbe8] ; [0x804fbe8:4]=0x40020c00 io_GPIOD
| ||||| | 0x0804f7c8 0021 movs r1, 0
| ||||| | 0x0804f7ca 0170 strb r1, [r0]
\ `````-`-> 0x0804f7cc 31bd pop {r0, r4, r5, pc}
;-- get_keycode_from_table:
/ (fcn) func_4f8e4 48
| Caller: keypress_max_time_reached
| func_4f8e4 ();
| 0x0804f8e4 0021 movs r1, 0
| ,=< 0x0804f8e6 00e0 b 0x804f8ea
| .--> 0x0804f8e8 491c adds r1, r1, 1
| |`-> ;-- get_keycode_from_table_2:
| |`-> 0x0804f8ea c9b2 uxtb r1, r1
| | 0x0804f8ec 1929 cmp r1, 0x19 ; 25
| |,=< 0x0804f8ee 0fd2 bhs 0x804f910
| || 0x0804f8f0 80b2 uxth r0, r0
| || 0x0804f8f2 c9b2 uxtb r1, r1
| || 0x0804f8f4 dff80823 ldr.w r2, [0x0804fc04] ; [0x804fc04:4]=0x2001e5f0 radio_status_1
| || 0x0804f8f8 32f81120 ldrh.w r2, [r2, r1, lsl 1]
| || 0x0804f8fc 0240 ands r2, r0
| || 0x0804f8fe c9b2 uxtb r1, r1
| || 0x0804f900 bf4b ldr r3, [0x0804fc00] ; [0x804fc00:4]=0x8099178
| || 0x0804f902 33f81130 ldrh.w r3, [r3, r1, lsl 1]
| || 0x0804f906 9a42 cmp r2, r3
| `==< 0x0804f908 eed1 bne 0x804f8e8
| | 0x0804f90a 0800 movs r0, r1
| | 0x0804f90c c0b2 uxtb r0, r0
| ,==< 0x0804f90e 00e0 b 0x804f912
| |`-> 0x0804f910 ff20 movs r0, 0xff ; 255
\ `--> 0x0804f912 7047 bx lr
/ (fcn) dummy_4fc26 2
| Caller: biglist_pollsubsys_maybe
| dummy_4fc26 ();
\ 0x0804fc26 7047 bx lr
/ (fcn) dummy_4fc2a 2
| Caller: biglist_pollsubsys_maybe
| dummy_4fc2a ();
\ 0x0804fc2a 7047 bx lr
/ (fcn) dummy_4fc2e 2
| Caller: biglist_pollsubsys_maybe
| dummy_4fc2e ();
\ 0x0804fc2e 7047 bx lr
/ (fcn) dummy_4fc32 2
| Caller: biglist_pollsubsys_maybe
| dummy_4fc32 ();
\ 0x0804fc32 7047 bx lr
/ (fcn) func_4fc24_dummy 2
| Caller: draw_botline_text
| func_4fc24_dummy ();
\ 0x0804fc24 7047 bx lr
/ (fcn) func_4fc30_dummy 2
| Caller: draw_botline_text
| func_4fc30_dummy ();
\ 0x0804fc30 7047 bx lr
/ (fcn) Read_Channel_Switch_maybe 208
| Caller: CallsReadChannelSwitch
| Read_Channel_Switch_maybe ();
| 0x0804fc34 70b5 push {r4, r5, r6, lr}
| 0x0804fc36 0024 movs r4, 0
| 0x0804fc38 4ff48041 mov.w r1, 0x4000
| 0x0804fc3c 5c48 ldr r0, [0x0804fdb0] ; [0x804fdb0:4]=0x40021000 io_GPIOE
| 0x0804fc3e dbf7d6fd bl GPIO_ReadInputDataBit ; poll PE14 = encoder bit 0 ..
| 0x0804fc42 0500 movs r5, r0
| 0x0804fc44 4ff48041 mov.w r1, 0x4000
| 0x0804fc48 5948 ldr r0, [0x0804fdb0] ; [0x804fdb0:4]=0x40021000 io_GPIOE
| 0x0804fc4a dbf7d0fd bl GPIO_ReadInputDataBit ; .. 3 times for debouncing ?
| 0x0804fc4e 0600 movs r6, r0
| 0x0804fc50 4ff48041 mov.w r1, 0x4000
| 0x0804fc54 5648 ldr r0, [0x0804fdb0] ; [0x804fdb0:4]=0x40021000 io_GPIOE
| 0x0804fc56 dbf7cafd bl GPIO_ReadInputDataBit
| 0x0804fc5a 56ea0501 orrs.w r1, r6, r5
| 0x0804fc5e 0843 orrs r0, r1
| 0x0804fc60 c0b2 uxtb r0, r0
| 0x0804fc62 0028 cmp r0, 0
| ,=< 0x0804fc64 00d0 beq 0x804fc68
| | 0x0804fc66 641c adds r4, r4, 1
| `-> 0x0804fc68 4ff40041 mov.w r1, 0x8000
| 0x0804fc6c 5048 ldr r0, [0x0804fdb0] ; [0x804fdb0:4]=0x40021000 io_GPIOE
| 0x0804fc6e dbf7befd bl GPIO_ReadInputDataBit ; poll PE15 = encoder bit 1 ..
| 0x0804fc72 0500 movs r5, r0
| 0x0804fc74 4ff40041 mov.w r1, 0x8000
| 0x0804fc78 4d48 ldr r0, [0x0804fdb0] ; [0x804fdb0:4]=0x40021000 io_GPIOE
| 0x0804fc7a dbf7b8fd bl GPIO_ReadInputDataBit
| 0x0804fc7e 0600 movs r6, r0
| 0x0804fc80 4ff40041 mov.w r1, 0x8000
| 0x0804fc84 4a48 ldr r0, [0x0804fdb0] ; [0x804fdb0:4]=0x40021000 io_GPIOE
| 0x0804fc86 dbf7b2fd bl GPIO_ReadInputDataBit
| 0x0804fc8a 56ea0501 orrs.w r1, r6, r5
| 0x0804fc8e 0843 orrs r0, r1
| 0x0804fc90 c0b2 uxtb r0, r0
| 0x0804fc92 0028 cmp r0, 0
| ,=< 0x0804fc94 00d0 beq 0x804fc98
| | 0x0804fc96 a41c adds r4, r4, 2
| `-> 0x0804fc98 4ff48061 mov.w r1, 0x400 ; 1024
| 0x0804fc9c 4548 ldr r0, [0x0804fdb4] ; [0x804fdb4:4]=0x40020400 io_GPIOB
| 0x0804fc9e dbf7a6fd bl GPIO_ReadInputDataBit ; poll PB11 = encoder bit 3 ..
| 0x0804fca2 0500 movs r5, r0
| 0x0804fca4 4ff48061 mov.w r1, 0x400 ; 1024
| 0x0804fca8 4248 ldr r0, [0x0804fdb4] ; [0x804fdb4:4]=0x40020400 io_GPIOB
| 0x0804fcaa dbf7a0fd bl GPIO_ReadInputDataBit
| 0x0804fcae 0600 movs r6, r0
| 0x0804fcb0 4ff48061 mov.w r1, 0x400 ; 1024
| 0x0804fcb4 3f48 ldr r0, [0x0804fdb4] ; [0x804fdb4:4]=0x40020400 io_GPIOB
| 0x0804fcb6 dbf79afd bl GPIO_ReadInputDataBit
| 0x0804fcba 56ea0501 orrs.w r1, r6, r5
| 0x0804fcbe 0843 orrs r0, r1
| 0x0804fcc0 c0b2 uxtb r0, r0
| 0x0804fcc2 0028 cmp r0, 0
| ,=< 0x0804fcc4 00d0 beq 0x804fcc8
| | 0x0804fcc6 241d adds r4, r4, 4
| `-> 0x0804fcc8 4ff40061 mov.w r1, 0x800 ; 2048
| 0x0804fccc 3948 ldr r0, [0x0804fdb4] ; [0x804fdb4:4]=0x40020400 io_GPIOB
| 0x0804fcce dbf78efd bl GPIO_ReadInputDataBit
| 0x0804fcd2 0500 movs r5, r0
| 0x0804fcd4 4ff40061 mov.w r1, 0x800 ; 2048
| 0x0804fcd8 3648 ldr r0, [0x0804fdb4] ; [0x804fdb4:4]=0x40020400 io_GPIOB
| 0x0804fcda dbf788fd bl GPIO_ReadInputDataBit
| 0x0804fcde 0600 movs r6, r0
| 0x0804fce0 4ff40061 mov.w r1, 0x800 ; 2048
| 0x0804fce4 3348 ldr r0, [0x0804fdb4] ; [0x804fdb4:4]=0x40020400 io_GPIOB
| 0x0804fce6 dbf782fd bl GPIO_ReadInputDataBit
| 0x0804fcea 56ea0501 orrs.w r1, r6, r5
| 0x0804fcee 0843 orrs r0, r1
| 0x0804fcf0 c0b2 uxtb r0, r0
| 0x0804fcf2 0028 cmp r0, 0
| ,=< 0x0804fcf4 00d0 beq 0x804fcf8
| | 0x0804fcf6 0834 adds r4, 8
| `-> 0x0804fcf8 e4b2 uxtb r4, r4
| 0x0804fcfa 2f48 ldr r0, [0x0804fdba] ; [0x804fdb8:4]=0x80f8704
| 0x0804fcfc 245c ldrb r4, [r4, r0]
| 0x0804fcfe 2000 movs r0, r4
| 0x0804fd00 c0b2 uxtb r0, r0
\ 0x0804fd02 70bd pop {r4, r5, r6, pc}
/ (fcn) CallsReadChannelSwitch 136
| Caller: Something_using_Channel_Number mainloop_entry
| CallsReadChannelSwitch ();
| 0x0804fd04 80b5 push {r7, lr}
| 0x0804fd06 2d48 ldr r0, [0x0804fdbe] ; [0x804fdbc:4]=0x2001e5f0 radio_status_1
| 0x0804fd08 4078 ldrb r0, [r0, 1]
| 0x0804fd0a c007 lsls r0, r0, 0x1f
| ,=< 0x0804fd0c 3dd4 bmi 0x804fd8a
| | 0x0804fd0e 2c48 ldr r0, [0x0804fdc2] ; [0x804fdc0:4]=0x2001e8f5 msg_status_flag1
| | 0x0804fd10 0078 ldrb r0, [r0]
| | 0x0804fd12 401e subs r0, r0, 1
| | 0x0804fd14 c0b2 uxtb r0, r0
| | 0x0804fd16 0828 cmp r0, 8 ; 8
| ,==< 0x0804fd18 04d2 bhs 0x804fd24
| || 0x0804fd1a 2a48 ldr r0, [0x0804fdc6] ; [0x804fdc4:4]=0x2001e895 msg_sms_flags_shifted
| || 0x0804fd1c 0078 ldrb r0, [r0]
| || 0x0804fd1e 0f21 movs r1, 0xf ; 15
| || 0x0804fd20 0842 tst r0, r1
| ,===< 0x0804fd22 32d0 beq 0x804fd8a
| |`--> 0x0804fd24 fff786ff bl Read_Channel_Switch_maybe
| | | 0x0804fd28 2749 ldr r1, [0x0804fdc8] ; [0x804fdc8:4]=0x2001e8c1 channel_num
| | | 0x0804fd2a 0978 ldrb r1, [r1]
| | | 0x0804fd2c c0b2 uxtb r0, r0
| | | 0x0804fd2e 8842 cmp r0, r1
| |,==< 0x0804fd30 03d1 bne 0x804fd3a
| ||| 0x0804fd32 2648 ldr r0, [0x0804fdce] ; [0x804fdcc:4]=0x2001e868
| ||| 0x0804fd34 0021 movs r1, 0
| ||| 0x0804fd36 0170 strb r1, [r0]
| ,====< 0x0804fd38 27e0 b 0x804fd8a
| ||`--> 0x0804fd3a 2549 ldr r1, [0x0804fdd2] ; [0x804fdd0:4]=0x2001e867
| || | 0x0804fd3c 0978 ldrb r1, [r1]
| || | 0x0804fd3e c0b2 uxtb r0, r0
| || | 0x0804fd40 8842 cmp r0, r1
| ||,==< 0x0804fd42 08d0 beq 0x804fd56
| |||| 0x0804fd44 2249 ldr r1, [0x0804fdd0] ; [0x804fdd0:4]=0x2001e867
| |||| 0x0804fd46 0870 strb r0, [r1]
| |||| 0x0804fd48 2048 ldr r0, [0x0804fdcc] ; [0x804fdcc:4]=0x2001e868
| |||| 0x0804fd4a 0021 movs r1, 0
| |||| 0x0804fd4c 0170 strb r1, [r0]
| |||| 0x0804fd4e 2148 ldr r0, [0x0804fdd6] ; [0x804fdd4:4]=0x2001e905
| |||| 0x0804fd50 0021 movs r1, 0
| |||| 0x0804fd52 0170 strb r1, [r0]
| ,=====< 0x0804fd54 19e0 b 0x804fd8a
| |||`--> 0x0804fd56 1d49 ldr r1, [0x0804fdce] ; [0x804fdcc:4]=0x2001e868
| ||| | 0x0804fd58 0978 ldrb r1, [r1]
| ||| | 0x0804fd5a 491c adds r1, r1, 1
| ||| | 0x0804fd5c 1b4a ldr r2, [0x0804fdcc] ; [0x804fdcc:4]=0x2001e868
| ||| | 0x0804fd5e 1170 strb r1, [r2]
| ||| | 0x0804fd60 1a49 ldr r1, [0x0804fdcc] ; [0x804fdcc:4]=0x2001e868
| ||| | 0x0804fd62 0978 ldrb r1, [r1]
| ||| | 0x0804fd64 0a29 cmp r1, 0xa ; 10
| |||,==< 0x0804fd66 10d3 blo 0x804fd8a
| ||||| 0x0804fd68 1849 ldr r1, [0x0804fdcc] ; [0x804fdcc:4]=0x2001e868
| ||||| 0x0804fd6a 0022 movs r2, 0
| ||||| 0x0804fd6c 0a70 strb r2, [r1]
| ||||| 0x0804fd6e 1649 ldr r1, [0x0804fdca] ; [0x804fdc8:4]=0x2001e8c1 channel_num
| ||||| 0x0804fd70 0870 strb r0, [r1]
| ||||| 0x0804fd72 1948 ldr r0, [0x0804fdda] ; [0x804fdd8:4]=0x2001e5ec base_for_longpress_struct
| ||||| 0x0804fd74 0078 ldrb r0, [r0]
| ||||| 0x0804fd76 50f00100 orrs r0, r0, 1
| ||||| 0x0804fd7a 1749 ldr r1, [0x0804fdda] ; [0x804fdd8:4]=0x2001e5ec base_for_longpress_struct
| ||||| 0x0804fd7c 0870 strb r0, [r1]
| ||||| 0x0804fd7e 0f48 ldr r0, [0x0804fdbe] ; [0x804fdbc:4]=0x2001e5f0 radio_status_1
| ||||| 0x0804fd80 0078 ldrb r0, [r0]
| ||||| 0x0804fd82 50f08000 orrs r0, r0, 0x80
| ||||| 0x0804fd86 0d49 ldr r1, [0x0804fdbe] ; [0x804fdbc:4]=0x2001e5f0 radio_status_1
| ||||| 0x0804fd88 0870 strb r0, [r1]
\ `````-> 0x0804fd8a 01bd pop {r0, pc}
/ (fcn) Something_using_Channel_Number 36
| Caller: draw_botline_text
| Something_using_Channel_Number ();
| 0x0804fd8c 80b5 push {r7, lr}
| 0x0804fd8e 0e48 ldr r0, [0x0804fdca] ; [0x804fdc8:4]=0x2001e8c1 channel_num
| 0x0804fd90 0021 movs r1, 0
| 0x0804fd92 0170 strb r1, [r0]
| 0x0804fd94 1048 ldr r0, [0x0804fdd8] ; [0x804fdd8:4]=0x2001e5ec base_for_longpress_struct
| 0x0804fd96 0078 ldrb r0, [r0]
| 0x0804fd98 10f0fe00 ands r0, r0, 0xfe
| 0x0804fd9c 0e49 ldr r1, [0x0804fdd8] ; [0x804fdd8:4]=0x2001e5ec base_for_longpress_struct
| 0x0804fd9e 0870 strb r0, [r1]
| ,=< 0x0804fda0 01e0 b 0x804fda6
| .--> 0x0804fda2 fff7afff bl CallsReadChannelSwitch
| |`-> 0x0804fda6 0c48 ldr r0, [0x0804fdda] ; [0x804fdd8:4]=0x2001e5ec base_for_longpress_struct
| | 0x0804fda8 0078 ldrb r0, [r0]
| | 0x0804fdaa c007 lsls r0, r0, 0x1f
| `==< 0x0804fdac f9d5 bpl 0x804fda2
\ 0x0804fdae 01bd pop {r0, pc}
/ (fcn) func_4fddc 4
| Caller: init_more_and_start_watchdog
| func_4fddc ();
| 0x0804fddc 0a49 ldr r1, [0x0804fe08] ; [0x804fe08:4]=0x40003000 io_IWDG
\ 0x0804fdde 80b2 uxth r0, r0
/ (fcn) func_4fde4 4
| Caller: init_more_and_start_watchdog
| func_4fde4 ();
| 0x0804fde4 0949 ldr r1, [0x0804fe0c] ; [0x804fe0c:4]=0x40003004 io_IWDG_PR
\ 0x0804fde6 c0b2 uxtb r0, r0
/ (fcn) func_4fdec 8
| Caller: init_more_and_start_watchdog
| func_4fdec ();
| 0x0804fdec 0849 ldr r1, [0x0804fe10] ; [0x804fe10:4]=0x40003008 io_IWDG_SR
| 0x0804fdee 80b2 uxth r0, r0
| 0x0804fdf0 0860 str r0, [r1]
\ 0x0804fdf2 7047 bx lr
/ (fcn) FeedTheWatchdog 10
| Caller: call_F_4225_2 OTG_FS_IRQHandler init_more_and_start_watchdog
| FeedTheWatchdog ();
| 0x0804fdf4 0448 ldr r0, [0x0804fe08] ; [0x804fe08:4]=0x40003000 io_IWDG
| 0x0804fdf6 4af6aa21 movw r1, 0xaaaa
| 0x0804fdfa 0160 str r1, [r0]
\ 0x0804fdfc 7047 bx lr
/ (fcn) StartTheWatchdog 10
| Caller: init_more_and_start_watchdog
| StartTheWatchdog ();
| 0x0804fdfe 0248 ldr r0, [0x0804fe0a] ; [0x804fe08:4]=0x40003000 io_IWDG
| 0x0804fe00 4cf6cc41 movw r1, 0xcccc
| 0x0804fe04 0160 str r1, [r0]
\ 0x0804fe06 7047 bx lr
/ (fcn) func_4fe14_monster_accessing_C5000 7540
| Caller: c5000_wr_60_4
| func_4fe14_monster_accessing_C5000 ();
| 0x0804fe14 38b5 push {r3, r4, r5, lr}
| 0x0804fe16 0178 ldrb r1, [r0]
| 0x0804fe18 5429 cmp r1, 0x54 ; 'T' ; 84
| ,=< 0x0804fe1a 41f05586 bne.w 0x8051ac8
| | 0x0804fe1e 4178 ldrb r1, [r0, 1]
| | 0x0804fe20 8478 ldrb r4, [r0, 2]
| | 0x0804fe22 c578 ldrb r5, [r0, 3]
| | 0x0804fe24 0279 ldrb r2, [r0, 4]
| | 0x0804fe26 dff8683b ldr.w r3, [0x08050996] ; [0x8050994:4]=0x2001e89d
| | 0x0804fe2a 1a70 strb r2, [r3]
| | 0x0804fe2c 4279 ldrb r2, [r0, 5]
| | 0x0804fe2e dff8643b ldr.w r3, [0x0805099a] ; [0x8050998:4]=0x2001e8a0
| | 0x0804fe32 1a70 strb r2, [r3]
| | 0x0804fe34 8279 ldrb r2, [r0, 6]
| | 0x0804fe36 dff8603b ldr.w r3, [0x0805099e] ; [0x805099c:4]=0x2001e89f
| | 0x0804fe3a 1a70 strb r2, [r3]
| | 0x0804fe3c c079 ldrb r0, [r0, 7]
| | 0x0804fe3e dff85c2b ldr.w r2, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| | 0x0804fe42 1070 strb r0, [r2]
| | 0x0804fe44 dff8580b ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| | 0x0804fe48 0022 movs r2, 0
| | 0x0804fe4a 0272 strb r2, [r0, 8]
| | 0x0804fe4c dff8500b ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| | 0x0804fe50 0078 ldrb r0, [r0]
| | 0x0804fe52 10f0f300 ands r0, r0, 0xf3
| | 0x0804fe56 dff8482b ldr.w r2, [0x080509a6] ; [0x80509a4:4]=0x780048db
| | 0x0804fe5a 1070 strb r0, [r2]
| | 0x0804fe5c dff8400b ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| | 0x0804fe60 0079 ldrb r0, [r0, 4]
| | 0x0804fe62 10f0ef00 ands r0, r0, 0xef
| | 0x0804fe66 dff8382b ldr.w r2, [0x080509a6] ; [0x80509a4:4]=0x780048db
| | 0x0804fe6a 1071 strb r0, [r2, 4]
| | 0x0804fe6c c9b2 uxtb r1, r1
| | 0x0804fe6e 0129 cmp r1, 1 ; 1
| ,==< 0x0804fe70 5dd0 beq 0x804ff2e
| ,===< 0x0804fe72 c1f02886 blo.w 0x8051ac6
| ||| 0x0804fe76 0329 cmp r1, 3 ; 3
| ,====< 0x0804fe78 00f0e380 beq.w 0x8050042
| ,=====< 0x0804fe7c c0f09c80 blo.w 0x804ffb8
| ||||| 0x0804fe80 0529 cmp r1, 5 ; 5
| ,======< 0x0804fe82 00f05a81 beq.w 0x805013a
| ,=======< 0x0804fe86 c0f01a81 blo.w 0x80500be
| ||||||| 0x0804fe8a 0729 cmp r1, 7 ; 7
| ========< 0x0804fe8c 00f0d181 beq.w 0x8050232
| ========< 0x0804fe90 c0f09181 blo.w 0x80501b6
| ||||||| 0x0804fe94 0929 cmp r1, 9 ; 9
| ========< 0x0804fe96 00f00682 beq.w 0x80502a6
| ========< 0x0804fe9a c0f0e781 blo.w 0x805026c
| ||||||| 0x0804fe9e 0b29 cmp r1, 0xb ; 11
| ========< 0x0804fea0 00f07e83 beq.w 0x80505a0
| ========< 0x0804fea4 c0f00983 blo.w 0x80504ba
| ||||||| 0x0804fea8 0d29 cmp r1, 0xd ; 13
| ========< 0x0804feaa 00f04884 beq.w 0x805073e
| ========< 0x0804feae c0f0e483 blo.w 0x805067a
| ||||||| 0x0804feb2 0f29 cmp r1, 0xf ; 15
| ========< 0x0804feb4 00f0dd84 beq.w 0x8050872
| ========< 0x0804feb8 c0f08e84 blo.w 0x80507d8
| ||||||| 0x0804febc 1129 cmp r1, 0x11 ; 17
| ========< 0x0804febe 00f07b85 beq.w 0x80509b8
| ========< 0x0804fec2 c0f02385 blo.w 0x805090c
| ||||||| 0x0804fec6 1329 cmp r1, 0x13 ; 19
| ========< 0x0804fec8 00f05a86 beq.w 0x8050b80
| ========< 0x0804fecc c0f0e685 blo.w 0x8050a9c
| ||||||| 0x0804fed0 1529 cmp r1, 0x15 ; 21
| ========< 0x0804fed2 00f03d87 beq.w 0x8050d50
| ========< 0x0804fed6 c0f0c586 blo.w 0x8050c64
| ||||||| 0x0804feda 1729 cmp r1, 0x17 ; 23
| ========< 0x0804fedc 01f01e80 beq.w 0x8050f1c
| ========< 0x0804fee0 c0f0a987 blo.w 0x8050e36
| ||||||| 0x0804fee4 1929 cmp r1, 0x19 ; 25
| ========< 0x0804fee6 01f0f980 beq.w 0x80510dc
| ========< 0x0804feea c1f08380 blo.w 0x8050ff4
| ||||||| 0x0804feee 1b29 cmp r1, 0x1b ; 27
| ========< 0x0804fef0 01f0c281 beq.w 0x8051278
| ========< 0x0804fef4 c1f02181 blo.w 0x805113a
| ||||||| 0x0804fef8 1d29 cmp r1, 0x1d ; 29
| ========< 0x0804fefa 01f0d282 beq.w 0x80514a2
| ========< 0x0804fefe c1f01c82 blo.w 0x805133a
| ||||||| 0x0804ff02 1f29 cmp r1, 0x1f ; 31
| ========< 0x0804ff04 01f07a83 beq.w 0x80515fc
| ========< 0x0804ff08 c1f07783 blo.w 0x80515fa
| ||||||| 0x0804ff0c 2129 cmp r1, 0x21 ; '!' ; 33
| ========< 0x0804ff0e 01f00584 beq.w 0x805171c
| ========< 0x0804ff12 c1f07483 blo.w 0x80515fe
| ||||||| 0x0804ff16 2329 cmp r1, 0x23 ; '#' ; 35
| ========< 0x0804ff18 01f0ff84 beq.w 0x805191a
| ========< 0x0804ff1c c1f09d84 blo.w 0x805185a
| ||||||| 0x0804ff20 2529 cmp r1, 0x25 ; '%' ; 37
| ========< 0x0804ff22 01f09f85 beq.w 0x8051a64
| ========< 0x0804ff26 c1f04985 blo.w 0x80519bc
| ========< 0x0804ff2a 01f0ccbd b.w 0x8051ac6
| |||||`--> 0x0804ff2e dff8e40d ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||| | 0x0804ff32 0078 ldrb r0, [r0]
| ||||| | 0x0804ff34 7028 cmp r0, 0x70 ; 'p' ; 112
| |||||,==< 0x0804ff36 3dd1 bne 0x804ffb4
| ||||||| 0x0804ff38 dff8d80d ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x0804ff3c 7121 movs r1, 0x71 ; 'q' ; 113
| ||||||| 0x0804ff3e 0170 strb r1, [r0]
| ||||||| 0x0804ff40 0122 movs r2, 1 ; 1
| ||||||| 0x0804ff42 4ff48041 mov.w r1, 0x4000
| ||||||| 0x0804ff46 dff8d00d ldr.w r0, [0x08050d1e] ; [0x8050d1c:4]=0xd40f8df
| ||||||| 0x0804ff4a dbf762fc bl GPIO_WriteBit
| ||||||| 0x0804ff4e 0520 movs r0, 5 ; 5
| ||||||| 0x0804ff50 01f01cfe bl func_51b8c
| ||||||| 0x0804ff54 dff8480a ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0804ff58 0079 ldrb r0, [r0, 4]
| ||||||| 0x0804ff5a 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x0804ff5e dff8401a ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0804ff62 0871 strb r0, [r1, 4]
| ||||||| 0x0804ff64 dff8380a ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0804ff68 c078 ldrb r0, [r0, 3]
| ||||||| 0x0804ff6a 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x0804ff6e dff8301a ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0804ff72 c870 strb r0, [r1, 3]
| ||||||| 0x0804ff74 0120 movs r0, 1 ; 1
| ||||||| 0x0804ff76 dff8281a ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0804ff7a 0978 ldrb r1, [r1]
| ||||||| 0x0804ff7c 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x0804ff80 dff81c0a ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0804ff84 0170 strb r1, [r0]
| ||||||| 0x0804ff86 dff8180a ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0804ff8a 0078 ldrb r0, [r0]
| ||||||| 0x0804ff8c 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x0804ff90 dff80c1a ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0804ff94 0870 strb r0, [r1]
| ||||||| 0x0804ff96 dff8080a ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0804ff9a 4ff6ff71 movw r1, 0xffff
| ||||||| 0x0804ff9e 4183 strh r1, [r0, 0x1a]
| ||||||| 0x0804ffa0 dff8fc09 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0804ffa4 4ff6ff71 movw r1, 0xffff
| ||||||| 0x0804ffa8 0183 strh r1, [r0, 0x18]
| ||||||| 0x0804ffaa eff7fdfe bl func_3fda8
| ||||||| 0x0804ffae edf7f7fa bl func_3d5a0
| ========< 0x0804ffb2 ffe7 b 0x804ffb4
| -----`--> 0x0804ffb4 01f0e7bd b.w 0x8051b86
| ||`-----> 0x0804ffb8 dff8580d ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| || || | 0x0804ffbc 0078 ldrb r0, [r0]
| || || | 0x0804ffbe 7028 cmp r0, 0x70 ; 'p' ; 112
| || ||,==< 0x0804ffc0 3dd1 bne 0x805003e
| || |||| 0x0804ffc2 dff8500d ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| || |||| 0x0804ffc6 7221 movs r1, 0x72 ; 'r' ; 114
| || |||| 0x0804ffc8 0170 strb r1, [r0]
| || |||| 0x0804ffca 0122 movs r2, 1 ; 1
| || |||| 0x0804ffcc 4ff48041 mov.w r1, 0x4000
| || |||| 0x0804ffd0 dff8440d ldr.w r0, [0x08050d1c] ; [0x8050d1c:4]=0xd40f8df
| || |||| 0x0804ffd4 dbf71dfc bl GPIO_WriteBit
| || |||| 0x0804ffd8 0520 movs r0, 5 ; 5
| || |||| 0x0804ffda 01f0d7fd bl func_51b8c
| || |||| 0x0804ffde dff8c009 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || |||| 0x0804ffe2 0079 ldrb r0, [r0, 4]
| || |||| 0x0804ffe4 10f0fc00 ands r0, r0, 0xfc
| || |||| 0x0804ffe8 dff8b419 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || |||| 0x0804ffec 0871 strb r0, [r1, 4]
| || |||| 0x0804ffee dff8b009 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || |||| 0x0804fff2 c078 ldrb r0, [r0, 3]
| || |||| 0x0804fff4 10f0fc00 ands r0, r0, 0xfc
| || |||| 0x0804fff8 dff8a419 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || |||| 0x0804fffc c870 strb r0, [r1, 3]
| || |||| 0x0804fffe 0120 movs r0, 1 ; 1
| || |||| 0x08050000 dff89c19 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || |||| 0x08050004 0978 ldrb r1, [r1]
| || |||| 0x08050006 60f30101 bfi r1, r0, 0, 2
| || |||| 0x0805000a dff89409 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || |||| 0x0805000e 0170 strb r1, [r0]
| || |||| 0x08050010 dff88c09 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || |||| 0x08050014 0078 ldrb r0, [r0]
| || |||| 0x08050016 10f0df00 ands r0, r0, 0xdf
| || |||| 0x0805001a dff88419 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || |||| 0x0805001e 0870 strb r0, [r1]
| || |||| 0x08050020 dff87c09 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || |||| 0x08050024 4ff6ff71 movw r1, 0xffff
| || |||| 0x08050028 4183 strh r1, [r0, 0x1a]
| || |||| 0x0805002a dff87409 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || |||| 0x0805002e 4ff6ff71 movw r1, 0xffff
| || |||| 0x08050032 0183 strh r1, [r0, 0x18]
| || |||| 0x08050034 eff7b8fe bl func_3fda8
| || |||| 0x08050038 edf7b2fa bl func_3d5a0
| ||,=====< 0x0805003c ffe7 b 0x805003e
| ==`--`--> 0x0805003e 01f0a2bd b.w 0x8051b86
| || `----> 0x08050042 dff8d00c ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| || | | 0x08050046 0078 ldrb r0, [r0]
| || | | 0x08050048 7028 cmp r0, 0x70 ; 'p' ; 112
| || |,==< 0x0805004a 36d1 bne 0x80500ba
| || ||| 0x0805004c dff8c40c ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| || ||| 0x08050050 7321 movs r1, 0x73 ; 's' ; 115
| || ||| 0x08050052 0170 strb r1, [r0]
| || ||| 0x08050054 0520 movs r0, 5 ; 5
| || ||| 0x08050056 01f099fd bl func_51b8c
| || ||| 0x0805005a dff84409 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || ||| 0x0805005e 0079 ldrb r0, [r0, 4]
| || ||| 0x08050060 10f0fc00 ands r0, r0, 0xfc
| || ||| 0x08050064 dff83819 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || ||| 0x08050068 0871 strb r0, [r1, 4]
| || ||| 0x0805006a dff83409 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || ||| 0x0805006e c078 ldrb r0, [r0, 3]
| || ||| 0x08050070 10f0fc00 ands r0, r0, 0xfc
| || ||| 0x08050074 dff82819 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || ||| 0x08050078 c870 strb r0, [r1, 3]
| || ||| 0x0805007a 0120 movs r0, 1 ; 1
| || ||| 0x0805007c dff82019 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || ||| 0x08050080 0978 ldrb r1, [r1]
| || ||| 0x08050082 60f30101 bfi r1, r0, 0, 2
| || ||| 0x08050086 dff81809 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || ||| 0x0805008a 0170 strb r1, [r0]
| || ||| 0x0805008c dff81009 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || ||| 0x08050090 0078 ldrb r0, [r0]
| || ||| 0x08050092 10f0df00 ands r0, r0, 0xdf
| || ||| 0x08050096 dff80819 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || ||| 0x0805009a 0870 strb r0, [r1]
| || ||| 0x0805009c dff80009 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || ||| 0x080500a0 4ff6ff71 movw r1, 0xffff
| || ||| 0x080500a4 4183 strh r1, [r0, 0x1a]
| || ||| 0x080500a6 dff8f808 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || ||| 0x080500aa 4ff6ff71 movw r1, 0xffff
| || ||| 0x080500ae 0183 strh r1, [r0, 0x18]
| || ||| 0x080500b0 eff77afe bl func_3fda8
| || ||| 0x080500b4 edf774fa bl func_3d5a0
| || ,====< 0x080500b8 ffe7 b 0x80500ba
| ||,`-`--> 0x080500ba 01f064bd b.w 0x8051b86
| `-------> 0x080500be dff8540c ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| || | | 0x080500c2 0078 ldrb r0, [r0]
| || | | 0x080500c4 7028 cmp r0, 0x70 ; 'p' ; 112
| || |,==< 0x080500c6 36d1 bne 0x8050136
| || ||| 0x080500c8 dff8480c ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| || ||| 0x080500cc 7421 movs r1, 0x74 ; 't' ; 116
| || ||| 0x080500ce 0170 strb r1, [r0]
| || ||| 0x080500d0 0520 movs r0, 5 ; 5
| || ||| 0x080500d2 01f05bfd bl func_51b8c
| || ||| 0x080500d6 dff8c808 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || ||| 0x080500da 0079 ldrb r0, [r0, 4]
| || ||| 0x080500dc 10f0fc00 ands r0, r0, 0xfc
| || ||| 0x080500e0 dff8bc18 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || ||| 0x080500e4 0871 strb r0, [r1, 4]
| || ||| 0x080500e6 dff8b808 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || ||| 0x080500ea c078 ldrb r0, [r0, 3]
| || ||| 0x080500ec 10f0fc00 ands r0, r0, 0xfc
| || ||| 0x080500f0 dff8ac18 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || ||| 0x080500f4 c870 strb r0, [r1, 3]
| || ||| 0x080500f6 0120 movs r0, 1 ; 1
| || ||| 0x080500f8 dff8a418 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || ||| 0x080500fc 0978 ldrb r1, [r1]
| || ||| 0x080500fe 60f30101 bfi r1, r0, 0, 2
| || ||| 0x08050102 dff89c08 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || ||| 0x08050106 0170 strb r1, [r0]
| || ||| 0x08050108 dff89408 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || ||| 0x0805010c 0078 ldrb r0, [r0]
| || ||| 0x0805010e 10f0df00 ands r0, r0, 0xdf
| || ||| 0x08050112 dff88c18 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || ||| 0x08050116 0870 strb r0, [r1]
| || ||| 0x08050118 dff88408 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| || ||| 0x0805011c 4ff6ff71 movw r1, 0xffff
| || ||| 0x08050120 4183 strh r1, [r0, 0x1a]
| || ||| 0x08050122 dff87c08 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| || ||| 0x08050126 4ff6ff71 movw r1, 0xffff
| || ||| 0x0805012a 0183 strh r1, [r0, 0x18]
| || ||| 0x0805012c eff73cfe bl func_3fda8
| || ||| 0x08050130 edf736fa bl func_3d5a0
| ||,====< 0x08050134 ffe7 b 0x8050136
| ,==`-`--> 0x08050136 01f026bd b.w 0x8051b86
| |`------> 0x0805013a dff8d80b ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| | | | | 0x0805013e 0078 ldrb r0, [r0]
| | | | | 0x08050140 7028 cmp r0, 0x70 ; 'p' ; 112
| | | |,==< 0x08050142 36d1 bne 0x80501b2
| | | ||| 0x08050144 dff8cc0b ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| | | ||| 0x08050148 7521 movs r1, 0x75 ; 'u' ; 117
| | | ||| 0x0805014a 0170 strb r1, [r0]
| | | ||| 0x0805014c 0520 movs r0, 5 ; 5
| | | ||| 0x0805014e 01f01dfd bl func_51b8c
| | | ||| 0x08050152 dff84c08 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| | | ||| 0x08050156 0079 ldrb r0, [r0, 4]
| | | ||| 0x08050158 10f0fc00 ands r0, r0, 0xfc
| | | ||| 0x0805015c dff84018 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| | | ||| 0x08050160 0871 strb r0, [r1, 4]
| | | ||| 0x08050162 dff83c08 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| | | ||| 0x08050166 c078 ldrb r0, [r0, 3]
| | | ||| 0x08050168 10f0fc00 ands r0, r0, 0xfc
| | | ||| 0x0805016c dff83018 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| | | ||| 0x08050170 c870 strb r0, [r1, 3]
| | | ||| 0x08050172 0120 movs r0, 1 ; 1
| | | ||| 0x08050174 dff82818 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| | | ||| 0x08050178 0978 ldrb r1, [r1]
| | | ||| 0x0805017a 60f30101 bfi r1, r0, 0, 2
| | | ||| 0x0805017e dff82008 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| | | ||| 0x08050182 0170 strb r1, [r0]
| | | ||| 0x08050184 dff81808 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| | | ||| 0x08050188 0078 ldrb r0, [r0]
| | | ||| 0x0805018a 10f0df00 ands r0, r0, 0xdf
| | | ||| 0x0805018e dff81018 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| | | ||| 0x08050192 0870 strb r0, [r1]
| | | ||| 0x08050194 dff80808 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| | | ||| 0x08050198 4ff6ff71 movw r1, 0xffff
| | | ||| 0x0805019c 4183 strh r1, [r0, 0x1a]
| | | ||| 0x0805019e dff80008 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| | | ||| 0x080501a2 4ff6ff71 movw r1, 0xffff
| | | ||| 0x080501a6 0183 strh r1, [r0, 0x18]
| | | ||| 0x080501a8 eff7fefd bl func_3fda8
| | | ||| 0x080501ac edf7f8f9 bl func_3d5a0
| | |,====< 0x080501b0 ffe7 b 0x80501b2
| |,=`-`--> 0x080501b2 01f0e8bc b.w 0x8051b86
| --------> 0x080501b6 dff85c0b ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||| | | 0x080501ba 0078 ldrb r0, [r0]
| ||| | | 0x080501bc 7028 cmp r0, 0x70 ; 'p' ; 112
| ||| |,==< 0x080501be 36d1 bne 0x805022e
| ||| ||| 0x080501c0 dff8500b ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||| ||| 0x080501c4 7621 movs r1, 0x76 ; 'v' ; 118
| ||| ||| 0x080501c6 0170 strb r1, [r0]
| ||| ||| 0x080501c8 0520 movs r0, 5 ; 5
| ||| ||| 0x080501ca 01f0dffc bl func_51b8c
| ||| ||| 0x080501ce dff8d007 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x080501d2 0079 ldrb r0, [r0, 4]
| ||| ||| 0x080501d4 10f0fc00 ands r0, r0, 0xfc
| ||| ||| 0x080501d8 dff8c417 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x080501dc 0871 strb r0, [r1, 4]
| ||| ||| 0x080501de dff8c007 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x080501e2 c078 ldrb r0, [r0, 3]
| ||| ||| 0x080501e4 10f0fc00 ands r0, r0, 0xfc
| ||| ||| 0x080501e8 dff8b417 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x080501ec c870 strb r0, [r1, 3]
| ||| ||| 0x080501ee 0120 movs r0, 1 ; 1
| ||| ||| 0x080501f0 dff8ac17 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x080501f4 0978 ldrb r1, [r1]
| ||| ||| 0x080501f6 60f30101 bfi r1, r0, 0, 2
| ||| ||| 0x080501fa dff8a407 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x080501fe 0170 strb r1, [r0]
| ||| ||| 0x08050200 dff89c07 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x08050204 0078 ldrb r0, [r0]
| ||| ||| 0x08050206 10f0df00 ands r0, r0, 0xdf
| ||| ||| 0x0805020a dff89417 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x0805020e 0870 strb r0, [r1]
| ||| ||| 0x08050210 dff88c07 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x08050214 4ff6ff71 movw r1, 0xffff
| ||| ||| 0x08050218 4183 strh r1, [r0, 0x1a]
| ||| ||| 0x0805021a dff88407 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x0805021e 4ff6ff71 movw r1, 0xffff
| ||| ||| 0x08050222 0183 strh r1, [r0, 0x18]
| ||| ||| 0x08050224 eff7c0fd bl func_3fda8
| ||| ||| 0x08050228 edf7baf9 bl func_3d5a0
| |||,====< 0x0805022c ffe7 b 0x805022e
| ===`-`--> 0x0805022e 01f0aabc b.w 0x8051b86
| --------> 0x08050232 dff8e00a ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||| | | 0x08050236 0078 ldrb r0, [r0]
| ||| | | 0x08050238 7028 cmp r0, 0x70 ; 'p' ; 112
| ||| |,==< 0x0805023a 0ad1 bne 0x8050252
| ||| ||| 0x0805023c dff8d40a ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||| ||| 0x08050240 7721 movs r1, 0x77 ; 'w' ; 119
| ||| ||| 0x08050242 0170 strb r1, [r0]
| ||| ||| 0x08050244 dff8980d ldr.w r0, [0x08050fe4] ; [0x8050fe4:4]=0x2001e1ac contact
| ||| ||| 0x08050248 dff84417 ldr.w r1, [0x08050994] ; [0x8050994:4]=0x2001e89d
| ||| ||| 0x0805024c 0978 ldrb r1, [r1]
| ||| ||| 0x0805024e 8171 strb r1, [r0, 6]
| |||,====< 0x08050250 0ae0 b 0x8050268
| |||||`--> 0x08050252 dff8c00a ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||| | 0x08050256 0078 ldrb r0, [r0]
| ||||| | 0x08050258 7728 cmp r0, 0x77 ; 'w' ; 119
| |||||,==< 0x0805025a 05d1 bne 0x8050268
| ||||||| 0x0805025c dff8800d ldr.w r0, [0x08050fe4] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x08050260 dff82c17 ldr.w r1, [0x08050994] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x08050264 0978 ldrb r1, [r1]
| ||||||| 0x08050266 8171 strb r1, [r0, 6]
| ===`-`--> 0x08050268 01f08dbc b.w 0x8051b86
| --------> 0x0805026c dff8a40a ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||| | | 0x08050270 0078 ldrb r0, [r0]
| ||| | | 0x08050272 7028 cmp r0, 0x70 ; 'p' ; 112
| ||| |,==< 0x08050274 0ad1 bne 0x805028c
| ||| ||| 0x08050276 dff89c0a ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||| ||| 0x0805027a 7821 movs r1, 0x78 ; 'x' ; 120
| ||| ||| 0x0805027c 0170 strb r1, [r0]
| ||| ||| 0x0805027e dff8600d ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||| ||| 0x08050282 dff80c17 ldr.w r1, [0x08050996] ; [0x8050994:4]=0x2001e89d
| ||| ||| 0x08050286 0978 ldrb r1, [r1]
| ||| ||| 0x08050288 c171 strb r1, [r0, 7]
| |||,====< 0x0805028a 0ae0 b 0x80502a2
| |||||`--> 0x0805028c dff8840a ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||| | 0x08050290 0078 ldrb r0, [r0]
| ||||| | 0x08050292 7828 cmp r0, 0x78 ; 'x' ; 120
| |||||,==< 0x08050294 05d1 bne 0x80502a2
| ||||||| 0x08050296 dff8480d ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x0805029a dff8f416 ldr.w r1, [0x08050996] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x0805029e 0978 ldrb r1, [r1]
| ||||||| 0x080502a0 c171 strb r1, [r0, 7]
| ===`-`--> 0x080502a2 01f070bc b.w 0x8051b86
| --------> 0x080502a6 dff86c0a ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||| | | 0x080502aa 0078 ldrb r0, [r0]
| ||| | | 0x080502ac 7028 cmp r0, 0x70 ; 'p' ; 112
| ||| |,==< 0x080502ae 40f0b280 bne.w 0x8050416
| ||| ||| 0x080502b2 e4b2 uxtb r4, r4
| ||| ||| 0x080502b4 032c cmp r4, 3 ; 3
| |||,====< 0x080502b6 60d1 bne 0x805037a
| ||||||| 0x080502b8 dff8e406 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x080502bc 0079 ldrb r0, [r0, 4]
| ||||||| 0x080502be 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080502c2 dff8dc16 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x080502c6 0871 strb r0, [r1, 4]
| ||||||| 0x080502c8 dff8d406 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x080502cc c078 ldrb r0, [r0, 3]
| ||||||| 0x080502ce 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080502d2 dff8cc16 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x080502d6 c870 strb r0, [r1, 3]
| ||||||| 0x080502d8 dff8040d ldr.w r0, [0x08050fe4] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x080502dc dff8b016 ldr.w r1, [0x08050994] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x080502e0 0978 ldrb r1, [r1]
| ||||||| 0x080502e2 8172 strb r1, [r0, 0xa]
| --------> 0x080502e4 dff82c0a ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x080502e8 7921 movs r1, 0x79 ; 'y' ; 121
| ||||||| 0x080502ea 0170 strb r1, [r0]
| ||||||| 0x080502ec 681e subs r0, r5, 1
| ||||||| 0x080502ee c0b2 uxtb r0, r0
| ||||||| 0x080502f0 0928 cmp r0, 9 ; 9
| ========< 0x080502f2 00d3 blo 0x80502f6
| ||||||| 0x080502f4 0525 movs r5, 5 ; 5
| --------> 0x080502f6 0520 movs r0, 5 ; 5
| ||||||| 0x080502f8 01f048fc bl func_51b8c
| ||||||| 0x080502fc 0220 movs r0, 2 ; 2
| ||||||| 0x080502fe dff8a016 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x08050302 0978 ldrb r1, [r1]
| ||||||| 0x08050304 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08050308 dff89406 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0805030c 0170 strb r1, [r0]
| ||||||| 0x0805030e dff89006 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x08050312 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050314 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08050318 dff88416 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0805031c 0871 strb r0, [r1, 4]
| ||||||| 0x0805031e dff8c40c ldr.w r0, [0x08050fea] ; [0x8050fe8:4]=0x2001e897
| ||||||| 0x08050322 7ff07c41 mvns r1, 0xfc000000
| ||||||| 0x08050326 0160 str r1, [r0]
| ||||||| 0x08050328 eff7e3fa bl func_3f8f2_init_PLL_and_C5000
| ||||||| 0x0805032c e1f787ff bl func_3223e
| ||||||| 0x08050330 dff8b40c ldr.w r0, [0x08050fec] ; [0x8050fec:4]=0x2001e600 q_struct_1
| ||||||| 0x08050334 0121 movs r1, 1 ; 1
| ||||||| 0x08050336 0170 strb r1, [r0]
| ||||||| 0x08050338 dff8b00c ldr.w r0, [0x08050ff0] ; [0x8050ff0:4]=0xbdc9f000
| ||||||| 0x0805033c 0078 ldrb r0, [r0]
| ||||||| 0x0805033e 50f00800 orrs r0, r0, 8
| ||||||| 0x08050342 dff8a81c ldr.w r1, [0x08050ff2] ; [0x8050ff0:4]=0xbdc9f000
| ||||||| 0x08050346 0870 strb r0, [r1]
| ||||||| 0x08050348 0320 movs r0, 3 ; 3
| ||||||| 0x0805034a 14fb00f0 smulbb r0, r4, r0
| ||||||| 0x0805034e c0b2 uxtb r0, r0
| ||||||| 0x08050350 f3f7c8f8 bl func_434e4_wr_C5000
| ||||||| 0x08050354 f7f796fb bl func_47a84
| ||||||| 0x08050358 f7f77dfc bl WaitAndDoSomethingWithGPIOC
| ||||||| 0x0805035c dff83006 ldr.w r0, [0x08050994] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x08050360 0078 ldrb r0, [r0]
| ||||||| 0x08050362 8028 cmp r0, 0x80 ; 128
| ========< 0x08050364 43d3 blo 0x80503ee
| ||||||| 0x08050366 0321 movs r1, 3 ; 3
| ||||||| 0x08050368 4820 movs r0, 0x48 ; 'H' ; 72
| ||||||| 0x0805036a eff70bfe bl c5000_spi0_writereg
| ||||||| 0x0805036e dff82006 ldr.w r0, [0x08050996] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x08050372 0078 ldrb r0, [r0]
| ||||||| 0x08050374 d0f17f04 rsbs.w r4, r0, 0x7f
| ========< 0x08050378 42e0 b 0x8050400
| |||`----> 0x0805037a e4b2 uxtb r4, r4
| ||| ||| 0x0805037c 022c cmp r4, 2 ; 2
| |||,====< 0x0805037e 18d1 bne 0x80503b2
| ||||||| 0x08050380 0120 movs r0, 1 ; 1
| ||||||| 0x08050382 dff81c16 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x08050386 0979 ldrb r1, [r1, 4]
| ||||||| 0x08050388 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x0805038c dff81006 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x08050390 0171 strb r1, [r0, 4]
| ||||||| 0x08050392 0120 movs r0, 1 ; 1
| ||||||| 0x08050394 dff80816 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x08050398 c978 ldrb r1, [r1, 3]
| ||||||| 0x0805039a 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x0805039e dff80006 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x080503a2 c170 strb r1, [r0, 3]
| ||||||| 0x080503a4 dff8380c ldr.w r0, [0x08050fe4] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x080503a8 dff8e415 ldr.w r1, [0x08050994] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x080503ac 0978 ldrb r1, [r1]
| ||||||| 0x080503ae 4172 strb r1, [r0, 9]
| ========< 0x080503b0 98e7 b 0x80502e4
| |||`----> 0x080503b2 e4b2 uxtb r4, r4
| ||| ||| 0x080503b4 012c cmp r4, 1 ; 1
| |||,====< 0x080503b6 18d1 bne 0x80503ea
| ||||||| 0x080503b8 0220 movs r0, 2 ; 2
| ||||||| 0x080503ba dff8e415 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x080503be 0979 ldrb r1, [r1, 4]
| ||||||| 0x080503c0 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x080503c4 dff8d805 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x080503c8 0171 strb r1, [r0, 4]
| ||||||| 0x080503ca 0220 movs r0, 2 ; 2
| ||||||| 0x080503cc dff8d015 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x080503d0 c978 ldrb r1, [r1, 3]
| ||||||| 0x080503d2 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x080503d6 dff8c805 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x080503da c170 strb r1, [r0, 3]
| ||||||| 0x080503dc dff8000c ldr.w r0, [0x08050fe4] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x080503e0 dff8ac15 ldr.w r1, [0x08050994] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x080503e4 0978 ldrb r1, [r1]
| ||||||| 0x080503e6 0172 strb r1, [r0, 8]
| ========< 0x080503e8 7ce7 b 0x80502e4
| ===`----> 0x080503ea 01f0ccbb b.w 0x8051b86
| --------> 0x080503ee 0021 movs r1, 0
| ||| ||| 0x080503f0 4820 movs r0, 0x48 ; 'H' ; 72
| ||| ||| 0x080503f2 eff7c7fd bl c5000_spi0_writereg
| ||| ||| 0x080503f6 dff89805 ldr.w r0, [0x08050996] ; [0x8050994:4]=0x2001e89d
| ||| ||| 0x080503fa 0078 ldrb r0, [r0]
| ||| ||| 0x080503fc d0f17f04 rsbs.w r4, r0, 0x7f
| --------> 0x08050400 2100 movs r1, r4
| ||| ||| 0x08050402 c9b2 uxtb r1, r1
| ||| ||| 0x08050404 4720 movs r0, 0x47 ; 'G' ; 71
| ||| ||| 0x08050406 eff7bdfd bl c5000_spi0_writereg
| ||| ||| 0x0805040a 2100 movs r1, r4
| ||| ||| 0x0805040c c9b2 uxtb r1, r1
| ||| ||| 0x0805040e 0420 movs r0, 4 ; 4
| ||| ||| 0x08050410 eff7b8fd bl c5000_spi0_writereg
| |||,====< 0x08050414 4fe0 b 0x80504b6
| |||||`--> 0x08050416 dff8fc08 ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||| | 0x0805041a 0078 ldrb r0, [r0]
| ||||| | 0x0805041c 7928 cmp r0, 0x79 ; 'y' ; 121
| |||||,==< 0x0805041e 4ad1 bne 0x80504b6
| ||||||| 0x08050420 e4b2 uxtb r4, r4
| ||||||| 0x08050422 032c cmp r4, 3 ; 3
| ========< 0x08050424 1ed1 bne 0x8050464
| ||||||| 0x08050426 dff8b80b ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x0805042a dff86415 ldr.w r1, [0x08050996] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x0805042e 0978 ldrb r1, [r1]
| ||||||| 0x08050430 8172 strb r1, [r0, 0xa]
| --------> 0x08050432 0320 movs r0, 3 ; 3
| ||||||| 0x08050434 14fb00f0 smulbb r0, r4, r0
| ||||||| 0x08050438 c0b2 uxtb r0, r0
| ||||||| 0x0805043a f3f753f8 bl func_434e4_wr_C5000
| ||||||| 0x0805043e f7f721fb bl func_47a84
| ||||||| 0x08050442 f7f708fc bl WaitAndDoSomethingWithGPIOC
| ||||||| 0x08050446 dff84805 ldr.w r0, [0x08050996] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x0805044a 0078 ldrb r0, [r0]
| ||||||| 0x0805044c 8028 cmp r0, 0x80 ; 128
| ========< 0x0805044e 1fd3 blo 0x8050490
| ||||||| 0x08050450 0321 movs r1, 3 ; 3
| ||||||| 0x08050452 4820 movs r0, 0x48 ; 'H' ; 72
| ||||||| 0x08050454 eff796fd bl c5000_spi0_writereg
| ||||||| 0x08050458 dff83405 ldr.w r0, [0x08050994] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x0805045c 0078 ldrb r0, [r0]
| ||||||| 0x0805045e d0f17f04 rsbs.w r4, r0, 0x7f
| ========< 0x08050462 1ee0 b 0x80504a2
| --------> 0x08050464 e4b2 uxtb r4, r4
| ||||||| 0x08050466 022c cmp r4, 2 ; 2
| ========< 0x08050468 06d1 bne 0x8050478
| ||||||| 0x0805046a dff8740b ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x0805046e dff82015 ldr.w r1, [0x08050996] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x08050472 0978 ldrb r1, [r1]
| ||||||| 0x08050474 4172 strb r1, [r0, 9]
| ========< 0x08050476 dce7 b 0x8050432
| --------> 0x08050478 e4b2 uxtb r4, r4
| ||||||| 0x0805047a 012c cmp r4, 1 ; 1
| ========< 0x0805047c 06d1 bne 0x805048c
| ||||||| 0x0805047e dff8600b ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x08050482 dff80c15 ldr.w r1, [0x08050996] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x08050486 0978 ldrb r1, [r1]
| ||||||| 0x08050488 0172 strb r1, [r0, 8]
| ========< 0x0805048a d2e7 b 0x8050432
| --------> 0x0805048c 01f07bbb b.w 0x8051b86
| --------> 0x08050490 0021 movs r1, 0
| ||||||| 0x08050492 4820 movs r0, 0x48 ; 'H' ; 72
| ||||||| 0x08050494 eff776fd bl c5000_spi0_writereg
| ||||||| 0x08050498 dff8f404 ldr.w r0, [0x08050994] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x0805049c 0078 ldrb r0, [r0]
| ||||||| 0x0805049e d0f17f04 rsbs.w r4, r0, 0x7f
| --------> 0x080504a2 2100 movs r1, r4
| ||||||| 0x080504a4 c9b2 uxtb r1, r1
| ||||||| 0x080504a6 4720 movs r0, 0x47 ; 'G' ; 71
| ||||||| 0x080504a8 eff76cfd bl c5000_spi0_writereg
| ||||||| 0x080504ac 2100 movs r1, r4
| ||||||| 0x080504ae c9b2 uxtb r1, r1
| ||||||| 0x080504b0 0420 movs r0, 4 ; 4
| ||||||| 0x080504b2 eff767fd bl c5000_spi0_writereg
| ===`-`--> 0x080504b6 01f066bb b.w 0x8051b86
| --------> 0x080504ba dff85808 ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||| | | 0x080504be 0078 ldrb r0, [r0]
| ||| | | 0x080504c0 7028 cmp r0, 0x70 ; 'p' ; 112
| ||| |,==< 0x080504c2 4fd1 bne 0x8050564
| ||| ||| 0x080504c4 601e subs r0, r4, 1
| ||| ||| 0x080504c6 c0b2 uxtb r0, r0
| ||| ||| 0x080504c8 0928 cmp r0, 9 ; 9
| |||,====< 0x080504ca 10d2 bhs 0x80504ee
| ||||||| 0x080504cc e4b2 uxtb r4, r4
| ||||||| 0x080504ce dff8100b ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x080504d2 2018 adds r0, r4, r0
| ||||||| 0x080504d4 dff8b814 ldr.w r1, [0x08050994] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x080504d8 0978 ldrb r1, [r1]
| ||||||| 0x080504da c173 strb r1, [r0, 0xf]
| ||||||| 0x080504dc dff83408 ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x080504e0 7a21 movs r1, 0x7a ; 'z' ; 122
| ||||||| 0x080504e2 0170 strb r1, [r0]
| ||||||| 0x080504e4 edb2 uxtb r5, r5
| ||||||| 0x080504e6 012d cmp r5, 1 ; 1
| ========< 0x080504e8 03d2 bhs 0x80504f2
| ||||||| 0x080504ea 0125 movs r5, 1 ; 1
| ========< 0x080504ec 05e0 b 0x80504fa
| ===`----> 0x080504ee 01f04abb b.w 0x8051b86
| --------> 0x080504f2 edb2 uxtb r5, r5
| ||| ||| 0x080504f4 0a2d cmp r5, 0xa ; 10
| |||,====< 0x080504f6 00d3 blo 0x80504fa
| ||||||| 0x080504f8 0925 movs r5, 9 ; 9
| ---`----> 0x080504fa 2800 movs r0, r5
| ||| ||| 0x080504fc c0b2 uxtb r0, r0
| ||| ||| 0x080504fe 01f045fb bl func_51b8c
| ||| ||| 0x08050502 dff89c04 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x08050506 0079 ldrb r0, [r0, 4]
| ||| ||| 0x08050508 10f0fc00 ands r0, r0, 0xfc
| ||| ||| 0x0805050c dff89014 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x08050510 0871 strb r0, [r1, 4]
| ||| ||| 0x08050512 dff88c04 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x08050516 c078 ldrb r0, [r0, 3]
| ||| ||| 0x08050518 10f0fc00 ands r0, r0, 0xfc
| ||| ||| 0x0805051c dff88014 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x08050520 c870 strb r0, [r1, 3]
| ||| ||| 0x08050522 0120 movs r0, 1 ; 1
| ||| ||| 0x08050524 dff87814 ldr.w r1, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x08050528 0978 ldrb r1, [r1]
| ||| ||| 0x0805052a 60f30101 bfi r1, r0, 0, 2
| ||| ||| 0x0805052e dff87004 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x08050532 0170 strb r1, [r0]
| ||| ||| 0x08050534 dff86804 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x08050538 4ff6ff71 movw r1, 0xffff
| ||| ||| 0x0805053c 4183 strh r1, [r0, 0x1a]
| ||| ||| 0x0805053e dff86004 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||| ||| 0x08050542 4ff6ff71 movw r1, 0xffff
| ||| ||| 0x08050546 0183 strh r1, [r0, 0x18]
| ||| ||| 0x08050548 eff72efc bl func_3fda8
| ||| ||| 0x0805054c dff8d00d ldr.w r0, [0x08051324] ; [0x8051324:4]=0x738f8df
| ||| ||| 0x08050550 0021 movs r1, 0
| ||| ||| 0x08050552 0170 strb r1, [r0]
| ||| ||| 0x08050554 ecf7c0fb bl func_3ccd8
| ||| ||| 0x08050558 0021 movs r1, 0
| ||| ||| ;-- c5000_wr_60_5:
| ||| ||| 0x0805055a 6020 movs r0, 0x60 ; '`' ; 96
| ||| ||| 0x0805055c eff712fd bl c5000_spi0_writereg
| ---.----> 0x08050560 01f011bb b.w 0x8051b86
| |||||`--> 0x08050564 dff8ac07 ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||| | 0x08050568 0078 ldrb r0, [r0]
| ||||| | 0x0805056a 7a28 cmp r0, 0x7a ; 'z' ; 122
| ========< 0x0805056c f8d1 bne 0x8050560
| ||||| | 0x0805056e 601e subs r0, r4, 1
| ||||| | 0x08050570 c0b2 uxtb r0, r0
| ||||| | 0x08050572 0928 cmp r0, 9 ; 9
| |||||,==< 0x08050574 12d2 bhs 0x805059c
| ||||||| 0x08050576 e4b2 uxtb r4, r4
| ||||||| 0x08050578 dff8640a ldr.w r0, [0x08050fe4] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x0805057c 2018 adds r0, r4, r0
| ||||||| 0x0805057e dff81014 ldr.w r1, [0x08050996] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x08050582 0978 ldrb r1, [r1]
| ||||||| 0x08050584 c173 strb r1, [r0, 0xf]
| ||||||| 0x08050586 dff80804 ldr.w r0, [0x08050996] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x0805058a 0078 ldrb r0, [r0]
| ||||||| 0x0805058c ff21 movs r1, 0xff ; 255
| ||||||| 0x0805058e 10fb01f1 smulbb r1, r0, r1
| ||||||| 0x08050592 89b2 uxth r1, r1
| ||||||| 0x08050594 0420 movs r0, 4 ; 4
| ||||||| 0x08050596 01f0adfe bl TimerIRQ_Sub7_writes_DAC
| |||`====< 0x0805059a e1e7 b 0x8050560
| |||,=`--> 0x0805059c 01f0f3ba b.w 0x8051b86
| --------> 0x080505a0 dff87007 ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||| | 0x080505a4 0078 ldrb r0, [r0]
| ||||| | 0x080505a6 7028 cmp r0, 0x70 ; 'p' ; 112
| |||||,==< 0x080505a8 4bd1 bne 0x8050642
| ||||||| 0x080505aa 601e subs r0, r4, 1
| ||||||| 0x080505ac c0b2 uxtb r0, r0
| ||||||| 0x080505ae 0928 cmp r0, 9 ; 9
| ========< 0x080505b0 10d2 bhs 0x80505d4
| ||||||| 0x080505b2 e4b2 uxtb r4, r4
| ||||||| 0x080505b4 dff8280a ldr.w r0, [0x08050fe4] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x080505b8 2018 adds r0, r4, r0
| ||||||| 0x080505ba dff8d413 ldr.w r1, [0x08050996] ; [0x8050994:4]=0x2001e89d
| ||||||| 0x080505be 0978 ldrb r1, [r1]
| ||||||| 0x080505c0 c177 strb r1, [r0, 0x1f]
| ||||||| 0x080505c2 dff85007 ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x080505c6 7b21 movs r1, 0x7b ; '{' ; 123
| ||||||| 0x080505c8 0170 strb r1, [r0]
| ||||||| 0x080505ca edb2 uxtb r5, r5
| ||||||| 0x080505cc 012d cmp r5, 1 ; 1
| ========< 0x080505ce 03d2 bhs 0x80505d8
| ||||||| 0x080505d0 0125 movs r5, 1 ; 1
| ========< 0x080505d2 05e0 b 0x80505e0
| --------> 0x080505d4 01f0d7ba b.w 0x8051b86
| --------> 0x080505d8 edb2 uxtb r5, r5
| ||||||| 0x080505da 0a2d cmp r5, 0xa ; 10
| ========< 0x080505dc 00d3 blo 0x80505e0
| ||||||| 0x080505de 0925 movs r5, 9 ; 9
| --------> 0x080505e0 2800 movs r0, r5
| ||||||| 0x080505e2 c0b2 uxtb r0, r0
| ||||||| 0x080505e4 01f0d2fa bl func_51b8c
| ||||||| 0x080505e8 dff8b403 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x080505ec 0079 ldrb r0, [r0, 4]
| ||||||| 0x080505ee 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080505f2 dff8ac13 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x080505f6 0871 strb r0, [r1, 4]
| ||||||| 0x080505f8 dff8a403 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x080505fc c078 ldrb r0, [r0, 3]
| ||||||| 0x080505fe 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050602 dff89c13 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x08050606 c870 strb r0, [r1, 3]
| ||||||| 0x08050608 0120 movs r0, 1 ; 1
| ||||||| 0x0805060a dff89413 ldr.w r1, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0805060e 0978 ldrb r1, [r1]
| ||||||| 0x08050610 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08050614 dff88803 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x08050618 0170 strb r1, [r0]
| ||||||| 0x0805061a dff88403 ldr.w r0, [0x080509a6] ; [0x80509a4:4]=0x780048db
| ||||||| 0x0805061e 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08050622 4183 strh r1, [r0, 0x1a]
| ||||||| 0x08050624 dff87803 ldr.w r0, [0x080509a4] ; [0x80509a4:4]=0x780048db
| ||||||| 0x08050628 4ff6ff71 movw r1, 0xffff
| ||||||| 0x0805062c 0183 strh r1, [r0, 0x18]
| ||||||| 0x0805062e eff7bbfb bl func_3fda8
| ||||||| 0x08050632 dff8ec0c ldr.w r0, [0x08051326] ; [0x8051324:4]=0x738f8df
| ||||||| 0x08050636 0021 movs r1, 0
| ||||||| 0x08050638 0170 strb r1, [r0]
| ||||||| 0x0805063a ecf74dfb bl func_3ccd8
| --------> 0x0805063e 01f0a2ba b.w 0x8051b86
| |||||`--> 0x08050642 dff8d006 ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||| | 0x08050646 0078 ldrb r0, [r0]
| ||||| | 0x08050648 7b28 cmp r0, 0x7b ; '{' ; 123
| ========< 0x0805064a f8d1 bne 0x805063e
| ||||| | 0x0805064c 601e subs r0, r4, 1
| ||||| | 0x0805064e c0b2 uxtb r0, r0
| ||||| | 0x08050650 0928 cmp r0, 9 ; 9
| |||||,==< 0x08050652 10d2 bhs 0x8050676
| ||||||| 0x08050654 e4b2 uxtb r4, r4
| ||||||| 0x08050656 dff88809 ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x0805065a 2018 adds r0, r4, r0
| ||||||| 0x0805065c cc49 ldr r1, [0x08050990] ; [0x8050990:4]=0x2001e89e
| ||||||| 0x0805065e 0978 ldrb r1, [r1]
| ||||||| 0x08050660 c177 strb r1, [r0, 0x1f]
| ||||||| 0x08050662 cb48 ldr r0, [0x08050992] ; [0x8050990:4]=0x2001e89e
| ||||||| 0x08050664 0078 ldrb r0, [r0]
| ||||||| 0x08050666 ff21 movs r1, 0xff ; 255
| ||||||| 0x08050668 10fb01f1 smulbb r1, r0, r1
| ||||||| 0x0805066c 89b2 uxth r1, r1
| ||||||| 0x0805066e 0420 movs r0, 4 ; 4
| ||||||| 0x08050670 01f040fe bl TimerIRQ_Sub7_writes_DAC
| ========< 0x08050674 e3e7 b 0x805063e
| =====`--> 0x08050676 01f086ba b.w 0x8051b86
| --------> 0x0805067a dff89806 ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||| | 0x0805067e 0078 ldrb r0, [r0]
| ||||| | 0x08050680 7028 cmp r0, 0x70 ; 'p' ; 112
| |||||,==< 0x08050682 3fd1 bne 0x8050704
| ||||||| 0x08050684 601e subs r0, r4, 1
| ||||||| 0x08050686 c0b2 uxtb r0, r0
| ||||||| 0x08050688 0928 cmp r0, 9 ; 9
| ========< 0x0805068a 10d2 bhs 0x80506ae
| ||||||| 0x0805068c e4b2 uxtb r4, r4
| ||||||| 0x0805068e dff85009 ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x08050692 2018 adds r0, r4, r0
| ||||||| 0x08050694 be49 ldr r1, [0x08050990] ; [0x8050990:4]=0x2001e89e
| ||||||| 0x08050696 0978 ldrb r1, [r1]
| ||||||| 0x08050698 80f82f10 strb.w r1, [r0, 0x2f]
| ||||||| 0x0805069c dff87406 ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x080506a0 7c21 movs r1, 0x7c ; '|' ; 124
| ||||||| 0x080506a2 0170 strb r1, [r0]
| ||||||| 0x080506a4 edb2 uxtb r5, r5
| ||||||| 0x080506a6 012d cmp r5, 1 ; 1
| ========< 0x080506a8 03d2 bhs 0x80506b2
| ||||||| 0x080506aa 0125 movs r5, 1 ; 1
| ========< 0x080506ac 05e0 b 0x80506ba
| --------> 0x080506ae 01f06aba b.w 0x8051b86
| --------> 0x080506b2 edb2 uxtb r5, r5
| ||||||| 0x080506b4 0a2d cmp r5, 0xa ; 10
| ========< 0x080506b6 00d3 blo 0x80506ba
| ||||||| 0x080506b8 0925 movs r5, 9 ; 9
| --------> 0x080506ba 2800 movs r0, r5
| ||||||| 0x080506bc c0b2 uxtb r0, r0
| ||||||| 0x080506be 01f065fa bl func_51b8c
| ||||||| 0x080506c2 b748 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080506c4 0079 ldrb r0, [r0, 4]
| ||||||| 0x080506c6 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080506ca b549 ldr r1, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080506cc 0871 strb r0, [r1, 4]
| ||||||| 0x080506ce b448 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080506d0 c078 ldrb r0, [r0, 3]
| ||||||| 0x080506d2 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080506d6 b249 ldr r1, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080506d8 c870 strb r0, [r1, 3]
| ||||||| 0x080506da 0120 movs r0, 1 ; 1
| ||||||| 0x080506dc b049 ldr r1, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080506de 0978 ldrb r1, [r1]
| ||||||| 0x080506e0 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x080506e4 ae48 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080506e6 0170 strb r1, [r0]
| ||||||| 0x080506e8 ad48 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080506ea 4ff6ff71 movw r1, 0xffff
| ||||||| 0x080506ee 4183 strh r1, [r0, 0x1a]
| ||||||| 0x080506f0 ab48 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080506f2 4ff6ff71 movw r1, 0xffff
| ||||||| 0x080506f6 0183 strh r1, [r0, 0x18]
| ||||||| 0x080506f8 eff756fb bl func_3fda8
| ||||||| 0x080506fc ecf750ff bl func_3d5a0
| --------> 0x08050700 01f041ba b.w 0x8051b86
| |||||`--> 0x08050704 dff80c06 ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||| | 0x08050708 0078 ldrb r0, [r0]
| ||||| | 0x0805070a 7c28 cmp r0, 0x7c ; '|' ; 124
| ========< 0x0805070c f8d1 bne 0x8050700
| ||||| | 0x0805070e 601e subs r0, r4, 1
| ||||| | 0x08050710 c0b2 uxtb r0, r0
| ||||| | 0x08050712 0928 cmp r0, 9 ; 9
| |||||,==< 0x08050714 11d2 bhs 0x805073a
| ||||||| 0x08050716 e4b2 uxtb r4, r4
| ||||||| 0x08050718 dff8c408 ldr.w r0, [0x08050fe4] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x0805071c 2018 adds r0, r4, r0
| ||||||| 0x0805071e 9c49 ldr r1, [0x08050992] ; [0x8050990:4]=0x2001e89e
| ||||||| 0x08050720 0978 ldrb r1, [r1]
| ||||||| 0x08050722 80f82f10 strb.w r1, [r0, 0x2f]
| ||||||| 0x08050726 9a48 ldr r0, [0x08050992] ; [0x8050990:4]=0x2001e89e
| ||||||| 0x08050728 0078 ldrb r0, [r0]
| ||||||| 0x0805072a ff21 movs r1, 0xff ; 255
| ||||||| 0x0805072c 10fb01f1 smulbb r1, r0, r1
| ||||||| 0x08050730 89b2 uxth r1, r1
| ||||||| 0x08050732 0420 movs r0, 4 ; 4
| ||||||| 0x08050734 01f0defd bl TimerIRQ_Sub7_writes_DAC
| ========< 0x08050738 e2e7 b 0x8050700
| =====`--> 0x0805073a 01f024ba b.w 0x8051b86
| --------> 0x0805073e dff8d405 ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||| | 0x08050742 0078 ldrb r0, [r0]
| ||||| | 0x08050744 7028 cmp r0, 0x70 ; 'p' ; 112
| |||||,==< 0x08050746 3cd1 bne 0x80507c2
| ||||||| 0x08050748 601e subs r0, r4, 1
| ||||||| 0x0805074a c0b2 uxtb r0, r0
| ||||||| 0x0805074c 0928 cmp r0, 9 ; 9
| ========< 0x0805074e 81f01a82 bhs.w 0x8051b86
| ||||||| 0x08050752 dff8c005 ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x08050756 7d21 movs r1, 0x7d ; '}' ; 125
| ||||||| 0x08050758 0170 strb r1, [r0]
| ||||||| 0x0805075a edb2 uxtb r5, r5
| ||||||| 0x0805075c 012d cmp r5, 1 ; 1
| ========< 0x0805075e 01d2 bhs 0x8050764
| ||||||| 0x08050760 0125 movs r5, 1 ; 1
| ========< 0x08050762 03e0 b 0x805076c
| --------> 0x08050764 edb2 uxtb r5, r5
| ||||||| 0x08050766 0a2d cmp r5, 0xa ; 10
| ========< 0x08050768 00d3 blo 0x805076c
| ||||||| 0x0805076a 0925 movs r5, 9 ; 9
| --------> 0x0805076c 2800 movs r0, r5
| ||||||| 0x0805076e c0b2 uxtb r0, r0
| ||||||| 0x08050770 01f00cfa bl func_51b8c
| ||||||| 0x08050774 8a48 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050776 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050778 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x0805077c 8849 ldr r1, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805077e 0871 strb r0, [r1, 4]
| ||||||| 0x08050780 8748 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050782 c078 ldrb r0, [r0, 3]
| ||||||| 0x08050784 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050788 8549 ldr r1, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805078a c870 strb r0, [r1, 3]
| ||||||| 0x0805078c 0120 movs r0, 1 ; 1
| ||||||| 0x0805078e 8449 ldr r1, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050790 0978 ldrb r1, [r1]
| ||||||| 0x08050792 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08050796 8248 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050798 0170 strb r1, [r0]
| ||||||| 0x0805079a 8148 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805079c 0078 ldrb r0, [r0]
| ||||||| 0x0805079e 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x080507a2 7f49 ldr r1, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080507a4 0870 strb r0, [r1]
| ||||||| 0x080507a6 7e48 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080507a8 4ff6ff71 movw r1, 0xffff
| ||||||| 0x080507ac 4183 strh r1, [r0, 0x1a]
| ||||||| 0x080507ae 7c48 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080507b0 4ff6ff71 movw r1, 0xffff
| ||||||| 0x080507b4 0183 strh r1, [r0, 0x18]
| ||||||| 0x080507b6 eff7f7fa bl func_3fda8
| ||||||| 0x080507ba ecf7f1fe bl func_3d5a0
| --------> 0x080507be 01f0e2b9 b.w 0x8051b86
| |||||`--> 0x080507c2 dff85005 ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||| | 0x080507c6 0078 ldrb r0, [r0]
| ||||| | 0x080507c8 7d28 cmp r0, 0x7d ; '}' ; 125
| ========< 0x080507ca f8d1 bne 0x80507be
| ||||| | 0x080507cc 601e subs r0, r4, 1
| ||||| | 0x080507ce c0b2 uxtb r0, r0
| ||||| | 0x080507d0 0928 cmp r0, 9 ; 9
| ========< 0x080507d2 f4d3 blo 0x80507be
| |||||,==< 0x080507d4 01f0d7b9 b.w 0x8051b86
| --------> 0x080507d8 dff83805 ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x080507dc 0078 ldrb r0, [r0]
| ||||||| 0x080507de 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x080507e0 3cd1 bne 0x805085c
| ||||||| 0x080507e2 601e subs r0, r4, 1
| ||||||| 0x080507e4 c0b2 uxtb r0, r0
| ||||||| 0x080507e6 0928 cmp r0, 9 ; 9
| ========< 0x080507e8 81f0cd81 bhs.w 0x8051b86
| ||||||| 0x080507ec dff82405 ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x080507f0 7e21 movs r1, 0x7e ; '~' ; 126
| ||||||| 0x080507f2 0170 strb r1, [r0]
| ||||||| 0x080507f4 edb2 uxtb r5, r5
| ||||||| 0x080507f6 012d cmp r5, 1 ; 1
| ========< 0x080507f8 01d2 bhs 0x80507fe
| ||||||| 0x080507fa 0125 movs r5, 1 ; 1
| ========< 0x080507fc 03e0 b 0x8050806
| --------> 0x080507fe edb2 uxtb r5, r5
| ||||||| 0x08050800 0a2d cmp r5, 0xa ; 10
| ========< 0x08050802 00d3 blo 0x8050806
| ||||||| 0x08050804 0925 movs r5, 9 ; 9
| --------> 0x08050806 2800 movs r0, r5
| ||||||| 0x08050808 c0b2 uxtb r0, r0
| ||||||| 0x0805080a 01f0bff9 bl func_51b8c
| ||||||| 0x0805080e 6448 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050810 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050812 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050816 6249 ldr r1, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050818 0871 strb r0, [r1, 4]
| ||||||| 0x0805081a 6148 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805081c c078 ldrb r0, [r0, 3]
| ||||||| 0x0805081e 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050822 5f49 ldr r1, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050824 c870 strb r0, [r1, 3]
| ||||||| 0x08050826 0120 movs r0, 1 ; 1
| ||||||| 0x08050828 5d49 ldr r1, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805082a 0978 ldrb r1, [r1]
| ||||||| 0x0805082c 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08050830 5b48 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050832 0170 strb r1, [r0]
| ||||||| 0x08050834 5a48 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050836 0078 ldrb r0, [r0]
| ||||||| 0x08050838 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x0805083c 5849 ldr r1, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805083e 0870 strb r0, [r1]
| ||||||| 0x08050840 5748 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050842 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08050846 4183 strh r1, [r0, 0x1a]
| ||||||| 0x08050848 5548 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805084a 4ff6ff71 movw r1, 0xffff
| ||||||| 0x0805084e 0183 strh r1, [r0, 0x18]
| ||||||| 0x08050850 eff7aafa bl func_3fda8
| ||||||| 0x08050854 ecf7a4fe bl func_3d5a0
| --------> 0x08050858 01f095b9 b.w 0x8051b86
| --------> 0x0805085c dff8b404 ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x08050860 0078 ldrb r0, [r0]
| ||||||| 0x08050862 7e28 cmp r0, 0x7e ; '~' ; 126
| ========< 0x08050864 f8d1 bne 0x8050858
| ||||||| 0x08050866 601e subs r0, r4, 1
| ||||||| 0x08050868 c0b2 uxtb r0, r0
| ||||||| 0x0805086a 0928 cmp r0, 9 ; 9
| ========< 0x0805086c f4d3 blo 0x8050858
| ========< 0x0805086e 01f08ab9 b.w 0x8051b86
| --------> 0x08050872 dff8a004 ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x08050876 0078 ldrb r0, [r0]
| ||||||| 0x08050878 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x0805087a 3cd1 bne 0x80508f6
| ||||||| 0x0805087c 601e subs r0, r4, 1
| ||||||| 0x0805087e c0b2 uxtb r0, r0
| ||||||| 0x08050880 0928 cmp r0, 9 ; 9
| ========< 0x08050882 81f08081 bhs.w 0x8051b86
| ||||||| 0x08050886 dff88c04 ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x0805088a 7f21 movs r1, 0x7f ; 127
| ||||||| 0x0805088c 0170 strb r1, [r0]
| ||||||| 0x0805088e edb2 uxtb r5, r5
| ||||||| 0x08050890 012d cmp r5, 1 ; 1
| ========< 0x08050892 01d2 bhs 0x8050898
| ||||||| 0x08050894 0125 movs r5, 1 ; 1
| ========< 0x08050896 03e0 b 0x80508a0
| --------> 0x08050898 edb2 uxtb r5, r5
| ||||||| 0x0805089a 0a2d cmp r5, 0xa ; 10
| ========< 0x0805089c 00d3 blo 0x80508a0
| ||||||| 0x0805089e 0925 movs r5, 9 ; 9
| --------> 0x080508a0 2800 movs r0, r5
| ||||||| 0x080508a2 c0b2 uxtb r0, r0
| ||||||| 0x080508a4 01f072f9 bl func_51b8c
| ||||||| 0x080508a8 3d48 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080508aa 0079 ldrb r0, [r0, 4]
| ||||||| 0x080508ac 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080508b0 3b49 ldr r1, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080508b2 0871 strb r0, [r1, 4]
| ||||||| 0x080508b4 3a48 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080508b6 c078 ldrb r0, [r0, 3]
| ||||||| 0x080508b8 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080508bc 3849 ldr r1, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080508be c870 strb r0, [r1, 3]
| ||||||| 0x080508c0 0120 movs r0, 1 ; 1
| ||||||| 0x080508c2 3749 ldr r1, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080508c4 0978 ldrb r1, [r1]
| ||||||| 0x080508c6 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x080508ca 3548 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080508cc 0170 strb r1, [r0]
| ||||||| 0x080508ce 3448 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080508d0 0078 ldrb r0, [r0]
| ||||||| 0x080508d2 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x080508d6 3249 ldr r1, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080508d8 0870 strb r0, [r1]
| ||||||| 0x080508da 3148 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080508dc 4ff6ff71 movw r1, 0xffff
| ||||||| 0x080508e0 4183 strh r1, [r0, 0x1a]
| ||||||| 0x080508e2 2f48 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080508e4 4ff6ff71 movw r1, 0xffff
| ||||||| 0x080508e8 0183 strh r1, [r0, 0x18]
| ||||||| 0x080508ea eff75dfa bl func_3fda8
| ||||||| 0x080508ee ecf757fe bl func_3d5a0
| --------> 0x080508f2 01f048b9 b.w 0x8051b86
| --------> 0x080508f6 dff81c04 ldr.w r0, [0x08050d1a] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x080508fa 0078 ldrb r0, [r0]
| ||||||| 0x080508fc 7f28 cmp r0, 0x7f ; 127
| ========< 0x080508fe f8d1 bne 0x80508f2
| ||||||| 0x08050900 601e subs r0, r4, 1
| ||||||| 0x08050902 c0b2 uxtb r0, r0
| ||||||| 0x08050904 0928 cmp r0, 9 ; 9
| ========< 0x08050906 f4d3 blo 0x80508f2
| ========< 0x08050908 01f03db9 b.w 0x8051b86
| --------> 0x0805090c dff80404 ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x08050910 0078 ldrb r0, [r0]
| ||||||| 0x08050912 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08050914 46d1 bne 0x80509a4
| ||||||| 0x08050916 601e subs r0, r4, 1
| ||||||| 0x08050918 c0b2 uxtb r0, r0
| ||||||| 0x0805091a 0928 cmp r0, 9 ; 9
| ========< 0x0805091c 81f03381 bhs.w 0x8051b86
| ||||||| 0x08050920 dff8f003 ldr.w r0, [0x08050d18] ; [0x8050d18:4]=0x40020000 io_GPIOA
| ||||||| 0x08050924 8021 movs r1, 0x80 ; 128
| ||||||| 0x08050926 0170 strb r1, [r0]
| ||||||| 0x08050928 edb2 uxtb r5, r5
| ||||||| 0x0805092a 012d cmp r5, 1 ; 1
| ========< 0x0805092c 01d2 bhs 0x8050932
| ||||||| 0x0805092e 0125 movs r5, 1 ; 1
| ========< 0x08050930 03e0 b 0x805093a
| --------> 0x08050932 edb2 uxtb r5, r5
| ||||||| 0x08050934 0a2d cmp r5, 0xa ; 10
| ========< 0x08050936 00d3 blo 0x805093a
| ||||||| 0x08050938 0925 movs r5, 9 ; 9
| --------> 0x0805093a 2800 movs r0, r5
| ||||||| 0x0805093c c0b2 uxtb r0, r0
| ||||||| 0x0805093e 01f025f9 bl func_51b8c
| ||||||| 0x08050942 1748 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050944 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050946 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x0805094a 1549 ldr r1, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805094c 0871 strb r0, [r1, 4]
| ||||||| 0x0805094e 1448 ldr r0, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050950 c078 ldrb r0, [r0, 3]
| ||||||| 0x08050952 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050956 1249 ldr r1, [0x080509a2] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050958 c870 strb r0, [r1, 3]
| ||||||| 0x0805095a 0120 movs r0, 1 ; 1
| ||||||| 0x0805095c 1049 ldr r1, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805095e 0978 ldrb r1, [r1]
| ||||||| 0x08050960 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08050964 0e48 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050966 0170 strb r1, [r0]
| ||||||| 0x08050968 0d48 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805096a 0078 ldrb r0, [r0]
| ||||||| 0x0805096c 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08050970 0b49 ldr r1, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050972 0870 strb r0, [r1]
| ||||||| 0x08050974 0a48 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050976 4ff6ff71 movw r1, 0xffff
| ||||||| 0x0805097a 4183 strh r1, [r0, 0x1a]
| ||||||| 0x0805097c 0848 ldr r0, [0x080509a0] ; [0x80509a0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805097e 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08050982 0183 strh r1, [r0, 0x18]
| ||||||| 0x08050984 eff710fa bl func_3fda8
| ||||||| 0x08050988 ecf70afe bl func_3d5a0
| --------> 0x0805098c 01f0fbb8 b.w 0x8051b86
| ||||||| 0x08050990 9ee80120 ldm.w lr, {r0, sp}
| ||||||| 0x08050994 9de80120 ldm.w sp, {r0, sp}
| ||||||| 0x08050998 a0e80120 invalid
| ||||||| 0x0805099c 9fe80120 ldm.w pc, {r0, sp}
| ||||||| 0x080509a0 78de udf 0x78
| ||||||| 0x080509a2 0120 movs r0, 1 ; 1
| --------> 0x080509a4 db48 ldr r0, [0x08050d14] ; [0x8050d14:4]=0x2001e892 gui_opmode3
| ||||||| 0x080509a6 0078 ldrb r0, [r0]
| ||||||| 0x080509a8 8028 cmp r0, 0x80 ; 128
| ========< 0x080509aa efd1 bne 0x805098c
| ||||||| 0x080509ac 601e subs r0, r4, 1
| ||||||| 0x080509ae c0b2 uxtb r0, r0
| ||||||| 0x080509b0 0928 cmp r0, 9 ; 9
| ========< 0x080509b2 ebd3 blo 0x805098c
| ========< 0x080509b4 01f0e7b8 b.w 0x8051b86
| --------> 0x080509b8 d648 ldr r0, [0x08050d14] ; [0x8050d14:4]=0x2001e892 gui_opmode3
| ||||||| 0x080509ba 0078 ldrb r0, [r0]
| ||||||| 0x080509bc 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x080509be 53d1 bne 0x8050a68
| ||||||| 0x080509c0 601e subs r0, r4, 1
| ||||||| 0x080509c2 c0b2 uxtb r0, r0
| ||||||| 0x080509c4 0928 cmp r0, 9 ; 9
| ========< 0x080509c6 10d2 bhs 0x80509ea
| ||||||| 0x080509c8 e4b2 uxtb r4, r4
| ||||||| 0x080509ca dff81406 ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x080509ce 2018 adds r0, r4, r0
| ||||||| 0x080509d0 dff8981d ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080509d4 0978 ldrb r1, [r1]
| ||||||| 0x080509d6 80f87f10 strb.w r1, [r0, 0x7f]
| ||||||| 0x080509da ce48 ldr r0, [0x08050d16] ; [0x8050d14:4]=0x2001e892 gui_opmode3
| ||||||| 0x080509dc 8121 movs r1, 0x81 ; 129
| ||||||| 0x080509de 0170 strb r1, [r0]
| ||||||| 0x080509e0 edb2 uxtb r5, r5
| ||||||| 0x080509e2 012d cmp r5, 1 ; 1
| ========< 0x080509e4 03d2 bhs 0x80509ee
| ||||||| 0x080509e6 0125 movs r5, 1 ; 1
| ========< 0x080509e8 05e0 b 0x80509f6
| --------> 0x080509ea 01f0ccb8 b.w 0x8051b86
| --------> 0x080509ee edb2 uxtb r5, r5
| ||||||| 0x080509f0 0a2d cmp r5, 0xa ; 10
| ========< 0x080509f2 00d3 blo 0x80509f6
| ||||||| 0x080509f4 0925 movs r5, 9 ; 9
| --------> 0x080509f6 2800 movs r0, r5
| ||||||| 0x080509f8 c0b2 uxtb r0, r0
| ||||||| 0x080509fa 01f0c7f8 bl func_51b8c
| ||||||| 0x080509fe dff8700d ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050a02 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050a04 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050a08 dff8641d ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050a0c 0871 strb r0, [r1, 4]
| ||||||| 0x08050a0e dff8600d ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050a12 c078 ldrb r0, [r0, 3]
| ||||||| 0x08050a14 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050a18 dff8541d ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050a1c c870 strb r0, [r1, 3]
| ||||||| 0x08050a1e 0120 movs r0, 1 ; 1
| ||||||| 0x08050a20 dff84c1d ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050a24 0978 ldrb r1, [r1]
| ||||||| 0x08050a26 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08050a2a dff8440d ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050a2e 0170 strb r1, [r0]
| ||||||| 0x08050a30 dff83c0d ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050a34 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050a36 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08050a3a dff8341d ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050a3e 0871 strb r0, [r1, 4]
| ||||||| 0x08050a40 dff82c0d ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050a44 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08050a48 4183 strh r1, [r0, 0x1a]
| ||||||| 0x08050a4a dff8240d ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050a4e 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08050a52 0183 strh r1, [r0, 0x18]
| ||||||| 0x08050a54 eff7a8f9 bl func_3fda8
| ||||||| 0x08050a58 dff8c408 ldr.w r0, [0x08051324] ; [0x8051324:4]=0x738f8df
| ||||||| 0x08050a5c 0021 movs r1, 0
| ||||||| 0x08050a5e 0170 strb r1, [r0]
| ||||||| 0x08050a60 ecf73af9 bl func_3ccd8
| --------> 0x08050a64 01f08fb8 b.w 0x8051b86
| --------> 0x08050a68 aa48 ldr r0, [0x08050d14] ; [0x8050d14:4]=0x2001e892 gui_opmode3
| ||||||| 0x08050a6a 0078 ldrb r0, [r0]
| ||||||| 0x08050a6c 8128 cmp r0, 0x81 ; 129
| ========< 0x08050a6e f9d1 bne 0x8050a64
| ||||||| 0x08050a70 601e subs r0, r4, 1
| ||||||| 0x08050a72 c0b2 uxtb r0, r0
| ||||||| 0x08050a74 0928 cmp r0, 9 ; 9
| ========< 0x08050a76 0fd2 bhs 0x8050a98
| ||||||| 0x08050a78 e4b2 uxtb r4, r4
| ||||||| 0x08050a7a dff86405 ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x08050a7e 2018 adds r0, r4, r0
| ||||||| 0x08050a80 dff8e81c ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050a84 0978 ldrb r1, [r1]
| ||||||| 0x08050a86 80f87f10 strb.w r1, [r0, 0x7f]
| ||||||| 0x08050a8a dff8e00c ldr.w r0, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050a8e 0178 ldrb r1, [r0]
| ||||||| 0x08050a90 3f20 movs r0, 0x3f ; '?' ; 63
| ||||||| 0x08050a92 eff777fa bl c5000_spi0_writereg
| ========< 0x08050a96 e5e7 b 0x8050a64
| --------> 0x08050a98 01f075b8 b.w 0x8051b86
| --------> 0x08050a9c 9d48 ldr r0, [0x08050d14] ; [0x8050d14:4]=0x2001e892 gui_opmode3
| ||||||| 0x08050a9e 0078 ldrb r0, [r0]
| ||||||| 0x08050aa0 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08050aa2 53d1 bne 0x8050b4c
| ||||||| 0x08050aa4 601e subs r0, r4, 1
| ||||||| 0x08050aa6 c0b2 uxtb r0, r0
| ||||||| 0x08050aa8 0928 cmp r0, 9 ; 9
| ========< 0x08050aaa 10d2 bhs 0x8050ace
| ||||||| 0x08050aac e4b2 uxtb r4, r4
| ||||||| 0x08050aae dff83005 ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x08050ab2 2018 adds r0, r4, r0
| ||||||| 0x08050ab4 dff8b41c ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050ab8 0978 ldrb r1, [r1]
| ||||||| 0x08050aba 80f88f10 strb.w r1, [r0, 0x8f]
| ||||||| 0x08050abe 9548 ldr r0, [0x08050d16] ; [0x8050d14:4]=0x2001e892 gui_opmode3
| ||||||| 0x08050ac0 8221 movs r1, 0x82 ; 130
| ||||||| 0x08050ac2 0170 strb r1, [r0]
| ||||||| 0x08050ac4 edb2 uxtb r5, r5
| ||||||| 0x08050ac6 012d cmp r5, 1 ; 1
| ========< 0x08050ac8 03d2 bhs 0x8050ad2
| ||||||| 0x08050aca 0125 movs r5, 1 ; 1
| ========< 0x08050acc 05e0 b 0x8050ada
| --------> 0x08050ace 01f05ab8 b.w 0x8051b86
| --------> 0x08050ad2 edb2 uxtb r5, r5
| ||||||| 0x08050ad4 0a2d cmp r5, 0xa ; 10
| ========< 0x08050ad6 00d3 blo 0x8050ada
| ||||||| 0x08050ad8 0925 movs r5, 9 ; 9
| --------> 0x08050ada 2800 movs r0, r5
| ||||||| 0x08050adc c0b2 uxtb r0, r0
| ||||||| 0x08050ade 01f055f8 bl func_51b8c
| ||||||| 0x08050ae2 dff88c0c ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050ae6 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050ae8 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050aec dff8801c ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050af0 0871 strb r0, [r1, 4]
| ||||||| 0x08050af2 dff87c0c ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050af6 c078 ldrb r0, [r0, 3]
| ||||||| 0x08050af8 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050afc dff8701c ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050b00 c870 strb r0, [r1, 3]
| ||||||| 0x08050b02 0120 movs r0, 1 ; 1
| ||||||| 0x08050b04 dff8681c ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050b08 0978 ldrb r1, [r1]
| ||||||| 0x08050b0a 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08050b0e dff8600c ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050b12 0170 strb r1, [r0]
| ||||||| 0x08050b14 dff8580c ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050b18 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050b1a 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08050b1e dff8501c ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050b22 0871 strb r0, [r1, 4]
| ||||||| 0x08050b24 dff8480c ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050b28 4ff4ce61 mov.w r1, 0x670 ; 1648
| ||||||| 0x08050b2c 4183 strh r1, [r0, 0x1a]
| ||||||| 0x08050b2e dff8400c ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050b32 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08050b36 0183 strh r1, [r0, 0x18]
| ||||||| 0x08050b38 eff736f9 bl func_3fda8
| ||||||| 0x08050b3c dff8e007 ldr.w r0, [0x08051324] ; [0x8051324:4]=0x738f8df
| ||||||| 0x08050b40 0021 movs r1, 0
| ||||||| 0x08050b42 0170 strb r1, [r0]
| ||||||| 0x08050b44 ecf7c8f8 bl func_3ccd8
| --------> 0x08050b48 01f01db8 b.w 0x8051b86
| --------> 0x08050b4c 7148 ldr r0, [0x08050d14] ; [0x8050d14:4]=0x2001e892 gui_opmode3
| ||||||| 0x08050b4e 0078 ldrb r0, [r0]
| ||||||| 0x08050b50 8228 cmp r0, 0x82 ; 130
| ========< 0x08050b52 f9d1 bne 0x8050b48
| ||||||| 0x08050b54 601e subs r0, r4, 1
| ||||||| 0x08050b56 c0b2 uxtb r0, r0
| ||||||| 0x08050b58 0928 cmp r0, 9 ; 9
| ========< 0x08050b5a 0fd2 bhs 0x8050b7c
| ||||||| 0x08050b5c e4b2 uxtb r4, r4
| ||||||| 0x08050b5e dff88004 ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x08050b62 2018 adds r0, r4, r0
| ||||||| 0x08050b64 dff8041c ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050b68 0978 ldrb r1, [r1]
| ||||||| 0x08050b6a 80f88f10 strb.w r1, [r0, 0x8f]
| ||||||| 0x08050b6e dff8e40c ldr.w r0, [0x0805185a] ; [0x8051858:4]=0x4881e195
| ||||||| 0x08050b72 dff8f81b ldr.w r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050b76 0978 ldrb r1, [r1]
| ||||||| 0x08050b78 0170 strb r1, [r0]
| ========< 0x08050b7a e5e7 b 0x8050b48
| --------> 0x08050b7c 01f003b8 b.w 0x8051b86
| --------> 0x08050b80 6448 ldr r0, [0x08050d14] ; [0x8050d14:4]=0x2001e892 gui_opmode3
| ||||||| 0x08050b82 0078 ldrb r0, [r0]
| ||||||| 0x08050b84 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08050b86 53d1 bne 0x8050c30
| ||||||| 0x08050b88 601e subs r0, r4, 1
| ||||||| 0x08050b8a c0b2 uxtb r0, r0
| ||||||| 0x08050b8c 0928 cmp r0, 9 ; 9
| ========< 0x08050b8e 10d2 bhs 0x8050bb2
| ||||||| 0x08050b90 e4b2 uxtb r4, r4
| ||||||| 0x08050b92 dff84c04 ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x08050b96 2018 adds r0, r4, r0
| ||||||| 0x08050b98 dff8d01b ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050b9c 0978 ldrb r1, [r1]
| ||||||| 0x08050b9e 80f89f10 strb.w r1, [r0, 0x9f]
| ||||||| 0x08050ba2 5c48 ldr r0, [0x08050d16] ; [0x8050d14:4]=0x2001e892 gui_opmode3
| ||||||| 0x08050ba4 8321 movs r1, 0x83 ; 131
| ||||||| 0x08050ba6 0170 strb r1, [r0]
| ||||||| 0x08050ba8 edb2 uxtb r5, r5
| ||||||| 0x08050baa 012d cmp r5, 1 ; 1
| ========< 0x08050bac 03d2 bhs 0x8050bb6
| ||||||| 0x08050bae 0125 movs r5, 1 ; 1
| ========< 0x08050bb0 05e0 b 0x8050bbe
| --------> 0x08050bb2 00f0e8bf b.w 0x8051b86
| --------> 0x08050bb6 edb2 uxtb r5, r5
| ||||||| 0x08050bb8 0a2d cmp r5, 0xa ; 10
| ========< 0x08050bba 00d3 blo 0x8050bbe
| ||||||| 0x08050bbc 0925 movs r5, 9 ; 9
| --------> 0x08050bbe 2800 movs r0, r5
| ||||||| 0x08050bc0 c0b2 uxtb r0, r0
| ||||||| 0x08050bc2 00f0e3ff bl func_51b8c
| ||||||| 0x08050bc6 dff8a80b ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050bca 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050bcc 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050bd0 dff89c1b ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050bd4 0871 strb r0, [r1, 4]
| ||||||| 0x08050bd6 dff8980b ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050bda c078 ldrb r0, [r0, 3]
| ||||||| 0x08050bdc 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050be0 dff88c1b ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050be4 c870 strb r0, [r1, 3]
| ||||||| 0x08050be6 0120 movs r0, 1 ; 1
| ||||||| 0x08050be8 dff8841b ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050bec 0978 ldrb r1, [r1]
| ||||||| 0x08050bee 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08050bf2 dff87c0b ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050bf6 0170 strb r1, [r0]
| ||||||| 0x08050bf8 dff8740b ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050bfc 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050bfe 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08050c02 dff86c1b ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050c06 0871 strb r0, [r1, 4]
| ||||||| 0x08050c08 dff8640b ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050c0c 41f21451 movw r1, 0x1514
| ||||||| 0x08050c10 4183 strh r1, [r0, 0x1a]
| ||||||| 0x08050c12 dff85c0b ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050c16 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08050c1a 0183 strh r1, [r0, 0x18]
| ||||||| 0x08050c1c eff7c4f8 bl func_3fda8
| ||||||| 0x08050c20 dff8fc06 ldr.w r0, [0x08051324] ; [0x8051324:4]=0x738f8df
| ||||||| 0x08050c24 0021 movs r1, 0
| ||||||| 0x08050c26 0170 strb r1, [r0]
| ||||||| 0x08050c28 ecf756f8 bl func_3ccd8
| --------> 0x08050c2c 00f0abbf b.w 0x8051b86
| --------> 0x08050c30 3848 ldr r0, [0x08050d14] ; [0x8050d14:4]=0x2001e892 gui_opmode3
| ||||||| 0x08050c32 0078 ldrb r0, [r0]
| ||||||| 0x08050c34 8328 cmp r0, 0x83 ; 131
| ========< 0x08050c36 f9d1 bne 0x8050c2c
| ||||||| 0x08050c38 601e subs r0, r4, 1
| ||||||| 0x08050c3a c0b2 uxtb r0, r0
| ||||||| 0x08050c3c 0928 cmp r0, 9 ; 9
| ========< 0x08050c3e 0fd2 bhs 0x8050c60
| ||||||| 0x08050c40 e4b2 uxtb r4, r4
| ||||||| 0x08050c42 dff89c03 ldr.w r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x08050c46 2018 adds r0, r4, r0
| ||||||| 0x08050c48 dff8201b ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050c4c 0978 ldrb r1, [r1]
| ||||||| 0x08050c4e 80f89f10 strb.w r1, [r0, 0x9f]
| ||||||| 0x08050c52 dff8000c ldr.w r0, [0x0805185a] ; [0x8051858:4]=0x4881e195
| ||||||| 0x08050c56 dff8141b ldr.w r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050c5a 0978 ldrb r1, [r1]
| ||||||| 0x08050c5c 0170 strb r1, [r0]
| ========< 0x08050c5e e5e7 b 0x8050c2c
| --------> 0x08050c60 00f091bf b.w 0x8051b86
| --------> 0x08050c64 2b48 ldr r0, [0x08050d14] ; [0x8050d14:4]=0x2001e892 gui_opmode3
| ||||||| 0x08050c66 0078 ldrb r0, [r0]
| ||||||| 0x08050c68 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08050c6a 57d1 bne 0x8050d1c
| ||||||| 0x08050c6c 601e subs r0, r4, 1
| ||||||| 0x08050c6e c0b2 uxtb r0, r0
| ||||||| 0x08050c70 0928 cmp r0, 9 ; 9
| ========< 0x08050c72 0fd2 bhs 0x8050c94
| ||||||| 0x08050c74 e4b2 uxtb r4, r4
| ||||||| 0x08050c76 da48 ldr r0, [0x08050fe2] ; [0x8050fe0:4]=0x2001c380
| ||||||| 0x08050c78 2018 adds r0, r4, r0
| ||||||| 0x08050c7a dff8f01a ldr.w r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050c7e 0978 ldrb r1, [r1]
| ||||||| 0x08050c80 80f8af10 strb.w r1, [r0, 0xaf]
| ||||||| 0x08050c84 2348 ldr r0, [0x08050d14] ; [0x8050d14:4]=0x2001e892 gui_opmode3
| ||||||| 0x08050c86 8421 movs r1, 0x84 ; 132
| ||||||| 0x08050c88 0170 strb r1, [r0]
| ||||||| 0x08050c8a edb2 uxtb r5, r5
| ||||||| 0x08050c8c 012d cmp r5, 1 ; 1
| ========< 0x08050c8e 03d2 bhs 0x8050c98
| ||||||| 0x08050c90 0125 movs r5, 1 ; 1
| ========< 0x08050c92 05e0 b 0x8050ca0
| --------> 0x08050c94 00f077bf b.w 0x8051b86
| --------> 0x08050c98 edb2 uxtb r5, r5
| ||||||| 0x08050c9a 0a2d cmp r5, 0xa ; 10
| ========< 0x08050c9c 00d3 blo 0x8050ca0
| ||||||| 0x08050c9e 0925 movs r5, 9 ; 9
| --------> 0x08050ca0 2800 movs r0, r5
| ||||||| 0x08050ca2 c0b2 uxtb r0, r0
| ||||||| 0x08050ca4 00f072ff bl func_51b8c
| ||||||| 0x08050ca8 dff8c40a ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050cac 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050cae 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050cb2 dff8bc1a ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050cb6 0871 strb r0, [r1, 4]
| ||||||| 0x08050cb8 dff8b40a ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050cbc c078 ldrb r0, [r0, 3]
| ||||||| 0x08050cbe 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050cc2 dff8ac1a ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050cc6 c870 strb r0, [r1, 3]
| ||||||| 0x08050cc8 0120 movs r0, 1 ; 1
| ||||||| 0x08050cca dff8a41a ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050cce 0978 ldrb r1, [r1]
| ||||||| 0x08050cd0 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08050cd4 dff8980a ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050cd8 0170 strb r1, [r0]
| ||||||| 0x08050cda dff8940a ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050cde 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050ce0 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08050ce4 dff8881a ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050ce8 0871 strb r0, [r1, 4]
| ||||||| 0x08050cea dff8840a ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050cee 42f24151 movw r1, 0x2541
| ||||||| 0x08050cf2 4183 strh r1, [r0, 0x1a]
| ||||||| 0x08050cf4 dff8780a ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050cf8 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08050cfc 0183 strh r1, [r0, 0x18]
| ||||||| 0x08050cfe eff753f8 bl func_3fda8
| ||||||| 0x08050d02 dff81c06 ldr.w r0, [0x08051326] ; [0x8051324:4]=0x738f8df
| ||||||| 0x08050d06 0021 movs r1, 0
| ||||||| 0x08050d08 0170 strb r1, [r0]
| ||||||| 0x08050d0a ebf7e5ff bl func_3ccd8
| --------> 0x08050d0e 00f03abf b.w 0x8051b86
| ||||||| 0x08050d12 00bf nop
| ||||||| 0x08050d14 92e80120 ldm.w r2, {r0, sp}
| ||||||| 0x08050d18 0000 movs r0, r0
| ||||||| 0x08050d1a 0240 ands r2, r0
| --------> 0x08050d1c dff8400d ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08050d20 0078 ldrb r0, [r0]
| ||||||| 0x08050d22 8428 cmp r0, 0x84 ; 132
| ========< 0x08050d24 f3d1 bne 0x8050d0e
| ||||||| 0x08050d26 601e subs r0, r4, 1
| ||||||| 0x08050d28 c0b2 uxtb r0, r0
| ||||||| 0x08050d2a 0928 cmp r0, 9 ; 9
| ========< 0x08050d2c 0ed2 bhs 0x8050d4c
| ||||||| 0x08050d2e e4b2 uxtb r4, r4
| ||||||| 0x08050d30 ab48 ldr r0, [0x08050fe0] ; [0x8050fe0:4]=0x2001c380
| ||||||| 0x08050d32 2018 adds r0, r4, r0
| ||||||| 0x08050d34 dff8341a ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050d38 0978 ldrb r1, [r1]
| ||||||| 0x08050d3a 80f8af10 strb.w r1, [r0, 0xaf]
| ||||||| 0x08050d3e dff8140b ldr.w r0, [0x0805185a] ; [0x8051858:4]=0x4881e195
| ||||||| 0x08050d42 dff8281a ldr.w r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050d46 0978 ldrb r1, [r1]
| ||||||| 0x08050d48 0170 strb r1, [r0]
| ========< 0x08050d4a e0e7 b 0x8050d0e
| --------> 0x08050d4c 00f01bbf b.w 0x8051b86
| --------> 0x08050d50 dff80c0d ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08050d54 0078 ldrb r0, [r0]
| ||||||| 0x08050d56 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08050d58 53d1 bne 0x8050e02
| ||||||| 0x08050d5a 601e subs r0, r4, 1
| ||||||| 0x08050d5c c0b2 uxtb r0, r0
| ||||||| 0x08050d5e 0928 cmp r0, 9 ; 9
| ========< 0x08050d60 10d2 bhs 0x8050d84
| ||||||| 0x08050d62 e4b2 uxtb r4, r4
| ||||||| 0x08050d64 9e48 ldr r0, [0x08050fe0] ; [0x8050fe0:4]=0x2001c380
| ||||||| 0x08050d66 2018 adds r0, r4, r0
| ||||||| 0x08050d68 dff8001a ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050d6c 0978 ldrb r1, [r1]
| ||||||| 0x08050d6e 80f8bf10 strb.w r1, [r0, 0xbf]
| ||||||| 0x08050d72 dff8ec0c ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08050d76 8521 movs r1, 0x85 ; 133
| ||||||| 0x08050d78 0170 strb r1, [r0]
| ||||||| 0x08050d7a edb2 uxtb r5, r5
| ||||||| 0x08050d7c 012d cmp r5, 1 ; 1
| ========< 0x08050d7e 03d2 bhs 0x8050d88
| ||||||| 0x08050d80 0125 movs r5, 1 ; 1
| ========< 0x08050d82 05e0 b 0x8050d90
| --------> 0x08050d84 00f0ffbe b.w 0x8051b86
| --------> 0x08050d88 edb2 uxtb r5, r5
| ||||||| 0x08050d8a 0a2d cmp r5, 0xa ; 10
| ========< 0x08050d8c 00d3 blo 0x8050d90
| ||||||| 0x08050d8e 0925 movs r5, 9 ; 9
| --------> 0x08050d90 2800 movs r0, r5
| ||||||| 0x08050d92 c0b2 uxtb r0, r0
| ||||||| 0x08050d94 00f0fafe bl func_51b8c
| ||||||| 0x08050d98 dff8d409 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050d9c 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050d9e 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050da2 dff8cc19 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050da6 0871 strb r0, [r1, 4]
| ||||||| 0x08050da8 dff8c409 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050dac c078 ldrb r0, [r0, 3]
| ||||||| 0x08050dae 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050db2 dff8bc19 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050db6 c870 strb r0, [r1, 3]
| ||||||| 0x08050db8 0120 movs r0, 1 ; 1
| ||||||| 0x08050dba dff8b419 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050dbe 0978 ldrb r1, [r1]
| ||||||| 0x08050dc0 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08050dc4 dff8a809 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050dc8 0170 strb r1, [r0]
| ||||||| 0x08050dca dff8a409 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050dce 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050dd0 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08050dd4 dff89819 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050dd8 0871 strb r0, [r1, 4]
| ||||||| 0x08050dda dff89409 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050dde 48f22311 movw r1, 0x8123
| ||||||| 0x08050de2 4183 strh r1, [r0, 0x1a]
| ||||||| 0x08050de4 dff88809 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050de8 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08050dec 0183 strh r1, [r0, 0x18]
| ||||||| 0x08050dee eef7dbff bl func_3fda8
| ||||||| 0x08050df2 dff82c05 ldr.w r0, [0x08051326] ; [0x8051324:4]=0x738f8df
| ||||||| 0x08050df6 0021 movs r1, 0
| ||||||| 0x08050df8 0170 strb r1, [r0]
| ||||||| 0x08050dfa ebf76dff bl func_3ccd8
| --------> 0x08050dfe 00f0c2be b.w 0x8051b86
| --------> 0x08050e02 dff85c0c ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08050e06 0078 ldrb r0, [r0]
| ||||||| 0x08050e08 8528 cmp r0, 0x85 ; 133
| ========< 0x08050e0a f8d1 bne 0x8050dfe
| ||||||| 0x08050e0c 601e subs r0, r4, 1
| ||||||| 0x08050e0e c0b2 uxtb r0, r0
| ||||||| 0x08050e10 0928 cmp r0, 9 ; 9
| ========< 0x08050e12 0ed2 bhs 0x8050e32
| ||||||| 0x08050e14 e4b2 uxtb r4, r4
| ||||||| 0x08050e16 7248 ldr r0, [0x08050fe2] ; [0x8050fe0:4]=0x2001c380
| ||||||| 0x08050e18 2018 adds r0, r4, r0
| ||||||| 0x08050e1a dff85019 ldr.w r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050e1e 0978 ldrb r1, [r1]
| ||||||| 0x08050e20 80f8bf10 strb.w r1, [r0, 0xbf]
| ||||||| 0x08050e24 dff8600d ldr.w r0, [func_51b8c] ; [0x8051b8c:4]=0xb2c01e40
| ||||||| 0x08050e28 dff84019 ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050e2c 0978 ldrb r1, [r1]
| ||||||| 0x08050e2e 0170 strb r1, [r0]
| ========< 0x08050e30 e5e7 b 0x8050dfe
| --------> 0x08050e32 00f0a8be b.w 0x8051b86
| --------> 0x08050e36 dff8280c ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08050e3a 0078 ldrb r0, [r0]
| ||||||| 0x08050e3c 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08050e3e 53d1 bne 0x8050ee8
| ||||||| 0x08050e40 601e subs r0, r4, 1
| ||||||| 0x08050e42 c0b2 uxtb r0, r0
| ||||||| 0x08050e44 0928 cmp r0, 9 ; 9
| ========< 0x08050e46 10d2 bhs 0x8050e6a
| ||||||| 0x08050e48 e4b2 uxtb r4, r4
| ||||||| 0x08050e4a 6548 ldr r0, [0x08050fe2] ; [0x8050fe0:4]=0x2001c380
| ||||||| 0x08050e4c 2018 adds r0, r4, r0
| ||||||| 0x08050e4e dff81c19 ldr.w r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050e52 0978 ldrb r1, [r1]
| ||||||| 0x08050e54 80f8cf10 strb.w r1, [r0, 0xcf]
| ||||||| 0x08050e58 dff8040c ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08050e5c 8621 movs r1, 0x86 ; 134
| ||||||| 0x08050e5e 0170 strb r1, [r0]
| ||||||| 0x08050e60 edb2 uxtb r5, r5
| ||||||| 0x08050e62 012d cmp r5, 1 ; 1
| ========< 0x08050e64 03d2 bhs 0x8050e6e
| ||||||| 0x08050e66 0125 movs r5, 1 ; 1
| ========< 0x08050e68 05e0 b 0x8050e76
| --------> 0x08050e6a 00f08cbe b.w 0x8051b86
| --------> 0x08050e6e edb2 uxtb r5, r5
| ||||||| 0x08050e70 0a2d cmp r5, 0xa ; 10
| ========< 0x08050e72 00d3 blo 0x8050e76
| ||||||| 0x08050e74 0925 movs r5, 9 ; 9
| --------> 0x08050e76 2800 movs r0, r5
| ||||||| 0x08050e78 c0b2 uxtb r0, r0
| ||||||| 0x08050e7a 00f087fe bl func_51b8c
| ||||||| 0x08050e7e dff8f008 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050e82 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050e84 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050e88 dff8e418 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050e8c 0871 strb r0, [r1, 4]
| ||||||| 0x08050e8e dff8e008 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050e92 c078 ldrb r0, [r0, 3]
| ||||||| 0x08050e94 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050e98 dff8d418 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050e9c c870 strb r0, [r1, 3]
| ||||||| 0x08050e9e 0120 movs r0, 1 ; 1
| ||||||| 0x08050ea0 dff8cc18 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050ea4 0978 ldrb r1, [r1]
| ||||||| 0x08050ea6 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08050eaa dff8c408 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050eae 0170 strb r1, [r0]
| ||||||| 0x08050eb0 dff8bc08 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050eb4 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050eb6 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08050eba dff8b418 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050ebe 0871 strb r0, [r1, 4]
| ||||||| 0x08050ec0 dff8ac08 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050ec4 48f22311 movw r1, 0x8123
| ||||||| 0x08050ec8 4183 strh r1, [r0, 0x1a]
| ||||||| 0x08050eca dff8a408 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050ece 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08050ed2 0183 strh r1, [r0, 0x18]
| ||||||| 0x08050ed4 eef768ff bl func_3fda8
| ||||||| 0x08050ed8 dff84404 ldr.w r0, [0x08051324] ; [0x8051324:4]=0x738f8df
| ||||||| 0x08050edc 0021 movs r1, 0
| ||||||| 0x08050ede 0170 strb r1, [r0]
| ||||||| 0x08050ee0 ebf7fafe bl func_3ccd8
| --------> 0x08050ee4 00f04fbe b.w 0x8051b86
| --------> 0x08050ee8 dff8740b ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08050eec 0078 ldrb r0, [r0]
| ||||||| 0x08050eee 8628 cmp r0, 0x86 ; 134
| ========< 0x08050ef0 f8d1 bne 0x8050ee4
| ||||||| 0x08050ef2 601e subs r0, r4, 1
| ||||||| 0x08050ef4 c0b2 uxtb r0, r0
| ||||||| 0x08050ef6 0928 cmp r0, 9 ; 9
| ========< 0x08050ef8 0ed2 bhs 0x8050f18
| ||||||| 0x08050efa e4b2 uxtb r4, r4
| ||||||| 0x08050efc 3848 ldr r0, [0x08050fe0] ; [0x8050fe0:4]=0x2001c380
| ||||||| 0x08050efe 2018 adds r0, r4, r0
| ||||||| 0x08050f00 dff86818 ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050f04 0978 ldrb r1, [r1]
| ||||||| 0x08050f06 80f8cf10 strb.w r1, [r0, 0xcf]
| ||||||| 0x08050f0a dff84809 ldr.w r0, [0x0805185a] ; [0x8051858:4]=0x4881e195
| ||||||| 0x08050f0e dff85c18 ldr.w r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08050f12 0978 ldrb r1, [r1]
| ||||||| 0x08050f14 0170 strb r1, [r0]
| ========< 0x08050f16 e5e7 b 0x8050ee4
| --------> 0x08050f18 00f035be b.w 0x8051b86
| --------> 0x08050f1c dff8400b ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08050f20 0078 ldrb r0, [r0]
| ||||||| 0x08050f22 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08050f24 4ed1 bne 0x8050fc4
| ||||||| 0x08050f26 601e subs r0, r4, 1
| ||||||| 0x08050f28 c0b2 uxtb r0, r0
| ||||||| 0x08050f2a 0928 cmp r0, 9 ; 9
| ========< 0x08050f2c 80f02b86 bhs.w 0x8051b86
| ||||||| 0x08050f30 dff82c0b ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08050f34 8721 movs r1, 0x87 ; 135
| ||||||| 0x08050f36 0170 strb r1, [r0]
| ||||||| 0x08050f38 edb2 uxtb r5, r5
| ||||||| 0x08050f3a 012d cmp r5, 1 ; 1
| ========< 0x08050f3c 01d2 bhs 0x8050f42
| ||||||| 0x08050f3e 0125 movs r5, 1 ; 1
| ========< 0x08050f40 03e0 b 0x8050f4a
| --------> 0x08050f42 edb2 uxtb r5, r5
| ||||||| 0x08050f44 0a2d cmp r5, 0xa ; 10
| ========< 0x08050f46 00d3 blo 0x8050f4a
| ||||||| 0x08050f48 0925 movs r5, 9 ; 9
| --------> 0x08050f4a 0520 movs r0, 5 ; 5
| ||||||| 0x08050f4c 00f01efe bl func_51b8c
| ||||||| 0x08050f50 dff81c08 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050f54 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050f56 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050f5a dff81418 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050f5e 0871 strb r0, [r1, 4]
| ||||||| 0x08050f60 dff80c08 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050f64 c078 ldrb r0, [r0, 3]
| ||||||| 0x08050f66 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08050f6a dff80418 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050f6e c870 strb r0, [r1, 3]
| ||||||| 0x08050f70 0220 movs r0, 2 ; 2
| ||||||| 0x08050f72 dff8fc17 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050f76 0978 ldrb r1, [r1]
| ||||||| 0x08050f78 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08050f7c dff8f007 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050f80 0170 strb r1, [r0]
| ||||||| 0x08050f82 dff8ec07 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050f86 0079 ldrb r0, [r0, 4]
| ||||||| 0x08050f88 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08050f8c dff8e017 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08050f90 0871 strb r0, [r1, 4]
| ||||||| 0x08050f92 1448 ldr r0, [0x08050fe6] ; [0x8050fe4:4]=0x2001e1ac contact
| ||||||| 0x08050f94 7ff07c41 mvns r1, 0xfc000000
| ||||||| 0x08050f98 0160 str r1, [r0]
| ||||||| 0x08050f9a eef7aafc bl func_3f8f2_init_PLL_and_C5000
| ||||||| 0x08050f9e e1f74ef9 bl func_3223e
| ||||||| 0x08050fa2 1148 ldr r0, [0x08050fea] ; [0x8050fe8:4]=0x2001e897
| ||||||| 0x08050fa4 0121 movs r1, 1 ; 1
| ||||||| 0x08050fa6 0170 strb r1, [r0]
| ||||||| 0x08050fa8 2000 movs r0, r4
| ||||||| 0x08050faa c0b2 uxtb r0, r0
| ||||||| 0x08050fac f2f79afa bl func_434e4_wr_C5000
| ||||||| 0x08050fb0 0e48 ldr r0, [0x08050fec] ; [0x8050fec:4]=0x2001e600 q_struct_1
| ||||||| 0x08050fb2 0078 ldrb r0, [r0]
| ||||||| 0x08050fb4 50f00800 orrs r0, r0, 8
| ||||||| 0x08050fb8 0c49 ldr r1, [0x08050fec] ; [0x8050fec:4]=0x2001e600 q_struct_1
| ||||||| 0x08050fba 0870 strb r0, [r1]
| ||||||| 0x08050fbc f6f74bfe bl WaitAndDoSomethingWithGPIOC
| --------> 0x08050fc0 00f0e1bd b.w 0x8051b86
| --------> 0x08050fc4 dff8980a ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08050fc8 0078 ldrb r0, [r0]
| ||||||| 0x08050fca 8728 cmp r0, 0x87 ; 135
| ========< 0x08050fcc f8d1 bne 0x8050fc0
| ||||||| 0x08050fce 601e subs r0, r4, 1
| ||||||| 0x08050fd0 c0b2 uxtb r0, r0
| ||||||| 0x08050fd2 0928 cmp r0, 9 ; 9
| ========< 0x08050fd4 0cd2 bhs 0x8050ff0
| ||||||| 0x08050fd6 2000 movs r0, r4
| ||||||| 0x08050fd8 c0b2 uxtb r0, r0
| ||||||| 0x08050fda f2f783fa bl func_434e4_wr_C5000
| ========< 0x08050fde efe7 b 0x8050fc0
| ||||||| 0x08050fe0 80c3 stm r3!, {r7}
| ||||||| 0x08050fe2 0120 movs r0, 1 ; 1
| ========< 0x08050fe4 ace1 b 0x8051340
| ||||||| 0x08050fe6 0120 movs r0, 1 ; 1
| ||||||| 0x08050fe8 97e80120 ldm.w r7, {r0, sp}
| ========< 0x08050fec 00e6 b 0x8050bf0
| ||||||| 0x08050fee 0120 movs r0, 1 ; 1
| --------> 0x08050ff0 00f0c9bd b.w 0x8051b86
| --------> 0x08050ff4 dff8680a ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08050ff8 0078 ldrb r0, [r0]
| ||||||| 0x08050ffa 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08050ffc 53d1 bne 0x80510a6
| ||||||| 0x08050ffe 601e subs r0, r4, 1
| ||||||| 0x08051000 c0b2 uxtb r0, r0
| ||||||| 0x08051002 0928 cmp r0, 9 ; 9
| ========< 0x08051004 11d2 bhs 0x805102a
| ||||||| 0x08051006 e4b2 uxtb r4, r4
| ||||||| 0x08051008 dff8fc0b ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x0805100c 2018 adds r0, r4, r0
| ||||||| 0x0805100e dff85c17 ldr.w r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051012 0978 ldrb r1, [r1]
| ||||||| 0x08051014 80f8ef10 strb.w r1, [r0, 0xef]
| ||||||| 0x08051018 dff8440a ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x0805101c 8821 movs r1, 0x88 ; 136
| ||||||| 0x0805101e 0170 strb r1, [r0]
| ||||||| 0x08051020 edb2 uxtb r5, r5
| ||||||| 0x08051022 012d cmp r5, 1 ; 1
| ========< 0x08051024 03d2 bhs 0x805102e
| ||||||| 0x08051026 0125 movs r5, 1 ; 1
| ========< 0x08051028 05e0 b 0x8051036
| --------> 0x0805102a 00f0acbd b.w 0x8051b86
| --------> 0x0805102e edb2 uxtb r5, r5
| ||||||| 0x08051030 0a2d cmp r5, 0xa ; 10
| ========< 0x08051032 00d3 blo 0x8051036
| ||||||| 0x08051034 0925 movs r5, 9 ; 9
| --------> 0x08051036 2800 movs r0, r5
| ||||||| 0x08051038 c0b2 uxtb r0, r0
| ||||||| 0x0805103a 00f0a7fd bl func_51b8c
| ||||||| 0x0805103e dff83007 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08051042 0079 ldrb r0, [r0, 4]
| ||||||| 0x08051044 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08051048 dff82417 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x0805104c 0871 strb r0, [r1, 4]
| ||||||| 0x0805104e dff82007 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08051052 c078 ldrb r0, [r0, 3]
| ||||||| 0x08051054 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08051058 dff81417 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x0805105c c870 strb r0, [r1, 3]
| ||||||| 0x0805105e 0120 movs r0, 1 ; 1
| ||||||| 0x08051060 dff80c17 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08051064 0978 ldrb r1, [r1]
| ||||||| 0x08051066 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x0805106a dff80407 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x0805106e 0170 strb r1, [r0]
| ||||||| 0x08051070 dff8fc06 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08051074 0079 ldrb r0, [r0, 4]
| ||||||| 0x08051076 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x0805107a dff8f416 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x0805107e 0871 strb r0, [r1, 4]
| ||||||| 0x08051080 dff8ec06 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08051084 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08051088 4183 strh r1, [r0, 0x1a]
| ||||||| 0x0805108a dff8e406 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x0805108e 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08051092 0183 strh r1, [r0, 0x18]
| ||||||| 0x08051094 eef788fe bl func_3fda8
| ||||||| 0x08051098 a148 ldr r0, [0x08051320] ; [0x8051320:4]=0x2001e8e3
| ||||||| 0x0805109a 0021 movs r1, 0
| ||||||| 0x0805109c 0170 strb r1, [r0]
| ||||||| 0x0805109e ebf71bfe bl func_3ccd8
| --------> 0x080510a2 00f070bd b.w 0x8051b86
| --------> 0x080510a6 dff8b809 ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x080510aa 0078 ldrb r0, [r0]
| ||||||| 0x080510ac 8828 cmp r0, 0x88 ; 136
| ========< 0x080510ae f8d1 bne 0x80510a2
| ||||||| 0x080510b0 601e subs r0, r4, 1
| ||||||| 0x080510b2 c0b2 uxtb r0, r0
| ||||||| 0x080510b4 0928 cmp r0, 9 ; 9
| ========< 0x080510b6 0fd2 bhs 0x80510d8
| ||||||| 0x080510b8 e4b2 uxtb r4, r4
| ||||||| 0x080510ba dff84c0b ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x080510be 2018 adds r0, r4, r0
| ||||||| 0x080510c0 dff8a816 ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080510c4 0978 ldrb r1, [r1]
| ||||||| 0x080510c6 80f8ef10 strb.w r1, [r0, 0xef]
| ||||||| 0x080510ca dff8a006 ldr.w r0, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080510ce 0178 ldrb r1, [r0]
| ||||||| 0x080510d0 3520 movs r0, 0x35 ; '5' ; 53
| ||||||| 0x080510d2 eef757ff bl c5000_spi0_writereg
| ========< 0x080510d6 e4e7 b 0x80510a2
| --------> 0x080510d8 00f055bd b.w 0x8051b86
| --------> 0x080510dc dff88009 ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x080510e0 0078 ldrb r0, [r0]
| ||||||| 0x080510e2 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x080510e4 14d1 bne 0x8051110
| ||||||| 0x080510e6 601e subs r0, r4, 1
| ||||||| 0x080510e8 c0b2 uxtb r0, r0
| ||||||| 0x080510ea 0928 cmp r0, 9 ; 9
| ========< 0x080510ec 0ed2 bhs 0x805110c
| ||||||| 0x080510ee e4b2 uxtb r4, r4
| ||||||| 0x080510f0 dff8140b ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x080510f4 2018 adds r0, r4, r0
| ||||||| 0x080510f6 dff87416 ldr.w r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080510fa 0978 ldrb r1, [r1]
| ||||||| 0x080510fc 80f8ff10 strb.w r1, [r0, 0xff]
| ||||||| 0x08051100 dff85c09 ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08051104 8921 movs r1, 0x89 ; 137
| ||||||| 0x08051106 0170 strb r1, [r0]
| --------> 0x08051108 00f03dbd b.w 0x8051b86
| --------> 0x0805110c 00f03bbd b.w 0x8051b86
| --------> 0x08051110 dff84c09 ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08051114 0078 ldrb r0, [r0]
| ||||||| 0x08051116 8928 cmp r0, 0x89 ; 137
| ========< 0x08051118 f6d1 bne 0x8051108
| ||||||| 0x0805111a 601e subs r0, r4, 1
| ||||||| 0x0805111c c0b2 uxtb r0, r0
| ||||||| 0x0805111e 0928 cmp r0, 9 ; 9
| ========< 0x08051120 09d2 bhs 0x8051136
| ||||||| 0x08051122 e4b2 uxtb r4, r4
| ||||||| 0x08051124 dff8e00a ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051128 2018 adds r0, r4, r0
| ||||||| 0x0805112a dff84016 ldr.w r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805112e 0978 ldrb r1, [r1]
| ||||||| 0x08051130 80f8ff10 strb.w r1, [r0, 0xff]
| ========< 0x08051134 e8e7 b 0x8051108
| --------> 0x08051136 00f026bd b.w 0x8051b86
| --------> 0x0805113a dff82409 ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x0805113e 0078 ldrb r0, [r0]
| ||||||| 0x08051140 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08051142 6cd1 bne 0x805121e
| ||||||| 0x08051144 601e subs r0, r4, 1
| ||||||| 0x08051146 c0b2 uxtb r0, r0
| ||||||| 0x08051148 0928 cmp r0, 9 ; 9
| ========< 0x0805114a 11d2 bhs 0x8051170
| ||||||| 0x0805114c e4b2 uxtb r4, r4
| ||||||| 0x0805114e dff8b80a ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051152 2018 adds r0, r4, r0
| ||||||| 0x08051154 dff81416 ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051158 0978 ldrb r1, [r1]
| ||||||| 0x0805115a 80f80f11 strb.w r1, [r0, 0x10f]
| ||||||| 0x0805115e dff80009 ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08051162 8a21 movs r1, 0x8a ; 138
| ||||||| 0x08051164 0170 strb r1, [r0]
| ||||||| 0x08051166 edb2 uxtb r5, r5
| ||||||| 0x08051168 012d cmp r5, 1 ; 1
| ========< 0x0805116a 03d2 bhs 0x8051174
| ||||||| 0x0805116c 0125 movs r5, 1 ; 1
| ========< 0x0805116e 05e0 b 0x805117c
| --------> 0x08051170 00f009bd b.w 0x8051b86
| --------> 0x08051174 edb2 uxtb r5, r5
| ||||||| 0x08051176 0a2d cmp r5, 0xa ; 10
| ========< 0x08051178 00d3 blo 0x805117c
| ||||||| 0x0805117a 0925 movs r5, 9 ; 9
| --------> 0x0805117c 2800 movs r0, r5
| ||||||| 0x0805117e c0b2 uxtb r0, r0
| ||||||| 0x08051180 00f004fd bl func_51b8c
| ||||||| 0x08051184 dff8e805 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08051188 0079 ldrb r0, [r0, 4]
| ||||||| 0x0805118a 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x0805118e dff8e015 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08051192 0871 strb r0, [r1, 4]
| ||||||| 0x08051194 dff8d805 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08051198 c078 ldrb r0, [r0, 3]
| ||||||| 0x0805119a 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x0805119e dff8d015 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080511a2 c870 strb r0, [r1, 3]
| ||||||| 0x080511a4 0220 movs r0, 2 ; 2
| ||||||| 0x080511a6 dff8c815 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080511aa 0978 ldrb r1, [r1]
| ||||||| 0x080511ac 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x080511b0 dff8bc05 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080511b4 0170 strb r1, [r0]
| ||||||| 0x080511b6 dff8b805 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080511ba 0079 ldrb r0, [r0, 4]
| ||||||| 0x080511bc 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x080511c0 dff8ac15 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080511c4 0871 strb r0, [r1, 4]
| ||||||| 0x080511c6 dff8440a ldr.w r0, [0x08051c12] ; [0x8051c10:4]=0x2001e897
| ||||||| 0x080511ca 7ff07c41 mvns r1, 0xfc000000
| ||||||| 0x080511ce 0160 str r1, [r0]
| ||||||| 0x080511d0 eef78ffb bl func_3f8f2_init_PLL_and_C5000
| ||||||| 0x080511d4 e1f733f8 bl func_3223e
| ||||||| 0x080511d8 dff8340a ldr.w r0, [0x08051c14] ; [0x8051c14:4]=0x2001e8a0
| ||||||| 0x080511dc 0121 movs r1, 1 ; 1
| ||||||| 0x080511de 0170 strb r1, [r0]
| ||||||| 0x080511e0 0220 movs r0, 2 ; 2
| ||||||| 0x080511e2 f2f77ff9 bl func_434e4_wr_C5000
| ||||||| 0x080511e6 f6f736fd bl WaitAndDoSomethingWithGPIOC
| ||||||| 0x080511ea dff88005 ldr.w r0, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080511ee 0178 ldrb r1, [r0]
| ||||||| 0x080511f0 0220 movs r0, 2 ; 2
| ||||||| 0x080511f2 eef7c7fe bl c5000_spi0_writereg
| ||||||| 0x080511f6 e4b2 uxtb r4, r4
| ||||||| 0x080511f8 dff80c0a ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x080511fc 2018 adds r0, r4, r0
| ||||||| 0x080511fe 90f82f11 ldrb.w r1, [r0, 0x12f]
| ||||||| 0x08051202 4520 movs r0, 0x45 ; 'E' ; 69
| ||||||| 0x08051204 eef7befe bl c5000_spi0_writereg
| ||||||| 0x08051208 e4b2 uxtb r4, r4
| ||||||| 0x0805120a dff8fc09 ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x0805120e 2018 adds r0, r4, r0
| ||||||| 0x08051210 90f83f11 ldrb.w r1, [r0, 0x13f]
| ||||||| 0x08051214 4620 movs r0, 0x46 ; 'F' ; 70
| ||||||| 0x08051216 eef7b5fe bl c5000_spi0_writereg
| --------> 0x0805121a 00f0b4bc b.w 0x8051b86
| --------> 0x0805121e dff84008 ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08051222 0078 ldrb r0, [r0]
| ||||||| 0x08051224 8a28 cmp r0, 0x8a ; 138
| ========< 0x08051226 f8d1 bne 0x805121a
| ||||||| 0x08051228 601e subs r0, r4, 1
| ||||||| 0x0805122a c0b2 uxtb r0, r0
| ||||||| 0x0805122c 0928 cmp r0, 9 ; 9
| ========< 0x0805122e 21d2 bhs 0x8051274
| ||||||| 0x08051230 e4b2 uxtb r4, r4
| ||||||| 0x08051232 dff8d409 ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051236 2018 adds r0, r4, r0
| ||||||| 0x08051238 dff83015 ldr.w r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805123c 0978 ldrb r1, [r1]
| ||||||| 0x0805123e 80f80f11 strb.w r1, [r0, 0x10f]
| ||||||| 0x08051242 dff82805 ldr.w r0, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051246 0178 ldrb r1, [r0]
| ||||||| 0x08051248 0220 movs r0, 2 ; 2
| ||||||| 0x0805124a eef79bfe bl c5000_spi0_writereg
| ||||||| 0x0805124e e4b2 uxtb r4, r4
| ||||||| 0x08051250 dff8b409 ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051254 2018 adds r0, r4, r0
| ||||||| 0x08051256 90f82f11 ldrb.w r1, [r0, 0x12f]
| ||||||| 0x0805125a 4520 movs r0, 0x45 ; 'E' ; 69
| ||||||| 0x0805125c eef792fe bl c5000_spi0_writereg
| ||||||| 0x08051260 e4b2 uxtb r4, r4
| ||||||| 0x08051262 dff8a409 ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051266 2018 adds r0, r4, r0
| ||||||| 0x08051268 90f83f11 ldrb.w r1, [r0, 0x13f]
| ||||||| 0x0805126c 4620 movs r0, 0x46 ; 'F' ; 70
| ||||||| 0x0805126e eef789fe bl c5000_spi0_writereg
| ========< 0x08051272 d2e7 b 0x805121a
| --------> 0x08051274 00f087bc b.w 0x8051b86
| --------> 0x08051278 dff8e407 ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x0805127c 0078 ldrb r0, [r0]
| ||||||| 0x0805127e 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08051280 50d1 bne 0x8051324
| ||||||| 0x08051282 601e subs r0, r4, 1
| ||||||| 0x08051284 c0b2 uxtb r0, r0
| ||||||| 0x08051286 0928 cmp r0, 9 ; 9
| ========< 0x08051288 11d2 bhs 0x80512ae
| ||||||| 0x0805128a e4b2 uxtb r4, r4
| ||||||| 0x0805128c dff87809 ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051290 2018 adds r0, r4, r0
| ||||||| 0x08051292 dff8d814 ldr.w r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051296 0978 ldrb r1, [r1]
| ||||||| 0x08051298 80f81f11 strb.w r1, [r0, 0x11f]
| ||||||| 0x0805129c dff8c007 ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x080512a0 8b21 movs r1, 0x8b ; 139
| ||||||| 0x080512a2 0170 strb r1, [r0]
| ||||||| 0x080512a4 edb2 uxtb r5, r5
| ||||||| 0x080512a6 012d cmp r5, 1 ; 1
| ========< 0x080512a8 03d2 bhs 0x80512b2
| ||||||| 0x080512aa 0125 movs r5, 1 ; 1
| ========< 0x080512ac 05e0 b 0x80512ba
| --------> 0x080512ae 00f06abc b.w 0x8051b86
| --------> 0x080512b2 edb2 uxtb r5, r5
| ||||||| 0x080512b4 0a2d cmp r5, 0xa ; 10
| ========< 0x080512b6 00d3 blo 0x80512ba
| ||||||| 0x080512b8 0925 movs r5, 9 ; 9
| --------> 0x080512ba 2800 movs r0, r5
| ||||||| 0x080512bc c0b2 uxtb r0, r0
| ||||||| 0x080512be 00f065fc bl func_51b8c
| ||||||| 0x080512c2 dff8ac04 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080512c6 0079 ldrb r0, [r0, 4]
| ||||||| 0x080512c8 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080512cc dff8a014 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080512d0 0871 strb r0, [r1, 4]
| ||||||| 0x080512d2 dff89c04 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080512d6 c078 ldrb r0, [r0, 3]
| ||||||| 0x080512d8 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080512dc dff89014 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080512e0 c870 strb r0, [r1, 3]
| ||||||| 0x080512e2 0220 movs r0, 2 ; 2
| ||||||| 0x080512e4 dff88814 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080512e8 0978 ldrb r1, [r1]
| ||||||| 0x080512ea 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x080512ee dff88004 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080512f2 0170 strb r1, [r0]
| ||||||| 0x080512f4 dff87804 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080512f8 0079 ldrb r0, [r0, 4]
| ||||||| 0x080512fa 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x080512fe dff87014 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x08051302 0871 strb r0, [r1, 4]
| ||||||| 0x08051304 dff80409 ldr.w r0, [0x08051c10] ; [0x8051c10:4]=0x2001e897
| ||||||| 0x08051308 7ff07c41 mvns r1, 0xfc000000
| ||||||| 0x0805130c 0160 str r1, [r0]
| ||||||| 0x0805130e eef7f0fa bl func_3f8f2_init_PLL_and_C5000
| ||||||| 0x08051312 0348 ldr r0, [0x08051322] ; [0x8051320:4]=0x2001e8e3
| ||||||| 0x08051314 0021 movs r1, 0
| ||||||| 0x08051316 0170 strb r1, [r0]
| ||||||| 0x08051318 ebf7defc bl func_3ccd8
| --------> 0x0805131c 00f033bc b.w 0x8051b86
| ||||||| 0x08051320 e3e80120 strd r2, r0, [r3], 4
| --------> 0x08051324 dff83807 ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08051328 0078 ldrb r0, [r0]
| ||||||| 0x0805132a 8b28 cmp r0, 0x8b ; 139
| ========< 0x0805132c f6d1 bne 0x805131c
| ||||||| 0x0805132e 601e subs r0, r4, 1
| ||||||| 0x08051330 c0b2 uxtb r0, r0
| ||||||| 0x08051332 0928 cmp r0, 9 ; 9
| ========< 0x08051334 f2d3 blo 0x805131c
| ========< 0x08051336 00f026bc b.w 0x8051b86
| --------> 0x0805133a dff82407 ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x0805133e 0078 ldrb r0, [r0]
| --------> 0x08051340 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08051342 40f08780 bne.w 0x8051454
| ||||||| 0x08051346 601e subs r0, r4, 1
| ||||||| 0x08051348 c0b2 uxtb r0, r0
| ||||||| 0x0805134a 0928 cmp r0, 9 ; 9
| ========< 0x0805134c 21d2 bhs 0x8051392
| ||||||| 0x0805134e e4b2 uxtb r4, r4
| ||||||| 0x08051350 dff8b408 ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051354 2018 adds r0, r4, r0
| ||||||| 0x08051356 dff81414 ldr.w r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805135a 0978 ldrb r1, [r1]
| ||||||| 0x0805135c 80f82f11 strb.w r1, [r0, 0x12f]
| ||||||| 0x08051360 e4b2 uxtb r4, r4
| ||||||| 0x08051362 dff8a408 ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051366 2018 adds r0, r4, r0
| ||||||| 0x08051368 dff8a818 ldr.w r1, [0x08051c18] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x0805136c 0978 ldrb r1, [r1]
| ||||||| 0x0805136e 80f83f11 strb.w r1, [r0, 0x13f]
| ||||||| 0x08051372 dff8ec06 ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08051376 8c21 movs r1, 0x8c ; 140
| ||||||| 0x08051378 0170 strb r1, [r0]
| ||||||| 0x0805137a 0122 movs r2, 1 ; 1
| ||||||| 0x0805137c 4ff48041 mov.w r1, 0x4000
| ||||||| 0x08051380 dff89408 ldr.w r0, [0x08051c1c] ; [0x8051c1c:4]=0x2001e898 simplex_or_repeater_flagword
| ||||||| 0x08051384 daf745fa bl GPIO_WriteBit
| ||||||| 0x08051388 edb2 uxtb r5, r5
| ||||||| 0x0805138a 012d cmp r5, 1 ; 1
| ========< 0x0805138c 02d2 bhs 0x8051394
| ||||||| 0x0805138e 0125 movs r5, 1 ; 1
| ========< 0x08051390 04e0 b 0x805139c
| --------> 0x08051392 f8e3 b 0x8051b86
| --------> 0x08051394 edb2 uxtb r5, r5
| ||||||| 0x08051396 0a2d cmp r5, 0xa ; 10
| ========< 0x08051398 00d3 blo 0x805139c
| ||||||| 0x0805139a 0925 movs r5, 9 ; 9
| --------> 0x0805139c 2800 movs r0, r5
| ||||||| 0x0805139e c0b2 uxtb r0, r0
| ||||||| 0x080513a0 00f0f4fb bl func_51b8c
| ||||||| 0x080513a4 dff8c803 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080513a8 0079 ldrb r0, [r0, 4]
| ||||||| 0x080513aa 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080513ae dff8c013 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080513b2 0871 strb r0, [r1, 4]
| ||||||| 0x080513b4 dff8b803 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080513b8 c078 ldrb r0, [r0, 3]
| ||||||| 0x080513ba 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080513be dff8b013 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080513c2 c870 strb r0, [r1, 3]
| ||||||| 0x080513c4 0220 movs r0, 2 ; 2
| ||||||| 0x080513c6 dff8a813 ldr.w r1, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080513ca 0978 ldrb r1, [r1]
| ||||||| 0x080513cc 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x080513d0 dff89c03 ldr.w r0, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080513d4 0170 strb r1, [r0]
| ||||||| 0x080513d6 dff89803 ldr.w r0, [0x08051776] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080513da 0079 ldrb r0, [r0, 4]
| ||||||| 0x080513dc 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x080513e0 dff88c13 ldr.w r1, [0x08051774] ; [0x8051774:4]=0xb2ede207
| ||||||| 0x080513e4 0871 strb r0, [r1, 4]
| ||||||| 0x080513e6 dff82408 ldr.w r0, [0x08051c12] ; [0x8051c10:4]=0x2001e897
| ||||||| 0x080513ea 7ff07c41 mvns r1, 0xfc000000
| ||||||| 0x080513ee 0160 str r1, [r0]
| ||||||| 0x080513f0 dff82808 ldr.w r0, [0x08051c20] ; [0x8051c20:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x080513f4 0021 movs r1, 0
| ||||||| 0x080513f6 0170 strb r1, [r0]
| ||||||| 0x080513f8 eef77bfa bl func_3f8f2_init_PLL_and_C5000
| ||||||| 0x080513fc dff81008 ldr.w r0, [0x08051c14] ; [0x8051c14:4]=0x2001e8a0
| ||||||| 0x08051400 0121 movs r1, 1 ; 1
| ||||||| 0x08051402 0170 strb r1, [r0]
| ||||||| 0x08051404 dff81808 ldr.w r0, [0x08051c24] ; [0x8051c24:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x08051408 7ff07c41 mvns r1, 0xfc000000
| ||||||| 0x0805140c 0160 str r1, [r0]
| ||||||| 0x0805140e dff81408 ldr.w r0, [0x08051c2a] ; [0x8051c28:4]=0x20004908
| ||||||| 0x08051412 0021 movs r1, 0
| ||||||| 0x08051414 0170 strb r1, [r0]
| ||||||| 0x08051416 e321 movs r1, 0xe3 ; 227
| ||||||| 0x08051418 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x0805141a eef7b3fd bl c5000_spi0_writereg
| ||||||| 0x0805141e 1b23 movs r3, 0x1b ; 27
| ||||||| 0x08051420 dff80428 ldr.w r2, [0x08051c2c] ; [0x8051c2c:4]=0x2001e8e3
| ||||||| 0x08051424 0021 movs r1, 0
| ||||||| 0x08051426 0320 movs r0, 3 ; 3
| ||||||| 0x08051428 f8f7c9fb bl func_49bbe_Uses_Sema
| ||||||| 0x0805142c 0821 movs r1, 8 ; 8
| ||||||| 0x0805142e 5020 movs r0, 0x50 ; 'P' ; 80
| ||||||| 0x08051430 eef7a8fd bl c5000_spi0_writereg
| ||||||| 0x08051434 ebf754fb bl c5000_set_local_addr
| ||||||| 0x08051438 f6f70dfc bl WaitAndDoSomethingWithGPIOC
| ||||||| 0x0805143c cb48 ldr r0, [0x0805176c] ; [0x805176c:4]=0x2001e89e
| ||||||| 0x0805143e 0178 ldrb r1, [r0]
| ||||||| 0x08051440 4520 movs r0, 0x45 ; 'E' ; 69
| ||||||| 0x08051442 eef79ffd bl c5000_spi0_writereg
| ||||||| 0x08051446 dff8cc07 ldr.w r0, [0x08051c1a] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x0805144a 0178 ldrb r1, [r0]
| ||||||| 0x0805144c 4620 movs r0, 0x46 ; 'F' ; 70
| ||||||| 0x0805144e eef799fd bl c5000_spi0_writereg
| --------> 0x08051452 98e3 b 0x8051b86
| --------> 0x08051454 dff80806 ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08051458 0078 ldrb r0, [r0]
| ||||||| 0x0805145a 8c28 cmp r0, 0x8c ; 140
| ========< 0x0805145c f9d1 bne 0x8051452
| ||||||| 0x0805145e 601e subs r0, r4, 1
| ||||||| 0x08051460 c0b2 uxtb r0, r0
| ||||||| 0x08051462 0928 cmp r0, 9 ; 9
| ========< 0x08051464 1cd2 bhs 0x80514a0
| ||||||| 0x08051466 e4b2 uxtb r4, r4
| ||||||| 0x08051468 dff89c07 ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x0805146c 2018 adds r0, r4, r0
| ||||||| 0x0805146e bf49 ldr r1, [0x0805176e] ; [0x805176c:4]=0x2001e89e
| ||||||| 0x08051470 0978 ldrb r1, [r1]
| ||||||| 0x08051472 80f82f11 strb.w r1, [r0, 0x12f]
| ||||||| 0x08051476 e4b2 uxtb r4, r4
| ||||||| 0x08051478 dff88c07 ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x0805147c 2018 adds r0, r4, r0
| ||||||| 0x0805147e dff89417 ldr.w r1, [0x08051c1a] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x08051482 0978 ldrb r1, [r1]
| ||||||| 0x08051484 80f83f11 strb.w r1, [r0, 0x13f]
| ||||||| 0x08051488 b848 ldr r0, [0x0805176c] ; [0x805176c:4]=0x2001e89e
| ||||||| 0x0805148a 0178 ldrb r1, [r0]
| ||||||| 0x0805148c 4520 movs r0, 0x45 ; 'E' ; 69
| ||||||| 0x0805148e eef779fd bl c5000_spi0_writereg
| ||||||| 0x08051492 dff88007 ldr.w r0, [0x08051c1a] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x08051496 0178 ldrb r1, [r0]
| ||||||| 0x08051498 4620 movs r0, 0x46 ; 'F' ; 70
| ||||||| 0x0805149a eef773fd bl c5000_spi0_writereg
| ========< 0x0805149e d8e7 b 0x8051452
| --------> 0x080514a0 71e3 b 0x8051b86
| --------> 0x080514a2 dff8bc05 ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x080514a6 0078 ldrb r0, [r0]
| ||||||| 0x080514a8 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x080514aa 40f07f80 bne.w 0x80515ac
| ||||||| 0x080514ae 601e subs r0, r4, 1
| ||||||| 0x080514b0 c0b2 uxtb r0, r0
| ||||||| 0x080514b2 0928 cmp r0, 9 ; 9
| ========< 0x080514b4 20d2 bhs 0x80514f8
| ||||||| 0x080514b6 e4b2 uxtb r4, r4
| ||||||| 0x080514b8 dff84c07 ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x080514bc 2018 adds r0, r4, r0
| ||||||| 0x080514be ab49 ldr r1, [0x0805176e] ; [0x805176c:4]=0x2001e89e
| ||||||| 0x080514c0 0978 ldrb r1, [r1]
| ||||||| 0x080514c2 80f82f11 strb.w r1, [r0, 0x12f]
| ||||||| 0x080514c6 e4b2 uxtb r4, r4
| ||||||| 0x080514c8 dff83c07 ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x080514cc 2018 adds r0, r4, r0
| ||||||| 0x080514ce dff84417 ldr.w r1, [0x08051c1a] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x080514d2 0978 ldrb r1, [r1]
| ||||||| 0x080514d4 80f83f11 strb.w r1, [r0, 0x13f]
| ||||||| 0x080514d8 dff88405 ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x080514dc 8d21 movs r1, 0x8d ; 141
| ||||||| 0x080514de 0170 strb r1, [r0]
| ||||||| 0x080514e0 0122 movs r2, 1 ; 1
| ||||||| 0x080514e2 4ff48041 mov.w r1, 0x4000
| ||||||| 0x080514e6 dff83007 ldr.w r0, [0x08051c1e] ; [0x8051c1c:4]=0x2001e898 simplex_or_repeater_flagword
| ||||||| 0x080514ea daf792f9 bl GPIO_WriteBit
| ||||||| 0x080514ee edb2 uxtb r5, r5
| ||||||| 0x080514f0 012d cmp r5, 1 ; 1
| ========< 0x080514f2 02d2 bhs 0x80514fa
| ||||||| 0x080514f4 0125 movs r5, 1 ; 1
| ========< 0x080514f6 04e0 b 0x8051502
| --------> 0x080514f8 45e3 b 0x8051b86
| --------> 0x080514fa edb2 uxtb r5, r5
| ||||||| 0x080514fc 0a2d cmp r5, 0xa ; 10
| ========< 0x080514fe 00d3 blo 0x8051502
| ||||||| 0x08051500 0925 movs r5, 9 ; 9
| --------> 0x08051502 2800 movs r0, r5
| ||||||| 0x08051504 c0b2 uxtb r0, r0
| ||||||| 0x08051506 00f041fb bl func_51b8c
| ||||||| 0x0805150a 9948 ldr r0, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805150c 0079 ldrb r0, [r0, 4]
| ||||||| 0x0805150e 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08051512 9749 ldr r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051514 0871 strb r0, [r1, 4]
| ||||||| 0x08051516 9648 ldr r0, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051518 c078 ldrb r0, [r0, 3]
| ||||||| 0x0805151a 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x0805151e 9449 ldr r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051520 c870 strb r0, [r1, 3]
| ||||||| 0x08051522 0220 movs r0, 2 ; 2
| ||||||| 0x08051524 9249 ldr r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051526 0978 ldrb r1, [r1]
| ||||||| 0x08051528 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x0805152c 9048 ldr r0, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805152e 0170 strb r1, [r0]
| ||||||| 0x08051530 8f48 ldr r0, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051532 0079 ldrb r0, [r0, 4]
| ||||||| 0x08051534 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08051538 8d49 ldr r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805153a 0871 strb r0, [r1, 4]
| ||||||| 0x0805153c dff8cc06 ldr.w r0, [0x08051c10] ; [0x8051c10:4]=0x2001e897
| ||||||| 0x08051540 7ff07c41 mvns r1, 0xfc000000
| ||||||| 0x08051544 0160 str r1, [r0]
| ||||||| 0x08051546 dff8d406 ldr.w r0, [0x08051c22] ; [0x8051c20:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x0805154a 0021 movs r1, 0
| ||||||| 0x0805154c 0170 strb r1, [r0]
| ||||||| 0x0805154e eef7d0f9 bl func_3f8f2_init_PLL_and_C5000
| ||||||| 0x08051552 3f21 movs r1, 0x3f ; '?' ; 63
| ||||||| 0x08051554 0020 movs r0, 0
| ||||||| 0x08051556 eef715fd bl c5000_spi0_writereg
| ||||||| 0x0805155a a021 movs r1, 0xa0 ; 160
| ||||||| 0x0805155c 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x0805155e eef711fd bl c5000_spi0_writereg
| ||||||| 0x08051562 0121 movs r1, 1 ; 1
| ||||||| 0x08051564 4120 movs r0, 0x41 ; 'A' ; 65
| ||||||| 0x08051566 eef70dfd bl c5000_spi0_writereg
| ||||||| 0x0805156a 0221 movs r1, 2 ; 2
| ||||||| 0x0805156c 1020 movs r0, 0x10 ; 16
| ||||||| 0x0805156e eef709fd bl c5000_spi0_writereg
| ||||||| 0x08051572 dff89c06 ldr.w r0, [0x08051c16] ; [0x8051c14:4]=0x2001e8a0
| ||||||| 0x08051576 0121 movs r1, 1 ; 1
| ||||||| 0x08051578 0170 strb r1, [r0]
| ||||||| 0x0805157a dff8a406 ldr.w r0, [0x08051c26] ; [0x8051c24:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x0805157e 7ff07c41 mvns r1, 0xfc000000
| ||||||| 0x08051582 0160 str r1, [r0]
| ||||||| 0x08051584 dff89c06 ldr.w r0, [0x08051c28] ; [0x8051c28:4]=0x20004908
| ||||||| 0x08051588 0021 movs r1, 0
| ||||||| 0x0805158a 0170 strb r1, [r0]
| ||||||| 0x0805158c ebf7a8fa bl c5000_set_local_addr
| ||||||| 0x08051590 f6f761fb bl WaitAndDoSomethingWithGPIOC
| ||||||| 0x08051594 7548 ldr r0, [0x0805176c] ; [0x805176c:4]=0x2001e89e
| ||||||| 0x08051596 0178 ldrb r1, [r0]
| ||||||| 0x08051598 4520 movs r0, 0x45 ; 'E' ; 69
| ||||||| 0x0805159a eef7f3fc bl c5000_spi0_writereg
| ||||||| 0x0805159e dff87406 ldr.w r0, [0x08051c1a] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x080515a2 0178 ldrb r1, [r0]
| ||||||| 0x080515a4 4620 movs r0, 0x46 ; 'F' ; 70
| ||||||| 0x080515a6 eef7edfc bl c5000_spi0_writereg
| --------> 0x080515aa ece2 b 0x8051b86
| --------> 0x080515ac dff8b004 ldr.w r0, [0x08051a64] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x080515b0 0078 ldrb r0, [r0]
| ||||||| 0x080515b2 8d28 cmp r0, 0x8d ; 141
| ========< 0x080515b4 f9d1 bne 0x80515aa
| ||||||| 0x080515b6 601e subs r0, r4, 1
| ||||||| 0x080515b8 c0b2 uxtb r0, r0
| ||||||| 0x080515ba 0928 cmp r0, 9 ; 9
| ========< 0x080515bc 1cd2 bhs 0x80515f8
| ||||||| 0x080515be e4b2 uxtb r4, r4
| ||||||| 0x080515c0 dff84406 ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x080515c4 2018 adds r0, r4, r0
| ||||||| 0x080515c6 6949 ldr r1, [0x0805176e] ; [0x805176c:4]=0x2001e89e
| ||||||| 0x080515c8 0978 ldrb r1, [r1]
| ||||||| 0x080515ca 80f82f11 strb.w r1, [r0, 0x12f]
| ||||||| 0x080515ce e4b2 uxtb r4, r4
| ||||||| 0x080515d0 dff83406 ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x080515d4 2018 adds r0, r4, r0
| ||||||| 0x080515d6 dff83c16 ldr.w r1, [0x08051c1a] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x080515da 0978 ldrb r1, [r1]
| ||||||| 0x080515dc 80f83f11 strb.w r1, [r0, 0x13f]
| ||||||| 0x080515e0 6248 ldr r0, [0x0805176c] ; [0x805176c:4]=0x2001e89e
| ||||||| 0x080515e2 0178 ldrb r1, [r0]
| ||||||| 0x080515e4 4520 movs r0, 0x45 ; 'E' ; 69
| ||||||| 0x080515e6 eef7cdfc bl c5000_spi0_writereg
| ||||||| 0x080515ea dff82806 ldr.w r0, [0x08051c1a] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x080515ee 0178 ldrb r1, [r0]
| ||||||| 0x080515f0 4620 movs r0, 0x46 ; 'F' ; 70
| ||||||| 0x080515f2 eef7c7fc bl c5000_spi0_writereg
| ========< 0x080515f6 d8e7 b 0x80515aa
| --------> 0x080515f8 c5e2 b 0x8051b86
| ========< 0x080515fa c4e2 b 0x8051b86
| --------> 0x080515fc c3e2 b 0x8051b86
| --------> 0x080515fe dff86004 ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08051602 0078 ldrb r0, [r0]
| ||||||| 0x08051604 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08051606 62d1 bne 0x80516ce
| ||||||| 0x08051608 601e subs r0, r4, 1
| ||||||| 0x0805160a c0b2 uxtb r0, r0
| ||||||| 0x0805160c 0928 cmp r0, 9 ; 9
| ========< 0x0805160e 20d2 bhs 0x8051652
| ||||||| 0x08051610 e4b2 uxtb r4, r4
| ||||||| 0x08051612 dff8f405 ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051616 2018 adds r0, r4, r0
| ||||||| 0x08051618 5449 ldr r1, [0x0805176c] ; [0x805176c:4]=0x2001e89e
| ||||||| 0x0805161a 0978 ldrb r1, [r1]
| ||||||| 0x0805161c 80f86f11 strb.w r1, [r0, 0x16f]
| ||||||| 0x08051620 e4b2 uxtb r4, r4
| ||||||| 0x08051622 dff8e405 ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051626 2018 adds r0, r4, r0
| ||||||| 0x08051628 dff8e815 ldr.w r1, [0x08051c18] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x0805162c 0978 ldrb r1, [r1]
| ||||||| 0x0805162e 80f87f11 strb.w r1, [r0, 0x17f]
| ||||||| 0x08051632 dff82c04 ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x08051636 9021 movs r1, 0x90 ; 144
| ||||||| 0x08051638 0170 strb r1, [r0]
| ||||||| 0x0805163a 0122 movs r2, 1 ; 1
| ||||||| 0x0805163c 4ff48041 mov.w r1, 0x4000
| ||||||| 0x08051640 dff8d405 ldr.w r0, [0x08051c1c] ; [0x8051c1c:4]=0x2001e898 simplex_or_repeater_flagword
| ||||||| 0x08051644 daf7e5f8 bl GPIO_WriteBit
| ||||||| 0x08051648 edb2 uxtb r5, r5
| ||||||| 0x0805164a 012d cmp r5, 1 ; 1
| ========< 0x0805164c 02d2 bhs 0x8051654
| ||||||| 0x0805164e 0125 movs r5, 1 ; 1
| ========< 0x08051650 04e0 b 0x805165c
| --------> 0x08051652 98e2 b 0x8051b86
| --------> 0x08051654 edb2 uxtb r5, r5
| ||||||| 0x08051656 0a2d cmp r5, 0xa ; 10
| ========< 0x08051658 00d3 blo 0x805165c
| ||||||| 0x0805165a 0925 movs r5, 9 ; 9
| --------> 0x0805165c 2800 movs r0, r5
| ||||||| 0x0805165e c0b2 uxtb r0, r0
| ||||||| 0x08051660 00f094fa bl func_51b8c
| ||||||| 0x08051664 4248 ldr r0, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051666 0079 ldrb r0, [r0, 4]
| ||||||| 0x08051668 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x0805166c 4049 ldr r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805166e 0871 strb r0, [r1, 4]
| ||||||| 0x08051670 3f48 ldr r0, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051672 c078 ldrb r0, [r0, 3]
| ||||||| 0x08051674 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08051678 3d49 ldr r1, [0x08051770] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805167a c870 strb r0, [r1, 3]
| ||||||| 0x0805167c 0120 movs r0, 1 ; 1
| ||||||| 0x0805167e 3c49 ldr r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051680 0978 ldrb r1, [r1]
| ||||||| 0x08051682 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08051686 3a48 ldr r0, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051688 0170 strb r1, [r0]
| ||||||| 0x0805168a 3948 ldr r0, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805168c 0079 ldrb r0, [r0, 4]
| ||||||| 0x0805168e 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08051692 3749 ldr r1, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051694 0871 strb r0, [r1, 4]
| ||||||| 0x08051696 3648 ldr r0, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051698 4ff6ff71 movw r1, 0xffff
| ||||||| 0x0805169c 4183 strh r1, [r0, 0x1a]
| ||||||| 0x0805169e 3448 ldr r0, [0x08051772] ; [0x8051770:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080516a0 4ff6ff71 movw r1, 0xffff
| ||||||| 0x080516a4 0183 strh r1, [r0, 0x18]
| ||||||| 0x080516a6 eef77ffb bl func_3fda8
| ||||||| 0x080516aa dff88005 ldr.w r0, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080516ae 0021 movs r1, 0
| ||||||| 0x080516b0 0170 strb r1, [r0]
| ||||||| 0x080516b2 ebf711fb bl func_3ccd8
| ||||||| 0x080516b6 2d48 ldr r0, [0x0805176e] ; [0x805176c:4]=0x2001e89e
| ||||||| 0x080516b8 0178 ldrb r1, [r0]
| ||||||| 0x080516ba 4520 movs r0, 0x45 ; 'E' ; 69
| ||||||| 0x080516bc eef762fc bl c5000_spi0_writereg
| ||||||| 0x080516c0 dff85005 ldr.w r0, [0x08051c18] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x080516c4 0178 ldrb r1, [r0]
| ||||||| 0x080516c6 4620 movs r0, 0x46 ; 'F' ; 70
| ||||||| 0x080516c8 eef75cfc bl c5000_spi0_writereg
| --------> 0x080516cc 5be2 b 0x8051b86
| --------> 0x080516ce dff89003 ldr.w r0, [0x08051a66] ; [0x8051a64:4]=0x7800487a
| ||||||| 0x080516d2 0078 ldrb r0, [r0]
| ||||||| 0x080516d4 9028 cmp r0, 0x90 ; 144
| ========< 0x080516d6 f9d1 bne 0x80516cc
| ||||||| 0x080516d8 601e subs r0, r4, 1
| ||||||| 0x080516da c0b2 uxtb r0, r0
| ||||||| 0x080516dc 0928 cmp r0, 9 ; 9
| ========< 0x080516de 1cd2 bhs 0x805171a
| ||||||| 0x080516e0 e4b2 uxtb r4, r4
| ||||||| 0x080516e2 dff82405 ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x080516e6 2018 adds r0, r4, r0
| ||||||| 0x080516e8 2049 ldr r1, [0x0805176c] ; [0x805176c:4]=0x2001e89e
| ||||||| 0x080516ea 0978 ldrb r1, [r1]
| ||||||| 0x080516ec 80f86f11 strb.w r1, [r0, 0x16f]
| ||||||| 0x080516f0 e4b2 uxtb r4, r4
| ||||||| 0x080516f2 dff81405 ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x080516f6 2018 adds r0, r4, r0
| ||||||| 0x080516f8 dff81815 ldr.w r1, [0x08051c18] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x080516fc 0978 ldrb r1, [r1]
| ||||||| 0x080516fe 80f87f11 strb.w r1, [r0, 0x17f]
| ||||||| 0x08051702 1a48 ldr r0, [0x0805176e] ; [0x805176c:4]=0x2001e89e
| ||||||| 0x08051704 0178 ldrb r1, [r0]
| ||||||| 0x08051706 4520 movs r0, 0x45 ; 'E' ; 69
| ||||||| 0x08051708 eef73cfc bl c5000_spi0_writereg
| ||||||| 0x0805170c dff80405 ldr.w r0, [0x08051c18] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x08051710 0178 ldrb r1, [r0]
| ||||||| 0x08051712 4620 movs r0, 0x46 ; 'F' ; 70
| ||||||| 0x08051714 eef736fc bl c5000_spi0_writereg
| ========< 0x08051718 d8e7 b 0x80516cc
| --------> 0x0805171a 34e2 b 0x8051b86
| --------> 0x0805171c d048 ldr r0, [0x08051a60] ; [0x8051a60:4]=0x2001e892 gui_opmode3
| ||||||| 0x0805171e 0078 ldrb r0, [r0]
| ||||||| 0x08051720 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08051722 70d1 bne 0x8051806
| ||||||| 0x08051724 601e subs r0, r4, 1
| ||||||| 0x08051726 c0b2 uxtb r0, r0
| ||||||| 0x08051728 0928 cmp r0, 9 ; 9
| ========< 0x0805172a 23d2 bhs 0x8051774
| ||||||| 0x0805172c e4b2 uxtb r4, r4
| ||||||| 0x0805172e dff8d804 ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051732 2018 adds r0, r4, r0
| ||||||| 0x08051734 0d49 ldr r1, [0x0805176c] ; [0x805176c:4]=0x2001e89e
| ||||||| 0x08051736 0978 ldrb r1, [r1]
| ||||||| 0x08051738 80f86f11 strb.w r1, [r0, 0x16f]
| ||||||| 0x0805173c e4b2 uxtb r4, r4
| ||||||| 0x0805173e dff8c804 ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051742 2018 adds r0, r4, r0
| ||||||| 0x08051744 dff8cc14 ldr.w r1, [0x08051c18] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x08051748 0978 ldrb r1, [r1]
| ||||||| 0x0805174a 80f87f11 strb.w r1, [r0, 0x17f]
| ||||||| 0x0805174e c448 ldr r0, [0x08051a62] ; [0x8051a60:4]=0x2001e892 gui_opmode3
| ||||||| 0x08051750 9121 movs r1, 0x91 ; 145
| ||||||| 0x08051752 0170 strb r1, [r0]
| ||||||| 0x08051754 0122 movs r2, 1 ; 1
| ||||||| 0x08051756 4ff48041 mov.w r1, 0x4000
| ||||||| 0x0805175a dff8bc04 ldr.w r0, [0x08051c1e] ; [0x8051c1c:4]=0x2001e898 simplex_or_repeater_flagword
| ||||||| 0x0805175e daf758f8 bl GPIO_WriteBit
| ||||||| 0x08051762 edb2 uxtb r5, r5
| ||||||| 0x08051764 012d cmp r5, 1 ; 1
| ========< 0x08051766 06d2 bhs 0x8051776
| ||||||| 0x08051768 0125 movs r5, 1 ; 1
| ========< 0x0805176a 08e0 b 0x805177e
| ||||||| 0x0805176c 9ee80120 ldm.w lr, {r0, sp}
| ||||||| 0x08051770 78de udf 0x78
| ||||||| 0x08051772 0120 movs r0, 1 ; 1
| --------> 0x08051774 07e2 b 0x8051b86
| --------> 0x08051776 edb2 uxtb r5, r5
| ||||||| 0x08051778 0a2d cmp r5, 0xa ; 10
| ========< 0x0805177a 00d3 blo 0x805177e
| ||||||| 0x0805177c 0925 movs r5, 9 ; 9
| --------> 0x0805177e 2800 movs r0, r5
| ||||||| 0x08051780 c0b2 uxtb r0, r0
| ||||||| 0x08051782 00f003fa bl func_51b8c
| ||||||| 0x08051786 dff8a804 ldr.w r0, [0x08051c36] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x0805178a 0079 ldrb r0, [r0, 4]
| ||||||| 0x0805178c 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08051790 dff89c14 ldr.w r1, [0x08051c34] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x08051794 0871 strb r0, [r1, 4]
| ||||||| 0x08051796 dff89804 ldr.w r0, [0x08051c36] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x0805179a c078 ldrb r0, [r0, 3]
| ||||||| 0x0805179c 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080517a0 dff88c14 ldr.w r1, [0x08051c34] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080517a4 c870 strb r0, [r1, 3]
| ||||||| 0x080517a6 0120 movs r0, 1 ; 1
| ||||||| 0x080517a8 dff88414 ldr.w r1, [0x08051c34] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080517ac 0978 ldrb r1, [r1]
| ||||||| 0x080517ae 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x080517b2 dff87c04 ldr.w r0, [0x08051c36] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080517b6 0170 strb r1, [r0]
| ||||||| 0x080517b8 dff87404 ldr.w r0, [0x08051c34] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080517bc 0079 ldrb r0, [r0, 4]
| ||||||| 0x080517be 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x080517c2 dff86c14 ldr.w r1, [0x08051c36] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080517c6 0871 strb r0, [r1, 4]
| ||||||| 0x080517c8 dff86404 ldr.w r0, [0x08051c34] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080517cc 4ff6ff71 movw r1, 0xffff
| ||||||| 0x080517d0 4183 strh r1, [r0, 0x1a]
| ||||||| 0x080517d2 dff85c04 ldr.w r0, [0x08051c36] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080517d6 4ff6ff71 movw r1, 0xffff
| ||||||| 0x080517da 0183 strh r1, [r0, 0x18]
| ||||||| 0x080517dc eef7e4fa bl func_3fda8
| ||||||| 0x080517e0 dff84804 ldr.w r0, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080517e4 0021 movs r1, 0
| ||||||| 0x080517e6 0170 strb r1, [r0]
| ||||||| 0x080517e8 ebf776fa bl func_3ccd8
| ||||||| 0x080517ec dff84404 ldr.w r0, [0x08051c38] ; [0x8051c38:4]=0x20004ac8
| ||||||| 0x080517f0 0178 ldrb r1, [r0]
| ||||||| 0x080517f2 4520 movs r0, 0x45 ; 'E' ; 69
| ||||||| 0x080517f4 eef7c6fb bl c5000_spi0_writereg
| ||||||| 0x080517f8 dff81804 ldr.w r0, [0x08051c18] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x080517fc 0178 ldrb r1, [r0]
| ||||||| 0x080517fe 4620 movs r0, 0x46 ; 'F' ; 70
| ||||||| 0x08051800 eef7c0fb bl c5000_spi0_writereg
| --------> 0x08051804 bfe1 b 0x8051b86
| --------> 0x08051806 9648 ldr r0, [0x08051a62] ; [0x8051a60:4]=0x2001e892 gui_opmode3
| ||||||| 0x08051808 0078 ldrb r0, [r0]
| ||||||| 0x0805180a 9128 cmp r0, 0x91 ; 145
| ========< 0x0805180c fad1 bne 0x8051804
| ||||||| 0x0805180e 601e subs r0, r4, 1
| ||||||| 0x08051810 c0b2 uxtb r0, r0
| ||||||| 0x08051812 0928 cmp r0, 9 ; 9
| ========< 0x08051814 20d2 bhs 0x8051858
| ||||||| 0x08051816 e4b2 uxtb r4, r4
| ||||||| 0x08051818 dff8ec03 ldr.w r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x0805181c 2018 adds r0, r4, r0
| ||||||| 0x0805181e dff81414 ldr.w r1, [0x08051c3a] ; [0x8051c38:4]=0x20004ac8
| ||||||| 0x08051822 0978 ldrb r1, [r1]
| ||||||| 0x08051824 80f86f11 strb.w r1, [r0, 0x16f]
| ||||||| 0x08051828 e4b2 uxtb r4, r4
| ||||||| 0x0805182a dff8dc03 ldr.w r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x0805182e 2018 adds r0, r4, r0
| ||||||| 0x08051830 dff8e013 ldr.w r1, [0x08051c18] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x08051834 0978 ldrb r1, [r1]
| ||||||| 0x08051836 80f87f11 strb.w r1, [r0, 0x17f]
| ||||||| 0x0805183a dff8f803 ldr.w r0, [0x08051c3a] ; [0x8051c38:4]=0x20004ac8
| ||||||| 0x0805183e 0178 ldrb r1, [r0]
| ||||||| 0x08051840 4520 movs r0, 0x45 ; 'E' ; 69
| ||||||| 0x08051842 eef79ffb bl c5000_spi0_writereg
| ||||||| 0x08051846 dff8cc03 ldr.w r0, [0x08051c1a] ; [0x8051c18:4]=0x40020000 io_GPIOA
| ||||||| 0x0805184a 0178 ldrb r1, [r0]
| ||||||| 0x0805184c 4620 movs r0, 0x46 ; 'F' ; 70
| ||||||| 0x0805184e eef799fb bl c5000_spi0_writereg
| ========< 0x08051852 d7e7 b 0x8051804
| ||||||| 0x08051854 9be80120 ldm.w fp, {r0, sp}
| --------> 0x08051858 95e1 b 0x8051b86
| --------> 0x0805185a 8148 ldr r0, [0x08051a62] ; [0x8051a60:4]=0x2001e892 gui_opmode3
| ||||||| 0x0805185c 0078 ldrb r0, [r0]
| ||||||| 0x0805185e 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08051860 5ad1 bne 0x8051918
| ||||||| 0x08051862 601e subs r0, r4, 1
| ||||||| 0x08051864 c0b2 uxtb r0, r0
| ||||||| 0x08051866 0928 cmp r0, 9 ; 9
| ========< 0x08051868 80f08d81 bhs.w 0x8051b86
| ||||||| 0x0805186c 7c48 ldr r0, [0x08051a60] ; [0x8051a60:4]=0x2001e892 gui_opmode3
| ||||||| 0x0805186e 9221 movs r1, 0x92 ; 146
| ||||||| 0x08051870 0170 strb r1, [r0]
| ||||||| 0x08051872 dff8c403 ldr.w r0, [0x08051c3e] ; [0x8051c3c:4]=0x2001e698
| ||||||| 0x08051876 0221 movs r1, 2 ; 2
| ||||||| 0x08051878 0170 strb r1, [r0]
| ||||||| 0x0805187a edb2 uxtb r5, r5
| ||||||| 0x0805187c 012d cmp r5, 1 ; 1
| ========< 0x0805187e 01d2 bhs 0x8051884
| ||||||| 0x08051880 0125 movs r5, 1 ; 1
| ========< 0x08051882 03e0 b 0x805188c
| --------> 0x08051884 edb2 uxtb r5, r5
| ||||||| 0x08051886 0a2d cmp r5, 0xa ; 10
| ========< 0x08051888 00d3 blo 0x805188c
| ||||||| 0x0805188a 0925 movs r5, 9 ; 9
| --------> 0x0805188c 2800 movs r0, r5
| ||||||| 0x0805188e c0b2 uxtb r0, r0
| ||||||| 0x08051890 00f07cf9 bl func_51b8c
| ||||||| 0x08051894 dff89803 ldr.w r0, [0x08051c34] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x08051898 0079 ldrb r0, [r0, 4]
| ||||||| 0x0805189a 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x0805189e dff89013 ldr.w r1, [0x08051c36] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080518a2 0871 strb r0, [r1, 4]
| ||||||| 0x080518a4 dff88803 ldr.w r0, [0x08051c34] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080518a8 c078 ldrb r0, [r0, 3]
| ||||||| 0x080518aa 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080518ae dff88013 ldr.w r1, [0x08051c36] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080518b2 c870 strb r0, [r1, 3]
| ||||||| 0x080518b4 0220 movs r0, 2 ; 2
| ||||||| 0x080518b6 dff87813 ldr.w r1, [0x08051c36] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080518ba 0978 ldrb r1, [r1]
| ||||||| 0x080518bc 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x080518c0 dff86c03 ldr.w r0, [0x08051c34] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080518c4 0170 strb r1, [r0]
| ||||||| 0x080518c6 dff84403 ldr.w r0, [0x08051c12] ; [0x8051c10:4]=0x2001e897
| ||||||| 0x080518ca 7ff07c41 mvns r1, 0xfc000000
| ||||||| 0x080518ce 0160 str r1, [r0]
| ||||||| 0x080518d0 dff85c03 ldr.w r0, [0x08051c34] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080518d4 4078 ldrb r0, [r0, 1]
| ||||||| 0x080518d6 10f00f00 ands r0, r0, 0xf
| ||||||| 0x080518da dff85413 ldr.w r1, [0x08051c36] ; [0x8051c34:4]=0x2001e89e
| ||||||| 0x080518de 4870 strb r0, [r1, 1]
| ||||||| 0x080518e0 dff85803 ldr.w r0, [0x08051c40] ; [0x8051c40:4]=0x2001e69c
| ||||||| 0x080518e4 0021 movs r1, 0
| ||||||| 0x080518e6 0160 str r1, [r0]
| ||||||| 0x080518e8 dff85403 ldr.w r0, [0x08051c44] ; [0x8051c44:4]=0x2001e6a0
| ||||||| 0x080518ec 0021 movs r1, 0
| ||||||| 0x080518ee 0160 str r1, [r0]
| ||||||| 0x080518f0 dff85003 ldr.w r0, [0x08051c48] ; [0x8051c48:4]=0x2001e8ea
| ||||||| 0x080518f4 0021 movs r1, 0
| ||||||| 0x080518f6 0160 str r1, [r0]
| ||||||| 0x080518f8 dff84c03 ldr.w r0, [0x08051c4c] ; [0x8051c4c:4]=0x2001e8eb
| ||||||| 0x080518fc 0021 movs r1, 0
| ||||||| 0x080518fe 0170 strb r1, [r0]
| ||||||| 0x08051900 dff84803 ldr.w r0, [0x08051c50] ; [0x8051c50:4]=0x2001e892 gui_opmode3
| ||||||| 0x08051904 0021 movs r1, 0
| ||||||| 0x08051906 0170 strb r1, [r0]
| ||||||| 0x08051908 edf7f3ff bl func_3f8f2_init_PLL_and_C5000
| ||||||| 0x0805190c c048 ldr r0, [0x08051c10] ; [0x8051c10:4]=0x2001e897
| ||||||| 0x0805190e 0121 movs r1, 1 ; 1
| ||||||| 0x08051910 0170 strb r1, [r0]
| ||||||| 0x08051912 0120 movs r0, 1 ; 1
| ||||||| 0x08051914 f1f786ff bl func_43824_wr_C5000
| --------> 0x08051918 35e1 b 0x8051b86
| --------> 0x0805191a 5148 ldr r0, [0x08051a62] ; [0x8051a60:4]=0x2001e892 gui_opmode3
| ||||||| 0x0805191c 0078 ldrb r0, [r0]
| ||||||| 0x0805191e 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08051920 4bd1 bne 0x80519ba
| ||||||| 0x08051922 601e subs r0, r4, 1
| ||||||| 0x08051924 c0b2 uxtb r0, r0
| ||||||| 0x08051926 0928 cmp r0, 9 ; 9
| ========< 0x08051928 80f02d81 bhs.w 0x8051b86
| ||||||| 0x0805192c 4c48 ldr r0, [0x08051a60] ; [0x8051a60:4]=0x2001e892 gui_opmode3
| ||||||| 0x0805192e 9321 movs r1, 0x93 ; 147
| ||||||| 0x08051930 0170 strb r1, [r0]
| ||||||| 0x08051932 c148 ldr r0, [0x08051c3a] ; [0x8051c38:4]=0x20004ac8
| ||||||| 0x08051934 0121 movs r1, 1 ; 1
| ||||||| 0x08051936 0170 strb r1, [r0]
| ||||||| 0x08051938 edb2 uxtb r5, r5
| ||||||| 0x0805193a 012d cmp r5, 1 ; 1
| ========< 0x0805193c 01d2 bhs 0x8051942
| ||||||| 0x0805193e 0125 movs r5, 1 ; 1
| ========< 0x08051940 03e0 b 0x805194a
| --------> 0x08051942 edb2 uxtb r5, r5
| ||||||| 0x08051944 0a2d cmp r5, 0xa ; 10
| ========< 0x08051946 00d3 blo 0x805194a
| ||||||| 0x08051948 0925 movs r5, 9 ; 9
| --------> 0x0805194a 2800 movs r0, r5
| ||||||| 0x0805194c c0b2 uxtb r0, r0
| ||||||| 0x0805194e 00f01df9 bl func_51b8c
| ||||||| 0x08051952 b748 ldr r0, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051954 0079 ldrb r0, [r0, 4]
| ||||||| 0x08051956 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x0805195a b549 ldr r1, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805195c 0871 strb r0, [r1, 4]
| ||||||| 0x0805195e b448 ldr r0, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051960 c078 ldrb r0, [r0, 3]
| ||||||| 0x08051962 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08051966 b249 ldr r1, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051968 c870 strb r0, [r1, 3]
| ||||||| 0x0805196a 0220 movs r0, 2 ; 2
| ||||||| 0x0805196c b049 ldr r1, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805196e 0978 ldrb r1, [r1]
| ||||||| 0x08051970 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08051974 ae48 ldr r0, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051976 0170 strb r1, [r0]
| ||||||| 0x08051978 a448 ldr r0, [0x08051c0c] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x0805197a 7ff07c41 mvns r1, 0xfc000000
| ||||||| 0x0805197e 0160 str r1, [r0]
| ||||||| 0x08051980 ab48 ldr r0, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051982 4078 ldrb r0, [r0, 1]
| ||||||| 0x08051984 10f00f00 ands r0, r0, 0xf
| ||||||| 0x08051988 a949 ldr r1, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x0805198a 4870 strb r0, [r1, 1]
| ||||||| 0x0805198c ab48 ldr r0, [0x08051c3c] ; [0x8051c3c:4]=0x2001e698
| ||||||| 0x0805198e 0021 movs r1, 0
| ||||||| 0x08051990 0160 str r1, [r0]
| ||||||| 0x08051992 ab48 ldr r0, [0x08051c42] ; [0x8051c40:4]=0x2001e69c
| ||||||| 0x08051994 0021 movs r1, 0
| ||||||| 0x08051996 0160 str r1, [r0]
| ||||||| 0x08051998 aa48 ldr r0, [0x08051c44] ; [0x8051c44:4]=0x2001e6a0
| ||||||| 0x0805199a 0021 movs r1, 0
| ||||||| 0x0805199c 0160 str r1, [r0]
| ||||||| 0x0805199e aa48 ldr r0, [0x08051c4a] ; [0x8051c48:4]=0x2001e8ea
| ||||||| 0x080519a0 0021 movs r1, 0
| ||||||| 0x080519a2 0170 strb r1, [r0]
| ||||||| 0x080519a4 a948 ldr r0, [0x08051c4c] ; [0x8051c4c:4]=0x2001e8eb
| ||||||| 0x080519a6 0021 movs r1, 0
| ||||||| 0x080519a8 0170 strb r1, [r0]
| ||||||| 0x080519aa edf7a2ff bl func_3f8f2_init_PLL_and_C5000
| ||||||| 0x080519ae 9848 ldr r0, [0x08051c12] ; [0x8051c10:4]=0x2001e897
| ||||||| 0x080519b0 0121 movs r1, 1 ; 1
| ||||||| 0x080519b2 0170 strb r1, [r0]
| ||||||| 0x080519b4 0120 movs r0, 1 ; 1
| ||||||| 0x080519b6 f1f735ff bl func_43824_wr_C5000
| --------> 0x080519ba e4e0 b 0x8051b86
| --------> 0x080519bc 2848 ldr r0, [0x08051a60] ; [0x8051a60:4]=0x2001e892 gui_opmode3
| ||||||| 0x080519be 0078 ldrb r0, [r0]
| ||||||| 0x080519c0 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x080519c2 4bd1 bne 0x8051a5c
| ||||||| 0x080519c4 601e subs r0, r4, 1
| ||||||| 0x080519c6 c0b2 uxtb r0, r0
| ||||||| 0x080519c8 0928 cmp r0, 9 ; 9
| ========< 0x080519ca 80f0dc80 bhs.w 0x8051b86
| ||||||| 0x080519ce 2448 ldr r0, [0x08051a62] ; [0x8051a60:4]=0x2001e892 gui_opmode3
| ||||||| 0x080519d0 9421 movs r1, 0x94 ; 148
| ||||||| 0x080519d2 0170 strb r1, [r0]
| ||||||| 0x080519d4 9848 ldr r0, [0x08051c38] ; [0x8051c38:4]=0x20004ac8
| ||||||| 0x080519d6 0021 movs r1, 0
| ||||||| 0x080519d8 0170 strb r1, [r0]
| ||||||| 0x080519da edb2 uxtb r5, r5
| ||||||| 0x080519dc 012d cmp r5, 1 ; 1
| ========< 0x080519de 01d2 bhs 0x80519e4
| ||||||| 0x080519e0 0125 movs r5, 1 ; 1
| ========< 0x080519e2 03e0 b 0x80519ec
| --------> 0x080519e4 edb2 uxtb r5, r5
| ||||||| 0x080519e6 0a2d cmp r5, 0xa ; 10
| ========< 0x080519e8 00d3 blo 0x80519ec
| ||||||| 0x080519ea 0925 movs r5, 9 ; 9
| --------> 0x080519ec 2800 movs r0, r5
| ||||||| 0x080519ee c0b2 uxtb r0, r0
| ||||||| 0x080519f0 00f0ccf8 bl func_51b8c
| ||||||| 0x080519f4 8e48 ldr r0, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080519f6 0079 ldrb r0, [r0, 4]
| ||||||| 0x080519f8 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x080519fc 8c49 ldr r1, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x080519fe 0871 strb r0, [r1, 4]
| ||||||| 0x08051a00 8b48 ldr r0, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051a02 c078 ldrb r0, [r0, 3]
| ||||||| 0x08051a04 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08051a08 8949 ldr r1, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051a0a c870 strb r0, [r1, 3]
| ||||||| 0x08051a0c 0220 movs r0, 2 ; 2
| ||||||| 0x08051a0e 8849 ldr r1, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051a10 0978 ldrb r1, [r1]
| ||||||| 0x08051a12 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08051a16 8648 ldr r0, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051a18 0170 strb r1, [r0]
| ||||||| 0x08051a1a 7c48 ldr r0, [0x08051c0e] ; [0x8051c0c:4]=0x2001e1ac contact
| ||||||| 0x08051a1c 7ff07c41 mvns r1, 0xfc000000
| ||||||| 0x08051a20 0160 str r1, [r0]
| ||||||| 0x08051a22 8348 ldr r0, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051a24 4078 ldrb r0, [r0, 1]
| ||||||| 0x08051a26 10f00f00 ands r0, r0, 0xf
| ||||||| 0x08051a2a 8149 ldr r1, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051a2c 4870 strb r0, [r1, 1]
| ||||||| 0x08051a2e 8348 ldr r0, [0x08051c3e] ; [0x8051c3c:4]=0x2001e698
| ||||||| 0x08051a30 0021 movs r1, 0
| ||||||| 0x08051a32 0160 str r1, [r0]
| ||||||| 0x08051a34 8248 ldr r0, [0x08051c40] ; [0x8051c40:4]=0x2001e69c
| ||||||| 0x08051a36 0021 movs r1, 0
| ||||||| 0x08051a38 0160 str r1, [r0]
| ||||||| 0x08051a3a 8248 ldr r0, [0x08051c46] ; [0x8051c44:4]=0x2001e6a0
| ||||||| 0x08051a3c 0021 movs r1, 0
| ||||||| 0x08051a3e 0160 str r1, [r0]
| ||||||| 0x08051a40 8148 ldr r0, [0x08051c48] ; [0x8051c48:4]=0x2001e8ea
| ||||||| 0x08051a42 0021 movs r1, 0
| ||||||| 0x08051a44 0170 strb r1, [r0]
| ||||||| 0x08051a46 8148 ldr r0, [0x08051c4e] ; [0x8051c4c:4]=0x2001e8eb
| ||||||| 0x08051a48 0021 movs r1, 0
| ||||||| 0x08051a4a 0170 strb r1, [r0]
| ||||||| 0x08051a4c edf751ff bl func_3f8f2_init_PLL_and_C5000
| ||||||| 0x08051a50 6f48 ldr r0, [0x08051c10] ; [0x8051c10:4]=0x2001e897
| ||||||| 0x08051a52 0121 movs r1, 1 ; 1
| ||||||| 0x08051a54 0170 strb r1, [r0]
| ||||||| 0x08051a56 0120 movs r0, 1 ; 1
| ||||||| 0x08051a58 f1f7e4fe bl func_43824_wr_C5000
| --------> 0x08051a5c 93e0 b 0x8051b86
| ||||||| 0x08051a5e 00bf nop
| ||||||| 0x08051a60 92e80120 ldm.w r2, {r0, sp}
| --------> 0x08051a64 7a48 ldr r0, [0x08051c50] ; [0x8051c50:4]=0x2001e892 gui_opmode3
| ||||||| 0x08051a66 0078 ldrb r0, [r0]
| ||||||| 0x08051a68 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x08051a6a 2bd1 bne 0x8051ac4
| ||||||| 0x08051a6c 7848 ldr r0, [0x08051c50] ; [0x8051c50:4]=0x2001e892 gui_opmode3
| ||||||| 0x08051a6e 9521 movs r1, 0x95 ; 149
| ||||||| 0x08051a70 0170 strb r1, [r0]
| ||||||| 0x08051a72 0520 movs r0, 5 ; 5
| ||||||| 0x08051a74 00f08af8 bl func_51b8c
| ||||||| 0x08051a78 6d48 ldr r0, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051a7a 0079 ldrb r0, [r0, 4]
| ||||||| 0x08051a7c 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08051a80 6b49 ldr r1, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051a82 0871 strb r0, [r1, 4]
| ||||||| 0x08051a84 6a48 ldr r0, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051a86 c078 ldrb r0, [r0, 3]
| ||||||| 0x08051a88 10f0fc00 ands r0, r0, 0xfc
| ||||||| 0x08051a8c 6849 ldr r1, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051a8e c870 strb r0, [r1, 3]
| ||||||| 0x08051a90 0120 movs r0, 1 ; 1
| ||||||| 0x08051a92 6749 ldr r1, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051a94 0978 ldrb r1, [r1]
| ||||||| 0x08051a96 60f30101 bfi r1, r0, 0, 2
| ||||||| 0x08051a9a 6548 ldr r0, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051a9c 0170 strb r1, [r0]
| ||||||| 0x08051a9e 6448 ldr r0, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051aa0 0078 ldrb r0, [r0]
| ||||||| 0x08051aa2 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x08051aa6 6249 ldr r1, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051aa8 0870 strb r0, [r1]
| ||||||| 0x08051aaa 6148 ldr r0, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051aac 4ff6ff71 movw r1, 0xffff
| ||||||| 0x08051ab0 4183 strh r1, [r0, 0x1a]
| ||||||| 0x08051ab2 5f48 ldr r0, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08051ab4 4ff48051 mov.w r1, 0x1000
| ||||||| 0x08051ab8 0183 strh r1, [r0, 0x18]
| ||||||| 0x08051aba eef775f9 bl func_3fda8
| ||||||| 0x08051abe ebf76ffd bl func_3d5a0
| ========< 0x08051ac2 ffe7 b 0x8051ac4
| --------> 0x08051ac4 5fe0 b 0x8051b86
| ====`---> 0x08051ac6 5ee0 b 0x8051b86
| |||| |`-> 0x08051ac8 0178 ldrb r1, [r0]
| |||| | 0x08051aca 4f29 cmp r1, 0x4f ; 'O' ; 79
| |||| |,=< 0x08051acc 2cd1 bne 0x8051b28
| |||| || 0x08051ace 6048 ldr r0, [0x08051c52] ; [0x8051c50:4]=0x2001e892 gui_opmode3
| |||| || 0x08051ad0 0078 ldrb r0, [r0]
| |||| || 0x08051ad2 7128 cmp r0, 0x71 ; 'q' ; 113
| ||||,===< 0x08051ad4 57d3 blo 0x8051b86
| ||||||| 0x08051ad6 5e48 ldr r0, [0x08051c52] ; [0x8051c50:4]=0x2001e892 gui_opmode3
| ||||||| 0x08051ad8 0078 ldrb r0, [r0]
| ||||||| 0x08051ada 8c28 cmp r0, 0x8c ; 140
| ========< 0x08051adc 03d0 beq 0x8051ae6
| ||||||| 0x08051ade 5c48 ldr r0, [0x08051c52] ; [0x8051c50:4]=0x2001e892 gui_opmode3
| ||||||| 0x08051ae0 0078 ldrb r0, [r0]
| ||||||| 0x08051ae2 8d28 cmp r0, 0x8d ; 141
| ========< 0x08051ae4 06d1 bne 0x8051af4
| --------> 0x08051ae6 ebf748fd bl func_3d57a
| ||||||| 0x08051aea 4ff4c870 mov.w r0, 0x190 ; 400
| ||||||| 0x08051aee e2f7e1f9 bl OSTimeDly
| ========< 0x08051af2 04e0 b 0x8051afe
| --------> 0x08051af4 ebf723fd bl func_3d53e
| ||||||| 0x08051af8 3220 movs r0, 0x32 ; '2' ; 50
| ||||||| 0x08051afa e2f7dbf9 bl OSTimeDly
| --------> 0x08051afe f6f796f8 bl TimerIRQ_Sub8
| ||||||| 0x08051b02 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x08051b04 5348 ldr r0, [0x08051c54] ; [0x8051c54:4]=0x40020800 io_GPIOC
| ||||||| 0x08051b06 d9f782fe bl GPIO_ResetBits
| ||||||| 0x08051b0a e0f7c0f9 bl func_31e8e
| ||||||| 0x08051b0e d0f7f8fc bl func_22502_spiflash_security
| ||||||| 0x08051b12 3f48 ldr r0, [0x08051c12] ; [0x8051c10:4]=0x2001e897
| ||||||| 0x08051b14 0221 movs r1, 2 ; 2
| ||||||| 0x08051b16 0170 strb r1, [r0]
| ||||||| 0x08051b18 edf7ebfe bl func_3f8f2_init_PLL_and_C5000
| ||||||| 0x08051b1c ebf740fd bl func_3d5a0
| ||||||| 0x08051b20 4b48 ldr r0, [0x08051c50] ; [0x8051c50:4]=0x2001e892 gui_opmode3
| ||||||| 0x08051b22 7021 movs r1, 0x70 ; 'p' ; 112
| ||||||| 0x08051b24 0170 strb r1, [r0]
| ========< 0x08051b26 2ee0 b 0x8051b86
| ||||||`-> 0x08051b28 0078 ldrb r0, [r0]
| |||||| 0x08051b2a 4328 cmp r0, 0x43 ; 'C' ; 67
| ||||||,=< 0x08051b2c 2bd1 bne 0x8051b86
| ||||||| 0x08051b2e 4848 ldr r0, [0x08051c52] ; [0x8051c50:4]=0x2001e892 gui_opmode3
| ||||||| 0x08051b30 0078 ldrb r0, [r0]
| ||||||| 0x08051b32 7128 cmp r0, 0x71 ; 'q' ; 113
| ========< 0x08051b34 27d3 blo 0x8051b86
| ||||||| 0x08051b36 4648 ldr r0, [0x08051c52] ; [0x8051c50:4]=0x2001e892 gui_opmode3
| ||||||| 0x08051b38 0078 ldrb r0, [r0]
| ||||||| 0x08051b3a 8c28 cmp r0, 0x8c ; 140
| ========< 0x08051b3c 03d0 beq 0x8051b46
| ||||||| 0x08051b3e 4448 ldr r0, [0x08051c52] ; [0x8051c50:4]=0x2001e892 gui_opmode3
| ||||||| 0x08051b40 0078 ldrb r0, [r0]
| ||||||| 0x08051b42 8d28 cmp r0, 0x8d ; 141
| ========< 0x08051b44 06d1 bne 0x8051b54
| --------> 0x08051b46 ebf718fd bl func_3d57a
| ||||||| 0x08051b4a 4ff4c870 mov.w r0, 0x190 ; 400
| ||||||| 0x08051b4e e2f7b1f9 bl OSTimeDly
| ========< 0x08051b52 04e0 b 0x8051b5e
| --------> 0x08051b54 ebf7f3fc bl func_3d53e
| ||||||| 0x08051b58 3220 movs r0, 0x32 ; '2' ; 50
| ||||||| 0x08051b5a e2f7abf9 bl OSTimeDly
| --------> 0x08051b5e f6f766f8 bl TimerIRQ_Sub8
| ||||||| 0x08051b62 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x08051b64 3b48 ldr r0, [0x08051c54] ; [0x8051c54:4]=0x40020800 io_GPIOC
| ||||||| 0x08051b66 d9f752fe bl GPIO_ResetBits
| ||||||| 0x08051b6a e0f790f9 bl func_31e8e
| ||||||| 0x08051b6e cff7f3fe bl func_21958_spiflash_something
| ||||||| 0x08051b72 2748 ldr r0, [0x08051c12] ; [0x8051c10:4]=0x2001e897
| ||||||| 0x08051b74 0221 movs r1, 2 ; 2
| ||||||| 0x08051b76 0170 strb r1, [r0]
| ||||||| 0x08051b78 edf7bbfe bl func_3f8f2_init_PLL_and_C5000
| ||||||| 0x08051b7c ebf710fd bl func_3d5a0
| ||||||| 0x08051b80 3348 ldr r0, [0x08051c50] ; [0x8051c50:4]=0x2001e892 gui_opmode3
| ||||||| 0x08051b82 7021 movs r1, 0x70 ; 'p' ; 112
| ||||||| 0x08051b84 0170 strb r1, [r0]
\ ```````-> 0x08051b86 31bd pop {r0, r4, r5, pc}
/ (fcn) func_51b8c 124
| Caller: func_4fe14_monster_accessing_C5000 c5000_wr_60_5
| func_51b8c ();
| 0x08051b8c 401e subs r0, r0, 1
| 0x08051b8e c0b2 uxtb r0, r0
| 0x08051b90 c000 lsls r0, r0, 3
| 0x08051b92 c0b2 uxtb r0, r0
| 0x08051b94 1c49 ldr r1, [0x08051c08] ; [0x8051c08:4]=0x2001c380
| 0x08051b96 4118 adds r1, r0, r1
| 0x08051b98 91f8b311 ldrb.w r1, [r1, 0x1b3]
| 0x08051b9c c0b2 uxtb r0, r0
| 0x08051b9e 1a4a ldr r2, [0x08051c0a] ; [0x8051c08:4]=0x2001c380
| 0x08051ba0 8218 adds r2, r0, r2
| 0x08051ba2 92f8b221 ldrb.w r2, [r2, 0x1b2]
| 0x08051ba6 1204 lsls r2, r2, 0x10
| 0x08051ba8 12eb0161 adds.w r1, r2, r1, lsl 24
| 0x08051bac c0b2 uxtb r0, r0
| 0x08051bae 164a ldr r2, [0x08051c0a] ; [0x8051c08:4]=0x2001c380
| 0x08051bb0 8218 adds r2, r0, r2
| 0x08051bb2 92f8b121 ldrb.w r2, [r2, 0x1b1]
| 0x08051bb6 11eb0221 adds.w r1, r1, r2, lsl 8
| 0x08051bba c0b2 uxtb r0, r0
| 0x08051bbc 124a ldr r2, [0x08051c08] ; [0x8051c08:4]=0x2001c380
| 0x08051bbe 8218 adds r2, r0, r2
| 0x08051bc0 92f8b021 ldrb.w r2, [r2, 0x1b0]
| 0x08051bc4 51fa82f1 uxtab r1, r1, r2
| 0x08051bc8 194a ldr r2, [0x08051c30] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| 0x08051bca 1161 str r1, [r2, 0x10]
| 0x08051bcc c0b2 uxtb r0, r0
| 0x08051bce 0e49 ldr r1, [0x08051c0a] ; [0x8051c08:4]=0x2001c380
| 0x08051bd0 4118 adds r1, r0, r1
| 0x08051bd2 91f8b711 ldrb.w r1, [r1, 0x1b7]
| 0x08051bd6 c0b2 uxtb r0, r0
| 0x08051bd8 0b4a ldr r2, [0x08051c08] ; [0x8051c08:4]=0x2001c380
| 0x08051bda 8218 adds r2, r0, r2
| 0x08051bdc 92f8b621 ldrb.w r2, [r2, 0x1b6]
| 0x08051be0 1204 lsls r2, r2, 0x10
| 0x08051be2 12eb0161 adds.w r1, r2, r1, lsl 24
| 0x08051be6 c0b2 uxtb r0, r0
| 0x08051be8 074a ldr r2, [0x08051c08] ; [0x8051c08:4]=0x2001c380
| 0x08051bea 8218 adds r2, r0, r2
| 0x08051bec 92f8b521 ldrb.w r2, [r2, 0x1b5]
| 0x08051bf0 11eb0221 adds.w r1, r1, r2, lsl 8
| 0x08051bf4 c0b2 uxtb r0, r0
| 0x08051bf6 044a ldr r2, [0x08051c0a] ; [0x8051c08:4]=0x2001c380
| 0x08051bf8 8018 adds r0, r0, r2
| 0x08051bfa 90f8b401 ldrb.w r0, [r0, 0x1b4]
| 0x08051bfe 51fa80f0 uxtab r0, r1, r0
| 0x08051c02 0b49 ldr r1, [0x08051c32] ; [0x8051c30:4]=0x2001de78 struct_channel_info2
| 0x08051c04 4861 str r0, [r1, 0x14]
\ 0x08051c06 7047 bx lr
/ (fcn) func_51c58 18
| Caller: init_more_and_start_watchdog usb_dnld_handle
| func_51c58 ();
| 0x08051c58 80b5 push {r7, lr}
| 0x08051c5a 00f006f8 bl func_51c6a
| 0x08051c5e 4af2a551 movw r1, 0xa5a5
| 0x08051c62 0120 movs r0, 1 ; 1
| 0x08051c64 d9f7ecfc bl 0x802b640
\ 0x08051c68 01bd pop {r0, pc}
/ (fcn) func_51c6a 150
| Caller: func_51c58
| func_51c6a ();
| 0x08051c6a 1cb5 push {r2, r3, r4, lr}
| 0x08051c6c 0020 movs r0, 0
| 0x08051c6e 0190 str r0, [sp, 4]
| 0x08051c70 0020 movs r0, 0
| 0x08051c72 0090 str r0, [sp]
| 0x08051c74 0121 movs r1, 1 ; 1
| 0x08051c76 5ff08050 movs.w r0, 0x10000000
| 0x08051c7a e4f764ff bl func_36b46
| 0x08051c7e 0120 movs r0, 1 ; 1
| 0x08051c80 f7f7c2f8 bl func_48e08
| 0x08051c84 0021 movs r1, 0
| 0x08051c86 4ff48040 mov.w r0, 0x4000
| 0x08051c8a d9f7ebfc bl 0x802b664
| 0x08051c8e 4ff48040 mov.w r0, 0x4000
| 0x08051c92 d9f715fd bl RTCWakeupIRQ_Sub1
| 0x08051c96 5ff48000 movs.w r0, 0x400000
| 0x08051c9a 00f0e4f8 bl ClearEXTIPendingBits_R0
| 0x08051c9e 1948 ldr r0, [0x08051d06] ; [0x8051d04:4]=0x2001e540
| 0x08051ca0 d9f7d8fa bl 0x802b254
| 0x08051ca4 1748 ldr r0, [0x08051d04] ; [0x8051d04:4]=0x2001e540
| 0x08051ca6 d9f79dfa bl 0x802b1e4
| 0x08051caa 0020 movs r0, 0
| 0x08051cac d9f780fc bl 0x802b5b0
| 0x08051cb0 0120 movs r0, 1 ; 1
| 0x08051cb2 e4f77efe bl func_369b2
| 0x08051cb6 0120 movs r0, 1 ; 1
| 0x08051cb8 e4f762fe bl gfx_36980
| .-> 0x08051cbc 4120 movs r0, 0x41 ; 'A' ; 65
| | 0x08051cbe e4f762ff bl func_36b86
| | 0x08051cc2 0028 cmp r0, 0
| `=< 0x08051cc4 fad0 beq 0x8051cbc
| 0x08051cc6 4ff48070 mov.w r0, 0x100 ; 256
| 0x08051cca e4f7edfe bl func_36aa8
| 0x08051cce ff20 movs r0, 0xff ; 255
| 0x08051cd0 0090 str r0, [sp]
| 0x08051cd2 7c20 movs r0, 0x7c ; '|' ; 124
| 0x08051cd4 0190 str r0, [sp, 4]
| 0x08051cd6 0120 movs r0, 1 ; 1
| 0x08051cd8 e4f7fdfe bl func_36ad6
| 0x08051cdc d9f7f4fa bl 0x802b2c8
| 0x08051ce0 0400 movs r4, r0
| 0x08051ce2 0320 movs r0, 3 ; 3
| 0x08051ce4 d9f738fc bl 0x802b558
| 0x08051ce8 a320 movs r0, 0xa3 ; 163
| 0x08051cea d9f751fc bl 0x802b590
| 0x08051cee 0120 movs r0, 1 ; 1
| 0x08051cf0 d9f75efc bl 0x802b5b0
| 0x08051cf4 0121 movs r1, 1 ; 1
| 0x08051cf6 4ff48040 mov.w r0, 0x4000
| 0x08051cfa d9f7b3fc bl 0x802b664
\ 0x08051cfe 13bd pop {r0, r1, r4, pc}
/ (fcn) dummy_51d08 2
| Caller: init_more_and_start_watchdog
| dummy_51d08 ();
\ 0x08051d08 7047 bx lr
/ (fcn) func_51d0c 10
| Caller: func_59228 func_46dc0
| func_51d0c ();
| 0x08051d0c 1f49 ldr r1, [0x08051d8c] ; [0x8051d8c:4]=0x5fa0000
| 0x08051d0e 0843 orrs r0, r1
| 0x08051d10 1f49 ldr r1, [0x08051d90] ; [0x8051d90:4]=0xe000ed0c
| 0x08051d12 0860 str r0, [r1]
\ 0x08051d14 7047 bx lr
/ (fcn) func_51d16 104
| Caller: func_59228 func_49ca8 func_46dc0 func_4915c
| func_51d16 ();
| 0x08051d16 10b4 push {r4}
| 0x08051d18 0021 movs r1, 0
| 0x08051d1a 0022 movs r2, 0
| 0x08051d1c 0f23 movs r3, 0xf ; 15
| 0x08051d1e c478 ldrb r4, [r0, 3]
| 0x08051d20 002c cmp r4, 0
| ,=< 0x08051d22 1fd0 beq 0x8051d64
| | 0x08051d24 1a49 ldr r1, [0x08051d90] ; [0x8051d90:4]=0xe000ed0c
| | 0x08051d26 0968 ldr r1, [r1]
| | 0x08051d28 11f4e061 ands r1, r1, 0x700
| | 0x08051d2c d1f5e061 rsbs.w r1, r1, 0x700
| | 0x08051d30 090a lsrs r1, r1, 8
| | 0x08051d32 d1f10402 rsbs.w r2, r1, 4
| | 0x08051d36 dbb2 uxtb r3, r3
| | 0x08051d38 0b41 asrs r3, r1
| | 0x08051d3a 4178 ldrb r1, [r0, 1]
| | 0x08051d3c 9140 lsls r1, r2
| | 0x08051d3e 8278 ldrb r2, [r0, 2]
| | 0x08051d40 1a40 ands r2, r3
| | 0x08051d42 1143 orrs r1, r2
| | 0x08051d44 0901 lsls r1, r1, 4
| | 0x08051d46 0278 ldrb r2, [r0]
| | 0x08051d48 124b ldr r3, [0x08051d94] ; [0x8051d94:4]=0xe000e400
| | 0x08051d4a d154 strb r1, [r2, r3]
| | 0x08051d4c 0178 ldrb r1, [r0]
| | 0x08051d4e 4911 asrs r1, r1, 5
| | 0x08051d50 114a ldr r2, [0x08051d98] ; [0x8051d98:4]=0xe000e100
| | 0x08051d52 0123 movs r3, 1 ; 1
| | 0x08051d54 0078 ldrb r0, [r0]
| | 0x08051d56 10f01f00 ands r0, r0, 0x1f
| | 0x08051d5a 13fa00f0 lsls.w r0, r3, r0
| | 0x08051d5e 42f82100 str.w r0, [r2, r1, lsl 2]
| ,==< 0x08051d62 0ae0 b 0x8051d7a
| |`-> 0x08051d64 0178 ldrb r1, [r0]
| | 0x08051d66 4911 asrs r1, r1, 5
| | 0x08051d68 0c4a ldr r2, [0x08051d9c] ; [0x8051d9c:4]=0xe000e180
| | 0x08051d6a 0123 movs r3, 1 ; 1
| | 0x08051d6c 0078 ldrb r0, [r0]
| | 0x08051d6e 10f01f00 ands r0, r0, 0x1f
| | 0x08051d72 13fa00f0 lsls.w r0, r3, r0
| | 0x08051d76 42f82100 str.w r0, [r2, r1, lsl 2]
| `--> 0x08051d7a 10bc pop {r4}
\ 0x08051d7c 7047 bx lr
/ (fcn) func_51d7e 12
| Caller: func_46dc0 _main2_init_sub3
| func_51d7e ();
| 0x08051d7e 084a ldr r2, [0x08051da2] ; [0x8051da0:4]=0x1fffff80
| 0x08051d80 1140 ands r1, r2
| 0x08051d82 0843 orrs r0, r1
| 0x08051d84 0749 ldr r1, [0x08051da4] ; [0x8051da4:4]=0xe000ed08
| 0x08051d86 0860 str r0, [r1] ; R1 = 0xE000ED88 = FPU.CPACR
\ 0x08051d88 7047 bx lr
/ (fcn) func_51da8_uses_EXTI_RTSR 136
| Caller: func_46f48 func_46dc0
| func_51da8_uses_EXTI_RTSR ();
| 0x08051da8 0021 movs r1, 0
| 0x08051daa 304a ldr r2, [0x08051e6e] ; [0x8051e6c:4]=0x40013c00 io_EXTI
| 0x08051dac 1100 movs r1, r2
| 0x08051dae 8279 ldrb r2, [r0, 6]
| 0x08051db0 002a cmp r2, 0
| ,=< 0x08051db2 35d0 beq 0x8051e20
| | 0x08051db4 2d4a ldr r2, [0x08051e6c] ; [0x8051e6c:4]=0x40013c00 io_EXTI
| | 0x08051db6 1268 ldr r2, [r2]
| | 0x08051db8 0368 ldr r3, [r0]
| | 0x08051dba 9a43 bics r2, r3
| | 0x08051dbc 2b4b ldr r3, [0x08051e6c] ; [0x8051e6c:4]=0x40013c00 io_EXTI
| | 0x08051dbe 1a60 str r2, [r3]
| | 0x08051dc0 2b4a ldr r2, [0x08051e70] ; [0x8051e70:4]=0x40013c04 io_EXTI_EMR
| | 0x08051dc2 1268 ldr r2, [r2]
| | 0x08051dc4 0368 ldr r3, [r0]
| | 0x08051dc6 9a43 bics r2, r3
| | 0x08051dc8 294b ldr r3, [0x08051e70] ; [0x8051e70:4]=0x40013c04 io_EXTI_EMR
| | 0x08051dca 1a60 str r2, [r3]
| | 0x08051dcc 0279 ldrb r2, [r0, 4]
| | 0x08051dce 8918 adds r1, r1, r2
| | 0x08051dd0 0a68 ldr r2, [r1]
| | 0x08051dd2 0368 ldr r3, [r0]
| | 0x08051dd4 1a43 orrs r2, r3
| | 0x08051dd6 0a60 str r2, [r1]
| | 0x08051dd8 2649 ldr r1, [0x08051e74] ; [0x8051e74:4]=0x40013c08 io_EXTI_RTSR
| | 0x08051dda 0968 ldr r1, [r1]
| | 0x08051ddc 0268 ldr r2, [r0]
| | 0x08051dde 9143 bics r1, r2
| | 0x08051de0 244a ldr r2, [0x08051e74] ; [0x8051e74:4]=0x40013c08 io_EXTI_RTSR
| | 0x08051de2 1160 str r1, [r2]
| | 0x08051de4 2449 ldr r1, [0x08051e78] ; [0x8051e78:4]=0x40013c0c io_EXTI_FTSR
| | 0x08051de6 0968 ldr r1, [r1]
| | 0x08051de8 0268 ldr r2, [r0]
| | 0x08051dea 9143 bics r1, r2
| | 0x08051dec 224a ldr r2, [0x08051e78] ; [0x8051e78:4]=0x40013c0c io_EXTI_FTSR
| | 0x08051dee 1160 str r1, [r2]
| | 0x08051df0 4179 ldrb r1, [r0, 5]
| | 0x08051df2 1029 cmp r1, 0x10 ; 16
| ,==< 0x08051df4 0cd1 bne 0x8051e10
| || 0x08051df6 1f49 ldr r1, [0x08051e76] ; [0x8051e74:4]=0x40013c08 io_EXTI_RTSR
| || 0x08051df8 0968 ldr r1, [r1]
| || 0x08051dfa 0268 ldr r2, [r0]
| || 0x08051dfc 1143 orrs r1, r2
| || 0x08051dfe 1d4a ldr r2, [0x08051e76] ; [0x8051e74:4]=0x40013c08 io_EXTI_RTSR
| || 0x08051e00 1160 str r1, [r2]
| || 0x08051e02 1d49 ldr r1, [0x08051e7a] ; [0x8051e78:4]=0x40013c0c io_EXTI_FTSR
| || 0x08051e04 0968 ldr r1, [r1]
| || 0x08051e06 0068 ldr r0, [r0]
| || 0x08051e08 0843 orrs r0, r1
| || 0x08051e0a 1b49 ldr r1, [0x08051e7a] ; [0x8051e78:4]=0x40013c0c io_EXTI_FTSR
| || 0x08051e0c 0860 str r0, [r1]
| ,===< 0x08051e0e 0ee0 b 0x8051e2e
| |`--> 0x08051e10 1649 ldr r1, [0x08051e6c] ; [0x8051e6c:4]=0x40013c00 io_EXTI
| | | 0x08051e12 4279 ldrb r2, [r0, 5]
| | | 0x08051e14 8918 adds r1, r1, r2
| | | 0x08051e16 0a68 ldr r2, [r1]
| | | 0x08051e18 0068 ldr r0, [r0]
| | | 0x08051e1a 1043 orrs r0, r2
| | | 0x08051e1c 0860 str r0, [r1]
| |,==< 0x08051e1e 06e0 b 0x8051e2e
| ||`-> 0x08051e20 0279 ldrb r2, [r0, 4]
| || 0x08051e22 8918 adds r1, r1, r2
| || 0x08051e24 0a68 ldr r2, [r1]
| || 0x08051e26 0068 ldr r0, [r0]
| || 0x08051e28 32ea0000 bics.w r0, r2, r0
| || 0x08051e2c 0860 str r0, [r1]
\ ``--> 0x08051e2e 7047 bx lr
/ (fcn) func_51e30 18
| Caller: func_46f48
| func_51e30 ();
| 0x08051e30 0021 movs r1, 0
| 0x08051e32 0160 str r1, [r0]
| 0x08051e34 0021 movs r1, 0
| 0x08051e36 0171 strb r1, [r0, 4]
| 0x08051e38 0c21 movs r1, 0xc ; 12
| 0x08051e3a 4171 strb r1, [r0, 5]
| 0x08051e3c 0021 movs r1, 0
| 0x08051e3e 8171 strb r1, [r0, 6]
\ 0x08051e40 7047 bx lr
/ (fcn) CalledFromPinChangeIRQ 36
| Caller: EXTI1_IRQHandler EXTI2_IRQHandler EXTI3_IRQHandler EXTI0_IRQHandler
| CalledFromPinChangeIRQ ();
| 0x08051e42 0021 movs r1, 0
| 0x08051e44 0022 movs r2, 0
| 0x08051e46 094b ldr r3, [0x08051e6e] ; [0x8051e6c:4]=0x40013c00 io_EXTI
| 0x08051e48 1b68 ldr r3, [r3]
| 0x08051e4a 0340 ands r3, r0
| 0x08051e4c 1a00 movs r2, r3
| 0x08051e4e 0b4b ldr r3, [0x08051e7e] ; [0x8051e7c:4]=0x40013c14 io_EXTI_PR
| 0x08051e50 1b68 ldr r3, [r3]
| 0x08051e52 0342 tst r3, r0
| ,=< 0x08051e54 03d0 beq 0x8051e5e
| | 0x08051e56 002a cmp r2, 0
| ,==< 0x08051e58 01d0 beq 0x8051e5e
| || 0x08051e5a 0121 movs r1, 1 ; 1
| ,===< 0x08051e5c 00e0 b 0x8051e60
| |``-> 0x08051e5e 0021 movs r1, 0
| `---> 0x08051e60 0800 movs r0, r1
| 0x08051e62 c0b2 uxtb r0, r0
\ 0x08051e64 7047 bx lr
/ (fcn) ClearEXTIPendingBits_R0 6
| Caller: func_46f48 EXTI1_IRQHandler EXTI2_IRQHandler func_51c6a func_46dc0
| RTC_WKUP_IRQHandler EXTI3_IRQHandler EXTI0_IRQHandler OTG_FS_WKUP_IRQHandler
| ClearEXTIPendingBits_R0 ();
| 0x08051e66 0549 ldr r1, [0x08051e7e] ; [0x8051e7c:4]=0x40013c14 io_EXTI_PR
| 0x08051e68 0860 str r0, [r1]
\ 0x08051e6a 7047 bx lr
/ (fcn) func_51e80 80
| Caller: func_46f8e
| func_51e80 ();
| 0x08051e80 10b4 push {r4}
| 0x08051e82 0022 movs r2, 0
| 0x08051e84 0f23 movs r3, 0xf ; 15
| 0x08051e86 11f00304 ands r4, r1, 3
| 0x08051e8a e4b2 uxtb r4, r4
| 0x08051e8c a400 lsls r4, r4, 2
| 0x08051e8e a340 lsls r3, r4
| 0x08051e90 1a00 movs r2, r3
| 0x08051e92 c9b2 uxtb r1, r1
| 0x08051e94 8b10 asrs r3, r1, 2
| 0x08051e96 0e4c ldr r4, [0x08051ed2] ; [0x8051ed0:4]=0x40013808 io_SYSCFG_EXTICR1
| 0x08051e98 54f82330 ldr.w r3, [r4, r3, lsl 2]
| 0x08051e9c 33ea0202 bics.w r2, r3, r2
| 0x08051ea0 c9b2 uxtb r1, r1
| 0x08051ea2 8b10 asrs r3, r1, 2
| 0x08051ea4 0a4c ldr r4, [0x08051ed0] ; [0x8051ed0:4]=0x40013808 io_SYSCFG_EXTICR1
| 0x08051ea6 44f82320 str.w r2, [r4, r3, lsl 2]
| 0x08051eaa c9b2 uxtb r1, r1
| 0x08051eac 8a10 asrs r2, r1, 2
| 0x08051eae 084b ldr r3, [0x08051ed2] ; [0x8051ed0:4]=0x40013808 io_SYSCFG_EXTICR1
| 0x08051eb0 53f82220 ldr.w r2, [r3, r2, lsl 2]
| 0x08051eb4 c0b2 uxtb r0, r0
| 0x08051eb6 11f00303 ands r3, r1, 3
| 0x08051eba dbb2 uxtb r3, r3
| 0x08051ebc 9b00 lsls r3, r3, 2
| 0x08051ebe 9840 lsls r0, r3
| 0x08051ec0 1043 orrs r0, r2
| 0x08051ec2 c9b2 uxtb r1, r1
| 0x08051ec4 8910 asrs r1, r1, 2
| 0x08051ec6 024a ldr r2, [0x08051ed2] ; [0x8051ed0:4]=0x40013808 io_SYSCFG_EXTICR1
| 0x08051ec8 42f82100 str.w r0, [r2, r1, lsl 2]
| 0x08051ecc 10bc pop {r4}
\ 0x08051ece 7047 bx lr
/ (fcn) kbscan_set_LCD_data_LOW 78
| Caller: kb_handler_sub1
| kbscan_set_LCD_data_LOW ();
| 0x08051ed4 00b5 push {lr}
| 0x08051ed6 83b0 sub sp, 0xc ; fill out a GPIO_InitTypeDef for GPIO_Init..
| 0x08051ed8 0220 movs r0, 2 ; 2 ; see stm32f4xx_gpio.c
| 0x08051eda 8df80500 strb.w r0, [sp, 5] ; [sp+5] GPIO_Speed: 2 = high speed
| 0x08051ede 0020 movs r0, 0
| 0x08051ee0 8df80600 strb.w r0, [sp, 6] ; [sp+6] GPIO_OType: 0 = push/pull
| 0x08051ee4 0120 movs r0, 1 ; 1
| 0x08051ee6 8df80400 strb.w r0, [sp, 4] ; [sp+4] GPIO_Mode : 1 = general purpose OUTPUT
| 0x08051eea 0020 movs r0, 0
| 0x08051eec 8df80700 strb.w r0, [sp, 7] ; [sp+7] GPIO_PuPd : 0 = no pull-up/down
| 0x08051ef0 4cf20300 movw r0, 0xc003
| 0x08051ef4 0090 str r0, [sp] ; [sp+0] pins to be configured: PD15,PD14,PD1,PD0
| 0x08051ef6 00a9 add r1, sp, 0
| 0x08051ef8 5c48 ldr r0, [0x0805206c] ; [0x805206c:4]=0x40020c00 io_GPIOD
| 0x08051efa d9f725fc bl GPIO_Init
| 0x08051efe 4ff4f060 mov.w r0, 0x780 ; 1920
| 0x08051f02 0090 str r0, [sp] ; [sp+0] pins to be configured: PE10,PE9,PE8,PE7
| 0x08051f04 00a9 add r1, sp, 0
| 0x08051f06 5a48 ldr r0, [0x08052072] ; [0x8052070:4]=0x40021000 io_GPIOE
| 0x08051f08 d9f71efc bl GPIO_Init ; the above pins are "keyboard matrix drivers" now
| 0x08051f0c 4cf20301 movw r1, 0xc003
| 0x08051f10 5648 ldr r0, [0x0805206c] ; [0x805206c:4]=0x40020c00 io_GPIOD
| 0x08051f12 d9f77cfc bl GPIO_ResetBits
| 0x08051f16 4ff4f061 mov.w r1, 0x780 ; 1920
| 0x08051f1a 5548 ldr r0, [0x08052072] ; [0x8052070:4]=0x40021000 io_GPIOE
| 0x08051f1c d9f777fc bl GPIO_ResetBits
\ 0x08051f20 07bd pop {r0, r1, r2, pc}
/ (fcn) ConfigureLCDPort 138
| Caller: kb_handler_sub1 biglist_pollsubsys_maybe
| ConfigureLCDPort ();
| 0x08051f22 00b5 push {lr}
| 0x08051f24 83b0 sub sp, 0xc ; fill out a GPIO_InitTypeDef for GPIO_Init..
| 0x08051f26 0320 movs r0, 3 ; 3
| 0x08051f28 8df80500 strb.w r0, [sp, 5] ; GPIO_Speed: 3 = very high speed
| 0x08051f2c 0220 movs r0, 2 ; 2
| 0x08051f2e 8df80400 strb.w r0, [sp, 4] ; GPIO_Mode : 2 = Alternate Function (no GPIO)
| 0x08051f32 0020 movs r0, 0
| 0x08051f34 8df80600 strb.w r0, [sp, 6] ; GPIO_OType: 0 = push/pull
| 0x08051f38 0020 movs r0, 0
| 0x08051f3a 8df80700 strb.w r0, [sp, 7] ; GPIO_PuPd : 0 = No pull-up, no pull-down
| 0x08051f3e 4cf20300 movw r0, 0xc003 ; pins to be configured: PD15,14,1,0
| 0x08051f42 0090 str r0, [sp] ; GPIO_Pins (1st struct member)
| 0x08051f44 00a9 add r1, sp, 0
| 0x08051f46 4948 ldr r0, [0x0805206e] ; [0x805206c:4]=0x40020c00 io_GPIOD
| 0x08051f48 d9f7fefb bl GPIO_Init
| 0x08051f4c 4ff4f060 mov.w r0, 0x780 ; 1920
| 0x08051f50 0090 str r0, [sp] ; similar for PE10,PE9,PE8,PE7 (LCD_Data:FSMC)
| 0x08051f52 00a9 add r1, sp, 0
| 0x08051f54 4648 ldr r0, [0x08052070] ; [0x8052070:4]=0x40021000 io_GPIOE
| 0x08051f56 d9f7f7fb bl GPIO_Init
| 0x08051f5a 0c22 movs r2, 0xc ; 12 ; R2=AF number, use PD14 as FSMC_D0 (LCD_D0)
| 0x08051f5c 0e21 movs r1, 0xe ; 14 ; R1=pin number for GPIO_PinAFConfig
| 0x08051f5e 4348 ldr r0, [0x0805206e] ; [0x805206c:4]=0x40020c00 io_GPIOD
| 0x08051f60 d9f75efc bl GPIO_PinAFConfig
| 0x08051f64 0c22 movs r2, 0xc ; 12
| 0x08051f66 0f21 movs r1, 0xf ; 15 ; configure PD15 as FSMC_D1 (LCD_D1)
| 0x08051f68 4048 ldr r0, [0x0805206c] ; [0x805206c:4]=0x40020c00 io_GPIOD
| 0x08051f6a d9f759fc bl GPIO_PinAFConfig
| 0x08051f6e 0c22 movs r2, 0xc ; 12
| 0x08051f70 0021 movs r1, 0 ; configure PD0 as FSMC_D2 (LCD_D2)
| 0x08051f72 3e48 ldr r0, [0x0805206e] ; [0x805206c:4]=0x40020c00 io_GPIOD
| 0x08051f74 d9f754fc bl GPIO_PinAFConfig
| 0x08051f78 0c22 movs r2, 0xc ; 12
| 0x08051f7a 0121 movs r1, 1 ; 1 ; configure PD1 as FSMC_D3 (LCD_D3)
| 0x08051f7c 3b48 ldr r0, [0x0805206c] ; [0x805206c:4]=0x40020c00 io_GPIOD
| 0x08051f7e d9f74ffc bl GPIO_PinAFConfig
| 0x08051f82 0c22 movs r2, 0xc ; 12
| 0x08051f84 0721 movs r1, 7 ; 7 ; configure PE7 as FSMC_D4 (LCD_D4)
| 0x08051f86 3a48 ldr r0, [0x08052072] ; [0x8052070:4]=0x40021000 io_GPIOE
| 0x08051f88 d9f74afc bl GPIO_PinAFConfig
| 0x08051f8c 0c22 movs r2, 0xc ; 12
| 0x08051f8e 0821 movs r1, 8 ; 8 ; configure PE8 as FSMC_D5 (LCD_D5)
| 0x08051f90 3748 ldr r0, [0x08052070] ; [0x8052070:4]=0x40021000 io_GPIOE
| 0x08051f92 d9f745fc bl GPIO_PinAFConfig
| 0x08051f96 0c22 movs r2, 0xc ; 12
| 0x08051f98 0921 movs r1, 9 ; 9 ; configure PE9 as FSMC_D6 (LCD_D6)
| 0x08051f9a 3548 ldr r0, [0x08052072] ; [0x8052070:4]=0x40021000 io_GPIOE
| 0x08051f9c d9f740fc bl GPIO_PinAFConfig
| 0x08051fa0 0c22 movs r2, 0xc ; 12
| 0x08051fa2 0a21 movs r1, 0xa ; 10 ; configure PE10 as FSMC_D7 (LCD_D7)
| 0x08051fa4 3248 ldr r0, [0x08052070] ; [0x8052070:4]=0x40021000 io_GPIOE
| 0x08051fa6 d9f73bfc bl GPIO_PinAFConfig
\ 0x08051faa 07bd pop {r0, r1, r2, pc}
/ (fcn) kb_scan_matrix_3 58
| Caller: kb_handler_sub1
| kb_scan_matrix_3 ();
| 0x08051fac 00b5 push {lr}
| 0x08051fae 83b0 sub sp, 0xc ; fill out a GPIO_InitTypeDef for GPIO_Init..
| 0x08051fb0 0220 movs r0, 2 ; 2
| 0x08051fb2 8df80500 strb.w r0, [sp, 5] ; [sp+5] GPIO_Speed: 2 = high speed
| 0x08051fb6 0020 movs r0, 0
| 0x08051fb8 8df80600 strb.w r0, [sp, 6] ; [sp+6] GPIO_OType: 0 (irrelevant for inputs)
| 0x08051fbc 0020 movs r0, 0
| 0x08051fbe 8df80400 strb.w r0, [sp, 4] ; [sp+4] GPIO_Mode : 0 = general purpose INPUT
| 0x08051fc2 0120 movs r0, 1 ; 1
| 0x08051fc4 8df80700 strb.w r0, [sp, 7] ; [sp+7] GPIO_PuPd : 1 = pull-up resistor
| 0x08051fc8 4cf20300 movw r0, 0xc003
| 0x08051fcc 0090 str r0, [sp] ; [sp+0] pins to be configured: PD15,PD14,PD1,PD0
| 0x08051fce 00a9 add r1, sp, 0
| 0x08051fd0 2648 ldr r0, [0x0805206c] ; [0x805206c:4]=0x40020c00 io_GPIOD
| 0x08051fd2 d9f7b9fb bl GPIO_Init
| 0x08051fd6 4ff4f060 mov.w r0, 0x780 ; 1920
| 0x08051fda 0090 str r0, [sp] ; [sp+0] pins to be configured: PE10,PE9,PE8,PE7
| 0x08051fdc 00a9 add r1, sp, 0
| 0x08051fde 2448 ldr r0, [0x08052072] ; [0x8052070:4]=0x40021000 io_GPIOE
| 0x08051fe0 d9f7b2fb bl GPIO_Init
\ 0x08051fe4 07bd pop {r0, r1, r2, pc} ; the above pins are "keyboard inputs" now
/ (fcn) kbscan_cfg_K1K2K3_as_inputs_with_pull_up 54
| Caller: kb_handler_sub1
| kbscan_cfg_K1K2K3_as_inputs_with_pull_up ();
| 0x08051fe6 00b5 push {lr}
| 0x08051fe8 83b0 sub sp, 0xc ; fill out a GPIO_InitTypeDef for GPIO_Init..
| 0x08051fea 0220 movs r0, 2 ; 2
| 0x08051fec 8df80500 strb.w r0, [sp, 5] ; [sp+5] GPIO_Speed: 2 = high speed
| 0x08051ff0 0020 movs r0, 0
| 0x08051ff2 8df80600 strb.w r0, [sp, 6] ; [sp+6] GPIO_OType: 0 (irrelevant for inputs)
| 0x08051ff6 0020 movs r0, 0
| 0x08051ff8 8df80400 strb.w r0, [sp, 4] ; [sp+4] GPIO_Mode : 0 = general purpose input
| 0x08051ffc 0120 movs r0, 1 ; 1
| 0x08051ffe 8df80700 strb.w r0, [sp, 7] ; [sp+7] GPIO_PuPd : 1 = pull-up resistor
| 0x08052002 0c20 movs r0, 0xc ; 12
| 0x08052004 0090 str r0, [sp] ; [sp+0] pins to be configured: PD3="K3", PD2="K2"
| 0x08052006 00a9 add r1, sp, 0
| 0x08052008 1848 ldr r0, [0x0805206c] ; [0x805206c:4]=0x40020c00 io_GPIOD
| 0x0805200a d9f79dfb bl GPIO_Init
| 0x0805200e 4020 movs r0, 0x40 ; '@' ; 64
| 0x08052010 0090 str r0, [sp] ; [sp+0] pins to be configured: PA6="K1"
| 0x08052012 00a9 add r1, sp, 0
| 0x08052014 1748 ldr r0, [0x08052074] ; [0x8052074:4]=0x40020000 io_GPIOA
| 0x08052016 d9f797fb bl GPIO_Init
\ 0x0805201a 07bd pop {r0, r1, r2, pc} ; the above pins are "keyboard inputs" now
/ (fcn) kb_scan_matrix_4 78
| Caller: func_46f8e kb_handler_sub1
| kb_scan_matrix_4 ();
| 0x0805201c 00b5 push {lr}
| 0x0805201e 83b0 sub sp, 0xc ; fill out a GPIO_InitTypeDef for GPIO_Init..
| 0x08052020 0220 movs r0, 2 ; 2
| 0x08052022 8df80500 strb.w r0, [sp, 5] ; [sp+5] GPIO_Speed: 2 = high speed
| 0x08052026 0020 movs r0, 0
| 0x08052028 8df80600 strb.w r0, [sp, 6] ; [sp+6] GPIO_OType: 0 = push/pull
| 0x0805202c 0120 movs r0, 1 ; 1
| 0x0805202e 8df80400 strb.w r0, [sp, 4] ; [sp+4] GPIO_Mode : 1 = general purpose OUTPUT
| 0x08052032 0020 movs r0, 0
| 0x08052034 8df80700 strb.w r0, [sp, 7] ; [sp+7] GPIO_PuPd : 0 = no pull-up/down
| 0x08052038 0c20 movs r0, 0xc ; 12 ; [sp+0] pins to be configured: PD3,PD2="K3","K2"
| 0x0805203a 0090 str r0, [sp]
| 0x0805203c 00a9 add r1, sp, 0
| 0x0805203e 0b48 ldr r0, [0x0805206e] ; [0x805206c:4]=0x40020c00 io_GPIOD
| 0x08052040 d9f782fb bl GPIO_Init
| 0x08052044 4020 movs r0, 0x40 ; '@' ; 64
| 0x08052046 0090 str r0, [sp] ; [sp+0] pins to be configured: PA6="K1"
| 0x08052048 00a9 add r1, sp, 0
| 0x0805204a 0a48 ldr r0, [0x08052076] ; [0x8052074:4]=0x40020000 io_GPIOA
| 0x0805204c d9f77cfb bl GPIO_Init ; the above pins are "keyboard matrix drivers" now
| 0x08052050 4021 movs r1, 0x40 ; '@' ; 64
| 0x08052052 0848 ldr r0, [0x08052076] ; [0x8052074:4]=0x40020000 io_GPIOA
| 0x08052054 d9f7dbfb bl GPIO_ResetBits
| 0x08052058 0421 movs r1, 4 ; 4
| 0x0805205a 0448 ldr r0, [0x0805206e] ; [0x805206c:4]=0x40020c00 io_GPIOD
| 0x0805205c d9f7d7fb bl GPIO_ResetBits
| 0x08052060 0821 movs r1, 8 ; 8
| 0x08052062 0248 ldr r0, [0x0805206e] ; [0x805206c:4]=0x40020c00 io_GPIOD
| 0x08052064 d9f7d3fb bl GPIO_ResetBits
\ 0x08052068 07bd pop {r0, r1, r2, pc}
/ (fcn) func_52078 224
| Caller: func_4729c
| func_52078 ();
| 0x08052078 4168 ldr r1, [r0, 4]
| 0x0805207a 8268 ldr r2, [r0, 8]
| 0x0805207c 1143 orrs r1, r2
| 0x0805207e c268 ldr r2, [r0, 0xc]
| 0x08052080 1143 orrs r1, r2
| 0x08052082 0269 ldr r2, [r0, 0x10]
| 0x08052084 1143 orrs r1, r2
| 0x08052086 4269 ldr r2, [r0, 0x14]
| 0x08052088 1143 orrs r1, r2
| 0x0805208a 8269 ldr r2, [r0, 0x18]
| 0x0805208c 1143 orrs r1, r2
| 0x0805208e c269 ldr r2, [r0, 0x1c]
| 0x08052090 1143 orrs r1, r2
| 0x08052092 026a ldr r2, [r0, 0x20]
| 0x08052094 1143 orrs r1, r2
| 0x08052096 426a ldr r2, [r0, 0x24]
| 0x08052098 1143 orrs r1, r2
| 0x0805209a 826a ldr r2, [r0, 0x28]
| 0x0805209c 1143 orrs r1, r2
| 0x0805209e c26a ldr r2, [r0, 0x2c]
| 0x080520a0 1143 orrs r1, r2
| 0x080520a2 026b ldr r2, [r0, 0x30]
| 0x080520a4 1143 orrs r1, r2
| 0x080520a6 0268 ldr r2, [r0]
| 0x080520a8 9200 lsls r2, r2, 2
| 0x080520aa b2f1c042 subs.w r2, r2, 0x60000000
| 0x080520ae 1160 str r1, [r2]
| 0x080520b0 8168 ldr r1, [r0, 8]
| 0x080520b2 0829 cmp r1, 8 ; 8
| ,=< 0x080520b4 0bd1 bne 0x80520ce
| | 0x080520b6 0168 ldr r1, [r0]
| | 0x080520b8 8900 lsls r1, r1, 2
| | 0x080520ba b1f1c041 subs.w r1, r1, 0x60000000
| | 0x080520be 0968 ldr r1, [r1]
| | 0x080520c0 51f04001 orrs r1, r1, 0x40
| | 0x080520c4 0268 ldr r2, [r0]
| | 0x080520c6 9200 lsls r2, r2, 2
| | 0x080520c8 b2f1c042 subs.w r2, r2, 0x60000000
| | 0x080520cc 1160 str r1, [r2]
| `-> 0x080520ce 416b ldr r1, [r0, 0x34]
| 0x080520d0 0968 ldr r1, [r1]
| 0x080520d2 426b ldr r2, [r0, 0x34]
| 0x080520d4 5268 ldr r2, [r2, 4]
| 0x080520d6 51ea0211 orrs.w r1, r1, r2, lsl 4
| 0x080520da 426b ldr r2, [r0, 0x34]
| 0x080520dc 9268 ldr r2, [r2, 8]
| 0x080520de 51ea0221 orrs.w r1, r1, r2, lsl 8
| 0x080520e2 426b ldr r2, [r0, 0x34]
| 0x080520e4 d268 ldr r2, [r2, 0xc]
| 0x080520e6 51ea0241 orrs.w r1, r1, r2, lsl 16
| 0x080520ea 426b ldr r2, [r0, 0x34]
| 0x080520ec 1269 ldr r2, [r2, 0x10]
| 0x080520ee 51ea0251 orrs.w r1, r1, r2, lsl 20
| 0x080520f2 426b ldr r2, [r0, 0x34]
| 0x080520f4 5269 ldr r2, [r2, 0x14]
| 0x080520f6 51ea0261 orrs.w r1, r1, r2, lsl 24
| 0x080520fa 426b ldr r2, [r0, 0x34]
| 0x080520fc 9269 ldr r2, [r2, 0x18]
| 0x080520fe 1143 orrs r1, r2
| 0x08052100 0268 ldr r2, [r0]
| 0x08052102 9200 lsls r2, r2, 2
| 0x08052104 b2f1c042 subs.w r2, r2, 0x60000000
| 0x08052108 5160 str r1, [r2, 4]
| 0x0805210a c16a ldr r1, [r0, 0x2c]
| 0x0805210c b1f5804f cmp.w r1, 0x4000
| ,=< 0x08052110 1ad1 bne 0x8052148
| | 0x08052112 816b ldr r1, [r0, 0x38]
| | 0x08052114 0968 ldr r1, [r1]
| | 0x08052116 826b ldr r2, [r0, 0x38]
| | 0x08052118 5268 ldr r2, [r2, 4]
| | 0x0805211a 51ea0211 orrs.w r1, r1, r2, lsl 4
| | 0x0805211e 826b ldr r2, [r0, 0x38]
| | 0x08052120 9268 ldr r2, [r2, 8]
| | 0x08052122 51ea0221 orrs.w r1, r1, r2, lsl 8
| | 0x08052126 826b ldr r2, [r0, 0x38]
| | 0x08052128 1269 ldr r2, [r2, 0x10]
| | 0x0805212a 51ea0251 orrs.w r1, r1, r2, lsl 20
| | 0x0805212e 826b ldr r2, [r0, 0x38]
| | 0x08052130 5269 ldr r2, [r2, 0x14]
| | 0x08052132 51ea0261 orrs.w r1, r1, r2, lsl 24
| | 0x08052136 826b ldr r2, [r0, 0x38]
| | 0x08052138 9269 ldr r2, [r2, 0x18]
| | 0x0805213a 1143 orrs r1, r2
| | 0x0805213c 0068 ldr r0, [r0]
| | 0x0805213e dff84c20 ldr.w r2, [0x08052192] ; [0x8052190:4]=0xffffe
| | 0x08052142 42f82010 str.w r1, [r2, r0, lsl 2]
| ,==< 0x08052146 06e0 b 0x8052156
| |`-> 0x08052148 0068 ldr r0, [r0]
| | 0x0805214a dff84010 ldr.w r1, [0x08052192] ; [0x8052190:4]=0xffffe
| | 0x0805214e 7ff07042 mvns r2, 0xf0000000
| | 0x08052152 41f82020 str.w r2, [r1, r0, lsl 2]
\ `--> 0x08052156 7047 bx lr
/ (fcn) func_52158 52
| Caller: func_4729c
| func_52158 ();
| 0x08052158 c9b2 uxtb r1, r1
| 0x0805215a 0029 cmp r1, 0
| ,=< 0x0805215c 0ad0 beq 0x8052174
| | 0x0805215e 8100 lsls r1, r0, 2
| | 0x08052160 b1f1c041 subs.w r1, r1, 0x60000000
| | 0x08052164 0968 ldr r1, [r1]
| | 0x08052166 51f00101 orrs r1, r1, 1
| | 0x0805216a 8000 lsls r0, r0, 2
| | 0x0805216c b0f1c040 subs.w r0, r0, 0x60000000
| | 0x08052170 0160 str r1, [r0]
| ,==< 0x08052172 0ae0 b 0x805218a
| |`-> 0x08052174 8100 lsls r1, r0, 2
| | 0x08052176 b1f1c041 subs.w r1, r1, 0x60000000
| | 0x0805217a 0968 ldr r1, [r1]
| | 0x0805217c dff81020 ldr.w r2, [func_52194] ; [0x8052194:4]=0xd113421b
| | 0x08052180 1140 ands r1, r2
| | 0x08052182 8000 lsls r0, r0, 2
| | 0x08052184 b0f1c040 subs.w r0, r0, 0x60000000
| | 0x08052188 0160 str r1, [r0]
\ `--> 0x0805218a 7047 bx lr
/ (fcn) func_52194 22
| Caller: func_478d0
| func_52194 ();
| 0x08052194 1b42 tst r3, r3
| ,=< 0x08052196 13d1 bne 0x80521c0
| | 0x08052198 0942 tst r1, r1
| ,==< 0x0805219a 36d1 bne 0x805220a
| ,===< 0x0805219c 2ab1 cbz r2, 0x80521aa
| ||| 0x0805219e 8446 mov ip, r0
| ||| 0x080521a0 b0fbf2f0 udiv r0, r0, r2
| ||| 0x080521a4 02fb10c2 mls r2, r2, r0, ip
\ ||| 0x080521a8 7047 bx lr
/ (fcn) func_521c8 66
| func_521c8 ();
| 0x080521c8 70b5 push {r4, r5, r6, lr}
| 0x080521ca b1fa81f4 clz r4, r1
| 0x080521ce b3fa83f5 clz r5, r3
| 0x080521d2 2c1b subs r4, r5, r4
| 0x080521d4 a340 lsls r3, r4
| 0x080521d6 c4f12005 rsb.w r5, r4, 0x20
| 0x080521da 32fa05f6 lsrs.w r6, r2, r5
| 0x080521de 3343 orrs r3, r6
| 0x080521e0 a240 lsls r2, r4
| 0x080521e2 5ff00046 movs.w r6, -0x80000000
| 0x080521e6 e640 lsrs r6, r4
| ,=< 0x080521e8 02e0 b 0x80521f0
| .--> 0x080521ea 5b08 lsrs r3, r3, 1
| || 0x080521ec 5fea3202 rrxs r2, r2
| |`-> 0x080521f0 841a subs r4, r0, r2
| | 0x080521f2 71eb0305 sbcs.w r5, r1, r3
| |,=< 0x080521f6 24bf itt hs
| |`-> 0x080521f8 2046 mov r0, r4
| | 0x080521fa 2946 mov r1, r5
| | 0x080521fc 7641 adcs r6, r6
| `==< 0x080521fe f4d3 blo 0x80521ea
| 0x08052200 0200 movs r2, r0
| 0x08052202 0b00 movs r3, r1
| 0x08052204 3000 movs r0, r6
| 0x08052206 0021 movs r1, 0
\ 0x08052208 70bd pop {r4, r5, r6, pc}
/ (fcn) func_5220e 116
| func_5220e ();
| | 0x0805220e 70b5 push {r4, r5, r6, lr}
| | 0x08052210 140c lsrs r4, r2, 0x10
| ,==< 0x08052212 20d0 beq 0x8052256
| || 0x08052214 b1fa81f4 clz r4, r1
| || 0x08052218 b2fa82f5 clz r5, r2
| || 0x0805221c c4f12004 rsb.w r4, r4, 0x20
| || 0x08052220 6419 adds r4, r4, r5
| || 0x08052222 b4f12006 subs.w r6, r4, 0x20
| |`=< 0x08052226 d6d3 blo 0x80521d6 ; func_521c8+0xe
| | 0x08052228 b240 lsls r2, r6
| | 0x0805222a 5ff00044 movs.w r4, -0x80000000
| | 0x0805222e f440 lsrs r4, r6
| | 0x08052230 0025 movs r5, 0
| |,=< 0x08052232 02e0 b 0x805223a
| .---> 0x08052234 5208 lsrs r2, r2, 1
| ||| 0x08052236 5fea3303 rrxs r3, r3
| ||`-> 0x0805223a c61a subs r6, r0, r3
| || 0x0805223c 71eb020e sbcs.w lr, r1, r2
| ||,=< 0x08052240 24bf itt hs
| ||`-> 0x08052242 3046 mov r0, r6
| || 0x08052244 7146 mov r1, lr
| || 0x08052246 6441 adcs r4, r4
| || 0x08052248 6d41 adcs r5, r5
| `===< 0x0805224a f3d3 blo 0x8052234
| | 0x0805224c 0200 movs r2, r0
| | 0x0805224e 0b00 movs r3, r1
| | 0x08052250 2000 movs r0, r4
| | 0x08052252 2900 movs r1, r5
| | 0x08052254 70bd pop {r4, r5, r6, pc}
| `--> 0x08052256 0c46 mov r4, r1
| 0x08052258 b1fbf2f1 udiv r1, r1, r2
| 0x0805225c 02fb1145 mls r5, r2, r1, r4
| 0x08052260 2d04 lsls r5, r5, 0x10
| 0x08052262 45ea1045 orr.w r5, r5, r0, lsr 16
| 0x08052266 b5fbf2f4 udiv r4, r5, r2
| 0x0805226a 02fb1455 mls r5, r2, r4, r5
| 0x0805226e 80b2 uxth r0, r0
| 0x08052270 40ea0545 orr.w r5, r0, r5, lsl 16
| 0x08052274 b5fbf2f0 udiv r0, r5, r2
| 0x08052278 02fb1052 mls r2, r2, r0, r5
| 0x0805227c 40ea0440 orr.w r0, r0, r4, lsl 16
\ 0x08052280 70bd pop {r4, r5, r6, pc}
/ (fcn) func_52284 50
| Caller: func_47a52 func_47a84 func_47ab6
| func_52284 ();
| 0x08052284 30b4 push {r4, r5}
| 0x08052286 0023 movs r3, 0
| 0x08052288 0022 movs r2, 0
| 0x0805228a 284c ldr r4, [0x0805232e] ; [0x805232c:4]=0x40007400 io_DAC
| 0x0805228c 2468 ldr r4, [r4]
| 0x0805228e 2300 movs r3, r4
| 0x08052290 40f6fe74 movw r4, 0xffe ; 4094
| 0x08052294 8440 lsls r4, r0
| 0x08052296 a343 bics r3, r4
| 0x08052298 0c68 ldr r4, [r1]
| 0x0805229a 4d68 ldr r5, [r1, 4]
| 0x0805229c 2c43 orrs r4, r5
| 0x0805229e 8d68 ldr r5, [r1, 8]
| 0x080522a0 2c43 orrs r4, r5
| 0x080522a2 c968 ldr r1, [r1, 0xc]
| 0x080522a4 2143 orrs r1, r4
| 0x080522a6 0a00 movs r2, r1
| 0x080522a8 12fa00f0 lsls.w r0, r2, r0
| 0x080522ac 0343 orrs r3, r0
| 0x080522ae 1f48 ldr r0, [0x0805232e] ; [0x805232c:4]=0x40007400 io_DAC
| 0x080522b0 0360 str r3, [r0]
| 0x080522b2 30bc pop {r4, r5}
\ 0x080522b4 7047 bx lr
/ (fcn) clear_16_bytes_from_R0 18
| Caller: func_47a52 func_47a84 func_47ab6
| clear_16_bytes_from_R0 ();
| 0x080522b6 0021 movs r1, 0
| 0x080522b8 0160 str r1, [r0]
| 0x080522ba 0021 movs r1, 0
| 0x080522bc 4160 str r1, [r0, 4]
| 0x080522be 0021 movs r1, 0
| 0x080522c0 8160 str r1, [r0, 8]
| 0x080522c2 0021 movs r1, 0
| 0x080522c4 c160 str r1, [r0, 0xc]
\ 0x080522c6 7047 bx lr
/ (fcn) func_522c8 44
| Caller: func_47a84 func_47ab6 SomethingWithChannelInfo2 func_47cec func_47a52
| TimerIRQ_Sub8 WaitAndDoSomethingWithGPIOC TimerIRQ_Sub1
| func_522c8 ();
| 0x080522c8 c9b2 uxtb r1, r1
| 0x080522ca 0029 cmp r1, 0
| ,=< 0x080522cc 08d0 beq 0x80522e0
| | 0x080522ce 1749 ldr r1, [0x0805232e] ; [0x805232c:4]=0x40007400 io_DAC
| | 0x080522d0 0968 ldr r1, [r1]
| | 0x080522d2 0122 movs r2, 1 ; 1
| | 0x080522d4 12fa00f0 lsls.w r0, r2, r0
| | 0x080522d8 0843 orrs r0, r1
| | 0x080522da 1449 ldr r1, [0x0805232e] ; [0x805232c:4]=0x40007400 io_DAC
| | 0x080522dc 0860 str r0, [r1]
| ,==< 0x080522de 08e0 b 0x80522f2
| |`-> 0x080522e0 1249 ldr r1, [0x0805232c] ; [0x805232c:4]=0x40007400 io_DAC
| | 0x080522e2 0968 ldr r1, [r1]
| | 0x080522e4 0122 movs r2, 1 ; 1
| | 0x080522e6 12fa00f0 lsls.w r0, r2, r0
| | 0x080522ea 31ea0000 bics.w r0, r1, r0
| | 0x080522ee 0f49 ldr r1, [0x0805232e] ; [0x805232c:4]=0x40007400 io_DAC
| | 0x080522f0 0860 str r0, [r1]
\ `--> 0x080522f2 7047 bx lr
/ (fcn) TimerIRQ_Sub7_writes_DAC 28
| Caller: TimerIRQ_Sub8 func_47cec SomethingWithChannelInfo2 func_47ab6 WaitAndDoSomethingWithGPIOC
| c5000_wr_60_5 TIM6_DAC_IRQHandler TimerIRQ_Sub1
| TimerIRQ_Sub7_writes_DAC ();
| 0x080522f4 81b0 sub sp, 4
| 0x080522f6 0022 movs r2, 0
| 0x080522f8 0092 str r2, [sp]
| 0x080522fa 0c4a ldr r2, [0x0805232e] ; [0x805232c:4]=0x40007400 io_DAC
| 0x080522fc 0092 str r2, [sp]
| 0x080522fe 009a ldr r2, [sp]
| 0x08052300 0830 adds r0, 8
| 0x08052302 8018 adds r0, r0, r2
| 0x08052304 0090 str r0, [sp]
| 0x08052306 0098 ldr r0, [sp]
| 0x08052308 89b2 uxth r1, r1
| 0x0805230a 0160 str r1, [r0]
| 0x0805230c 01b0 add sp, 4
\ 0x0805230e 7047 bx lr
/ (fcn) SomethingElseWritingDAC 28
| Caller: func_47a52 func_47a84
| SomethingElseWritingDAC ();
| 0x08052310 81b0 sub sp, 4
| 0x08052312 0022 movs r2, 0
| 0x08052314 0092 str r2, [sp]
| 0x08052316 054a ldr r2, [0x0805232e] ; [0x805232c:4]=0x40007400 io_DAC
| 0x08052318 0092 str r2, [sp]
| 0x0805231a 009a ldr r2, [sp]
| 0x0805231c 1430 adds r0, 0x14
| 0x0805231e 8018 adds r0, r0, r2
| 0x08052320 0090 str r0, [sp]
| 0x08052322 0098 ldr r0, [sp]
| 0x08052324 89b2 uxth r1, r1
| 0x08052326 0160 str r1, [r0]
| 0x08052328 01b0 add sp, 4
\ 0x0805232a 7047 bx lr
/ (fcn) func_52330 34
| Caller: func_4838c
| func_52330 ();
| | 0x08052330 8142 cmp r1, r0
| ,==< 0x08052332 3abf itte lo
| `--> 0x08052334 5318 adds r3, r2, r1
| | 0x08052336 9842 cmp r0, r3
| `=< 0x08052338 e0f778bc b.w gfx_memcpy
| 0x0805233c 8018 adds r0, r0, r2
| .-> 0x0805233e 9907 lsls r1, r3, 0x1e
| ,==< 0x08052340 07d0 beq 0x8052352
| || 0x08052342 521e subs r2, r2, 1
| ,===< 0x08052344 24bf itt hs
| `---> 0x08052346 13f8011d ldrb r1, [r3, -0x1]!
| || 0x0805234a 00f8011d strb r1, [r0, -0x1]!
| |`=< 0x0805234e f6d8 bhi 0x805233e
\ | 0x08052350 7047 bx lr
/ (fcn) func_523a8 32
| Caller: func_4841e
| func_523a8 ();
| 0x080523a8 80b5 push {r7, lr}
| 0x080523aa 00b2 sxth r0, r0
| 0x080523ac e5f762fb bl func_37a74
| 0x080523b0 00b2 sxth r0, r0
| 0x080523b2 0028 cmp r0, 0
| ,=< 0x080523b4 05d0 beq 0x80523c2
| | 0x080523b6 00b2 sxth r0, r0
| | 0x080523b8 e0f754fb bl gfx_draw_sub_32a64
| | 0x080523bc b0f91800 ldrsh.w r0, [r0, 0x18]
| ,==< 0x080523c0 00e0 b 0x80523c4
| |`-> 0x080523c2 0020 movs r0, 0
| `--> 0x080523c4 00b2 sxth r0, r0
\ 0x080523c6 02bd pop {r1, pc}
/ (fcn) func_523c8 16
| Caller: func_4851e func_486be func_48832
| func_523c8 ();
| 0x080523c8 80b5 push {r7, lr}
| 0x080523ca 03f007f8 bl func_553dc_gfx
| 0x080523ce 03f01bf8 bl func_55408_gfx
| 0x080523d2 caf723ff bl gfx_1d21c
\ 0x080523d6 01bd pop {r0, pc}
/ (fcn) func_523d8 34
| Caller: func_4851e
| func_523d8 ();
| 0x080523d8 10b5 push {r4, lr}
| 0x080523da 0400 movs r4, r0
| 0x080523dc 2000 movs r0, r4
| 0x080523de 00b2 sxth r0, r0
| 0x080523e0 e0f740fb bl gfx_draw_sub_32a64
| 0x080523e4 8189 ldrh r1, [r0, 0xc]
| 0x080523e6 491e subs r1, r1, 1
| 0x080523e8 8181 strh r1, [r0, 0xc]
| 0x080523ea 09b2 sxth r1, r1
| 0x080523ec 0029 cmp r1, 0
| ,=< 0x080523ee 03d1 bne 0x80523f8
| | 0x080523f0 2000 movs r0, r4
| | 0x080523f2 00b2 sxth r0, r0
| | 0x080523f4 e0f786fb bl gfx_32b04
\ `-> 0x080523f8 10bd pop {r4, pc}
/ (fcn) func_523fa 50
| func_523fa ();
| 0x080523fa 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x080523fe 0400 movs r4, r0
| 0x08052400 0d00 movs r5, r1
| 0x08052402 1600 movs r6, r2
| 0x08052404 1f00 movs r7, r3
| 0x08052406 ddf81880 ldr.w r8, [sp, 0x18]
| .-> 0x0805240a 3b00 movs r3, r7
| | 0x0805240c 3200 movs r2, r6
| | 0x0805240e 2900 movs r1, r5
| | 0x08052410 2000 movs r0, r4
| | 0x08052412 d4f808c0 ldr.w ip, [r4, 8]
| | 0x08052416 dcf804c0 ldr.w ip, [ip, 4]
| | 0x0805241a e047 blx ip
| | 0x0805241c 761c adds r6, r6, 1
| | 0x0805241e b8f10108 subs.w r8, r8, 1
| | 0x08052422 b8f1000f cmp.w r8, 0
| `=< 0x08052426 f0d1 bne 0x805240a
\ 0x08052428 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) func_5242c 48
| func_5242c ();
| 0x0805242c 10b4 push {r4}
| 0x0805242e b0f90030 ldrsh.w r3, [r0]
| 0x08052432 c91a subs r1, r1, r3
| 0x08052434 10f11403 adds.w r3, r0, 0x14
| 0x08052438 b0f90240 ldrsh.w r4, [r0, 2]
| 0x0805243c 121b subs r2, r2, r4
| 0x0805243e 0069 ldr r0, [r0, 0x10]
| 0x08052440 00fb0233 mla r3, r0, r2, r3
| 0x08052444 13ebe103 adds.w r3, r3, r1, asr 3
| 0x08052448 1878 ldrb r0, [r3]
| 0x0805244a 8022 movs r2, 0x80 ; 128
| 0x0805244c 11f00701 ands r1, r1, 7
| 0x08052450 32fa01f1 lsrs.w r1, r2, r1
| 0x08052454 0843 orrs r0, r1
| 0x08052456 1870 strb r0, [r3]
| 0x08052458 10bc pop {r4}
\ 0x0805245a 7047 bx lr
/ (fcn) func_5245c 112
| func_5245c ();
| 0x0805245c 70b5 push {r4, r5, r6, lr}
| 0x0805245e b0f90040 ldrsh.w r4, [r0]
| 0x08052462 091b subs r1, r1, r4
| 0x08052464 10f11404 adds.w r4, r0, 0x14
| 0x08052468 b0f90250 ldrsh.w r5, [r0, 2]
| 0x0805246c 521b subs r2, r2, r5
| 0x0805246e 0069 ldr r0, [r0, 0x10]
| 0x08052470 00fb0244 mla r4, r0, r2, r4
| 0x08052474 14ebe104 adds.w r4, r4, r1, asr 3
| 0x08052478 5818 adds r0, r3, r1
| 0x0805247a 401e subs r0, r0, 1
| 0x0805247c c210 asrs r2, r0, 3
| 0x0805247e b2ebe105 subs.w r5, r2, r1, asr 3
| 0x08052482 ff22 movs r2, 0xff ; 255
| 0x08052484 11f00701 ands r1, r1, 7
| 0x08052488 32fa01f1 lsrs.w r1, r2, r1
| 0x0805248c ff22 movs r2, 0xff ; 255
| 0x0805248e 10f00700 ands r0, r0, 7
| 0x08052492 d0f10700 rsbs.w r0, r0, 7
| 0x08052496 12fa00f6 lsls.w r6, r2, r0
| 0x0805249a 002d cmp r5, 0
| ,=< 0x0805249c 04d1 bne 0x80524a8
| | 0x0805249e 2078 ldrb r0, [r4]
| | 0x080524a0 3140 ands r1, r6
| | 0x080524a2 0843 orrs r0, r1
| | 0x080524a4 2070 strb r0, [r4]
| ,==< 0x080524a6 10e0 b 0x80524ca
| |`-> 0x080524a8 2000 movs r0, r4
| | 0x080524aa 441c adds r4, r0, 1
| | 0x080524ac 0278 ldrb r2, [r0]
| | 0x080524ae 1143 orrs r1, r2
| | 0x080524b0 0170 strb r1, [r0]
| | 0x080524b2 6d1e subs r5, r5, 1
| | 0x080524b4 012d cmp r5, 1 ; 1
| |,=< 0x080524b6 05db blt 0x80524c4
| || 0x080524b8 2a00 movs r2, r5
| || 0x080524ba ff21 movs r1, 0xff ; 255
| || 0x080524bc 2000 movs r0, r4
| || 0x080524be 01f0d9fa bl func_53a74
| || 0x080524c2 2c19 adds r4, r5, r4
| |`-> 0x080524c4 2078 ldrb r0, [r4]
| | 0x080524c6 3043 orrs r0, r6
| | 0x080524c8 2070 strb r0, [r4]
\ `--> 0x080524ca 70bd pop {r4, r5, r6, pc}
/ (fcn) func_524cc 22
| func_524cc ();
| 0x080524cc 80b5 push {r7, lr}
| 0x080524ce b0f90610 ldrsh.w r1, [r0, 6]
| 0x080524d2 0269 ldr r2, [r0, 0x10]
| 0x080524d4 02fb01f2 mul r2, r2, r1
| 0x080524d8 0021 movs r1, 0
| 0x080524da 1430 adds r0, 0x14
| 0x080524dc 01f0cafa bl func_53a74
\ 0x080524e0 01bd pop {r0, pc}
/ (fcn) func_524e2 170
| func_524e2 ();
| 0x080524e2 70b4 push {r4, r5, r6}
| 0x080524e4 0b68 ldr r3, [r1]
| 0x080524e6 b0f90450 ldrsh.w r5, [r0, 4]
| 0x080524ea 10f11404 adds.w r4, r0, 0x14
| 0x080524ee b0f90660 ldrsh.w r6, [r0, 6]
| 0x080524f2 b242 cmp r2, r6
| ,=< 0x080524f4 01db blt 0x80524fa
| | 0x080524f6 0020 movs r0, 0
| ,==< 0x080524f8 46e0 b 0x8052588
| |`-> 0x080524fa 0069 ldr r0, [r0, 0x10]
| | 0x080524fc 00fb0244 mla r4, r0, r2, r4
| | 0x08052500 14ebe304 adds.w r4, r4, r3, asr 3
| | 0x08052504 ab42 cmp r3, r5
| |,=< 0x08052506 01db blt 0x805250c
| || 0x08052508 0020 movs r0, 0
| ,===< 0x0805250a 3de0 b 0x8052588
| ||`-> 0x0805250c 681e subs r0, r5, 1
| || 0x0805250e c010 asrs r0, r0, 3
| || 0x08052510 b0ebe302 subs.w r2, r0, r3, asr 3
| || 0x08052514 2078 ldrb r0, [r4]
| || 0x08052516 13f00705 ands r5, r3, 7
| || 0x0805251a 10fa05f5 lsls.w r5, r0, r5
| || 0x0805251e 641c adds r4, r4, 1
| ||,=< 0x08052520 06e0 b 0x8052530
| .----> 0x08052522 2578 ldrb r5, [r4]
| |||| 0x08052524 641c adds r4, r4, 1
| |||| 0x08052526 521e subs r2, r2, 1
| |||| 0x08052528 13f10800 adds.w r0, r3, 8
| |||| 0x0805252c 30f00703 bics r3, r0, 7
| |||`-> 0x08052530 edb2 uxtb r5, r5
| ||| 0x08052532 002d cmp r5, 0
| |||,=< 0x08052534 05d1 bne 0x8052542
| |||| 0x08052536 002a cmp r2, 0
| `====< 0x08052538 f3d1 bne 0x8052522
| ||| 0x0805253a 0020 movs r0, 0
| ,====< 0x0805253c 24e0 b 0x8052588
| .-----> 0x0805253e 6d00 lsls r5, r5, 1
| ||||| 0x08052540 5b1c adds r3, r3, 1
| ||||`-> 0x08052542 2806 lsls r0, r5, 0x18
| `=====< 0x08052544 fbd5 bpl 0x805253e
| ||| 0x08052546 edb2 uxtb r5, r5
| ||| 0x08052548 ff2d cmp r5, 0xff ; 255
| |||,=< 0x0805254a 05d0 beq 0x8052558
| |||| 0x0805254c 1800 movs r0, r3
| .-----> 0x0805254e 6e06 lsls r6, r5, 0x19
| ,======< 0x08052550 03d5 bpl 0x805255a
| |||||| 0x08052552 6d00 lsls r5, r5, 1
| |||||| 0x08052554 401c adds r0, r0, 1
| |`=====< 0x08052556 fae7 b 0x805254e
| | |||`-> 0x08052558 d81d adds r0, r3, 7
| `------> 0x0805255a 10f00705 ands r5, r0, 7
| ||| 0x0805255e 072d cmp r5, 7 ; 7
| |||,=< 0x08052560 0fd1 bne 0x8052582
| ,=====< 0x08052562 00e0 b 0x8052566
| .------> 0x08052564 0830 adds r0, 8
| |`-----> 0x08052566 521e subs r2, r2, 1
| | |||| 0x08052568 002a cmp r2, 0
| |,=====< 0x0805256a 0ad4 bmi 0x8052582
| |||||| 0x0805256c 2578 ldrb r5, [r4]
| |||||| 0x0805256e 641c adds r4, r4, 1
| |||||| 0x08052570 2e00 movs r6, r5
| |||||| 0x08052572 f6b2 uxtb r6, r6
| |||||| 0x08052574 ff2e cmp r6, 0xff ; 255
| `======< 0x08052576 f5d0 beq 0x8052564
| .------> 0x08052578 2a06 lsls r2, r5, 0x18
| ,=======< 0x0805257a 02d5 bpl 0x8052582
| ||||||| 0x0805257c 6d00 lsls r5, r5, 1
| ||||||| 0x0805257e 401c adds r0, r0, 1
| |`======< 0x08052580 fae7 b 0x8052578
| `-`---`-> 0x08052582 0b60 str r3, [r1]
| ||| 0x08052584 c01a subs r0, r0, r3
| ||| 0x08052586 401c adds r0, r0, 1
| ```--> 0x08052588 70bc pop {r4, r5, r6}
\ 0x0805258a 7047 bx lr
/ (fcn) func_5258c 10
| func_5258c ();
| 0x0805258c 80b5 push {r7, lr}
| 0x0805258e 00b2 sxth r0, r0
| 0x08052590 e0f7b8fa bl gfx_32b04
\ 0x08052594 01bd pop {r0, pc}
/ (fcn) func_52596 90
| Caller: func_4855c
| func_52596 ();
| 0x08052596 2de9f047 push.w {r4, r5, r6, r7, r8, sb, sl, lr}
| 0x0805259a 0400 movs r4, r0
| 0x0805259c 0d00 movs r5, r1
| 0x0805259e 1600 movs r6, r2
| 0x080525a0 1f00 movs r7, r3
| 0x080525a2 ddf82080 ldr.w r8, [sp, 0x20]
| 0x080525a6 16f10f00 adds.w r0, r6, 0xf
| 0x080525aa 0011 asrs r0, r0, 4
| 0x080525ac 5fea4009 lsls.w sb, r0, 1
| 0x080525b0 09fb07f0 mul r0, sb, r7
| 0x080525b4 1430 adds r0, 0x14
| 0x080525b6 00b2 sxth r0, r0
| 0x080525b8 e0f7d2fb bl gfx_32d60
| 0x080525bc 8246 mov sl, r0
| 0x080525be 0ffa8afa sxth.w sl, sl
| 0x080525c2 baf1000f cmp.w sl, 0
| ,=< 0x080525c6 01d1 bne 0x80525cc
| | 0x080525c8 0020 movs r0, 0
| ,==< 0x080525ca 0fe0 b 0x80525ec
| |`-> 0x080525cc 5046 mov r0, sl
| | 0x080525ce 00b2 sxth r0, r0
| | 0x080525d0 e0f748fa bl gfx_draw_sub_32a64
| | 0x080525d4 0480 strh r4, [r0]
| | 0x080525d6 4580 strh r5, [r0, 2]
| | 0x080525d8 8680 strh r6, [r0, 4]
| | 0x080525da c780 strh r7, [r0, 6]
| | 0x080525dc 0449 ldr r1, [0x080525f0] ; [0x80525f0:4]=0x80d005c
| | 0x080525de 8160 str r1, [r0, 8]
| | 0x080525e0 0121 movs r1, 1 ; 1
| | 0x080525e2 8181 strh r1, [r0, 0xc]
| | 0x080525e4 c0f81090 str.w sb, [r0, 0x10]
| | 0x080525e8 5046 mov r0, sl
| | 0x080525ea 00b2 sxth r0, r0
\ `--> 0x080525ec bde8f087 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}
/ (fcn) func_525f4 40
| Caller: func_489c8
| func_525f4 ();
| 0x080525f4 38b5 push {r3, r4, r5, lr}
| 0x080525f6 0400 movs r4, r0
| 0x080525f8 0d00 movs r5, r1
| 0x080525fa 2000 movs r0, r4
| 0x080525fc 00b2 sxth r0, r0
| 0x080525fe e0f731fa bl gfx_draw_sub_32a64
| 0x08052602 0100 movs r1, r0
| 0x08052604 ac80 strh r4, [r5, 4]
| 0x08052606 0869 ldr r0, [r1, 0x10]
| 0x08052608 0028 cmp r0, 0
| ,=< 0x0805260a 03d0 beq 0x8052614
| | 0x0805260c 2800 movs r0, r5
| | 0x0805260e 0969 ldr r1, [r1, 0x10]
| | 0x08052610 8847 blx r1
| ,==< 0x08052612 02e0 b 0x805261a
| |`-> 0x08052614 2800 movs r0, r5
| | 0x08052616 caf70ffe bl gfx_1d238
\ `--> 0x0805261a 31bd pop {r0, r4, r5, pc}
/ (fcn) func_5266c 6
| Caller: gfx_48a36
| func_5266c ();
| 0x0805266c 0248 ldr r0, [0x08052678] ; [0x8052678:4]=0x2001da1c gfx_info
| 0x0805266e 0088 ldrh r0, [r0]
\ 0x08052670 7047 bx lr
/ (fcn) func_52672 6
| Caller: gfx_48a42
| func_52672 ();
| 0x08052672 0148 ldr r0, [0x0805267a] ; [0x8052678:4]=0x2001da1c gfx_info
| 0x08052674 4088 ldrh r0, [r0, 2]
\ 0x08052676 7047 bx lr
/ (fcn) func_5267c 234
| Caller: func_48ade
| func_5267c ();
| 0x0805267c 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x08052680 85b0 sub sp, 0x14
| 0x08052682 0400 movs r4, r0
| 0x08052684 0d00 movs r5, r1
| 0x08052686 5ff00009 movs.w sb, 0
| 0x0805268a 0026 movs r6, 0
| 0x0805268c 0427 movs r7, 4 ; 4
| 0x0805268e dff8d880 ldr.w r8, [0x0805276e] ; [0x805276c:4]=0xf4240
| 0x08052692 a088 ldrh r0, [r4, 4]
| 0x08052694 8146 mov sb, r0
| 0x08052696 4ff6c070 movw r0, 0xffc0
| 0x0805269a 10ea0909 ands.w sb, r0, sb
| 0x0805269e 00a8 add r0, sp, 0
| 0x080526a0 e4f791f9 bl func_369c6
| 0x080526a4 0298 ldr r0, [sp, 8]
| 0x080526a6 8046 mov r8, r0
| 0x080526a8 3048 ldr r0, [0x0805276c] ; [0x805276c:4]=0xf4240
| 0x080526aa b8fbf0f0 udiv r0, r8, r0
| 0x080526ae 0600 movs r6, r0
| 0x080526b0 56ea0909 orrs.w sb, r6, sb
| 0x080526b4 a4f80490 strh.w sb, [r4, 4]
| 0x080526b8 2088 ldrh r0, [r4]
| 0x080526ba 4ff6fe71 movw r1, 0xfffe
| 0x080526be 0840 ands r0, r1
| 0x080526c0 2080 strh r0, [r4]
| 0x080526c2 5ff00009 movs.w sb, 0
| 0x080526c6 2868 ldr r0, [r5]
| 0x080526c8 2949 ldr r1, [0x08052770] ; [0x8052770:4]=0x186a1
| 0x080526ca 8842 cmp r0, r1
| ,=< 0x080526cc 0cd2 bhs 0x80526e8
| | 0x080526ce 2868 ldr r0, [r5]
| | 0x080526d0 4000 lsls r0, r0, 1
| | 0x080526d2 b8fbf0f7 udiv r7, r8, r0
| | 0x080526d6 bfb2 uxth r7, r7
| | 0x080526d8 042f cmp r7, 4 ; 4
| ,==< 0x080526da 00d2 bhs 0x80526de
| || 0x080526dc 0427 movs r7, 4 ; 4
| `--> 0x080526de 57ea0909 orrs.w sb, r7, sb
| | 0x080526e2 701c adds r0, r6, 1
| | 0x080526e4 2084 strh r0, [r4, 0x20]
| ,==< 0x080526e6 24e0 b 0x8052732
| |`-> 0x080526e8 e888 ldrh r0, [r5, 6]
| | 0x080526ea 4bf6ff71 movw r1, 0xbfff
| | 0x080526ee 8842 cmp r0, r1
| |,=< 0x080526f0 05d1 bne 0x80526fe
| || 0x080526f2 2868 ldr r0, [r5]
| || 0x080526f4 0321 movs r1, 3 ; 3
| || 0x080526f6 4843 muls r0, r1, r0
| || 0x080526f8 b8fbf0f7 udiv r7, r8, r0
| ,===< 0x080526fc 06e0 b 0x805270c
| ||`-> 0x080526fe 2868 ldr r0, [r5]
| || 0x08052700 1921 movs r1, 0x19 ; 25
| || 0x08052702 4843 muls r0, r1, r0
| || 0x08052704 b8fbf0f7 udiv r7, r8, r0
| || 0x08052708 57f48047 orrs r7, r7, 0x4000
| `---> 0x0805270c 3805 lsls r0, r7, 0x14
| |,=< 0x0805270e 01d1 bne 0x8052714
| || 0x08052710 57f00107 orrs r7, r7, 1
| |`-> 0x08052714 57f40040 orrs r0, r7, 0x8000
| | 0x08052718 50ea0909 orrs.w sb, r0, sb
| | 0x0805271c b6b2 uxth r6, r6
| | 0x0805271e 4ff49670 mov.w r0, 0x12c ; 300
| | 0x08052722 00fb06f0 mul r0, r0, r6
| | 0x08052726 4ff47a71 mov.w r1, 0x3e8 ; 1000
| | 0x0805272a 90fbf1f0 sdiv r0, r0, r1
| | 0x0805272e 401c adds r0, r0, 1
| | 0x08052730 2084 strh r0, [r4, 0x20]
| `--> 0x08052732 a4f81c90 strh.w sb, [r4, 0x1c]
| 0x08052736 2088 ldrh r0, [r4]
| 0x08052738 50f00100 orrs r0, r0, 1
| 0x0805273c 2080 strh r0, [r4]
| 0x0805273e b4f80090 ldrh.w sb, [r4]
| 0x08052742 4ff6f530 movw r0, 0xfbf5
| 0x08052746 10ea0909 ands.w sb, r0, sb
| 0x0805274a a888 ldrh r0, [r5, 4]
| 0x0805274c 6989 ldrh r1, [r5, 0xa]
| 0x0805274e 0843 orrs r0, r1
| 0x08052750 50ea0909 orrs.w sb, r0, sb
| 0x08052754 a4f80090 strh.w sb, [r4]
| 0x08052758 a889 ldrh r0, [r5, 0xc]
| 0x0805275a 2989 ldrh r1, [r5, 8]
| 0x0805275c 0843 orrs r0, r1
| 0x0805275e 2081 strh r0, [r4, 8]
| 0x08052760 05b0 add sp, 0x14
\ 0x08052762 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_52774 28
| Caller: func_48ade
| func_52774 ();
| 0x08052774 c9b2 uxtb r1, r1
| 0x08052776 0029 cmp r1, 0
| ,=< 0x08052778 04d0 beq 0x8052784
| | 0x0805277a 0188 ldrh r1, [r0]
| | 0x0805277c 51f00101 orrs r1, r1, 1
| | 0x08052780 0180 strh r1, [r0]
| ,==< 0x08052782 04e0 b 0x805278e
| |`-> 0x08052784 0188 ldrh r1, [r0]
| | 0x08052786 4ff6fe72 movw r2, 0xfffe
| | 0x0805278a 1140 ands r1, r2
| | 0x0805278c 0180 strh r1, [r0]
\ `--> 0x0805278e 7047 bx lr
/ (fcn) func_52790 28
| Caller: func_48b98 func_48cca
| func_52790 ();
| 0x08052790 c9b2 uxtb r1, r1
| 0x08052792 0029 cmp r1, 0
| ,=< 0x08052794 04d0 beq 0x80527a0
| | 0x08052796 0188 ldrh r1, [r0]
| | 0x08052798 51f48071 orrs r1, r1, 0x100
| | 0x0805279c 0180 strh r1, [r0]
| ,==< 0x0805279e 04e0 b 0x80527aa
| |`-> 0x080527a0 0188 ldrh r1, [r0]
| | 0x080527a2 4ff6ff62 movw r2, 0xfeff
| | 0x080527a6 1140 ands r1, r2
| | 0x080527a8 0180 strh r1, [r0]
\ `--> 0x080527aa 7047 bx lr
/ (fcn) func_527ac 28
| Caller: func_48b98 func_48cca
| func_527ac ();
| 0x080527ac c9b2 uxtb r1, r1
| 0x080527ae 0029 cmp r1, 0
| ,=< 0x080527b0 04d0 beq 0x80527bc
| | 0x080527b2 0188 ldrh r1, [r0]
| | 0x080527b4 51f40071 orrs r1, r1, 0x200
| | 0x080527b8 0180 strh r1, [r0]
| ,==< 0x080527ba 04e0 b 0x80527c6
| |`-> 0x080527bc 0188 ldrh r1, [r0]
| | 0x080527be 4ff6ff52 movw r2, 0xfdff
| | 0x080527c2 1140 ands r1, r2
| | 0x080527c4 0180 strh r1, [r0]
\ `--> 0x080527c6 7047 bx lr
/ (fcn) func_527c8 22
| Caller: func_48b98 func_48cca
| func_527c8 ();
| 0x080527c8 d2b2 uxtb r2, r2
| 0x080527ca 002a cmp r2, 0
| ,=< 0x080527cc 02d0 beq 0x80527d4
| | 0x080527ce 51f00101 orrs r1, r1, 1
| ,==< 0x080527d2 01e0 b 0x80527d8
| |`-> 0x080527d4 11f0fe01 ands r1, r1, 0xfe
| `--> 0x080527d8 c9b2 uxtb r1, r1
| 0x080527da 0182 strh r1, [r0, 0x10]
\ 0x080527dc 7047 bx lr
/ (fcn) func_527de 6
| Caller: func_48b98 func_48cca
| func_527de ();
| 0x080527de c9b2 uxtb r1, r1
| 0x080527e0 0182 strh r1, [r0, 0x10]
\ 0x080527e2 7047 bx lr
/ (fcn) func_527e4 6
| Caller: func_48b98
| func_527e4 ();
| 0x080527e4 008a ldrh r0, [r0, 0x10]
| 0x080527e6 c0b2 uxtb r0, r0
\ 0x080527e8 7047 bx lr
/ (fcn) func_527ea 52
| Caller: func_48b98 func_48cca
| func_527ea ();
| 0x080527ea 70b4 push {r4, r5, r6}
| 0x080527ec 0023 movs r3, 0
| 0x080527ee 0024 movs r4, 0
| 0x080527f0 0025 movs r5, 0
| 0x080527f2 0022 movs r2, 0
| 0x080527f4 868a ldrh r6, [r0, 0x14]
| 0x080527f6 3400 movs r4, r6
| 0x080527f8 008b ldrh r0, [r0, 0x18]
| 0x080527fa 0500 movs r5, r0
| 0x080527fc 2d04 lsls r5, r5, 0x10
| 0x080527fe 55ea0400 orrs.w r0, r5, r4
| 0x08052802 0002 lsls r0, r0, 8
| 0x08052804 000a lsrs r0, r0, 8
| 0x08052806 0300 movs r3, r0
| 0x08052808 11ea0300 ands.w r0, r1, r3
| 0x0805280c 8842 cmp r0, r1
| ,=< 0x0805280e 01d1 bne 0x8052814
| | 0x08052810 0122 movs r2, 1 ; 1
| ,==< 0x08052812 00e0 b 0x8052816
| |`-> 0x08052814 0022 movs r2, 0
| `--> 0x08052816 1000 movs r0, r2
| 0x08052818 c0b2 uxtb r0, r0
| 0x0805281a 70bc pop {r4, r5, r6}
\ 0x0805281c 7047 bx lr
/ (fcn) func_5281e 66
| Caller: func_48b98 func_48cca
| func_5281e ();
| 0x0805281e 82b0 sub sp, 8
| 0x08052820 0200 movs r2, r0
| 0x08052822 0020 movs r0, 0
| 0x08052824 0023 movs r3, 0
| 0x08052826 0193 str r3, [sp, 4]
| 0x08052828 0023 movs r3, 0
| 0x0805282a 0093 str r3, [sp]
| 0x0805282c 0092 str r2, [sp]
| 0x0805282e 0a0f lsrs r2, r1, 0x1c
| 0x08052830 0192 str r2, [sp, 4]
| 0x08052832 0902 lsls r1, r1, 8
| 0x08052834 090a lsrs r1, r1, 8
| 0x08052836 019a ldr r2, [sp, 4]
| 0x08052838 002a cmp r2, 0
| ,=< 0x0805283a 03d0 beq 0x8052844
| | 0x0805283c 0098 ldr r0, [sp]
| | 0x0805283e 1430 adds r0, 0x14
| | 0x08052840 0090 str r0, [sp]
| ,==< 0x08052842 03e0 b 0x805284c
| |`-> 0x08052844 090c lsrs r1, r1, 0x10
| | 0x08052846 0098 ldr r0, [sp]
| | 0x08052848 1830 adds r0, 0x18
| | 0x0805284a 0090 str r0, [sp]
| `--> 0x0805284c 0098 ldr r0, [sp]
| 0x0805284e 0068 ldr r0, [r0]
| 0x08052850 0842 tst r0, r1
| ,=< 0x08052852 01d0 beq 0x8052858
| | 0x08052854 0120 movs r0, 1 ; 1
| ,==< 0x08052856 00e0 b 0x805285a
| |`-> 0x08052858 0020 movs r0, 0
| `--> 0x0805285a c0b2 uxtb r0, r0
| 0x0805285c 02b0 add sp, 8
\ 0x0805285e 7047 bx lr
/ (fcn) func_52860 212
| Caller: func_48f92 func_48f32_uses_io_RTC
| func_52860 ();
| 0x08052860 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x08052862 344f ldr r7, [0x08052936] ; [0x8052934:4]=0x200036e8
| 0x08052864 3846 mov r0, r7
| 0x08052866 02f0dffd bl func_55428_dummy
| 0x0805286a 0446 mov r4, r0
| 0x0805286c 381d adds r0, r7, 4
| 0x0805286e 02f0dbfd bl func_55428_dummy
| 0x08052872 0546 mov r5, r0
| 0x08052874 07f10800 add.w r0, r7, 8
| 0x08052878 02f0d6fd bl func_55428_dummy
| 0x0805287c 0646 mov r6, r0
| 0x0805287e 07f10c00 add.w r0, r7, 0xc
| 0x08052882 02f0d1fd bl func_55428_dummy
| 0x08052886 2c49 ldr r1, [0x0805293a] ; [0x8052938:4]=0x3c6ef35f
| 0x08052888 2c4a ldr r2, [0x0805293c] ; [0x805293c:4]=0x19660d
| 0x0805288a 2378 ldrb r3, [r4]
| 0x0805288c 002b cmp r3, 0
| ,=< 0x0805288e 40d1 bne 0x8052912
| | 0x08052890 2b68 ldr r3, [r5]
| | 0x08052892 02fb0313 mla r3, r2, r3, r1
| | 0x08052896 2b60 str r3, [r5]
| | 0x08052898 02fb0313 mla r3, r2, r3, r1
| | 0x0805289c 2b60 str r3, [r5]
| | 0x0805289e 02fb0313 mla r3, r2, r3, r1
| | 0x080528a2 2b60 str r3, [r5]
| | 0x080528a4 02fb0313 mla r3, r2, r3, r1
| | 0x080528a8 2b60 str r3, [r5]
| | 0x080528aa 02fb0313 mla r3, r2, r3, r1
| | 0x080528ae 2b60 str r3, [r5]
| | 0x080528b0 02fb0313 mla r3, r2, r3, r1
| | 0x080528b4 2b60 str r3, [r5]
| | 0x080528b6 02fb0313 mla r3, r2, r3, r1
| | 0x080528ba 2b60 str r3, [r5]
| | 0x080528bc 02fb0313 mla r3, r2, r3, r1
| | 0x080528c0 2b60 str r3, [r5]
| | 0x080528c2 0346 mov r3, r0
| | 0x080528c4 0827 movs r7, 8 ; 8
| .--> 0x080528c6 d5f800c0 ldr.w ip, [r5]
| || 0x080528ca 02fb0c1c mla ip, r2, ip, r1
| || 0x080528ce c5f800c0 str.w ip, [r5]
| || 0x080528d2 43f804cb str ip, [r3], 4
| || 0x080528d6 d5f800c0 ldr.w ip, [r5]
| || 0x080528da 02fb0c1c mla ip, r2, ip, r1
| || 0x080528de c5f800c0 str.w ip, [r5]
| || 0x080528e2 43f804cb str ip, [r3], 4
| || 0x080528e6 d5f800c0 ldr.w ip, [r5]
| || 0x080528ea 02fb0c1c mla ip, r2, ip, r1
| || 0x080528ee c5f800c0 str.w ip, [r5]
| || 0x080528f2 43f804cb str ip, [r3], 4
| || 0x080528f6 d5f800c0 ldr.w ip, [r5]
| || 0x080528fa 02fb0c1c mla ip, r2, ip, r1
| || 0x080528fe c5f800c0 str.w ip, [r5]
| || 0x08052902 43f804cb str ip, [r3], 4
| || 0x08052906 7f1e subs r7, r7, 1
| `==< 0x08052908 ddd1 bne 0x80528c6
| | 0x0805290a c36f ldr r3, [r0, 0x7c]
| | 0x0805290c 3360 str r3, [r6]
| | 0x0805290e 0123 movs r3, 1 ; 1
| | 0x08052910 2370 strb r3, [r4]
| `-> 0x08052912 2b68 ldr r3, [r5]
| 0x08052914 02fb0311 mla r1, r2, r3, r1
| 0x08052918 2960 str r1, [r5]
| 0x0805291a 3178 ldrb r1, [r6]
| 0x0805291c 01f01f01 and r1, r1, 0x1f
| 0x08052920 50f82120 ldr.w r2, [r0, r1, lsl 2]
| 0x08052924 3260 str r2, [r6]
| 0x08052926 2a68 ldr r2, [r5]
| 0x08052928 40f82120 str.w r2, [r0, r1, lsl 2]
| 0x0805292c 3068 ldr r0, [r6]
| 0x0805292e 8000 lsls r0, r0, 2
| 0x08052930 8008 lsrs r0, r0, 2
\ 0x08052932 f2bd pop {r1, r4, r5, r6, r7, pc}
/ (fcn) func_52940 104
| Caller: func_52dfe
| func_52940 ();
| 0x08052940 1cb5 push {r2, r3, r4, lr}
| 0x08052942 0823 movs r3, 8 ; 8
| 0x08052944 00aa add r2, sp, 0
| 0x08052946 7321 movs r1, 0x73 ; 's' ; 115
| 0x08052948 7a20 movs r0, 0x7a ; 'z' ; 122
| 0x0805294a f6f725f9 bl func_48b98
| ,=< 0x0805294e 50bb cbnz r0, 0x80529a6
| | 0x08052950 01a8 add r0, sp, 4
| | 0x08052952 dff8d046 ldr.w r4, [0x0805302a] ; [0x8053028:4]=0x2001e31c
| | 0x08052956 0168 ldr r1, [r0]
| | 0x08052958 0823 movs r3, 8 ; 8
| | 0x0805295a 2160 str r1, [r4]
| | 0x0805295c 00aa add r2, sp, 0
| | 0x0805295e 7421 movs r1, 0x74 ; 't' ; 116
| | 0x08052960 7a20 movs r0, 0x7a ; 'z' ; 122
| | 0x08052962 f6f719f9 bl func_48b98
| ,==< 0x08052966 f0b9 cbnz r0, 0x80529a6
| || 0x08052968 01a8 add r0, sp, 4
| || 0x0805296a 0268 ldr r2, [r0]
| || 0x0805296c 211d adds r1, r4, 4
| || 0x0805296e 0a60 str r2, [r1]
| || 0x08052970 0823 movs r3, 8 ; 8
| || 0x08052972 00aa add r2, sp, 0
| || 0x08052974 7521 movs r1, 0x75 ; 'u' ; 117
| || 0x08052976 7a20 movs r0, 0x7a ; 'z' ; 122
| || 0x08052978 f6f70ef9 bl func_48b98
| ,===< 0x0805297c 98b9 cbnz r0, 0x80529a6
| ||| 0x0805297e dff8a846 ldr.w r4, [0x0805302e] ; [0x805302c:4]=0x2001e4f4
| ||| 0x08052982 01a8 add r0, sp, 4
| ||| 0x08052984 0268 ldr r2, [r0]
| ||| 0x08052986 04f11001 add.w r1, r4, 0x10
| ||| 0x0805298a 0a60 str r2, [r1]
| ||| 0x0805298c 0823 movs r3, 8 ; 8
| ||| 0x0805298e 00aa add r2, sp, 0
| ||| 0x08052990 7621 movs r1, 0x76 ; 'v' ; 118
| ||| 0x08052992 7a20 movs r0, 0x7a ; 'z' ; 122
| ||| 0x08052994 f6f700f9 bl func_48b98
| ,====< 0x08052998 28b9 cbnz r0, 0x80529a6
| |||| 0x0805299a 01a8 add r0, sp, 4
| |||| 0x0805299c 0268 ldr r2, [r0]
| |||| 0x0805299e 04f11401 add.w r1, r4, 0x14
| |||| 0x080529a2 0a60 str r2, [r1]
| |||| 0x080529a4 0020 movs r0, 0
\ ````-> 0x080529a6 16bd pop {r1, r2, r4, pc}
/ (fcn) func_529a8 76
| func_529a8 ();
| 0x080529a8 7cb4 push {r2, r3, r4, r5, r6}
| 0x080529aa 0279 ldrb r2, [r0, 4]
| 0x080529ac 00a9 add r1, sp, 0
| 0x080529ae d243 mvns r2, r2
| 0x080529b0 8df80020 strb.w r2, [sp]
| 0x080529b4 0278 ldrb r2, [r0]
| 0x080529b6 9df80060 ldrb.w r6, [sp]
| 0x080529ba 0a71 strb r2, [r1, 4]
| 0x080529bc 4379 ldrb r3, [r0, 5]
| 0x080529be db43 mvns r3, r3
| 0x080529c0 4b70 strb r3, [r1, 1]
| 0x080529c2 4378 ldrb r3, [r0, 1]
| 0x080529c4 4b71 strb r3, [r1, 5]
| 0x080529c6 8479 ldrb r4, [r0, 6]
| 0x080529c8 e443 mvns r4, r4
| 0x080529ca 8c70 strb r4, [r1, 2]
| 0x080529cc 8478 ldrb r4, [r0, 2]
| 0x080529ce 8c71 strb r4, [r1, 6]
| 0x080529d0 c579 ldrb r5, [r0, 7]
| 0x080529d2 ed43 mvns r5, r5
| 0x080529d4 cd70 strb r5, [r1, 3]
| 0x080529d6 c578 ldrb r5, [r0, 3]
| 0x080529d8 cd71 strb r5, [r1, 7]
| 0x080529da 0670 strb r6, [r0]
| 0x080529dc 4e78 ldrb r6, [r1, 1]
| 0x080529de 4670 strb r6, [r0, 1]
| 0x080529e0 8e78 ldrb r6, [r1, 2]
| 0x080529e2 8670 strb r6, [r0, 2]
| 0x080529e4 c978 ldrb r1, [r1, 3]
| 0x080529e6 c170 strb r1, [r0, 3]
| 0x080529e8 0271 strb r2, [r0, 4]
| 0x080529ea 4371 strb r3, [r0, 5]
| 0x080529ec 8471 strb r4, [r0, 6]
| 0x080529ee c571 strb r5, [r0, 7]
| 0x080529f0 73bc pop {r0, r1, r4, r5, r6}
\ 0x080529f2 7047 bx lr
/ (fcn) func_529f4 110
| func_529f4 ();
| 0x080529f4 fcb5 push {r2, r3, r4, r5, r6, r7, lr}
| 0x080529f6 0378 ldrb r3, [r0]
| 0x080529f8 0c78 ldrb r4, [r1]
| 0x080529fa 00aa add r2, sp, 0
| 0x080529fc 6340 eors r3, r4
| 0x080529fe 1371 strb r3, [r2, 4]
| 0x08052a00 0479 ldrb r4, [r0, 4]
| 0x08052a02 0d79 ldrb r5, [r1, 4]
| 0x08052a04 6c40 eors r4, r5
| 0x08052a06 8df80040 strb.w r4, [sp]
| 0x08052a0a 4478 ldrb r4, [r0, 1]
| 0x08052a0c 4d78 ldrb r5, [r1, 1]
| 0x08052a0e 6c40 eors r4, r5
| 0x08052a10 5471 strb r4, [r2, 5]
| 0x08052a12 4579 ldrb r5, [r0, 5]
| 0x08052a14 4e79 ldrb r6, [r1, 5]
| 0x08052a16 7540 eors r5, r6
| 0x08052a18 5570 strb r5, [r2, 1]
| 0x08052a1a 8678 ldrb r6, [r0, 2]
| 0x08052a1c 8f78 ldrb r7, [r1, 2]
| 0x08052a1e 7e40 eors r6, r7
| 0x08052a20 9671 strb r6, [r2, 6]
| 0x08052a22 8779 ldrb r7, [r0, 6]
| 0x08052a24 91f806c0 ldrb.w ip, [r1, 6]
| 0x08052a28 8cea0707 eor.w r7, ip, r7
| 0x08052a2c 9770 strb r7, [r2, 2]
| 0x08052a2e 90f803c0 ldrb.w ip, [r0, 3]
| 0x08052a32 91f803e0 ldrb.w lr, [r1, 3]
| 0x08052a36 8eea0c0c eor.w ip, lr, ip
| 0x08052a3a 82f807c0 strb.w ip, [r2, 7]
| 0x08052a3e 90f807e0 ldrb.w lr, [r0, 7]
| 0x08052a42 c979 ldrb r1, [r1, 7]
| 0x08052a44 81ea0e01 eor.w r1, r1, lr
| 0x08052a48 d170 strb r1, [r2, 3]
| 0x08052a4a 9df80020 ldrb.w r2, [sp]
| 0x08052a4e 0270 strb r2, [r0]
| 0x08052a50 4570 strb r5, [r0, 1]
| 0x08052a52 8770 strb r7, [r0, 2]
| 0x08052a54 c170 strb r1, [r0, 3]
| 0x08052a56 0371 strb r3, [r0, 4]
| 0x08052a58 4471 strb r4, [r0, 5]
| 0x08052a5a 8671 strb r6, [r0, 6]
| 0x08052a5c 80f807c0 strb.w ip, [r0, 7]
\ 0x08052a60 f3bd pop {r0, r1, r4, r5, r6, r7, pc}
/ (fcn) func_52a62 62
| func_52a62 ();
| 0x08052a62 fcb5 push {r2, r3, r4, r5, r6, r7, lr}
| 0x08052a64 8279 ldrb r2, [r0, 6]
| 0x08052a66 00a9 add r1, sp, 0
| 0x08052a68 ca71 strb r2, [r1, 7]
| 0x08052a6a 4379 ldrb r3, [r0, 5]
| 0x08052a6c 8b71 strb r3, [r1, 6]
| 0x08052a6e 0479 ldrb r4, [r0, 4]
| 0x08052a70 4c71 strb r4, [r1, 5]
| 0x08052a72 c578 ldrb r5, [r0, 3]
| 0x08052a74 0d71 strb r5, [r1, 4]
| 0x08052a76 8678 ldrb r6, [r0, 2]
| 0x08052a78 ce70 strb r6, [r1, 3]
| 0x08052a7a 4778 ldrb r7, [r0, 1]
| 0x08052a7c 8f70 strb r7, [r1, 2]
| 0x08052a7e 90f800e0 ldrb.w lr, [r0]
| 0x08052a82 81f801e0 strb.w lr, [r1, 1]
| 0x08052a86 c179 ldrb r1, [r0, 7]
| 0x08052a88 8df80010 strb.w r1, [sp]
| 0x08052a8c 0170 strb r1, [r0]
| 0x08052a8e 80f801e0 strb.w lr, [r0, 1]
| 0x08052a92 8770 strb r7, [r0, 2]
| 0x08052a94 c670 strb r6, [r0, 3]
| 0x08052a96 0571 strb r5, [r0, 4]
| 0x08052a98 4471 strb r4, [r0, 5]
| 0x08052a9a 8371 strb r3, [r0, 6]
| 0x08052a9c c271 strb r2, [r0, 7]
\ 0x08052a9e f3bd pop {r0, r1, r4, r5, r6, r7, pc}
/ (fcn) func_52aa0 84
| Caller: func_52dfe func_52c94
| func_52aa0 ();
| 0x08052aa0 2de9f74f push.w {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08052aa4 0278 ldrb r2, [r0]
| 0x08052aa6 0c46 mov r4, r1
| 0x08052aa8 0c99 ldr r1, [sp, 0x30]
| 0x08052aaa 2270 strb r2, [r4]
| 0x08052aac 4278 ldrb r2, [r0, 1]
| 0x08052aae 002b cmp r3, 0
| 0x08052ab0 6270 strb r2, [r4, 1]
| 0x08052ab2 8278 ldrb r2, [r0, 2]
| 0x08052ab4 a270 strb r2, [r4, 2]
| 0x08052ab6 c278 ldrb r2, [r0, 3]
| 0x08052ab8 e270 strb r2, [r4, 3]
| 0x08052aba 0279 ldrb r2, [r0, 4]
| 0x08052abc 2271 strb r2, [r4, 4]
| 0x08052abe 4279 ldrb r2, [r0, 5]
| 0x08052ac0 6271 strb r2, [r4, 5]
| 0x08052ac2 8279 ldrb r2, [r0, 6]
| 0x08052ac4 a271 strb r2, [r4, 6]
| 0x08052ac6 c079 ldrb r0, [r0, 7]
| 0x08052ac8 e071 strb r0, [r4, 7]
| ,=< 0x08052aca 00f0e280 beq.w 0x8052c92
| | 0x08052ace dff85455 ldr.w r5, [0x0805302a] ; [0x8053028:4]=0x2001e31c
| | 0x08052ad2 9846 mov r8, r3
| | 0x08052ad4 05f1080a add.w sl, r5, 8
| | 0x08052ad8 05f11807 add.w r7, r5, 0x18
| | 0x08052adc a1f10109 sub.w sb, r1, 1
| | 0x08052ae0 00ae add r6, sp, 0
| | 0x08052ae2 9df83400 ldrb.w r0, [sp, 0x34]
| ,==< 0x08052ae6 28b9 cbnz r0, 0x8052af4
| || 0x08052ae8 0822 movs r2, 8 ; 8
| || 0x08052aea 5146 mov r1, sl
| || 0x08052aec 00a8 add r0, sp, 0
| || 0x08052aee e0f79df8 bl gfx_memcpy
\ ,===< 0x08052af2 32e0 b 0x8052b5a
/ (fcn) func_52d5e 160
| Caller: func_52dfe
| func_52d5e ();
| 0x08052d5e 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08052d62 b14c ldr r4, [0x0805302a] ; [0x8053028:4]=0x2001e31c
| 0x08052d64 83b0 sub sp, 0xc
| 0x08052d66 a17c ldrb r1, [r4, 0x12]
| 0x08052d68 207c ldrb r0, [r4, 0x10]
| 0x08052d6a 81f01506 eor r6, r1, 0x15
| 0x08052d6e e17c ldrb r1, [r4, 0x13]
| 0x08052d70 80f08100 eor r0, r0, 0x81
| 0x08052d74 8df80000 strb.w r0, [sp]
| 0x08052d78 81f0b107 eor r7, r1, 0xb1
| 0x08052d7c 217d ldrb r1, [r4, 0x14]
| 0x08052d7e 607c ldrb r0, [r4, 0x11]
| 0x08052d80 81f04e08 eor r8, r1, 0x4e
| 0x08052d84 617d ldrb r1, [r4, 0x15]
| 0x08052d86 80f03605 eor r5, r0, 0x36
| 0x08052d8a 00a8 add r0, sp, 0
| 0x08052d8c 81f03109 eor sb, r1, 0x31
| 0x08052d90 a17d ldrb r1, [r4, 0x16]
| 0x08052d92 4570 strb r5, [r0, 1]
| 0x08052d94 8670 strb r6, [r0, 2]
| 0x08052d96 81f0940a eor sl, r1, 0x94
| 0x08052d9a e17d ldrb r1, [r4, 0x17]
| 0x08052d9c c770 strb r7, [r0, 3]
| 0x08052d9e 80f80480 strb.w r8, [r0, 4]
| 0x08052da2 81f0c40b eor fp, r1, 0xc4
| 0x08052da6 80f80590 strb.w sb, [r0, 5]
| 0x08052daa 80f806a0 strb.w sl, [r0, 6]
| 0x08052dae 80f807b0 strb.w fp, [r0, 7]
| 0x08052db2 607e ldrb r0, [r4, 0x19]
| 0x08052db4 801c adds r0, r0, 2
| 0x08052db6 6076 strb r0, [r4, 0x19]
| 0x08052db8 f6f7bbf8 bl func_48f32_uses_io_RTC
| 0x08052dbc a070 strb r0, [r4, 2]
| 0x08052dbe f6f7b8f8 bl func_48f32_uses_io_RTC
| 0x08052dc2 a071 strb r0, [r4, 6]
| 0x08052dc4 f6f7b5f8 bl func_48f32_uses_io_RTC
| 0x08052dc8 a072 strb r0, [r4, 0xa]
| 0x08052dca f6f7b2f8 bl func_48f32_uses_io_RTC
| 0x08052dce a073 strb r0, [r4, 0xe]
| 0x08052dd0 9df80000 ldrb.w r0, [sp]
| 0x08052dd4 a570 strb r5, [r4, 2]
| 0x08052dd6 2671 strb r6, [r4, 4]
| 0x08052dd8 2070 strb r0, [r4]
| 0x08052dda a771 strb r7, [r4, 6]
| 0x08052ddc 84f80880 strb.w r8, [r4, 8]
| 0x08052de0 84f80a90 strb.w sb, [r4, 0xa]
| 0x08052de4 84f80ca0 strb.w sl, [r4, 0xc]
| 0x08052de8 84f80eb0 strb.w fp, [r4, 0xe]
| 0x08052dec 1023 movs r3, 0x10 ; 16
| 0x08052dee 2246 mov r2, r4
| 0x08052df0 4021 movs r1, 0x40 ; '@' ; 64
| 0x08052df2 7a20 movs r0, 0x7a ; 'z' ; 122
| 0x08052df4 f5f769ff bl func_48cca
| 0x08052df8 03b0 add sp, 0xc
\ 0x08052dfa bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_52dfe 548
| Caller: func_48f70
| func_52dfe ();
| 0x08052dfe 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08052e02 894e ldr r6, [0x0805302a] ; [0x8053028:4]=0x2001e31c
| 0x08052e04 8046 mov r8, r0
| 0x08052e06 85b0 sub sp, 0x14
| 0x08052e08 0d46 mov r5, r1
| 0x08052e0a b07e ldrb r0, [r6, 0x1a]
| ,=< 0x08052e0c a8bb cbnz r0, 0x8052e7a
| | 0x08052e0e 0021 movs r1, 0
| | 0x08052e10 0022 movs r2, 0
| | 0x08052e12 0b46 mov r3, r1
| | 0x08052e14 0fc6 stm r6!, {r0, r1, r2, r3}
| | 0x08052e16 103e subs r6, 0x10
| | 0x08052e18 0823 movs r3, 8 ; 8
| | 0x08052e1a 3246 mov r2, r6
| | 0x08052e1c 8021 movs r1, 0x80 ; 128
| | 0x08052e1e 7a20 movs r0, 0x7a ; 'z' ; 122
| | 0x08052e20 f5f753ff bl func_48cca
| | 0x08052e24 0120 movs r0, 1 ; 1
| | 0x08052e26 f6f77ff8 bl func_48f28
| | 0x08052e2a 0123 movs r3, 1 ; 1
| | 0x08052e2c 3246 mov r2, r6
| | 0x08052e2e 2021 movs r1, 0x20 ; 32
| | 0x08052e30 7a20 movs r0, 0x7a ; 'z' ; 122
| | 0x08052e32 f5f74aff bl func_48cca
| | 0x08052e36 0120 movs r0, 1 ; 1
| | 0x08052e38 f6f776f8 bl func_48f28
| | 0x08052e3c 8320 movs r0, 0x83 ; 131
| | 0x08052e3e 3070 strb r0, [r6]
| | 0x08052e40 0123 movs r3, 1 ; 1
| | 0x08052e42 3246 mov r2, r6
| | 0x08052e44 2221 movs r1, 0x22 ; '"' ; 34
| | 0x08052e46 7a20 movs r0, 0x7a ; 'z' ; 122
| | 0x08052e48 f5f73fff bl func_48cca
| | 0x08052e4c 0120 movs r0, 1 ; 1
| | 0x08052e4e f6f76bf8 bl func_48f28
| | 0x08052e52 fff71fff bl func_52c94
| | 0x08052e56 0028 cmp r0, 0
| ,==< 0x08052e58 40f0e080 bne.w 0x805301c
| || 0x08052e5c 0120 movs r0, 1 ; 1
| || 0x08052e5e f6f763f8 bl func_48f28
| || 0x08052e62 fff76dfd bl func_52940
| || 0x08052e66 0028 cmp r0, 0
| ,===< 0x08052e68 40f0d880 bne.w 0x805301c
| ||| 0x08052e6c fff777ff bl func_52d5e
| ||| 0x08052e70 0028 cmp r0, 0
| ,====< 0x08052e72 40f0d380 bne.w 0x805301c
| |||| 0x08052e76 0120 movs r0, 1 ; 1
| |||| 0x08052e78 b076 strb r0, [r6, 0x1a]
| |||`-> 0x08052e7a 4ff00009 mov.w sb, 0
| ||| 0x08052e7e 6b4c ldr r4, [0x0805302e] ; [0x805302c:4]=0x2001e4f4
| ||| 0x08052e80 03af add r7, sp, 0xc
| ||| 0x08052e82 e920 movs r0, 0xe9 ; 233
| |||,=< 0x08052e84 00e0 b 0x8052e88
| .-----> 0x08052e86 8720 movs r0, 0x87 ; 135
| .----`-> 0x08052e88 8df80000 strb.w r0, [sp]
| ||||| 0x08052e8c cdf80480 str.w r8, [sp, 4]
| ||||| 0x08052e90 b246 mov sl, r6
| ||||| 0x08052e92 4ff0080b mov.w fp, 8 ; 8
| |||||.-> 0x08052e96 01a8 add r0, sp, 4
| |||||| 0x08052e98 0268 ldr r2, [r0]
| |||||| 0x08052e9a 511c adds r1, r2, 1
| |||||| 0x08052e9c 0160 str r1, [r0]
| |||||| 0x08052e9e 1078 ldrb r0, [r2]
| |||||| 0x08052ea0 0af8010b strb r0, [sl], 1
| |||||| 0x08052ea4 f6f745f8 bl func_48f32_uses_io_RTC
| |||||| 0x08052ea8 0af8010b strb r0, [sl], 1
| |||||| 0x08052eac bbf1010b subs.w fp, fp, 1
| |||||`=< 0x08052eb0 f1d1 bne 0x8052e96
| ||||| 0x08052eb2 b9f1000f cmp.w sb, 0
| |||||,=< 0x08052eb6 2bd1 bne 0x8052f10
| |||||| 0x08052eb8 1023 movs r3, 0x10 ; 16
| |||||| 0x08052eba 2246 mov r2, r4
| |||||| 0x08052ebc 9df80010 ldrb.w r1, [sp]
| |||||| 0x08052ec0 7a20 movs r0, 0x7a ; 'z' ; 122
| |||||| 0x08052ec2 f5f769fe bl func_48b98
| |||||| 0x08052ec6 0028 cmp r0, 0
| ,=======< 0x08052ec8 40f0a880 bne.w 0x805301c
| ||||||| 0x08052ecc 2078 ldrb r0, [r4]
| ||||||| 0x08052ece 8df80c00 strb.w r0, [sp, 0xc]
| ||||||| 0x08052ed2 6078 ldrb r0, [r4, 1]
| ||||||| 0x08052ed4 7870 strb r0, [r7, 1]
| ||||||| 0x08052ed6 2079 ldrb r0, [r4, 4]
| ||||||| 0x08052ed8 b870 strb r0, [r7, 2]
| ||||||| 0x08052eda 6079 ldrb r0, [r4, 5]
| ||||||| 0x08052edc f870 strb r0, [r7, 3]
| ||||||| 0x08052ede 207a ldrb r0, [r4, 8]
| ||||||| 0x08052ee0 3871 strb r0, [r7, 4]
| ||||||| 0x08052ee2 607a ldrb r0, [r4, 9]
| ||||||| 0x08052ee4 7871 strb r0, [r7, 5]
| ||||||| 0x08052ee6 207b ldrb r0, [r4, 0xc]
| ||||||| 0x08052ee8 b871 strb r0, [r7, 6]
| ||||||| 0x08052eea 607b ldrb r0, [r4, 0xd]
| ||||||| 0x08052eec f871 strb r0, [r7, 7]
| ||||||| 0x08052eee e07a ldrb r0, [r4, 0xb]
| ||||||| 0x08052ef0 8df80800 strb.w r0, [sp, 8]
| ||||||| 0x08052ef4 9df80810 ldrb.w r1, [sp, 8]
| ||||||| 0x08052ef8 a078 ldrb r0, [r4, 2]
| ||||||| 0x08052efa c943 mvns r1, r1
| ||||||| 0x08052efc 8df80900 strb.w r0, [sp, 9]
| ||||||| 0x08052f00 3170 strb r1, [r6]
| ||||||| 0x08052f02 b073 strb r0, [r6, 0xe]
| ||||||| 0x08052f04 3078 ldrb r0, [r6]
| ||||||| 0x08052f06 88f80000 strb.w r0, [r8]
| ||||||| 0x08052f0a b07b ldrb r0, [r6, 0xe]
| ||||||| 0x08052f0c 88f80700 strb.w r0, [r8, 7]
| ||||||`-> 0x08052f10 1023 movs r3, 0x10 ; 16
| |||||| 0x08052f12 3246 mov r2, r6
| |||||| 0x08052f14 9df80010 ldrb.w r1, [sp]
| |||||| 0x08052f18 7a20 movs r0, 0x7a ; 'z' ; 122
| |||||| 0x08052f1a f5f7d6fe bl func_48cca
| |||||| 0x08052f1e 0028 cmp r0, 0
| ||||||,=< 0x08052f20 7cd1 bne 0x805301c
| ||||||| 0x08052f22 0520 movs r0, 5 ; 5
| ||||||| 0x08052f24 f6f700f8 bl func_48f28
| ||||||| 0x08052f28 1023 movs r3, 0x10 ; 16
| ||||||| 0x08052f2a 2246 mov r2, r4
| ||||||| 0x08052f2c 9df80010 ldrb.w r1, [sp]
| ||||||| 0x08052f30 7a20 movs r0, 0x7a ; 'z' ; 122
| ||||||| 0x08052f32 f5f731fe bl func_48b98
| ||||||| 0x08052f36 0028 cmp r0, 0
| ========< 0x08052f38 70d1 bne 0x805301c
| ||||||| 0x08052f3a 2078 ldrb r0, [r4]
| ||||||| 0x08052f3c 8df80c00 strb.w r0, [sp, 0xc]
| ||||||| 0x08052f40 6078 ldrb r0, [r4, 1]
| ||||||| 0x08052f42 7870 strb r0, [r7, 1]
| ||||||| 0x08052f44 2079 ldrb r0, [r4, 4]
| ||||||| 0x08052f46 b870 strb r0, [r7, 2]
| ||||||| 0x08052f48 6079 ldrb r0, [r4, 5]
| ||||||| 0x08052f4a f870 strb r0, [r7, 3]
| ||||||| 0x08052f4c 207a ldrb r0, [r4, 8]
| ||||||| 0x08052f4e 3871 strb r0, [r7, 4]
| ||||||| 0x08052f50 607a ldrb r0, [r4, 9]
| ||||||| 0x08052f52 7871 strb r0, [r7, 5]
| ||||||| 0x08052f54 207b ldrb r0, [r4, 0xc]
| ||||||| 0x08052f56 b871 strb r0, [r7, 6]
| ||||||| 0x08052f58 607b ldrb r0, [r4, 0xd]
| ||||||| 0x08052f5a f871 strb r0, [r7, 7]
| ||||||| 0x08052f5c e07a ldrb r0, [r4, 0xb]
| ||||||| 0x08052f5e 8df80800 strb.w r0, [sp, 8]
| ||||||| 0x08052f62 a078 ldrb r0, [r4, 2]
| ||||||| 0x08052f64 8df80900 strb.w r0, [sp, 9]
| ||||||| 0x08052f68 707e ldrb r0, [r6, 0x19]
| ||||||| 0x08052f6a ff28 cmp r0, 0xff ; 255
| ========< 0x08052f6c 04d1 bne 0x8052f78
| ||||||| 0x08052f6e 307e ldrb r0, [r6, 0x18]
| ||||||| 0x08052f70 401c adds r0, r0, 1
| ||||||| 0x08052f72 3076 strb r0, [r6, 0x18]
| ||||||| 0x08052f74 0020 movs r0, 0
| ========< 0x08052f76 00e0 b 0x8052f7a
| --------> 0x08052f78 401c adds r0, r0, 1
| --------> 0x08052f7a 7076 strb r0, [r6, 0x19]
| ||||||| 0x08052f7c 0220 movs r0, 2 ; 2
| ||||||| 0x08052f7e 0190 str r0, [sp, 4]
| ||||||| 0x08052f80 2020 movs r0, 0x20 ; 32
| ||||||| 0x08052f82 0090 str r0, [sp]
| ||||||| 0x08052f84 0223 movs r3, 2 ; 2
| ||||||| 0x08052f86 02aa add r2, sp, 8
| ||||||| 0x08052f88 2946 mov r1, r5
| ||||||| 0x08052f8a 03a8 add r0, sp, 0xc
| ||||||| 0x08052f8c fff788fd bl func_52aa0
| ||||||| 0x08052f90 2878 ldrb r0, [r5]
| ||||||| 0x08052f92 8df80c00 strb.w r0, [sp, 0xc]
| ||||||| 0x08052f96 6878 ldrb r0, [r5, 1]
| ||||||| 0x08052f98 7870 strb r0, [r7, 1]
| ||||||| 0x08052f9a a878 ldrb r0, [r5, 2]
| ||||||| 0x08052f9c b870 strb r0, [r7, 2]
| ||||||| 0x08052f9e e878 ldrb r0, [r5, 3]
| ||||||| 0x08052fa0 f870 strb r0, [r7, 3]
| ||||||| 0x08052fa2 2879 ldrb r0, [r5, 4]
| ||||||| 0x08052fa4 3871 strb r0, [r7, 4]
| ||||||| 0x08052fa6 6879 ldrb r0, [r5, 5]
| ||||||| 0x08052fa8 7871 strb r0, [r7, 5]
| ||||||| 0x08052faa a879 ldrb r0, [r5, 6]
| ||||||| 0x08052fac b871 strb r0, [r7, 6]
| ||||||| 0x08052fae e879 ldrb r0, [r5, 7]
| ||||||| 0x08052fb0 f871 strb r0, [r7, 7]
| ||||||| 0x08052fb2 98f80000 ldrb.w r0, [r8]
| ||||||| 0x08052fb6 2978 ldrb r1, [r5]
| ||||||| 0x08052fb8 8842 cmp r0, r1
| ========< 0x08052fba 0bd0 beq 0x8052fd4
| --------> 0x08052fbc 3220 movs r0, 0x32 ; '2' ; 50
| ||||||| 0x08052fbe 09f10109 add.w sb, sb, 1
| ||||||| 0x08052fc2 b9f1020f cmp.w sb, 2 ; 2
| ========< 0x08052fc6 29da bge 0x805301c
| ||||||| 0x08052fc8 b9f1000f cmp.w sb, 0
| ||`=====< 0x08052fcc 7ff45baf bne.w 0x8052e86
| || |||| 0x08052fd0 e920 movs r0, 0xe9 ; 233
| |`======< 0x08052fd2 59e7 b 0x8052e88
| --------> 0x08052fd4 98f80100 ldrb.w r0, [r8, 1]
| | |||| 0x08052fd8 6978 ldrb r1, [r5, 1]
| | |||| 0x08052fda 8842 cmp r0, r1
| | ,=====< 0x08052fdc 02bf ittt eq
| | `-----> 0x08052fde 98f80200 ldrb.w r0, [r8, 2]
| | |||| 0x08052fe2 a978 ldrb r1, [r5, 2]
| | |||| 0x08052fe4 8842 cmp r0, r1
| ========< 0x08052fe6 e9d1 bne 0x8052fbc
| | |||| 0x08052fe8 98f80300 ldrb.w r0, [r8, 3]
| | |||| 0x08052fec e978 ldrb r1, [r5, 3]
| | |||| 0x08052fee 8842 cmp r0, r1
| | ,=====< 0x08052ff0 02bf ittt eq
| | `-----> 0x08052ff2 98f80400 ldrb.w r0, [r8, 4]
| | |||| 0x08052ff6 2979 ldrb r1, [r5, 4]
| | |||| 0x08052ff8 8842 cmp r0, r1
| ========< 0x08052ffa dfd1 bne 0x8052fbc
| | |||| 0x08052ffc 98f80500 ldrb.w r0, [r8, 5]
| | |||| 0x08053000 6979 ldrb r1, [r5, 5]
| | |||| 0x08053002 8842 cmp r0, r1
| | ,=====< 0x08053004 02bf ittt eq
| | `-----> 0x08053006 98f80600 ldrb.w r0, [r8, 6]
| | |||| 0x0805300a a979 ldrb r1, [r5, 6]
| | |||| 0x0805300c 8842 cmp r0, r1
| | ,=====< 0x0805300e 02bf ittt eq
| | `-----> 0x08053010 98f80700 ldrb.w r0, [r8, 7]
| | |||| 0x08053014 e979 ldrb r1, [r5, 7]
| | |||| 0x08053016 8842 cmp r0, r1
| ========< 0x08053018 d0d1 bne 0x8052fbc
| | |||| 0x0805301a 0020 movs r0, 0
| `--````-> 0x0805301c 05b0 add sp, 0x14
\ 0x0805301e bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_53030 102
| Caller: func_48f92
| func_53030 ();
| 0x08053030 00b5 push {lr}
| 0x08053032 93b0 sub sp, 0x4c ; 'L'
| 0x08053034 0020 movs r0, 0
| ,=< 0x08053036 06e0 b 0x8053046
| .--> 0x08053038 4142 rsbs r1, r0, 0
| || 0x0805303a 00aa add r2, sp, 0
| || 0x0805303c 8918 adds r1, r1, r2
| || 0x0805303e 164a ldr r2, [0x0805309a] ; [0x8053098:4]=0x1fff7a10
| || 0x08053040 825c ldrb r2, [r0, r2]
| || 0x08053042 ca72 strb r2, [r1, 0xb]
| || 0x08053044 401c adds r0, r0, 1
| |`-> 0x08053046 0c28 cmp r0, 0xc ; 12
| `==< 0x08053048 f6db blt 0x8053038
| 0x0805304a 0ba9 add r1, sp, 0x2c
| 0x0805304c 00a8 add r0, sp, 0
| 0x0805304e 02f05afb bl func_55706
| 0x08053052 0020 movs r0, 0
| ,=< 0x08053054 06e0 b 0x8053064
| .--> 0x08053056 4142 rsbs r1, r0, 0
| || 0x08053058 03aa add r2, sp, 0xc
| || 0x0805305a 8918 adds r1, r1, r2
| || 0x0805305c 0f4a ldr r2, [0x0805309c] ; [0x805309c:4]=0x1fff7940
| || 0x0805305e 825c ldrb r2, [r0, r2]
| || 0x08053060 ca73 strb r2, [r1, 0xf]
| || 0x08053062 401c adds r0, r0, 1
| |`-> 0x08053064 1028 cmp r0, 0x10 ; 16
| `==< 0x08053066 f6db blt 0x8053056
| 0x08053068 0020 movs r0, 0
| ,=< 0x0805306a 06e0 b 0x805307a
| .--> 0x0805306c 4142 rsbs r1, r0, 0
| || 0x0805306e 03aa add r2, sp, 0xc
| || 0x08053070 8918 adds r1, r1, r2
| || 0x08053072 0b4a ldr r2, [0x080530a2] ; [0x80530a0:4]=0x1fff7950
| || 0x08053074 825c ldrb r2, [r0, r2]
| || 0x08053076 ca77 strb r2, [r1, 0x1f]
| || 0x08053078 401c adds r0, r0, 1
| |`-> 0x0805307a 1028 cmp r0, 0x10 ; 16
| `==< 0x0805307c f6db blt 0x805306c
| 0x0805307e 2022 movs r2, 0x20 ; 32
| 0x08053080 03a9 add r1, sp, 0xc
| 0x08053082 0ba8 add r0, sp, 0x2c
| 0x08053084 02f0a0fc bl func_559c8
| 0x08053088 0028 cmp r0, 0
| ,=< 0x0805308a 01d0 beq 0x8053090
| | 0x0805308c 0120 movs r0, 1 ; 1
| ,==< 0x0805308e 00e0 b 0x8053092
| |`-> 0x08053090 0020 movs r0, 0
| `--> 0x08053092 13b0 add sp, 0x4c
\ 0x08053094 00bd pop {pc}
/ (fcn) func_530a4_endless_loop 2
| Caller: func_48f92
| func_530a4_endless_loop ();
\ `-> 0x080530a4 fee7 b func_530a4_endless_loop
/ (fcn) func_530a8 286
| Caller: ambe_encode_thing__size_not_correct
| func_530a8 ();
| 0x080530a8 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x080530ac 1746 mov r7, r2
| 0x080530ae c2f5bf72 rsb.w r2, r2, 0x17e
| 0x080530b2 adf50b7d sub.w sp, sp, 0x22c
| 0x080530b6 0132 adds r2, 1
| 0x080530b8 00f59d55 add.w r5, r0, 0x13a0
| 0x080530bc 0435 adds r5, 4
| 0x080530be 16b2 sxth r6, r2
| 0x080530c0 0df1220a add.w sl, sp, 0x22
| 0x080530c4 9846 mov r8, r3
| 0x080530c6 0446 mov r4, r0
| 0x080530c8 0023 movs r3, 0
| 0x080530ca 8b46 mov fp, r1
| 0x080530cc 3246 mov r2, r6
| 0x080530ce 2846 mov r0, r5
| 0x080530d0 05eb4701 add.w r1, r5, r7, lsl 1
| 0x080530d4 aaf80030 strh.w r3, [sl]
| 0x080530d8 bdf95092 ldrsh.w sb, [sp, 0x250]
| 0x080530dc 02f0a6fc bl func_55a2c
| 0x080530e0 18f4807f tst.w r8, 0x100 ; 256
| ,=< 0x080530e4 6fd1 bne 0x80531c6
| | 0x080530e6 05eb4601 add.w r1, r5, r6, lsl 1
| | 0x080530ea 5a46 mov r2, fp
| | 0x080530ec 2046 mov r0, r4
| | 0x080530ee 3b46 mov r3, r7
| | 0x080530f0 02f056fd bl func_55ba0
| | 0x080530f4 04f5077b add.w fp, r4, 0x21c
| | 0x080530f8 5946 mov r1, fp
| | 0x080530fa 04f58460 add.w r0, r4, 0x420
| | 0x080530fe 4ff48172 mov.w r2, 0x102 ; 258
| | 0x08053102 02f093fc bl func_55a2c
| | 0x08053106 04f11806 add.w r6, r4, 0x18
| | 0x0805310a b4f82636 ldrh.w r3, [r4, 0x626]
| | 0x0805310e a4f82836 strh.w r3, [r4, 0x628]
| | 0x08053112 3146 mov r1, r6
| | 0x08053114 5846 mov r0, fp
| | 0x08053116 4ff48172 mov.w r2, 0x102 ; 258
| | 0x0805311a 02f087fc bl func_55a2c
| | 0x0805311e b4f82436 ldrh.w r3, [r4, 0x624]
| | 0x08053122 a4f82636 strh.w r3, [r4, 0x626]
| | 0x08053126 4ff0000e mov.w lr, 0
| | 0x0805312a 0df1240b add.w fp, sp, 0x24
| | 0x0805312e 4ff0c70c mov.w ip, 0xc7 ; 199
| | 0x08053132 0822 movs r2, 8 ; 8
| | 0x08053134 0123 movs r3, 1 ; 1
| | 0x08053136 04f59e51 add.w r1, r4, 0x13c0
| | 0x0805313a 8de80050 stm.w sp, {ip, lr}
| | 0x0805313e 0392 str r2, [sp, 0xc]
| | 0x08053140 0493 str r3, [sp, 0x10]
| | 0x08053142 3046 mov r0, r6
| | 0x08053144 cdf808b0 str.w fp, [sp, 8]
| | 0x08053148 1c31 adds r1, 0x1c
| | 0x0805314a 224a ldr r2, [0x080531d6] ; [0x80531d4:4]=0x8095110
| | 0x0805314c 6ff00603 mvn r3, 6
| | 0x08053150 02f0bafd bl func_55cc8
| | 0x08053154 04f5b553 add.w r3, r4, 0x16a0
| | 0x08053158 04f6381c addw ip, r4, 0x938
| | 0x0805315c 08f08002 and r2, r8, 0x80
| | 0x08053160 1833 adds r3, 0x18
| | 0x08053162 a4f82406 strh.w r0, [r4, 0x624]
| | 0x08053166 3146 mov r1, r6
| | 0x08053168 0493 str r3, [sp, 0x10]
| | 0x0805316a cdf804c0 str.w ip, [sp, 4]
| | 0x0805316e 0292 str r2, [sp, 8]
| | 0x08053170 04f53560 add.w r0, r4, 0xb50
| | 0x08053174 4a46 mov r2, sb
| | 0x08053176 2b46 mov r3, r5
| | 0x08053178 0097 str r7, [sp]
| | 0x0805317a cdf80ca0 str.w sl, [sp, 0xc]
| | 0x0805317e cdf81cc0 str.w ip, [sp, 0x1c]
| | 0x08053182 02f035fe bl func_55df0_unknown_end
| | 0x08053186 baf90020 ldrsh.w r2, [sl]
| | 0x0805318a ddf81cc0 ldr.w ip, [sp, 0x1c]
| | 0x0805318e cdf804c0 str.w ip, [sp, 4]
| | 0x08053192 5b46 mov r3, fp
| | 0x08053194 0292 str r2, [sp, 8]
| | 0x08053196 3046 mov r0, r6
| | 0x08053198 2a46 mov r2, r5
| | 0x0805319a 4946 mov r1, sb
| | 0x0805319c 0097 str r7, [sp]
| | 0x0805319e 03f0d5fc bl func_56b4c
| | 0x080531a2 b4f9b85a ldrsh.w r5, [r4, 0xab8]
| | 0x080531a6 b4f92426 ldrsh.w r2, [r4, 0x624]
| | 0x080531aa cdf80090 str.w sb, [sp]
| | 0x080531ae 04f59b50 add.w r0, r4, 0x1360
| | 0x080531b2 3146 mov r1, r6
| | 0x080531b4 4346 mov r3, r8
| | 0x080531b6 0195 str r5, [sp, 4]
| | 0x080531b8 1030 adds r0, 0x10
| | 0x080531ba 03f06fff bl func_5709c
| | 0x080531be 0df50b7d add.w sp, sp, 0x22c
\ | 0x080531c2 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
;-- ambe_encode_thing:
/ (fcn) ambe_encode_thing__size_not_correct 124
| Caller: ambe_4a88e_calls_encode
| ambe_encode_thing__size_not_correct ();
| 0x080531d8 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x080531dc 4c2b cmp r3, 0x4c ; 'L' ; 76
| 0x080531de 83b0 sub sp, 0xc
| ,=< 0x080531e0 b8bf it lt
| `-> 0x080531e2 4c23 movs r3, 0x4c ; 'L' ; 76
| 0x080531e4 1e46 mov r6, r3
| 0x080531e6 bdf92890 ldrsh.w sb, [sp, 0x28]
| 0x080531ea 0d9d ldr r5, [sp, 0x34]
| 0x080531ec bdf92c40 ldrsh.w r4, [sp, 0x2c]
| 0x080531f0 0094 str r4, [sp]
| 0x080531f2 542e cmp r6, 0x54 ; 'T' ; 84
| 0x080531f4 0f46 mov r7, r1
| 0x080531f6 8046 mov r8, r0
| 0x080531f8 1146 mov r1, r2
| 0x080531fa 2846 mov r0, r5
| 0x080531fc 3246 mov r2, r6
| 0x080531fe 4b46 mov r3, sb
| ,=< 0x08053200 a8bf it ge
| `-> 0x08053202 5422 movs r2, 0x54 ; 'T' ; 84
| 0x08053204 bdf93060 ldrsh.w r6, [sp, 0x30]
| 0x08053208 fff74eff bl func_530a8
| 0x0805320c 14f00100 ands r0, r4, 1
| ,=< 0x08053210 0dd0 beq 0x805322e
| | 0x08053212 09f40050 and r0, sb, 0x2000
| | 0x08053216 80b2 uxth r0, r0
| ,==< 0x08053218 60b9 cbnz r0, 0x8053234
| .---> 0x0805321a 00b2 sxth r0, r0
| ||| 0x0805321c 0190 str r0, [sp, 4]
| ||| 0x0805321e 0095 str r5, [sp]
| ||| 0x08053220 4046 mov r0, r8
| ||| 0x08053222 3946 mov r1, r7
| ||| 0x08053224 4a46 mov r2, sb
| ||| 0x08053226 3346 mov r3, r6
| ||| 0x08053228 03f098ff bl func_5715c
| ||| 0x0805322c 00b2 sxth r0, r0
| ||`-> 0x0805322e 03b0 add sp, 0xc
| || 0x08053230 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
| |`--> 0x08053234 05f5b552 add.w r2, r5, 0x16a0
| | 0x08053238 0232 adds r2, 2
| | 0x0805323a 05f63810 addw r0, r5, 0x938
| | 0x0805323e 05f23a61 addw r1, r5, 0x63a
| | 0x08053242 00f0d3fa bl func_537ec
| | 0x08053246 45f20b53 movw r3, 0x550b
| | 0x0805324a 00fb03f0 mul r0, r0, r3
| | 0x0805324e c0f38f30 ubfx r0, r0, 0xe, 0x10
\ `===< 0x08053252 e2e7 b 0x805321a
/ (fcn) 2184
| Caller: md380_menu_numerical_input func_16c00 paint_a_lot func_16fe4 Create_Menu_Entry_RX_QRG_2
| often_called_something_keycode_menu ();
| 0x0801dd5c 38b5 push {r3, r4, r5, lr}
| 0x0801dd5e 0500 movs r5, r0
| 0x0801dd60 0024 movs r4, 0
| 0x0801dd62 edb2 uxtb r5, r5
| 0x0801dd64 f12d cmp r5, 0xf1 ; 241
| ,=< 0x0801dd66 37d3 blo 0x801ddd8
| | 0x0801dd68 dff87c08 ldr.w r0, [0x0801e5ec] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| | 0x0801dd6c 0078 ldrb r0, [r0]
| | 0x0801dd6e 0128 cmp r0, 1 ; 1
| ,==< 0x0801dd70 18d3 blo 0x801dda4
| || 0x0801dd72 dff87808 ldr.w r0, [0x0801e5f2] ; [0x801e5f0:4]=0x2001e848
| || 0x0801dd76 0078 ldrb r0, [r0]
| || 0x0801dd78 10f00f00 ands r0, r0, 0xf
| || 0x0801dd7c 0128 cmp r0, 1 ; 1
| ,===< 0x0801dd7e 11d1 bne 0x801dda4
| ||| 0x0801dd80 dff86c08 ldr.w r0, [paint_a_lot] ; [0x801e5f4:4]=0x4b5f8
| ||| 0x0801dd84 0088 ldrh r0, [r0]
| ||| 0x0801dd86 401c adds r0, r0, 1
| ||| 0x0801dd88 dff86418 ldr.w r1, [paint_a_lot] ; [0x801e5f4:4]=0x4b5f8
| ||| 0x0801dd8c 0880 strh r0, [r1]
| ||| 0x0801dd8e dff86008 ldr.w r0, [0x0801e5f6] ; [0x801e5f4:4]=0x4b5f8
| ||| 0x0801dd92 0088 ldrh r0, [r0]
| ||| 0x0801dd94 40f22d11 movw r1, 0x12d ; 301
| ||| 0x0801dd98 8842 cmp r0, r1
| ,====< 0x0801dd9a 03d3 blo 0x801dda4
| |||| 0x0801dd9c dff84808 ldr.w r0, [0x0801e5ec] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| |||| 0x0801dda0 0021 movs r1, 0
| |||| 0x0801dda2 0170 strb r1, [r0]
| ```--> 0x0801dda4 dff84008 ldr.w r0, [0x0801e5ec] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| | 0x0801dda8 0078 ldrb r0, [r0]
| | 0x0801ddaa 0128 cmp r0, 1 ; 1
| ,==< 0x0801ddac 06d3 blo 0x801ddbc
| || 0x0801ddae dff83c08 ldr.w r0, [0x0801e5f2] ; [0x801e5f0:4]=0x2001e848
| || 0x0801ddb2 0078 ldrb r0, [r0]
| || 0x0801ddb4 10f00f00 ands r0, r0, 0xf
| || 0x0801ddb8 0328 cmp r0, 3 ; 3
| ,===< 0x0801ddba 05d0 beq 0x801ddc8
| |`--> 0x0801ddbc dff82c08 ldr.w r0, [0x0801e5f0] ; [0x801e5f0:4]=0x2001e848
| | | 0x0801ddc0 0078 ldrb r0, [r0]
| | | 0x0801ddc2 0f21 movs r1, 0xf ; 15
| | | 0x0801ddc4 0842 tst r0, r1
| |,==< 0x0801ddc6 03d1 bne 0x801ddd0
| `---> 0x0801ddc8 dff81c08 ldr.w r0, [0x0801e5ec] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| || 0x0801ddcc 0021 movs r1, 0
| || 0x0801ddce 0170 strb r1, [r0]
| `--> 0x0801ddd0 2000 movs r0, r4
| | 0x0801ddd2 c0b2 uxtb r0, r0
| ,==< 0x0801ddd4 00f005bc b.w 0x801e5e2
| |`-> 0x0801ddd8 edb2 uxtb r5, r5
| | 0x0801ddda 0a2d cmp r5, 0xa ; 10
| |,=< 0x0801dddc 00f0b281 beq.w 0x801e144
| ,===< 0x0801dde0 c0f01182 blo.w 0x801e206
| ||| 0x0801dde4 0c2d cmp r5, 0xc ; 12
| ,====< 0x0801dde6 00f08f80 beq.w 0x801df08
| ,=====< 0x0801ddea 08d3 blo 0x801ddfe
| ||||| 0x0801ddec 0e2d cmp r5, 0xe ; 14
| ,======< 0x0801ddee 00f0b581 beq.w 0x801e15c
| ,=======< 0x0801ddf2 c0f0b180 blo.w 0x801df58
| ||||||| 0x0801ddf6 0f2d cmp r5, 0xf ; 15
| ========< 0x0801ddf8 00f06e81 beq.w 0x801e0d8
| ========< 0x0801ddfc 03e2 b 0x801e206
| ||`-----> 0x0801ddfe dff8c00c ldr.w r0, [0x0801eac6] ; [0x801eac4:4]=0x2001e6ec
| || |||| 0x0801de02 0068 ldr r0, [r0]
| || |||| 0x0801de04 0068 ldr r0, [r0]
| || |||| 0x0801de06 dff8bc1c ldr.w r1, [0x0801eaca] ; [0x801eac8:4]=0x20001704 md380_menu_ptr_to_80d032c
| || |||| 0x0801de0a 0968 ldr r1, [r1]
| || |||| 0x0801de0c dff8b82c ldr.w r2, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| || |||| 0x0801de10 12eb8101 adds.w r1, r2, r1, lsl 2
| || |||| 0x0801de14 d1f87813 ldr.w r1, [r1, 0x378]
| || |||| 0x0801de18 8842 cmp r0, r1
| ||,=====< 0x0801de1a 0ed0 beq 0x801de3a
| ||||||| 0x0801de1c dff8a00c ldr.w r0, [0x0801eac4] ; [0x801eac4:4]=0x2001e6ec
| ||||||| 0x0801de20 0068 ldr r0, [r0]
| ||||||| 0x0801de22 0068 ldr r0, [r0]
| ||||||| 0x0801de24 dff89c1c ldr.w r1, [0x0801eac8] ; [0x801eac8:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0801de28 0968 ldr r1, [r1]
| ||||||| 0x0801de2a dff89c2c ldr.w r2, [0x0801eace] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801de2e 12eb8101 adds.w r1, r2, r1, lsl 2
| ||||||| 0x0801de32 d1f87c13 ldr.w r1, [r1, 0x37c]
| ||||||| 0x0801de36 8842 cmp r0, r1
| ========< 0x0801de38 41d1 bne 0x801debe
| ||`-----> 0x0801de3a dff8900c ldr.w r0, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| || |||| 0x0801de3e 0078 ldrb r0, [r0]
| || |||| 0x0801de40 0028 cmp r0, 0
| ||,=====< 0x0801de42 3bd0 beq 0x801debc
| ||||||| 0x0801de44 dff8a007 ldr.w r0, [0x0801e5ec] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801de48 0021 movs r1, 0
| ||||||| 0x0801de4a 0170 strb r1, [r0]
| ||||||| 0x0801de4c dff8a007 ldr.w r0, [paint_a_lot] ; [0x801e5f4:4]=0x4b5f8
| ||||||| 0x0801de50 0021 movs r1, 0
| ||||||| 0x0801de52 0180 strh r1, [r0]
| ||||||| 0x0801de54 dff8740c ldr.w r0, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801de58 0078 ldrb r0, [r0]
| ||||||| 0x0801de5a 401e subs r0, r0, 1
| ========< 0x0801de5c 0de0 b 0x801de7a
| --------> 0x0801de5e c0b2 uxtb r0, r0
| ||||||| 0x0801de60 dff86c1c ldr.w r1, [0x0801ead4] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801de64 0968 ldr r1, [r1]
| ||||||| 0x0801de66 11eb4001 adds.w r1, r1, r0, lsl 1
| ||||||| 0x0801de6a 4988 ldrh r1, [r1, 2]
| ||||||| 0x0801de6c c0b2 uxtb r0, r0
| ||||||| 0x0801de6e dff8602c ldr.w r2, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801de72 1268 ldr r2, [r2]
| ||||||| 0x0801de74 22f81010 strh.w r1, [r2, r0, lsl 1]
| ||||||| 0x0801de78 401c adds r0, r0, 1
| --------> 0x0801de7a c0b2 uxtb r0, r0
| ||||||| 0x0801de7c dff8541c ldr.w r1, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801de80 0978 ldrb r1, [r1]
| ||||||| 0x0801de82 491e subs r1, r1, 1
| ||||||| 0x0801de84 8842 cmp r0, r1
| ========< 0x0801de86 eadb blt 0x801de5e
| ||||||| 0x0801de88 dff8480c ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801de8c 0078 ldrb r0, [r0]
| ||||||| 0x0801de8e dff8401c ldr.w r1, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801de92 0968 ldr r1, [r1]
| ||||||| 0x0801de94 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801de98 0021 movs r1, 0
| ||||||| 0x0801de9a 20f8021c strh r1, [r0, -0x2]
| ||||||| 0x0801de9e dff82c0c ldr.w r0, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801dea2 0078 ldrb r0, [r0]
| ||||||| 0x0801dea4 401e subs r0, r0, 1
| ||||||| 0x0801dea6 dff8241c ldr.w r1, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801deaa 0870 strb r0, [r1]
| ||||||| 0x0801deac dff8240c ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801deb0 0078 ldrb r0, [r0]
| ||||||| 0x0801deb2 401e subs r0, r0, 1
| ||||||| 0x0801deb4 dff81c1c ldr.w r1, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801deb8 0870 strb r0, [r1]
| ||||||| 0x0801deba 0124 movs r4, 1 ; 1
| ==`-----> 0x0801debc 8fe3 b 0x801e5de
| --------> 0x0801debe dff82807 ldr.w r0, [0x0801e5ee] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| || |||| 0x0801dec2 0021 movs r1, 0
| || |||| 0x0801dec4 0170 strb r1, [r0]
| || |||| 0x0801dec6 dff82807 ldr.w r0, [0x0801e5f6] ; [0x801e5f4:4]=0x4b5f8
| || |||| 0x0801deca 0021 movs r1, 0
| || |||| 0x0801decc 0180 strh r1, [r0]
| || |||| 0x0801dece dff8080c ldr.w r0, [0x0801eade] ; [0x801eadc:4]=0x2001e90c
| || |||| 0x0801ded2 0078 ldrb r0, [r0]
| || |||| 0x0801ded4 0328 cmp r0, 3 ; 3
| ||,=====< 0x0801ded6 02d1 bne 0x801dede
| ||||||| 0x0801ded8 0df0fafd bl func_2bad0
| ========< 0x0801dedc 13e0 b 0x801df06
| ||`-----> 0x0801dede dff8ec0b ldr.w r0, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| || |||| 0x0801dee2 0078 ldrb r0, [r0]
| || |||| 0x0801dee4 0028 cmp r0, 0
| ||,=====< 0x0801dee6 0ed0 beq 0x801df06
| ||||||| 0x0801dee8 dff8e00b ldr.w r0, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801deec 0078 ldrb r0, [r0]
| ||||||| 0x0801deee 401e subs r0, r0, 1
| ||||||| 0x0801def0 dff8d81b ldr.w r1, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801def4 0870 strb r0, [r1]
| ||||||| 0x0801def6 dff8f006 ldr.w r0, [0x0801e5ee] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801defa 0021 movs r1, 0
| ||||||| 0x0801defc 0170 strb r1, [r0]
| ||||||| 0x0801defe dff8f006 ldr.w r0, [0x0801e5f6] ; [0x801e5f4:4]=0x4b5f8
| ||||||| 0x0801df02 0021 movs r1, 0
| ||||||| 0x0801df04 0180 strh r1, [r0]
| --`-----> 0x0801df06 6ae3 b 0x801e5de
| || `----> 0x0801df08 dff8dc06 ldr.w r0, [0x0801e5ec] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| || ||| 0x0801df0c 0021 movs r1, 0
| || ||| 0x0801df0e 0170 strb r1, [r0]
| || ||| 0x0801df10 dff8dc06 ldr.w r0, [paint_a_lot] ; [0x801e5f4:4]=0x4b5f8
| || ||| 0x0801df14 0021 movs r1, 0
| || ||| 0x0801df16 0180 strh r1, [r0]
| || ||| 0x0801df18 dff8bc0b ldr.w r0, [0x0801eadc] ; [0x801eadc:4]=0x2001e90c
| || ||| 0x0801df1c 0078 ldrb r0, [r0]
| || ||| 0x0801df1e 0328 cmp r0, 3 ; 3
| || ,====< 0x0801df20 02d1 bne 0x801df28
| || |||| 0x0801df22 0ef053f8 bl func_2bfcc
| ||,=====< 0x0801df26 16e0 b 0x801df56
| |||`----> 0x0801df28 dff8a00b ldr.w r0, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||| ||| 0x0801df2c 0078 ldrb r0, [r0]
| ||| ||| 0x0801df2e dff8a41b ldr.w r1, [0x0801eada] ; [0x801ead8:4]=0x20004ac9
| ||| ||| 0x0801df32 0978 ldrb r1, [r1]
| ||| ||| 0x0801df34 8842 cmp r0, r1
| |||,====< 0x0801df36 0ed2 bhs 0x801df56
| ||||||| 0x0801df38 dff8900b ldr.w r0, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801df3c 0078 ldrb r0, [r0]
| ||||||| 0x0801df3e 401c adds r0, r0, 1
| ||||||| 0x0801df40 dff8881b ldr.w r1, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801df44 0870 strb r0, [r1]
| ||||||| 0x0801df46 dff8a006 ldr.w r0, [0x0801e5ee] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801df4a 0021 movs r1, 0
| ||||||| 0x0801df4c 0170 strb r1, [r0]
| ||||||| 0x0801df4e dff8a006 ldr.w r0, [0x0801e5f6] ; [0x801e5f4:4]=0x4b5f8
| ||||||| 0x0801df52 0021 movs r1, 0
| ||||||| 0x0801df54 0180 strh r1, [r0]
| ==``----> 0x0801df56 42e3 b 0x801e5de
| `-------> 0x0801df58 dff8640b ldr.w r0, [0x0801eac4] ; [0x801eac4:4]=0x2001e6ec
| | ||| 0x0801df5c 0068 ldr r0, [r0]
| | ||| 0x0801df5e 0068 ldr r0, [r0]
| | ||| 0x0801df60 dff8601b ldr.w r1, [0x0801eac8] ; [0x801eac8:4]=0x20001704 md380_menu_ptr_to_80d032c
| | ||| 0x0801df64 0968 ldr r1, [r1]
| | ||| 0x0801df66 dff8602b ldr.w r2, [0x0801eace] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| | ||| 0x0801df6a 12eb8101 adds.w r1, r2, r1, lsl 2
| | ||| 0x0801df6e d1f87813 ldr.w r1, [r1, 0x378]
| | ||| 0x0801df72 8842 cmp r0, r1
| | ,====< 0x0801df74 0ed0 beq 0x801df94
| | |||| 0x0801df76 dff8480b ldr.w r0, [0x0801eac6] ; [0x801eac4:4]=0x2001e6ec
| | |||| 0x0801df7a 0068 ldr r0, [r0]
| | |||| 0x0801df7c 0068 ldr r0, [r0]
| | |||| 0x0801df7e dff8441b ldr.w r1, [0x0801eaca] ; [0x801eac8:4]=0x20001704 md380_menu_ptr_to_80d032c
| | |||| 0x0801df82 0968 ldr r1, [r1]
| | |||| 0x0801df84 dff8402b ldr.w r2, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| | |||| 0x0801df88 12eb8101 adds.w r1, r2, r1, lsl 2
| | |||| 0x0801df8c d1f87c13 ldr.w r1, [r1, 0x37c]
| | |||| 0x0801df90 8842 cmp r0, r1
| |,=====< 0x0801df92 00d1 bne 0x801df96
| ,==`----> 0x0801df94 23e3 b 0x801e5de
| ||`-----> 0x0801df96 dff8440b ldr.w r0, [0x0801eae2] ; [0x801eae0:4]=0x2001e87b
| || ||| 0x0801df9a 0078 ldrb r0, [r0]
| || ||| 0x0801df9c ff28 cmp r0, 0xff ; 255
| || ,====< 0x0801df9e 00f01e83 beq.w 0x801e5de
| || |||| 0x0801dfa2 dff8340b ldr.w r0, [0x0801eade] ; [0x801eadc:4]=0x2001e90c
| || |||| 0x0801dfa6 0078 ldrb r0, [r0]
| || |||| 0x0801dfa8 0328 cmp r0, 3 ; 3
| ||,=====< 0x0801dfaa 00f09280 beq.w 0x801e0d2
| ||||||| 0x0801dfae dff83c06 ldr.w r0, [0x0801e5f2] ; [0x801e5f0:4]=0x2001e848
| ||||||| 0x0801dfb2 0078 ldrb r0, [r0]
| ||||||| 0x0801dfb4 10f00f00 ands r0, r0, 0xf
| ||||||| 0x0801dfb8 0328 cmp r0, 3 ; 3
| ========< 0x0801dfba 05d0 beq 0x801dfc8
| ||||||| 0x0801dfbc dff82c06 ldr.w r0, [0x0801e5f0] ; [0x801e5f0:4]=0x2001e848
| ||||||| 0x0801dfc0 0078 ldrb r0, [r0]
| ||||||| 0x0801dfc2 0f21 movs r1, 0xf ; 15
| ||||||| 0x0801dfc4 0842 tst r0, r1
| ========< 0x0801dfc6 42d1 bne 0x801e04e
| --------> 0x0801dfc8 dff8000b ldr.w r0, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801dfcc 0078 ldrb r0, [r0]
| ||||||| 0x0801dfce 0028 cmp r0, 0
| ========< 0x0801dfd0 00f08180 beq.w 0x801e0d6
| ||||||| 0x0801dfd4 dff81006 ldr.w r0, [0x0801e5ec] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801dfd8 0021 movs r1, 0
| ||||||| 0x0801dfda 0170 strb r1, [r0]
| ||||||| 0x0801dfdc dff81006 ldr.w r0, [paint_a_lot] ; [0x801e5f4:4]=0x4b5f8
| ||||||| 0x0801dfe0 0021 movs r1, 0
| ||||||| 0x0801dfe2 0180 strh r1, [r0]
| ||||||| 0x0801dfe4 dff8e40a ldr.w r0, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801dfe8 0078 ldrb r0, [r0]
| ||||||| 0x0801dfea 401e subs r0, r0, 1
| ========< 0x0801dfec 0de0 b 0x801e00a
| --------> 0x0801dfee c0b2 uxtb r0, r0
| ||||||| 0x0801dff0 dff8dc1a ldr.w r1, [0x0801ead4] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801dff4 0968 ldr r1, [r1]
| ||||||| 0x0801dff6 11eb4001 adds.w r1, r1, r0, lsl 1
| ||||||| 0x0801dffa 4988 ldrh r1, [r1, 2]
| ||||||| 0x0801dffc c0b2 uxtb r0, r0
| ||||||| 0x0801dffe dff8d02a ldr.w r2, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e002 1268 ldr r2, [r2]
| ||||||| 0x0801e004 22f81010 strh.w r1, [r2, r0, lsl 1]
| ||||||| 0x0801e008 401c adds r0, r0, 1
| --------> 0x0801e00a c0b2 uxtb r0, r0
| ||||||| 0x0801e00c dff8c41a ldr.w r1, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e010 0978 ldrb r1, [r1]
| ||||||| 0x0801e012 491e subs r1, r1, 1
| ||||||| 0x0801e014 8842 cmp r0, r1
| ========< 0x0801e016 eadb blt 0x801dfee
| ||||||| 0x0801e018 dff8b80a ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e01c 0078 ldrb r0, [r0]
| ||||||| 0x0801e01e dff8b01a ldr.w r1, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e022 0968 ldr r1, [r1]
| ||||||| 0x0801e024 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801e028 0021 movs r1, 0
| ||||||| 0x0801e02a 20f8021c strh r1, [r0, -0x2]
| ||||||| 0x0801e02e dff89c0a ldr.w r0, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e032 0078 ldrb r0, [r0]
| ||||||| 0x0801e034 401e subs r0, r0, 1
| ||||||| 0x0801e036 dff8941a ldr.w r1, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e03a 0870 strb r0, [r1]
| ||||||| 0x0801e03c dff8940a ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e040 0078 ldrb r0, [r0]
| ||||||| 0x0801e042 401e subs r0, r0, 1
| ||||||| 0x0801e044 dff88c1a ldr.w r1, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e048 0870 strb r0, [r1]
| ||||||| 0x0801e04a 0124 movs r4, 1 ; 1
| ========< 0x0801e04c 43e0 b 0x801e0d6
| --------> 0x0801e04e dff87c0a ldr.w r0, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e052 0078 ldrb r0, [r0]
| ||||||| 0x0801e054 0028 cmp r0, 0
| ========< 0x0801e056 3ed0 beq 0x801e0d6
| ||||||| 0x0801e058 dff88c05 ldr.w r0, [0x0801e5ec] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801e05c 0021 movs r1, 0
| ||||||| 0x0801e05e 0170 strb r1, [r0]
| ||||||| 0x0801e060 dff88c05 ldr.w r0, [paint_a_lot] ; [0x801e5f4:4]=0x4b5f8
| ||||||| 0x0801e064 0021 movs r1, 0
| ||||||| 0x0801e066 0180 strh r1, [r0]
| ||||||| 0x0801e068 dff8600a ldr.w r0, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e06c 0078 ldrb r0, [r0]
| ||||||| 0x0801e06e 401e subs r0, r0, 1
| ========< 0x0801e070 0de0 b 0x801e08e
| --------> 0x0801e072 c0b2 uxtb r0, r0
| ||||||| 0x0801e074 dff8581a ldr.w r1, [0x0801ead4] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e078 0968 ldr r1, [r1]
| ||||||| 0x0801e07a 11eb4001 adds.w r1, r1, r0, lsl 1
| ||||||| 0x0801e07e 4988 ldrh r1, [r1, 2]
| ||||||| 0x0801e080 c0b2 uxtb r0, r0
| ||||||| 0x0801e082 dff84c2a ldr.w r2, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e086 1268 ldr r2, [r2]
| ||||||| 0x0801e088 22f81010 strh.w r1, [r2, r0, lsl 1]
| ||||||| 0x0801e08c 401c adds r0, r0, 1
| --------> 0x0801e08e c0b2 uxtb r0, r0
| ||||||| 0x0801e090 dff8401a ldr.w r1, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e094 0978 ldrb r1, [r1]
| ||||||| 0x0801e096 491e subs r1, r1, 1
| ||||||| 0x0801e098 8842 cmp r0, r1
| ========< 0x0801e09a eadb blt 0x801e072
| ||||||| 0x0801e09c dff8340a ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e0a0 0078 ldrb r0, [r0]
| ||||||| 0x0801e0a2 dff82c1a ldr.w r1, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e0a6 0968 ldr r1, [r1]
| ||||||| 0x0801e0a8 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801e0ac 0021 movs r1, 0
| ||||||| 0x0801e0ae 20f8021c strh r1, [r0, -0x2]
| ||||||| 0x0801e0b2 dff8180a ldr.w r0, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e0b6 0078 ldrb r0, [r0]
| ||||||| 0x0801e0b8 401e subs r0, r0, 1
| ||||||| 0x0801e0ba dff8101a ldr.w r1, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e0be 0870 strb r0, [r1]
| ||||||| 0x0801e0c0 dff8100a ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e0c4 0078 ldrb r0, [r0]
| ||||||| 0x0801e0c6 401e subs r0, r0, 1
| ||||||| 0x0801e0c8 dff8081a ldr.w r1, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e0cc 0870 strb r0, [r1]
| ||||||| 0x0801e0ce 0124 movs r4, 1 ; 1
| ========< 0x0801e0d0 01e0 b 0x801e0d6
| ||`-----> 0x0801e0d2 0ef013fb bl func_2c6fc
| --,=====< 0x0801e0d6 82e2 b 0x801e5de
| --------> 0x0801e0d8 dff80c05 ldr.w r0, [0x0801e5ec] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801e0dc 0021 movs r1, 0
| ||||||| 0x0801e0de 0170 strb r1, [r0]
| ||||||| 0x0801e0e0 dff80c05 ldr.w r0, [paint_a_lot] ; [0x801e5f4:4]=0x4b5f8
| ||||||| 0x0801e0e4 0021 movs r1, 0
| ||||||| 0x0801e0e6 0180 strh r1, [r0]
| ||||||| 0x0801e0e8 dff80005 ldr.w r0, [0x0801e5f0] ; [0x801e5f0:4]=0x2001e848
| ||||||| 0x0801e0ec 0078 ldrb r0, [r0]
| ||||||| 0x0801e0ee 10f00f00 ands r0, r0, 0xf
| ||||||| 0x0801e0f2 0328 cmp r0, 3 ; 3
| ========< 0x0801e0f4 25d0 beq 0x801e142
| ||||||| 0x0801e0f6 dff8f404 ldr.w r0, [0x0801e5f2] ; [0x801e5f0:4]=0x2001e848
| ||||||| 0x0801e0fa 0078 ldrb r0, [r0]
| ||||||| 0x0801e0fc 0228 cmp r0, 2 ; 2
| ========< 0x0801e0fe 07d2 bhs 0x801e110
| ||||||| 0x0801e100 dff8e804 ldr.w r0, [0x0801e5f0] ; [0x801e5f0:4]=0x2001e848
| ||||||| 0x0801e104 0078 ldrb r0, [r0]
| ||||||| 0x0801e106 401c adds r0, r0, 1
| ||||||| 0x0801e108 dff8e014 ldr.w r1, [0x0801e5f0] ; [0x801e5f0:4]=0x2001e848
| ||||||| 0x0801e10c 0870 strb r0, [r1]
| ========< 0x0801e10e 03e0 b 0x801e118
| --------> 0x0801e110 dff8d804 ldr.w r0, [0x0801e5f0] ; [0x801e5f0:4]=0x2001e848
| ||||||| 0x0801e114 0021 movs r1, 0
| ||||||| 0x0801e116 0170 strb r1, [r0]
| --------> 0x0801e118 dff8c409 ldr.w r0, [0x0801eae4] ; [0x801eae4:4]=0x2001e87e
| ||||||| 0x0801e11c 0021 movs r1, 0
| ||||||| 0x0801e11e 0170 strb r1, [r0]
| ||||||| 0x0801e120 dff8c009 ldr.w r0, [0x0801eae8] ; [0x801eae8:4]=0x2001e504
| ||||||| 0x0801e124 0021 movs r1, 0
| ||||||| 0x0801e126 0170 strb r1, [r0]
| ||||||| 0x0801e128 0020 movs r0, 0
| ========< 0x0801e12a 04e0 b 0x801e136
| --------> 0x0801e12c dff8b819 ldr.w r1, [0x0801eaec] ; [0x801eaec:4]=0x2001e94e
| ||||||| 0x0801e130 0022 movs r2, 0
| ||||||| 0x0801e132 4254 strb r2, [r0, r1]
| ||||||| 0x0801e134 401c adds r0, r0, 1
| --------> 0x0801e136 0a28 cmp r0, 0xa ; 10
| ========< 0x0801e138 f8db blt 0x801e12c
| ||||||| 0x0801e13a dff89c09 ldr.w r0, [0x0801eade] ; [0x801eadc:4]=0x2001e90c
| ||||||| 0x0801e13e 0521 movs r1, 5 ; 5
| ||||||| 0x0801e140 0170 strb r1, [r0]
| --------> 0x0801e142 4ce2 b 0x801e5de
| ||||||`-> 0x0801e144 dff89009 ldr.w r0, [0x0801eadc] ; [0x801eadc:4]=0x2001e90c
| |||||| 0x0801e148 0078 ldrb r0, [r0]
| |||||| 0x0801e14a 0328 cmp r0, 3 ; 3
| ||||||,=< 0x0801e14c 05d1 bne 0x801e15a
| ||||||| 0x0801e14e 0ef0c7f9 bl func_2c4e0
| ||||||| 0x0801e152 dff89809 ldr.w r0, [0x0801eaf2] ; [0x801eaf0:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0801e156 2021 movs r1, 0x20 ; 32
| ||||||| 0x0801e158 0170 strb r1, [r0]
| ======`-> 0x0801e15a 40e2 b 0x801e5de
| |`------> 0x0801e15c dff88c04 ldr.w r0, [0x0801e5f0] ; [0x801e5f0:4]=0x2001e848
| | |||| 0x0801e160 0078 ldrb r0, [r0]
| | |||| 0x0801e162 10f00f00 ands r0, r0, 0xf
| | |||| 0x0801e166 0328 cmp r0, 3 ; 3
| | ||||,=< 0x0801e168 4cd0 beq 0x801e204
| | ||||| 0x0801e16a dff88404 ldr.w r0, [0x0801e5f6] ; [0x801e5f4:4]=0x4b5f8
| | ||||| 0x0801e16e 0021 movs r1, 0
| | ||||| 0x0801e170 0180 strh r1, [r0]
| | ||||| 0x0801e172 dff86009 ldr.w r0, [0x0801eada] ; [0x801ead8:4]=0x20004ac9
| | ||||| 0x0801e176 0078 ldrb r0, [r0]
| | ||||| 0x0801e178 dff87419 ldr.w r1, [0x0801eaf4] ; [0x801eaf4:4]=0x2001e879
| | ||||| 0x0801e17c 0978 ldrb r1, [r1]
| | ||||| 0x0801e17e 8842 cmp r0, r1
| |,======< 0x0801e180 3fd2 bhs 0x801e202
| ||||||| 0x0801e182 dff87009 ldr.w r0, [0x0801eafa] ; [0x801eaf8:4]=0x8099974
| ||||||| 0x0801e186 0078 ldrb r0, [r0]
| ||||||| 0x0801e188 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x0801e18a 3ad2 bhs 0x801e202
| ||||||| 0x0801e18c dff83c09 ldr.w r0, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e190 0078 ldrb r0, [r0]
| ||||||| 0x0801e192 401c adds r0, r0, 1
| ||||||| 0x0801e194 dff83419 ldr.w r1, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e198 0870 strb r0, [r1]
| ||||||| 0x0801e19a dff83809 ldr.w r0, [0x0801eada] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e19e 0078 ldrb r0, [r0]
| ||||||| 0x0801e1a0 401c adds r0, r0, 1
| ||||||| 0x0801e1a2 dff83019 ldr.w r1, [0x0801eada] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e1a6 0870 strb r0, [r1]
| ||||||| 0x0801e1a8 dff83c04 ldr.w r0, [0x0801e5ec] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801e1ac 0021 movs r1, 0
| ||||||| 0x0801e1ae 0170 strb r1, [r0]
| ||||||| 0x0801e1b0 dff83809 ldr.w r0, [0x0801eaf0] ; [0x801eaf0:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0801e1b4 0570 strb r5, [r0]
| ||||||| 0x0801e1b6 dff81c09 ldr.w r0, [0x0801eada] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e1ba 0078 ldrb r0, [r0]
| ||||||| 0x0801e1bc 401e subs r0, r0, 1
| ========< 0x0801e1be 0ee0 b 0x801e1de
| --------> 0x0801e1c0 c0b2 uxtb r0, r0
| ||||||| 0x0801e1c2 dff80c19 ldr.w r1, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e1c6 0968 ldr r1, [r1]
| ||||||| 0x0801e1c8 11eb4001 adds.w r1, r1, r0, lsl 1
| ||||||| 0x0801e1cc 31f8021c ldrh r1, [r1, -0x2]
| ||||||| 0x0801e1d0 c0b2 uxtb r0, r0
| ||||||| 0x0801e1d2 dff8fc28 ldr.w r2, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e1d6 1268 ldr r2, [r2]
| ||||||| 0x0801e1d8 22f81010 strh.w r1, [r2, r0, lsl 1]
| ||||||| 0x0801e1dc 401e subs r0, r0, 1
| --------> 0x0801e1de dff8ec18 ldr.w r1, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e1e2 0978 ldrb r1, [r1]
| ||||||| 0x0801e1e4 c0b2 uxtb r0, r0
| ||||||| 0x0801e1e6 8842 cmp r0, r1
| ========< 0x0801e1e8 ead2 bhs 0x801e1c0
| ||||||| 0x0801e1ea dff8e008 ldr.w r0, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e1ee 0078 ldrb r0, [r0]
| ||||||| 0x0801e1f0 dff8dc18 ldr.w r1, [0x0801ead4] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e1f4 0968 ldr r1, [r1]
| ||||||| 0x0801e1f6 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801e1fa 2a21 movs r1, 0x2a ; '*' ; 42
| ||||||| 0x0801e1fc 20f8021c strh r1, [r0, -0x2]
| ||||||| 0x0801e200 0124 movs r4, 1 ; 1
| -`------> 0x0801e202 ece1 b 0x801e5de
| |,====`-> 0x0801e204 ebe1 b 0x801e5de
| ----`---> 0x0801e206 edb2 uxtb r5, r5
| |||| | 0x0801e208 0a2d cmp r5, 0xa ; 10
| |||| |,=< 0x0801e20a 80f0e881 bhs.w 0x801e5de
| |||| || 0x0801e20e dff8e013 ldr.w r1, [0x0801e5f6] ; [0x801e5f4:4]=0x4b5f8
| |||| || 0x0801e212 0022 movs r2, 0
| |||| || 0x0801e214 0a80 strh r2, [r1]
| |||| || 0x0801e216 dff8d413 ldr.w r1, [0x0801e5f2] ; [0x801e5f0:4]=0x2001e848
| |||| || 0x0801e21a 0978 ldrb r1, [r1]
| |||| || 0x0801e21c 11f00f01 ands r1, r1, 0xf
| |||| || 0x0801e220 0229 cmp r1, 2 ; 2
| ||||,===< 0x0801e222 00f04781 beq.w 0x801e4b4
| ||||||| 0x0801e226 dff8c013 ldr.w r1, [0x0801e5ee] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801e22a 0978 ldrb r1, [r1]
| ||||||| 0x0801e22c 0029 cmp r1, 0
| ========< 0x0801e22e 05d0 beq 0x801e23c
| ||||||| 0x0801e230 dff8b818 ldr.w r1, [0x0801eaf0] ; [0x801eaf0:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0801e234 0978 ldrb r1, [r1]
| ||||||| 0x0801e236 edb2 uxtb r5, r5
| ||||||| 0x0801e238 a942 cmp r1, r5
| ========< 0x0801e23a 3bd0 beq 0x801e2b4
| --------> 0x0801e23c dff89408 ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e240 0078 ldrb r0, [r0]
| ||||||| 0x0801e242 dff8ac18 ldr.w r1, [0x0801eaf6] ; [0x801eaf4:4]=0x2001e879
| ||||||| 0x0801e246 0978 ldrb r1, [r1]
| ||||||| 0x0801e248 8842 cmp r0, r1
| ========< 0x0801e24a 32d2 bhs 0x801e2b2
| ||||||| 0x0801e24c dff8a408 ldr.w r0, [0x0801eaf8] ; [0x801eaf8:4]=0x8099974
| ||||||| 0x0801e250 0078 ldrb r0, [r0]
| ||||||| 0x0801e252 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x0801e254 2dd2 bhs 0x801e2b2
| ||||||| 0x0801e256 dff87408 ldr.w r0, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e25a 0078 ldrb r0, [r0]
| ||||||| 0x0801e25c 401c adds r0, r0, 1
| ||||||| 0x0801e25e dff86c18 ldr.w r1, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e262 0870 strb r0, [r1]
| ||||||| 0x0801e264 dff86c08 ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e268 0078 ldrb r0, [r0]
| ||||||| 0x0801e26a 401c adds r0, r0, 1
| ||||||| 0x0801e26c dff86418 ldr.w r1, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e270 0870 strb r0, [r1]
| ||||||| 0x0801e272 dd48 ldr r0, [0x0801e5ea] ; [0x801e5e8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||||||| 0x0801e274 0021 movs r1, 0
| ||||||| 0x0801e276 0170 strb r1, [r0]
| ||||||| 0x0801e278 dff87008 ldr.w r0, [0x0801eaf0] ; [0x801eaf0:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0801e27c 0570 strb r5, [r0]
| ||||||| 0x0801e27e dff85408 ldr.w r0, [0x0801eada] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e282 0078 ldrb r0, [r0]
| ||||||| 0x0801e284 401e subs r0, r0, 1
| --------> 0x0801e286 dff84418 ldr.w r1, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e28a 0978 ldrb r1, [r1]
| ||||||| 0x0801e28c c0b2 uxtb r0, r0
| ||||||| 0x0801e28e 8842 cmp r0, r1
| ========< 0x0801e290 10d3 blo 0x801e2b4
| ||||||| 0x0801e292 c0b2 uxtb r0, r0
| ||||||| 0x0801e294 dff83818 ldr.w r1, [0x0801ead4] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e298 0968 ldr r1, [r1]
| ||||||| 0x0801e29a 11eb4001 adds.w r1, r1, r0, lsl 1
| ||||||| 0x0801e29e 31f8021c ldrh r1, [r1, -0x2]
| ||||||| 0x0801e2a2 c0b2 uxtb r0, r0
| ||||||| 0x0801e2a4 dff82828 ldr.w r2, [0x0801ead4] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e2a8 1268 ldr r2, [r2]
| ||||||| 0x0801e2aa 22f81010 strh.w r1, [r2, r0, lsl 1]
| ||||||| 0x0801e2ae 401e subs r0, r0, 1
| ========< 0x0801e2b0 e9e7 b 0x801e286
| --------> 0x0801e2b2 94e1 b 0x801e5de
| --------> 0x0801e2b4 edb2 uxtb r5, r5
| ||||||| 0x0801e2b6 dff84018 ldr.w r1, [0x0801eafe] ; [0x801eafc:4]=0x809772c
| ||||||| 0x0801e2ba 695c ldrb r1, [r5, r1]
| ||||||| 0x0801e2bc ca4a ldr r2, [0x0801e5e8] ; [0x801e5e8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||||||| 0x0801e2be 1278 ldrb r2, [r2]
| ||||||| 0x0801e2c0 521c adds r2, r2, 1
| ||||||| 0x0801e2c2 c94b ldr r3, [0x0801e5ea] ; [0x801e5e8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||||||| 0x0801e2c4 1a70 strb r2, [r3]
| ||||||| 0x0801e2c6 c9b2 uxtb r1, r1
| ||||||| 0x0801e2c8 d2b2 uxtb r2, r2
| ||||||| 0x0801e2ca 9142 cmp r1, r2
| ========< 0x0801e2cc 02d2 bhs 0x801e2d4
| ||||||| 0x0801e2ce c64a ldr r2, [0x0801e5ea] ; [0x801e5e8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||||||| 0x0801e2d0 0123 movs r3, 1 ; 1
| ||||||| 0x0801e2d2 1370 strb r3, [r2]
| --------> 0x0801e2d4 c54a ldr r2, [0x0801e5ec] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801e2d6 1278 ldrb r2, [r2]
| ||||||| 0x0801e2d8 12f00f02 ands r2, r2, 0xf
| ||||||| 0x0801e2dc 032a cmp r2, 3 ; 3
| ========< 0x0801e2de 05d0 beq 0x801e2ec
| ||||||| 0x0801e2e0 c24a ldr r2, [0x0801e5ec] ; [0x801e5ec:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801e2e2 1278 ldrb r2, [r2]
| ||||||| 0x0801e2e4 0f23 movs r3, 0xf ; 15
| ||||||| 0x0801e2e6 1a42 tst r2, r3
| ========< 0x0801e2e8 40f0c380 bne.w 0x801e472
| --------> 0x0801e2ec dff8d027 ldr.w r2, [0x0801eac4] ; [0x801eac4:4]=0x2001e6ec
| ||||||| 0x0801e2f0 1268 ldr r2, [r2]
| ||||||| 0x0801e2f2 1268 ldr r2, [r2]
| ||||||| 0x0801e2f4 dff8cc37 ldr.w r3, [0x0801eac8] ; [0x801eac8:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0801e2f8 1b68 ldr r3, [r3]
| ||||||| 0x0801e2fa dff8cc47 ldr.w r4, [0x0801eace] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801e2fe 14eb8303 adds.w r3, r4, r3, lsl 2
| ||||||| 0x0801e302 d3f87833 ldr.w r3, [r3, 0x378]
| ||||||| 0x0801e306 9a42 cmp r2, r3
| ========< 0x0801e308 0ed0 beq 0x801e328
| ||||||| 0x0801e30a dff8b427 ldr.w r2, [0x0801eac6] ; [0x801eac4:4]=0x2001e6ec
| ||||||| 0x0801e30e 1268 ldr r2, [r2]
| ||||||| 0x0801e310 1268 ldr r2, [r2]
| ||||||| 0x0801e312 dff8b037 ldr.w r3, [0x0801eaca] ; [0x801eac8:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0801e316 1b68 ldr r3, [r3]
| ||||||| 0x0801e318 dff8ac47 ldr.w r4, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801e31c 14eb8303 adds.w r3, r4, r3, lsl 2
| ||||||| 0x0801e320 d3f87c33 ldr.w r3, [r3, 0x37c]
| ||||||| 0x0801e324 9a42 cmp r2, r3
| ========< 0x0801e326 38d1 bne 0x801e39a
| --------> 0x0801e328 dff8a027 ldr.w r2, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e32c 1278 ldrb r2, [r2]
| ||||||| 0x0801e32e 032a cmp r2, 3 ; 3
| ========< 0x0801e330 33d1 bne 0x801e39a
| ||||||| 0x0801e332 edb2 uxtb r5, r5
| ||||||| 0x0801e334 dff8c007 ldr.w r0, [0x0801eafc] ; [0x801eafc:4]=0x809772c
| ||||||| 0x0801e338 2818 adds r0, r5, r0
| ||||||| 0x0801e33a 807f ldrb r0, [r0, 0x1e]
| ||||||| 0x0801e33c dff88c27 ldr.w r2, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e340 1278 ldrb r2, [r2]
| ||||||| 0x0801e342 dff88c37 ldr.w r3, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e346 1b68 ldr r3, [r3]
| ||||||| 0x0801e348 13eb4202 adds.w r2, r3, r2, lsl 1
| ||||||| 0x0801e34c c0b2 uxtb r0, r0
| ||||||| 0x0801e34e dff8ac37 ldr.w r3, [0x0801eb02] ; [0x801eb00:4]=0x2400b538
| ||||||| 0x0801e352 c05c ldrb r0, [r0, r3]
| ||||||| 0x0801e354 22f8020c strh r0, [r2, -0x2]
| ||||||| 0x0801e358 dff87007 ldr.w r0, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e35c 0078 ldrb r0, [r0]
| ||||||| 0x0801e35e 401c adds r0, r0, 1
| ||||||| 0x0801e360 dff86827 ldr.w r2, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e364 1070 strb r0, [r2]
| ||||||| 0x0801e366 dff86c07 ldr.w r0, [0x0801eada] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e36a 0078 ldrb r0, [r0]
| ||||||| 0x0801e36c 401c adds r0, r0, 1
| ||||||| 0x0801e36e dff86427 ldr.w r2, [0x0801eada] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e372 1070 strb r0, [r2]
| ||||||| 0x0801e374 9c48 ldr r0, [0x0801e5e8] ; [0x801e5e8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||||||| 0x0801e376 0022 movs r2, 0
| ||||||| 0x0801e378 0270 strb r2, [r0]
| ||||||| 0x0801e37a dff87007 ldr.w r0, [0x0801eaf2] ; [0x801eaf0:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0801e37e 0122 movs r2, 1 ; 1
| ||||||| 0x0801e380 0270 strb r2, [r0]
| ||||||| 0x0801e382 dff85007 ldr.w r0, [0x0801eada] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e386 0078 ldrb r0, [r0]
| ||||||| 0x0801e388 401e subs r0, r0, 1
| ||||||| 0x0801e38a c0b2 uxtb r0, r0
| ||||||| 0x0801e38c dff84027 ldr.w r2, [0x0801ead4] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e390 1268 ldr r2, [r2]
| ||||||| 0x0801e392 2e23 movs r3, 0x2e ; '.' ; 46
| ||||||| 0x0801e394 22f81030 strh.w r3, [r2, r0, lsl 1]
| ========< 0x0801e398 83e0 b 0x801e4a2
| --------> 0x0801e39a dff82427 ldr.w r2, [0x0801eac6] ; [0x801eac4:4]=0x2001e6ec
| ||||||| 0x0801e39e 1268 ldr r2, [r2]
| ||||||| 0x0801e3a0 1268 ldr r2, [r2]
| ||||||| 0x0801e3a2 dff82037 ldr.w r3, [0x0801eaca] ; [0x801eac8:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0801e3a6 1b68 ldr r3, [r3]
| ||||||| 0x0801e3a8 dff81c47 ldr.w r4, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801e3ac 14eb8303 adds.w r3, r4, r3, lsl 2
| ||||||| 0x0801e3b0 d3f87833 ldr.w r3, [r3, 0x378]
| ||||||| 0x0801e3b4 9a42 cmp r2, r3
| ========< 0x0801e3b6 0ed0 beq 0x801e3d6
| ||||||| 0x0801e3b8 dff80427 ldr.w r2, [0x0801eac4] ; [0x801eac4:4]=0x2001e6ec
| ||||||| 0x0801e3bc 1268 ldr r2, [r2]
| ||||||| 0x0801e3be 1268 ldr r2, [r2]
| ||||||| 0x0801e3c0 dff80037 ldr.w r3, [0x0801eac8] ; [0x801eac8:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0801e3c4 1b68 ldr r3, [r3]
| ||||||| 0x0801e3c6 dff80047 ldr.w r4, [0x0801eace] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801e3ca 14eb8303 adds.w r3, r4, r3, lsl 2
| ||||||| 0x0801e3ce d3f87c33 ldr.w r3, [r3, 0x37c]
| ||||||| 0x0801e3d2 9a42 cmp r2, r3
| ========< 0x0801e3d4 39d1 bne 0x801e44a
| --------> 0x0801e3d6 dff8f426 ldr.w r2, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e3da 1278 ldrb r2, [r2]
| ||||||| 0x0801e3dc 042a cmp r2, 4 ; 4
| ========< 0x0801e3de 34d1 bne 0x801e44a
| ||||||| 0x0801e3e0 c0b2 uxtb r0, r0
| ||||||| 0x0801e3e2 dff8ec26 ldr.w r2, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e3e6 1268 ldr r2, [r2]
| ||||||| 0x0801e3e8 2e23 movs r3, 0x2e ; '.' ; 46
| ||||||| 0x0801e3ea 22f81030 strh.w r3, [r2, r0, lsl 1]
| ||||||| 0x0801e3ee dff8dc06 ldr.w r0, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e3f2 0078 ldrb r0, [r0]
| ||||||| 0x0801e3f4 401c adds r0, r0, 1
| ||||||| 0x0801e3f6 dff8d426 ldr.w r2, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e3fa 1070 strb r0, [r2]
| ||||||| 0x0801e3fc dff8d406 ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e400 0078 ldrb r0, [r0]
| ||||||| 0x0801e402 401c adds r0, r0, 1
| ||||||| 0x0801e404 dff8cc26 ldr.w r2, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e408 1070 strb r0, [r2]
| ||||||| 0x0801e40a 7748 ldr r0, [0x0801e5ea] ; [0x801e5e8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||||||| 0x0801e40c 0022 movs r2, 0
| ||||||| 0x0801e40e 0270 strb r2, [r0]
| ||||||| 0x0801e410 dff8d806 ldr.w r0, [0x0801eaf0] ; [0x801eaf0:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0801e414 0122 movs r2, 1 ; 1
| ||||||| 0x0801e416 0270 strb r2, [r0]
| ||||||| 0x0801e418 dff8b806 ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e41c 0078 ldrb r0, [r0]
| ||||||| 0x0801e41e 401e subs r0, r0, 1
| ||||||| 0x0801e420 edb2 uxtb r5, r5
| ||||||| 0x0801e422 dff8d426 ldr.w r2, [0x0801eafe] ; [0x801eafc:4]=0x809772c
| ||||||| 0x0801e426 aa18 adds r2, r5, r2
| ||||||| 0x0801e428 927f ldrb r2, [r2, 0x1e]
| ||||||| 0x0801e42a 1000 movs r0, r2
| ||||||| 0x0801e42c dff89c26 ldr.w r2, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e430 1278 ldrb r2, [r2]
| ||||||| 0x0801e432 dff89c36 ldr.w r3, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e436 1b68 ldr r3, [r3]
| ||||||| 0x0801e438 13eb4202 adds.w r2, r3, r2, lsl 1
| ||||||| 0x0801e43c c0b2 uxtb r0, r0
| ||||||| 0x0801e43e dff8bc36 ldr.w r3, [0x0801eb02] ; [0x801eb00:4]=0x2400b538
| ||||||| 0x0801e442 c05c ldrb r0, [r0, r3]
| ||||||| 0x0801e444 22f8020c strh r0, [r2, -0x2]
| ========< 0x0801e448 2be0 b 0x801e4a2
| --------> 0x0801e44a edb2 uxtb r5, r5
| ||||||| 0x0801e44c dff8a806 ldr.w r0, [0x0801eafc] ; [0x801eafc:4]=0x809772c
| ||||||| 0x0801e450 2818 adds r0, r5, r0
| ||||||| 0x0801e452 807f ldrb r0, [r0, 0x1e]
| ||||||| 0x0801e454 dff87426 ldr.w r2, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e458 1278 ldrb r2, [r2]
| ||||||| 0x0801e45a dff87436 ldr.w r3, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e45e 1b68 ldr r3, [r3]
| ||||||| 0x0801e460 13eb4202 adds.w r2, r3, r2, lsl 1
| ||||||| 0x0801e464 c0b2 uxtb r0, r0
| ||||||| 0x0801e466 dff89436 ldr.w r3, [0x0801eb02] ; [0x801eb00:4]=0x2400b538
| ||||||| 0x0801e46a c05c ldrb r0, [r0, r3]
| ||||||| 0x0801e46c 22f8020c strh r0, [r2, -0x2]
| ========< 0x0801e470 17e0 b 0x801e4a2
| --------> 0x0801e472 edb2 uxtb r5, r5
| ||||||| 0x0801e474 dff88006 ldr.w r0, [0x0801eafc] ; [0x801eafc:4]=0x809772c
| ||||||| 0x0801e478 2818 adds r0, r5, r0
| ||||||| 0x0801e47a 007d ldrb r0, [r0, 0x14]
| ||||||| 0x0801e47c 5a4a ldr r2, [0x0801e5e8] ; [0x801e5e8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||||||| 0x0801e47e 1278 ldrb r2, [r2]
| ||||||| 0x0801e480 52fa80f0 uxtab r0, r2, r0
| ||||||| 0x0801e484 dff87426 ldr.w r2, [handle_keycode_F_4171] ; [0x801eb00:4]=0x2400b538
| ||||||| 0x0801e488 8018 adds r0, r0, r2
| ||||||| 0x0801e48a 10f8010c ldrb r0, [r0, -0x1]
| ||||||| 0x0801e48e dff83c26 ldr.w r2, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e492 1278 ldrb r2, [r2]
| ||||||| 0x0801e494 dff83836 ldr.w r3, [0x0801ead4] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e498 1b68 ldr r3, [r3]
| ||||||| 0x0801e49a 13eb4202 adds.w r2, r3, r2, lsl 1
| ||||||| 0x0801e49e 22f8020c strh r0, [r2, -0x2]
| --------> 0x0801e4a2 0124 movs r4, 1 ; 1
| ||||||| 0x0801e4a4 c9b2 uxtb r1, r1
| ||||||| 0x0801e4a6 0129 cmp r1, 1 ; 1
| ========< 0x0801e4a8 40f09980 bne.w 0x801e5de
| ||||||| 0x0801e4ac 4e48 ldr r0, [0x0801e5e8] ; [0x801e5e8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||||||| 0x0801e4ae 0021 movs r1, 0
| ||||||| 0x0801e4b0 0170 strb r1, [r0]
| ========< 0x0801e4b2 94e0 b 0x801e5de
| ||||`---> 0x0801e4b4 edb2 uxtb r5, r5
| |||| || 0x0801e4b6 002d cmp r5, 0
| ||||,===< 0x0801e4b8 4ad1 bne 0x801e550
| ||||||| 0x0801e4ba 4d48 ldr r0, [0x0801e5f2] ; [0x801e5f0:4]=0x2001e848
| ||||||| 0x0801e4bc 0021 movs r1, 0
| ||||||| 0x0801e4be 0180 strh r1, [r0]
| ||||||| 0x0801e4c0 dff81006 ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e4c4 0078 ldrb r0, [r0]
| ||||||| 0x0801e4c6 dff82816 ldr.w r1, [0x0801eaf6] ; [0x801eaf4:4]=0x2001e879
| ||||||| 0x0801e4ca 0978 ldrb r1, [r1]
| ||||||| 0x0801e4cc 8842 cmp r0, r1
| ========< 0x0801e4ce 3ed2 bhs 0x801e54e
| ||||||| 0x0801e4d0 dff82006 ldr.w r0, [0x0801eaf8] ; [0x801eaf8:4]=0x8099974
| ||||||| 0x0801e4d4 0078 ldrb r0, [r0]
| ||||||| 0x0801e4d6 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x0801e4d8 39d2 bhs 0x801e54e
| ||||||| 0x0801e4da dff8f005 ldr.w r0, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e4de 0078 ldrb r0, [r0]
| ||||||| 0x0801e4e0 401c adds r0, r0, 1
| ||||||| 0x0801e4e2 dff8e815 ldr.w r1, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e4e6 0870 strb r0, [r1]
| ||||||| 0x0801e4e8 dff8e805 ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e4ec 0078 ldrb r0, [r0]
| ||||||| 0x0801e4ee 401c adds r0, r0, 1
| ||||||| 0x0801e4f0 dff8e015 ldr.w r1, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e4f4 0870 strb r0, [r1]
| ||||||| 0x0801e4f6 3c48 ldr r0, [0x0801e5ea] ; [0x801e5e8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||||||| 0x0801e4f8 0021 movs r1, 0
| ||||||| 0x0801e4fa 0170 strb r1, [r0]
| ||||||| 0x0801e4fc dff8ec05 ldr.w r0, [0x0801eaf0] ; [0x801eaf0:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0801e500 0570 strb r5, [r0]
| ||||||| 0x0801e502 dff8d005 ldr.w r0, [0x0801eada] ; [0x801ead8:4]=0x20004ac9
| ||||||| 0x0801e506 0078 ldrb r0, [r0]
| ||||||| 0x0801e508 401e subs r0, r0, 1
| ========< 0x0801e50a 0ee0 b 0x801e52a
| --------> 0x0801e50c c0b2 uxtb r0, r0
| ||||||| 0x0801e50e dff8c015 ldr.w r1, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e512 0968 ldr r1, [r1]
| ||||||| 0x0801e514 11eb4001 adds.w r1, r1, r0, lsl 1
| ||||||| 0x0801e518 31f8021c ldrh r1, [r1, -0x2]
| ||||||| 0x0801e51c c0b2 uxtb r0, r0
| ||||||| 0x0801e51e dff8b025 ldr.w r2, [0x0801ead6] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e522 1268 ldr r2, [r2]
| ||||||| 0x0801e524 22f81010 strh.w r1, [r2, r0, lsl 1]
| ||||||| 0x0801e528 401e subs r0, r0, 1
| --------> 0x0801e52a dff8a015 ldr.w r1, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e52e 0978 ldrb r1, [r1]
| ||||||| 0x0801e530 c0b2 uxtb r0, r0
| ||||||| 0x0801e532 8842 cmp r0, r1
| ========< 0x0801e534 ead2 bhs 0x801e50c
| ||||||| 0x0801e536 dff89405 ldr.w r0, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0801e53a 0078 ldrb r0, [r0]
| ||||||| 0x0801e53c dff89015 ldr.w r1, [0x0801ead4] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0801e540 0968 ldr r1, [r1]
| ||||||| 0x0801e542 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0801e546 2021 movs r1, 0x20 ; 32
| ||||||| 0x0801e548 20f8021c strh r1, [r0, -0x2]
| ||||||| 0x0801e54c 0124 movs r4, 1 ; 1
| --------> 0x0801e54e 46e0 b 0x801e5de
| ||||`---> 0x0801e550 2548 ldr r0, [0x0801e5e8] ; [0x801e5e8:4]=0x2001e947 md380_menu_0x2001d3f1
| |||| || 0x0801e552 0021 movs r1, 0
| |||| || 0x0801e554 0170 strb r1, [r0]
| |||| || 0x0801e556 dff88005 ldr.w r0, [0x0801eade] ; [0x801eadc:4]=0x2001e90c
| |||| || 0x0801e55a 0321 movs r1, 3 ; 3
| |||| || 0x0801e55c 0170 strb r1, [r0]
| |||| || 0x0801e55e dff83c0b ldr.w r0, [0x0801f0a2] ; [0x801f0a0:4]=0x80cf780 gfx_font_norm
| |||| || 0x0801e562 03f087f9 bl gfx_select_font
| |||| || 0x0801e566 edb2 uxtb r5, r5
| |||| || 0x0801e568 dff88c05 ldr.w r0, [0x0801eafc] ; [0x801eafc:4]=0x809772c
| |||| || 0x0801e56c 2818 adds r0, r5, r0
| |||| || 0x0801e56e 807f ldrb r0, [r0, 0x1e]
| |||| || 0x0801e570 dff86c15 ldr.w r1, [0x0801eae4] ; [0x801eae4:4]=0x2001e87e
| |||| || 0x0801e574 0978 ldrb r1, [r1]
| |||| || 0x0801e576 dff87025 ldr.w r2, [0x0801eaee] ; [0x801eaec:4]=0x2001e94e
| |||| || 0x0801e57a c0b2 uxtb r0, r0
| |||| || 0x0801e57c dff87c35 ldr.w r3, [handle_keycode_F_4171] ; [0x801eb00:4]=0x2400b538
| |||| || 0x0801e580 c05c ldrb r0, [r0, r3]
| |||| || 0x0801e582 8854 strb r0, [r1, r2]
| |||| || 0x0801e584 dff85805 ldr.w r0, [0x0801eae4] ; [0x801eae4:4]=0x2001e87e
| |||| || 0x0801e588 0078 ldrb r0, [r0]
| |||| || 0x0801e58a 401c adds r0, r0, 1
| |||| || 0x0801e58c dff85015 ldr.w r1, [0x0801eae4] ; [0x801eae4:4]=0x2001e87e
| |||| || 0x0801e590 0870 strb r0, [r1]
| |||| || 0x0801e592 dff84c05 ldr.w r0, [0x0801eae6] ; [0x801eae4:4]=0x2001e87e
| |||| || 0x0801e596 0178 ldrb r1, [r0]
| |||| || 0x0801e598 dff84c05 ldr.w r0, [0x0801eaec] ; [0x801eaec:4]=0x2001e94e
| |||| || 0x0801e59c 0df06af9 bl func_2b874
| |||| || 0x0801e5a0 0021 movs r1, 0
| |||| || 0x0801e5a2 13f0adf9 bl func_31900
| |||| || 0x0801e5a6 0028 cmp r0, 0
| ||||,===< 0x0801e5a8 0dd1 bne 0x801e5c6
| ||||||| 0x0801e5aa dff83405 ldr.w r0, [0x0801eae6] ; [0x801eae4:4]=0x2001e87e
| ||||||| 0x0801e5ae 0078 ldrb r0, [r0]
| ||||||| 0x0801e5b0 401e subs r0, r0, 1
| ||||||| 0x0801e5b2 dff82c15 ldr.w r1, [0x0801eae6] ; [0x801eae4:4]=0x2001e87e
| ||||||| 0x0801e5b6 0870 strb r0, [r1]
| ||||||| 0x0801e5b8 dff82405 ldr.w r0, [0x0801eae4] ; [0x801eae4:4]=0x2001e87e
| ||||||| 0x0801e5bc 0078 ldrb r0, [r0]
| ||||||| 0x0801e5be dff82815 ldr.w r1, [0x0801eaee] ; [0x801eaec:4]=0x2001e94e
| ||||||| 0x0801e5c2 0022 movs r2, 0
| ||||||| 0x0801e5c4 4254 strb r2, [r0, r1]
| ||||`---> 0x0801e5c6 7ff07f40 mvns r0, 0xff000000
| |||| || 0x0801e5ca fef7cdfe bl gfx_set_bg_color
| |||| || 0x0801e5ce 0020 movs r0, 0
| |||| || 0x0801e5d0 fef7cefe bl gfx_set_fg_color
| |||| || 0x0801e5d4 dff8c80a ldr.w r0, [0x0801f0a4] ; [0x801f0a4:4]=0x2001e6fc
| |||| || 0x0801e5d8 03f04cf9 bl gfx_select_font
| |||| || 0x0801e5dc 0124 movs r4, 1 ; 1
| ````--`-> 0x0801e5de 2000 movs r0, r4
| | 0x0801e5e0 c0b2 uxtb r0, r0
\ `--> 0x0801e5e2 32bd pop {r1, r4, r5, pc}
/ (fcn) paint_a_lot 1224
| Caller: func_0c7e8 mainloop_entry
| paint_a_lot ();
| 0x0801e5f4 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x0801e5f6 0400 movs r4, r0
| 0x0801e5f8 dff8a80a ldr.w r0, [0x0801f0a8] ; [0x801f0a8:4]=0x2001e94d gui_opmode1
| 0x0801e5fc 0068 ldr r0, [r0]
| 0x0801e5fe 007b ldrb r0, [r0, 0xc]
| 0x0801e600 1f21 movs r1, 0x1f ; 31
| 0x0801e602 0842 tst r0, r1
| ,=< 0x0801e604 07d0 beq 0x801e616
| | 0x0801e606 dff89c0a ldr.w r0, [0x0801f0aa] ; [0x801f0a8:4]=0x2001e94d gui_opmode1
| | 0x0801e60a 0068 ldr r0, [r0]
| | 0x0801e60c 007b ldrb r0, [r0, 0xc]
| | 0x0801e60e 10f01f00 ands r0, r0, 0x1f
| | 0x0801e612 0128 cmp r0, 1 ; 1
| ,==< 0x0801e614 06d1 bne 0x801e624
| |`-> 0x0801e616 dff8900a ldr.w r0, [0x0801f0ae] ; [0x801f0ac:4]=0x2001e94b gui_opmode2
| | 0x0801e61a 0078 ldrb r0, [r0]
| | 0x0801e61c 1d28 cmp r0, 0x1d ; 29
| |,=< 0x0801e61e 01d0 beq 0x801e624
| || 0x0801e620 eff782fd bl F_4154
| ``-> 0x0801e624 dff8840a ldr.w r0, [0x0801f0b0] ; [0x801f0b0:4]=0x20004acc md380_menu_depth
| 0x0801e628 0078 ldrb r0, [r0]
| 0x0801e62a 0a28 cmp r0, 0xa ; 10
| ,=< 0x0801e62c 05d0 beq 0x801e63a
| | 0x0801e62e dff87c0a ldr.w r0, [0x0801f0b2] ; [0x801f0b0:4]=0x20004acc md380_menu_depth
| | 0x0801e632 0078 ldrb r0, [r0]
| | 0x0801e634 0528 cmp r0, 5 ; 5
| ,==< 0x0801e636 40f04082 bne.w 0x801eaba
| |`-> 0x0801e63a dff8740a ldr.w r0, [0x0801f0b6] ; [0x801f0b4:4]=0x2001e94f
| | 0x0801e63e 0078 ldrb r0, [r0]
| | 0x0801e640 1028 cmp r0, 0x10 ; 16
| |,=< 0x0801e642 80f02b82 bhs.w 0x801ea9c
| || 0x0801e646 dff85c0a ldr.w r0, [0x0801f0aa] ; [0x801f0a8:4]=0x2001e94d gui_opmode1
| || 0x0801e64a 0068 ldr r0, [r0]
| || 0x0801e64c 007b ldrb r0, [r0, 0xc]
| || 0x0801e64e 10f01f00 ands r0, r0, 0x1f
| || 0x0801e652 0328 cmp r0, 3 ; 3
| ,===< 0x0801e654 26db blt 0x801e6a4
| ||| 0x0801e656 dff84c0a ldr.w r0, [0x0801f0aa] ; [0x801f0a8:4]=0x2001e94d gui_opmode1
| ||| 0x0801e65a 0068 ldr r0, [r0]
| ||| 0x0801e65c 007b ldrb r0, [r0, 0xc]
| ||| 0x0801e65e 10f01f00 ands r0, r0, 0x1f
| ||| 0x0801e662 0828 cmp r0, 8 ; 8
| ,====< 0x0801e664 1ed0 beq 0x801e6a4
| |||| 0x0801e666 dff85804 ldr.w r0, [0x0801eac6] ; [0x801eac4:4]=0x2001e6ec
| |||| 0x0801e66a 0068 ldr r0, [r0]
| |||| 0x0801e66c 0068 ldr r0, [r0]
| |||| 0x0801e66e dff85414 ldr.w r1, [0x0801eaca] ; [0x801eac8:4]=0x20001704 md380_menu_ptr_to_80d032c
| |||| 0x0801e672 0968 ldr r1, [r1]
| |||| 0x0801e674 dff85024 ldr.w r2, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| |||| 0x0801e678 12eb8101 adds.w r1, r2, r1, lsl 2
| |||| 0x0801e67c d1f8f812 ldr.w r1, [r1, 0x2f8]
| |||| 0x0801e680 8842 cmp r0, r1
| ,=====< 0x0801e682 0fd0 beq 0x801e6a4
| ||||| 0x0801e684 dff83804 ldr.w r0, [0x0801eac4] ; [0x801eac4:4]=0x2001e6ec
| ||||| 0x0801e688 0068 ldr r0, [r0]
| ||||| 0x0801e68a 0068 ldr r0, [r0]
| ||||| 0x0801e68c dff83414 ldr.w r1, [0x0801eac8] ; [0x801eac8:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||| 0x0801e690 0968 ldr r1, [r1]
| ||||| 0x0801e692 dff83424 ldr.w r2, [0x0801eace] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||| 0x0801e696 12eb8101 adds.w r1, r2, r1, lsl 2
| ||||| 0x0801e69a d1f80413 ldr.w r1, [r1, 0x304]
| ||||| 0x0801e69e 8842 cmp r0, r1
| ,======< 0x0801e6a0 40f0fc81 bne.w 0x801ea9c
| |```---> 0x0801e6a4 f120 movs r0, 0xf1 ; 241
| | || 0x0801e6a6 fff759fb bl often_called_something_keycode_menu
| | || 0x0801e6aa e4b2 uxtb r4, r4
| | || 0x0801e6ac 002c cmp r4, 0
| | ,===< 0x0801e6ae 0bd0 beq 0x801e6c8
| | ||| 0x0801e6b0 dff8000a ldr.w r0, [0x0801f0b8] ; [0x801f0b8:4]=0x2001e950
| | ||| 0x0801e6b4 0078 ldrb r0, [r0]
| | ||| 0x0801e6b6 401c adds r0, r0, 1
| | ||| 0x0801e6b8 dff8f819 ldr.w r1, [0x0801f0b8] ; [0x801f0b8:4]=0x2001e950
| | ||| 0x0801e6bc 0870 strb r0, [r1]
| | ||| 0x0801e6be c0b2 uxtb r0, r0
| | ||| 0x0801e6c0 e4b2 uxtb r4, r4
| | ||| 0x0801e6c2 a042 cmp r0, r4
| | ,====< 0x0801e6c4 04d2 bhs 0x801e6d0
| |,=====< 0x0801e6c6 f8e1 b 0x801eaba
| |||`---> 0x0801e6c8 dff8ec09 ldr.w r0, [0x0801f0bc] ; [0x801f0bc:4]=0x2001e948
| ||| || 0x0801e6cc 0121 movs r1, 1 ; 1
| ||| || 0x0801e6ce 0170 strb r1, [r0]
| ||`----> 0x0801e6d0 dff8e009 ldr.w r0, [0x0801f0b8] ; [0x801f0b8:4]=0x2001e950
| || || 0x0801e6d4 0021 movs r1, 0
| || || 0x0801e6d6 0170 strb r1, [r0]
| || || 0x0801e6d8 dff8c809 ldr.w r0, [0x0801f0a8] ; [0x801f0a8:4]=0x2001e94d gui_opmode1
| || || 0x0801e6dc 0068 ldr r0, [r0]
| || || 0x0801e6de 007b ldrb r0, [r0, 0xc]
| || || 0x0801e6e0 1f21 movs r1, 0x1f ; 31
| || || 0x0801e6e2 0842 tst r0, r1
| || ,===< 0x0801e6e4 07d0 beq 0x801e6f6
| || ||| 0x0801e6e6 dff8bc09 ldr.w r0, [0x0801f0aa] ; [0x801f0a8:4]=0x2001e94d gui_opmode1
| || ||| 0x0801e6ea 0068 ldr r0, [r0]
| || ||| 0x0801e6ec 007b ldrb r0, [r0, 0xc]
| || ||| 0x0801e6ee 10f01f00 ands r0, r0, 0x1f
| || ||| 0x0801e6f2 0828 cmp r0, 8 ; 8
| ||,====< 0x0801e6f4 47d1 bne 0x801e786
| |||`---> 0x0801e6f6 0020 movs r0, 0
| ||| || 0x0801e6f8 fef73afe bl gfx_set_fg_color
| ||| || 0x0801e6fc dff8d003 ldr.w r0, [0x0801ead4] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||| || 0x0801e700 0468 ldr r4, [r0]
| ||| || 0x0801e702 dff8c803 ldr.w r0, [0x0801ead2] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| ||| || 0x0801e706 0578 ldrb r5, [r0]
| ||| || 0x0801e708 dff8c803 ldr.w r0, [0x0801ead8] ; [0x801ead8:4]=0x20004ac9
| ||| || 0x0801e70c 0678 ldrb r6, [r0]
| ||| || 0x0801e70e 0020 movs r0, 0
| ||| || 0x0801e710 fef72efe bl gfx_set_fg_color
| ||| || 0x0801e714 ff23 movs r3, 0xff ; 255
| ||| || 0x0801e716 1722 movs r2, 0x17 ; 23
| ||| || 0x0801e718 0321 movs r1, 3 ; 3
| ||| || 0x0801e71a 2000 movs r0, r4
| ||| || 0x0801e71c fff734f9 bl gfx_1d988
| ||| || 0x0801e720 dff8d013 ldr.w r1, [0x0801eaf8] ; [0x801eaf8:4]=0x8099974
| ||| || 0x0801e724 0978 ldrb r1, [r1]
| ||| || 0x0801e726 eff780fc bl F_4220
| ||| || 0x0801e72a 03f0adf8 bl gfx_get_xpos
| ||| || 0x0801e72e dff88c19 ldr.w r1, [0x0801f0c2] ; [0x801f0c0:4]=0x2001e949
| ||| || 0x0801e732 0870 strb r0, [r1]
| ||| || 0x0801e734 03f0acf8 bl gfx_get_ypos
| ||| || 0x0801e738 0700 movs r7, r0
| ||| || 0x0801e73a 7ff07f40 mvns r0, 0xff000000
| ||| || 0x0801e73e fef717fe bl gfx_set_fg_color
| ||| || 0x0801e742 dff89403 ldr.w r0, [0x0801eade] ; [0x801eadc:4]=0x2001e90c
| ||| || 0x0801e746 0078 ldrb r0, [r0]
| ||| || 0x0801e748 0528 cmp r0, 5 ; 5
| |||,===< 0x0801e74a 0dd1 bne 0x801e768
| |||||| 0x0801e74c 6d23 movs r3, 0x6d ; 'm' ; 109
| |||||| 0x0801e74e 0222 movs r2, 2 ; 2
| |||||| 0x0801e750 1421 movs r1, 0x14 ; 20
| |||||| 0x0801e752 0020 movs r0, 0
| |||||| 0x0801e754 fff79af8 bl gfx_blockfill
| |||||| 0x0801e758 6d23 movs r3, 0x6d ; 'm' ; 109
| |||||| 0x0801e75a 9b22 movs r2, 0x9b ; 155
| |||||| 0x0801e75c 17f11001 adds.w r1, r7, 0x10
| |||||| 0x0801e760 0020 movs r0, 0
| |||||| 0x0801e762 fff793f8 bl gfx_blockfill
| ,=======< 0x0801e766 06e0 b 0x801e776
| ||||`---> 0x0801e768 5123 movs r3, 0x51 ; 'Q' ; 81
| |||| || 0x0801e76a 9b22 movs r2, 0x9b ; 155
| |||| || 0x0801e76c 17f11001 adds.w r1, r7, 0x10
| |||| || 0x0801e770 0020 movs r0, 0
| |||| || 0x0801e772 fff78bf8 bl gfx_blockfill
| `-------> 0x0801e776 0020 movs r0, 0
| ||| || 0x0801e778 fef7fafd bl gfx_set_fg_color
| ||| || 0x0801e77c dff84009 ldr.w r0, [0x0801f0c4] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| ||| || 0x0801e780 0121 movs r1, 1 ; 1
| ||| || 0x0801e782 0170 strb r1, [r0]
| |||,===< 0x0801e784 51e0 b 0x801e82a
| ||`----> 0x0801e786 ce48 ldr r0, [0x0801eac2] ; [0x801eac0:4]=0x2001e700 menu_memory_poi
| || ||| 0x0801e788 0068 ldr r0, [r0]
| || ||| 0x0801e78a 0068 ldr r0, [r0]
| || ||| 0x0801e78c cd49 ldr r1, [0x0801eac4] ; [0x801eac4:4]=0x2001e6ec
| || ||| 0x0801e78e 0968 ldr r1, [r1]
| || ||| 0x0801e790 cd4a ldr r2, [0x0801eac8] ; [0x801eac8:4]=0x20001704 md380_menu_ptr_to_80d032c
| || ||| 0x0801e792 12eb8101 adds.w r1, r2, r1, lsl 2
| || ||| 0x0801e796 d1f8f812 ldr.w r1, [r1, 0x2f8]
| || ||| 0x0801e79a 8842 cmp r0, r1
| ||,====< 0x0801e79c 0bd0 beq 0x801e7b6
| |||||| 0x0801e79e c848 ldr r0, [0x0801eac2] ; [0x801eac0:4]=0x2001e700 menu_memory_poi
| |||||| 0x0801e7a0 0068 ldr r0, [r0]
| |||||| 0x0801e7a2 0068 ldr r0, [r0]
| |||||| 0x0801e7a4 c749 ldr r1, [0x0801eac4] ; [0x801eac4:4]=0x2001e6ec
| |||||| 0x0801e7a6 0968 ldr r1, [r1]
| |||||| 0x0801e7a8 c74a ldr r2, [0x0801eac8] ; [0x801eac8:4]=0x20001704 md380_menu_ptr_to_80d032c
| |||||| 0x0801e7aa 12eb8101 adds.w r1, r2, r1, lsl 2
| |||||| 0x0801e7ae d1f80413 ldr.w r1, [r1, 0x304]
| |||||| 0x0801e7b2 8842 cmp r0, r1
| ,=======< 0x0801e7b4 06d1 bne 0x801e7c4
| |||`----> 0x0801e7b6 dff80c49 ldr.w r4, [0x0801f0ca] ; [0x801f0c8:4]=0x2001e947 md380_menu_0x2001d3f1
| ||| ||| 0x0801e7ba dff80409 ldr.w r0, [0x0801f0c6] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| ||| ||| 0x0801e7be 0321 movs r1, 3 ; 3
| ||| ||| 0x0801e7c0 0170 strb r1, [r0]
| |||,====< 0x0801e7c2 32e0 b 0x801e82a
| `-------> 0x0801e7c4 c248 ldr r0, [0x0801ead0] ; [0x801ead0:4]=0x200049fc mn_editbuffer_poi
| |||||| 0x0801e7c6 0468 ldr r4, [r0]
| |||||| 0x0801e7c8 c048 ldr r0, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| |||||| 0x0801e7ca 0578 ldrb r5, [r0]
| |||||| 0x0801e7cc c148 ldr r0, [0x0801ead4] ; [0x801ead4:4]=0x2001e944 md380_menu_cursor_pos_1
| |||||| 0x0801e7ce 0678 ldrb r6, [r0]
| |||||| 0x0801e7d0 0020 movs r0, 0
| |||||| 0x0801e7d2 fef7cdfd bl gfx_set_fg_color
| |||||| 0x0801e7d6 ff23 movs r3, 0xff ; 255
| |||||| 0x0801e7d8 1722 movs r2, 0x17 ; 23
| |||||| 0x0801e7da 0321 movs r1, 3 ; 3
| |||||| 0x0801e7dc 2000 movs r0, r4
| |||||| 0x0801e7de fff7d3f8 bl gfx_1d988
| |||||| 0x0801e7e2 03f051f8 bl gfx_get_xpos
| |||||| 0x0801e7e6 dff8d418 ldr.w r1, [0x0801f0c2] ; [0x801f0c0:4]=0x2001e949
| |||||| 0x0801e7ea 0870 strb r0, [r1]
| |||||| 0x0801e7ec 03f050f8 bl gfx_get_ypos
| |||||| 0x0801e7f0 0700 movs r7, r0
| |||||| 0x0801e7f2 7ff07f40 mvns r0, 0xff000000
| |||||| 0x0801e7f6 fef7bbfd bl gfx_set_fg_color
| |||||| 0x0801e7fa 17f11003 adds.w r3, r7, 0x10
| |||||| 0x0801e7fe 9522 movs r2, 0x95 ; 149
| |||||| 0x0801e800 3900 movs r1, r7
| |||||| 0x0801e802 dff8b808 ldr.w r0, [0x0801f0c2] ; [0x801f0c0:4]=0x2001e949
| |||||| 0x0801e806 0078 ldrb r0, [r0]
| |||||| 0x0801e808 fff740f8 bl gfx_blockfill
| |||||| 0x0801e80c 17f12103 adds.w r3, r7, 0x21
| |||||| 0x0801e810 9522 movs r2, 0x95 ; 149
| |||||| 0x0801e812 17f11101 adds.w r1, r7, 0x11
| |||||| 0x0801e816 0320 movs r0, 3 ; 3
| |||||| 0x0801e818 fff738f8 bl gfx_blockfill
| |||||| 0x0801e81c 0020 movs r0, 0
| |||||| 0x0801e81e fef7a7fd bl gfx_set_fg_color
| |||||| 0x0801e822 dff89c08 ldr.w r0, [0x0801f0c6] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| |||||| 0x0801e826 0221 movs r1, 2 ; 2
| |||||| 0x0801e828 0170 strb r1, [r0]
| ||``---> 0x0801e82a dff88c08 ldr.w r0, [0x0801f0be] ; [0x801f0bc:4]=0x2001e948
| || || 0x0801e82e 0078 ldrb r0, [r0]
| || || 0x0801e830 0028 cmp r0, 0
| || ,===< 0x0801e832 06d0 beq 0x801e842
| || ||| 0x0801e834 dff88008 ldr.w r0, [0x0801f0bc] ; [0x801f0bc:4]=0x2001e948
| || ||| 0x0801e838 0021 movs r1, 0
| || ||| 0x0801e83a 0170 strb r1, [r0]
| || ||| 0x0801e83c a348 ldr r0, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| || ||| 0x0801e83e 0578 ldrb r5, [r0]
| ||,====< 0x0801e840 04e0 b 0x801e84c
| |||`---> 0x0801e842 dff87408 ldr.w r0, [0x0801f0be] ; [0x801f0bc:4]=0x2001e948
| ||| || 0x0801e846 0121 movs r1, 1 ; 1
| ||| || 0x0801e848 0170 strb r1, [r0]
| ||| || 0x0801e84a 0025 movs r5, 0
| ||`----> 0x0801e84c dff87808 ldr.w r0, [0x0801f0cc] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| || || 0x0801e850 0078 ldrb r0, [r0]
| || || 0x0801e852 0028 cmp r0, 0
| || ,===< 0x0801e854 00d1 bne 0x801e858
| || ||| 0x0801e856 0025 movs r5, 0
| || `---> 0x0801e858 dff86408 ldr.w r0, [0x0801f0c4] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| || || 0x0801e85c 0078 ldrb r0, [r0]
| || || 0x0801e85e 0128 cmp r0, 1 ; 1
| || ,===< 0x0801e860 76d1 bne 0x801e950
| || ||| 0x0801e862 0020 movs r0, 0
| || ||| 0x0801e864 fef784fd bl gfx_set_fg_color
| || ||| 0x0801e868 9848 ldr r0, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| || ||| 0x0801e86a 0378 ldrb r3, [r0]
| || ||| 0x0801e86c 1722 movs r2, 0x17 ; 23
| || ||| 0x0801e86e 0321 movs r1, 3 ; 3
| || ||| 0x0801e870 2000 movs r0, r4
| || ||| 0x0801e872 fff789f8 bl gfx_1d988
| || ||| 0x0801e876 edb2 uxtb r5, r5
| || ||| 0x0801e878 002d cmp r5, 0
| ||,====< 0x0801e87a 31d0 beq 0x801e8e0
| |||||| 0x0801e87c 9348 ldr r0, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| |||||| 0x0801e87e 0078 ldrb r0, [r0]
| |||||| 0x0801e880 edb2 uxtb r5, r5
| |||||| 0x0801e882 8542 cmp r5, r0
| ,=======< 0x0801e884 2cd1 bne 0x801e8e0
| ||||||| 0x0801e886 9148 ldr r0, [0x0801eace] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801e888 0078 ldrb r0, [r0]
| ||||||| 0x0801e88a 431e subs r3, r0, 1
| ||||||| 0x0801e88c dbb2 uxtb r3, r3
| ||||||| 0x0801e88e 1722 movs r2, 0x17 ; 23
| ||||||| 0x0801e890 0321 movs r1, 3 ; 3
| ||||||| 0x0801e892 2000 movs r0, r4
| ||||||| 0x0801e894 fff778f8 bl gfx_1d988
| ||||||| 0x0801e898 02f0f6ff bl gfx_get_xpos
| ||||||| 0x0801e89c dff81c18 ldr.w r1, [0x0801f0c0] ; [0x801f0c0:4]=0x2001e949
| ||||||| 0x0801e8a0 0870 strb r0, [r1]
| ||||||| 0x0801e8a2 02f0f5ff bl gfx_get_ypos
| ||||||| 0x0801e8a6 0500 movs r5, r0
| ||||||| 0x0801e8a8 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0801e8ac fef760fd bl gfx_set_fg_color
| ||||||| 0x0801e8b0 0020 movs r0, 0
| ||||||| 0x0801e8b2 fef759fd bl gfx_set_bg_color
| ||||||| 0x0801e8b6 2900 movs r1, r5
| ||||||| 0x0801e8b8 dff80008 ldr.w r0, [0x0801f0c0] ; [0x801f0c0:4]=0x2001e949
| ||||||| 0x0801e8bc 0078 ldrb r0, [r0]
| ||||||| 0x0801e8be 15f007fa bl func_33cd0
| ||||||| 0x0801e8c2 0121 movs r1, 1 ; 1
| ||||||| 0x0801e8c4 8148 ldr r0, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801e8c6 0078 ldrb r0, [r0]
| ||||||| 0x0801e8c8 14eb4000 adds.w r0, r4, r0, lsl 1
| ||||||| 0x0801e8cc 801e subs r0, r0, 2
| ||||||| 0x0801e8ce 15f00bfa bl func_33ce8
| ||||||| 0x0801e8d2 0020 movs r0, 0
| ||||||| 0x0801e8d4 fef74cfd bl gfx_set_fg_color
| ||||||| 0x0801e8d8 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0801e8dc fef744fd bl gfx_set_bg_color
| `--`----> 0x0801e8e0 dff8e407 ldr.w r0, [0x0801f0cc] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| || ||| 0x0801e8e4 0078 ldrb r0, [r0]
| || ||| 0x0801e8e6 0028 cmp r0, 0
| ||,====< 0x0801e8e8 40f0e480 bne.w 0x801eab4
| |||||| 0x0801e8ec dff8c807 ldr.w r0, [0x0801f0bc] ; [0x801f0bc:4]=0x2001e948
| |||||| 0x0801e8f0 0078 ldrb r0, [r0]
| |||||| 0x0801e8f2 0028 cmp r0, 0
| ,=======< 0x0801e8f4 40f0de80 bne.w 0x801eab4
| ||||||| 0x0801e8f8 dff8a807 ldr.w r0, [0x0801f0a8] ; [0x801f0a8:4]=0x2001e94d gui_opmode1
| ||||||| 0x0801e8fc 0068 ldr r0, [r0]
| ||||||| 0x0801e8fe 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0801e900 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0801e904 0328 cmp r0, 3 ; 3
| ========< 0x0801e906 80f2d580 bge.w 0x801eab4
| ||||||| 0x0801e90a dff8c007 ldr.w r0, [0x0801f0d2] ; [0x801f0d0:4]=0x2001e844
| ||||||| 0x0801e90e 0078 ldrb r0, [r0]
| ||||||| 0x0801e910 6421 movs r1, 0x64 ; 'd' ; 100
| ||||||| 0x0801e912 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x0801e916 dff8b817 ldr.w r1, [0x0801f0d6] ; [0x801f0d4:4]=0x2001e946 md380_menu_field_type
| ||||||| 0x0801e91a 0880 strh r0, [r1]
| ||||||| 0x0801e91c 6b48 ldr r0, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801e91e 0378 ldrb r3, [r0]
| ||||||| 0x0801e920 1722 movs r2, 0x17 ; 23
| ||||||| 0x0801e922 0321 movs r1, 3 ; 3
| ||||||| 0x0801e924 2000 movs r0, r4
| ||||||| 0x0801e926 fff72ff8 bl gfx_1d988
| ||||||| 0x0801e92a 0020 movs r0, 0
| ||||||| 0x0801e92c fef720fd bl gfx_set_fg_color
| ||||||| 0x0801e930 02f0aaff bl gfx_get_xpos
| ||||||| 0x0801e934 dff88417 ldr.w r1, [0x0801f0c0] ; [0x801f0c0:4]=0x2001e949
| ||||||| 0x0801e938 0870 strb r0, [r1]
| ||||||| 0x0801e93a 02f0a9ff bl gfx_get_ypos
| ||||||| 0x0801e93e 10f10f02 adds.w r2, r0, 0xf
| ||||||| 0x0801e942 811c adds r1, r0, 2
| ||||||| 0x0801e944 dff87407 ldr.w r0, [0x0801f0c0] ; [0x801f0c0:4]=0x2001e949
| ||||||| 0x0801e948 0078 ldrb r0, [r0]
| ||||||| 0x0801e94a fef780ff bl gfx_linefill2
| ========< 0x0801e94e b1e0 b 0x801eab4
| ||||`---> 0x0801e950 dff86c07 ldr.w r0, [0x0801f0c4] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| |||| || 0x0801e954 0078 ldrb r0, [r0]
| |||| || 0x0801e956 0228 cmp r0, 2 ; 2
| ||||,===< 0x0801e958 60d1 bne 0x801ea1c
| ||||||| 0x0801e95a 5c48 ldr r0, [0x0801eace] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801e95c 0378 ldrb r3, [r0]
| ||||||| 0x0801e95e 1722 movs r2, 0x17 ; 23
| ||||||| 0x0801e960 0321 movs r1, 3 ; 3
| ||||||| 0x0801e962 2000 movs r0, r4
| ||||||| 0x0801e964 fff710f8 bl gfx_1d988
| ||||||| 0x0801e968 edb2 uxtb r5, r5
| ||||||| 0x0801e96a 002d cmp r5, 0
| ========< 0x0801e96c 31d0 beq 0x801e9d2
| ||||||| 0x0801e96e 5748 ldr r0, [0x0801eace] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801e970 0078 ldrb r0, [r0]
| ||||||| 0x0801e972 edb2 uxtb r5, r5
| ||||||| 0x0801e974 8542 cmp r5, r0
| ========< 0x0801e976 2cd1 bne 0x801e9d2
| ||||||| 0x0801e978 5448 ldr r0, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801e97a 0078 ldrb r0, [r0]
| ||||||| 0x0801e97c 431e subs r3, r0, 1
| ||||||| 0x0801e97e dbb2 uxtb r3, r3
| ||||||| 0x0801e980 1722 movs r2, 0x17 ; 23
| ||||||| 0x0801e982 0321 movs r1, 3 ; 3
| ||||||| 0x0801e984 2000 movs r0, r4
| ||||||| 0x0801e986 fef7ffff bl gfx_1d988
| ||||||| 0x0801e98a 02f07dff bl gfx_get_xpos
| ||||||| 0x0801e98e dff82c17 ldr.w r1, [0x0801f0c2] ; [0x801f0c0:4]=0x2001e949
| ||||||| 0x0801e992 0870 strb r0, [r1]
| ||||||| 0x0801e994 02f07cff bl gfx_get_ypos
| ||||||| 0x0801e998 0500 movs r5, r0
| ||||||| 0x0801e99a 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0801e99e fef7e7fc bl gfx_set_fg_color
| ||||||| 0x0801e9a2 0020 movs r0, 0
| ||||||| 0x0801e9a4 fef7e0fc bl gfx_set_bg_color
| ||||||| 0x0801e9a8 2900 movs r1, r5
| ||||||| 0x0801e9aa dff81007 ldr.w r0, [0x0801f0c2] ; [0x801f0c0:4]=0x2001e949
| ||||||| 0x0801e9ae 0078 ldrb r0, [r0]
| ||||||| 0x0801e9b0 15f08ef9 bl func_33cd0
| ||||||| 0x0801e9b4 0121 movs r1, 1 ; 1
| ||||||| 0x0801e9b6 4548 ldr r0, [0x0801eace] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801e9b8 0078 ldrb r0, [r0]
| ||||||| 0x0801e9ba 14eb4000 adds.w r0, r4, r0, lsl 1
| ||||||| 0x0801e9be 801e subs r0, r0, 2
| ||||||| 0x0801e9c0 15f092f9 bl func_33ce8
| ||||||| 0x0801e9c4 0020 movs r0, 0
| ||||||| 0x0801e9c6 fef7d3fc bl gfx_set_fg_color
| ||||||| 0x0801e9ca 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0801e9ce fef7cbfc bl gfx_set_bg_color
| --------> 0x0801e9d2 dff8f406 ldr.w r0, [0x0801f0ce] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| ||||||| 0x0801e9d6 0078 ldrb r0, [r0]
| ||||||| 0x0801e9d8 0028 cmp r0, 0
| ========< 0x0801e9da 6bd1 bne 0x801eab4
| ||||||| 0x0801e9dc dff8d806 ldr.w r0, [0x0801f0bc] ; [0x801f0bc:4]=0x2001e948
| ||||||| 0x0801e9e0 0078 ldrb r0, [r0]
| ||||||| 0x0801e9e2 0028 cmp r0, 0
| ========< 0x0801e9e4 66d1 bne 0x801eab4
| ||||||| 0x0801e9e6 dff8bc06 ldr.w r0, [0x0801f0aa] ; [0x801f0a8:4]=0x2001e94d gui_opmode1
| ||||||| 0x0801e9ea 0068 ldr r0, [r0]
| ||||||| 0x0801e9ec 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0801e9ee 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0801e9f2 0328 cmp r0, 3 ; 3
| ========< 0x0801e9f4 5eda bge 0x801eab4
| ||||||| 0x0801e9f6 0020 movs r0, 0
| ||||||| 0x0801e9f8 fef7bafc bl gfx_set_fg_color
| ||||||| 0x0801e9fc 02f044ff bl gfx_get_xpos
| ||||||| 0x0801ea00 dff8b816 ldr.w r1, [0x0801f0c0] ; [0x801f0c0:4]=0x2001e949
| ||||||| 0x0801ea04 0870 strb r0, [r1]
| ||||||| 0x0801ea06 02f043ff bl gfx_get_ypos
| ||||||| 0x0801ea0a 10f10f02 adds.w r2, r0, 0xf
| ||||||| 0x0801ea0e 811c adds r1, r0, 2
| ||||||| 0x0801ea10 dff8a806 ldr.w r0, [0x0801f0c0] ; [0x801f0c0:4]=0x2001e949
| ||||||| 0x0801ea14 0078 ldrb r0, [r0]
| ||||||| 0x0801ea16 fef71aff bl gfx_linefill2
| ========< 0x0801ea1a 4be0 b 0x801eab4
| ||||`---> 0x0801ea1c dff8a006 ldr.w r0, [0x0801f0c4] ; [0x801f0c4:4]=0x2001e0d0 print_buffer
| |||| || 0x0801ea20 0078 ldrb r0, [r0]
| |||| || 0x0801ea22 0328 cmp r0, 3 ; 3
| ||||,===< 0x0801ea24 46d1 bne 0x801eab4
| ||||||| 0x0801ea26 9f23 movs r3, 0x9f ; 159
| ||||||| 0x0801ea28 3722 movs r2, 0x37 ; '7' ; 55
| ||||||| 0x0801ea2a 1e21 movs r1, 0x1e ; 30
| ||||||| 0x0801ea2c 2000 movs r0, r4
| ||||||| 0x0801ea2e fff76bf9 bl gfx_drawtext2
| ||||||| 0x0801ea32 dff89406 ldr.w r0, [0x0801f0ce] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| ||||||| 0x0801ea36 0078 ldrb r0, [r0]
| ||||||| 0x0801ea38 0028 cmp r0, 0
| ========< 0x0801ea3a 3bd1 bne 0x801eab4
| ||||||| 0x0801ea3c dff87806 ldr.w r0, [0x0801f0bc] ; [0x801f0bc:4]=0x2001e948
| ||||||| 0x0801ea40 0078 ldrb r0, [r0]
| ||||||| 0x0801ea42 0028 cmp r0, 0
| ========< 0x0801ea44 36d1 bne 0x801eab4
| ||||||| 0x0801ea46 2148 ldr r0, [0x0801eace] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801ea48 0378 ldrb r3, [r0]
| ||||||| 0x0801ea4a 3722 movs r2, 0x37 ; '7' ; 55
| ||||||| 0x0801ea4c 1e21 movs r1, 0x1e ; 30
| ||||||| 0x0801ea4e 2000 movs r0, r4
| ||||||| 0x0801ea50 fef79aff bl gfx_1d988
| ||||||| 0x0801ea54 02f018ff bl gfx_get_xpos
| ||||||| 0x0801ea58 dff86016 ldr.w r1, [0x0801f0c0] ; [0x801f0c0:4]=0x2001e949
| ||||||| 0x0801ea5c 0870 strb r0, [r1]
| ||||||| 0x0801ea5e 02f017ff bl gfx_get_ypos
| ||||||| 0x0801ea62 0500 movs r5, r0
| ||||||| 0x0801ea64 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0801ea68 fef782fc bl gfx_set_fg_color
| ||||||| 0x0801ea6c 0020 movs r0, 0
| ||||||| 0x0801ea6e fef77bfc bl gfx_set_bg_color
| ||||||| 0x0801ea72 2900 movs r1, r5
| ||||||| 0x0801ea74 dff84406 ldr.w r0, [0x0801f0c0] ; [0x801f0c0:4]=0x2001e949
| ||||||| 0x0801ea78 0078 ldrb r0, [r0]
| ||||||| 0x0801ea7a 15f029f9 bl func_33cd0
| ||||||| 0x0801ea7e 0121 movs r1, 1 ; 1
| ||||||| 0x0801ea80 1248 ldr r0, [0x0801eacc] ; [0x801eacc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0801ea82 0078 ldrb r0, [r0]
| ||||||| 0x0801ea84 14eb4000 adds.w r0, r4, r0, lsl 1
| ||||||| 0x0801ea88 15f02ef9 bl func_33ce8
| ||||||| 0x0801ea8c 0020 movs r0, 0
| ||||||| 0x0801ea8e fef76ffc bl gfx_set_fg_color
| ||||||| 0x0801ea92 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0801ea96 fef767fc bl gfx_set_bg_color
| ========< 0x0801ea9a 0be0 b 0x801eab4
| |`----`-> 0x0801ea9c dff81406 ldr.w r0, [0x0801f0b8] ; [0x801f0b8:4]=0x2001e950
| | |||| 0x0801eaa0 0021 movs r1, 0
| | |||| 0x0801eaa2 0170 strb r1, [r0]
| | |||| 0x0801eaa4 dff81006 ldr.w r0, [0x0801f0bc] ; [0x801f0bc:4]=0x2001e948
| | |||| 0x0801eaa8 0021 movs r1, 0
| | |||| 0x0801eaaa 0170 strb r1, [r0]
| | |||| 0x0801eaac dff81806 ldr.w r0, [0x0801f0cc] ; [0x801f0cc:4]=0x2001e574 md380_program_radio_unprohibited
| | |||| 0x0801eab0 0021 movs r1, 0
| | |||| 0x0801eab2 0170 strb r1, [r0]
| `--``---> 0x0801eab4 0020 movs r0, 0
| | | 0x0801eab6 fef75bfc bl gfx_set_fg_color
\ `--`--> 0x0801eaba f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) OSSemCreate 76
| Caller: create_many_semas init_Tone_fft_task CreateTwoSemasAndTimerTask func_49ba8_Creates_Sema
| Start_2_more_tasks__init_vocoder_tasks__Q func_4915c
| OSSemCreate ();
| 0x0803f708 38b5 push {r3, r4, r5, lr}
| 0x0803f70a 0400 movs r4, r0
| 0x0803f70c 0020 movs r0, 0
| 0x0803f70e 4949 ldr r1, [0x0803f836] ; [0x803f834:4]=0x2001e951
| 0x0803f710 0978 ldrb r1, [r1]
| 0x0803f712 0029 cmp r1, 0
| ,=< 0x0803f714 01d0 beq 0x803f71a
| | 0x0803f716 0020 movs r0, 0
| ,==< 0x0803f718 1be0 b 0x803f752
| |`-> 0x0803f71a 04f063fb bl OS_ENTER_CRITICAL
| | 0x0803f71e 4649 ldr r1, [0x0803f83a] ; [0x803f838:4]=0x2001e708
| | 0x0803f720 0d68 ldr r5, [r1]
| | 0x0803f722 4549 ldr r1, [0x0803f83a] ; [0x803f838:4]=0x2001e708
| | 0x0803f724 0968 ldr r1, [r1]
| | 0x0803f726 0029 cmp r1, 0
| |,=< 0x0803f728 04d0 beq 0x803f734
| || 0x0803f72a 4349 ldr r1, [0x0803f83a] ; [0x803f838:4]=0x2001e708
| || 0x0803f72c 0968 ldr r1, [r1]
| || 0x0803f72e 4968 ldr r1, [r1, 4]
| || 0x0803f730 414a ldr r2, [0x0803f838] ; [0x803f838:4]=0x2001e708
| || 0x0803f732 1160 str r1, [r2]
| |`-> 0x0803f734 04f05afb bl OS_EXIT_CRITICAL
| | 0x0803f738 002d cmp r5, 0
| |,=< 0x0803f73a 09d0 beq 0x803f750
| || 0x0803f73c 0320 movs r0, 3 ; 3
| || 0x0803f73e 2870 strb r0, [r5]
| || 0x0803f740 2c81 strh r4, [r5, 8]
| || 0x0803f742 0020 movs r0, 0
| || 0x0803f744 6860 str r0, [r5, 4]
| || 0x0803f746 3aa0 adr r0, 0xe8
| || 0x0803f748 6861 str r0, [r5, 0x14]
| || 0x0803f74a 2800 movs r0, r5
| || 0x0803f74c 04f082fd bl func_44254
| |`-> 0x0803f750 2800 movs r0, r5
\ `--> 0x0803f752 32bd pop {r1, r4, r5, pc}
/ (fcn) OSSemPend 218
| Caller: some_func_pend func_4788a func_4b8c8 md380_spiflash_enable func_49bbe_Uses_Sema
| func_4cf80 func_49c04_Uses_Sema
| OSSemPend ();
| 0x0803f754 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x0803f756 0500 movs r5, r0
| 0x0803f758 0e00 movs r6, r1
| 0x0803f75a 1400 movs r4, r2
| 0x0803f75c 0027 movs r7, 0
| 0x0803f75e 2878 ldrb r0, [r5]
| 0x0803f760 0328 cmp r0, 3 ; 3
| ,=< 0x0803f762 02d0 beq 0x803f76a
| | 0x0803f764 0120 movs r0, 1 ; 1
| | 0x0803f766 2070 strb r0, [r4]
| ,==< 0x0803f768 60e0 b 0x803f82c
| |`-> 0x0803f76a 3248 ldr r0, [0x0803f836] ; [0x803f834:4]=0x2001e951
| | 0x0803f76c 0078 ldrb r0, [r0]
| | 0x0803f76e 0028 cmp r0, 0
| |,=< 0x0803f770 02d0 beq 0x803f778
| || 0x0803f772 0220 movs r0, 2 ; 2
| || 0x0803f774 2070 strb r0, [r4]
| ,===< 0x0803f776 59e0 b 0x803f82c
| ||`-> 0x0803f778 3048 ldr r0, [0x0803f83c] ; [0x803f83c:4]=0x2001e952
| || 0x0803f77a 0078 ldrb r0, [r0]
| || 0x0803f77c 0028 cmp r0, 0
| ||,=< 0x0803f77e 02d0 beq 0x803f786
| ||| 0x0803f780 0d20 movs r0, 0xd ; 13
| ||| 0x0803f782 2070 strb r0, [r4]
| ,====< 0x0803f784 52e0 b 0x803f82c
| |||`-> 0x0803f786 04f02dfb bl OS_ENTER_CRITICAL
| ||| 0x0803f78a 0700 movs r7, r0
| ||| 0x0803f78c 2889 ldrh r0, [r5, 8]
| ||| 0x0803f78e 0028 cmp r0, 0
| |||,=< 0x0803f790 08d0 beq 0x803f7a4
| |||| 0x0803f792 2889 ldrh r0, [r5, 8]
| |||| 0x0803f794 401e subs r0, r0, 1
| |||| 0x0803f796 2881 strh r0, [r5, 8]
| |||| 0x0803f798 3800 movs r0, r7
| |||| 0x0803f79a 04f027fb bl OS_EXIT_CRITICAL
| |||| 0x0803f79e 0020 movs r0, 0
| |||| 0x0803f7a0 2070 strb r0, [r4]
| ,=====< 0x0803f7a2 43e0 b 0x803f82c
| ||||`-> 0x0803f7a4 2648 ldr r0, [0x0803f840] ; [0x803f840:4]=0x2001e714
| |||| 0x0803f7a6 0068 ldr r0, [r0]
| |||| 0x0803f7a8 90f83000 ldrb.w r0, [r0, 0x30]
| |||| 0x0803f7ac 50f00100 orrs r0, r0, 1
| |||| 0x0803f7b0 2349 ldr r1, [0x0803f840] ; [0x803f840:4]=0x2001e714
| |||| 0x0803f7b2 0968 ldr r1, [r1]
| |||| 0x0803f7b4 81f83000 strb.w r0, [r1, 0x30]
| |||| 0x0803f7b8 2148 ldr r0, [0x0803f840] ; [0x803f840:4]=0x2001e714
| |||| 0x0803f7ba 0068 ldr r0, [r0]
| |||| 0x0803f7bc 0021 movs r1, 0
| |||| 0x0803f7be 80f83110 strb.w r1, [r0, 0x31]
| |||| 0x0803f7c2 1f48 ldr r0, [0x0803f842] ; [0x803f840:4]=0x2001e714
| |||| 0x0803f7c4 0068 ldr r0, [r0]
| |||| 0x0803f7c6 c662 str r6, [r0, 0x2c]
| |||| 0x0803f7c8 2800 movs r0, r5
| |||| 0x0803f7ca 04f0e4fc bl func_44196
| |||| 0x0803f7ce 3800 movs r0, r7
| |||| 0x0803f7d0 04f00cfb bl OS_EXIT_CRITICAL
| |||| 0x0803f7d4 04f000fe bl func_443d8
| |||| 0x0803f7d8 04f004fb bl OS_ENTER_CRITICAL
| |||| 0x0803f7dc 0700 movs r7, r0
| |||| 0x0803f7de 1848 ldr r0, [0x0803f842] ; [0x803f840:4]=0x2001e714
| |||| 0x0803f7e0 0068 ldr r0, [r0]
| |||| 0x0803f7e2 90f83100 ldrb.w r0, [r0, 0x31]
| |||| 0x0803f7e6 0028 cmp r0, 0
| ||||,=< 0x0803f7e8 02d0 beq 0x803f7f0
| ||||| 0x0803f7ea 0228 cmp r0, 2 ; 2
| ,======< 0x0803f7ec 03d0 beq 0x803f7f6
| ,=======< 0x0803f7ee 05e0 b 0x803f7fc
| ||||||`-> 0x0803f7f0 0020 movs r0, 0
| |||||| 0x0803f7f2 2070 strb r0, [r4]
| ||||||,=< 0x0803f7f4 09e0 b 0x803f80a
| |`------> 0x0803f7f6 0e20 movs r0, 0xe ; 14
| | ||||| 0x0803f7f8 2070 strb r0, [r4]
| |,======< 0x0803f7fa 06e0 b 0x803f80a
| `-------> 0x0803f7fc 2900 movs r1, r5
| |||||| 0x0803f7fe 1048 ldr r0, [0x0803f842] ; [0x803f840:4]=0x2001e714
| |||||| 0x0803f800 0068 ldr r0, [r0]
| |||||| 0x0803f802 04f00efd bl func_44222
| |||||| 0x0803f806 0a20 movs r0, 0xa ; 10
| |||||| 0x0803f808 2070 strb r0, [r4]
| `----`-> 0x0803f80a 0d48 ldr r0, [0x0803f842] ; [0x803f840:4]=0x2001e714
| |||| 0x0803f80c 0068 ldr r0, [r0]
| |||| 0x0803f80e 0021 movs r1, 0
| |||| 0x0803f810 80f83010 strb.w r1, [r0, 0x30]
| |||| 0x0803f814 0a48 ldr r0, [0x0803f840] ; [0x803f840:4]=0x2001e714
| |||| 0x0803f816 0068 ldr r0, [r0]
| |||| 0x0803f818 0021 movs r1, 0
| |||| 0x0803f81a 80f83110 strb.w r1, [r0, 0x31]
| |||| 0x0803f81e 0848 ldr r0, [0x0803f842] ; [0x803f840:4]=0x2001e714
| |||| 0x0803f820 0068 ldr r0, [r0]
| |||| 0x0803f822 0021 movs r1, 0
| |||| 0x0803f824 c161 str r1, [r0, 0x1c]
| |||| 0x0803f826 3800 movs r0, r7
| |||| 0x0803f828 04f0e0fa bl OS_EXIT_CRITICAL
\ ````--> 0x0803f82c f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) OSSemPost 92
| Caller: F_858 EXTI1_IRQHandler func_49c04_Uses_Sema func_3dc90 func_49bbe_Uses_Sema
| TIM5_IRQHandler md380_spiflash_disable bp_sempost some_func_post func_4788a
| msg_process_sms func_3da68 func_31fe2 SomethingWithGPIOC_and_Backlight_Timer
| CalledFromLongDispatcher dmr_call_end DMA2_Stream3_IRQHandler EXTI0_IRQHandler
| DMA1_Stream2_Sub DMA1_Stream5_Sub bp_sempost2 TIM2_IRQHandler func_4b6e6_posts_something
| OSSemPost ();
| 0x0803f844 38b5 push {r3, r4, r5, lr}
| 0x0803f846 0500 movs r5, r0
| 0x0803f848 0024 movs r4, 0
| 0x0803f84a 2878 ldrb r0, [r5]
| 0x0803f84c 0328 cmp r0, 3 ; 3
| ,=< 0x0803f84e 01d0 beq 0x803f854
| | 0x0803f850 0120 movs r0, 1 ; 1
| ,==< 0x0803f852 24e0 b 0x803f89e
| |`-> 0x0803f854 04f0c6fa bl OS_ENTER_CRITICAL
| | 0x0803f858 0400 movs r4, r0
| | 0x0803f85a a87a ldrb r0, [r5, 0xa]
| | 0x0803f85c 0028 cmp r0, 0
| |,=< 0x0803f85e 0dd0 beq 0x803f87c
| || 0x0803f860 0023 movs r3, 0
| || 0x0803f862 0122 movs r2, 1 ; 1
| || 0x0803f864 0021 movs r1, 0
| || 0x0803f866 2800 movs r0, r5
| || 0x0803f868 04f058fc bl func_4411c
| || 0x0803f86c 0500 movs r5, r0
| || 0x0803f86e 2000 movs r0, r4
| || 0x0803f870 04f0bcfa bl OS_EXIT_CRITICAL
| || 0x0803f874 04f0b0fd bl func_443d8
| || 0x0803f878 0020 movs r0, 0
| ,===< 0x0803f87a 10e0 b 0x803f89e
| ||`-> 0x0803f87c 2889 ldrh r0, [r5, 8]
| || 0x0803f87e 4ff6ff71 movw r1, 0xffff
| || 0x0803f882 8842 cmp r0, r1
| ||,=< 0x0803f884 07d0 beq 0x803f896
| ||| 0x0803f886 2889 ldrh r0, [r5, 8]
| ||| 0x0803f888 401c adds r0, r0, 1
| ||| 0x0803f88a 2881 strh r0, [r5, 8]
| ||| 0x0803f88c 2000 movs r0, r4
| ||| 0x0803f88e 04f0adfa bl OS_EXIT_CRITICAL
| ||| 0x0803f892 0020 movs r0, 0
| ,====< 0x0803f894 03e0 b 0x803f89e
| |||`-> 0x0803f896 2000 movs r0, r4
| ||| 0x0803f898 04f0a8fa bl OS_EXIT_CRITICAL
| ||| 0x0803f89c 3320 movs r0, 0x33 ; '3' ; 51
\ ```--> 0x0803f89e 32bd pop {r1, r4, r5, pc}
/ (fcn) OSTaskCreateExt 204
| Caller: create_RTC_Timer init_Tone_fft_task Create_uCOS_Timer_Task create_State_Change
| Create_Start_Task create_Sys_Inter Create_uCOS_Idle_Task
| OSTaskCreateExt ();
| 0x0804e580 2de9f14f push.w {r0, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0804e584 84b0 sub sp, 0x10
| 0x0804e586 0e00 movs r6, r1
| 0x0804e588 1700 movs r7, r2
| 0x0804e58a 9846 mov r8, r3
| 0x0804e58c 0e9c ldr r4, [sp, 0x38]
| 0x0804e58e ddf83c90 ldr.w sb, [sp, 0x3c]
| 0x0804e592 ddf840a0 ldr.w sl, [sp, 0x40]
| 0x0804e596 ddf844b0 ldr.w fp, [sp, 0x44]
| 0x0804e59a 0025 movs r5, 0
| 0x0804e59c f5f722fc bl OS_ENTER_CRITICAL
| 0x0804e5a0 0500 movs r5, r0
| 0x0804e5a2 dff81001 ldr.w r0, [0x0804e6ba] ; [0x804e6b8:4]=0x2200b410
| 0x0804e5a6 0078 ldrb r0, [r0]
| 0x0804e5a8 0028 cmp r0, 0
| ,=< 0x0804e5aa 04d0 beq 0x804e5b6
| | 0x0804e5ac 2800 movs r0, r5
| | 0x0804e5ae f5f71dfc bl OS_EXIT_CRITICAL
| | 0x0804e5b2 3c20 movs r0, 0x3c ; '<' ; 60
| ,==< 0x0804e5b4 47e0 b 0x804e646
| |`-> 0x0804e5b6 5ffa88f8 uxtb.w r8, r8
| | 0x0804e5ba dff8ec00 ldr.w r0, [0x0804e6ae] ; [0x804e6ac:4]=0x2001e714
| | 0x0804e5be 50f82800 ldr.w r0, [r0, r8, lsl 2]
| | 0x0804e5c2 0028 cmp r0, 0
| |,=< 0x0804e5c4 3bd1 bne 0x804e63e
| || 0x0804e5c6 5ffa88f8 uxtb.w r8, r8
| || 0x0804e5ca dff8dc00 ldr.w r0, [0x0804e6ae] ; [0x804e6ac:4]=0x2001e714
| || 0x0804e5ce 0121 movs r1, 1 ; 1
| || 0x0804e5d0 40f82810 str.w r1, [r0, r8, lsl 2]
| || 0x0804e5d4 2800 movs r0, r5
| || 0x0804e5d6 f5f709fc bl OS_EXIT_CRITICAL
| || 0x0804e5da 129d ldr r5, [sp, 0x48]
| || 0x0804e5dc 2b00 movs r3, r5
| || 0x0804e5de 9bb2 uxth r3, r3
| || 0x0804e5e0 3a00 movs r2, r7
| || 0x0804e5e2 3100 movs r1, r6
| || 0x0804e5e4 0498 ldr r0, [sp, 0x10]
| || 0x0804e5e6 fff7b1fd bl func_4e14c
| || 0x0804e5ea adb2 uxth r5, r5
| || 0x0804e5ec 0295 str r5, [sp, 8]
| || 0x0804e5ee cdf804b0 str.w fp, [sp, 4]
| || 0x0804e5f2 cdf800a0 str.w sl, [sp]
| || 0x0804e5f6 2300 movs r3, r4
| || 0x0804e5f8 9bb2 uxth r3, r3
| || 0x0804e5fa 4a46 mov r2, sb
| || 0x0804e5fc 0100 movs r1, r0
| || 0x0804e5fe 4046 mov r0, r8
| || 0x0804e600 c0b2 uxtb r0, r0
| || 0x0804e602 f5f739ff bl func_44478
| || 0x0804e606 0400 movs r4, r0
| || 0x0804e608 e4b2 uxtb r4, r4
| || 0x0804e60a 002c cmp r4, 0
| ,===< 0x0804e60c 07d1 bne 0x804e61e
| ||| 0x0804e60e dff8a000 ldr.w r0, [0x0804e6b6] ; [0x804e6b4:4]=0x2001e951
| ||| 0x0804e612 0078 ldrb r0, [r0]
| ||| 0x0804e614 0128 cmp r0, 1 ; 1
| ,====< 0x0804e616 0fd1 bne 0x804e638
| |||| 0x0804e618 f5f7defe bl func_443d8
| ,=====< 0x0804e61c 0ce0 b 0x804e638
| ||`---> 0x0804e61e f5f7e1fb bl OS_ENTER_CRITICAL
| || || 0x0804e622 0500 movs r5, r0
| || || 0x0804e624 5ffa88f8 uxtb.w r8, r8
| || || 0x0804e628 dff87c00 ldr.w r0, [0x0804e6ac] ; [0x804e6ac:4]=0x2001e714
| || || 0x0804e62c 0021 movs r1, 0
| || || 0x0804e62e 40f82810 str.w r1, [r0, r8, lsl 2]
| || || 0x0804e632 2800 movs r0, r5
| || || 0x0804e634 f5f7dafb bl OS_EXIT_CRITICAL
| ``----> 0x0804e638 2000 movs r0, r4
| || 0x0804e63a c0b2 uxtb r0, r0
| ,===< 0x0804e63c 03e0 b 0x804e646
| ||`-> 0x0804e63e 2800 movs r0, r5
| || 0x0804e640 f5f7d4fb bl OS_EXIT_CRITICAL
| || 0x0804e644 2820 movs r0, 0x28 ; '(' ; 40
| ``--> 0x0804e646 05b0 add sp, 0x14
\ 0x0804e648 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) OSTaskNameSet 90
| Caller: create_RTC_Timer init_Tone_fft_task Create_uCOS_Timer_Task create_State_Change
| Create_Start_Task create_ChAccess_Pr create_Sys_Inter Create_uCOS_Idle_Task
| OSTaskNameSet ();
| 0x0804e64c 70b5 push {r4, r5, r6, lr}
| 0x0804e64e 0600 movs r6, r0
| 0x0804e650 0d00 movs r5, r1
| 0x0804e652 1400 movs r4, r2
| 0x0804e654 0020 movs r0, 0
| 0x0804e656 1749 ldr r1, [0x0804e6b6] ; [0x804e6b4:4]=0x2001e951
| 0x0804e658 0978 ldrb r1, [r1]
| 0x0804e65a 0029 cmp r1, 0
| ,=< 0x0804e65c 02d0 beq 0x804e664
| | 0x0804e65e 1220 movs r0, 0x12 ; 18
| | 0x0804e660 2070 strb r0, [r4]
| ,==< 0x0804e662 1fe0 b 0x804e6a4
| |`-> 0x0804e664 f5f7befb bl OS_ENTER_CRITICAL
| | 0x0804e668 f6b2 uxtb r6, r6
| | 0x0804e66a ff2e cmp r6, 0xff ; 255
| |,=< 0x0804e66c 03d1 bne 0x804e676
| || 0x0804e66e 0f49 ldr r1, [0x0804e6ae] ; [0x804e6ac:4]=0x2001e714
| || 0x0804e670 0968 ldr r1, [r1]
| || 0x0804e672 91f83260 ldrb.w r6, [r1, 0x32]
| |`-> 0x0804e676 f6b2 uxtb r6, r6
| | 0x0804e678 0b49 ldr r1, [0x0804e6a8] ; [0x804e6a8:4]=0x2001d01c
| | 0x0804e67a 51f82610 ldr.w r1, [r1, r6, lsl 2]
| | 0x0804e67e 0029 cmp r1, 0
| |,=< 0x0804e680 04d1 bne 0x804e68c
| || 0x0804e682 f5f7b3fb bl OS_EXIT_CRITICAL
| || 0x0804e686 4320 movs r0, 0x43 ; 'C' ; 67
| || 0x0804e688 2070 strb r0, [r4]
| ,===< 0x0804e68a 0be0 b 0x804e6a4
| ||`-> 0x0804e68c 0129 cmp r1, 1 ; 1
| ||,=< 0x0804e68e 04d1 bne 0x804e69a
| ||| 0x0804e690 f5f7acfb bl OS_EXIT_CRITICAL
| ||| 0x0804e694 4320 movs r0, 0x43 ; 'C' ; 67
| ||| 0x0804e696 2070 strb r0, [r4]
| ,====< 0x0804e698 04e0 b 0x804e6a4
| |||`-> 0x0804e69a cd64 str r5, [r1, 0x4c]
| ||| 0x0804e69c f5f7a6fb bl OS_EXIT_CRITICAL
| ||| 0x0804e6a0 0020 movs r0, 0
| ||| 0x0804e6a2 2070 strb r0, [r4]
\ ```--> 0x0804e6a4 70bd pop {r4, r5, r6, pc}
/ (fcn) OSTimeDly 104
| Caller: task_468f8 Start func_2e73c_uses_menu_cursor_pos_1 DrawSomethingThenBitBangIO
| md380_f_4520 msg_process_sms c5000_wr_60_1 WaitAndDoSomethingWithGPIOC c5000_wr_60_5
| c5000_wr_60_4 update_scr_17 Beep_Process CalledFromLongDispatcher func_3fda8
| InitLCDisplay some_init LED_Process draw_botline_text c5000_iffreq_init
| func_2ea9e func_2e918 func_32130 ev5_20 c5000_pll_init call_F_4225_1
| OSTimeDly ();
| 0x08033eb4 10b5 push {r4, lr}
| 0x08033eb6 0400 movs r4, r0
| 0x08033eb8 0020 movs r0, 0
| 0x08033eba 1849 ldr r1, [0x08033f1e] ; [0x8033f1c:4]=0x2001e951
| 0x08033ebc 0978 ldrb r1, [r1]
| 0x08033ebe 0029 cmp r1, 0
| ,=< 0x08033ec0 2bd1 bne 0x8033f1a
| | 0x08033ec2 1748 ldr r0, [0x08033f22] ; [0x8033f20:4]=0x2001e952
| | 0x08033ec4 0078 ldrb r0, [r0]
| | 0x08033ec6 0028 cmp r0, 0
| ,==< 0x08033ec8 27d1 bne 0x8033f1a
| || 0x08033eca 002c cmp r4, 0
| ,===< 0x08033ecc 25d0 beq 0x8033f1a
| ||| 0x08033ece 0ff089ff bl OS_ENTER_CRITICAL
| ||| 0x08033ed2 1449 ldr r1, [0x08033f26] ; [0x8033f24:4]=0x2001e714
| ||| 0x08033ed4 0968 ldr r1, [r1]
| ||| 0x08033ed6 91f83410 ldrb.w r1, [r1, 0x34]
| ||| 0x08033eda c9b2 uxtb r1, r1
| ||| 0x08033edc 124a ldr r2, [0x08033f28] ; [0x8033f28:4]=0x2001e56c
| ||| 0x08033ede 8a5c ldrb r2, [r1, r2]
| ||| 0x08033ee0 104b ldr r3, [0x08033f24] ; [0x8033f24:4]=0x2001e714
| ||| 0x08033ee2 1b68 ldr r3, [r3]
| ||| 0x08033ee4 93f83530 ldrb.w r3, [r3, 0x35]
| ||| 0x08033ee8 9a43 bics r2, r3
| ||| 0x08033eea c9b2 uxtb r1, r1
| ||| 0x08033eec 0e4b ldr r3, [0x08033f28] ; [0x8033f28:4]=0x2001e56c
| ||| 0x08033eee ca54 strb r2, [r1, r3]
| ||| 0x08033ef0 c9b2 uxtb r1, r1
| ||| 0x08033ef2 0d4a ldr r2, [0x08033f2a] ; [0x8033f28:4]=0x2001e56c
| ||| 0x08033ef4 895c ldrb r1, [r1, r2]
| ||| 0x08033ef6 0029 cmp r1, 0
| ,====< 0x08033ef8 08d1 bne 0x8033f0c
| |||| 0x08033efa 0c49 ldr r1, [0x08033f2e] ; [0x8033f2c:4]=0x2001e955
| |||| 0x08033efc 0978 ldrb r1, [r1]
| |||| 0x08033efe 094a ldr r2, [0x08033f26] ; [0x8033f24:4]=0x2001e714
| |||| 0x08033f00 1268 ldr r2, [r2]
| |||| 0x08033f02 92f83620 ldrb.w r2, [r2, 0x36]
| |||| 0x08033f06 9143 bics r1, r2
| |||| 0x08033f08 084a ldr r2, [0x08033f2c] ; [0x8033f2c:4]=0x2001e955
| |||| 0x08033f0a 1170 strb r1, [r2]
| `----> 0x08033f0c 0549 ldr r1, [0x08033f24] ; [0x8033f24:4]=0x2001e714
| ||| 0x08033f0e 0968 ldr r1, [r1]
| ||| 0x08033f10 cc62 str r4, [r1, 0x2c]
| ||| 0x08033f12 0ff06bff bl OS_EXIT_CRITICAL
| ||| 0x08033f16 10f05ffa bl func_443d8
\ ```-> 0x08033f1a 10bd pop {r4, pc}
/ (fcn) md380_f_4102 298
| Caller: biglist_pollsubsys_maybe
| md380_f_4102 ();
| 0x0804ec66 38b5 push {r3, r4, r5, lr}
| 0x0804ec68 dff8740c ldr.w r0, [func_4f8e4] ; [0x804f8e4:4]=0xe0002100 LEA get_keycode_from_table ; get_keycode_from_table
| 0x0804ec6c 0078 ldrb r0, [r0]
| 0x0804ec6e 0006 lsls r0, r0, 0x18
| ,=< 0x0804ec70 00f18d80 bmi.w 0x804ed8e
| | 0x0804ec74 dff89c0c ldr.w r0, [0x0804f918] ; [0x804f918:4]=0x2001e5ec base_for_longpress_struct
| | 0x0804ec78 0078 ldrb r0, [r0]
| | 0x0804ec7a 0728 cmp r0, 7 ; 7
| ,==< 0x0804ec7c 00f08780 beq.w 0x804ed8e
| || 0x0804ec80 4ff40061 mov.w r1, 0x800 ; 2048
| || 0x0804ec84 dff8500b ldr.w r0, [kb_handler_sub1] ; [0x804f7dc:4]=0x2140b538
| || 0x0804ec88 dcf7b1fd bl GPIO_ReadInputDataBit
| || 0x0804ec8c 0400 movs r4, r0
| || 0x0804ec8e 4ff40061 mov.w r1, 0x800 ; 2048
| || 0x0804ec92 dff8440b ldr.w r0, [0x0804f7de] ; [0x804f7dc:4]=0x2140b538
| || 0x0804ec96 dcf7aafd bl GPIO_ReadInputDataBit
| || 0x0804ec9a 0500 movs r5, r0
| || 0x0804ec9c 4ff40061 mov.w r1, 0x800 ; 2048
| || 0x0804eca0 dff8340b ldr.w r0, [kb_handler_sub1] ; [0x804f7dc:4]=0x2140b538
| || 0x0804eca4 dcf7a3fd bl GPIO_ReadInputDataBit
| || 0x0804eca8 55ea0401 orrs.w r1, r5, r4
| || 0x0804ecac 0843 orrs r0, r1
| || 0x0804ecae c0b2 uxtb r0, r0
| || 0x0804ecb0 0028 cmp r0, 0
| ,===< 0x0804ecb2 34d1 bne 0x804ed1e
| ||| 0x0804ecb4 dff8600c ldr.w r0, [0x0804f91c] ; [0x804f91c:4]=0x2001e884
| ||| 0x0804ecb8 0078 ldrb r0, [r0]
| ||| 0x0804ecba c0f34000 ubfx r0, r0, 1, 1
| ||| 0x0804ecbe c007 lsls r0, r0, 0x1f
| ,====< 0x0804ecc0 28d4 bmi 0x804ed14
| |||| 0x0804ecc2 dff8580c ldr.w r0, [0x0804f922] ; [0x804f920:4]=0x2001e8e4
| |||| 0x0804ecc6 0078 ldrb r0, [r0]
| |||| 0x0804ecc8 401c adds r0, r0, 1
| |||| 0x0804ecca dff8501c ldr.w r1, [0x0804f922] ; [0x804f920:4]=0x2001e8e4
| |||| 0x0804ecce 0870 strb r0, [r1]
| |||| 0x0804ecd0 dff8480c ldr.w r0, [0x0804f920] ; [0x804f920:4]=0x2001e8e4
| |||| 0x0804ecd4 0078 ldrb r0, [r0]
| |||| 0x0804ecd6 0628 cmp r0, 6 ; 6
| ,=====< 0x0804ecd8 59d3 blo 0x804ed8e
| ||||| 0x0804ecda dff8400c ldr.w r0, [0x0804f922] ; [0x804f920:4]=0x2001e8e4
| ||||| 0x0804ecde 0021 movs r1, 0
| ||||| 0x0804ece0 0170 strb r1, [r0]
| ||||| 0x0804ece2 dff8340c ldr.w r0, [0x0804f91e] ; [0x804f91c:4]=0x2001e884
| ||||| 0x0804ece6 0078 ldrb r0, [r0]
| ||||| 0x0804ece8 50f00200 orrs r0, r0, 2
| ||||| 0x0804ecec dff8281c ldr.w r1, [0x0804f91c] ; [0x804f91c:4]=0x2001e884
| ||||| 0x0804ecf0 0870 strb r0, [r1]
| ||||| 0x0804ecf2 dff8240c ldr.w r0, [0x0804f91e] ; [0x804f91c:4]=0x2001e884
| ||||| 0x0804ecf6 0078 ldrb r0, [r0]
| ||||| 0x0804ecf8 50f00400 orrs r0, r0, 4
| ||||| 0x0804ecfc dff8181c ldr.w r1, [0x0804f91c] ; [0x804f91c:4]=0x2001e884
| ||||| 0x0804ed00 0870 strb r0, [r1]
| ||||| 0x0804ed02 dff8dc0b ldr.w r0, [0x0804f8e6] ; [0x804f8e4:4]=0xe0002100 LEA get_keycode_from_table ; get_keycode_from_table
| ||||| 0x0804ed06 0078 ldrb r0, [r0]
| ||||| 0x0804ed08 50f08000 orrs r0, r0, 0x80
| ||||| 0x0804ed0c dff8d01b ldr.w r1, [func_4f8e4] ; [0x804f8e4:4]=0xe0002100 LEA get_keycode_from_table ; get_keycode_from_table
| ||||| 0x0804ed10 0870 strb r0, [r1]
| ,======< 0x0804ed12 3ce0 b 0x804ed8e
| ||`----> 0x0804ed14 dff8040c ldr.w r0, [0x0804f920] ; [0x804f920:4]=0x2001e8e4
| || ||| 0x0804ed18 0021 movs r1, 0
| || ||| 0x0804ed1a 0170 strb r1, [r0]
| ||,====< 0x0804ed1c 37e0 b 0x804ed8e
| |||`---> 0x0804ed1e dff8f80b ldr.w r0, [0x0804f91e] ; [0x804f91c:4]=0x2001e884
| ||| || 0x0804ed22 0078 ldrb r0, [r0]
| ||| || 0x0804ed24 c0f34000 ubfx r0, r0, 1, 1
| ||| || 0x0804ed28 c007 lsls r0, r0, 0x1f
| |||,===< 0x0804ed2a 2cd5 bpl 0x804ed86
| |||||| 0x0804ed2c dff8ec0b ldr.w r0, [0x0804f920] ; [0x804f920:4]=0x2001e8e4
| |||||| 0x0804ed30 0078 ldrb r0, [r0]
| |||||| 0x0804ed32 401c adds r0, r0, 1
| |||||| 0x0804ed34 dff8e41b ldr.w r1, [0x0804f920] ; [0x804f920:4]=0x2001e8e4
| |||||| 0x0804ed38 0870 strb r0, [r1]
| |||||| 0x0804ed3a dff8e00b ldr.w r0, [0x0804f922] ; [0x804f920:4]=0x2001e8e4
| |||||| 0x0804ed3e 0078 ldrb r0, [r0]
| |||||| 0x0804ed40 0628 cmp r0, 6 ; 6
| ,=======< 0x0804ed42 24d3 blo 0x804ed8e
| ||||||| 0x0804ed44 dff8d40b ldr.w r0, [0x0804f920] ; [0x804f920:4]=0x2001e8e4
| ||||||| 0x0804ed48 0021 movs r1, 0
| ||||||| 0x0804ed4a 0170 strb r1, [r0]
| ||||||| 0x0804ed4c dff8c80b ldr.w r0, [0x0804f91c] ; [0x804f91c:4]=0x2001e884
| ||||||| 0x0804ed50 0078 ldrb r0, [r0]
| ||||||| 0x0804ed52 10f0fd00 ands r0, r0, 0xfd
| ||||||| 0x0804ed56 dff8c01b ldr.w r1, [0x0804f91e] ; [0x804f91c:4]=0x2001e884
| ||||||| 0x0804ed5a 0870 strb r0, [r1]
| ||||||| 0x0804ed5c dff8b80b ldr.w r0, [0x0804f91c] ; [0x804f91c:4]=0x2001e884
| ||||||| 0x0804ed60 0078 ldrb r0, [r0]
| ||||||| 0x0804ed62 50f00800 orrs r0, r0, 8
| ||||||| 0x0804ed66 dff8b01b ldr.w r1, [0x0804f91e] ; [0x804f91c:4]=0x2001e884
| ||||||| 0x0804ed6a 0870 strb r0, [r1]
| ||||||| 0x0804ed6c dff8b00b ldr.w r0, [0x0804f924] ; [0x804f924:4]=0x2001e7ae
| ||||||| 0x0804ed70 0121 movs r1, 1 ; 1
| ||||||| 0x0804ed72 0170 strb r1, [r0]
| ||||||| 0x0804ed74 dff8680b ldr.w r0, [func_4f8e4] ; [0x804f8e4:4]=0xe0002100 LEA get_keycode_from_table ; get_keycode_from_table
| ||||||| 0x0804ed78 0078 ldrb r0, [r0]
| ||||||| 0x0804ed7a 50f08000 orrs r0, r0, 0x80
| ||||||| 0x0804ed7e dff8601b ldr.w r1, [0x0804f8e6] ; [0x804f8e4:4]=0xe0002100 LEA get_keycode_from_table ; get_keycode_from_table
| ||||||| 0x0804ed82 0870 strb r0, [r1]
| ========< 0x0804ed84 03e0 b 0x804ed8e
| ||||`---> 0x0804ed86 dff8940b ldr.w r0, [0x0804f922] ; [0x804f920:4]=0x2001e8e4
| |||| || 0x0804ed8a 0021 movs r1, 0
| |||| || 0x0804ed8c 0170 strb r1, [r0]
\ ````-``-> 0x0804ed8e 31bd pop {r0, r4, r5, pc}
/ (fcn) md380_f_4137 1908
| Caller: md380_f_4520
| md380_f_4137 ();
| 0x0802dfbc 10b5 push {r4, lr}
| 0x0802dfbe dff8600b ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| 0x0802dfc2 0078 ldrb r0, [r0]
| 0x0802dfc4 1128 cmp r0, 0x11 ; 17
| ,=< 0x0802dfc6 80f0b283 bhs.w 0x802e72e
| | 0x0802dfca dff8f00b ldr.w r0, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| | 0x0802dfce 0078 ldrb r0, [r0]
| | 0x0802dfd0 0028 cmp r0, 0
| ,==< 0x0802dfd2 40f06183 bne.w 0x802e698
| || 0x0802dfd6 dff84c0b ldr.w r0, [0x0802eb2a] ; [0x802eb28:4]=0x2001e892 gui_opmode3
| || 0x0802dfda 4078 ldrb r0, [r0, 1]
| || 0x0802dfdc c007 lsls r0, r0, 0x1f
| ,===< 0x0802dfde 40f1fa80 bpl.w 0x802e1d6
| ||| 0x0802dfe2 dff8380b ldr.w r0, [0x0802eb22] ; [0x802eb20:4]=0x2001e890 kb_keycode
| ||| 0x0802dfe6 0078 ldrb r0, [r0]
| ||| 0x0802dfe8 0128 cmp r0, 1 ; 1
| ,====< 0x0802dfea 05d0 beq 0x802dff8
| |||| 0x0802dfec dff82c0b ldr.w r0, [0x0802eb20] ; [0x802eb20:4]=0x2001e890 kb_keycode
| |||| 0x0802dff0 0078 ldrb r0, [r0]
| |||| 0x0802dff2 0228 cmp r0, 2 ; 2
| ,=====< 0x0802dff4 40f0ef80 bne.w 0x802e1d6
| |`----> 0x0802dff8 dff82c0b ldr.w r0, [0x0802eb2c] ; [0x802eb2c:4]=0x2001e8ed
| | ||| 0x0802dffc 0078 ldrb r0, [r0]
| | ||| 0x0802dffe 0228 cmp r0, 2 ; 2
| |,====< 0x0802e000 00f0e980 beq.w 0x802e1d6
| ||||| 0x0802e004 dff8240b ldr.w r0, [0x0802eb30] ; [0x802eb30:4]=0x2001e891 keycode_old
| ||||| 0x0802e008 0078 ldrb r0, [r0]
| ||||| 0x0802e00a 0328 cmp r0, 3 ; 3
| ,======< 0x0802e00c 06d1 bne 0x802e01c
| |||||| 0x0802e00e dff8a407 ldr.w r0, [0x0802e7ba] ; [0x802e7b8:4]=0x2001e5f4
| |||||| 0x0802e012 0078 ldrb r0, [r0]
| |||||| 0x0802e014 10f00300 ands r0, r0, 3
| |||||| 0x0802e018 0128 cmp r0, 1 ; 1
| ,=======< 0x0802e01a 07d0 beq 0x802e02c
| |`------> 0x0802e01c dff89407 ldr.w r0, [0x0802e7b8] ; [0x802e7b8:4]=0x2001e5f4
| | ||||| 0x0802e020 0078 ldrb r0, [r0]
| | ||||| 0x0802e022 10f00300 ands r0, r0, 3
| | ||||| 0x0802e026 0228 cmp r0, 2 ; 2
| |,======< 0x0802e028 40f08183 bne.w 0x802e72e
| `-------> 0x0802e02c dff8f00a ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e030 0078 ldrb r0, [r0]
| |||||| 0x0802e032 0a28 cmp r0, 0xa ; 10
| ,=======< 0x0802e034 42d2 bhs 0x802e0bc
| ||||||| 0x0802e036 dff8e80a ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e03a 0078 ldrb r0, [r0]
| ||||||| 0x0802e03c 10f13004 adds.w r4, r0, 0x30
| ||||||| 0x0802e040 dff8ec0a ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e044 dff8d81a ldr.w r1, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e048 0978 ldrb r1, [r1]
| ||||||| 0x0802e04a 0170 strb r1, [r0]
| --------> 0x0802e04c dff8700b ldr.w r0, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e050 2821 movs r1, 0x28 ; '(' ; 40
| ||||||| 0x0802e052 0170 strb r1, [r0]
| ||||||| 0x0802e054 dff8681b ldr.w r1, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e058 dff8580b ldr.w r0, [0x0802ebb8] ; [0x802ebb8:4]=0x2001e60c
| ||||||| 0x0802e05c 0068 ldr r0, [r0]
| ||||||| 0x0802e05e 03f09df8 bl md380_OSMboxPost
| ||||||| 0x0802e062 dff8600b ldr.w r0, [0x0802ebca] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e066 0078 ldrb r0, [r0]
| ||||||| 0x0802e068 dff85c1b ldr.w r1, [0x0802ebcc] ; [0x802ebcc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0802e06c 0978 ldrb r1, [r1]
| ||||||| 0x0802e06e 8842 cmp r0, r1
| ========< 0x0802e070 80f05d83 bhs.w 0x802e72e
| ||||||| 0x0802e074 dff83c07 ldr.w r0, [0x0802e7b8] ; [0x802e7b8:4]=0x2001e5f4
| ||||||| 0x0802e078 0078 ldrb r0, [r0]
| ||||||| 0x0802e07a 10f00300 ands r0, r0, 3
| ||||||| 0x0802e07e 0128 cmp r0, 1 ; 1
| ========< 0x0802e080 40f05583 bne.w 0x802e72e
| ||||||| 0x0802e084 f9f7f4f8 bl func_27270
| ||||||| 0x0802e088 dff8400b ldr.w r0, [0x0802ebd0] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e08c 0078 ldrb r0, [r0]
| ||||||| 0x0802e08e 401c adds r0, r0, 1
| ||||||| 0x0802e090 dff8381b ldr.w r1, [0x0802ebd0] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e094 0870 strb r0, [r1]
| ||||||| 0x0802e096 dff82c0b ldr.w r0, [0x0802ebca] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e09a 0078 ldrb r0, [r0]
| ||||||| 0x0802e09c 401c adds r0, r0, 1
| ||||||| 0x0802e09e dff8241b ldr.w r1, [0x0802ebca] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e0a2 0870 strb r0, [r1]
| ||||||| 0x0802e0a4 dff8240b ldr.w r0, [0x0802ebd0] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e0a8 0078 ldrb r0, [r0]
| ||||||| 0x0802e0aa dff8241b ldr.w r1, [0x0802ebd6] ; [0x802ebd4:4]=0xf8dfb580
| ||||||| 0x0802e0ae 0968 ldr r1, [r1]
| ||||||| 0x0802e0b0 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0802e0b4 20f8024c strh r4, [r0, -0x2]
| ||||||| ;-- kb_enter_alpha:
| ||||||| 0x0802e0b8 0020 movs r0, 0
| ========< 0x0802e0ba 4ce0 b 0x802e156
| `-------> 0x0802e0bc dff8600a ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e0c0 0078 ldrb r0, [r0]
| |||||| 0x0802e0c2 0e28 cmp r0, 0xe ; 14
| ,=======< 0x0802e0c4 05d1 bne 0x802e0d2
| ||||||| 0x0802e0c6 2a24 movs r4, 0x2a ; '*' ; 42
| ||||||| 0x0802e0c8 dff8640a ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e0cc 0e21 movs r1, 0xe ; 14
| ||||||| 0x0802e0ce 0170 strb r1, [r0]
| ========< 0x0802e0d0 bce7 b 0x802e04c
| `-------> 0x0802e0d2 dff84c0a ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e0d6 0078 ldrb r0, [r0]
| |||||| 0x0802e0d8 0f28 cmp r0, 0xf ; 15
| ,=======< 0x0802e0da 05d1 bne 0x802e0e8
| ||||||| 0x0802e0dc 2324 movs r4, 0x23 ; '#' ; 35
| ||||||| 0x0802e0de dff8500a ldr.w r0, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e0e2 0f21 movs r1, 0xf ; 15
| ||||||| 0x0802e0e4 0170 strb r1, [r0]
| ========< 0x0802e0e6 b1e7 b 0x802e04c
| `-------> 0x0802e0e8 dff8340a ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e0ec 0078 ldrb r0, [r0]
| |||||| 0x0802e0ee 0b28 cmp r0, 0xb ; 11
| ,=======< 0x0802e0f0 05d1 bne 0x802e0fe
| ||||||| 0x0802e0f2 4124 movs r4, 0x41 ; 'A' ; 65
| ||||||| 0x0802e0f4 dff8380a ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e0f8 0a21 movs r1, 0xa ; 10
| ||||||| 0x0802e0fa 0170 strb r1, [r0]
| ========< 0x0802e0fc a6e7 b 0x802e04c
| `-------> 0x0802e0fe dff8200a ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e102 0078 ldrb r0, [r0]
| |||||| 0x0802e104 0a28 cmp r0, 0xa ; 10
| ,=======< 0x0802e106 05d1 bne 0x802e114
| ||||||| 0x0802e108 4324 movs r4, 0x43 ; 'C' ; 67
| ||||||| 0x0802e10a dff8240a ldr.w r0, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e10e 0c21 movs r1, 0xc ; 12
| ||||||| 0x0802e110 0170 strb r1, [r0]
| ========< 0x0802e112 9be7 b 0x802e04c
| `-------> 0x0802e114 dff8080a ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e118 0078 ldrb r0, [r0]
| |||||| 0x0802e11a 0c28 cmp r0, 0xc ; 12
| ,=======< 0x0802e11c 05d1 bne 0x802e12a
| ||||||| 0x0802e11e 4224 movs r4, 0x42 ; 'B' ; 66
| ||||||| 0x0802e120 dff80c0a ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e124 0b21 movs r1, 0xb ; 11
| ||||||| 0x0802e126 0170 strb r1, [r0]
| ========< 0x0802e128 90e7 b 0x802e04c
| `-------> 0x0802e12a dff8f409 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| |||||| 0x0802e12e 0078 ldrb r0, [r0]
| |||||| 0x0802e130 0d28 cmp r0, 0xd ; 13
| ,=======< 0x0802e132 05d1 bne 0x802e140
| ||||||| 0x0802e134 4424 movs r4, 0x44 ; 'D' ; 68
| ||||||| 0x0802e136 dff8f809 ldr.w r0, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e13a 0d21 movs r1, 0xd ; 13
| ||||||| 0x0802e13c 0170 strb r1, [r0]
| ========< 0x0802e13e 85e7 b 0x802e04c
| `-------> 0x0802e140 f5e2 b 0x802e72e
| .-------> 0x0802e142 dff8881a ldr.w r1, [0x0802ebd2] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e146 0978 ldrb r1, [r1]
| ||||||| 0x0802e148 dff8842a ldr.w r2, [0x0802ebd4] ; [0x802ebd4:4]=0xf8dfb580
| ||||||| 0x0802e14c 1268 ldr r2, [r2]
| ||||||| 0x0802e14e 0023 movs r3, 0
| ||||||| 0x0802e150 22f81130 strh.w r3, [r2, r1, lsl 1]
| ||||||| 0x0802e154 401c adds r0, r0, 1
| --------> 0x0802e156 dff8741a ldr.w r1, [0x0802ebd2] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e15a 0978 ldrb r1, [r1]
| ||||||| 0x0802e15c d1f19001 rsbs.w r1, r1, 0x90
| ||||||| 0x0802e160 8842 cmp r0, r1
| `=======< 0x0802e162 eedb blt 0x802e142
| |||||| 0x0802e164 dff8140b ldr.w r0, [0x0802ec80] ; [0x802ec80:4]=0x2001e90b
| |||||| 0x0802e168 eff702f9 bl gfx_set_fg_color
| |||||| 0x0802e16c dff80c0b ldr.w r0, [0x0802ec80] ; [0x802ec80:4]=0x2001e90b
| |||||| 0x0802e170 eff7faf8 bl gfx_set_bg_color
| |||||| 0x0802e174 7ff07f40 mvns r0, 0xff000000
| |||||| 0x0802e178 eff7faf8 bl gfx_set_fg_color
| |||||| 0x0802e17c 7e23 movs r3, 0x7e ; '~' ; 126
| |||||| 0x0802e17e 9e22 movs r2, 0x9e ; 158
| |||||| 0x0802e180 6e21 movs r1, 0x6e ; 'n' ; 110
| |||||| 0x0802e182 0120 movs r0, 1 ; 1
| |||||| 0x0802e184 eff782fb bl gfx_blockfill
| |||||| 0x0802e188 1123 movs r3, 0x11 ; 17
| |||||| 0x0802e18a 9f22 movs r2, 0x9f ; 159
| |||||| 0x0802e18c 0d21 movs r1, 0xd ; 13
| |||||| 0x0802e18e 8d20 movs r0, 0x8d ; 141
| |||||| 0x0802e190 eff77cfb bl gfx_blockfill
| |||||| 0x0802e194 7ff07f40 mvns r0, 0xff000000
| |||||| 0x0802e198 eff7e6f8 bl gfx_set_bg_color
| |||||| 0x0802e19c 0020 movs r0, 0
| |||||| 0x0802e19e eff7e7f8 bl gfx_set_fg_color
| |||||| 0x0802e1a2 dff8dc0a ldr.w r0, [0x0802ec86] ; [0x802ec84:4]=0x2001e6ec
| |||||| 0x0802e1a6 0078 ldrb r0, [r0]
| |||||| 0x0802e1a8 0028 cmp r0, 0
| ,=======< 0x0802e1aa 05d1 bne 0x802e1b8
| ||||||| 0x0802e1ac dff79efd bl func_0dcec
| ||||||| 0x0802e1b0 dff8cc0a ldr.w r0, [0x0802ec84] ; [0x802ec84:4]=0x2001e6ec
| ||||||| 0x0802e1b4 0121 movs r1, 1 ; 1
| ||||||| 0x0802e1b6 0170 strb r1, [r0]
| `-------> 0x0802e1b8 dff8c80a ldr.w r0, [0x0802ec88] ; [0x802ec88:4]=0x20001704 md380_menu_ptr_to_80d032c
| |||||| 0x0802e1bc 0068 ldr r0, [r0]
| |||||| 0x0802e1be dff8c81a ldr.w r1, [0x0802ec8e] ; [0x802ec8c:4]=0x2001e700 menu_memory_poi
| |||||| 0x0802e1c2 11eb8000 adds.w r0, r1, r0, lsl 2
| |||||| 0x0802e1c6 806a ldr r0, [r0, 0x28]
| |||||| 0x0802e1c8 dff8c01a ldr.w r1, [0x0802ec90] ; [0x802ec90:4]=0x2001e94b gui_opmode2
| |||||| 0x0802e1cc 0968 ldr r1, [r1]
| |||||| 0x0802e1ce 0860 str r0, [r1]
| |||||| 0x0802e1d0 def70afb bl func_0c7e8
| ,=======< 0x0802e1d4 abe2 b 0x802e72e
| ||```---> 0x0802e1d6 dff85409 ldr.w r0, [0x0802eb32] ; [0x802eb30:4]=0x2001e891 keycode_old
| || || 0x0802e1da 0078 ldrb r0, [r0]
| || || 0x0802e1dc 0028 cmp r0, 0
| || ,===< 0x0802e1de 79d1 bne 0x802e2d4
| || ||| 0x0802e1e0 dff8d005 ldr.w r0, [0x0802e7b8] ; [0x802e7b8:4]=0x2001e5f4
| || ||| 0x0802e1e4 0078 ldrb r0, [r0]
| || ||| 0x0802e1e6 10f00300 ands r0, r0, 3
| || ||| 0x0802e1ea 0128 cmp r0, 1 ; 1
| || ,====< 0x0802e1ec 72d1 bne 0x802e2d4
| || |||| 0x0802e1ee dff8a00a ldr.w r0, [0x0802ec96] ; [0x802ec94:4]=0x2001e4b4
| || |||| 0x0802e1f2 0078 ldrb r0, [r0]
| || |||| 0x0802e1f4 0128 cmp r0, 1 ; 1
| ||,=====< 0x0802e1f6 6dd1 bne 0x802e2d4
| ||||||| 0x0802e1f8 dff82409 ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e1fc 0078 ldrb r0, [r0]
| ||||||| 0x0802e1fe 0f28 cmp r0, 0xf ; 15
| ========< 0x0802e200 68d1 bne 0x802e2d4
| ||||||| 0x0802e202 dff82409 ldr.w r0, [0x0802eb2e] ; [0x802eb2c:4]=0x2001e8ed
| ||||||| 0x0802e206 0078 ldrb r0, [r0]
| ||||||| 0x0802e208 0228 cmp r0, 2 ; 2
| ========< 0x0802e20a 63d0 beq 0x802e2d4
| ||||||| 0x0802e20c dff81c09 ldr.w r0, [0x0802eb30] ; [0x802eb30:4]=0x2001e891 keycode_old
| ||||||| 0x0802e210 0121 movs r1, 1 ; 1
| ||||||| 0x0802e212 0170 strb r1, [r0]
| ||||||| 0x0802e214 dff87c0a ldr.w r0, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e218 0021 movs r1, 0
| ||||||| 0x0802e21a 0170 strb r1, [r0]
| ||||||| 0x0802e21c dff8a809 ldr.w r0, [0x0802ebcc] ; [0x802ebcc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0802e220 9021 movs r1, 0x90 ; 144
| ||||||| 0x0802e222 0170 strb r1, [r0]
| ||||||| 0x0802e224 dff89c09 ldr.w r0, [0x0802ebc8] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e228 0021 movs r1, 0
| ||||||| 0x0802e22a 0170 strb r1, [r0]
| ||||||| 0x0802e22c dff89c09 ldr.w r0, [0x0802ebd0] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e230 0021 movs r1, 0
| ||||||| 0x0802e232 0170 strb r1, [r0]
| ||||||| 0x0802e234 f9f71cf8 bl func_27270
| ||||||| 0x0802e238 0020 movs r0, 0
| ========< 0x0802e23a 06e0 b 0x802e24a
| --------> 0x0802e23c dff89019 ldr.w r1, [0x0802ebd4] ; [0x802ebd4:4]=0xf8dfb580
| ||||||| 0x0802e240 0968 ldr r1, [r1]
| ||||||| 0x0802e242 0022 movs r2, 0
| ||||||| 0x0802e244 21f81020 strh.w r2, [r1, r0, lsl 1]
| ||||||| 0x0802e248 401c adds r0, r0, 1
| --------> 0x0802e24a 9028 cmp r0, 0x90 ; 144
| ========< 0x0802e24c f6db blt 0x802e23c
| ||||||| 0x0802e24e dff82c0a ldr.w r0, [0x0802ec82] ; [0x802ec80:4]=0x2001e90b
| ||||||| 0x0802e252 eff78df8 bl gfx_set_fg_color
| ||||||| 0x0802e256 dff8240a ldr.w r0, [0x0802ec82] ; [0x802ec80:4]=0x2001e90b
| ||||||| 0x0802e25a eff785f8 bl gfx_set_bg_color
| ||||||| 0x0802e25e 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0802e262 eff785f8 bl gfx_set_fg_color
| ||||||| 0x0802e266 7e23 movs r3, 0x7e ; '~' ; 126
| ||||||| 0x0802e268 9e22 movs r2, 0x9e ; 158
| ||||||| 0x0802e26a 6e21 movs r1, 0x6e ; 'n' ; 110
| ||||||| 0x0802e26c 0120 movs r0, 1 ; 1
| ||||||| 0x0802e26e eff70dfb bl gfx_blockfill
| ||||||| 0x0802e272 1123 movs r3, 0x11 ; 17
| ||||||| 0x0802e274 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0802e276 0d21 movs r1, 0xd ; 13
| ||||||| 0x0802e278 8d20 movs r0, 0x8d ; 141
| ||||||| 0x0802e27a eff707fb bl gfx_blockfill
| ||||||| 0x0802e27e 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0802e282 eff771f8 bl gfx_set_bg_color
| ||||||| 0x0802e286 0020 movs r0, 0
| ||||||| 0x0802e288 eff772f8 bl gfx_set_fg_color
| ||||||| 0x0802e28c dff72efd bl func_0dcec
| ||||||| 0x0802e290 dff8f009 ldr.w r0, [0x0802ec88] ; [0x802ec88:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0802e294 0068 ldr r0, [r0]
| ||||||| 0x0802e296 dff8f019 ldr.w r1, [0x0802ec8e] ; [0x802ec8c:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0802e29a 11eb8000 adds.w r0, r1, r0, lsl 2
| ||||||| 0x0802e29e 806a ldr r0, [r0, 0x28]
| ||||||| 0x0802e2a0 dff8e819 ldr.w r1, [0x0802ec90] ; [0x802ec90:4]=0x2001e94b gui_opmode2
| ||||||| 0x0802e2a4 0968 ldr r1, [r1]
| ||||||| 0x0802e2a6 0860 str r0, [r1]
| ||||||| 0x0802e2a8 def79efa bl func_0c7e8
| ||||||| 0x0802e2ac dff85807 ldr.w r0, [func_2ea0c_beeps_and_uses_struct_channel_info2] ; [0x802ea0c:4]=0x4845b580
| ||||||| 0x0802e2b0 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802e2b2 c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x0802e2b6 c007 lsls r0, r0, 0x1f
| ========< 0x0802e2b8 40f13982 bpl.w 0x802e72e
| ||||||| 0x0802e2bc dff80009 ldr.w r0, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e2c0 2721 movs r1, 0x27 ; ''' ; 39
| ||||||| 0x0802e2c2 0170 strb r1, [r0]
| ||||||| 0x0802e2c4 dff8f818 ldr.w r1, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e2c8 dff8e808 ldr.w r0, [0x0802ebb8] ; [0x802ebb8:4]=0x2001e60c
| ||||||| 0x0802e2cc 0068 ldr r0, [r0]
| ||||||| 0x0802e2ce 02f065ff bl md380_OSMboxPost
| ========< 0x0802e2d2 2ce2 b 0x802e72e
| --```---> 0x0802e2d4 dff85408 ldr.w r0, [0x0802eb30] ; [0x802eb30:4]=0x2001e891 keycode_old
| || || 0x0802e2d8 0078 ldrb r0, [r0]
| || || 0x0802e2da 0128 cmp r0, 1 ; 1
| || ,===< 0x0802e2dc 40f00281 bne.w 0x802e4e4
| || ||| 0x0802e2e0 dff8d004 ldr.w r0, [0x0802e7b8] ; [0x802e7b8:4]=0x2001e5f4
| || ||| 0x0802e2e4 0078 ldrb r0, [r0]
| || ||| 0x0802e2e6 10f00300 ands r0, r0, 3
| || ||| 0x0802e2ea 0128 cmp r0, 1 ; 1
| || ,====< 0x0802e2ec 40f0fa80 bne.w 0x802e4e4
| || |||| 0x0802e2f0 dff83408 ldr.w r0, [0x0802eb2c] ; [0x802eb2c:4]=0x2001e8ed
| || |||| 0x0802e2f4 0078 ldrb r0, [r0]
| || |||| 0x0802e2f6 0228 cmp r0, 2 ; 2
| ||,=====< 0x0802e2f8 00f0f480 beq.w 0x802e4e4
| ||||||| 0x0802e2fc dff89409 ldr.w r0, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e300 0078 ldrb r0, [r0]
| ||||||| 0x0802e302 1e28 cmp r0, 0x1e ; 30
| ========< 0x0802e304 80f0da80 bhs.w 0x802e4bc
| ||||||| 0x0802e308 dff81408 ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e30c 0078 ldrb r0, [r0]
| ||||||| 0x0802e30e 0a28 cmp r0, 0xa ; 10
| ========< 0x0802e310 2ed2 bhs 0x802e370
| ||||||| 0x0802e312 dff80c08 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e316 0078 ldrb r0, [r0]
| ||||||| 0x0802e318 10f13004 adds.w r4, r0, 0x30
| ||||||| 0x0802e31c dff81008 ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e320 dff8fc17 ldr.w r1, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e324 0978 ldrb r1, [r1]
| ||||||| 0x0802e326 0170 strb r1, [r0]
| --------> 0x0802e328 dff86809 ldr.w r0, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e32c 0078 ldrb r0, [r0]
| ||||||| 0x0802e32e 0221 movs r1, 2 ; 2
| ||||||| 0x0802e330 90fbf1f2 sdiv r2, r0, r1
| ||||||| 0x0802e334 02fb1102 mls r2, r2, r1, r0
| ||||||| 0x0802e338 002a cmp r2, 0
| ========< 0x0802e33a 7ad0 beq 0x802e432
| ||||||| 0x0802e33c dff85409 ldr.w r0, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e340 0078 ldrb r0, [r0]
| ||||||| 0x0802e342 0221 movs r1, 2 ; 2
| ||||||| 0x0802e344 90fbf1f0 sdiv r0, r0, r1
| ||||||| 0x0802e348 dff84819 ldr.w r1, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e34c 4018 adds r0, r0, r1
| ||||||| 0x0802e34e dff84419 ldr.w r1, [0x0802ec9a] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e352 0978 ldrb r1, [r1]
| ||||||| 0x0802e354 0222 movs r2, 2 ; 2
| ||||||| 0x0802e356 91fbf2f1 sdiv r1, r1, r2
| ||||||| 0x0802e35a dff83829 ldr.w r2, [0x0802ec9a] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e35e 8918 adds r1, r1, r2
| ||||||| 0x0802e360 4978 ldrb r1, [r1, 1]
| ||||||| 0x0802e362 dff8cc27 ldr.w r2, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e366 1278 ldrb r2, [r2]
| ||||||| 0x0802e368 51ea0211 orrs.w r1, r1, r2, lsl 4
| ||||||| 0x0802e36c 4170 strb r1, [r0, 1]
| ========< 0x0802e36e 6de0 b 0x802e44c
| --------> 0x0802e370 dff8ac07 ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e374 0078 ldrb r0, [r0]
| ||||||| 0x0802e376 0e28 cmp r0, 0xe ; 14
| ========< 0x0802e378 05d1 bne 0x802e386
| ||||||| 0x0802e37a 2a24 movs r4, 0x2a ; '*' ; 42
| ||||||| 0x0802e37c dff8b007 ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e380 0e21 movs r1, 0xe ; 14
| ||||||| 0x0802e382 0170 strb r1, [r0]
| ========< 0x0802e384 d0e7 b 0x802e328
| --------> 0x0802e386 dff89807 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e38a 0078 ldrb r0, [r0]
| ||||||| 0x0802e38c 0f28 cmp r0, 0xf ; 15
| ========< 0x0802e38e 05d1 bne 0x802e39c
| ||||||| 0x0802e390 2324 movs r4, 0x23 ; '#' ; 35
| ||||||| 0x0802e392 dff89c07 ldr.w r0, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e396 0f21 movs r1, 0xf ; 15
| ||||||| 0x0802e398 0170 strb r1, [r0]
| ========< 0x0802e39a c5e7 b 0x802e328
| --------> 0x0802e39c dff88007 ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e3a0 0078 ldrb r0, [r0]
| ||||||| 0x0802e3a2 0b28 cmp r0, 0xb ; 11
| ========< 0x0802e3a4 05d1 bne 0x802e3b2
| ||||||| 0x0802e3a6 4124 movs r4, 0x41 ; 'A' ; 65
| ||||||| 0x0802e3a8 dff88407 ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e3ac 0a21 movs r1, 0xa ; 10
| ||||||| 0x0802e3ae 0170 strb r1, [r0]
| ========< 0x0802e3b0 bae7 b 0x802e328
| --------> 0x0802e3b2 dff86c07 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e3b6 0078 ldrb r0, [r0]
| ||||||| 0x0802e3b8 0a28 cmp r0, 0xa ; 10
| ========< 0x0802e3ba 05d1 bne 0x802e3c8
| ||||||| 0x0802e3bc 4324 movs r4, 0x43 ; 'C' ; 67
| ||||||| 0x0802e3be dff87007 ldr.w r0, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e3c2 0c21 movs r1, 0xc ; 12
| ||||||| 0x0802e3c4 0170 strb r1, [r0]
| ========< 0x0802e3c6 afe7 b 0x802e328
| --------> 0x0802e3c8 dff85407 ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e3cc 0078 ldrb r0, [r0]
| ||||||| 0x0802e3ce 0c28 cmp r0, 0xc ; 12
| ========< 0x0802e3d0 05d1 bne 0x802e3de
| ||||||| 0x0802e3d2 4224 movs r4, 0x42 ; 'B' ; 66
| ||||||| 0x0802e3d4 dff85807 ldr.w r0, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e3d8 0b21 movs r1, 0xb ; 11
| ||||||| 0x0802e3da 0170 strb r1, [r0]
| ========< 0x0802e3dc a4e7 b 0x802e328
| --------> 0x0802e3de dff84007 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e3e2 0078 ldrb r0, [r0]
| ||||||| 0x0802e3e4 0d28 cmp r0, 0xd ; 13
| ========< 0x0802e3e6 05d1 bne 0x802e3f4
| ||||||| 0x0802e3e8 4424 movs r4, 0x44 ; 'D' ; 68
| ||||||| 0x0802e3ea dff84407 ldr.w r0, [0x0802eb36] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e3ee 0d21 movs r1, 0xd ; 13
| ||||||| 0x0802e3f0 0170 strb r1, [r0]
| ========< 0x0802e3f2 99e7 b 0x802e328
| --------> 0x0802e3f4 dff82807 ldr.w r0, [0x0802eb24] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||||| 0x0802e3f8 0078 ldrb r0, [r0]
| ||||||| 0x0802e3fa 1028 cmp r0, 0x10 ; 16
| ========< 0x0802e3fc 18d1 bne 0x802e430
| ||||||| 0x0802e3fe dff80806 ldr.w r0, [0x0802ea0e] ; [0x802ea0c:4]=0x4845b580
| ||||||| 0x0802e402 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802e404 c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x0802e408 c007 lsls r0, r0, 0x1f
| ========< 0x0802e40a 0ad5 bpl 0x802e422
| ||||||| 0x0802e40c dff8b007 ldr.w r0, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e410 2721 movs r1, 0x27 ; ''' ; 39
| ||||||| 0x0802e412 0170 strb r1, [r0]
| ||||||| 0x0802e414 dff8a817 ldr.w r1, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e418 dff89807 ldr.w r0, [0x0802ebb8] ; [0x802ebb8:4]=0x2001e60c
| ||||||| 0x0802e41c 0068 ldr r0, [r0]
| ||||||| 0x0802e41e 02f0bdfe bl md380_OSMboxPost
| --------> 0x0802e422 dff80807 ldr.w r0, [0x0802eb32] ; [0x802eb30:4]=0x2001e891 keycode_old
| ||||||| 0x0802e426 0021 movs r1, 0
| ||||||| 0x0802e428 0170 strb r1, [r0]
| ||||||| 0x0802e42a e1f734fc bl return_to_mode_1_from10
| ========< 0x0802e42e 7ee1 b 0x802e72e
| --------> 0x0802e430 7de1 b 0x802e72e
| --------> 0x0802e432 dff86008 ldr.w r0, [0x0802ec9a] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e436 0078 ldrb r0, [r0]
| ||||||| 0x0802e438 0221 movs r1, 2 ; 2
| ||||||| 0x0802e43a 90fbf1f0 sdiv r0, r0, r1
| ||||||| 0x0802e43e dff85418 ldr.w r1, [0x0802ec9a] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e442 4018 adds r0, r0, r1
| ||||||| 0x0802e444 dff8e816 ldr.w r1, [0x0802eb34] ; [0x802eb34:4]=0xf8dfb580
| ||||||| 0x0802e448 0978 ldrb r1, [r1]
| ||||||| 0x0802e44a 4170 strb r1, [r0, 1]
| --------> 0x0802e44c dff84408 ldr.w r0, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e450 0078 ldrb r0, [r0]
| ||||||| 0x0802e452 401c adds r0, r0, 1
| ||||||| 0x0802e454 dff83c18 ldr.w r1, [0x0802ec98] ; [0x802ec98:4]=0xf8dfb580
| ||||||| 0x0802e458 0870 strb r0, [r1]
| ||||||| 0x0802e45a dff86407 ldr.w r0, [0x0802ebc6] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e45e 2821 movs r1, 0x28 ; '(' ; 40
| ||||||| 0x0802e460 0170 strb r1, [r0]
| ||||||| 0x0802e462 dff85c17 ldr.w r1, [0x0802ebc6] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e466 dff84c07 ldr.w r0, [0x0802ebba] ; [0x802ebb8:4]=0x2001e60c
| ||||||| 0x0802e46a 0068 ldr r0, [r0]
| ||||||| 0x0802e46c 02f096fe bl md380_OSMboxPost
| ||||||| 0x0802e470 dff85007 ldr.w r0, [0x0802ebc8] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e474 0078 ldrb r0, [r0]
| ||||||| 0x0802e476 dff85017 ldr.w r1, [0x0802ebce] ; [0x802ebcc:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0802e47a 0978 ldrb r1, [r1]
| ||||||| 0x0802e47c 8842 cmp r0, r1
| ========< 0x0802e47e 80f05681 bhs.w 0x802e72e
| ||||||| 0x0802e482 f8f7f5fe bl func_27270
| ||||||| 0x0802e486 dff84407 ldr.w r0, [0x0802ebd2] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e48a 0078 ldrb r0, [r0]
| ||||||| 0x0802e48c 401c adds r0, r0, 1
| ||||||| 0x0802e48e dff83c17 ldr.w r1, [0x0802ebd2] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e492 0870 strb r0, [r1]
| ||||||| 0x0802e494 dff82c07 ldr.w r0, [0x0802ebc8] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e498 0078 ldrb r0, [r0]
| ||||||| 0x0802e49a 401c adds r0, r0, 1
| ||||||| 0x0802e49c dff82417 ldr.w r1, [0x0802ebc8] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e4a0 0870 strb r0, [r1]
| ||||||| 0x0802e4a2 dff82807 ldr.w r0, [0x0802ebd2] ; [0x802ebd0:4]=0x200049fc mn_editbuffer_poi
| ||||||| 0x0802e4a6 0078 ldrb r0, [r0]
| ||||||| 0x0802e4a8 dff82417 ldr.w r1, [0x0802ebd4] ; [0x802ebd4:4]=0xf8dfb580
| ||||||| 0x0802e4ac 0968 ldr r1, [r1]
| ||||||| 0x0802e4ae 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0802e4b2 20f8024c strh r4, [r0, -0x2]
| ||||||| 0x0802e4b6 def797f9 bl func_0c7e8
| ========< 0x0802e4ba 38e1 b 0x802e72e
| --------> 0x0802e4bc dff84805 ldr.w r0, [func_2ea0c_beeps_and_uses_struct_channel_info2] ; [0x802ea0c:4]=0x4845b580
| ||||||| 0x0802e4c0 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802e4c2 c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x0802e4c6 c007 lsls r0, r0, 0x1f
| ========< 0x0802e4c8 40f13181 bpl.w 0x802e72e
| ||||||| 0x0802e4cc dff8f006 ldr.w r0, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e4d0 2721 movs r1, 0x27 ; ''' ; 39
| ||||||| 0x0802e4d2 0170 strb r1, [r0]
| ||||||| 0x0802e4d4 dff8e816 ldr.w r1, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e4d8 dff8d806 ldr.w r0, [0x0802ebb8] ; [0x802ebb8:4]=0x2001e60c
| ||||||| 0x0802e4dc 0068 ldr r0, [r0]
| ||||||| 0x0802e4de 02f05dfe bl md380_OSMboxPost
| ========< 0x0802e4e2 24e1 b 0x802e72e
| ||```---> 0x0802e4e4 dff84406 ldr.w r0, [0x0802eb30] ; [0x802eb30:4]=0x2001e891 keycode_old
| || || 0x0802e4e8 0021 movs r1, 0
| || || 0x0802e4ea 0170 strb r1, [r0]
| || || 0x0802e4ec dff81805 ldr.w r0, [func_2ea0c_beeps_and_uses_struct_channel_info2] ; [0x802ea0c:4]=0x4845b580
| || || 0x0802e4f0 8078 ldrb r0, [r0, 2]
| || || 0x0802e4f2 c0f34010 ubfx r0, r0, 5, 1
| || || 0x0802e4f6 c007 lsls r0, r0, 0x1f
| || ,===< 0x0802e4f8 11d5 bpl 0x802e51e
| || ||| 0x0802e4fa dff8500a ldr.w r0, [0x0802ef52] ; [0x802ef50:4]=0x2001e6fc
| || ||| 0x0802e4fe 0078 ldrb r0, [r0]
| || ||| 0x0802e500 10f00300 ands r0, r0, 3
| || ||| 0x0802e504 0328 cmp r0, 3 ; 3
| || ,====< 0x0802e506 0ad0 beq 0x802e51e
| || |||| 0x0802e508 dff8b406 ldr.w r0, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| || |||| 0x0802e50c 2721 movs r1, 0x27 ; ''' ; 39
| || |||| 0x0802e50e 0170 strb r1, [r0]
| || |||| 0x0802e510 dff8ac16 ldr.w r1, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| || |||| 0x0802e514 dff89c06 ldr.w r0, [0x0802ebb8] ; [0x802ebb8:4]=0x2001e60c
| || |||| 0x0802e518 0068 ldr r0, [r0]
| || |||| 0x0802e51a 02f03ffe bl md380_OSMboxPost
| || ``---> 0x0802e51e dff80006 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| || || 0x0802e522 0078 ldrb r0, [r0]
| || || 0x0802e524 0a28 cmp r0, 0xa ; 10
| || ,===< 0x0802e526 72d0 beq 0x802e60e
| || ||| 0x0802e528 0b28 cmp r0, 0xb ; 11
| || ,====< 0x0802e52a 6ad0 beq 0x802e602
| || |||| 0x0802e52c 0c28 cmp r0, 0xc ; 12
| ||,=====< 0x0802e52e 6bd0 beq 0x802e608
| ||||||| 0x0802e530 0d28 cmp r0, 0xd ; 13
| ========< 0x0802e532 05d0 beq 0x802e540
| ||||||| 0x0802e534 1028 cmp r0, 0x10 ; 16
| ========< 0x0802e536 40f09a80 bne.w 0x802e66e
| ||||||| 0x0802e53a dff725fb bl func_0db88
| ========< 0x0802e53e f6e0 b 0x802e72e
| --------> 0x0802e540 dff80c0a ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e544 0068 ldr r0, [r0]
| ||||||| 0x0802e546 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e548 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0802e54c 0628 cmp r0, 6 ; 6
| ========< 0x0802e54e 06d1 bne 0x802e55e
| ||||||| 0x0802e550 e0f722fb bl menu_dispatcher
| ||||||| 0x0802e554 dff8fc09 ldr.w r0, [0x0802ef58] ; [0x802ef58:4]=0x20004ac9
| ||||||| 0x0802e558 0021 movs r1, 0
| ||||||| 0x0802e55a 0170 strb r1, [r0]
| ========< 0x0802e55c 50e0 b 0x802e600
| --------> 0x0802e55e dff82c07 ldr.w r0, [0x0802ec92] ; [0x802ec90:4]=0x2001e94b gui_opmode2
| ||||||| 0x0802e562 0068 ldr r0, [r0]
| ||||||| 0x0802e564 0068 ldr r0, [r0]
| ||||||| 0x0802e566 dff81c17 ldr.w r1, [0x0802ec8a] ; [0x802ec88:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0802e56a 0968 ldr r1, [r1]
| ||||||| 0x0802e56c dff81827 ldr.w r2, [0x0802ec8c] ; [0x802ec8c:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0802e570 12eb8101 adds.w r1, r2, r1, lsl 2
| ||||||| 0x0802e574 d1f87813 ldr.w r1, [r1, 0x378]
| ||||||| 0x0802e578 8842 cmp r0, r1
| ========< 0x0802e57a 0ed0 beq 0x802e59a
| ||||||| 0x0802e57c dff80c07 ldr.w r0, [0x0802ec90] ; [0x802ec90:4]=0x2001e94b gui_opmode2
| ||||||| 0x0802e580 0068 ldr r0, [r0]
| ||||||| 0x0802e582 0068 ldr r0, [r0]
| ||||||| 0x0802e584 dff8fc16 ldr.w r1, [0x0802ec88] ; [0x802ec88:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0802e588 0968 ldr r1, [r1]
| ||||||| 0x0802e58a dff8fc26 ldr.w r2, [0x0802ec8e] ; [0x802ec8c:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0802e58e 12eb8101 adds.w r1, r2, r1, lsl 2
| ||||||| 0x0802e592 d1f87c13 ldr.w r1, [r1, 0x37c]
| ||||||| 0x0802e596 8842 cmp r0, r1
| ========< 0x0802e598 02d1 bne 0x802e5a0
| --------> 0x0802e59a e1f785f8 bl menu_func_0f6a8
| ========< 0x0802e59e c6e0 b 0x802e72e
| --------> 0x0802e5a0 dff8ac09 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e5a4 0068 ldr r0, [r0]
| ||||||| 0x0802e5a6 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e5a8 1f21 movs r1, 0x1f ; 31
| ||||||| 0x0802e5aa 0842 tst r0, r1
| ========< 0x0802e5ac 07d0 beq 0x802e5be
| ||||||| 0x0802e5ae dff8a009 ldr.w r0, [0x0802ef56] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e5b2 0068 ldr r0, [r0]
| ||||||| 0x0802e5b4 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e5b6 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0802e5ba 0128 cmp r0, 1 ; 1
| ========< 0x0802e5bc 1ed1 bne 0x802e5fc
| --------> 0x0802e5be dff80406 ldr.w r0, [0x0802ebca] ; [0x802ebc8:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802e5c2 0078 ldrb r0, [r0]
| ||||||| 0x0802e5c4 0028 cmp r0, 0
| ========< 0x0802e5c6 04d1 bne 0x802e5d2
| ||||||| 0x0802e5c8 dff88c09 ldr.w r0, [0x0802ef5c] ; [0x802ef5c:4]=0x20004acc md380_menu_depth
| ||||||| 0x0802e5cc 0078 ldrb r0, [r0]
| ||||||| 0x0802e5ce 0328 cmp r0, 3 ; 3
| ========< 0x0802e5d0 14d1 bne 0x802e5fc
| --------> 0x0802e5d2 dff88809 ldr.w r0, [0x0802ef62] ; [0x802ef60:4]=0xf8dfb580
| ||||||| 0x0802e5d6 0078 ldrb r0, [r0]
| ||||||| 0x0802e5d8 1028 cmp r0, 0x10 ; 16
| ========< 0x0802e5da 0ed2 bhs 0x802e5fa
| ||||||| 0x0802e5dc dff87009 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e5e0 0068 ldr r0, [r0]
| ||||||| 0x0802e5e2 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e5e4 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0802e5e8 0328 cmp r0, 3 ; 3
| ========< 0x0802e5ea 04da bge 0x802e5f6
| ||||||| 0x0802e5ec dff86009 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e5f0 0068 ldr r0, [r0]
| ||||||| 0x0802e5f2 8068 ldr r0, [r0, 8]
| ||||||| 0x0802e5f4 8047 blx r0
| --------> 0x0802e5f6 def7f7f8 bl func_0c7e8
| --------> 0x0802e5fa 98e0 b 0x802e72e
| --------> 0x0802e5fc e1f754f8 bl menu_func_0f6a8
| --------> 0x0802e600 95e0 b 0x802e72e
| |||`----> 0x0802e602 e0f779fe bl menu_F_4144
| |||,====< 0x0802e606 92e0 b 0x802e72e
| ||`-----> 0x0802e608 e0f750ff bl menu_func_0f4ac
| ||,=====< 0x0802e60c 8fe0 b 0x802e72e
| ||||`---> 0x0802e60e dff84809 ldr.w r0, [0x0802ef5e] ; [0x802ef5c:4]=0x20004acc md380_menu_depth
| |||| || 0x0802e612 0078 ldrb r0, [r0]
| |||| || 0x0802e614 0328 cmp r0, 3 ; 3
| ||||,===< 0x0802e616 23d1 bne 0x802e660
| ||||||| 0x0802e618 dff83409 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e61c 0068 ldr r0, [r0]
| ||||||| 0x0802e61e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e620 1f21 movs r1, 0x1f ; 31
| ||||||| 0x0802e622 0842 tst r0, r1
| ========< 0x0802e624 07d0 beq 0x802e636
| ||||||| 0x0802e626 dff82809 ldr.w r0, [0x0802ef56] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e62a 0068 ldr r0, [r0]
| ||||||| 0x0802e62c 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e62e 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0802e632 0128 cmp r0, 1 ; 1
| ========< 0x0802e634 14d1 bne 0x802e660
| --------> 0x0802e636 dff82409 ldr.w r0, [0x0802ef62] ; [0x802ef60:4]=0xf8dfb580
| ||||||| 0x0802e63a 0078 ldrb r0, [r0]
| ||||||| 0x0802e63c 1028 cmp r0, 0x10 ; 16
| ========< 0x0802e63e 0ed2 bhs 0x802e65e
| ||||||| 0x0802e640 dff80c09 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e644 0068 ldr r0, [r0]
| ||||||| 0x0802e646 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e648 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0802e64c 0328 cmp r0, 3 ; 3
| ========< 0x0802e64e 04da bge 0x802e65a
| ||||||| 0x0802e650 dff8fc08 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e654 0068 ldr r0, [r0]
| ||||||| 0x0802e656 8068 ldr r0, [r0, 8]
| ||||||| 0x0802e658 8047 blx r0
| --------> 0x0802e65a def7c5f8 bl func_0c7e8
| --------> 0x0802e65e 66e0 b 0x802e72e
| ----`---> 0x0802e660 e0f79afa bl menu_dispatcher
| |||| || 0x0802e664 dff8ec08 ldr.w r0, [0x0802ef58] ; [0x802ef58:4]=0x20004ac9
| |||| || 0x0802e668 0021 movs r1, 0
| |||| || 0x0802e66a 0170 strb r1, [r0]
| ||||,===< 0x0802e66c 5fe0 b 0x802e72e
| --------> 0x0802e66e dff8ec08 ldr.w r0, [0x0802ef62] ; [0x802ef60:4]=0xf8dfb580
| ||||||| 0x0802e672 0078 ldrb r0, [r0]
| ||||||| 0x0802e674 1028 cmp r0, 0x10 ; 16
| ========< 0x0802e676 0ed2 bhs 0x802e696
| ||||||| 0x0802e678 dff8d408 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e67c 0068 ldr r0, [r0]
| ||||||| 0x0802e67e 007b ldrb r0, [r0, 0xc]
| ||||||| 0x0802e680 10f01f00 ands r0, r0, 0x1f
| ||||||| 0x0802e684 0328 cmp r0, 3 ; 3
| ========< 0x0802e686 04da bge 0x802e692
| ||||||| 0x0802e688 dff8c408 ldr.w r0, [0x0802ef54] ; [0x802ef54:4]=0x2001e908
| ||||||| 0x0802e68c 0068 ldr r0, [r0]
| ||||||| 0x0802e68e 8068 ldr r0, [r0, 8]
| ||||||| 0x0802e690 8047 blx r0
| --------> 0x0802e692 def7a9f8 bl func_0c7e8
| --------> 0x0802e696 4ae0 b 0x802e72e
| |||||`--> 0x0802e698 dff86c03 ldr.w r0, [func_2ea0c_beeps_and_uses_struct_channel_info2] ; [0x802ea0c:4]=0x4845b580
| ||||| | 0x0802e69c 8078 ldrb r0, [r0, 2]
| ||||| | 0x0802e69e c0f34010 ubfx r0, r0, 5, 1
| ||||| | 0x0802e6a2 c007 lsls r0, r0, 0x1f
| |||||,==< 0x0802e6a4 11d5 bpl 0x802e6ca
| ||||||| 0x0802e6a6 dff8a408 ldr.w r0, [0x0802ef52] ; [0x802ef50:4]=0x2001e6fc
| ||||||| 0x0802e6aa 0078 ldrb r0, [r0]
| ||||||| 0x0802e6ac 10f00300 ands r0, r0, 3
| ||||||| 0x0802e6b0 0328 cmp r0, 3 ; 3
| ========< 0x0802e6b2 0ad0 beq 0x802e6ca
| ||||||| 0x0802e6b4 dff80805 ldr.w r0, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e6b8 2721 movs r1, 0x27 ; ''' ; 39
| ||||||| 0x0802e6ba 0170 strb r1, [r0]
| ||||||| 0x0802e6bc dff80015 ldr.w r1, [0x0802ebc4] ; [0x802ebc4:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802e6c0 dff8f004 ldr.w r0, [0x0802ebb8] ; [0x802ebb8:4]=0x2001e60c
| ||||||| 0x0802e6c4 0068 ldr r0, [r0]
| ||||||| 0x0802e6c6 02f069fd bl md380_OSMboxPost
| -----`--> 0x0802e6ca dff85404 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||| | 0x0802e6ce 0078 ldrb r0, [r0]
| ||||| | 0x0802e6d0 0a28 cmp r0, 0xa ; 10
| |||||,==< 0x0802e6d2 08d1 bne 0x802e6e6
| ||||||| 0x0802e6d4 edf7aafb bl menu_using_sms_and_edit_buf_1be2c
| ||||||| 0x0802e6d8 def786f8 bl func_0c7e8
| ||||||| 0x0802e6dc dff8fc0b ldr.w r0, [0x0802f2e0] ; [0x802f2e0:4]=0x2001e893
| ||||||| 0x0802e6e0 0121 movs r1, 1 ; 1
| ||||||| 0x0802e6e2 0170 strb r1, [r0]
| ========< 0x0802e6e4 23e0 b 0x802e72e
| |||||`--> 0x0802e6e6 dff83804 ldr.w r0, [0x0802eb26] ; [0x802eb24:4]=0x2001e5f0 radio_status_1
| ||||| | 0x0802e6ea 0078 ldrb r0, [r0]
| ||||| | 0x0802e6ec 0e28 cmp r0, 0xe ; 14
| |||||,==< 0x0802e6ee 16d1 bne 0x802e71e
| ||||||| 0x0802e6f0 dff8e80b ldr.w r0, [0x0802f2e0] ; [0x802f2e0:4]=0x2001e893
| ||||||| 0x0802e6f4 0078 ldrb r0, [r0]
| ||||||| 0x0802e6f6 0128 cmp r0, 1 ; 1
| ========< 0x0802e6f8 08d1 bne 0x802e70c
| ||||||| 0x0802e6fa edf72cfc bl func_1bf56
| ||||||| 0x0802e6fe def773f8 bl func_0c7e8
| ||||||| 0x0802e702 dff8b804 ldr.w r0, [0x0802ebc2] ; [0x802ebc0:4]=0x2001e8a8 beep_code_send
| ||||||| 0x0802e706 0021 movs r1, 0
| ||||||| 0x0802e708 0170 strb r1, [r0]
| ========< 0x0802e70a 10e0 b 0x802e72e
| --------> 0x0802e70c edf78efb bl menu_using_sms_and_edit_buf_1be2c
| ||||||| 0x0802e710 def76af8 bl func_0c7e8
| ||||||| 0x0802e714 dff8c40b ldr.w r0, [0x0802f2e0] ; [0x802f2e0:4]=0x2001e893
| ||||||| 0x0802e718 0021 movs r1, 0
| ||||||| 0x0802e71a 0170 strb r1, [r0]
| ========< 0x0802e71c 07e0 b 0x802e72e
| |||||`--> 0x0802e71e edf785fb bl menu_using_sms_and_edit_buf_1be2c
| ||||| | 0x0802e722 def761f8 bl func_0c7e8
| ||||| | 0x0802e726 dff8b40b ldr.w r0, [0x0802f2e2] ; [0x802f2e0:4]=0x2001e893
| ||||| | 0x0802e72a 0021 movs r1, 0
| ||||| | 0x0802e72c 0170 strb r1, [r0]
\ `````-`-> 0x0802e72e 10bd pop {r4, pc}
;-- dispatch_keyboard_2:
/ (fcn) md380_f_4520 2370
| Caller: mainloop_entry
| md380_f_4520 ();
| 0x0802c83c 10b5 push {r4, lr}
| 0x0802c83e 82b0 sub sp, 8
| 0x0802c840 dff80c0b ldr.w r0, [0x0802d354] ; [0x802d354:4]=0x2001e5f0 radio_status_1
| 0x0802c844 4078 ldrb r0, [r0, 1]
| 0x0802c846 c0f30010 ubfx r0, r0, 4, 1
| 0x0802c84a c007 lsls r0, r0, 0x1f
| ,=< 0x0802c84c 40f19684 bpl.w 0x802d17c
| | 0x0802c850 dff8000b ldr.w r0, [0x0802d358] ; [0x802d358:4]=0x2001e881
| | 0x0802c854 0078 ldrb r0, [r0]
| | 0x0802c856 0006 lsls r0, r0, 0x18
| ,==< 0x0802c858 1cd4 bmi 0x802c894
| || 0x0802c85a dff8fc0a ldr.w r0, [0x0802d35e] ; [0x802d35c:4]=0x2001e7aa
| || 0x0802c85e 0078 ldrb r0, [r0]
| || 0x0802c860 0128 cmp r0, 1 ; 1
| ,===< 0x0802c862 15d1 bne 0x802c890
| ||| 0x0802c864 dff8f40a ldr.w r0, [0x0802d360] ; [0x802d360:4]=0x2001e893
| ||| 0x0802c868 0088 ldrh r0, [r0]
| ||| 0x0802c86a 401c adds r0, r0, 1
| ||| 0x0802c86c dff8ec1a ldr.w r1, [0x0802d360] ; [0x802d360:4]=0x2001e893
| ||| 0x0802c870 0880 strh r0, [r1]
| ||| 0x0802c872 dff8e80a ldr.w r0, [0x0802d362] ; [0x802d360:4]=0x2001e893
| ||| 0x0802c876 0088 ldrh r0, [r0]
| ||| 0x0802c878 40f22d11 movw r1, 0x12d ; 301
| ||| 0x0802c87c 8842 cmp r0, r1
| ,====< 0x0802c87e 07d3 blo 0x802c890
| |||| 0x0802c880 dff8d40a ldr.w r0, [0x0802d35c] ; [0x802d35c:4]=0x2001e7aa
| |||| 0x0802c884 0021 movs r1, 0
| |||| 0x0802c886 0170 strb r1, [r0]
| |||| 0x0802c888 dff8d00a ldr.w r0, [0x0802d360] ; [0x802d360:4]=0x2001e893
| |||| 0x0802c88c 0021 movs r1, 0
| |||| 0x0802c88e 0180 strh r1, [r0]
| ,``---> 0x0802c890 00f074bc b.w 0x802d17c
| | `--> 0x0802c894 dff8800c ldr.w r0, [0x0802d51c] ; [0x802d51c:4]=0x2001e604 q_status_4
| | | 0x0802c898 0021 movs r1, 0
| | | 0x0802c89a 0160 str r1, [r0]
| | | 0x0802c89c dff87c0c ldr.w r0, [0x0802d520] ; [0x802d520:4]=0x2001e5d0 msg_timer_500
| | | 0x0802c8a0 0078 ldrb r0, [r0]
| | | 0x0802c8a2 10f0fd00 ands r0, r0, 0xfd
| | | 0x0802c8a6 dff8741c ldr.w r1, [0x0802d522] ; [0x802d520:4]=0x2001e5d0 msg_timer_500
| | | 0x0802c8aa 0870 strb r0, [r1]
| | | 0x0802c8ac dff8b00a ldr.w r0, [0x0802d364] ; [0x802d364:4]=0x20001704 md380_menu_ptr_to_80d032c
| | | 0x0802c8b0 0078 ldrb r0, [r0]
| | | 0x0802c8b2 0128 cmp r0, 1 ; 1
| | ,==< 0x0802c8b4 05d1 bne 0x802c8c2
| | || 0x0802c8b6 05f094fb bl func_31fe2
| | || 0x0802c8ba dff8a40a ldr.w r0, [0x0802d366] ; [0x802d364:4]=0x20001704 md380_menu_ptr_to_80d032c
| | || 0x0802c8be 0421 movs r1, 4 ; 4
| | || 0x0802c8c0 0170 strb r1, [r0]
| | `--> 0x0802c8c2 dff85c0c ldr.w r0, [0x0802d526] ; [0x802d524:4]=0x2001e892 gui_opmode3
| | | 0x0802c8c6 4ff4fa71 mov.w r1, 0x1f4 ; 500
| | | 0x0802c8ca 0160 str r1, [r0]
| | | 0x0802c8cc dff8840a ldr.w r0, [0x0802d358] ; [0x802d358:4]=0x2001e881
| | | 0x0802c8d0 0078 ldrb r0, [r0]
| | | 0x0802c8d2 10f07f00 ands r0, r0, 0x7f
| | | 0x0802c8d6 dff87c1a ldr.w r1, [0x0802d35a] ; [0x802d358:4]=0x2001e881
| | | 0x0802c8da 0870 strb r0, [r1]
| | | 0x0802c8dc dff8440c ldr.w r0, [0x0802d528] ; [0x802d528:4]=0x2001e6ec
| | | 0x0802c8e0 0078 ldrb r0, [r0]
| | | 0x0802c8e2 0828 cmp r0, 8 ; 8
| | ,==< 0x0802c8e4 14d1 bne 0x802c910
| | || 0x0802c8e6 0020 movs r0, 0
| | || 0x0802c8e8 f0f742fd bl gfx_set_fg_color
| | || 0x0802c8ec 7f20 movs r0, 0x7f ; 127
| | || 0x0802c8ee 0090 str r0, [sp]
| | || 0x0802c8f0 9d23 movs r3, 0x9d ; 157
| | || 0x0802c8f2 0122 movs r2, 1 ; 1
| | || 0x0802c8f4 0221 movs r1, 2 ; 2
| | || 0x0802c8f6 dff8300c ldr.w r0, [0x0802d52e] ; [0x802d52c:4]=0x2001e8e6
| | || 0x0802c8fa 0068 ldr r0, [r0]
| | || 0x0802c8fc dff8644a ldr.w r4, [some_init] ; [0x802d368:4]=0xf8dfb580
| | || 0x0802c900 14eb8000 adds.w r0, r4, r0, lsl 2
| | || 0x0802c904 d0f8ac03 ldr.w r0, [r0, 0x3ac]
| | || 0x0802c908 e1f7e6fa bl gfx_drawtext10
| | ,===< 0x0802c90c 00f036bc b.w 0x802d17c
| | |`--> 0x0802c910 dff8100c ldr.w r0, [0x0802d528] ; [0x802d528:4]=0x2001e6ec
| | | | 0x0802c914 0078 ldrb r0, [r0]
| | | | 0x0802c916 0728 cmp r0, 7 ; 7
| | |,==< 0x0802c918 10d1 bne 0x802c93c
| | ||| 0x0802c91a 10f02efe bl func_3d57a
| | ||| 0x0802c91e 4ff49670 mov.w r0, 0x12c ; 300
| | ||| 0x0802c922 07f0c7fa bl OSTimeDly
| | ||| 0x0802c926 dff8fc0b ldr.w r0, [0x0802d52a] ; [0x802d528:4]=0x2001e6ec
| | ||| 0x0802c92a 0021 movs r1, 0
| | ||| 0x0802c92c 0170 strb r1, [r0]
| |.----> 0x0802c92e dff8fc0b ldr.w r0, [0x0802d532] ; [0x802d530:4]=0x2001e8a8 beep_code_send
| ||||| 0x0802c932 0078 ldrb r0, [r0]
| ||||| 0x0802c934 4228 cmp r0, 0x42 ; 'B' ; 66
| ,======< 0x0802c936 08d0 beq 0x802c94a
| ,=======< 0x0802c938 00f020bc b.w 0x802d17c
| |||||`--> 0x0802c93c dff8e40b ldr.w r0, [0x0802d528] ; [0x802d528:4]=0x2001e6ec
| ||||| | 0x0802c940 0078 ldrb r0, [r0]
| ||||| | 0x0802c942 0628 cmp r0, 6 ; 6
| |||`====< 0x0802c944 f3d3 blo 0x802c92e
| ||| |,==< 0x0802c946 00f019bc b.w 0x802d17c
| |`------> 0x0802c94a dff8e40b ldr.w r0, [0x0802d536] ; [0x802d534:4]=0x2001e67c event2_mbox_poi_beep
| | | ||| 0x0802c94e 0078 ldrb r0, [r0]
| | | ||| 0x0802c950 0c28 cmp r0, 0xc ; 12
| | |,====< 0x0802c952 27d1 bne 0x802c9a4
| | ||||| 0x0802c954 dff8d80b ldr.w r0, [0x0802d534] ; [0x802d534:4]=0x2001e67c event2_mbox_poi_beep
| | ||||| 0x0802c958 0021 movs r1, 0
| | ||||| 0x0802c95a 0170 strb r1, [r0]
| | ||||| 0x0802c95c dff8d01b ldr.w r1, [0x0802d534] ; [0x802d534:4]=0x2001e67c event2_mbox_poi_beep
| | ||||| 0x0802c960 dff8d00b ldr.w r0, [0x0802d538] ; [0x802d538:4]=0x2001deb8 current_channel_info
| | ||||| 0x0802c964 0068 ldr r0, [r0]
| | ||||| 0x0802c966 04f019fc bl md380_OSMboxPost
| | ||||| 0x0802c96a dff8cc0b ldr.w r0, [0x0802d53e] ; [0x802d53c:4]=0x2001de78 struct_channel_info2
| | ||||| 0x0802c96e 0078 ldrb r0, [r0]
| | ||||| 0x0802c970 0006 lsls r0, r0, 0x18
| |,======< 0x0802c972 0fd5 bpl 0x802c994
| ||||||| 0x0802c974 dff8c40b ldr.w r0, [0x0802d540] ; [0x802d540:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0802c978 0078 ldrb r0, [r0]
| ||||||| 0x0802c97a 10f00300 ands r0, r0, 3
| ||||||| 0x0802c97e 0228 cmp r0, 2 ; 2
| ========< 0x0802c980 08d1 bne 0x802c994
| ||||||| 0x0802c982 dff8980b ldr.w r0, [0x0802d522] ; [0x802d520:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x0802c986 0078 ldrb r0, [r0]
| ||||||| 0x0802c988 50f00100 orrs r0, r0, 1
| ||||||| 0x0802c98c dff88c1b ldr.w r1, [0x0802d520] ; [0x802d520:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x0802c990 0870 strb r0, [r1]
| ========< 0x0802c992 07e0 b 0x802c9a4
| -`------> 0x0802c994 dff8840b ldr.w r0, [0x0802d520] ; [0x802d520:4]=0x2001e5d0 msg_timer_500
| | ||||| 0x0802c998 0078 ldrb r0, [r0]
| | ||||| 0x0802c99a 10f0fe00 ands r0, r0, 0xfe
| | ||||| 0x0802c99e dff87c1b ldr.w r1, [0x0802d522] ; [0x802d520:4]=0x2001e5d0 msg_timer_500
| | ||||| 0x0802c9a2 0870 strb r0, [r1]
| ---`----> 0x0802c9a4 dff8880b ldr.w r0, [0x0802d534] ; [0x802d534:4]=0x2001e67c event2_mbox_poi_beep
| | | ||| 0x0802c9a8 0078 ldrb r0, [r0]
| | | ||| 0x0802c9aa 1728 cmp r0, 0x17 ; 23
| | |,====< 0x0802c9ac 0ad1 bne 0x802c9c4
| | ||||| 0x0802c9ae dff8800b ldr.w r0, [0x0802d536] ; [0x802d534:4]=0x2001e67c event2_mbox_poi_beep
| | ||||| 0x0802c9b2 0021 movs r1, 0
| | ||||| 0x0802c9b4 0170 strb r1, [r0]
| | ||||| 0x0802c9b6 dff8781b ldr.w r1, [0x0802d536] ; [0x802d534:4]=0x2001e67c event2_mbox_poi_beep
| | ||||| 0x0802c9ba dff8780b ldr.w r0, [0x0802d53a] ; [0x802d538:4]=0x2001deb8 current_channel_info
| | ||||| 0x0802c9be 0068 ldr r0, [r0]
| | ||||| 0x0802c9c0 04f0ecfb bl md380_OSMboxPost
| | |`----> 0x0802c9c4 dff85c0b ldr.w r0, [0x0802d528] ; [0x802d528:4]=0x2001e6ec
| | | ||| 0x0802c9c8 0078 ldrb r0, [r0]
| | | ||| 0x0802c9ca 0428 cmp r0, 4 ; 4
| | |,====< 0x0802c9cc 00f0eb82 beq.w 0x802cfa6
| | ||||| 0x0802c9d0 dff8500b ldr.w r0, [0x0802d528] ; [0x802d528:4]=0x2001e6ec
| | ||||| 0x0802c9d4 0078 ldrb r0, [r0]
| | ||||| 0x0802c9d6 0528 cmp r0, 5 ; 5
| |,======< 0x0802c9d8 00f0e582 beq.w 0x802cfa6
| ||||||| 0x0802c9dc dff8600b ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802c9e0 0078 ldrb r0, [r0]
| ||||||| 0x0802c9e2 c007 lsls r0, r0, 0x1f
| ========< 0x0802c9e4 26d5 bpl 0x802ca34
| ||||||| 0x0802c9e6 dff8580b ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802c9ea 0078 ldrb r0, [r0]
| ||||||| 0x0802c9ec 10f0fe00 ands r0, r0, 0xfe
| ||||||| 0x0802c9f0 dff84c1b ldr.w r1, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802c9f4 0870 strb r0, [r1]
| ||||||| 0x0802c9f6 f124 movs r4, 0xf1 ; 241
| ||||||| 0x0802c9f8 dff8480b ldr.w r0, [0x0802d548] ; [0x802d548:4]=0x40020800 io_GPIOC
| ||||||| 0x0802c9fc 407d ldrb r0, [r0, 0x15]
| ||||||| 0x0802c9fe 0028 cmp r0, 0
| ========< 0x0802ca00 05d1 bne 0x802ca0e
| ||||||| 0x0802ca02 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0802ca04 dff8400b ldr.w r0, [0x0802d54c] ; [0x802d54c:4]=0x2001e7f8 backlight_timer
| ||||||| 0x0802ca08 fef7fffe bl GPIO_SetBits
| ========< 0x0802ca0c 0ee0 b 0x802ca2c
| --------> 0x0802ca0e 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0802ca10 dff8340b ldr.w r0, [0x0802d54c] ; [0x802d54c:4]=0x2001e7f8 backlight_timer
| ||||||| 0x0802ca14 fef7f9fe bl GPIO_SetBits
| ||||||| 0x0802ca18 dff8280b ldr.w r0, [0x0802d548] ; [0x802d548:4]=0x40020800 io_GPIOC
| ||||||| 0x0802ca1c 407d ldrb r0, [r0, 0x15]
| ||||||| 0x0802ca1e 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x0802ca22 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x0802ca26 dff8241b ldr.w r1, [0x0802d552] ; [0x802d550:4]=0x2001e8e3
| ||||||| 0x0802ca2a 0880 strh r0, [r1]
| --------> 0x0802ca2c 2000 movs r0, r4
| ||||||| 0x0802ca2e c0b2 uxtb r0, r0
| ||||||| 0x0802ca30 00f0bffb bl gui_control
| --------> 0x0802ca34 dff8080b ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802ca38 0078 ldrb r0, [r0]
| ||||||| 0x0802ca3a c0f38000 ubfx r0, r0, 2, 1
| ||||||| 0x0802ca3e c007 lsls r0, r0, 0x1f
| ========< 0x0802ca40 36d5 bpl 0x802cab0
| ||||||| 0x0802ca42 dff8fc0a ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802ca46 0078 ldrb r0, [r0]
| ||||||| 0x0802ca48 10f0fb00 ands r0, r0, 0xfb
| ||||||| 0x0802ca4c dff8f01a ldr.w r1, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802ca50 0870 strb r0, [r1]
| ||||||| 0x0802ca52 dff8d00a ldr.w r0, [0x0802d52a] ; [0x802d528:4]=0x2001e6ec
| ||||||| 0x0802ca56 0078 ldrb r0, [r0]
| ||||||| 0x0802ca58 0328 cmp r0, 3 ; 3
| ========< 0x0802ca5a 00f08980 beq.w 0x802cb70
| ||||||| 0x0802ca5e dff8bc0a ldr.w r0, [0x0802d522] ; [0x802d520:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x0802ca62 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802ca64 c007 lsls r0, r0, 0x1f
| ========< 0x0802ca66 00f18380 bmi.w 0x802cb70
| ||||||| 0x0802ca6a dff8e40a ldr.w r0, [0x0802d556] ; [0x802d554:4]=0x2001e8ed
| ||||||| 0x0802ca6e 0121 movs r1, 1 ; 1
| ||||||| 0x0802ca70 0170 strb r1, [r0]
| ||||||| 0x0802ca72 01f041f8 bl func_2daf8
| ||||||| 0x0802ca76 dff8c40a ldr.w r0, [0x0802d542] ; [0x802d540:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0802ca7a 0078 ldrb r0, [r0]
| ||||||| 0x0802ca7c 10f00300 ands r0, r0, 3
| ||||||| 0x0802ca80 0128 cmp r0, 1 ; 1
| ========< 0x0802ca82 75d1 bne 0x802cb70
| ||||||| 0x0802ca84 dff8cc0a ldr.w r0, [0x0802d558] ; [0x802d558:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802ca88 0078 ldrb r0, [r0]
| ||||||| 0x0802ca8a 0028 cmp r0, 0
| ========< 0x0802ca8c 70d1 bne 0x802cb70
| ||||||| 0x0802ca8e dff8c80a ldr.w r0, [0x0802d55e] ; [0x802d55c:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802ca92 9021 movs r1, 0x90 ; 144
| ||||||| 0x0802ca94 0170 strb r1, [r0]
| ||||||| 0x0802ca96 dff8c40a ldr.w r0, [0x0802d562] ; [0x802d560:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0802ca9a 0021 movs r1, 0
| ||||||| 0x0802ca9c 0170 strb r1, [r0]
| ||||||| 0x0802ca9e dff8c00a ldr.w r0, [0x0802d566] ; [0x802d564:4]=0x2001e90b
| ||||||| 0x0802caa2 0021 movs r1, 0
| ||||||| 0x0802caa4 0170 strb r1, [r0]
| ||||||| 0x0802caa6 dff8bc0a ldr.w r0, [0x0802d56a] ; [0x802d568:4]=0x80f868c
| ||||||| 0x0802caaa 0021 movs r1, 0
| ||||||| 0x0802caac 0170 strb r1, [r0]
| ========< 0x0802caae 5fe0 b 0x802cb70
| --------> 0x0802cab0 dff88c0a ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cab4 0078 ldrb r0, [r0]
| ||||||| 0x0802cab6 c0f3c000 ubfx r0, r0, 3, 1
| ||||||| 0x0802caba c007 lsls r0, r0, 0x1f
| ========< 0x0802cabc 58d5 bpl 0x802cb70
| ||||||| 0x0802cabe dff8800a ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cac2 0078 ldrb r0, [r0]
| ||||||| 0x0802cac4 10f0f700 ands r0, r0, 0xf7
| ||||||| 0x0802cac8 dff8741a ldr.w r1, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cacc 0870 strb r0, [r1]
| ||||||| 0x0802cace dff8540a ldr.w r0, [0x0802d52a] ; [0x802d528:4]=0x2001e6ec
| ||||||| 0x0802cad2 0078 ldrb r0, [r0]
| ||||||| 0x0802cad4 0328 cmp r0, 3 ; 3
| ========< 0x0802cad6 4bd0 beq 0x802cb70
| ||||||| 0x0802cad8 dff8400a ldr.w r0, [0x0802d520] ; [0x802d520:4]=0x2001e5d0 msg_timer_500
| ||||||| 0x0802cadc 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cade c007 lsls r0, r0, 0x1f
| ========< 0x0802cae0 46d4 bmi 0x802cb70
| ||||||| 0x0802cae2 dff8f80c ldr.w r0, [0x0802d7e2] ; [0x802d7e0:4]=0x2001e81c not_the_volume_knob
| ||||||| 0x0802cae6 0078 ldrb r0, [r0]
| ||||||| 0x0802cae8 0028 cmp r0, 0
| ========< 0x0802caea 2dd0 beq 0x802cb48
| ||||||| 0x0802caec dff8f00c ldr.w r0, [0x0802d7e4] ; [0x802d7e4:4]=0x2001e908
| ||||||| 0x0802caf0 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0802caf4 eff76eff bl gfx_1c9d4
| ||||||| 0x0802caf8 dff8e40c ldr.w r0, [0x0802d7e4] ; [0x802d7e4:4]=0x2001e908
| ||||||| 0x0802cafc 0021 movs r1, 0
| ||||||| 0x0802cafe 0180 strh r1, [r0]
| ||||||| 0x0802cb00 4622 movs r2, 0x46 ; 'F' ; 70
| ||||||| 0x0802cb02 5f21 movs r1, 0x5f ; '_' ; 95
| ||||||| 0x0802cb04 dff8600a ldr.w r0, [0x0802d56c] ; [0x802d56c:4]=0x2001e822
| ||||||| 0x0802cb08 f6f779fe bl gfx_drawbmp
| ||||||| 0x0802cb0c e1f7eef8 bl func_0dcec
| ||||||| 0x0802cb10 dff8c80c ldr.w r0, [0x0802d7e0] ; [0x802d7e0:4]=0x2001e81c not_the_volume_knob
| ||||||| 0x0802cb14 0021 movs r1, 0
| ||||||| 0x0802cb16 0170 strb r1, [r0]
| ||||||| 0x0802cb18 dff8c80c ldr.w r0, [0x0802d7e8] ; [0x802d7e8:4]=0x2001def8 menu_pointer_maybe_channel_data
| ||||||| 0x0802cb1c 0021 movs r1, 0
| ||||||| 0x0802cb1e 0170 strb r1, [r0]
| ||||||| 0x0802cb20 dff8480a ldr.w r0, [0x0802d570] ; [0x802d570:4]=0x2001e824
| ||||||| 0x0802cb24 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0802cb28 eff754ff bl gfx_1c9d4
| ||||||| 0x0802cb2c dff83c0a ldr.w r0, [0x0802d570] ; [0x802d570:4]=0x2001e824
| ||||||| 0x0802cb30 0021 movs r1, 0
| ||||||| 0x0802cb32 0180 strh r1, [r0]
| ||||||| 0x0802cb34 dff8380a ldr.w r0, [0x0802d574] ; [0x802d574:4]=0x2001e8e4
| ||||||| 0x0802cb38 b0f90000 ldrsh.w r0, [r0]
| ||||||| 0x0802cb3c eff74aff bl gfx_1c9d4
| ||||||| 0x0802cb40 dff82c0a ldr.w r0, [0x0802d574] ; [0x802d574:4]=0x2001e8e4
| ||||||| 0x0802cb44 0021 movs r1, 0
| ||||||| 0x0802cb46 0180 strh r1, [r0]
| --------> 0x0802cb48 dff8280a ldr.w r0, [0x0802d578] ; [0x802d578:4]=0x2001e94b gui_opmode2
| ||||||| 0x0802cb4c 0121 movs r1, 1 ; 1
| ||||||| 0x0802cb4e 0170 strb r1, [r0]
| ||||||| 0x0802cb50 01f0dff8 bl func_2dd12
| ||||||| 0x0802cb54 dff8e409 ldr.w r0, [0x0802d540] ; [0x802d540:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0802cb58 0078 ldrb r0, [r0]
| ||||||| 0x0802cb5a 10f00300 ands r0, r0, 3
| ||||||| 0x0802cb5e 0128 cmp r0, 1 ; 1
| ========< 0x0802cb60 06d1 bne 0x802cb70
| ||||||| 0x0802cb62 dff8140a ldr.w r0, [0x0802d57e] ; [0x802d57c:4]=0xb088b510
| ||||||| 0x0802cb66 0078 ldrb r0, [r0]
| ||||||| 0x0802cb68 0a28 cmp r0, 0xa ; 10
| ========< 0x0802cb6a 01d1 bne 0x802cb70
| ||||||| 0x0802cb6c e3f793f8 bl return_to_mode_1_from10
| --------> 0x0802cb70 dff8cc09 ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cb74 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802cb76 c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x0802cb7a c007 lsls r0, r0, 0x1f
| ========< 0x0802cb7c 1ad5 bpl 0x802cbb4
| ||||||| 0x0802cb7e dff8c009 ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cb82 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802cb84 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x0802cb88 dff8b419 ldr.w r1, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cb8c 8870 strb r0, [r1, 2]
| ||||||| 0x0802cb8e dff89409 ldr.w r0, [0x0802d52a] ; [0x802d528:4]=0x2001e6ec
| ||||||| 0x0802cb92 0078 ldrb r0, [r0]
| ||||||| 0x0802cb94 0328 cmp r0, 3 ; 3
| ========< 0x0802cb96 34d0 beq 0x802cc02
| ||||||| 0x0802cb98 dff8a009 ldr.w r0, [0x0802d540] ; [0x802d540:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0802cb9c 0079 ldrb r0, [r0, 4]
| ||||||| 0x0802cb9e c0f30010 ubfx r0, r0, 4, 1
| ||||||| 0x0802cba2 c007 lsls r0, r0, 0x1f
| ========< 0x0802cba4 2dd5 bpl 0x802cc02
| ||||||| 0x0802cba6 dff8a809 ldr.w r0, [0x0802d556] ; [0x802d554:4]=0x2001e8ed
| ||||||| 0x0802cbaa 0321 movs r1, 3 ; 3
| ||||||| 0x0802cbac 0170 strb r1, [r0]
| ||||||| 0x0802cbae 00f0a3ff bl func_2daf8
| ========< 0x0802cbb2 26e0 b 0x802cc02
| --------> 0x0802cbb4 dff89c07 ldr.w r0, [0x0802d358] ; [0x802d358:4]=0x2001e881
| ||||||| 0x0802cbb8 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cbba c007 lsls r0, r0, 0x1f
| ========< 0x0802cbbc 21d5 bpl 0x802cc02
| ||||||| 0x0802cbbe dff88009 ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cbc2 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802cbc4 c0f38010 ubfx r0, r0, 6, 1
| ||||||| 0x0802cbc8 c007 lsls r0, r0, 0x1f
| ========< 0x0802cbca 1ad5 bpl 0x802cc02
| ||||||| 0x0802cbcc dff87009 ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cbd0 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802cbd2 10f0bf00 ands r0, r0, 0xbf
| ||||||| 0x0802cbd6 dff86819 ldr.w r1, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cbda 8870 strb r0, [r1, 2]
| ||||||| 0x0802cbdc dff86009 ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cbe0 0078 ldrb r0, [r0]
| ||||||| 0x0802cbe2 c0f34000 ubfx r0, r0, 1, 1
| ||||||| 0x0802cbe6 c007 lsls r0, r0, 0x1f
| ========< 0x0802cbe8 00f1c882 bmi.w 0x802d17c
| ||||||| 0x0802cbec dff86009 ldr.w r0, [0x0802d554] ; [0x802d554:4]=0x2001e8ed
| ||||||| 0x0802cbf0 0078 ldrb r0, [r0]
| ||||||| 0x0802cbf2 0328 cmp r0, 3 ; 3
| ========< 0x0802cbf4 05d1 bne 0x802cc02
| ||||||| 0x0802cbf6 dff87c09 ldr.w r0, [0x0802d57a] ; [0x802d578:4]=0x2001e94b gui_opmode2
| ||||||| 0x0802cbfa 0321 movs r1, 3 ; 3
| ||||||| 0x0802cbfc 0170 strb r1, [r0]
| ||||||| 0x0802cbfe 01f088f8 bl func_2dd12
| --------> 0x0802cc02 dff83c09 ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cc06 c078 ldrb r0, [r0, 3]
| ||||||| 0x0802cc08 c0f30010 ubfx r0, r0, 4, 1
| ||||||| 0x0802cc0c c007 lsls r0, r0, 0x1f
| ========< 0x0802cc0e 2fd5 bpl 0x802cc70
| ||||||| 0x0802cc10 dff82c09 ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cc14 c078 ldrb r0, [r0, 3]
| ||||||| 0x0802cc16 10f0ef00 ands r0, r0, 0xef
| ||||||| 0x0802cc1a dff82419 ldr.w r1, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cc1e c870 strb r0, [r1, 3]
| ||||||| 0x0802cc20 dff80009 ldr.w r0, [0x0802d528] ; [0x802d528:4]=0x2001e6ec
| ||||||| 0x0802cc24 0078 ldrb r0, [r0]
| ||||||| 0x0802cc26 0328 cmp r0, 3 ; 3
| ========< 0x0802cc28 4ad0 beq 0x802ccc0
| ||||||| 0x0802cc2a dff82409 ldr.w r0, [0x0802d556] ; [0x802d554:4]=0x2001e8ed
| ||||||| 0x0802cc2e 0221 movs r1, 2 ; 2
| ||||||| 0x0802cc30 0170 strb r1, [r0]
| ||||||| 0x0802cc32 00f061ff bl func_2daf8
| ||||||| 0x0802cc36 dff80409 ldr.w r0, [0x0802d542] ; [0x802d540:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0802cc3a 0078 ldrb r0, [r0]
| ||||||| 0x0802cc3c 10f00300 ands r0, r0, 3
| ||||||| 0x0802cc40 0128 cmp r0, 1 ; 1
| ========< 0x0802cc42 3dd1 bne 0x802ccc0
| ||||||| 0x0802cc44 dff80c09 ldr.w r0, [0x0802d558] ; [0x802d558:4]=0x2001e943 md380_menu_max_chars
| ||||||| 0x0802cc48 0078 ldrb r0, [r0]
| ||||||| 0x0802cc4a 0028 cmp r0, 0
| ========< 0x0802cc4c 38d1 bne 0x802ccc0
| ||||||| 0x0802cc4e dff80809 ldr.w r0, [0x0802d55e] ; [0x802d55c:4]=0x2001e944 md380_menu_cursor_pos_1
| ||||||| 0x0802cc52 9021 movs r1, 0x90 ; 144
| ||||||| 0x0802cc54 0170 strb r1, [r0]
| ||||||| 0x0802cc56 dff80409 ldr.w r0, [0x0802d562] ; [0x802d560:4]=0x2001e945 md380_menu_cursor_pos_2
| ||||||| 0x0802cc5a 0021 movs r1, 0
| ||||||| 0x0802cc5c 0170 strb r1, [r0]
| ||||||| 0x0802cc5e dff80009 ldr.w r0, [0x0802d566] ; [0x802d564:4]=0x2001e90b
| ||||||| 0x0802cc62 0021 movs r1, 0
| ||||||| 0x0802cc64 0170 strb r1, [r0]
| ||||||| 0x0802cc66 dff8fc08 ldr.w r0, [0x0802d56a] ; [0x802d568:4]=0x80f868c
| ||||||| 0x0802cc6a 0021 movs r1, 0
| ||||||| 0x0802cc6c 0170 strb r1, [r0]
| ========< 0x0802cc6e 27e0 b 0x802ccc0
| --------> 0x0802cc70 dff8cc08 ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cc74 c078 ldrb r0, [r0, 3]
| ||||||| 0x0802cc76 c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x0802cc7a c007 lsls r0, r0, 0x1f
| ========< 0x0802cc7c 20d5 bpl 0x802ccc0
| ||||||| 0x0802cc7e dff8c008 ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cc82 c078 ldrb r0, [r0, 3]
| ||||||| 0x0802cc84 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x0802cc88 dff8b418 ldr.w r1, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cc8c c870 strb r0, [r1, 3]
| ||||||| 0x0802cc8e dff89408 ldr.w r0, [0x0802d52a] ; [0x802d528:4]=0x2001e6ec
| ||||||| 0x0802cc92 0078 ldrb r0, [r0]
| ||||||| 0x0802cc94 0328 cmp r0, 3 ; 3
| ========< 0x0802cc96 13d0 beq 0x802ccc0
| ||||||| 0x0802cc98 dff8d808 ldr.w r0, [0x0802d578] ; [0x802d578:4]=0x2001e94b gui_opmode2
| ||||||| 0x0802cc9c 0221 movs r1, 2 ; 2
| ||||||| 0x0802cc9e 0170 strb r1, [r0]
| ||||||| 0x0802cca0 01f037f8 bl func_2dd12
| ||||||| 0x0802cca4 dff89408 ldr.w r0, [0x0802d540] ; [0x802d540:4]=0x2001e5ec base_for_longpress_struct
| ||||||| 0x0802cca8 0078 ldrb r0, [r0]
| ||||||| 0x0802ccaa 10f00300 ands r0, r0, 3
| ||||||| 0x0802ccae 0128 cmp r0, 1 ; 1
| ========< 0x0802ccb0 06d1 bne 0x802ccc0
| ||||||| 0x0802ccb2 dff8c408 ldr.w r0, [0x0802d57e] ; [0x802d57c:4]=0xb088b510
| ||||||| 0x0802ccb6 0078 ldrb r0, [r0]
| ||||||| 0x0802ccb8 0a28 cmp r0, 0xa ; 10
| ========< 0x0802ccba 01d1 bne 0x802ccc0
| ||||||| 0x0802ccbc e2f7ebff bl return_to_mode_1_from10
| --------> 0x0802ccc0 dff87c08 ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802ccc4 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802ccc6 c0f34000 ubfx r0, r0, 1, 1
| ||||||| 0x0802ccca c007 lsls r0, r0, 0x1f
| ========< 0x0802cccc 1bd5 bpl 0x802cd06
| ||||||| 0x0802ccce dff87008 ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802ccd2 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802ccd4 10f0fd00 ands r0, r0, 0xfd
| ||||||| 0x0802ccd8 dff86418 ldr.w r1, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802ccdc 4870 strb r0, [r1, 1]
| ||||||| 0x0802ccde dff8080b ldr.w r0, [0x0802d7ee] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802cce2 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802cce4 2628 cmp r0, 0x26 ; '&' ; 38
| ========< 0x0802cce6 04d0 beq 0x802ccf2
| ||||||| 0x0802cce8 dff8fc0a ldr.w r0, [0x0802d7ec] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802ccec c078 ldrb r0, [r0, 3]
| ||||||| 0x0802ccee 2628 cmp r0, 0x26 ; '&' ; 38
| ========< 0x0802ccf0 01d1 bne 0x802ccf6
| --------> 0x0802ccf2 2624 movs r4, 0x26 ; '&' ; 38
| ========< 0x0802ccf4 02e0 b 0x802ccfc
| --------> 0x0802ccf6 dff8f00a ldr.w r0, [0x0802d7ee] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802ccfa 8478 ldrb r4, [r0, 2]
| --------> 0x0802ccfc 2000 movs r0, r4
| ||||||| 0x0802ccfe c0b2 uxtb r0, r0
| ||||||| 0x0802cd00 00f057fa bl gui_control
| ========< 0x0802cd04 36e0 b 0x802cd74
| --------> 0x0802cd06 dff83808 ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cd0a 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cd0c c0f38000 ubfx r0, r0, 2, 1
| ||||||| 0x0802cd10 c007 lsls r0, r0, 0x1f
| ========< 0x0802cd12 0fd5 bpl 0x802cd34
| ||||||| 0x0802cd14 dff82808 ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cd18 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cd1a 10f0fb00 ands r0, r0, 0xfb
| ||||||| 0x0802cd1e dff82018 ldr.w r1, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cd22 4870 strb r0, [r1, 1]
| ||||||| 0x0802cd24 dff8c00a ldr.w r0, [0x0802d7ec] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802cd28 c478 ldrb r4, [r0, 3]
| ||||||| 0x0802cd2a 2000 movs r0, r4
| ||||||| 0x0802cd2c c0b2 uxtb r0, r0
| ||||||| 0x0802cd2e 00f040fa bl gui_control
| ========< 0x0802cd32 1fe0 b 0x802cd74
| --------> 0x0802cd34 dff80808 ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cd38 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cd3a c0f3c000 ubfx r0, r0, 3, 1
| ||||||| 0x0802cd3e c007 lsls r0, r0, 0x1f
| ========< 0x0802cd40 18d5 bpl 0x802cd74
| ||||||| 0x0802cd42 dff8fc07 ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cd46 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cd48 10f0f700 ands r0, r0, 0xf7
| ||||||| 0x0802cd4c dff8f017 ldr.w r1, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cd50 4870 strb r0, [r1, 1]
| ||||||| 0x0802cd52 dff8940a ldr.w r0, [0x0802d7ee] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802cd56 8078 ldrb r0, [r0, 2]
| ||||||| 0x0802cd58 2628 cmp r0, 0x26 ; '&' ; 38
| ========< 0x0802cd5a 04d0 beq 0x802cd66
| ||||||| 0x0802cd5c dff8880a ldr.w r0, [0x0802d7ec] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802cd60 c078 ldrb r0, [r0, 3]
| ||||||| 0x0802cd62 2628 cmp r0, 0x26 ; '&' ; 38
| ========< 0x0802cd64 03d1 bne 0x802cd6e
| --------> 0x0802cd66 f320 movs r0, 0xf3 ; 243
| ||||||| 0x0802cd68 00f023fa bl gui_control
| ========< 0x0802cd6c 02e0 b 0x802cd74
| --------> 0x0802cd6e ff20 movs r0, 0xff ; 255
| ||||||| 0x0802cd70 00f01ffa bl gui_control
| --------> 0x0802cd74 dff8c807 ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cd78 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cd7a c0f34010 ubfx r0, r0, 5, 1
| ||||||| 0x0802cd7e c007 lsls r0, r0, 0x1f
| ========< 0x0802cd80 1bd5 bpl 0x802cdba
| ||||||| 0x0802cd82 dff8bc07 ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cd86 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cd88 10f0df00 ands r0, r0, 0xdf
| ||||||| 0x0802cd8c dff8b017 ldr.w r1, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cd90 4870 strb r0, [r1, 1]
| ||||||| 0x0802cd92 dff8540a ldr.w r0, [0x0802d7ee] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802cd96 0079 ldrb r0, [r0, 4]
| ||||||| 0x0802cd98 2628 cmp r0, 0x26 ; '&' ; 38
| ========< 0x0802cd9a 04d0 beq 0x802cda6
| ||||||| 0x0802cd9c dff8480a ldr.w r0, [0x0802d7ec] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802cda0 4079 ldrb r0, [r0, 5]
| ||||||| 0x0802cda2 2628 cmp r0, 0x26 ; '&' ; 38
| ========< 0x0802cda4 01d1 bne 0x802cdaa
| --------> 0x0802cda6 2624 movs r4, 0x26 ; '&' ; 38
| ========< 0x0802cda8 02e0 b 0x802cdb0
| --------> 0x0802cdaa dff83c0a ldr.w r0, [0x0802d7ee] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802cdae 0479 ldrb r4, [r0, 4]
| --------> 0x0802cdb0 2000 movs r0, r4
| ||||||| 0x0802cdb2 c0b2 uxtb r0, r0
| ||||||| 0x0802cdb4 00f0fdf9 bl gui_control
| ========< 0x0802cdb8 34e0 b 0x802ce24
| --------> 0x0802cdba dff88407 ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cdbe 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cdc0 c0f38010 ubfx r0, r0, 6, 1
| ||||||| 0x0802cdc4 c007 lsls r0, r0, 0x1f
| ========< 0x0802cdc6 0fd5 bpl 0x802cde8
| ||||||| 0x0802cdc8 dff87407 ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cdcc 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cdce 10f0bf00 ands r0, r0, 0xbf
| ||||||| 0x0802cdd2 dff86c17 ldr.w r1, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cdd6 4870 strb r0, [r1, 1]
| ||||||| 0x0802cdd8 dff80c0a ldr.w r0, [0x0802d7ec] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802cddc 4479 ldrb r4, [r0, 5]
| ||||||| 0x0802cdde 2000 movs r0, r4
| ||||||| 0x0802cde0 c0b2 uxtb r0, r0
| ||||||| 0x0802cde2 00f0e6f9 bl gui_control
| ========< 0x0802cde6 1de0 b 0x802ce24
| --------> 0x0802cde8 dff85407 ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cdec 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cdee 0006 lsls r0, r0, 0x18
| ========< 0x0802cdf0 18d5 bpl 0x802ce24
| ||||||| 0x0802cdf2 dff84c07 ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cdf6 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cdf8 10f07f00 ands r0, r0, 0x7f
| ||||||| 0x0802cdfc dff84017 ldr.w r1, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802ce00 4870 strb r0, [r1, 1]
| ||||||| 0x0802ce02 dff8e409 ldr.w r0, [0x0802d7ee] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802ce06 0079 ldrb r0, [r0, 4]
| ||||||| 0x0802ce08 2628 cmp r0, 0x26 ; '&' ; 38
| ========< 0x0802ce0a 04d0 beq 0x802ce16
| ||||||| 0x0802ce0c dff8d809 ldr.w r0, [0x0802d7ec] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802ce10 4079 ldrb r0, [r0, 5]
| ||||||| 0x0802ce12 2628 cmp r0, 0x26 ; '&' ; 38
| ========< 0x0802ce14 03d1 bne 0x802ce1e
| --------> 0x0802ce16 f320 movs r0, 0xf3 ; 243
| ||||||| 0x0802ce18 00f0cbf9 bl gui_control
| ========< 0x0802ce1c 02e0 b 0x802ce24
| --------> 0x0802ce1e ff20 movs r0, 0xff ; 255
| ||||||| 0x0802ce20 00f0c7f9 bl gui_control
| --------> 0x0802ce24 dff8b40c ldr.w r0, [0x0802dae0] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802ce28 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802ce2a c0f38000 ubfx r0, r0, 2, 1
| ||||||| 0x0802ce2e c007 lsls r0, r0, 0x1f
| ========< 0x0802ce30 09d5 bpl 0x802ce46
| ||||||| 0x0802ce32 dff8a80c ldr.w r0, [0x0802dae2] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802ce36 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802ce38 10f0fb00 ands r0, r0, 0xfb
| ||||||| 0x0802ce3c dff89c1c ldr.w r1, [0x0802dae0] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802ce40 4870 strb r0, [r1, 1]
| ||||||| 0x0802ce42 01f0bbf8 bl md380_f_4137
| --------> 0x0802ce46 dff8940c ldr.w r0, [0x0802dae2] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802ce4a 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802ce4c c0f3c000 ubfx r0, r0, 3, 1
| ||||||| 0x0802ce50 c007 lsls r0, r0, 0x1f
| ========< 0x0802ce52 0ed5 bpl 0x802ce72
| ||||||| 0x0802ce54 dff8840c ldr.w r0, [0x0802dae0] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802ce58 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802ce5a 10f0f700 ands r0, r0, 0xf7
| ||||||| 0x0802ce5e dff87c1c ldr.w r1, [0x0802dae2] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802ce62 4870 strb r0, [r1, 1]
| ||||||| 0x0802ce64 dff88409 ldr.w r0, [0x0802d7f0] ; [0x802d7f0:4]=0x2001e890 kb_keycode
| ||||||| 0x0802ce68 0078 ldrb r0, [r0]
| ||||||| 0x0802ce6a 0128 cmp r0, 1 ; 1
| ========< 0x0802ce6c 01d0 beq 0x802ce72
| ||||||| 0x0802ce6e edf7f7fd bl menu_func_1aa60
| --------> 0x0802ce72 dff8680c ldr.w r0, [0x0802dae2] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802ce76 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802ce78 c0f30010 ubfx r0, r0, 4, 1
| ||||||| 0x0802ce7c c007 lsls r0, r0, 0x1f
| ========< 0x0802ce7e 07d5 bpl 0x802ce90
| ||||||| 0x0802ce80 dff8580c ldr.w r0, [0x0802dae0] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802ce84 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802ce86 10f0ef00 ands r0, r0, 0xef
| ||||||| 0x0802ce8a dff8501c ldr.w r1, [0x0802dae2] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802ce8e 4870 strb r0, [r1, 1]
| --------> 0x0802ce90 dff8480c ldr.w r0, [0x0802dae0] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802ce94 0078 ldrb r0, [r0]
| ||||||| 0x0802ce96 c0f38000 ubfx r0, r0, 2, 1
| ||||||| 0x0802ce9a c007 lsls r0, r0, 0x1f
| ========< 0x0802ce9c 40f18380 bpl.w 0x802cfa6
| ||||||| 0x0802cea0 dff8d406 ldr.w r0, [display_unprog_screen] ; [0x802d57c:4]=0xb088b510
| ||||||| 0x0802cea4 0078 ldrb r0, [r0]
| ||||||| 0x0802cea6 0128 cmp r0, 1 ; 1
| ========< 0x0802cea8 7dd1 bne 0x802cfa6
| ||||||| 0x0802ceaa dff84409 ldr.w r0, [0x0802d7f6] ; [0x802d7f4:4]=0x20004acc md380_menu_depth
| ||||||| 0x0802ceae 0078 ldrb r0, [r0]
| ||||||| 0x0802ceb0 0a28 cmp r0, 0xa ; 10
| ========< 0x0802ceb2 78d2 bhs 0x802cfa6
| ||||||| 0x0802ceb4 dff83409 ldr.w r0, [0x0802d7f0] ; [0x802d7f0:4]=0x2001e890 kb_keycode
| ||||||| 0x0802ceb8 0078 ldrb r0, [r0]
| ||||||| 0x0802ceba 0128 cmp r0, 1 ; 1
| ========< 0x0802cebc 02d1 bne 0x802cec4
| ||||||| 0x0802cebe edf7cffd bl menu_func_1aa60
| ========< 0x0802cec2 5be1 b 0x802d17c
| --------> 0x0802cec4 dff8140c ldr.w r0, [0x0802dae0] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802cec8 0078 ldrb r0, [r0]
| ||||||| 0x0802ceca 10f0fb00 ands r0, r0, 0xfb
| ||||||| 0x0802cece dff80c1c ldr.w r1, [0x0802dae2] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802ced2 0870 strb r0, [r1]
| ||||||| 0x0802ced4 dff81809 ldr.w r0, [0x0802d7f4] ; [0x802d7f4:4]=0x20004acc md380_menu_depth
| ||||||| 0x0802ced8 0078 ldrb r0, [r0]
| ||||||| 0x0802ceda dff80c19 ldr.w r1, [0x0802d7ee] ; [0x802d7ec:4]=0x2001e930
| ||||||| 0x0802cede 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x0802cee2 808d ldrh r0, [r0, 0x2c]
| ||||||| 0x0802cee4 0028 cmp r0, 0
| ========< 0x0802cee6 00f04981 beq.w 0x802d17c
| ||||||| 0x0802ceea dff88c06 ldr.w r0, [0x0802d57e] ; [0x802d57c:4]=0xb088b510
| ||||||| 0x0802ceee 0078 ldrb r0, [r0]
| ||||||| 0x0802cef0 0228 cmp r0, 2 ; 2
| ========< 0x0802cef2 0ed0 beq 0x802cf12
| ||||||| 0x0802cef4 dff88006 ldr.w r0, [display_unprog_screen] ; [0x802d57c:4]=0xb088b510
| ||||||| 0x0802cef8 0078 ldrb r0, [r0]
| ||||||| 0x0802cefa 0428 cmp r0, 4 ; 4
| ========< 0x0802cefc 09d0 beq 0x802cf12
| ||||||| 0x0802cefe dff82406 ldr.w r0, [0x0802d52a] ; [0x802d528:4]=0x2001e6ec
| ||||||| 0x0802cf02 0078 ldrb r0, [r0]
| ||||||| 0x0802cf04 0128 cmp r0, 1 ; 1
| ========< 0x0802cf06 04d0 beq 0x802cf12
| ||||||| 0x0802cf08 dff84804 ldr.w r0, [0x0802d358] ; [0x802d358:4]=0x2001e881
| ||||||| 0x0802cf0c 4078 ldrb r0, [r0, 1]
| ||||||| 0x0802cf0e c007 lsls r0, r0, 0x1f
| ========< 0x0802cf10 00d5 bpl 0x802cf14
| --------> 0x0802cf12 33e1 b 0x802d17c
| --------> 0x0802cf14 dff8dc08 ldr.w r0, [display_idle_screen] ; [0x802d7f8:4]=0xb082b510
| ||||||| 0x0802cf18 0078 ldrb r0, [r0]
| ||||||| 0x0802cf1a 1028 cmp r0, 0x10 ; 16
| ========< 0x0802cf1c 3fd3 blo 0x802cf9e
| ||||||| 0x0802cf1e dff8d408 ldr.w r0, [0x0802d7fa] ; [0x802d7f8:4]=0xb082b510
| ||||||| 0x0802cf22 0078 ldrb r0, [r0]
| ||||||| 0x0802cf24 fe28 cmp r0, 0xfe ; 254
| ========< 0x0802cf26 3ad0 beq 0x802cf9e
| ||||||| 0x0802cf28 dff84c06 ldr.w r0, [display_unprog_screen] ; [0x802d57c:4]=0xb088b510
| ||||||| 0x0802cf2c 0078 ldrb r0, [r0]
| ||||||| 0x0802cf2e 0128 cmp r0, 1 ; 1
| ========< 0x0802cf30 35d1 bne 0x802cf9e
| ||||||| 0x0802cf32 dff8c008 ldr.w r0, [0x0802d7fa] ; [0x802d7f8:4]=0xb082b510
| ||||||| 0x0802cf36 0021 movs r1, 0
| ||||||| 0x0802cf38 0170 strb r1, [r0]
| ||||||| 0x0802cf3a e2f7bffe bl menugreen.Contacts.800fcbc
| ||||||| 0x0802cf3e dff8b408 ldr.w r0, [0x0802d7fa] ; [0x802d7f8:4]=0xb082b510
| ||||||| 0x0802cf42 0078 ldrb r0, [r0]
| ||||||| 0x0802cf44 401c adds r0, r0, 1
| ||||||| 0x0802cf46 dff8ac18 ldr.w r1, [0x0802d7fa] ; [0x802d7f8:4]=0xb082b510
| ||||||| 0x0802cf4a 0870 strb r0, [r1]
| ||||||| 0x0802cf4c dff8a408 ldr.w r0, [display_idle_screen] ; [0x802d7f8:4]=0xb082b510
| ||||||| 0x0802cf50 0078 ldrb r0, [r0]
| ||||||| 0x0802cf52 e2f77ffe bl menu_add_number_of_menuentries_counts
| ||||||| 0x0802cf56 dff8881b ldr.w r1, [0x0802dae6] ; [0x802dae4:4]=0x2001d5cc md380_menu_memory
| ||||||| 0x0802cf5a 0870 strb r0, [r1]
| ||||||| 0x0802cf5c dff89408 ldr.w r0, [display_idle_screen] ; [0x802d7f8:4]=0xb082b510
| ||||||| 0x0802cf60 0078 ldrb r0, [r0]
| ||||||| 0x0802cf62 0c21 movs r1, 0xc ; 12
| ||||||| 0x0802cf64 dff87c2b ldr.w r2, [0x0802dae8] ; [0x802dae8:4]=0x2001e700 menu_memory_poi
| ||||||| 0x0802cf68 01fb0020 mla r0, r1, r0, r2
| ||||||| 0x0802cf6c dff8781b ldr.w r1, [0x0802daec] ; [0x802daec:4]=0x2001e6fc
| ||||||| 0x0802cf70 0860 str r0, [r1]
| ||||||| 0x0802cf72 dff8740b ldr.w r0, [0x0802daee] ; [0x802daec:4]=0x2001e6fc
| ||||||| 0x0802cf76 0068 ldr r0, [r0]
| ||||||| 0x0802cf78 4068 ldr r0, [r0, 4]
| ||||||| 0x0802cf7a dff8701b ldr.w r1, [0x0802daf2] ; [0x802daf0:4]=0xff1414
| ||||||| 0x0802cf7e 0860 str r0, [r1]
| ||||||| 0x0802cf80 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0802cf82 dff8c405 ldr.w r0, [0x0802d54e] ; [0x802d54c:4]=0x2001e7f8 backlight_timer
| ||||||| 0x0802cf86 fef740fc bl GPIO_SetBits
| ||||||| 0x0802cf8a dff8b805 ldr.w r0, [0x0802d54a] ; [0x802d548:4]=0x40020800 io_GPIOC
| ||||||| 0x0802cf8e 407d ldrb r0, [r0, 0x15]
| ||||||| 0x0802cf90 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x0802cf94 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x0802cf98 dff8b015 ldr.w r1, [0x0802d550] ; [0x802d550:4]=0x2001e8e3
| ||||||| 0x0802cf9c 0880 strh r0, [r1]
| --------> 0x0802cf9e e1f7fbfd bl menu_dispatcher
| ||||||| 0x0802cfa2 dff721fc bl func_0c7e8
| -`-`----> 0x0802cfa6 dff87c05 ldr.w r0, [0x0802d52a] ; [0x802d528:4]=0x2001e6ec
| | | ||| 0x0802cfaa 0078 ldrb r0, [r0]
| | | ||| 0x0802cfac 0528 cmp r0, 5 ; 5
| | |,====< 0x0802cfae 00f0e580 beq.w 0x802d17c
| | ||||| 0x0802cfb2 dff87005 ldr.w r0, [0x0802d52a] ; [0x802d528:4]=0x2001e6ec
| | ||||| 0x0802cfb6 0078 ldrb r0, [r0]
| | ||||| 0x0802cfb8 0428 cmp r0, 4 ; 4
| |,======< 0x0802cfba 66d1 bne 0x802d08a
| ||||||| 0x0802cfbc dff88005 ldr.w r0, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802cfc0 0078 ldrb r0, [r0]
| ||||||| 0x0802cfc2 c007 lsls r0, r0, 0x1f
| ========< 0x0802cfc4 61d5 bpl 0x802d08a
| ||||||| 0x0802cfc6 eef7e9fd bl menu_cursor_related_1bb9c
| ||||||| 0x0802cfca 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0802cfce f0f7cff9 bl gfx_set_fg_color
| ||||||| 0x0802cfd2 6e23 movs r3, 0x6e ; 'n' ; 110
| ||||||| 0x0802cfd4 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0802cfd6 0021 movs r1, 0
| ||||||| 0x0802cfd8 0020 movs r0, 0
| ||||||| 0x0802cfda f0f757fc bl gfx_blockfill
| ||||||| 0x0802cfde 0020 movs r0, 0
| ||||||| 0x0802cfe0 f0f7c6f9 bl gfx_set_fg_color
| ||||||| 0x0802cfe4 1323 movs r3, 0x13 ; 19
| ||||||| 0x0802cfe6 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0802cfe8 1321 movs r1, 0x13 ; 19
| ||||||| 0x0802cfea 0020 movs r0, 0
| ||||||| 0x0802cfec f0f74efc bl gfx_blockfill
| ||||||| 0x0802cff0 1223 movs r3, 0x12 ; 18
| ||||||| 0x0802cff2 9f22 movs r2, 0x9f ; 159
| ||||||| 0x0802cff4 1221 movs r1, 0x12 ; 18
| ||||||| 0x0802cff6 0020 movs r0, 0
| ||||||| 0x0802cff8 f0f748fc bl gfx_blockfill
| ||||||| 0x0802cffc dff8f00a ldr.w r0, [0x0802daf4] ; [0x802daf4:4]=0x2001e8e0
| ||||||| 0x0802d000 f0f7b6f9 bl gfx_set_fg_color
| ||||||| 0x0802d004 7e23 movs r3, 0x7e ; '~' ; 126
| ||||||| 0x0802d006 4522 movs r2, 0x45 ; 'E' ; 69
| ||||||| 0x0802d008 6e21 movs r1, 0x6e ; 'n' ; 110
| ||||||| 0x0802d00a 0120 movs r0, 1 ; 1
| ||||||| 0x0802d00c f0f73efc bl gfx_blockfill
| ||||||| 0x0802d010 7e23 movs r3, 0x7e ; '~' ; 126
| ||||||| 0x0802d012 9e22 movs r2, 0x9e ; 158
| ||||||| 0x0802d014 6e21 movs r1, 0x6e ; 'n' ; 110
| ||||||| 0x0802d016 5c20 movs r0, 0x5c ; '\' ; 92
| ||||||| 0x0802d018 f0f738fc bl gfx_blockfill
| ||||||| 0x0802d01c 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0802d020 f0f7a6f9 bl gfx_set_fg_color
| ||||||| 0x0802d024 dff8c80a ldr.w r0, [0x0802daf4] ; [0x802daf4:4]=0x2001e8e0
| ||||||| 0x0802d028 f0f79ef9 bl gfx_set_bg_color
| ||||||| 0x0802d02c 7e20 movs r0, 0x7e ; '~' ; 126
| ||||||| 0x0802d02e 0090 str r0, [sp]
| ||||||| 0x0802d030 4523 movs r3, 0x45 ; 'E' ; 69
| ||||||| 0x0802d032 6e22 movs r2, 0x6e ; 'n' ; 110
| ||||||| 0x0802d034 0121 movs r1, 1 ; 1
| ||||||| 0x0802d036 dff8f004 ldr.w r0, [0x0802d52e] ; [0x802d52c:4]=0x2001e8e6
| ||||||| 0x0802d03a 0068 ldr r0, [r0]
| ||||||| 0x0802d03c c94c ldr r4, [0x0802d364] ; [0x802d364:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0802d03e 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0802d042 d0f82003 ldr.w r0, [r0, 0x320]
| ||||||| 0x0802d046 e0f747ff bl gfx_drawtext10
| ||||||| 0x0802d04a 7e20 movs r0, 0x7e ; '~' ; 126
| ||||||| 0x0802d04c 0090 str r0, [sp]
| ||||||| 0x0802d04e 9e23 movs r3, 0x9e ; 158
| ||||||| 0x0802d050 6e22 movs r2, 0x6e ; 'n' ; 110
| ||||||| 0x0802d052 5c21 movs r1, 0x5c ; '\' ; 92
| ||||||| 0x0802d054 dff8d004 ldr.w r0, [0x0802d52c] ; [0x802d52c:4]=0x2001e8e6
| ||||||| 0x0802d058 0068 ldr r0, [r0]
| ||||||| 0x0802d05a c24c ldr r4, [0x0802d366] ; [0x802d364:4]=0x20001704 md380_menu_ptr_to_80d032c
| ||||||| 0x0802d05c 14eb8000 adds.w r0, r4, r0, lsl 2
| ||||||| 0x0802d060 d0f82403 ldr.w r0, [r0, 0x324]
| ||||||| 0x0802d064 e0f738ff bl gfx_drawtext10
| ||||||| 0x0802d068 0020 movs r0, 0
| ||||||| 0x0802d06a f0f781f9 bl gfx_set_fg_color
| ||||||| 0x0802d06e 7ff07f40 mvns r0, 0xff000000
| ||||||| 0x0802d072 f0f779f9 bl gfx_set_bg_color
| ||||||| 0x0802d076 dff7b7fb bl func_0c7e8
| ||||||| 0x0802d07a dff8c404 ldr.w r0, [0x0802d546] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802d07e 0078 ldrb r0, [r0]
| ||||||| 0x0802d080 10f0fe00 ands r0, r0, 0xfe
| ||||||| 0x0802d084 dff8b814 ldr.w r1, [0x0802d544] ; [0x802d544:4]=0x2001dadc md380_radio_config
| ||||||| 0x0802d088 0870 strb r0, [r1]
| -`------> 0x0802d08a dff8500a ldr.w r0, [0x0802dae2] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| | ||||| 0x0802d08e 0078 ldrb r0, [r0]
| | ||||| 0x0802d090 c0f34000 ubfx r0, r0, 1, 1
| | ||||| 0x0802d094 c007 lsls r0, r0, 0x1f
| |,======< 0x0802d096 36d5 bpl 0x802d106
| ||||||| 0x0802d098 dff8a804 ldr.w r0, [0x0802d548] ; [0x802d548:4]=0x40020800 io_GPIOC
| ||||||| 0x0802d09c 407d ldrb r0, [r0, 0x15]
| ||||||| 0x0802d09e 0028 cmp r0, 0
| ========< 0x0802d0a0 05d1 bne 0x802d0ae
| ||||||| 0x0802d0a2 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0802d0a4 dff8a004 ldr.w r0, [0x0802d54c] ; [0x802d54c:4]=0x2001e7f8 backlight_timer
| ||||||| 0x0802d0a8 fef7affb bl GPIO_SetBits
| ========< 0x0802d0ac 0ee0 b 0x802d0cc
| --------> 0x0802d0ae 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0802d0b0 dff89404 ldr.w r0, [0x0802d54c] ; [0x802d54c:4]=0x2001e7f8 backlight_timer
| ||||||| 0x0802d0b4 fef7a9fb bl GPIO_SetBits
| ||||||| 0x0802d0b8 dff88804 ldr.w r0, [0x0802d548] ; [0x802d548:4]=0x40020800 io_GPIOC
| ||||||| 0x0802d0bc 407d ldrb r0, [r0, 0x15]
| ||||||| 0x0802d0be 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x0802d0c2 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x0802d0c6 dff88414 ldr.w r1, [0x0802d552] ; [0x802d550:4]=0x2001e8e3
| ||||||| 0x0802d0ca 0880 strh r0, [r1]
| --------> 0x0802d0cc dff80c0a ldr.w r0, [0x0802dae0] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802d0d0 0078 ldrb r0, [r0]
| ||||||| 0x0802d0d2 10f0fd00 ands r0, r0, 0xfd
| ||||||| 0x0802d0d6 dff8041a ldr.w r1, [0x0802dae2] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802d0da 0870 strb r0, [r1]
| ||||||| 0x0802d0dc dff81007 ldr.w r0, [0x0802d7f4] ; [0x802d7f4:4]=0x20004acc md380_menu_depth
| ||||||| 0x0802d0e0 0078 ldrb r0, [r0]
| ||||||| 0x0802d0e2 0028 cmp r0, 0
| ========< 0x0802d0e4 04d1 bne 0x802d0f0
| ||||||| 0x0802d0e6 dff83c04 ldr.w r0, [0x0802d52a] ; [0x802d528:4]=0x2001e6ec
| ||||||| 0x0802d0ea 0078 ldrb r0, [r0]
| ||||||| 0x0802d0ec 0428 cmp r0, 4 ; 4
| ========< 0x0802d0ee 02d1 bne 0x802d0f6
| --------> 0x0802d0f0 00f064ff bl md380_f_4137
| ========< 0x0802d0f4 42e0 b 0x802d17c
| --------> 0x0802d0f6 dff8f806 ldr.w r0, [0x0802d7f6] ; [0x802d7f4:4]=0x20004acc md380_menu_depth
| ||||||| 0x0802d0fa 0078 ldrb r0, [r0]
| ||||||| 0x0802d0fc 0028 cmp r0, 0
| ========< 0x0802d0fe 3dd1 bne 0x802d17c
| ||||||| 0x0802d100 00f05cff bl md380_f_4137
| ========< 0x0802d104 3ae0 b 0x802d17c
| |`------> 0x0802d106 dff8d409 ldr.w r0, [0x0802dae2] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| | ||||| 0x0802d10a 0078 ldrb r0, [r0]
| | ||||| 0x0802d10c c0f38000 ubfx r0, r0, 2, 1
| | ||||| 0x0802d110 c007 lsls r0, r0, 0x1f
| |,======< 0x0802d112 24d5 bpl 0x802d15e
| ||||||| 0x0802d114 dff82c04 ldr.w r0, [0x0802d548] ; [0x802d548:4]=0x40020800 io_GPIOC
| ||||||| 0x0802d118 407d ldrb r0, [r0, 0x15]
| ||||||| 0x0802d11a 0028 cmp r0, 0
| ========< 0x0802d11c 05d1 bne 0x802d12a
| ||||||| 0x0802d11e 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0802d120 dff82404 ldr.w r0, [0x0802d54c] ; [0x802d54c:4]=0x2001e7f8 backlight_timer
| ||||||| 0x0802d124 fef771fb bl GPIO_SetBits
| ========< 0x0802d128 0ee0 b 0x802d148
| --------> 0x0802d12a 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0802d12c dff81804 ldr.w r0, [0x0802d54c] ; [0x802d54c:4]=0x2001e7f8 backlight_timer
| ||||||| 0x0802d130 fef76bfb bl GPIO_SetBits
| ||||||| 0x0802d134 dff80c04 ldr.w r0, [0x0802d548] ; [0x802d548:4]=0x40020800 io_GPIOC
| ||||||| 0x0802d138 407d ldrb r0, [r0, 0x15]
| ||||||| 0x0802d13a 4ff4fa71 mov.w r1, 0x1f4 ; 500
| ||||||| 0x0802d13e 10fb01f0 smulbb r0, r0, r1
| ||||||| 0x0802d142 dff80814 ldr.w r1, [0x0802d552] ; [0x802d550:4]=0x2001e8e3
| ||||||| 0x0802d146 0880 strh r0, [r1]
| --------> 0x0802d148 dff89009 ldr.w r0, [0x0802dae0] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802d14c 0078 ldrb r0, [r0]
| ||||||| 0x0802d14e 10f0fb00 ands r0, r0, 0xfb
| ||||||| 0x0802d152 dff88819 ldr.w r1, [0x0802dae2] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802d156 0870 strb r0, [r1]
| ||||||| 0x0802d158 00f030ff bl md380_f_4137
| ========< 0x0802d15c 0ee0 b 0x802d17c
| |`------> 0x0802d15e dff87c09 ldr.w r0, [0x0802dae2] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| | ||||| 0x0802d162 0078 ldrb r0, [r0]
| | ||||| 0x0802d164 c0f3c000 ubfx r0, r0, 3, 1
| | ||||| 0x0802d168 c007 lsls r0, r0, 0x1f
| |,======< 0x0802d16a 07d5 bpl 0x802d17c
| ||||||| 0x0802d16c dff86c09 ldr.w r0, [0x0802dae0] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802d170 0078 ldrb r0, [r0]
| ||||||| 0x0802d172 10f0f700 ands r0, r0, 0xf7
| ||||||| 0x0802d176 dff86419 ldr.w r1, [0x0802dae2] ; [0x802dae0:4]=0x2001e915 md380_menu_id
| ||||||| 0x0802d17a 0870 strb r0, [r1]
\ ```````-> 0x0802d17c 13bd pop {r0, r1, r4, pc}
/ (fcn) func_31038 76
| Caller: create_many_semas
| func_31038 ();
| 0x08031038 38b5 push {r3, r4, r5, lr}
| 0x0803103a 0400 movs r4, r0
| 0x0803103c 0020 movs r0, 0
| 0x0803103e 5349 ldr r1, [0x0803118e] ; [0x803118c:4]=0x2001e951
| 0x08031040 0978 ldrb r1, [r1]
| 0x08031042 0029 cmp r1, 0
| ,=< 0x08031044 01d0 beq 0x803104a
| | 0x08031046 0020 movs r0, 0
| ,==< 0x08031048 1be0 b 0x8031082
| |`-> 0x0803104a 12f0cbfe bl OS_ENTER_CRITICAL
| | 0x0803104e 5049 ldr r1, [0x08031192] ; [0x8031190:4]=0x2001e708
| | 0x08031050 0d68 ldr r5, [r1]
| | 0x08031052 4f49 ldr r1, [0x08031192] ; [0x8031190:4]=0x2001e708
| | 0x08031054 0968 ldr r1, [r1]
| | 0x08031056 0029 cmp r1, 0
| |,=< 0x08031058 04d0 beq 0x8031064
| || 0x0803105a 4d49 ldr r1, [0x08031192] ; [0x8031190:4]=0x2001e708
| || 0x0803105c 0968 ldr r1, [r1]
| || 0x0803105e 4968 ldr r1, [r1, 4]
| || 0x08031060 4b4a ldr r2, [0x08031190] ; [0x8031190:4]=0x2001e708
| || 0x08031062 1160 str r1, [r2]
| |`-> 0x08031064 12f0c2fe bl OS_EXIT_CRITICAL
| | 0x08031068 002d cmp r5, 0
| |,=< 0x0803106a 09d0 beq 0x8031080
| || 0x0803106c 0120 movs r0, 1 ; 1
| || 0x0803106e 2870 strb r0, [r5]
| || 0x08031070 0020 movs r0, 0
| || 0x08031072 2881 strh r0, [r5, 8]
| || 0x08031074 6c60 str r4, [r5, 4]
| || 0x08031076 44a0 adr r0, 0x110
| || 0x08031078 6861 str r0, [r5, 0x14]
| || 0x0803107a 2800 movs r0, r5
| || 0x0803107c 13f0eaf8 bl func_44254
| |`-> 0x08031080 2800 movs r0, r5
\ `--> 0x08031082 32bd pop {r1, r4, r5, pc}
/ (fcn) md380_OSMboxPost 86
| Caller: task_468f8 F_858 phone_ringing func_2e984_beeps_and_uses_msg_timer_500 func_3f8f2_init_PLL_and_C5000
| Start dmr_call_end dmr_CSBK_handler func_3d5a0 md380_f_4520 kb_enter_alpha
| func_2daf8 ev5_19 func_3d2f0 func_3da68 func_2e860 ev5_17
| SomethingWithChannelsRadioConfigAndBeeps func_31fe2 c5000_wr_60_1 func_322d2
| md380_menu_12ada usb_dnld_handle md380_f_4137 CalledFromLongDispatcher func_2e73c_uses_menu_cursor_pos_1
| func_25790_menu_create_something some_init event_36 func_2f302 display_unprog_screen
| md380_menu_12964_uses_event5_buffer func_43490_wr_C5000 ev5_rest c5000_iffreq_init
| func_2ea9e func_2e918 md380_menu_12c4c func_32130 ev5_20 dmr_handle_data
| func_2e7bc promisc_audio_frame re_create_event_8 md380_menu_12ddc func_2de84
| md380_menu_12f30 func_213d0 call_F_4225_1 func_2ea0c_beeps_and_uses_struct_channel_info2
| func_2dd36_beeps_and_sets_kb_keycode update_scr_21 update_scr_22 func_3223e
| func_11108 func_3d53e
| md380_OSMboxPost ();
| 0x0803119c 70b5 push {r4, r5, r6, lr}
| 0x0803119e 0400 movs r4, r0
| 0x080311a0 0d00 movs r5, r1
| 0x080311a2 0026 movs r6, 0
| 0x080311a4 2078 ldrb r0, [r4]
| 0x080311a6 0128 cmp r0, 1 ; 1
| ,=< 0x080311a8 01d0 beq 0x80311ae
| | 0x080311aa 0120 movs r0, 1 ; 1
| ,==< 0x080311ac 20e0 b 0x80311f0
| |`-> 0x080311ae 12f019fe bl OS_ENTER_CRITICAL
| | 0x080311b2 0600 movs r6, r0
| | 0x080311b4 a07a ldrb r0, [r4, 0xa]
| | 0x080311b6 0028 cmp r0, 0
| |,=< 0x080311b8 0dd0 beq 0x80311d6
| || 0x080311ba 0023 movs r3, 0
| || 0x080311bc 0222 movs r2, 2 ; 2
| || 0x080311be 2900 movs r1, r5
| || 0x080311c0 2000 movs r0, r4
| || 0x080311c2 12f0abff bl func_4411c
| || 0x080311c6 0400 movs r4, r0
| || 0x080311c8 3000 movs r0, r6
| || 0x080311ca 12f00ffe bl OS_EXIT_CRITICAL
| || 0x080311ce 13f003f9 bl func_443d8
| || 0x080311d2 0020 movs r0, 0
| ,===< 0x080311d4 0ce0 b 0x80311f0
| ||`-> 0x080311d6 6068 ldr r0, [r4, 4]
| || 0x080311d8 0028 cmp r0, 0
| ||,=< 0x080311da 04d0 beq 0x80311e6
| ||| 0x080311dc 3000 movs r0, r6
| ||| 0x080311de 12f005fe bl OS_EXIT_CRITICAL
| ||| 0x080311e2 1420 movs r0, 0x14 ; 20
| ,====< 0x080311e4 04e0 b 0x80311f0
| |||`-> 0x080311e6 6560 str r5, [r4, 4]
| ||| 0x080311e8 3000 movs r0, r6
| ||| 0x080311ea 12f0fffd bl OS_EXIT_CRITICAL
| ||| 0x080311ee 0020 movs r0, 0
\ ```--> 0x080311f0 70bd pop {r4, r5, r6, pc}
/ (fcn) md380_OSMboxPend 258
| Caller: c5000_wr_60_4 Beep_Process dispatch_event5_mbox
| md380_OSMboxPend ();
| 0x08031084 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x08031088 0500 movs r5, r0
| 0x0803108a 0e00 movs r6, r1
| 0x0803108c 1400 movs r4, r2
| 0x0803108e 0027 movs r7, 0
| 0x08031090 2878 ldrb r0, [r5]
| 0x08031092 0128 cmp r0, 1 ; 1
| ,=< 0x08031094 03d0 beq 0x803109e
| | 0x08031096 0120 movs r0, 1 ; 1
| | 0x08031098 2070 strb r0, [r4]
| | 0x0803109a 0020 movs r0, 0
| ,==< 0x0803109c 71e0 b 0x8031182
| |`-> 0x0803109e 3b48 ldr r0, [0x0803118e] ; [0x803118c:4]=0x2001e951
| | 0x080310a0 0078 ldrb r0, [r0]
| | 0x080310a2 0028 cmp r0, 0
| |,=< 0x080310a4 03d0 beq 0x80310ae
| || 0x080310a6 0220 movs r0, 2 ; 2
| || 0x080310a8 2070 strb r0, [r4]
| || 0x080310aa 0020 movs r0, 0
| ,===< 0x080310ac 69e0 b 0x8031182
| ||`-> 0x080310ae 3948 ldr r0, [0x08031196] ; [0x8031194:4]=0x2001e952
| || 0x080310b0 0078 ldrb r0, [r0]
| || 0x080310b2 0028 cmp r0, 0
| ||,=< 0x080310b4 03d0 beq 0x80310be
| ||| 0x080310b6 0d20 movs r0, 0xd ; 13
| ||| 0x080310b8 2070 strb r0, [r4]
| ||| 0x080310ba 0020 movs r0, 0
| ,====< 0x080310bc 61e0 b 0x8031182
| |||`-> 0x080310be 12f091fe bl OS_ENTER_CRITICAL
| ||| 0x080310c2 0700 movs r7, r0
| ||| 0x080310c4 d5f80480 ldr.w r8, [r5, 4]
| ||| 0x080310c8 b8f1000f cmp.w r8, 0
| |||,=< 0x080310cc 08d0 beq 0x80310e0
| |||| 0x080310ce 0020 movs r0, 0
| |||| 0x080310d0 6860 str r0, [r5, 4]
| |||| 0x080310d2 3800 movs r0, r7
| |||| 0x080310d4 12f08afe bl OS_EXIT_CRITICAL
| |||| 0x080310d8 0020 movs r0, 0
| |||| 0x080310da 2070 strb r0, [r4]
| |||| 0x080310dc 4046 mov r0, r8
| ,=====< 0x080310de 50e0 b 0x8031182
| ||||`-> 0x080310e0 2d48 ldr r0, [0x08031198] ; [0x8031198:4]=0x2001e714
| |||| 0x080310e2 0068 ldr r0, [r0]
| |||| 0x080310e4 90f83000 ldrb.w r0, [r0, 0x30]
| |||| 0x080310e8 50f00200 orrs r0, r0, 2
| |||| 0x080310ec 2a49 ldr r1, [0x08031198] ; [0x8031198:4]=0x2001e714
| |||| 0x080310ee 0968 ldr r1, [r1]
| |||| 0x080310f0 81f83000 strb.w r0, [r1, 0x30]
| |||| 0x080310f4 2848 ldr r0, [0x08031198] ; [0x8031198:4]=0x2001e714
| |||| 0x080310f6 0068 ldr r0, [r0]
| |||| 0x080310f8 0021 movs r1, 0
| |||| 0x080310fa 80f83110 strb.w r1, [r0, 0x31]
| |||| 0x080310fe 2648 ldr r0, [0x0803119a] ; [0x8031198:4]=0x2001e714
| |||| 0x08031100 0068 ldr r0, [r0]
| |||| 0x08031102 c662 str r6, [r0, 0x2c]
| |||| 0x08031104 2800 movs r0, r5
| |||| 0x08031106 13f046f8 bl func_44196
| |||| 0x0803110a 3800 movs r0, r7
| |||| 0x0803110c 12f06efe bl OS_EXIT_CRITICAL
| |||| 0x08031110 13f062f9 bl func_443d8
| |||| 0x08031114 12f066fe bl OS_ENTER_CRITICAL
| |||| 0x08031118 0700 movs r7, r0
| |||| 0x0803111a 1f48 ldr r0, [0x0803119a] ; [0x8031198:4]=0x2001e714
| |||| 0x0803111c 0068 ldr r0, [r0]
| |||| 0x0803111e 90f83100 ldrb.w r0, [r0, 0x31]
| |||| 0x08031122 0028 cmp r0, 0
| ||||,=< 0x08031124 02d0 beq 0x803112c
| ||||| 0x08031126 0228 cmp r0, 2 ; 2
| ,======< 0x08031128 07d0 beq 0x803113a
| ,=======< 0x0803112a 0be0 b 0x8031144
| ||||||`-> 0x0803112c 1a48 ldr r0, [0x08031198] ; [0x8031198:4]=0x2001e714
| |||||| 0x0803112e 0068 ldr r0, [r0]
| |||||| 0x08031130 d0f82080 ldr.w r8, [r0, 0x20]
| |||||| 0x08031134 0020 movs r0, 0
| |||||| 0x08031136 2070 strb r0, [r4]
| ||||||,=< 0x08031138 0de0 b 0x8031156
| |`------> 0x0803113a 5ff00008 movs.w r8, 0
| | ||||| 0x0803113e 0e20 movs r0, 0xe ; 14
| | ||||| 0x08031140 2070 strb r0, [r4]
| |,======< 0x08031142 08e0 b 0x8031156
| `-------> 0x08031144 2900 movs r1, r5
| |||||| 0x08031146 1448 ldr r0, [0x0803119a] ; [0x8031198:4]=0x2001e714
| |||||| 0x08031148 0068 ldr r0, [r0]
| |||||| 0x0803114a 13f06af8 bl func_44222
| |||||| 0x0803114e 5ff00008 movs.w r8, 0
| |||||| 0x08031152 0a20 movs r0, 0xa ; 10
| |||||| 0x08031154 2070 strb r0, [r4]
| `----`-> 0x08031156 1048 ldr r0, [0x0803119a] ; [0x8031198:4]=0x2001e714
| |||| 0x08031158 0068 ldr r0, [r0]
| |||| 0x0803115a 0021 movs r1, 0
| |||| 0x0803115c 80f83010 strb.w r1, [r0, 0x30]
| |||| 0x08031160 0d48 ldr r0, [0x08031198] ; [0x8031198:4]=0x2001e714
| |||| 0x08031162 0068 ldr r0, [r0]
| |||| 0x08031164 0021 movs r1, 0
| |||| 0x08031166 80f83110 strb.w r1, [r0, 0x31]
| |||| 0x0803116a 0b48 ldr r0, [0x0803119a] ; [0x8031198:4]=0x2001e714
| |||| 0x0803116c 0068 ldr r0, [r0]
| |||| 0x0803116e 0021 movs r1, 0
| |||| 0x08031170 c161 str r1, [r0, 0x1c]
| |||| 0x08031172 0948 ldr r0, [0x0803119a] ; [0x8031198:4]=0x2001e714
| |||| 0x08031174 0068 ldr r0, [r0]
| |||| 0x08031176 0021 movs r1, 0
| |||| 0x08031178 0162 str r1, [r0, 0x20]
| |||| 0x0803117a 3800 movs r0, r7
| |||| 0x0803117c 12f036fe bl OS_EXIT_CRITICAL
| |||| 0x08031180 4046 mov r0, r8
\ ````--> 0x08031182 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) OS_ENTER_CRITICAL 8
| Caller: OSTimeDly func_47d5c OSTaskNameSet SysTick_Sub1 RTC_WKUP_IRQHandler
| SysTick_Sub3 func_443d8 func_4e4cc func_43f90 func_47e54 func_44478
| OSSemCreate func_43e98 func_31038 OS_IdleTask OSSemPost func_47eb4
| md380_OSMboxPend OSTaskCreateExt OSSemPend func_43fca SysTick_Handler
| md380_OSMboxPost RTCAndTimerIRQ_Sub2
| OS_ENTER_CRITICAL ();
| 0x08043de4 eff31080 invalid ; Not 'invalid' but 'mrs r0, PRIMASK'
| 0x08043de8 72b6 cpsid i
\ 0x08043dea 7047 bx lr
/ (fcn) OS_EXIT_CRITICAL 6
| Caller: OSTimeDly func_47d5c OSTaskNameSet SysTick_Sub1 RTC_WKUP_IRQHandler
| SysTick_Sub3 func_443d8 func_4e4cc func_43f90 func_47e54 func_44478
| OSSemCreate func_43e98 func_31038 OS_IdleTask OSSemPost func_47eb4
| md380_OSMboxPend OSTaskCreateExt OSSemPend func_43fca SysTick_Handler
| md380_OSMboxPost RTCAndTimerIRQ_Sub2
| OS_EXIT_CRITICAL ();
| 0x08043dec 80f31088 invalid ; Not 'invalid' but 'msr PRIMASK, r0'
\ 0x08043df0 7047 bx lr
/ (fcn) func_52c94 202
| Caller: func_52dfe
| func_52c94 ();
| 0x08052c94 10b5 push {r4, lr}
| 0x08052c96 e54c ldr r4, [0x0805302e] ; [0x805302c:4]=0x2001e4f4
| 0x08052c98 88b0 sub sp, 0x20
| 0x08052c9a 1023 movs r3, 0x10 ; 16
| 0x08052c9c 2246 mov r2, r4
| 0x08052c9e 3021 movs r1, 0x30 ; '0' ; 48
| 0x08052ca0 7a20 movs r0, 0x7a ; 'z' ; 122
| 0x08052ca2 f5f779ff bl func_48b98
| 0x08052ca6 0028 cmp r0, 0
| ,=< 0x08052ca8 57d1 bne 0x8052d5a
| | 0x08052caa 2178 ldrb r1, [r4]
| | 0x08052cac 03a8 add r0, sp, 0xc
| | 0x08052cae 0223 movs r3, 2 ; 2
| | 0x08052cb0 8df80c10 strb.w r1, [sp, 0xc]
| | 0x08052cb4 6178 ldrb r1, [r4, 1]
| | 0x08052cb6 02aa add r2, sp, 8
| | 0x08052cb8 4170 strb r1, [r0, 1]
| | 0x08052cba 2179 ldrb r1, [r4, 4]
| | 0x08052cbc 8170 strb r1, [r0, 2]
| | 0x08052cbe 6179 ldrb r1, [r4, 5]
| | 0x08052cc0 c170 strb r1, [r0, 3]
| | 0x08052cc2 217a ldrb r1, [r4, 8]
| | 0x08052cc4 0171 strb r1, [r0, 4]
| | 0x08052cc6 617a ldrb r1, [r4, 9]
| | 0x08052cc8 4171 strb r1, [r0, 5]
| | 0x08052cca 217b ldrb r1, [r4, 0xc]
| | 0x08052ccc 8171 strb r1, [r0, 6]
| | 0x08052cce 617b ldrb r1, [r4, 0xd]
| | 0x08052cd0 c171 strb r1, [r0, 7]
| | 0x08052cd2 e07a ldrb r0, [r4, 0xb]
| | 0x08052cd4 05a9 add r1, sp, 0x14
| | 0x08052cd6 8df80800 strb.w r0, [sp, 8]
| | 0x08052cda a078 ldrb r0, [r4, 2]
| | 0x08052cdc d24c ldr r4, [0x08053028] ; [0x8053028:4]=0x2001e31c
| | 0x08052cde 8df80900 strb.w r0, [sp, 9]
| | 0x08052ce2 0020 movs r0, 0
| | 0x08052ce4 2076 strb r0, [r4, 0x18]
| | 0x08052ce6 0120 movs r0, 1 ; 1
| | 0x08052ce8 6076 strb r0, [r4, 0x19]
| | 0x08052cea 0020 movs r0, 0
| | 0x08052cec 0190 str r0, [sp, 4]
| | 0x08052cee 2020 movs r0, 0x20 ; 32
| | 0x08052cf0 0090 str r0, [sp]
| | 0x08052cf2 03a8 add r0, sp, 0xc
| | 0x08052cf4 fff7d4fe bl func_52aa0
| | 0x08052cf8 9df81410 ldrb.w r1, [sp, 0x14]
| | 0x08052cfc 05a8 add r0, sp, 0x14
| | 0x08052cfe 1023 movs r3, 0x10 ; 16
| | 0x08052d00 2170 strb r1, [r4]
| | 0x08052d02 4178 ldrb r1, [r0, 1]
| | 0x08052d04 2246 mov r2, r4
| | 0x08052d06 a170 strb r1, [r4, 2]
| | 0x08052d08 8178 ldrb r1, [r0, 2]
| | 0x08052d0a 2171 strb r1, [r4, 4]
| | 0x08052d0c c178 ldrb r1, [r0, 3]
| | 0x08052d0e a171 strb r1, [r4, 6]
| | 0x08052d10 0179 ldrb r1, [r0, 4]
| | 0x08052d12 2172 strb r1, [r4, 8]
| | 0x08052d14 4179 ldrb r1, [r0, 5]
| | 0x08052d16 a172 strb r1, [r4, 0xa]
| | 0x08052d18 8179 ldrb r1, [r0, 6]
| | 0x08052d1a c079 ldrb r0, [r0, 7]
| | 0x08052d1c a073 strb r0, [r4, 0xe]
| | 0x08052d1e 2078 ldrb r0, [r4]
| | 0x08052d20 2173 strb r1, [r4, 0xc]
| | 0x08052d22 3021 movs r1, 0x30 ; '0' ; 48
| | 0x08052d24 80f0a000 eor r0, r0, 0xa0
| | 0x08052d28 2070 strb r0, [r4]
| | 0x08052d2a 0020 movs r0, 0
| | 0x08052d2c 6070 strb r0, [r4, 1]
| | 0x08052d2e 1020 movs r0, 0x10 ; 16
| | 0x08052d30 e070 strb r0, [r4, 3]
| | 0x08052d32 5b20 movs r0, 0x5b ; '[' ; 91
| | 0x08052d34 6071 strb r0, [r4, 5]
| | 0x08052d36 4a20 movs r0, 0x4a ; 'J' ; 74
| | 0x08052d38 e071 strb r0, [r4, 7]
| | 0x08052d3a be20 movs r0, 0xbe ; 190
| | 0x08052d3c 6072 strb r0, [r4, 9]
| | 0x08052d3e 4b20 movs r0, 0x4b ; 'K' ; 75
| | 0x08052d40 e072 strb r0, [r4, 0xb]
| | 0x08052d42 d520 movs r0, 0xd5 ; 213
| | 0x08052d44 6073 strb r0, [r4, 0xd]
| | 0x08052d46 2d20 movs r0, 0x2d ; '-' ; 45
| | 0x08052d48 e073 strb r0, [r4, 0xf]
| | 0x08052d4a 7a20 movs r0, 0x7a ; 'z' ; 122
| | 0x08052d4c f5f7bdff bl func_48cca
| ,==< 0x08052d50 18b9 cbnz r0, 0x8052d5a
| || 0x08052d52 2a20 movs r0, 0x2a ; '*' ; 42
| || 0x08052d54 f6f7e8f8 bl func_48f28
| || 0x08052d58 0020 movs r0, 0
| ``-> 0x08052d5a 08b0 add sp, 0x20
\ 0x08052d5c 10bd pop {r4, pc}
/ (fcn) func_53268 46
| Caller: Start_2_more_tasks__init_vocoder_tasks__Q
| func_53268 ();
| 0x08053268 70b5 push {r4, r5, r6, lr}
| 0x0805326a 0546 mov r5, r0
| 0x0805326c 0846 mov r0, r1
| 0x0805326e 0c46 mov r4, r1
| 0x08053270 1646 mov r6, r2
| 0x08053272 04f0f3fb bl func_57a5c
| 0x08053276 41f27433 movw r3, 0x1374
| 0x0805327a 0428 cmp r0, 4 ; 4
| ,=< 0x0805327c 08bf it eq
| `-> 0x0805327e 2024 movs r4, 0x20 ; 32
| 0x08053280 05f59b50 add.w r0, r5, 0x1360
| 0x08053284 3246 mov r2, r6
| 0x08053286 ec52 strh r4, [r5, r3]
| 0x08053288 2146 mov r1, r4
| 0x0805328a 1230 adds r0, 0x12
| 0x0805328c 04f0bafd bl func_57e04
| 0x08053290 4ff48040 mov.w r0, 0x4000
\ 0x08053294 70bd pop {r4, r5, r6, pc}
/ (fcn) func_53298 16
| func_53298 ();
| 0x08053298 08b5 push {r3, lr}
| 0x0805329a 00f59c50 add.w r0, r0, 0x1380
| 0x0805329e 0a30 adds r0, 0xa
| 0x080532a0 04f008f9 bl func_574b4
| 0x080532a4 00b2 sxth r0, r0
\ 0x080532a6 08bd pop {r3, pc}
/ (fcn) func_532a8 90
| func_532a8 ();
| 0x080532a8 38b5 push {r3, r4, r5, lr}
| 0x080532aa 41f27033 movw r3, 0x1370
| 0x080532ae cb5e ldrsh r3, [r1, r3]
| ,=< 0x080532b0 53bb cbnz r3, 0x8053308
| | 0x080532b2 01f59b52 add.w r2, r1, 0x1360
| | 0x080532b6 1346 mov r3, r2
| | 0x080532b8 ff25 movs r5, 0xff ; 255
| | 0x080532ba 4bf20104 movw r4, 0xb001
| | 0x080532be 01f59c51 add.w r1, r1, 0x1380
| | 0x080532c2 0580 strh r5, [r0]
| | 0x080532c4 4480 strh r4, [r0, 2]
| | 0x080532c6 1832 adds r2, 0x18
| | 0x080532c8 1e33 adds r3, 0x1e
| | 0x080532ca 0631 adds r1, 6
| .--> 0x080532cc 32f8025f ldrh r5, [r2, 2]!
| || 0x080532d0 2cb2 sxth r4, r5
| || 0x080532d2 ff2c cmp r4, 0xff ; 255
| ,===< 0x080532d4 09d0 beq 0x80532ea
| ||| 0x080532d6 7f2c cmp r4, 0x7f ; 127
| ||| 0x080532d8 0580 strh r5, [r0]
| ,====< 0x080532da 12dd ble 0x8053302
| |||| 0x080532dc b3f90050 ldrsh.w r5, [r3]
| |||| 0x080532e0 b3f90240 ldrsh.w r4, [r3, 2]
| |||| 0x080532e4 2c44 add r4, r5
| |||| 0x080532e6 6410 asrs r4, r4, 1
| |||| 0x080532e8 4480 strh r4, [r0, 2]
| |`---> 0x080532ea 0433 adds r3, 4
| | || 0x080532ec 8b42 cmp r3, r1
| | `==< 0x080532ee edd1 bne 0x80532cc
| | | 0x080532f0 0388 ldrh r3, [r0]
| | | 0x080532f2 4288 ldrh r2, [r0, 2]
| | | 0x080532f4 19b2 sxth r1, r3
| | | 0x080532f6 12b2 sxth r2, r2
| | | 0x080532f8 0230 adds r0, 2
| | | 0x080532fa 04f0c7fd bl func_57e8c
| | | 0x080532fe 00b2 sxth r0, r0
\ | | 0x08053300 38bd pop {r3, r4, r5, pc}
/ (fcn) func_5332c 26
| Caller: Start_2_more_tasks__init_vocoder_tasks__Q
| func_5332c ();
| 0x0805332c 2de9f843 push.w {r3, r4, r5, r6, r7, r8, sb, lr}
| 0x08053330 0f46 mov r7, r1
| 0x08053332 0446 mov r4, r0
| ,=< 0x08053334 4ab9 cbnz r2, 0x805334a
| | 0x08053336 04f59c51 add.w r1, r4, 0x1380
| | 0x0805333a 3846 mov r0, r7
| | 0x0805333c 04f6bc22 addw r2, r4, 0xabc
| | 0x08053340 0a31 adds r1, 0xa
\ | 0x08053342 bde8f843 pop.w {r3, r4, r5, r6, r7, r8, sb, lr}
/ (fcn) func_53574 22
| Caller: Start_2_more_tasks__init_vocoder_tasks__Q
| func_53574 ();
| 0x08053574 38b5 push {r3, r4, r5, lr}
| 0x08053576 2222 movs r2, 0x22 ; '"' ; 34
| 0x08053578 0c46 mov r4, r1
| 0x0805357a 0546 mov r5, r0
| 0x0805357c 0021 movs r1, 0
| 0x0805357e 02f089fa bl ambe_55a94
| 0x08053582 2846 mov r0, r5
| 0x08053584 2146 mov r1, r4
\ 0x08053586 bde83840 pop.w {r3, r4, r5, lr}
/ (fcn) func_53590 24
| Caller: ambe_4a88e_calls_encode
| func_53590 ();
| 0x08053590 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x08053594 1c46 mov r4, r3
| 0x08053596 b3f94230 ldrsh.w r3, [r3, 0x42]
| 0x0805359a a5b0 sub sp, 0x94
| ,=< 0x0805359c 23b9 cbnz r3, 0x80535a8
| | 0x0805359e b4f93400 ldrsh.w r0, [r4, 0x34]
| | 0x080535a2 25b0 add sp, 0x94
\ | 0x080535a4 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_53720 14
| func_53720 ();
| 0x08053720 08b5 push {r3, lr}
| 0x08053722 00f2a470 addw r0, r0, 0x7a4
| 0x08053726 03f0c5fe bl func_574b4
| 0x0805372a 00b2 sxth r0, r0
\ 0x0805372c 08bd pop {r3, pc}
/ (fcn) func_53730 42
| Caller: func_53778 Start_2_more_tasks__init_vocoder_tasks__Q
| func_53730 ();
| 0x08053730 70b5 push {r4, r5, r6, lr}
| 0x08053732 0546 mov r5, r0
| 0x08053734 0846 mov r0, r1
| 0x08053736 0c46 mov r4, r1
| 0x08053738 1646 mov r6, r2
| 0x0805373a 04f08ff9 bl func_57a5c
| 0x0805373e 0428 cmp r0, 4 ; 4
| ,=< 0x08053740 08bf it eq
| `-> 0x08053742 2024 movs r4, 0x20 ; 32
| 0x08053744 a5f8a047 strh.w r4, [r5, 0x7a0]
| 0x08053748 2146 mov r1, r4
| 0x0805374a 05f2a270 addw r0, r5, 0x7a2
| 0x0805374e 3246 mov r2, r6
| 0x08053750 04f058fb bl func_57e04
| 0x08053754 4ff48040 mov.w r0, 0x4000
\ 0x08053758 70bd pop {r4, r5, r6, pc}
/ (fcn) func_5375c 18
| func_5375c ();
| 0x0805375c 08b5 push {r3, lr}
| 0x0805375e 01f27442 addw r2, r1, 0x474
| 0x08053762 0123 movs r3, 1 ; 1
| 0x08053764 811c adds r1, r0, 2
| 0x08053766 05f045f8 bl func_587f4
| 0x0805376a 00b2 sxth r0, r0
\ 0x0805376c 08bd pop {r3, pc}
/ (fcn) func_53778 112
| Caller: Start_2_more_tasks__init_vocoder_tasks__Q
| func_53778 ();
| 0x08053778 70b5 push {r4, r5, r6, lr}
| 0x0805377a 40f2f632 movw r2, 0x3f6 ; 1014
| 0x0805377e 0546 mov r5, r0
| 0x08053780 0e46 mov r6, r1
| 0x08053782 0021 movs r1, 0
| 0x08053784 02f086f9 bl ambe_55a94
| 0x08053788 41f69443 movw r3, 0x1c94
| 0x0805378c 4ff6e272 movw r2, 0xffe2
| 0x08053790 a5f8c237 strh.w r3, [r5, 0x7c2]
| 0x08053794 2021 movs r1, 0x20 ; 32
| 0x08053796 a5f8c627 strh.w r2, [r5, 0x7c6]
| 0x0805379a 2846 mov r0, r5
| 0x0805379c 6ff00902 mvn r2, 9
| 0x080537a0 fff7c6ff bl func_53730
| 0x080537a4 05f27440 addw r0, r5, 0x474
| 0x080537a8 04f096fc bl func_580d8
| 0x080537ac 05f2fc40 addw r0, r5, 0x4fc
| 0x080537b0 04f092fc bl func_580d8
| 0x080537b4 b5f84c36 ldrh.w r3, [r5, 0x64c]
| 0x080537b8 05f24c62 addw r2, r5, 0x64c
| 0x080537bc 05f2f464 addw r4, r5, 0x6f4
| 0x080537c0 ad20 movs r0, 0xad ; 173
| 0x080537c2 43f21961 movw r1, 0x3619
| 0x080537c6 00bf nop
| .-> 0x080537c8 13fb0013 smlabb r3, r3, r0, r1
| | 0x080537cc 9bb2 uxth r3, r3
| | 0x080537ce 22f8023f strh r3, [r2, 2]!
| | 0x080537d2 a242 cmp r2, r4
| `=< 0x080537d4 f8d1 bne 0x80537c8
| 0x080537d6 a5f84c36 strh.w r3, [r5, 0x64c]
| 0x080537da 3046 mov r0, r6
| 0x080537dc 05f2a471 addw r1, r5, 0x7a4
| 0x080537e0 05f28452 addw r2, r5, 0x584
\ 0x080537e4 bde87040 pop.w {r4, r5, r6, lr}
/ (fcn) func_537ec 160
| Caller: ambe_encode_thing__size_not_correct
| func_537ec ();
| 0x080537ec 2de9f843 push.w {r3, r4, r5, r6, r7, r8, sb, lr}
| 0x080537f0 b0f94a90 ldrsh.w sb, [r0, 0x4a]
| 0x080537f4 b2f90030 ldrsh.w r3, [r2]
| 0x080537f8 578a ldrh r7, [r2, 0x12]
| 0x080537fa 4fea0949 lsl.w sb, sb, 0x10
| 0x080537fe 4fea034c lsl.w ip, r3, 0x10
| 0x08053802 cceb0904 rsb r4, ip, sb
| 0x08053806 240c lsrs r4, r4, 0x10
| 0x08053808 0ffa87f8 sxth.w r8, r7
| 0x0805380c 0ffa84fe sxth.w lr, r4
| 0x08053810 c8f10005 rsb.w r5, r8, 0
| 0x08053814 ae45 cmp lr, r5
| ,=< 0x08053816 03da bge 0x8053820
| | 0x08053818 7c42 rsbs r4, r7, 0
| | 0x0805381a a4b2 uxth r4, r4
| | 0x0805381c 0ffa84fe sxth.w lr, r4
| `-> 0x08053820 b0f95070 ldrsh.w r7, [r0, 0x50]
| 0x08053824 c645 cmp lr, r8
| 0x08053826 4fea0747 lsl.w r7, r7, 0x10
| ,=< 0x0805382a 2fdd ble 0x805388c
| | 0x0805382c 5689 ldrh r6, [r2, 0xa]
| | 0x0805382e b2f91410 ldrsh.w r1, [r2, 0x14]
| | 0x08053832 14fb06f5 smulbb r5, r4, r6
| | 0x08053836 0ceb4504 add.w r4, ip, r5, lsl 1
| | 0x0805383a 240c lsrs r4, r4, 0x10
| | 0x0805383c 1480 strh r4, [r2]
| | 0x0805383e 23b2 sxth r3, r4
| | 0x08053840 1489 ldrh r4, [r2, 8]
| | 0x08053842 b2f90250 ldrsh.w r5, [r2, 2]
| | 0x08053846 20b2 sxth r0, r4
| | 0x08053848 9842 cmp r0, r3
| ,==< 0x0805384a c4bf itt gt
| `--> 0x0805384c 0346 mov r3, r0
| | 0x0805384e 1480 strh r4, [r2]
| | 0x08053850 1b04 lsls r3, r3, 0x10
| | 0x08053852 9488 ldrh r4, [r2, 4]
| | 0x08053854 c3eb0545 rsb r5, r3, r5, lsl 16
| | 0x08053858 b5eb044f cmp.w r5, r4, lsl 16
| | 0x0805385c 4fea2540 asr.w r0, r5, 0x10
| ,==< 0x08053860 05dc bgt 0x805386e
| || 0x08053862 b2f90620 ldrsh.w r2, [r2, 6]
| || 0x08053866 9042 cmp r0, r2
| ,===< 0x08053868 b8bf it lt
| `---> 0x0805386a 1046 mov r0, r2
| || 0x0805386c 84b2 uxth r4, r0
| `--> 0x0805386e db1b subs r3, r3, r7
| | 0x08053870 1814 asrs r0, r3, 0x10
| | 0x08053872 8842 cmp r0, r1
| ,==< 0x08053874 07da bge 0x8053886
| || 0x08053876 0003 lsls r0, r0, 0xc
| || 0x08053878 05f002f8 bl func_58880
| || 0x0805387c 0005 lsls r0, r0, 0x14
| || 0x0805387e 10fb24f4 smultb r4, r0, r4
| || 0x08053882 c4f3cf34 ubfx r4, r4, 0xf, 0x10
| `--> 0x08053886 20b2 sxth r0, r4
\ | 0x08053888 bde8f883 pop.w {r3, r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_538f0 136
| Caller: Start_2_more_tasks__init_vocoder_tasks__Q
| func_538f0 ();
| 0x080538f0 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x080538f4 0431 adds r1, 4
| 0x080538f6 41f2a26b movw fp, 0x16a2
| 0x080538fa 41f2a46a movw sl, 0x16a4
| 0x080538fe 0902 lsls r1, r1, 8
| 0x08053900 89b2 uxth r1, r1
| 0x08053902 bdf92460 ldrsh.w r6, [sp, 0x24]
| 0x08053906 20f80b10 strh.w r1, [r0, fp]
| 0x0805390a 41f2a669 movw sb, 0x16a6
| 0x0805390e 20f80a10 strh.w r1, [r0, sl]
| 0x08053912 41f2a86b movw fp, 0x16a8
| 0x08053916 41f2aa6a movw sl, 0x16aa
| 0x0805391a 1202 lsls r2, r2, 8
| 0x0805391c 1b02 lsls r3, r3, 8
| 0x0805391e 3602 lsls r6, r6, 8
| 0x08053920 bdf93850 ldrsh.w r5, [sp, 0x38]
| 0x08053924 bdf93c40 ldrsh.w r4, [sp, 0x3c]
| 0x08053928 20f80920 strh.w r2, [r0, sb]
| 0x0805392c 41f2ac61 movw r1, 0x16ac
| 0x08053930 20f80b30 strh.w r3, [r0, fp]
| 0x08053934 41f2ae69 movw sb, 0x16ae
| 0x08053938 20f80a60 strh.w r6, [r0, sl]
| 0x0805393c 41f2b062 movw r2, 0x16b0
| 0x08053940 41f2b26b movw fp, 0x16b2
| 0x08053944 41f2b463 movw r3, 0x16b4
| 0x08053948 41f2b666 movw r6, 0x16b6
| 0x0805394c bdf92880 ldrsh.w r8, [sp, 0x28]
| 0x08053950 bdf92cc0 ldrsh.w ip, [sp, 0x2c]
| 0x08053954 bdf930e0 ldrsh.w lr, [sp, 0x30]
| 0x08053958 bdf93470 ldrsh.w r7, [sp, 0x34]
| 0x0805395c 20f80180 strh.w r8, [r0, r1]
| 0x08053960 2d02 lsls r5, r5, 8
| 0x08053962 2402 lsls r4, r4, 8
| 0x08053964 20f809c0 strh.w ip, [r0, sb]
| 0x08053968 20f802e0 strh.w lr, [r0, r2]
| 0x0805396c 20f80b70 strh.w r7, [r0, fp]
| 0x08053970 c552 strh r5, [r0, r3]
| 0x08053972 8453 strh r4, [r0, r6]
\ 0x08053974 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_53978 120
| func_53978 ();
| 0x08053978 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0805397c 41f2a26b movw fp, 0x16a2
| 0x08053980 41f2a46a movw sl, 0x16a4
| 0x08053984 41f2a669 movw sb, 0x16a6
| 0x08053988 41f2a868 movw r8, 0x16a8
| 0x0805398c 41f2b46c movw ip, 0x16b4
| 0x08053990 20f80b10 strh.w r1, [r0, fp]
| 0x08053994 41f2b66e movw lr, 0x16b6
| 0x08053998 20f80a10 strh.w r1, [r0, sl]
| 0x0805399c 41f2aa67 movw r7, 0x16aa
| 0x080539a0 41f2ac66 movw r6, 0x16ac
| 0x080539a4 41f2ae65 movw r5, 0x16ae
| 0x080539a8 41f2b064 movw r4, 0x16b0
| 0x080539ac 41f2b26b movw fp, 0x16b2
| 0x080539b0 4ff4206a mov.w sl, 0xa00 ; 2560
| 0x080539b4 20f80920 strh.w r2, [r0, sb]
| 0x080539b8 4ff4c851 mov.w r1, 0x1900
| 0x080539bc 20f80830 strh.w r3, [r0, r8]
| 0x080539c0 4ff45849 mov.w sb, 0xd800
| 0x080539c4 20f80ca0 strh.w sl, [r0, ip]
| 0x080539c8 4ff48042 mov.w r2, 0x4000
| 0x080539cc 40f6cc48 movw r8, 0xccc ; 3276
| 0x080539d0 40f23333 movw r3, 0x333 ; 819
| 0x080539d4 4ff0a30c mov.w ip, 0xa3 ; 163
| 0x080539d8 20f80e10 strh.w r1, [r0, lr]
| 0x080539dc 20f80790 strh.w sb, [r0, r7]
| 0x080539e0 8253 strh r2, [r0, r6]
| 0x080539e2 20f80580 strh.w r8, [r0, r5]
| 0x080539e6 0353 strh r3, [r0, r4]
| 0x080539e8 20f80bc0 strh.w ip, [r0, fp]
\ 0x080539ec bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_539f0 130
| func_539f0 ();
| 0x080539f0 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x080539f4 0431 adds r1, 4
| 0x080539f6 41f2a26b movw fp, 0x16a2
| 0x080539fa 41f2a46a movw sl, 0x16a4
| 0x080539fe 0902 lsls r1, r1, 8
| 0x08053a00 89b2 uxth r1, r1
| 0x08053a02 41f2a669 movw sb, 0x16a6
| 0x08053a06 41f2a868 movw r8, 0x16a8
| 0x08053a0a 41f2aa6c movw ip, 0x16aa
| 0x08053a0e 20f80b10 strh.w r1, [r0, fp]
| 0x08053a12 1202 lsls r2, r2, 8
| 0x08053a14 20f80a10 strh.w r1, [r0, sl]
| 0x08053a18 1b02 lsls r3, r3, 8
| 0x08053a1a 41f2ac6e movw lr, 0x16ac
| 0x08053a1e 41f2ae67 movw r7, 0x16ae
| 0x08053a22 41f2b066 movw r6, 0x16b0
| 0x08053a26 41f2b265 movw r5, 0x16b2
| 0x08053a2a 41f2b464 movw r4, 0x16b4
| 0x08053a2e 41f2b66b movw fp, 0x16b6
| 0x08053a32 4ff4584a mov.w sl, 0xd800
| 0x08053a36 20f80920 strh.w r2, [r0, sb]
| 0x08053a3a 4ff48041 mov.w r1, 0x4000
| 0x08053a3e 20f80830 strh.w r3, [r0, r8]
| 0x08053a42 40f6cc49 movw sb, 0xccc ; 3276
| 0x08053a46 20f80ca0 strh.w sl, [r0, ip]
| 0x08053a4a 40f23332 movw r2, 0x333 ; 819
| 0x08053a4e 4ff0a308 mov.w r8, 0xa3 ; 163
| 0x08053a52 4ff42063 mov.w r3, 0xa00 ; 2560
| 0x08053a56 4ff4c85c mov.w ip, 0x1900
| 0x08053a5a 20f80e10 strh.w r1, [r0, lr]
| 0x08053a5e 20f80790 strh.w sb, [r0, r7]
| 0x08053a62 8253 strh r2, [r0, r6]
| 0x08053a64 20f80580 strh.w r8, [r0, r5]
| 0x08053a68 0353 strh r3, [r0, r4]
| 0x08053a6a 20f80bc0 strh.w ip, [r0, fp]
\ 0x08053a6e bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_53a74 20
| Caller: ambe_4aa78 func_5245c func_524cc Start_2_more_tasks__init_vocoder_tasks__Q
| func_55706 ambe_4a9f8
| func_53a74 ();
| 0x08053a74 10b5 push {r4, lr}
| 0x08053a76 0400 movs r4, r0
| 0x08053a78 1000 movs r0, r2
| 0x08053a7a 0a00 movs r2, r1
| 0x08053a7c 0100 movs r1, r0
| 0x08053a7e 2000 movs r0, r4
| 0x08053a80 f8f780fc bl 0x804c384
| 0x08053a84 2000 movs r0, r4
\ 0x08053a86 10bd pop {r4, pc}
/ (fcn) func_53a88 14
| Caller: func_55706
| func_53a88 ();
| 0x08053a88 10b5 push {r4, lr}
| 0x08053a8a 0400 movs r4, r0
| 0x08053a8c 2000 movs r0, r4
| 0x08053a8e dff7cdf8 bl gfx_memcpy
| 0x08053a92 2000 movs r0, r4
\ 0x08053a94 10bd pop {r4, pc}
/ (fcn) func_53a98 224
| func_53a98 ();
| 0x08053a98 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08053a9c 85b0 sub sp, 0x14
| 0x08053a9e 0e46 mov r6, r1
| 0x08053aa0 0092 str r2, [sp]
| 0x08053aa2 1946 mov r1, r3
| 0x08053aa4 0390 str r0, [sp, 0xc]
| 0x08053aa6 109c ldr r4, [sp, 0x40]
| 0x08053aa8 129f ldr r7, [sp, 0x48]
| 0x08053aaa 3046 mov r0, r6
| 0x08053aac 1546 mov r5, r2
| 0x08053aae 9a46 mov sl, r3
| 0x08053ab0 0e9a ldr r2, [sp, 0x38]
| 0x08053ab2 0f9b ldr r3, [sp, 0x3c]
| 0x08053ab4 a047 blx r4
| 0x08053ab6 3068 ldr r0, [r6]
| 0x08053ab8 119b ldr r3, [sp, 0x44]
| 0x08053aba 3841 asrs r0, r7
| 0x08053abc 9847 blx r3
| 0x08053abe 0290 str r0, [sp, 8]
| ,=< 0x08053ac0 afb1 cbz r7, 0x8053aee
| | 0x08053ac2 0e9b ldr r3, [sp, 0x38]
| | 0x08053ac4 2c49 ldr r1, [0x08053b78] ; [0x8053b78:4]=0x80960a0
| | 0x08053ac6 c3f11903 rsb.w r3, r3, 0x19
| | 0x08053aca 00fa03f3 lsl.w r3, r0, r3
| | 0x08053ace d8b2 uxtb r0, r3
| | 0x08053ad0 c3f30724 ubfx r4, r3, 8, 8
| | 0x08053ad4 c3f30742 ubfx r2, r3, 0x10, 8
| | 0x08053ad8 085c ldrb r0, [r1, r0]
| | 0x08053ada 0b5d ldrb r3, [r1, r4]
| | 0x08053adc 8a5c ldrb r2, [r1, r2]
| | 0x08053ade 0344 add r3, r0
| | 0x08053ae0 1344 add r3, r2
| | 0x08053ae2 029a ldr r2, [sp, 8]
| | 0x08053ae4 03f00103 and r3, r3, 1
| | 0x08053ae8 43ea4203 orr.w r3, r3, r2, lsl 1
| | 0x08053aec 0293 str r3, [sp, 8]
| `-> 0x08053aee 029c ldr r4, [sp, 8]
| 0x08053af0 0f9b ldr r3, [sp, 0x3c]
| 0x08053af2 0e9a ldr r2, [sp, 0x38]
| 0x08053af4 2046 mov r0, r4
| 0x08053af6 5146 mov r1, sl
| 0x08053af8 05f0c2fa bl func_59080
| 0x08053afc 0f9b ldr r3, [sp, 0x3c]
| 0x08053afe 012b cmp r3, 1 ; 1
| 0x08053b00 8046 mov r8, r0
| ,=< 0x08053b02 32dd ble 0x8053b6a
| | 0x08053b04 3368 ldr r3, [r6]
| | 0x08053b06 a342 cmp r3, r4
| ,==< 0x08053b08 2fd0 beq 0x8053b6a
| || 0x08053b0a 0e9b ldr r3, [sp, 0x38]
| || 0x08053b0c dff86890 ldr.w sb, [func_53b7c] ; [0x8053b7c:4]=0x4604b510
| || 0x08053b10 c3f11903 rsb.w r3, r3, 0x19
| || 0x08053b14 0436 adds r6, 4
| || 0x08053b16 013d subs r5, 1
| || 0x08053b18 1c46 mov r4, r3
| || 0x08053b1a 00bf nop
| .---> 0x08053b1c 56f8040b ldr r0, [r6], 4
| ||| 0x08053b20 119b ldr r3, [sp, 0x44]
| ||| 0x08053b22 3841 asrs r0, r7
| ||| 0x08053b24 9847 blx r3
| ||| 0x08053b26 8346 mov fp, r0
| ||| 0x08053b28 a040 lsls r0, r4
| ||| 0x08053b2a 5ffa80fc uxtb.w ip, r0
| ||| 0x08053b2e c0f3072e ubfx lr, r0, 8, 8
| ||| 0x08053b32 5146 mov r1, sl
| ||| 0x08053b34 c0f30740 ubfx r0, r0, 0x10, 8
| ||| 0x08053b38 0e9a ldr r2, [sp, 0x38]
| ||| 0x08053b3a 0f9b ldr r3, [sp, 0x3c]
| ,====< 0x08053b3c 5fb1 cbz r7, 0x8053b56
| |||| 0x08053b3e 19f80cc0 ldrb.w ip, [sb, ip]
| |||| 0x08053b42 19f80ee0 ldrb.w lr, [sb, lr]
| |||| 0x08053b46 19f80000 ldrb.w r0, [sb, r0]
| |||| 0x08053b4a e644 add lr, ip
| |||| 0x08053b4c 7044 add r0, lr
| |||| 0x08053b4e 00f00100 and r0, r0, 1
| |||| 0x08053b52 40ea4b0b orr.w fp, r0, fp, lsl 1
| `----> 0x08053b56 5846 mov r0, fp
| ||| 0x08053b58 05f092fa bl func_59080
| ||| 0x08053b5c 8045 cmp r8, r0
| ,====< 0x08053b5e c4bf itt gt
| `----> 0x08053b60 8046 mov r8, r0
| ||| 0x08053b62 cdf808b0 str.w fp, [sp, 8]
| ||| 0x08053b66 013d subs r5, 1
| `===< 0x08053b68 d8d1 bne 0x8053b1c
| ``-> 0x08053b6a 039b ldr r3, [sp, 0xc]
| 0x08053b6c 0298 ldr r0, [sp, 8]
| 0x08053b6e c3f80080 str.w r8, [r3]
| 0x08053b72 05b0 add sp, 0x14
\ 0x08053b74 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_53b7c 48
| Caller: func_53c20
| func_53b7c ();
| 0x08053b7c 10b5 push {r4, lr}
| 0x08053b7e 0446 mov r4, r0
| 0x08053b80 0804 lsls r0, r1, 0x10
| 0x08053b82 1146 mov r1, r2
| 0x08053b84 04f07cfe bl func_58880
| 0x08053b88 46f26663 movw r3, 0x6666
| 0x08053b8c 80b2 uxth r0, r0
| 0x08053b8e 10fb03f3 smulbb r3, r0, r3
| 0x08053b92 47f69a10 movw r0, 0x799a
| 0x08053b96 5a10 asrs r2, r3, 1
| 0x08053b98 14fb00f3 smulbb r3, r4, r0
| 0x08053b9c 4ff40040 mov.w r0, 0x8000
| 0x08053ba0 83fa92f3 qdadd r3, r2, r3
| 0x08053ba4 83fa80f0 qadd r0, r0, r3
| 0x08053ba8 0014 asrs r0, r0, 0x10
\ 0x08053baa 10bd pop {r4, pc}
/ (fcn) func_53bac 74
| Caller: func_53c20
| func_53bac ();
| 0x08053bac 2de9f843 push.w {r3, r4, r5, r6, r7, r8, sb, lr}
| 0x08053bb0 0346 mov r3, r0
| ,=< 0x08053bb2 02bb cbnz r2, 0x8053bf6
| | 0x08053bb4 0027 movs r7, 0
| | 0x08053bb6 07f00f08 and r8, r7, 0xf
| | 0x08053bba 4ff00009 mov.w sb, 0
| | 0x08053bbe bfb2 uxth r7, r7
| | 0x08053bc0 09f1ff35 add.w r5, sb, -1
| | 0x08053bc4 adb2 uxth r5, r5
| | 0x08053bc6 06eb4505 add.w r5, r6, r5, lsl 1
| | 0x08053bca b41e subs r4, r6, 2
| .--> 0x08053bcc 34f9020f ldrsh r0, [r4, 2]!
| || 0x08053bd0 1946 mov r1, r3
| || 0x08053bd2 1022 movs r2, 0x10 ; 16
| || 0x08053bd4 04f0b0f9 bl func_57f38
| || 0x08053bd8 ac42 cmp r4, r5
| || 0x08053bda 0346 mov r3, r0
| `==< 0x08053bdc f6d1 bne 0x8053bcc
| | 0x08053bde b8f1000f cmp.w r8, 0
| ,==< 0x08053be2 05d0 beq 0x8053bf0
| || 0x08053be4 36f91900 ldrsh.w r0, [r6, sb, lsl 1]
| || 0x08053be8 1946 mov r1, r3
| || 0x08053bea 4246 mov r2, r8
| || 0x08053bec 04f0a4f9 bl func_57f38
| `--> 0x08053bf0 3846 mov r0, r7
\ | 0x08053bf2 bde8f883 pop.w {r3, r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_53c20 260
| func_53c20 ();
| 0x08053c20 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08053c24 adf5337d sub.w sp, sp, 0x2cc
| 0x08053c28 0025 movs r5, 0
| 0x08053c2a bd9c ldr r4, [sp, 0x2f4]
| 0x08053c2c bdf9f062 ldrsh.w r6, [sp, 0x2f0]
| 0x08053c30 0d90 str r0, [sp, 0x34]
| 0x08053c32 0891 str r1, [sp, 0x20]
| 0x08053c34 2586 strh r5, [r4, 0x30]
| 0x08053c36 2946 mov r1, r5
| 0x08053c38 e561 str r5, [r4, 0x1c]
| 0x08053c3a 1746 mov r7, r2
| 0x08053c3c 04f12200 add.w r0, r4, 0x22
| 0x08053c40 0722 movs r2, 7 ; 7
| 0x08053c42 0c93 str r3, [sp, 0x30]
| 0x08053c44 01f026ff bl ambe_55a94
| 0x08053c48 2946 mov r1, r5
| 0x08053c4a 2046 mov r0, r4
| 0x08053c4c 0e22 movs r2, 0xe ; 14
| 0x08053c4e 01f021ff bl ambe_55a94
| 0x08053c52 16f00c05 ands r5, r6, 0xc
| ,=< 0x08053c56 40f0f381 bne.w 0x8054040
| | 0x08053c5a b4f84220 ldrh.w r2, [r4, 0x42]
| | 0x08053c5e 089b ldr r3, [sp, 0x20]
| | 0x08053c60 002a cmp r2, 0
| ,==< 0x08053c62 08bf it eq
| `--> 0x08053c64 0023 movs r3, 0
| | 0x08053c66 12b2 sxth r2, r2
| | 0x08053c68 22a8 add r0, sp, 0x88
| | 0x08053c6a 2946 mov r1, r5
| | 0x08053c6c 0893 str r3, [sp, 0x20]
| | 0x08053c6e fff79dff bl func_53bac
| | 0x08053c72 0c9b ldr r3, [sp, 0x30]
| | 0x08053c74 0126 movs r6, 1 ; 1
| | 0x08053c76 9e40 lsls r6, r3
| | 0x08053c78 013e subs r6, 1
| | 0x08053c7a b0f10008 subs.w r8, r0, 0
| | 0x08053c7e 1ffa86f9 uxth.w sb, r6
| ,==< 0x08053c82 4fdd ble 0x8053d24
| || 0x08053c84 2946 mov r1, r5
| || 0x08053c86 4fea480b lsl.w fp, r8, 1
| || 0x08053c8a 22ad add r5, sp, 0x88
| || 0x08053c8c 8c46 mov ip, r1
| || 0x08053c8e 8e46 mov lr, r1
| || 0x08053c90 07eb0b0a add.w sl, r7, fp
| || 0x08053c94 3846 mov r0, r7
| || 0x08053c96 00bf nop
| .---> 0x08053c98 30f8022b ldrh r2, [r0], 2
| ||| 0x08053c9c 35f8023b ldrh r3, [r5], 2
| ||| 0x08053ca0 c9eb4202 rsb r2, sb, r2, lsl 1
| ||| 0x08053ca4 5b00 lsls r3, r3, 1
| ||| 0x08053ca6 92b2 uxth r2, r2
| ||| 0x08053ca8 013b subs r3, 1
| ||| 0x08053caa 12fb03f3 smulbb r3, r2, r3
| ||| 0x08053cae 002b cmp r3, 0
| ,====< 0x08053cb0 b8bf it lt
| `----> 0x08053cb2 0131 adds r1, 1
| ||| 0x08053cb4 5045 cmp r0, sl
| ||| 0x08053cb6 9c44 add ip, r3
| ||| 0x08053cb8 12fb02ee smlabb lr, r2, r2, lr
| `===< 0x08053cbc ecd1 bne 0x8053c98
| || 0x08053cbe c344 add fp, r8
| || 0x08053cc0 4bf30f1b sbfx fp, fp, 4, 0x10
| || 0x08053cc4 4fea6e0e asr.w lr, lr, 1
| || 0x08053cc8 ccf34f03 ubfx r3, ip, 1, 0x10
| || 0x08053ccc bcf1000f cmp.w ip, 0
| || 0x08053cd0 0bfb0efe mul lr, fp, lr
| || 0x08053cd4 2186 strh r1, [r4, 0x30]
| || 0x08053cd6 13fb03f3 smulbb r3, r3, r3
| ,===< 0x08053cda 25dd ble 0x8053d28
| ||| 0x08053cdc 9e45 cmp lr, r3
| ,====< 0x08053cde 23da bge 0x8053d28
| |||| 0x08053ce0 1423 movs r3, 0x14 ; 20
| |||| 0x08053ce2 6386 strh r3, [r4, 0x32]
| |||| 0x08053ce4 0121 movs r1, 1 ; 1
| |||| 0x08053ce6 b4f94220 ldrsh.w r2, [r4, 0x42]
| |||| 0x08053cea 0d98 ldr r0, [sp, 0x34]
| |||| 0x08053cec fff75eff bl func_53bac
| |||| 0x08053cf0 4246 mov r2, r8
| |||| 0x08053cf2 b4f92000 ldrsh.w r0, [r4, 0x20]
| |||| 0x08053cf6 b4f93010 ldrsh.w r1, [r4, 0x30]
| |||| 0x08053cfa fff73fff bl func_53b7c
| |||| 0x08053cfe 2084 strh r0, [r4, 0x20]
| |||| 0x08053d00 638e ldrh r3, [r4, 0x32]
| |||| 0x08053d02 0c9a ldr r2, [sp, 0x30]
| |||| 0x08053d04 012a cmp r2, 1 ; 1
| |||| 0x08053d06 43f65812 movw r2, 0x3958
| ,=====< 0x08053d0a 40f38781 ble.w 0x805401c
| ||||| 0x08053d0e 00b2 sxth r0, r0
| ||||| 0x08053d10 8242 cmp r2, r0
| ,======< 0x08053d12 02da bge 0x8053d1a
| |||||| 0x08053d14 43f00803 orr r3, r3, 8
| |||||| 0x08053d18 6386 strh r3, [r4, 0x32]
| `------> 0x08053d1a 18b2 sxth r0, r3
| ||||| 0x08053d1c 0df5337d add.w sp, sp, 0x2cc
\ ||||| 0x08053d20 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_54110 58
| func_54110 ();
| | 0x08054110 d0bd pop {r4, r6, r7, pc}
| | 0x08054112 0f08 lsrs r7, r1, 0x20
| | 0x08054114 90fc0100 ldc2 p0, c0, [r0], {1}
| `=< 0x08054118 90dc bgt 0x805403c
| 0x0805411a 0100 movs r1, r0
| 0x0805411c 38b5 push {r3, r4, r5, lr}
| 0x0805411e 0d46 mov r5, r1
| 0x08054120 0446 mov r4, r0
| 0x08054122 0e22 movs r2, 0xe ; 14
| 0x08054124 01f082fc bl func_55a2c
| 0x08054128 ea69 ldr r2, [r5, 0x1c]
| 0x0805412a 2b8c ldrh r3, [r5, 0x20]
| 0x0805412c 2384 strh r3, [r4, 0x20]
| 0x0805412e e261 str r2, [r4, 0x1c]
| 0x08054130 04f12200 add.w r0, r4, 0x22
| 0x08054134 05f12201 add.w r1, r5, 0x22
| 0x08054138 0722 movs r2, 7 ; 7
| 0x0805413a 01f077fc bl func_55a2c
| 0x0805413e 2a8e ldrh r2, [r5, 0x30]
| 0x08054140 6b8e ldrh r3, [r5, 0x32]
| 0x08054142 6386 strh r3, [r4, 0x32]
| 0x08054144 2286 strh r2, [r4, 0x30]
| 0x08054146 0020 movs r0, 0
\ 0x08054148 38bd pop {r3, r4, r5, pc}
/ (fcn) func_5414c 60
| Caller: gfx_4b994
| func_5414c ();
| 0x0805414c f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x0805414e 0c00 movs r4, r1
| 0x08054150 1500 movs r5, r2
| 0x08054152 00b2 sxth r0, r0
| 0x08054154 def786fc bl gfx_draw_sub_32a64
| 0x08054158 b0f91860 ldrsh.w r6, [r0, 0x18]
| ,=< 0x0805415c 10e0 b 0x8054180
| .--> 0x0805415e 3000 movs r0, r6
| || 0x08054160 00b2 sxth r0, r0
| || 0x08054162 def77ffc bl gfx_draw_sub_32a64
| || 0x08054166 0700 movs r7, r0
| || 0x08054168 2900 movs r1, r5
| || 0x0805416a 3000 movs r0, r6
| || 0x0805416c 00b2 sxth r0, r0
| || 0x0805416e a047 blx r4
| || 0x08054170 2a00 movs r2, r5
| || 0x08054172 2100 movs r1, r4
| || 0x08054174 3000 movs r0, r6
| || 0x08054176 00b2 sxth r0, r0
| || 0x08054178 f7f70cfc bl gfx_4b994
| || 0x0805417c b7f91a60 ldrsh.w r6, [r7, 0x1a]
| |`-> 0x08054180 36b2 sxth r6, r6
| | 0x08054182 002e cmp r6, 0
| `==< 0x08054184 ebd1 bne 0x805415e
\ 0x08054186 f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) func_54188 38
| func_54188 ();
| 0x08054188 38b5 push {r3, r4, r5, lr}
| 0x0805418a 0c00 movs r4, r1
| 0x0805418c 0025 movs r5, 0
| 0x0805418e 00b2 sxth r0, r0
| 0x08054190 0028 cmp r0, 0
| ,=< 0x08054192 0ad0 beq 0x80541aa
| | 0x08054194 00b2 sxth r0, r0
| | 0x08054196 def765fc bl gfx_draw_sub_32a64
| | 0x0805419a 0028 cmp r0, 0
| ,==< 0x0805419c 05d0 beq 0x80541aa
| || 0x0805419e b0f91600 ldrsh.w r0, [r0, 0x16]
| || 0x080541a2 24b2 sxth r4, r4
| || 0x080541a4 a042 cmp r0, r4
| ,===< 0x080541a6 00d1 bne 0x80541aa
| ||| 0x080541a8 0125 movs r5, 1 ; 1
| ```-> 0x080541aa 2800 movs r0, r5
\ 0x080541ac 32bd pop {r1, r4, r5, pc}
/ (fcn) func_541ae 226
| Caller: func_4c344 func_4bb2c func_4c304
| func_541ae ();
| 0x080541ae f0b5 push {r4, r5, r6, r7, lr}
| 0x080541b0 87b0 sub sp, 0x1c
| 0x080541b2 0400 movs r4, r0
| 0x080541b4 0f00 movs r7, r1
| 0x080541b6 1600 movs r6, r2
| 0x080541b8 56ea0700 orrs.w r0, r6, r7
| 0x080541bc 0028 cmp r0, 0
| ,=< 0x080541be 02d0 beq 0x80541c6
| | 0x080541c0 24b2 sxth r4, r4
| | 0x080541c2 002c cmp r4, 0
| ,==< 0x080541c4 00d1 bne 0x80541c8
| ,=`-> 0x080541c6 61e0 b 0x805428c
| |`--> 0x080541c8 2000 movs r0, r4
| | 0x080541ca 00b2 sxth r0, r0
| | 0x080541cc def74afc bl gfx_draw_sub_32a64
| | 0x080541d0 0500 movs r5, r0
| | 0x080541d2 03a8 add r0, sp, 0xc
| | 0x080541d4 2900 movs r1, r5
| | 0x080541d6 0822 movs r2, 8 ; 8
| | 0x080541d8 def728fd bl gfx_memcpy
| | 0x080541dc dde90301 ldrd r0, r1, [sp, 0xc]
| | 0x080541e0 cde90101 strd r0, r1, [sp, 4]
| | 0x080541e4 002f cmp r7, 0
| | ,=< 0x080541e6 0fd0 beq 0x8054208
| | | 0x080541e8 a88b ldrh r0, [r5, 0x1c]
| | | 0x080541ea 10f42070 ands r0, r0, 0x280
| | | 0x080541ee 8028 cmp r0, 0x80 ; 128
| |,==< 0x080541f0 05d1 bne 0x80541fe
| ||| 0x080541f2 bdf80400 ldrh.w r0, [sp, 4]
| ||| 0x080541f6 c01b subs r0, r0, r7
| ||| 0x080541f8 adf80400 strh.w r0, [sp, 4]
| ,====< 0x080541fc 04e0 b 0x8054208
| ||`--> 0x080541fe bdf80800 ldrh.w r0, [sp, 8]
| || | 0x08054202 3818 adds r0, r7, r0
| || | 0x08054204 adf80800 strh.w r0, [sp, 8]
| `--`-> 0x08054208 002e cmp r6, 0
| | ,=< 0x0805420a 10d0 beq 0x805422e
| | | 0x0805420c a88b ldrh r0, [r5, 0x1c]
| | | 0x0805420e 10f4a060 ands r0, r0, 0x500
| | | 0x08054212 b0f5807f cmp.w r0, 0x100 ; 256
| |,==< 0x08054216 05d1 bne 0x8054224
| ||| 0x08054218 bdf80600 ldrh.w r0, [sp, 6]
| ||| 0x0805421c 801b subs r0, r0, r6
| ||| 0x0805421e adf80600 strh.w r0, [sp, 6]
| ,====< 0x08054222 04e0 b 0x805422e
| ||`--> 0x08054224 bdf80a00 ldrh.w r0, [sp, 0xa]
| || | 0x08054228 3018 adds r0, r6, r0
| || | 0x0805422a adf80a00 strh.w r0, [sp, 0xa]
| `--`-> 0x0805422e 01aa add r2, sp, 4
| | 0x08054230 03a9 add r1, sp, 0xc
| | 0x08054232 05a8 add r0, sp, 0x14
| | 0x08054234 def7bbfc bl gfx_32bae
| | 0x08054238 2800 movs r0, r5
| | 0x0805423a 01a9 add r1, sp, 4
| | 0x0805423c 0822 movs r2, 8 ; 8
| | 0x0805423e def7f5fc bl gfx_memcpy
| | 0x08054242 05a8 add r0, sp, 0x14
| | 0x08054244 c8f7fcfa bl gfx_1c840
| | 0x08054248 bdf90a00 ldrsh.w r0, [sp, 0xa]
| | 0x0805424c bdf91210 ldrsh.w r1, [sp, 0x12]
| | 0x08054250 401a subs r0, r0, r1
| | 0x08054252 0090 str r0, [sp]
| | 0x08054254 bdf90800 ldrsh.w r0, [sp, 8]
| | 0x08054258 bdf91010 ldrsh.w r1, [sp, 0x10]
| | 0x0805425c 431a subs r3, r0, r1
| | 0x0805425e bdf90600 ldrsh.w r0, [sp, 6]
| | 0x08054262 bdf90e10 ldrsh.w r1, [sp, 0xe]
| | 0x08054266 421a subs r2, r0, r1
| | 0x08054268 bdf90400 ldrsh.w r0, [sp, 4]
| | 0x0805426c bdf90c10 ldrsh.w r1, [sp, 0xc]
| | 0x08054270 411a subs r1, r0, r1
| | 0x08054272 2800 movs r0, r5
| | 0x08054274 f7f75afc bl func_4bb2c
| | 0x08054278 2900 movs r1, r5
| | 0x0805427a 15f10800 adds.w r0, r5, 8
| | 0x0805427e def723fd bl gfx_IntersectRect
| | 0x08054282 0521 movs r1, 5 ; 5
| | 0x08054284 2000 movs r0, r4
| | 0x08054286 00b2 sxth r0, r0
| | 0x08054288 c8f779fa bl gfx_1c77e
| `---> 0x0805428c 07b0 add sp, 0x1c
\ 0x0805428e f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) func_54290 68
| Caller: func_4c278
| func_54290 ();
| 0x08054290 80b5 push {r7, lr}
| 0x08054292 104b ldr r3, [0x080542d6] ; [0x80542d4:4]=0x2001da1c gfx_info
| 0x08054294 b3f90430 ldrsh.w r3, [r3, 4]
| 0x08054298 9842 cmp r0, r3
| ,=< 0x0805429a 1adb blt 0x80542d2
| | 0x0805429c 0d4b ldr r3, [0x080542d4] ; [0x80542d4:4]=0x2001da1c gfx_info
| | 0x0805429e b3f90830 ldrsh.w r3, [r3, 8]
| | 0x080542a2 8342 cmp r3, r0
| ,==< 0x080542a4 15db blt 0x80542d2
| || 0x080542a6 0b4b ldr r3, [0x080542d6] ; [0x80542d4:4]=0x2001da1c gfx_info
| || 0x080542a8 b3f90630 ldrsh.w r3, [r3, 6]
| || 0x080542ac 9942 cmp r1, r3
| ,===< 0x080542ae 02da bge 0x80542b6
| ||| 0x080542b0 0849 ldr r1, [0x080542d4] ; [0x80542d4:4]=0x2001da1c gfx_info
| ||| 0x080542b2 b1f90610 ldrsh.w r1, [r1, 6]
| `---> 0x080542b6 074b ldr r3, [0x080542d6] ; [0x80542d4:4]=0x2001da1c gfx_info
| || 0x080542b8 b3f90a30 ldrsh.w r3, [r3, 0xa]
| || 0x080542bc 9342 cmp r3, r2
| ,===< 0x080542be 02da bge 0x80542c6
| ||| 0x080542c0 044a ldr r2, [0x080542d4] ; [0x80542d4:4]=0x2001da1c gfx_info
| ||| 0x080542c2 b2f90a20 ldrsh.w r2, [r2, 0xa]
| `---> 0x080542c6 8a42 cmp r2, r1
| ,===< 0x080542c8 03db blt 0x80542d2
| ||| 0x080542ca 024b ldr r3, [0x080542d6] ; [0x80542d4:4]=0x2001da1c gfx_info
| ||| 0x080542cc 9b6c ldr r3, [r3, 0x48]
| ||| 0x080542ce 5b69 ldr r3, [r3, 0x14]
| ||| 0x080542d0 9847 blx r3
\ ```-> 0x080542d2 01bd pop {r0, pc}
/ (fcn) func_542d8 48
| Caller: func_4c2fa
| func_542d8 ();
| 0x080542d8 3eb5 push {r1, r2, r3, r4, r5, lr}
| 0x080542da 0500 movs r5, r0
| 0x080542dc 0c00 movs r4, r1
| 0x080542de 00a8 add r0, sp, 0
| 0x080542e0 0021 movs r1, 0
| 0x080542e2 0022 movs r2, 0
| 0x080542e4 0023 movs r3, 0
| 0x080542e6 0ec0 stm r0!, {r1, r2, r3}
| 0x080542e8 0c38 subs r0, 0xc
| 0x080542ea 2800 movs r0, r5
| 0x080542ec 00b2 sxth r0, r0
| 0x080542ee def7b9fb bl gfx_draw_sub_32a64
| 0x080542f2 0100 movs r1, r0
| 0x080542f4 0869 ldr r0, [r1, 0x10]
| 0x080542f6 0028 cmp r0, 0
| ,=< 0x080542f8 05d0 beq 0x8054306
| | 0x080542fa adf80450 strh.w r5, [sp, 4]
| | 0x080542fe 0094 str r4, [sp]
| | 0x08054300 00a8 add r0, sp, 0
| | 0x08054302 0969 ldr r1, [r1, 0x10]
| | 0x08054304 8847 blx r1
\ `-> 0x08054306 37bd pop {r0, r1, r2, r4, r5, pc}
/ (fcn) func_54308 28
| Caller: func_4cf80
| func_54308 ();
| 0x08054308 0100 movs r1, r0
| 0x0805430a 00bf nop
| ,=< 0x0805430c 09d0 beq 0x8054322
| | 0x0805430e b0fa80f1 clz r1, r0
| | 0x08054312 8840 lsls r0, r1
| | 0x08054314 c91c adds r1, r1, 3
| | 0x08054316 c1f58461 rsb.w r1, r1, 0x420
| | 0x0805431a 0905 lsls r1, r1, 0x14
| | 0x0805431c 01ebd021 add.w r1, r1, r0, lsr 11
| | 0x08054320 4005 lsls r0, r0, 0x15
\ `-> 0x08054322 7047 bx lr
/ (fcn) func_54324_lots_of_arithmetics 418
| Caller: func_4cf80
| func_54324_lots_of_arithmetics ();
| 0x08054324 b0b5 push {r4, r5, r7, lr}
| 0x08054326 81ea030c eor.w ip, r1, r3
| 0x0805432a 0cf0004c and ip, ip, 0x80000000
| 0x0805432e 40f2ff75 movw r5, 0x7ff ; 2047
| 0x08054332 15ea1154 ands.w r4, r5, r1, lsr 20
| ,=< 0x08054336 1dbf ittte ne
| `-> 0x08054338 15ea1357 ands.w r7, r5, r3, lsr 20
| 0x0805433c ac42 cmp r4, r5
| 0x0805433e af42 cmp r7, r5
| ,=< 0x08054340 39e0 b 0x80543b6
| | 0x08054342 e419 adds r4, r4, r7
| | 0x08054344 23ea4553 bic.w r3, r3, r5, lsl 21
| | 0x08054348 43f48013 orr r3, r3, 0x100000
| .--> 0x0805434c c902 lsls r1, r1, 0xb
| || 0x0805434e 41f00041 orr r1, r1, 0x80000000
| || 0x08054352 41ea505e orr.w lr, r1, r0, lsr 21
| || 0x08054356 c702 lsls r7, r0, 0xb
| .---> 0x08054358 1100 movs r1, r2
| ||| 0x0805435a a7fb0202 umull r0, r2, r7, r2
| ||| 0x0805435e 0028 cmp r0, 0
| ||| 0x08054360 4ff00000 mov.w r0, 0
| ||| 0x08054364 eefb0120 umlal r2, r0, lr, r1
| ||| 0x08054368 4ff00001 mov.w r1, 0
| ||| 0x0805436c e3fb0721 umlal r2, r1, r3, r7
| ,====< 0x08054370 18bf it ne
| `----> 0x08054372 42f00102 orr r2, r2, 1
| ||| 0x08054376 4018 adds r0, r0, r1
| ||| 0x08054378 0021 movs r1, 0
| ||| 0x0805437a 4941 adcs r1, r1
| ||| 0x0805437c e3fb0e01 umlal r0, r1, r3, lr
| ||| 0x08054380 a4f58064 sub.w r4, r4, 0x400
| ||| 0x08054384 0f03 lsls r7, r1, 0xc
| ,====< 0x08054386 02d2 bhs 0x805438e
| |||| 0x08054388 5200 lsls r2, r2, 1
| |||| 0x0805438a 4041 adcs r0, r0
| |||| 0x0805438c 4941 adcs r1, r1
| `----> 0x0805438e 54f10104 adcs r4, r4, 1
| ,====< 0x08054392 6cdd ble 0x805446e
| |||| 0x08054394 4708 lsrs r7, r0, 1
| |||| 0x08054396 72f10042 sbcs r2, r2, -0x80000000
| |||| 0x0805439a 50f10000 adcs r0, r0, 0
| |||| 0x0805439e 51eb0451 adcs.w r1, r1, r4, lsl 20
| |||| 0x080543a2 a1f58011 sub.w r1, r1, 0x100000
| ,=====< 0x080543a6 5cbf itt pl
| `-----> 0x080543a8 41ea0c01 orr.w r1, r1, ip
| |||| 0x080543ac b0bd pop {r4, r5, r7, pc}
| |||| 0x080543ae 4cea0551 orr.w r1, ip, r5, lsl 20
| |||| 0x080543b2 0020 movs r0, 0
| |||| 0x080543b4 b0bd pop {r4, r5, r7, pc}
| |||`-> 0x080543b6 05ea1357 and.w r7, r5, r3, lsr 20
| ||| 0x080543ba ac42 cmp r4, r5
| |||,=< 0x080543bc 14bf ite ne
| |||`-> 0x080543be af42 cmp r7, r5
| |||,=< 0x080543c0 41e0 b 0x8054446
| |||| 0x080543c2 50ea410e orrs.w lr, r0, r1, lsl 1
| ,=====< 0x080543c6 1cbf itt ne
| `-----> 0x080543c8 52ea430e orrs.w lr, r2, r3, lsl 1
| ,=====< 0x080543cc 02e0 b 0x80543d4
| ..------> 0x080543ce 6146 mov r1, ip
| ||||||| 0x080543d0 0020 movs r0, 0
| --------> 0x080543d2 b0bd pop {r4, r5, r7, pc}
| ||`-----> 0x080543d4 2442 tst r4, r4
| || |||| 0x080543d6 3c44 add r4, r7
| ||,=====< 0x080543d8 1bd1 bne 0x8054412
| ||||||| 0x080543da 5fea070e movs.w lr, r7
| `=======< 0x080543de f6d0 beq 0x80543ce
| |||||| 0x080543e0 0903 lsls r1, r1, 0xc
| ,=======< 0x080543e2 02bf ittt eq
| `-------> 0x080543e4 0146 mov r1, r0
| |||||| 0x080543e6 0020 movs r0, 0
| |||||| 0x080543e8 aef1140e sub.w lr, lr, 0x14
| |||||| 0x080543ec b1fa81f7 clz r7, r1
| |||||| 0x080543f0 aeeb0704 sub.w r4, lr, r7
| |||||| 0x080543f4 01fa07fe lsl.w lr, r1, r7
| |||||| 0x080543f8 0c37 adds r7, 0xc
| |||||| 0x080543fa c7f12001 rsb.w r1, r7, 0x20
| |||||| 0x080543fe 00fa07f7 lsl.w r7, r0, r7
| |||||| 0x08054402 c840 lsrs r0, r1
| |||||| 0x08054404 4eea000e orr.w lr, lr, r0
| |||||| 0x08054408 23ea4553 bic.w r3, r3, r5, lsl 21
| |||||| 0x0805440c 43f48013 orr r3, r3, 0x100000
| |||`===< 0x08054410 a2e7 b 0x8054358
| |`-----> 0x08054412 33f00043 bics r3, r3, 0x80000000
| | | || 0x08054416 b3fa83f7 clz r7, r3
| | |,===< 0x0805441a 04bf itt eq
| | |`---> 0x0805441c b2fa82fe clz lr, r2
| | | || 0x08054420 7744 add r7, lr
| | | || 0x08054422 0b3f subs r7, 0xb
| | | || 0x08054424 e41b subs r4, r4, r7
| | | || 0x08054426 b7f1200e subs.w lr, r7, 0x20
| | |,===< 0x0805442a 2fbf iteee hs
| | |`---> 0x0805442c 02fa0ef3 lsl.w r3, r2, lr
| | | || 0x08054430 bb40 lsls r3, r7
| | | || 0x08054432 c7f1200e rsb.w lr, r7, 0x20
| | | || 0x08054436 22fa0efe lsr.w lr, r2, lr
| | |,===< 0x0805443a 38bf it lo
| | |`---> 0x0805443c 43ea0e03 orr.w r3, r3, lr
| | | || 0x08054440 ba40 lsls r2, r7
| | | || 0x08054442 641c adds r4, r4, 1
| | | `==< 0x08054444 82e7 b 0x805434c
| | | `-> 0x08054446 50ea410e orrs.w lr, r0, r1, lsl 1
| | | ,=< 0x0805444a 14bf ite ne
| | | `-> 0x0805444c 52ea430e orrs.w lr, r2, r3, lsl 1
| | | 0x08054450 6ff00001 mvn r1, 0
| | | 0x08054454 4ff40017 mov.w r7, 0x200000
| | | 0x08054458 17eb430f cmn.w r7, r3, lsl 1
| | | ,=< 0x0805445c 8abf itet hi
| | | `-> 0x0805445e 1946 mov r1, r3
| | | 0x08054460 17eb410f cmn.w r7, r1, lsl 1
| ========< 0x08054464 b5e7 b 0x80543d2
| | | 0x08054466 4cea0551 orr.w r1, ip, r5, lsl 20
| | | 0x0805446a 0020 movs r0, 0
| | | 0x0805446c b0bd pop {r4, r5, r7, pc}
| | `----> 0x0805446e d4f10104 rsbs.w r4, r4, 1
| | 0x08054472 b4f12007 subs.w r7, r4, 0x20
| | ,=< 0x08054476 0fda bge 0x8054498
| | | 0x08054478 c4f12007 rsb.w r7, r4, 0x20
| | | 0x0805447c 5208 lsrs r2, r2, 1
| | ,==< 0x0805447e 28bf it hs
| | `--> 0x08054480 42f00102 orr r2, r2, 1
| | | 0x08054484 10fa07f5 lsls.w r5, r0, r7
| | | 0x08054488 01fa07f7 lsl.w r7, r1, r7
| | ,==< 0x0805448c e1bf itttt al
| | `--> 0x0805448e 2a43 orrs r2, r5
| | | 0x08054490 e040 lsrs r0, r4
| | | 0x08054492 3843 orrs r0, r7
| | | 0x08054494 e140 lsrs r1, r4
| | ,==< 0x08054496 0fe0 b 0x80544b8
| | |`-> 0x08054498 352c cmp r4, 0x35 ; '5' ; 53
| `======< 0x0805449a 98dc bgt 0x80543ce
| | 0x0805449c c7f12004 rsb.w r4, r7, 0x20
| | 0x080544a0 52ea4002 orrs.w r2, r2, r0, lsl 1
| | 0x080544a4 20fa07f2 lsr.w r2, r0, r7
| |,=< 0x080544a8 18bf it ne
| |`-> 0x080544aa 42f00102 orr r2, r2, 1
| | 0x080544ae 31fa07f0 lsrs.w r0, r1, r7
| | 0x080544b2 a140 lsls r1, r4
| | 0x080544b4 0a43 orrs r2, r1
| | 0x080544b6 0021 movs r1, 0
| `--> 0x080544b8 72f10042 sbcs r2, r2, -0x80000000
| 0x080544bc 50f10000 adcs r0, r0, 0
| 0x080544c0 51eb0c01 adcs.w r1, r1, ip
\ 0x080544c4 b0bd pop {r4, r5, r7, pc}
/ (fcn) func_544c8_even_more_arithmetics 582
| Caller: func_4cf80
| func_544c8_even_more_arithmetics ();
| 0x080544c8 f0b5 push {r4, r5, r6, r7, lr}
| 0x080544ca 40f2ff75 movw r5, 0x7ff ; 2047
| 0x080544ce 81ea030c eor.w ip, r1, r3
| 0x080544d2 0cf0004c and ip, ip, 0x80000000
| 0x080544d6 15ea1154 ands.w r4, r5, r1, lsr 20
| ,=< 0x080544da 1dbf ittte ne
| `-> 0x080544dc 15ea1357 ands.w r7, r5, r3, lsr 20
| 0x080544e0 ac42 cmp r4, r5
| 0x080544e2 af42 cmp r7, r5
| ,=< 0x080544e4 e5e0 b 0x80546b2
| | 0x080544e6 bc41 sbcs r4, r7
| ..--> 0x080544e8 c1f31301 ubfx r1, r1, 0, 0x14
| ||| 0x080544ec c3f31303 ubfx r3, r3, 0, 0x14
| ||| 0x080544f0 801a subs r0, r0, r2
| ||| 0x080544f2 9941 sbcs r1, r3
| ||| 0x080544f4 43f48013 orr r3, r3, 0x100000
| ,====< 0x080544f8 04d2 bhs 0x8054504
| |||| 0x080544fa 641e subs r4, r4, 1
| |||| 0x080544fc 4000 lsls r0, r0, 1
| |||| 0x080544fe 4941 adcs r1, r1
| |||| 0x08054500 8018 adds r0, r0, r2
| |||| 0x08054502 5941 adcs r1, r3
| `----> 0x08054504 c902 lsls r1, r1, 0xb
| ||| 0x08054506 41ea5051 orr.w r1, r1, r0, lsr 21
| ||| 0x0805450a b1fbf3f6 udiv r6, r1, r3
| ||| 0x0805450e 03fb1611 mls r1, r3, r6, r1
| ||| 0x08054512 a2fb0675 umull r7, r5, r2, r6
| ||| 0x08054516 d7ebc020 rsbs r0, r7, r0, lsl 11
| ||| 0x0805451a a941 sbcs r1, r5
| ,====< 0x0805451c 02d2 bhs 0x8054524
| |||| 0x0805451e 761e subs r6, r6, 1
| |||| 0x08054520 8018 adds r0, r0, r2
| |||| 0x08054522 5941 adcs r1, r3
| `----> 0x08054524 c902 lsls r1, r1, 0xb
| ||| 0x08054526 41ea5051 orr.w r1, r1, r0, lsr 21
| ||| 0x0805452a b1fbf3fe udiv lr, r1, r3
| ||| 0x0805452e 03fb1e11 mls r1, r3, lr, r1
| ||| 0x08054532 a2fb0e75 umull r7, r5, r2, lr
| ||| 0x08054536 d7ebc020 rsbs r0, r7, r0, lsl 11
| ||| 0x0805453a a941 sbcs r1, r5
| ,====< 0x0805453c 03d2 bhs 0x8054546
| |||| 0x0805453e aef1010e sub.w lr, lr, 1
| |||| 0x08054542 8018 adds r0, r0, r2
| |||| 0x08054544 5941 adcs r1, r3
| `----> 0x08054546 8902 lsls r1, r1, 0xa
| ||| 0x08054548 41ea9051 orr.w r1, r1, r0, lsr 22
| ||| 0x0805454c 7605 lsls r6, r6, 0x15
| ||| 0x0805454e 46ea8e2e orr.w lr, r6, lr, lsl 10
| ||| 0x08054552 b1fbf3f6 udiv r6, r1, r3
| ||| 0x08054556 03fb1611 mls r1, r3, r6, r1
| ||| 0x0805455a a2fb0675 umull r7, r5, r2, r6
| ||| 0x0805455e d7eb8020 rsbs r0, r7, r0, lsl 10
| ||| 0x08054562 a941 sbcs r1, r5
| ,====< 0x08054564 02d2 bhs 0x805456c
| |||| 0x08054566 761e subs r6, r6, 1
| |||| 0x08054568 8018 adds r0, r0, r2
| |||| 0x0805456a 5941 adcs r1, r3
| `----> 0x0805456c c902 lsls r1, r1, 0xb
| ||| 0x0805456e 41ea5051 orr.w r1, r1, r0, lsr 21
| ||| 0x08054572 4eea060e orr.w lr, lr, r6
| ||| 0x08054576 b1fbf3f6 udiv r6, r1, r3
| ||| 0x0805457a 03fb1611 mls r1, r3, r6, r1
| ||| 0x0805457e a2fb0675 umull r7, r5, r2, r6
| ||| 0x08054582 d7ebc020 rsbs r0, r7, r0, lsl 11
| ||| 0x08054586 a941 sbcs r1, r5
| ,====< 0x08054588 02d2 bhs 0x8054590
| |||| 0x0805458a 761e subs r6, r6, 1
| |||| 0x0805458c 8018 adds r0, r0, r2
| |||| 0x0805458e 5941 adcs r1, r3
| `----> 0x08054590 c902 lsls r1, r1, 0xb
| ||| 0x08054592 41ea5051 orr.w r1, r1, r0, lsr 21
| ||| 0x08054596 b1fbf3f7 udiv r7, r1, r3
| ||| 0x0805459a 03fb1711 mls r1, r3, r7, r1
| ||| 0x0805459e a2fb0735 umull r3, r5, r2, r7
| ||| 0x080545a2 d3ebc020 rsbs r0, r3, r0, lsl 11
| ||| 0x080545a6 a941 sbcs r1, r5
| ||| 0x080545a8 67f10007 sbc r7, r7, 0
| ,====< 0x080545ac 0cbf ite eq
| `----> 0x080545ae 0042 tst r0, r0
| ||| 0x080545b0 47f00107 orr r7, r7, 1
| ||| 0x080545b4 66f3d527 bfi r7, r6, 0xb, 0xb
| ||| 0x080545b8 4fea1e31 lsr.w r1, lr, 0xc
| ||| 0x080545bc b808 lsrs r0, r7, 2
| ||| 0x080545be 14f58064 adds.w r4, r4, 0x400
| ,====< 0x080545c2 12dd ble 0x80545ea
| |||| 0x080545c4 bd07 lsls r5, r7, 0x1e
| |||| 0x080545c6 75f10042 sbcs r2, r5, -0x80000000
| |||| 0x080545ca 50eb0e50 adcs.w r0, r0, lr, lsl 20
| |||| 0x080545ce 51eb0451 adcs.w r1, r1, r4, lsl 20
| |||| 0x080545d2 11f5801f cmn.w r1, 0x100000
| ,=====< 0x080545d6 5cbf itt pl
| `-----> 0x080545d8 41ea0c01 orr.w r1, r1, ip
| |||| 0x080545dc f0bd pop {r4, r5, r6, r7, pc}
| |||| 0x080545de 4cf07f61 orr r1, ip, 0xff00000
| |||| 0x080545e2 41f0e041 orr r1, r1, 0x70000000
| |||| 0x080545e6 0020 movs r0, 0
| |||| 0x080545e8 f0bd pop {r4, r5, r6, r7, pc}
| `----> 0x080545ea bd07 lsls r5, r7, 0x1e
| ||| 0x080545ec 6d08 lsrs r5, r5, 1
| ||| 0x080545ee 40ea0e50 orr.w r0, r0, lr, lsl 20
| ||| 0x080545f2 41f48011 orr r1, r1, 0x100000
| ||| 0x080545f6 d4f10104 rsbs.w r4, r4, 1
| ||| 0x080545fa b4f12006 subs.w r6, r4, 0x20
| ,====< 0x080545fe 0ada bge 0x8054616
| |||| 0x08054600 c4f12006 rsb.w r6, r4, 0x20
| |||| 0x08054604 0200 movs r2, r0
| |||| 0x08054606 e040 lsrs r0, r4
| |||| 0x08054608 01fa06f3 lsl.w r3, r1, r6
| |||| 0x0805460c e140 lsrs r1, r4
| |||| 0x0805460e 1843 orrs r0, r3
| |||| 0x08054610 b240 lsls r2, r6
| |||| 0x08054612 1543 orrs r5, r2
| ,=====< 0x08054614 0ee0 b 0x8054634
| |`----> 0x08054616 342c cmp r4, 0x34 ; '4' ; 52
| |,====< 0x08054618 13dc bgt 0x8054642
| ||||| 0x0805461a c6f12004 rsb.w r4, r6, 0x20
| ||||| 0x0805461e 45ea4005 orr.w r5, r5, r0, lsl 1
| ||||| 0x08054622 6d08 lsrs r5, r5, 1
| ||||| 0x08054624 20fa06f2 lsr.w r2, r0, r6
| ||||| 0x08054628 1543 orrs r5, r2
| ||||| 0x0805462a 21fa06f0 lsr.w r0, r1, r6
| ||||| 0x0805462e a140 lsls r1, r4
| ||||| 0x08054630 0d43 orrs r5, r1
| ||||| 0x08054632 0021 movs r1, 0
| `-----> 0x08054634 75f10042 sbcs r2, r5, -0x80000000
| |||| 0x08054638 50f10000 adcs r0, r0, 0
| |||| 0x0805463c 51eb0c01 adcs.w r1, r1, ip
| |||| 0x08054640 f0bd pop {r4, r5, r6, r7, pc}
| `----> 0x08054642 0020 movs r0, 0
| ||| 0x08054644 5fea0c01 movs.w r1, ip
| ||| 0x08054648 f0bd pop {r4, r5, r6, r7, pc}
| ,.----> 0x0805464a cfb9 cbnz r7, 0x8054680
| ||||| 0x0805464c 9218 adds r2, r2, r2
| ||||| 0x0805464e 5b41 adcs r3, r3
| ||||| 0x08054650 b3fa83f7 clz r7, r3
| ,======< 0x08054654 04bf itt eq
| `------> 0x08054656 b2fa82f6 clz r6, r2
| ||||| 0x0805465a bf19 adds r7, r7, r6
| ||||| 0x0805465c 0b3f subs r7, 0xb
| ||||| 0x0805465e b7f12006 subs.w r6, r7, 0x20
| ,======< 0x08054662 2fbf iteee hs
| `------> 0x08054664 02fa06f3 lsl.w r3, r2, r6
| ||||| 0x08054668 bb40 lsls r3, r7
| ||||| 0x0805466a c7f12006 rsb.w r6, r7, 0x20
| ||||| 0x0805466e 22fa06f6 lsr.w r6, r2, r6
| ,======< 0x08054672 38bf it lo
| `------> 0x08054674 3343 orrs r3, r6
| ||||| 0x08054676 ba40 lsls r2, r7
| ,======< 0x08054678 1cb1 cbz r4, 0x8054682
| |||||| 0x0805467a e419 adds r4, r4, r7
| |||||| 0x0805467c 641e subs r4, r4, 1
| |||`===< 0x0805467e 33e7 b 0x80544e8
| |`-----> 0x08054680 7f42 rsbs r7, r7, 0
| `------> 0x08054682 31f00041 bics r1, r1, 0x80000000
| | || 0x08054686 b1fa81f4 clz r4, r1
| |,===< 0x0805468a 04bf itt eq
| |`---> 0x0805468c b0fa80f6 clz r6, r0
| | || 0x08054690 a419 adds r4, r4, r6
| | || 0x08054692 0b3c subs r4, 0xb
| | || 0x08054694 b4f12006 subs.w r6, r4, 0x20
| |,===< 0x08054698 2fbf iteee hs
| |`---> 0x0805469a 00fa06f1 lsl.w r1, r0, r6
| | || 0x0805469e a140 lsls r1, r4
| | || 0x080546a0 c4f12006 rsb.w r6, r4, 0x20
| | || 0x080546a4 20fa06f6 lsr.w r6, r0, r6
| |,===< 0x080546a8 38bf it lo
| |`---> 0x080546aa 3143 orrs r1, r6
| | || 0x080546ac a040 lsls r0, r4
| | || 0x080546ae 3c1b subs r4, r7, r4
| | `==< 0x080546b0 1ae7 b 0x80544e8
| | `-> 0x080546b2 ac42 cmp r4, r5
| | ,=< 0x080546b4 1abf itte ne
| | `-> 0x080546b6 05ea1357 and.w r7, r5, r3, lsr 20
| | 0x080546ba af42 cmp r7, r5
| | ,=< 0x080546bc 12e0 b 0x80546e4
| | | 0x080546be 50ea4106 orrs.w r6, r0, r1, lsl 1
| | ,==< 0x080546c2 1cbf itt ne
| | `--> 0x080546c4 52ea4306 orrs.w r6, r2, r3, lsl 1
| `====< 0x080546c8 bfe7 b 0x805464a
| | 0x080546ca 50ea4107 orrs.w r7, r0, r1, lsl 1
| | 0x080546ce 3046 mov r0, r6
| | 0x080546d0 6146 mov r1, ip
| ,==< 0x080546d2 1cbf itt ne
| `--> 0x080546d4 41ea0551 orr.w r1, r1, r5, lsl 20
| | 0x080546d8 f0bd pop {r4, r5, r6, r7, pc}
| | 0x080546da 52ea430c orrs.w ip, r2, r3, lsl 1
| ,==< 0x080546de 08bf it eq
| `--> 0x080546e0 c143 mvns r1, r0
| | 0x080546e2 f0bd pop {r4, r5, r6, r7, pc}
| `-> 0x080546e4 0020 movs r0, 0
| 0x080546e6 4ff40016 mov.w r6, 0x200000
| 0x080546ea 16eb410f cmn.w r6, r1, lsl 1
| ,=< 0x080546ee 98bf it ls
| `-> 0x080546f0 16eb430f cmn.w r6, r3, lsl 1
| ,=< 0x080546f4 08bf it eq
| `-> 0x080546f6 16eb410f cmn.w r6, r1, lsl 1
| ,=< 0x080546fa 24bf itt hs
| `-> 0x080546fc c143 mvns r1, r0
| ,=< 0x080546fe 05e0 b 0x805470c
| | 0x08054700 16eb430f cmn.w r6, r3, lsl 1
| ,==< 0x08054704 0cbf ite eq
| `--> 0x08054706 6146 mov r1, ip
| | 0x08054708 4cea0551 orr.w r1, ip, r5, lsl 20
\ `-> 0x0805470c f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) func_54710 52
| Caller: func_4cf80
| func_54710 ();
| 0x08054710 4feaf17c ror.w ip, r1, 0x1f
| 0x08054714 bcf1e04c subs.w ip, ip, 0x70000000
| ,=< 0x08054718 2cbf ite hs
| `-> 0x0805471a bcf5001f cmp.w ip, 0x200000
| ,=< 0x0805471e 11e0 b 0x8054744
| | 0x08054720 5fea4c0c lsls.w ip, ip, 1
| ,==< 0x08054724 34bf ite lo
| `--> 0x08054726 bcf17f5f cmp.w ip, 0x3fc00000
| ,==< 0x0805472a 2ee0 b 0x805478a
| || 0x0805472c 5fea9c0c lsrs.w ip, ip, 2
| || 0x08054730 4fea0c1c lsl.w ip, ip, 4
| || 0x08054734 4fea3c0c rrx ip, ip
| || 0x08054738 c100 lsls r1, r0, 3
| || 0x0805473a 71f10041 sbcs r1, r1, -0x80000000
| || 0x0805473e 4ceb5070 adc.w r0, ip, r0, lsr 29
\ || 0x08054742 7047 bx lr
/ (fcn) func_547a0 152
| Caller: func_4cf80
| func_547a0 ();
| 0x080547a0 0180 strh r1, [r0]
| 0x080547a2 9c46 mov ip, r3
| 0x080547a4 2449 ldr r1, [0x08054838] ; [0x8054838:4]=0x8088ab4
| 0x080547a6 4160 str r1, [r0, 4]
| 0x080547a8 8270 strb r2, [r0, 2]
| 0x080547aa 80f803c0 strb.w ip, [r0, 3]
| 0x080547ae 0023 movs r3, 0
| 0x080547b0 0188 ldrh r1, [r0]
| 0x080547b2 1029 cmp r1, 0x10 ; 16
| ,=< 0x080547b4 31d0 beq 0x805481a
| | 0x080547b6 4029 cmp r1, 0x40 ; '@' ; 64
| ,==< 0x080547b8 26d0 beq 0x8054808
| || 0x080547ba b1f5807f cmp.w r1, 0x100 ; 256
| ,===< 0x080547be 19d0 beq 0x80547f4
| ||| 0x080547c0 b1f5806f cmp.w r1, 0x400 ; 1024
| ,====< 0x080547c4 0cd0 beq 0x80547e0
| |||| 0x080547c6 b1f5805f cmp.w r1, 0x1000
| ,=====< 0x080547ca 31d1 bne 0x8054830
| ||||| 0x080547cc 0121 movs r1, 1 ; 1
| ||||| 0x080547ce 8181 strh r1, [r0, 0xc]
| ||||| 0x080547d0 c181 strh r1, [r0, 0xe]
| ||||| 0x080547d2 1a49 ldr r1, [0x0805483e] ; [0x805483c:4]=0x80882b4
| ||||| 0x080547d4 8160 str r1, [r0, 8]
| ||||| 0x080547d6 4ff06651 mov.w r1, 0x39800000
| ||||| 0x080547da 0161 str r1, [r0, 0x10]
| ||||| 0x080547dc 1846 mov r0, r3
| ||||| 0x080547de 7047 bx lr
| |`----> 0x080547e0 0421 movs r1, 4 ; 4
| | ||| 0x080547e2 8181 strh r1, [r0, 0xc]
| | ||| 0x080547e4 c181 strh r1, [r0, 0xe]
| | ||| 0x080547e6 1649 ldr r1, [0x08054842] ; [0x8054840:4]=0x80882ba
| | ||| 0x080547e8 8160 str r1, [r0, 8]
| | ||| 0x080547ea 4ff06a51 mov.w r1, 0x3a800000
| | ||| 0x080547ee 0161 str r1, [r0, 0x10]
| | ||| 0x080547f0 1846 mov r0, r3
| | ||| 0x080547f2 7047 bx lr
| | `---> 0x080547f4 1021 movs r1, 0x10 ; 16
| | || 0x080547f6 8181 strh r1, [r0, 0xc]
| | || 0x080547f8 c181 strh r1, [r0, 0xe]
| | || 0x080547fa 1249 ldr r1, [0x08054846] ; [0x8054844:4]=0x80882d2
| | || 0x080547fc 8160 str r1, [r0, 8]
| | || 0x080547fe 4ff06e51 mov.w r1, 0x3b800000
| | || 0x08054802 0161 str r1, [r0, 0x10]
| | || 0x08054804 1846 mov r0, r3
| | || 0x08054806 7047 bx lr
| | `--> 0x08054808 8181 strh r1, [r0, 0xc]
| | | 0x0805480a c181 strh r1, [r0, 0xe]
| | | 0x0805480c 0e49 ldr r1, [0x08054848] ; [0x8054848:4]=0x8088332
| | | 0x0805480e 8160 str r1, [r0, 8]
| | | 0x08054810 4ff07251 mov.w r1, 0x3c800000
| | | 0x08054814 0161 str r1, [r0, 0x10]
| | | 0x08054816 1846 mov r0, r3
| | | 0x08054818 7047 bx lr
| | `-> 0x0805481a 4ff48071 mov.w r1, 0x100 ; 256
| | 0x0805481e 8181 strh r1, [r0, 0xc]
| | 0x08054820 c181 strh r1, [r0, 0xe]
| | 0x08054822 0a49 ldr r1, [0x0805484e] ; [0x805484c:4]=0x80884b2
| | 0x08054824 8160 str r1, [r0, 8]
| | 0x08054826 4ff07651 mov.w r1, 0x3d800000
| | 0x0805482a 0161 str r1, [r0, 0x10]
| | 0x0805482c 1846 mov r0, r3
| | 0x0805482e 7047 bx lr
| `-----> 0x08054830 4ff0ff33 mov.w r3, -1 ; -1
| 0x08054834 1846 mov r0, r3
\ 0x08054836 7047 bx lr
/ (fcn) func_54850 58
| Caller: func_4cf80
| func_54850 ();
| 0x08054850 30b5 push {r4, r5, lr}
| 0x08054852 0446 mov r4, r0
| 0x08054854 0d46 mov r5, r1
| 0x08054856 a078 ldrb r0, [r4, 2]
| 0x08054858 6268 ldr r2, [r4, 4]
| 0x0805485a a389 ldrh r3, [r4, 0xc]
| 0x0805485c 2188 ldrh r1, [r4]
| 0x0805485e 81b0 sub sp, 4
| 0x08054860 0128 cmp r0, 1 ; 1
| ,=< 0x08054862 05d1 bne 0x8054870
| | 0x08054864 94ed040a vldr s0, [r4, 0x10]
| | 0x08054868 2846 mov r0, r5
| | 0x0805486a 00f0bbf9 bl 0x8054be4
| ,==< 0x0805486e 02e0 b 0x8054876
| |`-> 0x08054870 2846 mov r0, r5
| | 0x08054872 00f00ff8 bl 0x8054894
| `--> 0x08054876 e078 ldrb r0, [r4, 3]
| 0x08054878 0128 cmp r0, 1 ; 1
| ,=< 0x0805487a 08d1 bne 0x805488e
| | 0x0805487c a368 ldr r3, [r4, 8]
| | 0x0805487e e289 ldrh r2, [r4, 0xe]
| | 0x08054880 2188 ldrh r1, [r4]
| | 0x08054882 2846 mov r0, r5
| | 0x08054884 01b0 add sp, 4
\ | 0x08054886 bde83040 pop.w {r4, r5, lr}
/ (fcn) func_54f52_floating_point_stuff 266
| Caller: func_4cf80
| func_54f52_floating_point_stuff ();
| 0x08054f52 f0b5 push {r4, r5, r6, r7, lr}
| 0x08054f54 1446 mov r4, r2
| 0x08054f56 81b0 sub sp, 4
| 0x08054f58 0746 mov r7, r0
| 0x08054f5a 0e46 mov r6, r1
| 0x08054f5c a508 lsrs r5, r4, 2
| ,=< 0x08054f5e 5dd0 beq 0x805501c
| .--> 0x08054f60 381d adds r0, r7, 4
| || 0x08054f62 97ed000a vldr s0, [r7]
| || 0x08054f66 d0ed000a vldr s1, [r0]
| || 0x08054f6a 20ee000a vmul.f32 s0, s0, s0
| || 0x08054f6e 00eea00a vmla.f32 s0, s1, s1
| || 0x08054f72 071d adds r7, r0, 4
| || 0x08054f74 b5ee400a vcmp.f32 s0, 0
| || 0x08054f78 f1ee10fa vmrs APSR_nzcv, fpscr
| ,===< 0x08054f7c 04dd ble 0x8054f88
| ||| 0x08054f7e 04f00ff9 bl func_591a0
| ||| 0x08054f82 86ed000a vstr s0, [r6]
| ,====< 0x08054f86 01e0 b 0x8054f8c
| |`---> 0x08054f88 0020 movs r0, 0
| | || 0x08054f8a 3060 str r0, [r6]
| `----> 0x08054f8c 381d adds r0, r7, 4
| || 0x08054f8e 97ed000a vldr s0, [r7]
| || 0x08054f92 d0ed000a vldr s1, [r0]
| || 0x08054f96 20ee000a vmul.f32 s0, s0, s0
| || 0x08054f9a 00eea00a vmla.f32 s0, s1, s1
| || 0x08054f9e 361d adds r6, r6, 4
| || 0x08054fa0 071d adds r7, r0, 4
| || 0x08054fa2 b5ee400a vcmp.f32 s0, 0
| || 0x08054fa6 f1ee10fa vmrs APSR_nzcv, fpscr
| ,===< 0x08054faa 04dd ble 0x8054fb6
| ||| 0x08054fac 04f0f8f8 bl func_591a0
| ||| 0x08054fb0 86ed000a vstr s0, [r6]
| ,====< 0x08054fb4 01e0 b 0x8054fba
| |`---> 0x08054fb6 0020 movs r0, 0
| | || 0x08054fb8 3060 str r0, [r6]
| `----> 0x08054fba 381d adds r0, r7, 4
| || 0x08054fbc 97ed000a vldr s0, [r7]
| || 0x08054fc0 d0ed000a vldr s1, [r0]
| || 0x08054fc4 20ee000a vmul.f32 s0, s0, s0
| || 0x08054fc8 00eea00a vmla.f32 s0, s1, s1
| || 0x08054fcc 361d adds r6, r6, 4
| || 0x08054fce 071d adds r7, r0, 4
| || 0x08054fd0 b5ee400a vcmp.f32 s0, 0
| || 0x08054fd4 f1ee10fa vmrs APSR_nzcv, fpscr
| ,===< 0x08054fd8 04dd ble 0x8054fe4
| ||| 0x08054fda 04f0e1f8 bl func_591a0
| ||| 0x08054fde 86ed000a vstr s0, [r6]
| ,====< 0x08054fe2 01e0 b 0x8054fe8
| |`---> 0x08054fe4 0020 movs r0, 0
| | || 0x08054fe6 3060 str r0, [r6]
| `----> 0x08054fe8 381d adds r0, r7, 4
| || 0x08054fea 97ed000a vldr s0, [r7]
| || 0x08054fee d0ed000a vldr s1, [r0]
| || 0x08054ff2 20ee000a vmul.f32 s0, s0, s0
| || 0x08054ff6 00eea00a vmla.f32 s0, s1, s1
| || 0x08054ffa 361d adds r6, r6, 4
| || 0x08054ffc 071d adds r7, r0, 4
| || 0x08054ffe b5ee400a vcmp.f32 s0, 0
| || 0x08055002 f1ee10fa vmrs APSR_nzcv, fpscr
| ,===< 0x08055006 04dd ble 0x8055012
| ||| 0x08055008 04f0caf8 bl func_591a0
| ||| 0x0805500c 86ed000a vstr s0, [r6]
| ,====< 0x08055010 01e0 b 0x8055016
| |`---> 0x08055012 0020 movs r0, 0
| | || 0x08055014 3060 str r0, [r6]
| `----> 0x08055016 361d adds r6, r6, 4
| || 0x08055018 6d1e subs r5, r5, 1
| `==< 0x0805501a a1d1 bne 0x8054f60
| `-> 0x0805501c 14f0030f tst.w r4, 3 ; 3
| ,=< 0x08055020 1ad0 beq 0x8055058
| | 0x08055022 04f00304 and r4, r4, 3
| .--> 0x08055026 381d adds r0, r7, 4
| || 0x08055028 97ed000a vldr s0, [r7]
| || 0x0805502c d0ed000a vldr s1, [r0]
| || 0x08055030 20ee000a vmul.f32 s0, s0, s0
| || 0x08055034 00eea00a vmla.f32 s0, s1, s1
| || 0x08055038 071d adds r7, r0, 4
| || 0x0805503a b5ee400a vcmp.f32 s0, 0
| || 0x0805503e f1ee10fa vmrs APSR_nzcv, fpscr
| ,===< 0x08055042 04dd ble 0x805504e
| ||| 0x08055044 04f0acf8 bl func_591a0
| ||| 0x08055048 86ed000a vstr s0, [r6]
| ,====< 0x0805504c 01e0 b 0x8055052
| |`---> 0x0805504e 0020 movs r0, 0
| | || 0x08055050 3060 str r0, [r6]
| `----> 0x08055052 361d adds r6, r6, 4
| || 0x08055054 641e subs r4, r4, 1
| `==< 0x08055056 e6d1 bne 0x8055026
| `-> 0x08055058 01b0 add sp, 4
\ 0x0805505a f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) func_5505c_more_floating_point 164
| Caller: func_4cf80
| func_5505c_more_floating_point ();
| 0x0805505c f0b4 push {r4, r5, r6, r7}
| 0x0805505e 90ed000a vldr s0, [r0]
| 0x08055062 0024 movs r4, 0
| 0x08055064 0025 movs r5, 0
| 0x08055066 001d adds r0, r0, 4
| 0x08055068 4e1e subs r6, r1, 1
| 0x0805506a b708 lsrs r7, r6, 2
| ,=< 0x0805506c 00f02f80 beq.w 0x80550ce
| .--> 0x08055070 d0ed000a vldr s1, [r0]
| || 0x08055074 001d adds r0, r0, 4
| || 0x08055076 b4ee600a vcmp.f32 s0, s1
| || 0x0805507a 90ed001a vldr s2, [r0]
| || 0x0805507e 001d adds r0, r0, 4
| || 0x08055080 f1ee10fa vmrs APSR_nzcv, fpscr
| ,===< 0x08055084 44bf itt mi
| `---> 0x08055086 b0ee600a vmov.f32 s0, s1
| || 0x0805508a 651c adds r5, r4, 1
| || 0x0805508c d0ed000a vldr s1, [r0]
| || 0x08055090 001d adds r0, r0, 4
| || 0x08055092 b4ee410a vcmp.f32 s0, s2
| || 0x08055096 f1ee10fa vmrs APSR_nzcv, fpscr
| ,===< 0x0805509a 44bf itt mi
| `---> 0x0805509c b0ee410a vmov.f32 s0, s2
| || 0x080550a0 a51c adds r5, r4, 2
| || 0x080550a2 90ed001a vldr s2, [r0]
| || 0x080550a6 001d adds r0, r0, 4
| || 0x080550a8 b4ee600a vcmp.f32 s0, s1
| || 0x080550ac f1ee10fa vmrs APSR_nzcv, fpscr
| ,===< 0x080550b0 44bf itt mi
| `---> 0x080550b2 b0ee600a vmov.f32 s0, s1
| || 0x080550b6 e51c adds r5, r4, 3
| || 0x080550b8 241d adds r4, r4, 4
| || 0x080550ba b4ee410a vcmp.f32 s0, s2
| || 0x080550be f1ee10fa vmrs APSR_nzcv, fpscr
| ,===< 0x080550c2 44bf itt mi
| `---> 0x080550c4 b0ee410a vmov.f32 s0, s2
| || 0x080550c8 2546 mov r5, r4
| || 0x080550ca 7f1e subs r7, r7, 1
| `==< 0x080550cc d0d1 bne 0x8055070
| `-> 0x080550ce 16f00304 ands r4, r6, 3
| ,=< 0x080550d2 10d0 beq 0x80550f6
| | 0x080550d4 b1eb0401 subs.w r1, r1, r4
| .--> 0x080550d8 d0ed000a vldr s1, [r0]
| || 0x080550dc 001d adds r0, r0, 4
| || 0x080550de b4ee600a vcmp.f32 s0, s1
| || 0x080550e2 f1ee10fa vmrs APSR_nzcv, fpscr
| ,===< 0x080550e6 44bf itt mi
| `---> 0x080550e8 b0ee600a vmov.f32 s0, s1
| || 0x080550ec 0d46 mov r5, r1
| || 0x080550ee 641e subs r4, r4, 1
| || 0x080550f0 491c adds r1, r1, 1
| || 0x080550f2 002c cmp r4, 0
| `==< 0x080550f4 f0d1 bne 0x80550d8
| `-> 0x080550f6 82ed000a vstr s0, [r2]
| 0x080550fa 1d60 str r5, [r3]
| 0x080550fc f0bc pop {r4, r5, r6, r7}
\ 0x080550fe 7047 bx lr
/ (fcn) func_55144_return_zero 4
| Caller: usb_setcallbacks
| func_55144_return_zero ();
| 0x08055144 0020 movs r0, 0
\ 0x08055146 7047 bx lr
/ (fcn) func_55148 82
| func_55148 ();
| 0x08055148 1cb5 push {r2, r3, r4, lr}
| 0x0805514a 0400 movs r4, r0
| 0x0805514c 00a9 add r1, sp, 0
| 0x0805514e 2000 movs r0, r4
| 0x08055150 04f07afc bl func_59a48
| 0x08055154 9df80000 ldrb.w r0, [sp]
| 0x08055158 10f01f00 ands r0, r0, 0x1f
| 0x0805515c c0b2 uxtb r0, r0
| 0x0805515e 0028 cmp r0, 0
| ,=< 0x08055160 03d0 beq 0x805516a
| | 0x08055162 0228 cmp r0, 2 ; 2
| ,==< 0x08055164 0bd0 beq 0x805517e
| ,===< 0x08055166 05d3 blo 0x8055174
| ,====< 0x08055168 0ee0 b 0x8055188
| |||`-> 0x0805516a 00a9 add r1, sp, 0
| ||| 0x0805516c 2000 movs r0, r4
| ||| 0x0805516e 04f0a3f9 bl func_594b8
| |||,=< 0x08055172 10e0 b 0x8055196
| |`---> 0x08055174 00a9 add r1, sp, 0
| | || 0x08055176 2000 movs r0, r4
| | || 0x08055178 04f0caf9 bl func_59510
| |,===< 0x0805517c 0be0 b 0x8055196
| ||`--> 0x0805517e 00a9 add r1, sp, 0
| || | 0x08055180 2000 movs r0, r4
| || | 0x08055182 04f0edf9 bl func_59560
| ||,==< 0x08055186 06e0 b 0x8055196
| `----> 0x08055188 9df80000 ldrb.w r0, [sp]
| ||| 0x0805518c 10f08001 ands r1, r0, 0x80
| ||| 0x08055190 2000 movs r0, r4
| ||| 0x08055192 04f02af9 bl func_593ea
| ```-> 0x08055196 0020 movs r0, 0
\ 0x08055198 16bd pop {r1, r2, r4, pc}
/ (fcn) func_5519a 148
| func_5519a ();
| 0x0805519a 10b5 push {r4, lr}
| 0x0805519c 0400 movs r4, r0
| 0x0805519e c9b2 uxtb r1, r1
| 0x080551a0 0029 cmp r1, 0
| ,=< 0x080551a2 33d1 bne 0x805520c
| | 0x080551a4 14f55d70 adds.w r0, r4, 0x374
| | 0x080551a8 94f81111 ldrb.w r1, [r4, 0x111]
| | 0x080551ac 0329 cmp r1, 3 ; 3
| ,==< 0x080551ae 3cd1 bne 0x805522a
| || 0x080551b0 8168 ldr r1, [r0, 8]
| || 0x080551b2 c269 ldr r2, [r0, 0x1c]
| || 0x080551b4 9142 cmp r1, r2
| ,===< 0x080551b6 17d2 bhs 0x80551e8
| ||| 0x080551b8 c169 ldr r1, [r0, 0x1c]
| ||| 0x080551ba 8268 ldr r2, [r0, 8]
| ||| 0x080551bc 891a subs r1, r1, r2
| ||| 0x080551be c161 str r1, [r0, 0x1c]
| ||| 0x080551c0 e178 ldrb r1, [r4, 3]
| ||| 0x080551c2 0129 cmp r1, 1 ; 1
| ,====< 0x080551c4 03d1 bne 0x80551ce
| |||| 0x080551c6 8168 ldr r1, [r0, 8]
| |||| 0x080551c8 c268 ldr r2, [r0, 0xc]
| |||| 0x080551ca 8918 adds r1, r1, r2
| |||| 0x080551cc c160 str r1, [r0, 0xc]
| `----> 0x080551ce c169 ldr r1, [r0, 0x1c]
| ||| 0x080551d0 8268 ldr r2, [r0, 8]
| ||| 0x080551d2 9142 cmp r1, r2
| ,====< 0x080551d4 01d2 bhs 0x80551da
| |||| 0x080551d6 c269 ldr r2, [r0, 0x1c]
| ,=====< 0x080551d8 00e0 b 0x80551dc
| |`----> 0x080551da 8268 ldr r2, [r0, 8]
| `-----> 0x080551dc 92b2 uxth r2, r2
| ||| 0x080551de c168 ldr r1, [r0, 0xc]
| ||| 0x080551e0 2000 movs r0, r4
| ||| 0x080551e2 04f0c1fc bl func_59b68
| ,====< 0x080551e6 20e0 b 0x805522a
| |`---> 0x080551e8 d4f8e405 ldr.w r0, [r4, 0x5e4]
| | || 0x080551ec 0069 ldr r0, [r0, 0x10]
| | || 0x080551ee 0028 cmp r0, 0
| |,===< 0x080551f0 08d0 beq 0x8055204
| |||| 0x080551f2 94f81201 ldrb.w r0, [r4, 0x112]
| |||| 0x080551f6 0328 cmp r0, 3 ; 3
| ,=====< 0x080551f8 04d1 bne 0x8055204
| ||||| 0x080551fa 2000 movs r0, r4
| ||||| 0x080551fc d4f8e415 ldr.w r1, [r4, 0x5e4]
| ||||| 0x08055200 0969 ldr r1, [r1, 0x10]
| ||||| 0x08055202 8847 blx r1
| `-`---> 0x08055204 2000 movs r0, r4
| | || 0x08055206 04f0bafc bl func_59b7e
| |,===< 0x0805520a 0ee0 b 0x805522a
| |||`-> 0x0805520c d4f8e405 ldr.w r0, [r4, 0x5e4]
| ||| 0x08055210 8069 ldr r0, [r0, 0x18]
| ||| 0x08055212 0028 cmp r0, 0
| |||,=< 0x08055214 09d0 beq 0x805522a
| |||| 0x08055216 94f81201 ldrb.w r0, [r4, 0x112]
| |||| 0x0805521a 0328 cmp r0, 3 ; 3
| ,=====< 0x0805521c 05d1 bne 0x805522a
| ||||| 0x0805521e c9b2 uxtb r1, r1
| ||||| 0x08055220 2000 movs r0, r4
| ||||| 0x08055222 d4f8e425 ldr.w r2, [r4, 0x5e4]
| ||||| 0x08055226 9269 ldr r2, [r2, 0x18]
| ||||| 0x08055228 9047 blx r2
| `````-> 0x0805522a 0020 movs r0, 0
\ 0x0805522c 10bd pop {r4, pc}
/ (fcn) func_5522e 204
| func_5522e ();
| 0x0805522e 38b5 push {r3, r4, r5, lr}
| 0x08055230 0400 movs r4, r0
| 0x08055232 c9b2 uxtb r1, r1
| 0x08055234 0029 cmp r1, 0
| ,=< 0x08055236 4fd1 bne 0x80552d8
| | 0x08055238 14f58e75 adds.w r5, r4, 0x11c
| | 0x0805523c 94f81101 ldrb.w r0, [r4, 0x111]
| | 0x08055240 0228 cmp r0, 2 ; 2
| ,==< 0x08055242 3ed1 bne 0x80552c2
| || 0x08055244 a868 ldr r0, [r5, 8]
| || 0x08055246 e969 ldr r1, [r5, 0x1c]
| || 0x08055248 8842 cmp r0, r1
| ,===< 0x0805524a 11d2 bhs 0x8055270
| ||| 0x0805524c e869 ldr r0, [r5, 0x1c]
| ||| 0x0805524e a968 ldr r1, [r5, 8]
| ||| 0x08055250 401a subs r0, r0, r1
| ||| 0x08055252 e861 str r0, [r5, 0x1c]
| ||| 0x08055254 e078 ldrb r0, [r4, 3]
| ||| 0x08055256 0128 cmp r0, 1 ; 1
| ,====< 0x08055258 03d1 bne 0x8055262
| |||| 0x0805525a a868 ldr r0, [r5, 8]
| |||| 0x0805525c e968 ldr r1, [r5, 0xc]
| |||| 0x0805525e 4018 adds r0, r0, r1
| |||| 0x08055260 e860 str r0, [r5, 0xc]
| `----> 0x08055262 ea69 ldr r2, [r5, 0x1c]
| ||| 0x08055264 92b2 uxth r2, r2
| ||| 0x08055266 e968 ldr r1, [r5, 0xc]
| ||| 0x08055268 2000 movs r0, r4
| ||| 0x0805526a 04f05efc bl func_59b2a
| ,====< 0x0805526e 28e0 b 0x80552c2
| |`---> 0x08055270 286a ldr r0, [r5, 0x20]
| | || 0x08055272 a968 ldr r1, [r5, 8]
| | || 0x08055274 b0fbf1f2 udiv r2, r0, r1
| | || 0x08055278 01fb1200 mls r0, r1, r2, r0
| | || 0x0805527c 0028 cmp r0, 0
| |,===< 0x0805527e 0fd1 bne 0x80552a0
| |||| 0x08055280 286a ldr r0, [r5, 0x20]
| |||| 0x08055282 a968 ldr r1, [r5, 8]
| |||| 0x08055284 8842 cmp r0, r1
| ,=====< 0x08055286 0bd3 blo 0x80552a0
| ||||| 0x08055288 286a ldr r0, [r5, 0x20]
| ||||| 0x0805528a 696a ldr r1, [r5, 0x24]
| ||||| 0x0805528c 8842 cmp r0, r1
| ,======< 0x0805528e 07d2 bhs 0x80552a0
| |||||| 0x08055290 0022 movs r2, 0
| |||||| 0x08055292 0021 movs r1, 0
| |||||| 0x08055294 2000 movs r0, r4
| |||||| 0x08055296 04f048fc bl func_59b2a
| |||||| 0x0805529a 0020 movs r0, 0
| |||||| 0x0805529c 6862 str r0, [r5, 0x24]
| ,=======< 0x0805529e 10e0 b 0x80552c2
| |``-`---> 0x080552a0 d4f8e405 ldr.w r0, [r4, 0x5e4]
| | | || 0x080552a4 c068 ldr r0, [r0, 0xc]
| | | || 0x080552a6 0028 cmp r0, 0
| | |,===< 0x080552a8 08d0 beq 0x80552bc
| | |||| 0x080552aa 94f81201 ldrb.w r0, [r4, 0x112]
| | |||| 0x080552ae 0328 cmp r0, 3 ; 3
| | ,=====< 0x080552b0 04d1 bne 0x80552bc
| | ||||| 0x080552b2 2000 movs r0, r4
| | ||||| 0x080552b4 d4f8e415 ldr.w r1, [r4, 0x5e4]
| | ||||| 0x080552b8 c968 ldr r1, [r1, 0xc]
| | ||||| 0x080552ba 8847 blx r1
| | `-`---> 0x080552bc 2000 movs r0, r4
| | | || 0x080552be 04f070fc bl func_59ba2
| `--`-`--> 0x080552c2 94f81601 ldrb.w r0, [r4, 0x116]
| | 0x080552c6 0128 cmp r0, 1 ; 1
| ,==< 0x080552c8 15d1 bne 0x80552f6
| || 0x080552ca 2000 movs r0, r4
| || 0x080552cc 00f015f8 bl func_552fa
| || 0x080552d0 0020 movs r0, 0
| || 0x080552d2 84f81601 strb.w r0, [r4, 0x116]
| ,===< 0x080552d6 0ee0 b 0x80552f6
| ||`-> 0x080552d8 d4f8e405 ldr.w r0, [r4, 0x5e4]
| || 0x080552dc 4069 ldr r0, [r0, 0x14]
| || 0x080552de 0028 cmp r0, 0
| ||,=< 0x080552e0 09d0 beq 0x80552f6
| ||| 0x080552e2 94f81201 ldrb.w r0, [r4, 0x112]
| ||| 0x080552e6 0328 cmp r0, 3 ; 3
| ,====< 0x080552e8 05d1 bne 0x80552f6
| |||| 0x080552ea c9b2 uxtb r1, r1
| |||| 0x080552ec 2000 movs r0, r4
| |||| 0x080552ee d4f8e425 ldr.w r2, [r4, 0x5e4]
| |||| 0x080552f2 5269 ldr r2, [r2, 0x14]
| |||| 0x080552f4 9047 blx r2
| ````-> 0x080552f6 0020 movs r0, 0
\ 0x080552f8 32bd pop {r1, r4, r5, pc}
/ (fcn) func_552fa 12
| Caller: func_5522e
| func_552fa ();
| 0x080552fa 0069 ldr r0, [r0, 0x10]
| 0x080552fc 0249 ldr r1, [0x08055308] ; [0x8055308:4]=0x2001e74c
| 0x080552fe 0968 ldr r1, [r1]
| 0x08055300 4160 str r1, [r0, 4]
| 0x08055302 0020 movs r0, 0
\ 0x08055304 7047 bx lr
/ (fcn) func_5530c 48
| func_5530c ();
| 0x0805530c 10b5 push {r4, lr}
| 0x0805530e 0400 movs r4, r0
| 0x08055310 0023 movs r3, 0
| 0x08055312 4022 movs r2, 0x40 ; '@' ; 64
| 0x08055314 0021 movs r1, 0
| 0x08055316 2000 movs r0, r4
| 0x08055318 03f0f8ff bl func_5930c
| 0x0805531c 0023 movs r3, 0
| 0x0805531e 4022 movs r2, 0x40 ; '@' ; 64
| 0x08055320 8021 movs r1, 0x80 ; 128
| 0x08055322 2000 movs r0, r4
| 0x08055324 03f0f2ff bl func_5930c
| 0x08055328 0120 movs r0, 1 ; 1
| 0x0805532a 84f81201 strb.w r0, [r4, 0x112]
| 0x0805532e a078 ldrb r0, [r4, 2]
| 0x08055330 d4f8e815 ldr.w r1, [r4, 0x5e8]
| 0x08055334 4968 ldr r1, [r1, 4]
| 0x08055336 8847 blx r1
| 0x08055338 0020 movs r0, 0
\ 0x0805533a 10bd pop {r4, pc}
/ (fcn) func_5533c 30
| func_5533c ();
| 0x0805533c 10b5 push {r4, lr}
| 0x0805533e 0400 movs r4, r0
| 0x08055340 d4f8e805 ldr.w r0, [r4, 0x5e8]
| 0x08055344 0069 ldr r0, [r0, 0x10]
| 0x08055346 8047 blx r0
| 0x08055348 94f81301 ldrb.w r0, [r4, 0x113]
| 0x0805534c 84f81201 strb.w r0, [r4, 0x112]
| 0x08055350 0320 movs r0, 3 ; 3
| 0x08055352 84f81201 strb.w r0, [r4, 0x112]
| 0x08055356 0020 movs r0, 0
\ 0x08055358 10bd pop {r4, pc}
/ (fcn) func_5535a 28
| func_5535a ();
| 0x0805535a 80b5 push {r7, lr}
| 0x0805535c 90f81211 ldrb.w r1, [r0, 0x112]
| 0x08055360 80f81311 strb.w r1, [r0, 0x113]
| 0x08055364 0421 movs r1, 4 ; 4
| 0x08055366 80f81211 strb.w r1, [r0, 0x112]
| 0x0805536a d0f8e805 ldr.w r0, [r0, 0x5e8]
| 0x0805536e c068 ldr r0, [r0, 0xc]
| 0x08055370 8047 blx r0
| 0x08055372 0020 movs r0, 0
\ 0x08055374 02bd pop {r1, pc}
/ (fcn) func_55376 24
| func_55376 ();
| 0x08055376 80b5 push {r7, lr}
| 0x08055378 d0f8e415 ldr.w r1, [r0, 0x5e4]
| 0x0805537c c969 ldr r1, [r1, 0x1c]
| 0x0805537e 0029 cmp r1, 0
| ,=< 0x08055380 03d0 beq 0x805538a
| | 0x08055382 d0f8e415 ldr.w r1, [r0, 0x5e4]
| | 0x08055386 c969 ldr r1, [r1, 0x1c]
| | 0x08055388 8847 blx r1
| `-> 0x0805538a 0020 movs r0, 0
\ 0x0805538c 02bd pop {r1, pc}
/ (fcn) func_5538e 28
| Caller: func_59848
| func_5538e ();
| 0x0805538e 10b5 push {r4, lr}
| 0x08055390 0400 movs r4, r0
| 0x08055392 c9b2 uxtb r1, r1
| 0x08055394 2000 movs r0, r4
| 0x08055396 d4f8e425 ldr.w r2, [r4, 0x5e4]
| 0x0805539a 1268 ldr r2, [r2]
| 0x0805539c 9047 blx r2
| 0x0805539e d4f8e805 ldr.w r0, [r4, 0x5e8]
| 0x080553a2 8068 ldr r0, [r0, 8]
| 0x080553a4 8047 blx r0
| 0x080553a6 0020 movs r0, 0
\ 0x080553a8 10bd pop {r4, pc}
/ (fcn) func_553aa 16
| Caller: func_59848
| func_553aa ();
| 0x080553aa 80b5 push {r7, lr}
| 0x080553ac c9b2 uxtb r1, r1
| 0x080553ae d0f8e425 ldr.w r2, [r0, 0x5e4]
| 0x080553b2 5268 ldr r2, [r2, 4]
| 0x080553b4 9047 blx r2
| 0x080553b6 0020 movs r0, 0
\ 0x080553b8 02bd pop {r1, pc}
/ (fcn) func_553ba 14
| func_553ba ();
| 0x080553ba 80b5 push {r7, lr}
| 0x080553bc d0f8e415 ldr.w r1, [r0, 0x5e4]
| 0x080553c0 096a ldr r1, [r1, 0x20]
| 0x080553c2 8847 blx r1
| 0x080553c4 0020 movs r0, 0
\ 0x080553c6 02bd pop {r1, pc}
/ (fcn) func_553c8 14
| func_553c8 ();
| 0x080553c8 80b5 push {r7, lr}
| 0x080553ca d0f8e415 ldr.w r1, [r0, 0x5e4]
| 0x080553ce 496a ldr r1, [r1, 0x24]
| 0x080553d0 8847 blx r1
| 0x080553d2 0020 movs r0, 0
\ 0x080553d4 02bd pop {r1, pc}
/ (fcn) func_553dc_gfx 30
| Caller: func_523c8
| func_553dc_gfx ();
| 0x080553dc 80b5 push {r7, lr}
| 0x080553de 0748 ldr r0, [0x080553fe] ; [0x80553fc:4]=0x2001da1c gfx_info
| 0x080553e0 0749 ldr r1, [0x08055400] ; [0x8055400:4]=0x200049e4 address_of_gfx_jumptbl
| 0x080553e2 0968 ldr r1, [r1]
| 0x080553e4 8164 str r1, [r0, 0x48]
| 0x080553e6 0548 ldr r0, [0x080553fe] ; [0x80553fc:4]=0x2001da1c gfx_info
| 0x080553e8 0021 movs r1, 0
| 0x080553ea a0f84c10 strh.w r1, [r0, 0x4c]
| 0x080553ee 0348 ldr r0, [0x080553fe] ; [0x80553fc:4]=0x2001da1c gfx_info
| 0x080553f0 0449 ldr r1, [0x08055404] ; [0x8055404:4]=0x2001da20 gfx_info.off4
| 0x080553f2 0161 str r1, [r0, 0x10]
| 0x080553f4 ddf7bafe bl gfx_3316c
\ 0x080553f8 01bd pop {r0, pc}
/ (fcn) func_55408_gfx 28
| Caller: func_523c8
| func_55408_gfx ();
| 0x08055408 80b5 push {r7, lr}
| 0x0805540a 0648 ldr r0, [0x08055426] ; [0x8055424:4]=0x2001da1c gfx_info
| 0x0805540c 006b ldr r0, [r0, 0x30]
| 0x0805540e ddf7cffe bl gfx_setcolor_sub1
| 0x08055412 ddf7f3fc bl gfx_setcolor_sub2
| 0x08055416 0348 ldr r0, [0x08055426] ; [0x8055424:4]=0x2001da1c gfx_info
| 0x08055418 406b ldr r0, [r0, 0x34]
| 0x0805541a ddf7c9fe bl gfx_setcolor_sub1
| 0x0805541e ddf7f7fc bl gfx_setcolor_sub3
\ 0x08055422 01bd pop {r0, pc}
/ (fcn) func_55428_dummy 2
| Caller: func_52860
| func_55428_dummy ();
\ 0x08055428 7047 bx lr
/ (fcn) func_55706 682
| Caller: func_53030
| func_55706 ();
| 0x08055706 30b5 push {r4, r5, lr}
| 0x08055708 c1b0 sub sp, 0x104
| 0x0805570a 0500 movs r5, r0
| 0x0805570c 0c00 movs r4, r1
| 0x0805570e 1ca8 add r0, sp, 0x70
| 0x08055710 aa49 ldr r1, [0x080559bc] ; [0x80559bc:4]=0x80f86dc
| 0x08055712 1422 movs r2, 0x14 ; 20
| 0x08055714 ddf79afa bl func_32c4c
| 0x08055718 0fa8 add r0, sp, 0x3c
| 0x0805571a a949 ldr r1, [0x080559c2] ; [0x80559c0:4]=0x80fbdc8
| 0x0805571c 0cc9 ldm r1!, {r2, r3}
| 0x0805571e 0cc0 stm r0!, {r2, r3}
| 0x08055720 0839 subs r1, 8
| 0x08055722 0838 subs r0, 8
| 0x08055724 0c22 movs r2, 0xc ; 12
| 0x08055726 2900 movs r1, r5
| 0x08055728 09a8 add r0, sp, 0x24
| 0x0805572a fff7a9fe bl 0x8055480
| 0x0805572e 0020 movs r0, 0
| ,=< 0x08055730 05e0 b 0x805573e
| .--> 0x08055732 09a9 add r1, sp, 0x24
| || 0x08055734 415c ldrb r1, [r0, r1]
| || 0x08055736 c943 mvns r1, r1
| || 0x08055738 09aa add r2, sp, 0x24
| || 0x0805573a 8154 strb r1, [r0, r2]
| || 0x0805573c 401c adds r0, r0, 1
| |`-> 0x0805573e 0c28 cmp r0, 0xc ; 12
| `==< 0x08055740 f7db blt 0x8055732
| 0x08055742 2a00 movs r2, r5
| 0x08055744 6021 movs r1, 0x60 ; '`' ; 96
| 0x08055746 0020 movs r0, 0
| 0x08055748 fff770fe bl 0x805542c
| 0x0805574c 9d49 ldr r1, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x0805574e 0860 str r0, [r1]
| 0x08055750 9c48 ldr r0, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x08055752 0068 ldr r0, [r0]
| 0x08055754 000e lsrs r0, r0, 0x18
| 0x08055756 8df83000 strb.w r0, [sp, 0x30]
| 0x0805575a 9a48 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x0805575c 0068 ldr r0, [r0]
| 0x0805575e 000c lsrs r0, r0, 0x10
| 0x08055760 8df83100 strb.w r0, [sp, 0x31]
| 0x08055764 9748 ldr r0, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x08055766 0068 ldr r0, [r0]
| 0x08055768 000a lsrs r0, r0, 8
| 0x0805576a 8df83200 strb.w r0, [sp, 0x32]
| 0x0805576e 9548 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x08055770 0068 ldr r0, [r0]
| 0x08055772 8df83300 strb.w r0, [sp, 0x33]
| 0x08055776 0c22 movs r2, 0xc ; 12
| 0x08055778 2900 movs r1, r5
| 0x0805577a 11a8 add r0, sp, 0x44
| 0x0805577c fef784f9 bl func_53a88
| 0x08055780 09aa add r2, sp, 0x24
| 0x08055782 6021 movs r1, 0x60 ; '`' ; 96
| 0x08055784 0020 movs r0, 0
| 0x08055786 fff751fe bl 0x805542c
| 0x0805578a 8e49 ldr r1, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x0805578c 0860 str r0, [r1]
| 0x0805578e 8d48 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x08055790 0068 ldr r0, [r0]
| 0x08055792 000e lsrs r0, r0, 0x18
| 0x08055794 8df85000 strb.w r0, [sp, 0x50]
| 0x08055798 8a48 ldr r0, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x0805579a 0068 ldr r0, [r0]
| 0x0805579c 000c lsrs r0, r0, 0x10
| 0x0805579e 8df85100 strb.w r0, [sp, 0x51]
| 0x080557a2 8848 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x080557a4 0068 ldr r0, [r0]
| 0x080557a6 000a lsrs r0, r0, 8
| 0x080557a8 8df85200 strb.w r0, [sp, 0x52]
| 0x080557ac 8548 ldr r0, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x080557ae 0068 ldr r0, [r0]
| 0x080557b0 8df85300 strb.w r0, [sp, 0x53]
| 0x080557b4 0422 movs r2, 4 ; 4
| 0x080557b6 0fa9 add r1, sp, 0x3c
| 0x080557b8 0da8 add r0, sp, 0x34
| 0x080557ba fef765f9 bl func_53a88
| 0x080557be 09aa add r2, sp, 0x24
| 0x080557c0 a021 movs r1, 0xa0 ; 160
| 0x080557c2 0020 movs r0, 0
| 0x080557c4 fff732fe bl 0x805542c
| 0x080557c8 7e49 ldr r1, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x080557ca 0860 str r0, [r1]
| 0x080557cc 7d48 ldr r0, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x080557ce 0068 ldr r0, [r0]
| 0x080557d0 000e lsrs r0, r0, 0x18
| 0x080557d2 8df83800 strb.w r0, [sp, 0x38]
| 0x080557d6 7b48 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x080557d8 0068 ldr r0, [r0]
| 0x080557da 000c lsrs r0, r0, 0x10
| 0x080557dc 8df83900 strb.w r0, [sp, 0x39]
| 0x080557e0 7848 ldr r0, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x080557e2 0068 ldr r0, [r0]
| 0x080557e4 000a lsrs r0, r0, 8
| 0x080557e6 8df83a00 strb.w r0, [sp, 0x3a]
| 0x080557ea 7648 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x080557ec 0068 ldr r0, [r0]
| 0x080557ee 8df83b00 strb.w r0, [sp, 0x3b]
| 0x080557f2 0422 movs r2, 4 ; 4
| 0x080557f4 10a9 add r1, sp, 0x40
| 0x080557f6 15a8 add r0, sp, 0x54
| 0x080557f8 fef746f9 bl func_53a88
| 0x080557fc 11aa add r2, sp, 0x44
| 0x080557fe a021 movs r1, 0xa0 ; 160
| 0x08055800 0020 movs r0, 0
| 0x08055802 fff713fe bl 0x805542c
| 0x08055806 6f49 ldr r1, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x08055808 0860 str r0, [r1]
| 0x0805580a 6e48 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x0805580c 0068 ldr r0, [r0]
| 0x0805580e 000e lsrs r0, r0, 0x18
| 0x08055810 8df85800 strb.w r0, [sp, 0x58]
| 0x08055814 6b48 ldr r0, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x08055816 0068 ldr r0, [r0]
| 0x08055818 000c lsrs r0, r0, 0x10
| 0x0805581a 8df85900 strb.w r0, [sp, 0x59]
| 0x0805581e 6948 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x08055820 0068 ldr r0, [r0]
| 0x08055822 000a lsrs r0, r0, 8
| 0x08055824 8df85a00 strb.w r0, [sp, 0x5a]
| 0x08055828 6648 ldr r0, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x0805582a 0068 ldr r0, [r0]
| 0x0805582c 8df85b00 strb.w r0, [sp, 0x5b]
| 0x08055830 1822 movs r2, 0x18 ; 24
| 0x08055832 09a9 add r1, sp, 0x24
| 0x08055834 21a8 add r0, sp, 0x84
| 0x08055836 fef727f9 bl func_53a88
| 0x0805583a 1822 movs r2, 0x18 ; 24
| 0x0805583c 11a9 add r1, sp, 0x44
| 0x0805583e 28a8 add r0, sp, 0xa0
| 0x08055840 fef722f9 bl func_53a88
| 0x08055844 22aa add r2, sp, 0x88
| 0x08055846 a021 movs r1, 0xa0 ; 160
| 0x08055848 0020 movs r0, 0
| 0x0805584a fff7effd bl 0x805542c
| 0x0805584e 5d49 ldr r1, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x08055850 0860 str r0, [r1]
| 0x08055852 29aa add r2, sp, 0xa4
| 0x08055854 a021 movs r1, 0xa0 ; 160
| 0x08055856 5b48 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x08055858 0068 ldr r0, [r0]
| 0x0805585a fff7e7fd bl 0x805542c
| 0x0805585e 5949 ldr r1, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x08055860 0860 str r0, [r1]
| 0x08055862 5848 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x08055864 0068 ldr r0, [r0]
| 0x08055866 000e lsrs r0, r0, 0x18
| 0x08055868 8df89c00 strb.w r0, [sp, 0x9c]
| 0x0805586c 5548 ldr r0, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x0805586e 0068 ldr r0, [r0]
| 0x08055870 000c lsrs r0, r0, 0x10
| 0x08055872 8df89d00 strb.w r0, [sp, 0x9d]
| 0x08055876 5348 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x08055878 0068 ldr r0, [r0]
| 0x0805587a 000a lsrs r0, r0, 8
| 0x0805587c 8df89e00 strb.w r0, [sp, 0x9e]
| 0x08055880 5048 ldr r0, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x08055882 0068 ldr r0, [r0]
| 0x08055884 8df89f00 strb.w r0, [sp, 0x9f]
| 0x08055888 0c22 movs r2, 0xc ; 12
| 0x0805588a 0021 movs r1, 0
| 0x0805588c 2ea8 add r0, sp, 0xb8
| 0x0805588e fef7f1f8 bl func_53a74
| 0x08055892 8020 movs r0, 0x80 ; 128
| 0x08055894 8df8b800 strb.w r0, [sp, 0xb8]
| 0x08055898 0120 movs r0, 1 ; 1
| 0x0805589a 8df8c200 strb.w r0, [sp, 0xc2]
| 0x0805589e a020 movs r0, 0xa0 ; 160
| 0x080558a0 8df8c300 strb.w r0, [sp, 0xc3]
| 0x080558a4 4ff40070 mov.w r0, 0x200 ; 512
| 0x080558a8 0090 str r0, [sp]
| 0x080558aa 7923 movs r3, 0x79 ; 'y' ; 121
| 0x080558ac 4022 movs r2, 0x40 ; '@' ; 64
| 0x080558ae 21a9 add r1, sp, 0x84
| 0x080558b0 31a8 add r0, sp, 0xc4
| 0x080558b2 fff70efe bl 0x80554d2
| 0x080558b6 31aa add r2, sp, 0xc4
| 0x080558b8 17a9 add r1, sp, 0x5c
| 0x080558ba 1ca8 add r0, sp, 0x70
| 0x080558bc fff74afe bl 0x8055554
| 0x080558c0 0020 movs r0, 0
| ,=< 0x080558c2 1ee0 b 0x8055902
| .--> 0x080558c4 17a9 add r1, sp, 0x5c
| || 0x080558c6 51f82010 ldr.w r1, [r1, r0, lsl 2]
| || 0x080558ca 090e lsrs r1, r1, 0x18
| || 0x080558cc 01aa add r2, sp, 4
| || 0x080558ce 02f82010 strb.w r1, [r2, r0, lsl 2]
| || 0x080558d2 17a9 add r1, sp, 0x5c
| || 0x080558d4 51f82010 ldr.w r1, [r1, r0, lsl 2]
| || 0x080558d8 090c lsrs r1, r1, 0x10
| || 0x080558da 01aa add r2, sp, 4
| || 0x080558dc 12eb8002 adds.w r2, r2, r0, lsl 2
| || 0x080558e0 5170 strb r1, [r2, 1]
| || 0x080558e2 17a9 add r1, sp, 0x5c
| || 0x080558e4 51f82010 ldr.w r1, [r1, r0, lsl 2]
| || 0x080558e8 090a lsrs r1, r1, 8
| || 0x080558ea 01aa add r2, sp, 4
| || 0x080558ec 12eb8002 adds.w r2, r2, r0, lsl 2
| || 0x080558f0 9170 strb r1, [r2, 2]
| || 0x080558f2 01a9 add r1, sp, 4
| || 0x080558f4 11eb8001 adds.w r1, r1, r0, lsl 2
| || 0x080558f8 17aa add r2, sp, 0x5c
| || 0x080558fa 52f82020 ldr.w r2, [r2, r0, lsl 2]
| || 0x080558fe ca70 strb r2, [r1, 3]
| || 0x08055900 401c adds r0, r0, 1
| |`-> 0x08055902 0528 cmp r0, 5 ; 5
| `==< 0x08055904 dedb blt 0x80558c4
| 0x08055906 01aa add r2, sp, 4
| 0x08055908 a021 movs r1, 0xa0 ; 160
| 0x0805590a 0020 movs r0, 0
| 0x0805590c fff78efd bl 0x805542c
| 0x08055910 2c49 ldr r1, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x08055912 0860 str r0, [r1]
| 0x08055914 2b48 ldr r0, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x08055916 0068 ldr r0, [r0]
| 0x08055918 000e lsrs r0, r0, 0x18
| 0x0805591a 8df82000 strb.w r0, [sp, 0x20]
| 0x0805591e 2948 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x08055920 0068 ldr r0, [r0]
| 0x08055922 000c lsrs r0, r0, 0x10
| 0x08055924 8df82100 strb.w r0, [sp, 0x21]
| 0x08055928 2648 ldr r0, [0x080559c4] ; [0x80559c4:4]=0x2001e788
| 0x0805592a 0068 ldr r0, [r0]
| 0x0805592c 000a lsrs r0, r0, 8
| 0x0805592e 8df82200 strb.w r0, [sp, 0x22]
| 0x08055932 2448 ldr r0, [0x080559c6] ; [0x80559c4:4]=0x2001e788
| 0x08055934 0068 ldr r0, [r0]
| 0x08055936 8df82300 strb.w r0, [sp, 0x23]
| 0x0805593a 0020 movs r0, 0
| ,=< 0x0805593c 2be0 b 0x8055996
| .--> 0x0805593e 01a9 add r1, sp, 4
| || 0x08055940 11f82010 ldrb.w r1, [r1, r0, lsl 2]
| || 0x08055944 9df82020 ldrb.w r2, [sp, 0x20]
| || 0x08055948 5140 eors r1, r2
| || 0x0805594a 01aa add r2, sp, 4
| || 0x0805594c 12eb8002 adds.w r2, r2, r0, lsl 2
| || 0x08055950 1175 strb r1, [r2, 0x14]
| || 0x08055952 01a9 add r1, sp, 4
| || 0x08055954 11eb8001 adds.w r1, r1, r0, lsl 2
| || 0x08055958 4978 ldrb r1, [r1, 1]
| || 0x0805595a 9df82120 ldrb.w r2, [sp, 0x21]
| || 0x0805595e 5140 eors r1, r2
| || 0x08055960 01aa add r2, sp, 4
| || 0x08055962 12eb8002 adds.w r2, r2, r0, lsl 2
| || 0x08055966 5175 strb r1, [r2, 0x15]
| || 0x08055968 01a9 add r1, sp, 4
| || 0x0805596a 11eb8001 adds.w r1, r1, r0, lsl 2
| || 0x0805596e 8978 ldrb r1, [r1, 2]
| || 0x08055970 9df82220 ldrb.w r2, [sp, 0x22]
| || 0x08055974 5140 eors r1, r2
| || 0x08055976 01aa add r2, sp, 4
| || 0x08055978 12eb8002 adds.w r2, r2, r0, lsl 2
| || 0x0805597c 9175 strb r1, [r2, 0x16]
| || 0x0805597e 01a9 add r1, sp, 4
| || 0x08055980 11eb8001 adds.w r1, r1, r0, lsl 2
| || 0x08055984 c978 ldrb r1, [r1, 3]
| || 0x08055986 9df82320 ldrb.w r2, [sp, 0x23]
| || 0x0805598a 5140 eors r1, r2
| || 0x0805598c 01aa add r2, sp, 4
| || 0x0805598e 12eb8002 adds.w r2, r2, r0, lsl 2
| || 0x08055992 d175 strb r1, [r2, 0x17]
| || 0x08055994 401c adds r0, r0, 1
| |`-> 0x08055996 0328 cmp r0, 3 ; 3
| `==< 0x08055998 d1db blt 0x805593e
| 0x0805599a 4ff48070 mov.w r0, 0x100 ; 256
| 0x0805599e 0090 str r0, [sp]
| 0x080559a0 5b23 movs r3, 0x5b ; '[' ; 91
| 0x080559a2 2022 movs r2, 0x20 ; 32
| 0x080559a4 01a9 add r1, sp, 4
| 0x080559a6 2000 movs r0, r4
| 0x080559a8 fff793fd bl 0x80554d2
| 0x080559ac 41b0 add sp, 0x104
\ 0x080559ae 30bd pop {r4, r5, pc}
/ (fcn) func_559c8 30
| Caller: func_53030
| func_559c8 ();
| 0x080559c8 0300 movs r3, r0
| 0x080559ca 0020 movs r0, 0
| .-> 0x080559cc 13f0030f tst.w r3, 3 ; 3
| ,==< 0x080559d0 09d0 beq 0x80559e6
| || 0x080559d2 521e subs r2, r2, 1
| ,===< 0x080559d4 22bf ittt hs
| `---> 0x080559d6 13f8010b ldrb r0, [r3], 1
| || 0x080559da 11f801cb ldrb ip, [r1], 1
| || 0x080559de b0eb0c00 subs.w r0, r0, ip
| |`=< 0x080559e2 f3d0 beq 0x80559cc
\ | 0x080559e4 7047 bx lr
/ (fcn) func_55a2c 102
| Caller: func_530a8 func_6054c func_57ad0 func_54110 func_56b4c func_5dcb8
| func_5f994 func_5c8d4 func_55cc8 func_62d84
| func_55a2c ();
| 0x08055a2c 002a cmp r2, 0
| ,=< 0x08055a2e 2fdd ble 0x8055a90
| | 0x08055a30 80ea0103 eor.w r3, r0, r1
| | 0x08055a34 70b4 push {r4, r5, r6}
| | 0x08055a36 9c07 lsls r4, r3, 0x1e
| ,==< 0x08055a38 1ed4 bmi 0x8055a78
| || 0x08055a3a 8b07 lsls r3, r1, 0x1e
| ,===< 0x08055a3c 04d5 bpl 0x8055a48
| ||| 0x08055a3e 0b88 ldrh r3, [r1]
| ||| 0x08055a40 0380 strh r3, [r0]
| ||| 0x08055a42 013a subs r2, 1
| ||| 0x08055a44 0231 adds r1, 2
| ||| 0x08055a46 0230 adds r0, 2
| `---> 0x08055a48 531e subs r3, r2, 1
| || 0x08055a4a 002b cmp r3, 0
| ,===< 0x08055a4c 12dd ble 0x8055a74
| ||| 0x08055a4e 051f subs r5, r0, 4
| ||| 0x08055a50 0c46 mov r4, r1
| ||| 0x08055a52 00bf nop
| .----> 0x08055a54 023b subs r3, 2
| |||| 0x08055a56 54f8046b ldr r6, [r4], 4
| |||| 0x08055a5a 45f8046f str r6, [r5, 4]!
| |||| 0x08055a5e 002b cmp r3, 0
| `====< 0x08055a60 f8dc bgt 0x8055a54
| ||| 0x08055a62 931e subs r3, r2, 2
| ||| 0x08055a64 5c08 lsrs r4, r3, 1
| ||| 0x08055a66 651c adds r5, r4, 1
| ||| 0x08055a68 d31e subs r3, r2, 3
| ||| 0x08055a6a aa00 lsls r2, r5, 2
| ||| 0x08055a6c a3eb4403 sub.w r3, r3, r4, lsl 1
| ||| 0x08055a70 1044 add r0, r2
| ||| 0x08055a72 1144 add r1, r2
| `---> 0x08055a74 5a1c adds r2, r3, 1
| ,===< 0x08055a76 0ad0 beq 0x8055a8e
| |`--> 0x08055a78 5200 lsls r2, r2, 1
| | | 0x08055a7a 8d18 adds r5, r1, r2
| | | 0x08055a7c 831e subs r3, r0, 2
| | | 0x08055a7e 00bf nop
| |.--> 0x08055a80 31f8024b ldrh r4, [r1], 2
| ||| 0x08055a84 23f8024f strh r4, [r3, 2]!
| ||| 0x08055a88 a942 cmp r1, r5
| |`==< 0x08055a8a f9d1 bne 0x8055a80
| | | 0x08055a8c 1044 add r0, r2
| `---> 0x08055a8e 70bc pop {r4, r5, r6}
\ `-> 0x08055a90 7047 bx lr
/ (fcn) ambe_55a94 60
| Caller: func_53c20 ambe_58110 func_57ba8 func_62416 func_6005c func_5c8d4
| func_580d8 ambe_decode_wav func_5f994 func_5753c func_574cc func_53574
| func_53778 func_6054c
| ambe_55a94 ();
| 0x08055a94 002a cmp r2, 0
| ,=< 0x08055a96 1add ble 0x8055ace
| | 0x08055a98 8307 lsls r3, r0, 0x1e
| | 0x08055a9a 30b4 push {r4, r5}
| ,==< 0x08055a9c 18d4 bmi 0x8055ad0
| || 0x08055a9e 531e subs r3, r2, 1
| || 0x08055aa0 002b cmp r3, 0
| ,===< 0x08055aa2 10dd ble 0x8055ac6
| ||| 0x08055aa4 0d04 lsls r5, r1, 0x10
| ||| 0x08055aa6 15fa81f5 uxtah r5, r5, r1
| ||| 0x08055aaa 0446 mov r4, r0
| .----> 0x08055aac 023b subs r3, 2
| |||| 0x08055aae 002b cmp r3, 0
| |||| 0x08055ab0 44f8045b str r5, [r4], 4
| `====< 0x08055ab4 fadc bgt 0x8055aac
| ||| 0x08055ab6 931e subs r3, r2, 2
| ||| 0x08055ab8 5c08 lsrs r4, r3, 1
| ||| 0x08055aba 033a subs r2, 3
| ||| 0x08055abc 651c adds r5, r4, 1
| ||| 0x08055abe a2eb4403 sub.w r3, r2, r4, lsl 1
| ||| 0x08055ac2 00eb8500 add.w r0, r0, r5, lsl 2
| ,`---> 0x08055ac6 0bb9 cbnz r3, 0x8055acc
| | || 0x08055ac8 0180 strh r1, [r0]
| | || 0x08055aca 0230 adds r0, 2
| `----> 0x08055acc 30bc pop {r4, r5}
\ |`-> 0x08055ace 7047 bx lr
/ (fcn) func_55ad8 198
| Caller: ambe_58110 func_55ba0
| func_55ad8 ();
| 0x08055ad8 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08055adc 87b0 sub sp, 0x1c
| 0x08055ade d2f80080 ldr.w r8, [r2]
| 0x08055ae2 0190 str r0, [sp, 4]
| 0x08055ae4 1046 mov r0, r2
| 0x08055ae6 0491 str r1, [sp, 0x10]
| 0x08055ae8 4468 ldr r4, [r0, 4]
| 0x08055aea 0669 ldr r6, [r0, 0x10]
| 0x08055aec 0592 str r2, [sp, 0x14]
| 0x08055aee d2f808c0 ldr.w ip, [r2, 8]
| 0x08055af2 d2f80ce0 ldr.w lr, [r2, 0xc]
| 0x08055af6 4069 ldr r0, [r0, 0x14]
| 0x08055af8 4ff0ff39 mov.w sb, -1 ; -1
| 0x08055afc 1946 mov r1, r3
| ,=< 0x08055afe 01e0 b 0x8055b04
| .--> 0x08055b00 9646 mov lr, r2
| || 0x08055b02 d446 mov ip, sl
| |`-> 0x08055b04 019b ldr r3, [sp, 4]
| | 0x08055b06 53f8047b ldr r7, [r3], 4
| | 0x08055b0a 0193 str r3, [sp, 4]
| | 0x08055b0c 47f6ab03 movw r3, 0x78ab
| | 0x08055b10 84fb0345 smull r4, r5, r4, r3
| | 0x08055b14 47f6af0a movw sl, 0x78af
| | 0x08055b18 80fb0aab smull sl, fp, r0, sl
| | 0x08055b1c e00b lsrs r0, r4, 0xf
| | 0x08055b1e cde902ab strd sl, fp, [sp, 8]
| | 0x08055b22 40ea4540 orr.w r0, r0, r5, lsl 17
| | 0x08055b26 3a46 mov r2, r7
| | 0x08055b28 fb17 asrs r3, r7, 0x1f
| | 0x08055b2a c9fb0823 smlal r2, r3, sb, r8
| | 0x08055b2e 9246 mov sl, r2
| | 0x08055b30 9b46 mov fp, r3
| | 0x08055b32 0123 movs r3, 1 ; 1
| | 0x08055b34 c3fb00ab smlal sl, fp, r3, r0
| | 0x08055b38 6ff00100 mvn r0, 1
| | 0x08055b3c 5246 mov r2, sl
| | 0x08055b3e 5b46 mov r3, fp
| | 0x08055b40 c0fb0c23 smlal r2, r3, r0, ip
| | 0x08055b44 0120 movs r0, 1 ; 1
| | 0x08055b46 c0fb0623 smlal r2, r3, r0, r6
| | 0x08055b4a 47f62040 movw r0, 0x7c20
| | 0x08055b4e 8efb0045 smull r4, r5, lr, r0
| | 0x08055b52 b846 mov r8, r7
| | 0x08055b54 dde90267 ldrd r6, r7, [sp, 8]
| | 0x08055b58 e00b lsrs r0, r4, 0xf
| | 0x08055b5a 40ea4540 orr.w r0, r0, r5, lsl 17
| | 0x08055b5e 0224 movs r4, 2 ; 2
| | 0x08055b60 c4fb0023 smlal r2, r3, r4, r0
| | 0x08055b64 0498 ldr r0, [sp, 0x10]
| | 0x08055b66 f50b lsrs r5, r6, 0xf
| | 0x08055b68 45ea4745 orr.w r5, r5, r7, lsl 17
| | 0x08055b6c c9fb0523 smlal r2, r3, sb, r5
| | 0x08055b70 40f8042b str r2, [r0], 4
| | 0x08055b74 0139 subs r1, 1
| | 0x08055b76 0490 str r0, [sp, 0x10]
| | 0x08055b78 5446 mov r4, sl
| | 0x08055b7a 6646 mov r6, ip
| | 0x08055b7c 7046 mov r0, lr
| `==< 0x08055b7e bfd1 bne 0x8055b00
| 0x08055b80 0598 ldr r0, [sp, 0x14]
| 0x08055b82 c0f80080 str.w r8, [r0]
| 0x08055b86 c0f804a0 str.w sl, [r0, 4]
| 0x08055b8a c0f808a0 str.w sl, [r0, 8]
| 0x08055b8e c260 str r2, [r0, 0xc]
| 0x08055b90 c0f810c0 str.w ip, [r0, 0x10]
| 0x08055b94 c0f814e0 str.w lr, [r0, 0x14]
| 0x08055b98 07b0 add sp, 0x1c
\ 0x08055b9a bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_55ba0 78
| Caller: func_530a8
| func_55ba0 ();
| 0x08055ba0 f0b5 push {r4, r5, r6, r7, lr}
| 0x08055ba2 5e00 lsls r6, r3, 1
| 0x08055ba4 d5b0 sub sp, 0x154
| 0x08055ba6 0c46 mov r4, r1
| 0x08055ba8 9719 adds r7, r2, r6
| 0x08055baa 6d46 mov r5, sp
| .-> 0x08055bac 32f9021b ldrsh r1, [r2], 2
| | 0x08055bb0 8903 lsls r1, r1, 0xe
| | 0x08055bb2 ba42 cmp r2, r7
| | 0x08055bb4 45f8041b str r1, [r5], 4
| `=< 0x08055bb8 f8d1 bne 0x8055bac
| 0x08055bba 0246 mov r2, r0
| 0x08055bbc 6946 mov r1, sp
| 0x08055bbe 6846 mov r0, sp
| 0x08055bc0 fff78aff bl func_55ad8
| 0x08055bc4 6d46 mov r5, sp
| 0x08055bc6 a219 adds r2, r4, r6
| 0x08055bc8 47f6aa06 movw r6, 0x78aa
| .-> 0x08055bcc 55f8040b ldr r0, [r5], 4
| | 0x08055bd0 80fb0601 smull r0, r1, r0, r6
| | 0x08055bd4 c30b lsrs r3, r0, 0xf
| | 0x08055bd6 43ea4143 orr.w r3, r3, r1, lsl 17
| | 0x08055bda 03f50053 add.w r3, r3, 0x2000
| | 0x08055bde 23f38f33 ssat r3, 0x10, r3, asr 0xe
| | 0x08055be2 24f8023b strh r3, [r4], 2
| | 0x08055be6 9442 cmp r4, r2
| `=< 0x08055be8 f0d1 bne 0x8055bcc
| 0x08055bea 55b0 add sp, 0x154
\ 0x08055bec f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) func_55bf0 124
| Caller: func_55c78
| func_55bf0 ();
| 0x08055bf0 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x08055bf4 079f ldr r7, [sp, 0x1c]
| 0x08055bf6 ddf818e0 ldr.w lr, [sp, 0x18]
| 0x08055bfa 27f00104 bic r4, r7, 1
| 0x08055bfe a046 mov r8, r4
| 0x08055c00 023c subs r4, 2
| 0x08055c02 0eeb040c add.w ip, lr, r4
| 0x08055c06 01eb0806 add.w r6, r1, r8
| 0x08055c0a 0c44 add r4, r1
| ,=< 0x08055c0c 83bb cbnz r3, 0x8055c70
| | 0x08055c0e 02f10045 add.w r5, r2, -0x80000000
| | 0x08055c12 013d subs r5, 1
| | 0x08055c14 00eb4505 add.w r5, r0, r5, lsl 1
| | 0x08055c18 fb07 lsls r3, r7, 0x1f
| ,==< 0x08055c1a 0cd5 bpl 0x8055c36
| || 0x08055c1c 3ef808e0 ldrh.w lr, [lr, r8]
| || 0x08055c20 31f80830 ldrh.w r3, [r1, r8]
| || 0x08055c24 1efb03f3 smulbb r3, lr, r3
| || 0x08055c28 5b00 lsls r3, r3, 1
| || 0x08055c2a 03f50043 add.w r3, r3, 0x8000
| || 0x08055c2e 1b14 asrs r3, r3, 0x10
| || 0x08055c30 0380 strh r3, [r0]
| || 0x08055c32 0236 adds r6, 2
| || 0x08055c34 0230 adds r0, 2
| `--> 0x08055c36 8044 add r8, r0
| | 0x08055c38 4ff4804e mov.w lr, 0x4000
| .--> 0x08055c3c 3cf90239 ldrsh r3, [ip], -2
| || 0x08055c40 36f9021b ldrsh r1, [r6], 2
| || 0x08055c44 13fb01e1 smlabb r1, r3, r1, lr
| || 0x08055c48 c913 asrs r1, r1, 0xf
| || 0x08055c4a 20f8021b strh r1, [r0], 2
| || 0x08055c4e 34f90219 ldrsh r1, [r4], -2
| || 0x08055c52 13fb01e3 smlabb r3, r3, r1, lr
| || 0x08055c56 4045 cmp r0, r8
| || 0x08055c58 4feae333 asr.w r3, r3, 0xf
| || 0x08055c5c 25f80239 strh r3, [r5], -2
| `==< 0x08055c60 ecd1 bne 0x8055c3c
| | 0x08055c62 d21b subs r2, r2, r7
| | 0x08055c64 12b2 sxth r2, r2
| | 0x08055c66 0021 movs r1, 0
\ | 0x08055c68 bde8f041 pop.w {r4, r5, r6, r7, r8, lr}
/ (fcn) func_55c78 78
| Caller: func_55cc8
| func_55c78 ();
| 0x08055c78 2de9f042 push.w {r4, r5, r6, r7, sb, lr}
| 0x08055c7c 82b0 sub sp, 8
| 0x08055c7e 0124 movs r4, 1 ; 1
| 0x08055c80 0c9f ldr r7, [sp, 0x30]
| 0x08055c82 089d ldr r5, [sp, 0x20]
| 0x08055c84 0093 str r3, [sp]
| 0x08055c86 bc40 lsls r4, r7
| 0x08055c88 099b ldr r3, [sp, 0x24]
| 0x08055c8a 0193 str r3, [sp, 4]
| 0x08055c8c 9146 mov sb, r2
| 0x08055c8e 0a9b ldr r3, [sp, 0x28]
| 0x08055c90 2246 mov r2, r4
| 0x08055c92 0646 mov r6, r0
| 0x08055c94 0b98 ldr r0, [sp, 0x2c]
| 0x08055c96 fff7abff bl func_55bf0
| 0x08055c9a 09eb0501 add.w r1, sb, r5
| 0x08055c9e 0b98 ldr r0, [sp, 0x2c]
| 0x08055ca0 0d9b ldr r3, [sp, 0x34]
| 0x08055ca2 3a46 mov r2, r7
| 0x08055ca4 04f074fa bl func_5a190
| 0x08055ca8 0546 mov r5, r0
| ,=< 0x08055caa 46b1 cbz r6, 0x8055cbe
| | 0x08055cac 0d9b ldr r3, [sp, 0x34]
| | 0x08055cae 0b99 ldr r1, [sp, 0x2c]
| | 0x08055cb0 03eb6402 add.w r2, r3, r4, asr 1
| | 0x08055cb4 12b2 sxth r2, r2
| | 0x08055cb6 3046 mov r0, r6
| | 0x08055cb8 6d00 lsls r5, r5, 1
| | 0x08055cba 04f0f9fb bl func_5a4b0
| `-> 0x08055cbe 2846 mov r0, r5
| 0x08055cc0 02b0 add sp, 8
\ 0x08055cc2 bde8f082 pop.w {r4, r5, r6, r7, sb, pc}
/ (fcn) func_55cc8 80
| Caller: func_530a8
| func_55cc8 ();
| 0x08055cc8 2de9f046 push.w {r4, r5, r6, r7, sb, sl, lr}
| 0x08055ccc adf5097d sub.w sp, sp, 0x224
| 0x08055cd0 8246 mov sl, r0
| 0x08055cd2 909c ldr r4, [sp, 0x240]
| 0x08055cd4 919f ldr r7, [sp, 0x244]
| 0x08055cd6 9146 mov sb, r2
| 0x08055cd8 0026 movs r6, 0
| 0x08055cda 22b2 sxth r2, r4
| 0x08055cdc 08a8 add r0, sp, 0x20
| 0x08055cde 1d46 mov r5, r3
| 0x08055ce0 0796 str r6, [sp, 0x1c]
| 0x08055ce2 fff7a3fe bl func_55a2c
| 0x08055ce6 08a8 add r0, sp, 0x20
| 0x08055ce8 0146 mov r1, r0
| 0x08055cea 2246 mov r2, r4
| 0x08055cec 07ab add r3, sp, 0x1c
| 0x08055cee 04f03ffc bl func_5a570
| 0x08055cf2 929b ldr r3, [sp, 0x248]
| 0x08055cf4 0393 str r3, [sp, 0xc]
| 0x08055cf6 939b ldr r3, [sp, 0x24c]
| 0x08055cf8 0493 str r3, [sp, 0x10]
| 0x08055cfa 949b ldr r3, [sp, 0x250]
| 0x08055cfc 0593 str r3, [sp, 0x14]
| 0x08055cfe 079a ldr r2, [sp, 0x1c]
| 0x08055d00 0095 str r5, [sp]
| 0x08055d02 0194 str r4, [sp, 4]
| 0x08055d04 0297 str r7, [sp, 8]
| 0x08055d06 5046 mov r0, sl
| 0x08055d08 08a9 add r1, sp, 0x20
| 0x08055d0a 4b46 mov r3, sb
| 0x08055d0c fff7b4ff bl func_55c78
| 0x08055d10 0df5097d add.w sp, sp, 0x224
\ 0x08055d14 bde8f086 pop.w {r4, r5, r6, r7, sb, sl, pc}
/ (fcn) func_55d18 142
| func_55d18 ();
| 0x08055d18 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x08055d1a 042b cmp r3, 4 ; 4
| 0x08055d1c 4fea0242 lsl.w r2, r2, 0x10
| ,=< 0x08055d20 ccbf ite gt
| `-> 0x08055d22 5c1f subs r4, r3, 5
| 0x08055d24 c3f10504 rsb.w r4, r3, 5
| 0x08055d28 bdf91c50 ldrsh.w r5, [sp, 0x1c]
| 0x08055d2c bdf91870 ldrsh.w r7, [sp, 0x18]
| 0x08055d30 bdf92060 ldrsh.w r6, [sp, 0x20]
| ,=< 0x08055d34 ccbf ite gt
| `-> 0x08055d36 a240 lsls r2, r4
| 0x08055d38 2241 asrs r2, r4
| 0x08055d3a b5eb224f cmp.w r5, r2, asr 16
| ,=< 0x08055d3e 32da bge 0x8055da6
| | 0x08055d40 0904 lsls r1, r1, 0x10
| | 0x08055d42 099a ldr r2, [sp, 0x24]
| | 0x08055d44 c1eb0743 rsb r3, r1, r7, lsl 16
| | 0x08055d48 a3eb0243 sub.w r3, r3, r2, lsl 16
| | 0x08055d4c 002b cmp r3, 0
| ,==< 0x08055d4e 2add ble 0x8055da6
| || 0x08055d50 1b14 asrs r3, r3, 0x10
| || 0x08055d52 b3f5007f cmp.w r3, 0x200 ; 512
| ,===< 0x08055d56 a8bf it ge
| `---> 0x08055d58 4ff40073 mov.w r3, 0x200 ; 512
| || 0x08055d5c 03fb06f3 mul r3, r3, r6
| || 0x08055d60 5b00 lsls r3, r3, 1
| || 0x08055d62 1946 mov r1, r3
| || 0x08055d64 0029 cmp r1, 0
| ,===< 0x08055d66 b8bf it lt
| `---> 0x08055d68 c943 mvns r1, r1
| ,===< 0x08055d6a 1cbf itt ne
| `---> 0x08055d6c b1fa81f1 clz r1, r1
| || 0x08055d70 0139 subs r1, 1
| || 0x08055d72 09b2 sxth r1, r1
| || 0x08055d74 0446 mov r4, r0
| || 0x08055d76 03fa01f0 lsl.w r0, r3, r1
| || 0x08055d7a 0014 asrs r0, r0, 0x10
| || 0x08055d7c c1f10801 rsb.w r1, r1, 8
| || 0x08055d80 0322 movs r2, 3 ; 3
| || 0x08055d82 02f0fdff bl func_58d80
| || 0x08055d86 2388 ldrh r3, [r4]
| || 0x08055d88 10fb03f3 smulbb r3, r0, r3
| || 0x08055d8c 5800 lsls r0, r3, 1
| || 0x08055d8e 1b01 lsls r3, r3, 4
| || 0x08055d90 b0ebe30f cmp.w r0, r3, asr 3
| ,===< 0x08055d94 03d0 beq 0x8055d9e
| ||| 0x08055d96 c017 asrs r0, r0, 0x1f
| ||| 0x08055d98 80f00043 eor r3, r0, 0x80000000
| ||| 0x08055d9c db43 mvns r3, r3
| `---> 0x08055d9e 1b14 asrs r3, r3, 0x10
| || 0x08055da0 2380 strh r3, [r4]
| || 0x08055da2 0020 movs r0, 0
\ || 0x08055da4 f8bd pop {r3, r4, r5, r6, r7, pc}
/ (fcn) func_55dac 62
| Caller: func_56b4c
| func_55dac ();
| 0x08055dac 70b5 push {r4, r5, r6, lr}
| 0x08055dae 84b0 sub sp, 0x10
| 0x08055db0 1646 mov r6, r2
| 0x08055db2 0291 str r1, [sp, 8]
| 0x08055db4 02aa add r2, sp, 8
| 0x08055db6 8021 movs r1, 0x80 ; 128
| 0x08055db8 0393 str r3, [sp, 0xc]
| 0x08055dba 089c ldr r4, [sp, 0x20]
| 0x08055dbc 04f06cfa bl func_5a298
| 0x08055dc0 8021 movs r1, 0x80 ; 128
| 0x08055dc2 0546 mov r5, r0
| 0x08055dc4 03aa add r2, sp, 0xc
| 0x08055dc6 3046 mov r0, r6
| 0x08055dc8 04f066fa bl func_5a298
| 0x08055dcc 000c lsrs r0, r0, 0x10
| ,=< 0x08055dce 0cd1 bne 0x8055dea
| | 0x08055dd0 6ff00c03 mvn r3, 0xc
| | 0x08055dd4 0393 str r3, [sp, 0xc]
| | 0x08055dd6 46f6db02 movw r2, 0x68db
| | 0x08055dda 0299 ldr r1, [sp, 8]
| | 0x08055ddc 0094 str r4, [sp]
| | 0x08055dde 2846 mov r0, r5
| | 0x08055de0 02f08efe bl func_58b00
| | 0x08055de4 00b2 sxth r0, r0
| | 0x08055de6 04b0 add sp, 0x10
\ | 0x08055de8 70bd pop {r4, r5, r6, pc}
/ (fcn) func_55df0_unknown_end 54
| Caller: func_530a8
| func_55df0_unknown_end ();
| 0x08055df0 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08055df4 adf2946d subw sp, sp, 0x694
| 0x08055df8 1c46 mov r4, r3
| 0x08055dfa 2293 str r3, [sp, 0x88]
| 0x08055dfc 0094 str r4, [sp]
| 0x08055dfe ddf8b836 ldr.w r3, [sp, 0x6b8]
| 0x08055e02 1a91 str r1, [sp, 0x68]
| 0x08055e04 40f27f14 movw r4, 0x17f ; 383
| 0x08055e08 0df51379 add.w sb, sp, 0x24c
| 0x08055e0c 0646 mov r6, r0
| 0x08055e0e 1546 mov r5, r2
| 0x08055e10 2192 str r2, [sp, 0x84]
| 0x08055e12 0293 str r3, [sp, 8]
| 0x08055e14 4946 mov r1, sb
| 0x08055e16 0df5ca62 add.w r2, sp, 0x650
| 0x08055e1a 25ab add r3, sp, 0x94
| 0x08055e1c 0194 str r4, [sp, 4]
| 0x08055e1e bdf9c046 ldrsh.w r4, [sp, 0x6c0]
| 0x08055e22 1190 str r0, [sp, 0x44]
\ 0x08055e24 2394 str r4, [sp, 0x8c]
/ (fcn) func_56b4c 1006
| Caller: func_530a8
| func_56b4c ();
| 0x08056b4c 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08056b50 93b0 sub sp, 0x4c ; 'L'
| 0x08056b52 0546 mov r5, r0
| 0x08056b54 9e46 mov lr, r3
| 0x08056b56 05f23664 addw r4, r5, 0x636
| 0x08056b5a 0d93 str r3, [sp, 0x34]
| 0x08056b5c b0f90c36 ldrsh.w r3, [r0, 0x60c]
| 0x08056b60 0894 str r4, [sp, 0x20]
| 0x08056b62 b0f9d606 ldrsh.w r0, [r0, 0x6d6]
| 0x08056b66 0c92 str r2, [sp, 0x30]
| 0x08056b68 2746 mov r7, r4
| 0x08056b6a 05f28664 addw r4, r5, 0x686
| 0x08056b6e 0093 str r3, [sp]
| 0x08056b70 0e46 mov r6, r1
| 0x08056b72 5a10 asrs r2, r3, 1
| 0x08056b74 0390 str r0, [sp, 0xc]
| 0x08056b76 0197 str r7, [sp, 4]
| 0x08056b78 0294 str r4, [sp, 8]
| 0x08056b7a 05f5dc60 add.w r0, r5, 0x6e0
| 0x08056b7e 7146 mov r1, lr
| 0x08056b80 2b46 mov r3, r5
| 0x08056b82 05f0a7fe bl func_5c8d4
| 0x08056b86 002e cmp r6, 0
| ,=< 0x08056b88 40f38a81 ble.w 0x8056ea0
| | 0x08056b8c 1d9b ldr r3, [sp, 0x74]
| | 0x08056b8e b5f82c16 ldrh.w r1, [r5, 0x62c]
| | 0x08056b92 b3f88031 ldrh.w r3, [r3, 0x180]
| | 0x08056b96 0e93 str r3, [sp, 0x38]
| | 0x08056b98 0ab2 sxth r2, r1
| | 0x08056b9a 43f23333 movw r3, 0x3333
| | 0x08056b9e 9a42 cmp r2, r3
| ,==< 0x08056ba0 00f3cb81 bgt.w 0x8056f3a
| || 0x08056ba4 41f69913 movw r3, 0x1999
| || 0x08056ba8 9a42 cmp r2, r3
| ,===< 0x08056baa 00f35682 bgt.w 0x805705a
| ||| 0x08056bae b5f93036 ldrsh.w r3, [r5, 0x630]
| ||| 0x08056bb2 43f23330 movw r0, 0x3333
| ||| 0x08056bb6 8342 cmp r3, r0
| ,====< 0x08056bb8 00f3d181 bgt.w 0x8056f5e
| |||| 0x08056bbc 41f69910 movw r0, 0x1999
| |||| 0x08056bc0 8342 cmp r3, r0
| ,=====< 0x08056bc2 00f3d081 bgt.w 0x8056f66
| ||||| 0x08056bc6 b5f82206 ldrh.w r0, [r5, 0x622]
| ||||| 0x08056bca b5f92616 ldrsh.w r1, [r5, 0x626]
| ||||| 0x08056bce 1344 add r3, r2
| ||||| 0x08056bd0 40f6cb47 movw r7, 0xccb ; 3275
| ||||| 0x08056bd4 5b10 asrs r3, r3, 1
| ||||| 0x08056bd6 0604 lsls r6, r0, 0x10
| ||||| 0x08056bd8 0904 lsls r1, r1, 0x10
| ||||| 0x08056bda ba42 cmp r2, r7
| ||||| 0x08056bdc a5f82e36 strh.w r3, [r5, 0x62e]
| ||||| 0x08056be0 4fea610e asr.w lr, r1, 1
| ||||| 0x08056be4 4fea6603 asr.w r3, r6, 1
| ,======< 0x08056be8 16dc bgt 0x8056c18
| |||||| 0x08056bea b6eb0e06 subs.w r6, r6, lr
| ,=======< 0x08056bee 00f13d82 bmi.w 0x805706c
| ||||||| 0x08056bf2 41f69912 movw r2, 0x1999
| ||||||| 0x08056bf6 10fb02f2 smulbb r2, r0, r2
| ||||||| 0x08056bfa b6eb4202 subs.w r2, r6, r2, lsl 1
| ========< 0x08056bfe 00f14382 bmi.w 0x8057088
| ||||||| 0x08056c02 ce1a subs r6, r1, r3
| ========< 0x08056c04 00f13982 bmi.w 0x805707a
| ||||||| 0x08056c08 40f6cc42 movw r2, 0xccc ; 3276
| ||||||| 0x08056c0c 10fb02f0 smulbb r0, r0, r2
| ||||||| 0x08056c10 b6eb4002 subs.w r2, r6, r0, lsl 1
| ========< 0x08056c14 00f12582 bmi.w 0x8057062
| |`------> 0x08056c18 7344 add r3, lr
| | ||||| 0x08056c1a 1b14 asrs r3, r3, 0x10
| | ||||| 0x08056c1c a5f82436 strh.w r3, [r5, 0x624]
| | ||||| 0x08056c20 10aa add r2, sp, 0x40
| | ||||| 0x08056c22 b5f90e16 ldrsh.w r1, [r5, 0x60e]
| | ||||| 0x08056c26 b5f90c36 ldrsh.w r3, [r5, 0x60c]
| | ||||| 0x08056c2a 0092 str r2, [sp]
| | ||||| 0x08056c2c 05f50170 add.w r0, r5, 0x204
| | ||||| 0x08056c30 2a46 mov r2, r5
| | ||||| 0x08056c32 fff7bbf8 bl func_55dac
| | ||||| 0x08056c36 b5f8d626 ldrh.w r2, [r5, 0x6d6]
| | ||||| 0x08056c3a 109b ldr r3, [sp, 0x40]
| | ||||| 0x08056c3c b5f9da16 ldrsh.w r1, [r5, 0x6da]
| | ||||| 0x08056c40 0990 str r0, [sp, 0x24]
| | ||||| 0x08056c42 1344 add r3, r2
| | ||||| 0x08056c44 05f29666 addw r6, r5, 0x696
| | ||||| 0x08056c48 8046 mov r8, r0
| | ||||| 0x08056c4a 0691 str r1, [sp, 0x18]
| | ||||| 0x08056c4c a5f8d836 strh.w r3, [r5, 0x6d8]
| | ||||| 0x08056c50 05f25661 addw r1, r5, 0x656
| | ||||| 0x08056c54 13b2 sxth r3, r2
| | ||||| 0x08056c56 0898 ldr r0, [sp, 0x20]
| | ||||| 0x08056c58 0b96 str r6, [sp, 0x2c]
| | ||||| 0x08056c5a 3746 mov r7, r6
| | ||||| 0x08056c5c 0a91 str r1, [sp, 0x28]
| | ||||| 0x08056c5e 0593 str r3, [sp, 0x14]
| | ||||| 0x08056c60 8e46 mov lr, r1
| | ||||| 0x08056c62 05f24666 addw r6, r5, 0x646
| | ||||| 0x08056c66 05f23c6c addw ip, r5, 0x63c
| |.------> 0x08056c6a 30f9022b ldrsh r2, [r0], 2
| ||||||| 0x08056c6e 3ef9021b ldrsh r1, [lr], 2
| ||||||| 0x08056c72 34f8023b ldrh r3, [r4], 2
| ||||||| 0x08056c76 8a42 cmp r2, r1
| ||||||| 0x08056c78 13fb08f3 smulbb r3, r3, r8
| ========< 0x08056c7c a8bf it ge
| --------> 0x08056c7e 0a46 mov r2, r1
| ||||||| 0x08056c80 43f3cf33 sbfx r3, r3, 0xf, 0x10
| ||||||| 0x08056c84 6045 cmp r0, ip
| ||||||| 0x08056c86 26f8022b strh r2, [r6], 2
| ||||||| 0x08056c8a 27f8023b strh r3, [r7], 2
| |`======< 0x08056c8e ecd1 bne 0x8056c6a
| | ||||| 0x08056c90 05f2ac63 addw r3, r5, 0x6ac
| | ||||| 0x08056c94 0793 str r3, [sp, 0x1c]
| | ||||| 0x08056c96 05f24c63 addw r3, r5, 0x64c
| | ||||| 0x08056c9a 05f28c69 addw sb, r5, 0x68c
| | ||||| 0x08056c9e 4ff00008 mov.w r8, 0
| | ||||| 0x08056ca2 0493 str r3, [sp, 0x10]
| | ||||| 0x08056ca4 0f95 str r5, [sp, 0x3c]
| |.------> 0x08056ca6 089b ldr r3, [sp, 0x20]
| ||||||| 0x08056ca8 0798 ldr r0, [sp, 0x1c]
| ||||||| 0x08056caa 39f8025b ldrh r5, [sb], 2
| ||||||| 0x08056cae 30f8022b ldrh r2, [r0], 2
| ||||||| 0x08056cb2 0790 str r0, [sp, 0x1c]
| ||||||| 0x08056cb4 03eb0801 add.w r1, r3, r8
| ||||||| 0x08056cb8 0a9b ldr r3, [sp, 0x28]
| ||||||| 0x08056cba c888 ldrh r0, [r1, 6]
| ||||||| 0x08056cbc 059f ldr r7, [sp, 0x14]
| ||||||| 0x08056cbe 4344 add r3, r8
| ||||||| 0x08056cc0 1104 lsls r1, r2, 0x10
| ||||||| 0x08056cc2 dc88 ldrh r4, [r3, 6]
| ||||||| 0x08056cc4 2b04 lsls r3, r5, 0x10
| ||||||| 0x08056cc6 12fb04f4 smulbb r4, r2, r4
| ||||||| 0x08056cca 069a ldr r2, [sp, 0x18]
| ||||||| 0x08056ccc 8b46 mov fp, r1
| ||||||| 0x08056cce 9c46 mov ip, r3
| ||||||| 0x08056cd0 bbf1000f cmp.w fp, 0
| ========< 0x08056cd4 b8bf it lt
| --------> 0x08056cd6 6fea0b0b mvn.w fp, fp
| ========< 0x08056cda 1cbf itt ne
| --------> 0x08056cdc bbfa8bfb clz fp, fp
| ||||||| 0x08056ce0 abf1010b sub.w fp, fp, 1
| ||||||| 0x08056ce4 bcf1000f cmp.w ip, 0
| ========< 0x08056ce8 b8bf it lt
| --------> 0x08056cea 6fea0c0c mvn.w ip, ip
| ========< 0x08056cee 1cbf itt ne
| --------> 0x08056cf0 bcfa8cfc clz ip, ip
| ||||||| 0x08056cf4 acf1010c sub.w ip, ip, 1
| ||||||| 0x08056cf8 0ffa8bfb sxth.w fp, fp
| ||||||| 0x08056cfc 0ffa8cfc sxth.w ip, ip
| ||||||| 0x08056d00 15fb00f0 smulbb r0, r5, r0
| ||||||| 0x08056d04 cbeb0202 rsb r2, fp, r2
| ||||||| 0x08056d08 4000 lsls r0, r0, 1
| ||||||| 0x08056d0a 6400 lsls r4, r4, 1
| ||||||| 0x08056d0c 01fa0bf1 lsl.w r1, r1, fp
| ||||||| 0x08056d10 cceb070b rsb fp, ip, r7
| ||||||| 0x08056d14 8646 mov lr, r0
| ||||||| 0x08056d16 2646 mov r6, r4
| ||||||| 0x08056d18 bef1000f cmp.w lr, 0
| ========< 0x08056d1c b8bf it lt
| --------> 0x08056d1e 6fea0e0e mvn.w lr, lr
| ========< 0x08056d22 1cbf itt ne
| --------> 0x08056d24 befa8efe clz lr, lr
| ||||||| 0x08056d28 aef1010e sub.w lr, lr, 1
| ||||||| 0x08056d2c 002e cmp r6, 0
| ========< 0x08056d2e b8bf it lt
| --------> 0x08056d30 f643 mvns r6, r6
| ========< 0x08056d32 1cbf itt ne
| --------> 0x08056d34 b6fa86f6 clz r6, r6
| ||||||| 0x08056d38 013e subs r6, 1
| ||||||| 0x08056d3a 5a45 cmp r2, fp
| ||||||| 0x08056d3c 03fa0cf3 lsl.w r3, r3, ip
| ||||||| 0x08056d40 9446 mov ip, r2
| ========< 0x08056d42 b8bf it lt
| --------> 0x08056d44 dc46 mov ip, fp
| ||||||| 0x08056d46 0cf1010c add.w ip, ip, 1
| ||||||| 0x08056d4a c2eb0c02 rsb r2, r2, ip
| ||||||| 0x08056d4e 1141 asrs r1, r2
| ||||||| 0x08056d50 069a ldr r2, [sp, 0x18]
| ||||||| 0x08056d52 0ffa8efe sxth.w lr, lr
| ||||||| 0x08056d56 36b2 sxth r6, r6
| ||||||| 0x08056d58 ceeb070a rsb sl, lr, r7
| ||||||| 0x08056d5c 921b subs r2, r2, r6
| ||||||| 0x08056d5e 5245 cmp r2, sl
| ||||||| 0x08056d60 00fa0ef0 lsl.w r0, r0, lr
| ||||||| 0x08056d64 cbeb0c0b rsb fp, fp, ip
| ||||||| 0x08056d68 9646 mov lr, r2
| ========< 0x08056d6a b8bf it lt
| --------> 0x08056d6c d646 mov lr, sl
| ||||||| 0x08056d6e 0ef1010e add.w lr, lr, 1
| ||||||| 0x08056d72 43fa0bf3 asr.w r3, r3, fp
| ||||||| 0x08056d76 b440 lsls r4, r6
| ||||||| 0x08056d78 c2eb0e02 rsb r2, r2, lr
| ||||||| 0x08056d7c 1944 add r1, r3
| ||||||| 0x08056d7e caeb0e0a rsb sl, sl, lr
| ||||||| 0x08056d82 1441 asrs r4, r2
| ||||||| 0x08056d84 0e46 mov r6, r1
| ||||||| 0x08056d86 40fa0af0 asr.w r0, r0, sl
| ||||||| 0x08056d8a 002e cmp r6, 0
| ========< 0x08056d8c b8bf it lt
| --------> 0x08056d8e f643 mvns r6, r6
| ========< 0x08056d90 1cbf itt ne
| --------> 0x08056d92 b6fa86f6 clz r6, r6
| ||||||| 0x08056d96 013e subs r6, 1
| ||||||| 0x08056d98 36b2 sxth r6, r6
| ||||||| 0x08056d9a 2044 add r0, r4
| ||||||| 0x08056d9c b140 lsls r1, r6
| ||||||| 0x08056d9e 0446 mov r4, r0
| ||||||| 0x08056da0 002c cmp r4, 0
| ========< 0x08056da2 b8bf it lt
| --------> 0x08056da4 e443 mvns r4, r4
| ========< 0x08056da6 1cbf itt ne
| --------> 0x08056da8 b4fa84f4 clz r4, r4
| ||||||| 0x08056dac 013c subs r4, 1
| ||||||| 0x08056dae 0a0c lsrs r2, r1, 0x10
| ========< 0x08056db0 40f02881 bne.w 0x8057004
| ||||||| 0x08056db4 049a ldr r2, [sp, 0x10]
| ||||||| 0x08056db6 47f6ff73 movw r3, 0x7fff
| ||||||| 0x08056dba 1380 strh r3, [r2]
| ||||||| 0x08056dbc bdf82430 ldrh.w r3, [sp, 0x24]
| ||||||| 0x08056dc0 0b9a ldr r2, [sp, 0x2c]
| ||||||| 0x08056dc2 0499 ldr r1, [sp, 0x10]
| ||||||| 0x08056dc4 15fb03f5 smulbb r5, r5, r3
| ||||||| 0x08056dc8 1346 mov r3, r2
| ||||||| 0x08056dca 4344 add r3, r8
| ||||||| 0x08056dcc 45f3cf35 sbfx r5, r5, 0xf, 0x10
| ||||||| 0x08056dd0 0231 adds r1, 2
| ||||||| 0x08056dd2 9145 cmp sb, r2
| ||||||| 0x08056dd4 0491 str r1, [sp, 0x10]
| ||||||| 0x08056dd6 dd80 strh r5, [r3, 6]
| ||||||| 0x08056dd8 08f10208 add.w r8, r8, 2
| |`======< 0x08056ddc 7ff463af bne.w 0x8056ca6
| | ||||| 0x08056de0 0f9d ldr r5, [sp, 0x3c]
| | ||||| 0x08056de2 4b46 mov r3, sb
| | ||||| 0x08056de4 05f2a660 addw r0, r5, 0x6a6
| | ||||| 0x08056de8 0022 movs r2, 0
| | ||||| 0x08056dea 00bf nop
| |.------> 0x08056dec 33f9021b ldrsh r1, [r3], 2
| ||||||| 0x08056df0 8342 cmp r3, r0
| ||||||| 0x08056df2 42ea0102 orr.w r2, r2, r1
| |`======< 0x08056df6 f9d1 bne 0x8056dec
| | ||||| 0x08056df8 05f2a463 addw r3, r5, 0x6a4
| |,======< 0x08056dfc 32b9 cbnz r2, 0x8056e0c
| ||||||| 0x08056dfe 05f29461 addw r1, r5, 0x694
| ||||||| 0x08056e02 0122 movs r2, 1 ; 1
| --------> 0x08056e04 23f80229 strh r2, [r3], -2
| ||||||| 0x08056e08 8b42 cmp r3, r1
| ========< 0x08056e0a fbd1 bne 0x8056e04
| |`------> 0x08056e0c b5f93086 ldrsh.w r8, [r5, 0x630]
| | ||||| 0x08056e10 a048 ldr r0, [0x08057094] ; [0x8057094:4]=0x66660000
| | ||||| 0x08056e12 0e9f ldr r7, [sp, 0x38]
| | ||||| 0x08056e14 40f6cb43 movw r3, 0xccb ; 3275
| | ||||| 0x08056e18 9845 cmp r8, r3
| |,======< 0x08056e1a ccbf ite gt
| |`------> 0x08056e1c 4ff00008 mov.w r8, 0
| | ||||| 0x08056e20 4ff00108 mov.w r8, 1 ; 1
| | ||||| 0x08056e24 05f5df6c add.w ip, r5, 0x6f8
| | ||||| 0x08056e28 05f5e161 add.w r1, r5, 0x708
| | ||||| 0x08056e2c 05f5e364 add.w r4, r5, 0x718
| | ||||| 0x08056e30 0023 movs r3, 0
| | ||||| 0x08056e32 00bf nop
| =.------> 0x08056e34 17b1 cbz r7, 0x8056e3c
| ||||||| 0x08056e36 042b cmp r3, 4 ; 4
| ========< 0x08056e38 00f3b780 bgt.w 0x8056faa
| --------> 0x08056e3c b5f92867 ldrsh.w r6, [r5, 0x728]
| ||||||| 0x08056e40 6ff00202 mvn r2, 2
| ||||||| 0x08056e44 921b subs r2, r2, r6
| ||||||| 0x08056e46 002a cmp r2, 0
| ========< 0x08056e48 40f39880 ble.w 0x8056f7c
| ||||||| 0x08056e4c 00fa02f6 lsl.w r6, r0, r2
| ||||||| 0x08056e50 46fa02f2 asr.w r2, r6, r2
| ||||||| 0x08056e54 8242 cmp r2, r0
| ========< 0x08056e56 00f09480 beq.w 0x8056f82
| ||||||| 0x08056e5a b5f92a67 ldrsh.w r6, [r5, 0x72a]
| ||||||| 0x08056e5e 6ff00202 mvn r2, 2
| ||||||| 0x08056e62 921b subs r2, r2, r6
| ||||||| 0x08056e64 002a cmp r2, 0
| ||||||| 0x08056e66 4ff0000e mov.w lr, 0
| ========< 0x08056e6a 40f39980 ble.w 0x8056fa0
| ||||||| 0x08056e6e 00fa02f6 lsl.w r6, r0, r2
| ||||||| 0x08056e72 46fa02f2 asr.w r2, r6, r2
| ||||||| 0x08056e76 8242 cmp r2, r0
| ========< 0x08056e78 0cbf ite eq
| --------> 0x08056e7a 320c lsrs r2, r6, 0x10
| ||||||| 0x08056e7c 47f6ff72 movw r2, 0x7fff
| ||||||| 0x08056e80 b1f90090 ldrsh.w sb, [r1]
| ||||||| 0x08056e84 16b2 sxth r6, r2
| ||||||| 0x08056e86 b145 cmp sb, r6
| ========< 0x08056e88 03da bge 0x8056e92
| ||||||| 0x08056e8a bef1000f cmp.w lr, 0
| ========< 0x08056e8e 00d0 beq 0x8056e92
| ||||||| 0x08056e90 0a80 strh r2, [r1]
| --------> 0x08056e92 0133 adds r3, 1
| ||||||| 0x08056e94 082b cmp r3, 8 ; 8
| ||||||| 0x08056e96 01f10201 add.w r1, r1, 2
| ||||||| 0x08056e9a 04f10204 add.w r4, r4, 2
| |`======< 0x08056e9e c9d1 bne 0x8056e34
| | ||||`-> 0x08056ea0 05f2ce74 addw r4, r5, 0x7ce
| | |||| 0x08056ea4 2146 mov r1, r4
| | |||| 0x08056ea6 05f66e00 addw r0, r5, 0x86e
| | |||| 0x08056eaa 5022 movs r2, 0x50 ; 'P' ; 80
| | |||| 0x08056eac fef7befd bl func_55a2c
| | |||| 0x08056eb0 05f22e76 addw r6, r5, 0x72e
| | |||| 0x08056eb4 b5f81229 ldrh.w r2, [r5, 0x912]
| | |||| 0x08056eb8 b5f81439 ldrh.w r3, [r5, 0x914]
| | |||| 0x08056ebc a5f81629 strh.w r2, [r5, 0x916]
| | |||| 0x08056ec0 a5f81839 strh.w r3, [r5, 0x918]
| | |||| 0x08056ec4 3146 mov r1, r6
| | |||| 0x08056ec6 2046 mov r0, r4
| | |||| 0x08056ec8 5022 movs r2, 0x50 ; 'P' ; 80
| | |||| 0x08056eca fef7affd bl func_55a2c
| | |||| 0x08056ece 1c9b ldr r3, [sp, 0x70]
| | |||| 0x08056ed0 ddf83480 ldr.w r8, [sp, 0x34]
| | |||| 0x08056ed4 0c9f ldr r7, [sp, 0x30]
| | |||| 0x08056ed6 b5f80e29 ldrh.w r2, [r5, 0x90e]
| | |||| 0x08056eda a5f81229 strh.w r2, [r5, 0x912]
| | |||| 0x08056ede c3ebc334 rsb r4, r3, r3, lsl 15
| | |||| 0x08056ee2 6400 lsls r4, r4, 1
| | |||| 0x08056ee4 a4b2 uxth r4, r4
| | |||| 0x08056ee6 04f1e401 add.w r1, r4, 0xe4
| | |||| 0x08056eea b5f81039 ldrh.w r3, [r5, 0x910]
| | |||| 0x08056eee a5f81439 strh.w r3, [r5, 0x914]
| | |||| 0x08056ef2 09b2 sxth r1, r1
| | |||| 0x08056ef4 07eb4101 add.w r1, r7, r1, lsl 1
| | |||| 0x08056ef8 4046 mov r0, r8
| | |||| 0x08056efa 5022 movs r2, 0x50 ; 'P' ; 80
| | |||| 0x08056efc fef796fd bl func_55a2c
| | |||| 0x08056f00 4146 mov r1, r8
| | |||| 0x08056f02 654b ldr r3, [0x0805709a] ; [0x8057098:4]=0x80944a8
| | |||| 0x08056f04 3046 mov r0, r6
| | |||| 0x08056f06 0f22 movs r2, 0xf ; 15
| | |||| 0x08056f08 05f044ff bl func_5cd94
| | |||| 0x08056f0c 04f58671 add.w r1, r4, 0x10c
| | |||| 0x08056f10 09b2 sxth r1, r1
| | |||| 0x08056f12 07eb4101 add.w r1, r7, r1, lsl 1
| | |||| 0x08056f16 a5f80e09 strh.w r0, [r5, 0x90e]
| | |||| 0x08056f1a 5022 movs r2, 0x50 ; 'P' ; 80
| | |||| 0x08056f1c 4046 mov r0, r8
| | |||| 0x08056f1e fef785fd bl func_55a2c
| | |||| 0x08056f22 4146 mov r1, r8
| | |||| 0x08056f24 05f27e70 addw r0, r5, 0x77e
| | |||| 0x08056f28 0f22 movs r2, 0xf ; 15
| | |||| 0x08056f2a 5b4b ldr r3, [0x0805709a] ; [0x8057098:4]=0x80944a8
| | |||| 0x08056f2c 05f032ff bl func_5cd94
| | |||| 0x08056f30 a5f81009 strh.w r0, [r5, 0x910]
| | |||| 0x08056f34 13b0 add sp, 0x4c
\ | |||| 0x08056f36 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_5709c 32
| Caller: func_530a8
| func_5709c ();
| 0x0805709c f0b5 push {r4, r5, r6, r7, lr}
| 0x0805709e 85b0 sub sp, 0x14
| 0x080570a0 13f48053 ands r3, r3, 0x1000
| 0x080570a4 0a9d ldr r5, [sp, 0x28]
| ,=< 0x080570a6 09d1 bne 0x80570bc
| | 0x080570a8 00eb8502 add.w r2, r0, r5, lsl 2
| | 0x080570ac 00eb4501 add.w r1, r0, r5, lsl 1
| | 0x080570b0 ff24 movs r4, 0xff ; 255
| | 0x080570b2 4c81 strh r4, [r1, 0xa]
| | 0x080570b4 d381 strh r3, [r2, 0xe]
| | 0x080570b6 1382 strh r3, [r2, 0x10]
| | 0x080570b8 05b0 add sp, 0x14
\ | 0x080570ba f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) func_5715c 374
| Caller: ambe_encode_thing__size_not_correct
| func_5715c ();
| 0x0805715c 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08057160 f3b0 sub sp, 0x1cc
| 0x08057162 41f28a35 movw r5, 0x138a
| 0x08057166 7c9c ldr r4, [sp, 0x1f0]
| 0x08057168 0c90 str r0, [sp, 0x30]
| 0x0805716a 605f ldrsh r0, [r4, r5]
| 0x0805716c bdf9f491 ldrsh.w sb, [sp, 0x1f4]
| 0x08057170 0d91 str r1, [sp, 0x34]
| 0x08057172 1646 mov r6, r2
| ,=< 0x08057174 08b9 cbnz r0, 0x805717a
| | 0x08057176 22f40066 bic r6, r2, 0x800
| `-> 0x0805717a 1bad add r5, sp, 0x6c
| 0x0805717c 04f59151 add.w r1, r4, 0x1220
| 0x08057180 0e31 adds r1, 0xe
| 0x08057182 04f24e62 addw r2, r4, 0x64e
| 0x08057186 04f29e67 addw r7, r4, 0x69e
| 0x0805718a b4f830e6 ldrh.w lr, [r4, 0x630]
| 0x0805718e a963 str r1, [r5, 0x38]
| 0x08057190 04f23a6c addw ip, r4, 0x63a
| 0x08057194 04f11801 add.w r1, r4, 0x18
| 0x08057198 2a60 str r2, [r5]
| 0x0805719a 6f60 str r7, [r5, 4]
| 0x0805719c 04f22462 addw r2, r4, 0x624
| 0x080571a0 04f24677 addw r7, r4, 0x746
| 0x080571a4 04f59c58 add.w r8, r4, 0x1380
| 0x080571a8 a5f84230 strh.w r3, [r5, 0x42]
| 0x080571ac c5f808c0 str.w ip, [r5, 8]
| 0x080571b0 04f5df63 add.w r3, r4, 0x6f8
| 0x080571b4 04f6261c addw ip, r4, 0x926
| 0x080571b8 a5f810e0 strh.w lr, [r5, 0x10]
| 0x080571bc 6961 str r1, [r5, 0x14]
| 0x080571be 04f5e26e add.w lr, r4, 0x710
| 0x080571c2 04f5e861 add.w r1, r4, 0x740
| 0x080571c6 aa61 str r2, [r5, 0x18]
| 0x080571c8 ef61 str r7, [r5, 0x1c]
| 0x080571ca b4f87c29 ldrh.w r2, [r4, 0x97c]
| 0x080571ce c5f820c0 str.w ip, [r5, 0x20]
| 0x080571d2 04f62e27 addw r7, r4, 0xa2e
| 0x080571d6 08f10a08 add.w r8, r8, 0xa
| 0x080571da dff8ccc1 ldr.w ip, [0x080573ae] ; [0x80573ac:4]=0xbfa82904
| 0x080571de 6b62 str r3, [r5, 0x24]
| 0x080571e0 c5f828e0 str.w lr, [r5, 0x28]
| 0x080571e4 c6f38013 ubfx r3, r6, 6, 1
| 0x080571e8 4ff0000e mov.w lr, 0
| 0x080571ec e962 str r1, [r5, 0x2c]
| 0x080571ee 2a86 strh r2, [r5, 0x30]
| 0x080571f0 b4f88019 ldrh.w r1, [r4, 0x980]
| 0x080571f4 b4f8722a ldrh.w r2, [r4, 0xa72]
| 0x080571f8 6f63 str r7, [r5, 0x34]
| 0x080571fa 4046 mov r0, r8
| 0x080571fc 04f63817 addw r7, r4, 0x938
| 0x08057200 04f2446a addw sl, r4, 0x644
| 0x08057204 6b86 strh r3, [r5, 0x32]
| 0x08057206 c5f83cc0 str.w ip, [r5, 0x3c]
| 0x0805720a a5f840e0 strh.w lr, [r5, 0x40]
| 0x0805720e a5f84410 strh.w r1, [r5, 0x44]
| 0x08057212 a5f84620 strh.w r2, [r5, 0x46]
| 0x08057216 c5f80ca0 str.w sl, [r5, 0xc]
| 0x0805721a af64 str r7, [r5, 0x48]
| 0x0805721c 00f04ef9 bl func_574bc
| 0x08057220 0146 mov r1, r0
| 0x08057222 3846 mov r0, r7
| 0x08057224 04f04cfa bl func_5b6c0
| 0x08057228 16f48043 ands r3, r6, 0x4000
| 0x0805722c 8346 mov fp, r0
| ,=< 0x0805722e 50d0 beq 0x80572d2
| | 0x08057230 04f59b53 add.w r3, r4, 0x1360
| | 0x08057234 1033 adds r3, 0x10
| | 0x08057236 b3f90420 ldrsh.w r2, [r3, 4]
| | 0x0805723a 5b88 ldrh r3, [r3, 2]
| | 0x0805723c 1292 str r2, [sp, 0x48]
| | 0x0805723e 0df1440c add.w ip, sp, 0x44
| | 0x08057242 0df1480a add.w sl, sp, 0x48
| | 0x08057246 41f27031 movw r1, 0x1370
| | 0x0805724a 0120 movs r0, 1 ; 1
| | 0x0805724c 4bf40047 orr r7, fp, 0x8000
| | 0x08057250 acf80030 strh.w r3, [ip]
| | 0x08057254 acf80230 strh.w r3, [ip, 2]
| | 0x08057258 6052 strh r0, [r4, r1]
| | 0x0805725a 47f00207 orr r7, r7, 2
| | 0x0805725e b9f1000f cmp.w sb, 0
| ,==< 0x08057262 7bd1 bne 0x805735c
| || 0x08057264 4ff00309 mov.w sb, 3 ; 3
| || 0x08057268 0df14c0b add.w fp, sp, 0x4c
| || 0x0805726c 72ab add r3, sp, 0x1c8
| || 0x0805726e 04f5b551 add.w r1, r4, 0x16a0
| || 0x08057272 23f8882d strh r2, [r3, -0x88]!
| || 0x08057276 1a31 adds r1, 0x1a
| || 0x08057278 1846 mov r0, r3
| || 0x0805727a 0122 movs r2, 1 ; 1
| || 0x0805727c cdf83cc0 str.w ip, [sp, 0x3c]
| || 0x08057280 0e93 str r3, [sp, 0x38]
| || 0x08057282 00f025fc bl func_57ad0
| || 0x08057286 0e9b ldr r3, [sp, 0x38]
| || 0x08057288 0093 str r3, [sp]
| || 0x0805728a 04f6bc21 addw r1, r4, 0xabc
| || 0x0805728e 4423 movs r3, 0x44 ; 'D' ; 68
| || 0x08057290 bdf94041 ldrsh.w r4, [sp, 0x140]
| || 0x08057294 ddf83cc0 ldr.w ip, [sp, 0x3c]
| || 0x08057298 0291 str r1, [sp, 8]
| || 0x0805729a 06f40072 and r2, r6, 0x200
| || 0x0805729e 06f08006 and r6, r6, 0x80
| || 0x080572a2 0592 str r2, [sp, 0x14]
| || 0x080572a4 cdf810c0 str.w ip, [sp, 0x10]
| || 0x080572a8 cdf818b0 str.w fp, [sp, 0x18]
| || 0x080572ac cdf81c90 str.w sb, [sp, 0x1c]
| || 0x080572b0 cdf82080 str.w r8, [sp, 0x20]
| || 0x080572b4 0995 str r5, [sp, 0x24]
| || 0x080572b6 0c98 ldr r0, [sp, 0x30]
| || 0x080572b8 0394 str r4, [sp, 0xc]
| || 0x080572ba 0193 str r3, [sp, 4]
| || 0x080572bc 0a96 str r6, [sp, 0x28]
| || 0x080572be 0d99 ldr r1, [sp, 0x34]
| || 0x080572c0 caf80040 str.w r4, [sl]
| || 0x080572c4 2eaa add r2, sp, 0xb8
| || 0x080572c6 00f0d9f9 bl func_5767c
| || 0x080572ca 3846 mov r0, r7
| || 0x080572cc 73b0 add sp, 0x1cc
\ || 0x080572ce bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_573ac 10
| Caller: func_5753c func_574cc
| func_573ac ();
| 0x080573ac 0429 cmp r1, 4 ; 4
| ,=< 0x080573ae a8bf it ge
| `-> 0x080573b0 0421 movs r1, 4 ; 4
\ 0x080573b2 21eae171 bic.w r1, r1, r1, asr 31
/ (fcn) func_573b6 90
| func_573b6 ();
| 0x080573b6 f0b5 push {r4, r5, r6, r7, lr}
| 0x080573b8 0522 movs r2, 5 ; 5
| 0x080573ba 0323 movs r3, 3 ; 3
| 0x080573bc 0127 movs r7, 1 ; 1
| 0x080573be 0726 movs r6, 7 ; 7
| 0x080573c0 0425 movs r5, 4 ; 4
| 0x080573c2 4ff0090e mov.w lr, 9 ; 9
| 0x080573c6 4c1e subs r4, r1, 1
| 0x080573c8 0383 strh r3, [r0, 0x18]
| 0x080573ca c180 strh r1, [r0, 6]
| 0x080573cc a0f80ee0 strh.w lr, [r0, 0xe]
| 0x080573d0 00f10c03 add.w r3, r0, 0xc
| 0x080573d4 0780 strh r7, [r0]
| 0x080573d6 4780 strh r7, [r0, 2]
| 0x080573d8 0281 strh r2, [r0, 8]
| 0x080573da 8281 strh r2, [r0, 0xc]
| 0x080573dc 4282 strh r2, [r0, 0x12]
| 0x080573de 4681 strh r6, [r0, 0xa]
| 0x080573e0 0682 strh r6, [r0, 0x10]
| 0x080573e2 8582 strh r5, [r0, 0x14]
| 0x080573e4 c582 strh r5, [r0, 0x16]
| 0x080573e6 032c cmp r4, 3 ; 3
| ,=< 0x080573e8 05d8 bhi 0x80573f6
| | 0x080573ea dfe804f0 tbb [0x080573f2]
| | 0x080573ee 1c02 lsls r4, r3, 8
| | 0x080573f0 1711 asrs r7, r2, 4
| | 0x080573f2 0122 movs r2, 1 ; 1
| | 0x080573f4 0283 strh r2, [r0, 0x18]
| `-> 0x080573f6 00f11804 add.w r4, r0, 0x18
| 0x080573fa 0521 movs r1, 5 ; 5
| 0x080573fc 0c22 movs r2, 0xc ; 12
| ,=< 0x080573fe 01e0 b 0x8057404
| .--> 0x08057400 33f8021f ldrh r1, [r3, 2]!
| |`-> 0x08057404 a342 cmp r3, r4
| | 0x08057406 02fa81f2 sxtah r2, r2, r1
| `==< 0x0805740a f9d1 bne 0x8057400
| 0x0805740c 8280 strh r2, [r0, 4]
\ 0x0805740e f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) func_5742c 134
| func_5742c ();
| 0x0805742c 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08057430 89b0 sub sp, 0x24 ; '$'
| 0x08057432 0df11c0a add.w sl, sp, 0x1c
| 0x08057436 149c ldr r4, [sp, 0x50]
| 0x08057438 129e ldr r6, [sp, 0x48]
| 0x0805743a b4f93050 ldrsh.w r5, [r4, 0x30]
| 0x0805743e b4f84680 ldrh.w r8, [r4, 0x46]
| 0x08057442 b4f84470 ldrh.w r7, [r4, 0x44]
| 0x08057446 94e80050 ldm.w r4, {ip, lr}
| 0x0805744a 0095 str r5, [sp]
| 0x0805744c 139d ldr r5, [sp, 0x4c]
| 0x0805744e cdf80ca0 str.w sl, [sp, 0xc]
| 0x08057452 3544 add r5, r6
| 0x08057454 022d cmp r5, 2 ; 2
| 0x08057456 c8eb0707 rsb r7, r8, r7
| ,=< 0x0805745a b4bf ite lt
| `-> 0x0805745c 4ff0010b mov.w fp, 1 ; 1
| 0x08057460 4ff0020b mov.w fp, 2 ; 2
| 0x08057464 3fb2 sxth r7, r7
| 0x08057466 8046 mov r8, r0
| 0x08057468 9946 mov sb, r3
| 0x0805746a 0846 mov r0, r1
| 0x0805746c 7346 mov r3, lr
| 0x0805746e 1146 mov r1, r2
| 0x08057470 0497 str r7, [sp, 0x10]
| 0x08057472 6246 mov r2, ip
| 0x08057474 0195 str r5, [sp, 4]
| 0x08057476 cdf808b0 str.w fp, [sp, 8]
| 0x0805747a 06f01dfc bl func_5dcb8
| 0x0805747e e36a ldr r3, [r4, 0x2c]
| 0x08057480 a16a ldr r1, [r4, 0x28]
| 0x08057482 33f91520 ldrsh.w r2, [r3, r5, lsl 1]
| 0x08057486 c6f10106 rsb.w r6, r6, 1
| 0x0805748a 4846 mov r0, sb
| 0x0805748c 01eb0511 add.w r1, r1, r5, lsl 4
| 0x08057490 0023 movs r3, 0
| 0x08057492 36b2 sxth r6, r6
| 0x08057494 06f0d4fb bl func_5dc40
| 0x08057498 a068 ldr r0, [r4, 8]
| 0x0805749a e168 ldr r1, [r4, 0xc]
| 0x0805749c b4f91020 ldrsh.w r2, [r4, 0x10]
| 0x080574a0 0096 str r6, [sp]
| 0x080574a2 2b46 mov r3, r5
| 0x080574a4 06f004fd bl func_5deb0
| 0x080574a8 a8f80000 strh.w r0, [r8]
| 0x080574ac 09b0 add sp, 0x24
\ 0x080574ae bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_574b4 6
| Caller: func_53720 func_53298
| func_574b4 ();
| 0x080574b4 b0f90400 ldrsh.w r0, [r0, 4]
\ 0x080574b8 7047 bx lr
/ (fcn) func_574bc 6
| Caller: func_5715c
| func_574bc ();
| 0x080574bc b0f90200 ldrsh.w r0, [r0, 2]
\ 0x080574c0 7047 bx lr
/ (fcn) func_574cc 112
| func_574cc ();
| 0x080574cc f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x080574ce 1446 mov r4, r2
| 0x080574d0 0025 movs r5, 0
| 0x080574d2 44f22703 movw r3, 0x4027
| 0x080574d6 4ff0010c mov.w ip, 1 ; 1
| 0x080574da 4ff0ff0e mov.w lr, 0xff ; 255
| 0x080574de 0f22 movs r2, 0xf ; 15
| 0x080574e0 0646 mov r6, r0
| 0x080574e2 a280 strh r2, [r4, 4]
| 0x080574e4 a381 strh r3, [r4, 0xc]
| 0x080574e6 3822 movs r2, 0x38 ; '8' ; 56
| 0x080574e8 0f46 mov r7, r1
| 0x080574ea a4f800c0 strh.w ip, [r4]
| 0x080574ee 2946 mov r1, r5
| 0x080574f0 a4f802e0 strh.w lr, [r4, 2]
| 0x080574f4 e580 strh r5, [r4, 6]
| 0x080574f6 a560 str r5, [r4, 8]
| 0x080574f8 e581 strh r5, [r4, 0xe]
| 0x080574fa 04f11000 add.w r0, r4, 0x10
| 0x080574fe fef7c9fa bl ambe_55a94
| 0x08057502 43f23332 movw r2, 0x3333
| 0x08057506 4ff46053 mov.w r3, 0x3800
| 0x0805750a a4f88020 strh.w r2, [r4, 0x80]
| 0x0805750e a4f88450 strh.w r5, [r4, 0x84]
| 0x08057512 a4f88650 strh.w r5, [r4, 0x86]
| 0x08057516 a4f88850 strh.w r5, [r4, 0x88]
| 0x0805751a a4f88a50 strh.w r5, [r4, 0x8a]
| 0x0805751e a4f88230 strh.w r3, [r4, 0x82]
| 0x08057522 04f18c00 add.w r0, r4, 0x8c
| 0x08057526 2946 mov r1, r5
| 0x08057528 0322 movs r2, 3 ; 3
| 0x0805752a fef7b3fa bl ambe_55a94
| ,=< 0x0805752e 1eb1 cbz r6, 0x8057538
| | 0x08057530 3846 mov r0, r7
| | 0x08057532 2946 mov r1, r5
| | 0x08057534 fff73aff bl func_573ac
| `-> 0x08057538 0020 movs r0, 0
\ 0x0805753a f8bd pop {r3, r4, r5, r6, r7, pc}
/ (fcn) func_5753c 252
| func_5753c ();
| 0x0805753c 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08057540 87b0 sub sp, 0x1c
| 0x08057542 3d4c ldr r4, [0x0805763a] ; [0x8057638:4]=0x80fbdd0
| 0x08057544 159d ldr r5, [sp, 0x54]
| 0x08057546 a25c ldrb r2, [r4, r2]
| 0x08057548 b5f900e0 ldrsh.w lr, [r5]
| 0x0805754c 109e ldr r6, [sp, 0x40]
| 0x0805754e 149f ldr r7, [sp, 0x50]
| 0x08057550 ddf85890 ldr.w sb, [sp, 0x58]
| 0x08057554 bdf95cb0 ldrsh.w fp, [sp, 0x5c]
| 0x08057558 8246 mov sl, r0
| 0x0805755a 8846 mov r8, r1
| 0x0805755c 1c46 mov r4, r3
| 0x0805755e bef1000f cmp.w lr, 0
| ,=< 0x08057562 04d0 beq 0x805756e
| | 0x08057564 c2f13101 rsb.w r1, r2, 0x31
| | 0x08057568 2846 mov r0, r5
| | 0x0805756a fff71fff bl func_573ac
| `-> 0x0805756e 5046 mov r0, sl
| 0x08057570 0021 movs r1, 0
| 0x08057572 3122 movs r2, 0x31 ; '1' ; 49
| 0x08057574 fef78efa bl ambe_55a94
| 0x08057578 5146 mov r1, sl
| 0x0805757a 4046 mov r0, r8
| 0x0805757c 06f020fd bl func_5dfc0
| 0x08057580 1ffa87fa uxth.w sl, r7
| 0x08057584 032f cmp r7, 3 ; 3
| 0x08057586 a6f800a0 strh.w sl, [r6]
| 0x0805758a a4f800a0 strh.w sl, [r4]
| ,=< 0x0805758e 4ad0 beq 0x8057626
| | 0x08057590 b5f90820 ldrsh.w r2, [r5, 8]
| | 0x08057594 ff20 movs r0, 0xff ; 255
| | 0x08057596 09f12001 add.w r1, sb, 0x20
| | 0x0805759a 09f14003 add.w r3, sb, 0x40
| | 0x0805759e 6080 strh r0, [r4, 2]
| | 0x080575a0 8de80a00 stm.w sp, {r1, r3}
| | 0x080575a4 3846 mov r0, r7
| | 0x080575a6 4b46 mov r3, sb
| | 0x080575a8 0292 str r2, [sp, 8]
| | 0x080575aa 06f10801 add.w r1, r6, 8
| | 0x080575ae 04f10802 add.w r2, r4, 8
| | 0x080575b2 06f007fd bl func_5dfc4
| | 0x080575b6 b4f90e20 ldrsh.w r2, [r4, 0xe]
| | 0x080575ba b5f90a10 ldrsh.w r1, [r5, 0xa]
| | 0x080575be b6f90e30 ldrsh.w r3, [r6, 0xe]
| | 0x080575c2 0092 str r2, [sp]
| | 0x080575c4 0122 movs r2, 1 ; 1
| | 0x080575c6 0746 mov r7, r0
| | 0x080575c8 0191 str r1, [sp, 4]
| | 0x080575ca 0292 str r2, [sp, 8]
| | 0x080575cc 0df11600 add.w r0, sp, 0x16
| | 0x080575d0 3146 mov r1, r6
| | 0x080575d2 2246 mov r2, r4
| | 0x080575d4 06f070fe bl func_5e2b8
| ,==< 0x080575d8 b8b1 cbz r0, 0x805760a
| || 0x080575da 41f27902 movw r2, 0x1079
| || 0x080575de 3823 movs r3, 0x38 ; '8' ; 56
| || 0x080575e0 bdf81600 ldrh.w r0, [sp, 0x16]
| || 0x080575e4 b281 strh r2, [r6, 0xc]
| || 0x080575e6 a281 strh r2, [r4, 0xc]
| || 0x080575e8 b380 strh r3, [r6, 4]
| || 0x080575ea a380 strh r3, [r4, 4]
| .---> 0x080575ec 02b2 sxth r2, r0
| ||| 0x080575ee b5f90a10 ldrsh.w r1, [r5, 0xa]
| ||| 0x080575f2 4046 mov r0, r8
| ||| 0x080575f4 06f02aff bl func_5e44c
| ||| 0x080575f8 4046 mov r0, r8
| ||| 0x080575fa b5f90810 ldrsh.w r1, [r5, 8]
| ||| 0x080575fe 3a46 mov r2, r7
| ||| 0x08057600 06f024ff bl func_5e44c
| ||| 0x08057604 07b0 add sp, 0x1c
| ||| 0x08057606 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
| |`--> 0x0805760a b5f90a30 ldrsh.w r3, [r5, 0xa]
| | | 0x0805760e cdf800b0 str.w fp, [sp]
| | | 0x08057612 0ffa8af2 sxth.w r2, sl
| | | 0x08057616 04f10c00 add.w r0, r4, 0xc
| | | 0x0805761a 211d adds r1, r4, 4
| | | 0x0805761c 06f020ff bl func_5e460
| | | 0x08057620 adf81600 strh.w r0, [sp, 0x16]
| `===< 0x08057624 e2e7 b 0x80575ec
| `-> 0x08057626 2a46 mov r2, r5
| 0x08057628 4346 mov r3, r8
| 0x0805762a 1298 ldr r0, [sp, 0x48]
| 0x0805762c 1399 ldr r1, [sp, 0x4c]
| 0x0805762e 06f077ff bl func_5e520
| 0x08057632 07b0 add sp, 0x1c
\ 0x08057634 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_5763c 60
| func_5763c ();
| 0x0805763c 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x08057640 82b0 sub sp, 8
| 0x08057642 1546 mov r5, r2
| 0x08057644 089f ldr r7, [sp, 0x20]
| 0x08057646 099c ldr r4, [sp, 0x24]
| 0x08057648 032f cmp r7, 3 ; 3
| 0x0805764a 1e46 mov r6, r3
| ,=< 0x0805764c 0dd0 beq 0x805766a
| | 0x0805764e 0122 movs r2, 1 ; 1
| | 0x08057650 8046 mov r8, r0
| | 0x08057652 0b46 mov r3, r1
| | 0x08057654 0092 str r2, [sp]
| | 0x08057656 3046 mov r0, r6
| | 0x08057658 2946 mov r1, r5
| | 0x0805765a 2246 mov r2, r4
| | 0x0805765c 07f0fcf9 bl func_5ea58
| | 0x08057660 4046 mov r0, r8
| | 0x08057662 0021 movs r1, 0
| | 0x08057664 2246 mov r2, r4
| | 0x08057666 07f021fa bl func_5eaac
| `-> 0x0805766a 3046 mov r0, r6
| 0x0805766c 2946 mov r1, r5
| 0x0805766e 2346 mov r3, r4
| 0x08057670 0022 movs r2, 0
| 0x08057672 02b0 add sp, 8
\ 0x08057674 bde8f041 pop.w {r4, r5, r6, r7, r8, lr}
/ (fcn) func_5767c 34
| Caller: func_5715c
| func_5767c ();
| 0x0805767c 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08057680 a3b0 sub sp, 0x8c
| 0x08057682 8b46 mov fp, r1
| 0x08057684 349e ldr r6, [sp, 0xd0]
| 0x08057686 359c ldr r4, [sp, 0xd4]
| 0x08057688 b6f90230 ldrsh.w r3, [r6, 2]
| 0x0805768c 656a ldr r5, [r4, 0x24]
| 0x0805768e 2c9f ldr r7, [sp, 0xb0]
| 0x08057690 ddf8cc80 ldr.w r8, [sp, 0xcc]
| 0x08057694 bdf9d8a0 ldrsh.w sl, [sp, 0xd8]
| 0x08057698 03f1010e add.w lr, r3, 1
\ 0x0805769c 05eb invalid
/ (fcn) func_57850 26
| func_57850 ();
| 0x08057850 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x08057854 87b0 sub sp, 0x1c
| 0x08057856 139e ldr r6, [sp, 0x4c]
| 0x08057858 bdf95880 ldrsh.w r8, [sp, 0x58]
| 0x0805785c b6f90030 ldrsh.w r3, [r6]
| ,=< 0x08057860 1bb9 cbnz r3, 0x805786a
| | 0x08057862 18b2 sxth r0, r3
| | 0x08057864 07b0 add sp, 0x1c
\ | 0x08057866 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_579cc 2
| Caller: func_57ba8
| func_579cc ();
\ 0x080579cc 89b2 uxth r1, r1
/ (fcn) func_579ce 136
| func_579ce ();
| 0x080579ce f0b5 push {r4, r5, r6, r7, lr}
| 0x080579d0 214b ldr r3, [0x08057a58] ; [0x8057a58:4]=0xffff8801
| 0x080579d2 4c1e subs r4, r1, 1
| 0x080579d4 a4b2 uxth r4, r4
| 0x080579d6 9a42 cmp r2, r3
| 0x080579d8 27b2 sxth r7, r4
| ,=< 0x080579da b8bf it lt
| `-> 0x080579dc 1a46 mov r2, r3
| 0x080579de 002f cmp r7, 0
| ,=< 0x080579e0 19db blt 0x8057a16
| | 0x080579e2 9e46 mov lr, r3
| | 0x080579e4 1546 mov r5, r2
| | 0x080579e6 4ff0806c mov.w ip, 0x4000000
| | 0x080579ea 00bf nop
| .--> 0x080579ec 30f91760 ldrsh.w r6, [r0, r7, lsl 1]
| || 0x080579f0 2b04 lsls r3, r5, 0x10
| || 0x080579f2 ae42 cmp r6, r5
| || 0x080579f4 04f1ff34 add.w r4, r4, -1
| || 0x080579f8 8cfaa3f3 qsub r3, r3, ip
| || 0x080579fc 4fea2343 asr.w r3, r3, 0x10
| ,===< 0x08057a00 b8bf it lt
| `---> 0x08057a02 20f81750 strh.w r5, [r0, r7, lsl 1]
| || 0x08057a06 a4b2 uxth r4, r4
| || 0x08057a08 7345 cmp r3, lr
| ,===< 0x08057a0a b8bf it lt
| `---> 0x08057a0c 7346 mov r3, lr
| || 0x08057a0e 27b2 sxth r7, r4
| || 0x08057a10 1d46 mov r5, r3
| || 0x08057a12 7b1c adds r3, r7, 1
| `==< 0x08057a14 ead1 bne 0x80579ec
| `-> 0x08057a16 0131 adds r1, 1
| 0x08057a18 89b2 uxth r1, r1
| 0x08057a1a 0cb2 sxth r4, r1
| 0x08057a1c 372c cmp r4, 0x37 ; '7' ; 55
| ,=< 0x08057a1e 19dc bgt 0x8057a54
| | 0x08057a20 0d4f ldr r7, [0x08057a58] ; [0x8057a58:4]=0xffff8801
| | 0x08057a22 4ff08066 mov.w r6, 0x4000000
| | 0x08057a26 00bf nop
| .--> 0x08057a28 30f91450 ldrsh.w r5, [r0, r4, lsl 1]
| || 0x08057a2c 0131 adds r1, 1
| || 0x08057a2e 9542 cmp r5, r2
| || 0x08057a30 4fea0243 lsl.w r3, r2, 0x10
| || 0x08057a34 89b2 uxth r1, r1
| || 0x08057a36 86faa3f3 qsub r3, r3, r6
| || 0x08057a3a 4fea2343 asr.w r3, r3, 0x10
| ,===< 0x08057a3e b8bf it lt
| `---> 0x08057a40 20f81420 strh.w r2, [r0, r4, lsl 1]
| || 0x08057a44 bb42 cmp r3, r7
| || 0x08057a46 0cb2 sxth r4, r1
| ,===< 0x08057a48 b8bf it lt
| `---> 0x08057a4a 3b46 mov r3, r7
| || 0x08057a4c 382c cmp r4, 0x38 ; '8' ; 56
| || 0x08057a4e 1a46 mov r2, r3
| `==< 0x08057a50 ead1 bne 0x8057a28
| | 0x08057a52 f0bd pop {r4, r5, r6, r7, pc}
\ `-> 0x08057a54 f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) func_57a5c 48
| Caller: func_587f4 func_57e8c func_53268 ambe_58110 func_53730
| func_57a5c ();
| 0x08057a5c 80b2 uxth r0, r0
| 0x08057a5e 431f subs r3, r0, 5
| 0x08057a60 752b cmp r3, 0x75 ; 'u' ; 117
| ,=< 0x08057a62 0fd9 bls 0x8057a84
| | 0x08057a64 a0f18003 sub.w r3, r0, 0x80
| | 0x08057a68 0f2b cmp r3, 0xf ; 15
| ,==< 0x08057a6a 09d9 bls 0x8057a80
| || 0x08057a6c a0f19003 sub.w r3, r0, 0x90
| || 0x08057a70 0f2b cmp r3, 0xf ; 15
| ,===< 0x08057a72 09d9 bls 0x8057a88
| ||| 0x08057a74 a038 subs r0, 0xa0
| ||| 0x08057a76 0328 cmp r0, 3 ; 3
| ,====< 0x08057a78 94bf ite ls
| `----> 0x08057a7a 0320 movs r0, 3 ; 3
| ||| 0x08057a7c 0420 movs r0, 4 ; 4
| ||| 0x08057a7e 7047 bx lr
| |`--> 0x08057a80 0120 movs r0, 1 ; 1
| | | 0x08057a82 7047 bx lr
| | `-> 0x08057a84 0020 movs r0, 0
| | 0x08057a86 7047 bx lr
| `---> 0x08057a88 0220 movs r0, 2 ; 2
\ 0x08057a8a 7047 bx lr
/ (fcn) func_57a8c 64
| Caller: func_57ba8 ambe_58110
| func_57a8c ();
| ,=< 0x08057a8c 68b1 cbz r0, 0x8057aaa
| | 0x08057a8e 0328 cmp r0, 3 ; 3
| ,==< 0x08057a90 08d8 bhi 0x8057aa4
| || 0x08057a92 8039 subs r1, 0x80
| || 0x08057a94 02eb4101 add.w r1, r2, r1, lsl 1
| || 0x08057a98 0c4b ldr r3, [0x08057acc] ; [0x8057acc:4]=0x8096488
| || 0x08057a9a 585c ldrb r0, [r3, r1]
| || 0x08057a9c 0138 subs r0, 1
| || 0x08057a9e 80b2 uxth r0, r0
| || 0x08057aa0 00b2 sxth r0, r0
| || 0x08057aa2 7047 bx lr
| `--> 0x08057aa4 0020 movs r0, 0
| | 0x08057aa6 00b2 sxth r0, r0
| | 0x08057aa8 7047 bx lr
| `-> 0x08057aaa 01eb8100 add.w r0, r1, r1, lsl 2
| 0x08057aae 4ff6ff73 movw r3, 0xffff
| 0x08057ab2 8002 lsls r0, r0, 0xa
| 0x08057ab4 80fa83f0 qadd r0, r3, r0
| 0x08057ab8 000c lsrs r0, r0, 0x10
| 0x08057aba 0004 lsls r0, r0, 0x10
| 0x08057abc a0f58030 sub.w r0, r0, 0x10000
| 0x08057ac0 0014 asrs r0, r0, 0x10
| 0x08057ac2 20eae070 bic.w r0, r0, r0, asr 31
| 0x08057ac6 80b2 uxth r0, r0
| 0x08057ac8 00b2 sxth r0, r0
\ 0x08057aca 7047 bx lr
/ (fcn) func_57ad0 208
| Caller: ambe_58554 func_5715c
| func_57ad0 ();
| 0x08057ad0 2de9f84f push.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08057ad4 324d ldr r5, [0x08057ba0] ; [0x8057ba0:4]=0x80994c0
| 0x08057ad6 8346 mov fp, r0
| 0x08057ad8 012a cmp r2, 1 ; 1
| 0x08057ada 0e46 mov r6, r1
| 0x08057adc 01f10200 add.w r0, r1, 2
| 0x08057ae0 4ff01002 mov.w r2, 0x10 ; 16
| 0x08057ae4 01f10401 add.w r1, r1, 4
| ,=< 0x08057ae8 0cbf ite eq
| `-> 0x08057aea 0024 movs r4, 0
| 0x08057aec 1424 movs r4, 0x14 ; 20
| 0x08057aee 95f82880 ldrb.w r8, [r5, 0x28]
| 0x08057af2 95f82990 ldrb.w sb, [r5, 0x29]
| 0x08057af6 95f82aa0 ldrb.w sl, [r5, 0x2a]
| 0x08057afa 95f82b70 ldrb.w r7, [r5, 0x2b]
| 0x08057afe fdf795ff bl func_55a2c
| 0x08057b02 bbf80030 ldrh.w r3, [fp]
| 0x08057b06 7384 strh r3, [r6, 0x22]
| 0x08057b08 bbf80030 ldrh.w r3, [fp]
| 0x08057b0c ff2b cmp r3, 0xff ; 255
| ,=< 0x08057b0e 24d0 beq 0x8057b5a
| | 0x08057b10 b6f90020 ldrsh.w r2, [r6]
| | 0x08057b14 002a cmp r2, 0
| ,==< 0x08057b16 02dd ble 0x8057b1e
| || 0x08057b18 133b subs r3, 0x13
| || 0x08057b1a 032b cmp r3, 3 ; 3
| ,===< 0x08057b1c 21d9 bls 0x8057b62
| |`--> 0x08057b1e 0023 movs r3, 0
| | | 0x08057b20 04f1110e add.w lr, r4, 0x11
| | | 0x08057b24 3380 strh r3, [r6]
| | | 0x08057b26 0ffa8efe sxth.w lr, lr
| | | 0x08057b2a 3346 mov r3, r6
| | | 0x08057b2c 1127 movs r7, 0x11 ; 17
| | | 0x08057b2e 00bf nop
| |.--> 0x08057b30 22b2 sxth r2, r4
| ||| 0x08057b32 33f9020f ldrsh r0, [r3, 2]!
| ||| 0x08057b36 a95c ldrb r1, [r5, r2]
| ||| 0x08057b38 0134 adds r4, 1
| ||| 0x08057b3a 8842 cmp r0, r1
| ||| 0x08057b3c a4b2 uxth r4, r4
| ||| 0x08057b3e 22b2 sxth r2, r4
| ,====< 0x08057b40 04bf itt eq
| `----> 0x08057b42 07f1ff37 add.w r7, r7, -1
| ||| 0x08057b46 bfb2 uxth r7, r7
| ||| 0x08057b48 7245 cmp r2, lr
| ||| 0x08057b4a a4b2 uxth r4, r4
| |`==< 0x08057b4c f0d1 bne 0x8057b30
| | | 0x08057b4e 3fb2 sxth r7, r7
| | | 0x08057b50 012f cmp r7, 1 ; 1
| |,==< 0x08057b52 20dd ble 0x8057b96
| ||| 0x08057b54 0020 movs r0, 0
| ||| 0x08057b56 bde8f88f pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
| ||`-> 0x08057b5a 0020 movs r0, 0
| || 0x08057b5c 3080 strh r0, [r6]
| || 0x08057b5e bde8f88f pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
| `---> 0x08057b62 4fea0868 lsl.w r8, r8, 0x18
| | 0x08057b66 48ea0a2a orr.w sl, r8, sl, lsl 8
| | 0x08057b6a 4aea0707 orr.w r7, sl, r7
| | 0x08057b6e 0d4b ldr r3, [0x08057ba6] ; [0x8057ba4:4]=0x3c670ce3
| | 0x08057b70 47ea0949 orr.w sb, r7, sb, lsl 16
| | 0x08057b74 c2f12002 rsb.w r2, r2, 0x20
| | 0x08057b78 89ea0303 eor.w r3, sb, r3
| | 0x08057b7c 1341 asrs r3, r2
| | 0x08057b7e 03f00103 and r3, r3, 1
| | 0x08057b82 c3f11503 rsb.w r3, r3, 0x15
| | 0x08057b86 abf80030 strh.w r3, [fp]
| | 0x08057b8a 3388 ldrh r3, [r6]
| | 0x08057b8c 013b subs r3, 1
| | 0x08057b8e 3380 strh r3, [r6]
| | 0x08057b90 0120 movs r0, 1 ; 1
| | 0x08057b92 bde8f88f pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
| `--> 0x08057b96 2023 movs r3, 0x20 ; 32
| 0x08057b98 3380 strh r3, [r6]
| 0x08057b9a 0020 movs r0, 0
\ 0x08057b9c bde8f88f pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_57ba8 498
| Caller: ambe_58554
| func_57ba8 ();
| 0x08057ba8 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08057bac 0446 mov r4, r0
| 0x08057bae 83b0 sub sp, 0xc
| 0x08057bb0 00f11007 add.w r7, r0, 0x10
| 0x08057bb4 4ff0030b mov.w fp, 3 ; 3
| 0x08057bb8 0025 movs r5, 0
| 0x08057bba 4ff0010a mov.w sl, 1 ; 1
| 0x08057bbe 0e46 mov r6, r1
| 0x08057bc0 0092 str r2, [sp]
| 0x08057bc2 3846 mov r0, r7
| 0x08057bc4 3822 movs r2, 0x38 ; '8' ; 56
| 0x08057bc6 a4f800b0 strh.w fp, [r4]
| 0x08057bca e581 strh r5, [r4, 0xe]
| 0x08057bcc c4f808a0 str.w sl, [r4, 8]
| 0x08057bd0 7249 ldr r1, [0x08057d9c] ; [0x8057d9c:4]=0xffffb001
| 0x08057bd2 bdf93080 ldrsh.w r8, [sp, 0x30]
| 0x08057bd6 9946 mov sb, r3
| 0x08057bd8 fdf75cff bl ambe_55a94
| 0x08057bdc b2b2 uxth r2, r6
| 0x08057bde 531f subs r3, r2, 5
| 0x08057be0 752b cmp r3, 0x75 ; 'u' ; 117
| ,=< 0x08057be2 73d9 bls 0x8057ccc
| | 0x08057be4 a2f18003 sub.w r3, r2, 0x80
| | 0x08057be8 9bb2 uxth r3, r3
| | 0x08057bea 0f2b cmp r3, 0xf ; 15
| ,==< 0x08057bec 00f29f80 bhi.w 0x8057d2e
| ..---> 0x08057bf0 5046 mov r0, sl
| |||| 0x08057bf2 3146 mov r1, r6
| |||| 0x08057bf4 0022 movs r2, 0
| |||| 0x08057bf6 0193 str r3, [sp, 4]
| |||| 0x08057bf8 fff748ff bl func_57a8c
| |||| 0x08057bfc 3146 mov r1, r6
| |||| 0x08057bfe 0546 mov r5, r0
| |||| 0x08057c00 0122 movs r2, 1 ; 1
| |||| 0x08057c02 5046 mov r0, sl
| |||| 0x08057c04 fff742ff bl func_57a8c
| |||| 0x08057c08 81b2 uxth r1, r0
| |||| 0x08057c0a 4a1c adds r2, r1, 1
| |||| 0x08057c0c 12b2 sxth r2, r2
| |||| 0x08057c0e 019b ldr r3, [sp, 4]
| |||| 0x08057c10 6680 strh r6, [r4, 2]
| |||| 0x08057c12 092a cmp r2, 9 ; 9
| ,=====< 0x08057c14 b8bf it lt
| `-----> 0x08057c16 0922 movs r2, 9 ; 9
| |||| 0x08057c18 8246 mov sl, r0
| |||| 0x08057c1a 1bb2 sxth r3, r3
| |||| 0x08057c1c 6048 ldr r0, [0x08057da0] ; [0x8057da0:4]=0x80964d0
| |||| 0x08057c1e 382a cmp r2, 0x38 ; '8' ; 56
| ,=====< 0x08057c20 a8bf it ge
| `-----> 0x08057c22 3822 movs r2, 0x38 ; '8' ; 56
| |||| 0x08057c24 01eb0521 add.w r1, r1, r5, lsl 8
| |||| 0x08057c28 30f81300 ldrh.w r0, [r0, r3, lsl 1]
| |||| 0x08057c2c a280 strh r2, [r4, 4]
| |||| 0x08057c2e e180 strh r1, [r4, 6]
| |||| 0x08057c30 a081 strh r0, [r4, 0xc]
| |||| 0x08057c32 b8f1000f cmp.w r8, 0
| ,=====< 0x08057c36 00f08380 beq.w 0x8057d40
| ||||| 0x08057c3a 5a4a ldr r2, [0x08057da6] ; [0x8057da4:4]=0x8096440
| ||||| 0x08057c3c 5a4e ldr r6, [0x08057da8] ; [0x8057da8:4]=0xffffb000
| ||||| 0x08057c3e 32f91330 ldrsh.w r3, [r2, r3, lsl 1]
| ||||| 0x08057c42 009a ldr r2, [sp]
| ||||| 0x08057c44 4feac939 lsl.w sb, sb, 0xf
| ||||| 0x08057c48 4feac23b lsl.w fp, r2, 0xf
| ||||| 0x08057c4c 8bfa89f9 qadd sb, sb, fp
| ||||| 0x08057c50 4fea194b lsr.w fp, sb, 0x10
| ||||| 0x08057c54 4fea0b4b lsl.w fp, fp, 0x10
| ||||| 0x08057c58 4fea0349 lsl.w sb, r3, 0x10
| ||||| 0x08057c5c 89faabf2 qsub r2, fp, sb
| ||||| 0x08057c60 1214 asrs r2, r2, 0x10
| ||||| 0x08057c62 b242 cmp r2, r6
| ||||| 0x08057c64 46f6ff78 movw r8, 0x6fff
| ,======< 0x08057c68 b8bf it lt
| `------> 0x08057c6a 3246 mov r2, r6
| ||||| 0x08057c6c 4245 cmp r2, r8
| ,======< 0x08057c6e a8bf it ge
| `------> 0x08057c70 4246 mov r2, r8
| ||||| 0x08057c72 05f10803 add.w r3, r5, 8
| ||||| 0x08057c76 92b2 uxth r2, r2
| ||||| 0x08057c78 24f81320 strh.w r2, [r4, r3, lsl 1]
| ||||| 0x08057c7c 8bfa89f9 qadd sb, sb, fp
| ||||| 0x08057c80 2946 mov r1, r5
| ||||| 0x08057c82 3846 mov r0, r7
| ||||| 0x08057c84 4ff0a045 mov.w r5, 0x50000000
| ||||| 0x08057c88 4fea2949 asr.w sb, sb, 0x10
| ||||| 0x08057c8c 1204 lsls r2, r2, 0x10
| ||||| 0x08057c8e 85faa2f2 qsub r2, r2, r5
| ||||| 0x08057c92 1214 asrs r2, r2, 0x10
| ||||| 0x08057c94 fff79afe bl func_579cc
| ||||| 0x08057c98 4e45 cmp r6, sb
| ,======< 0x08057c9a b8bf it lt
| `------> 0x08057c9c 4e46 mov r6, sb
| ||||| 0x08057c9e b045 cmp r8, r6
| ,======< 0x08057ca0 a8bf it ge
| `------> 0x08057ca2 b046 mov r8, r6
| ||||| 0x08057ca4 0af10803 add.w r3, sl, 8
| ||||| 0x08057ca8 1ffa88f8 uxth.w r8, r8
| ||||| 0x08057cac 3846 mov r0, r7
| ||||| 0x08057cae 24f81380 strh.w r8, [r4, r3, lsl 1]
| ||||| 0x08057cb2 5146 mov r1, sl
| ||||| 0x08057cb4 4fea0848 lsl.w r8, r8, 0x10
| ||||| 0x08057cb8 85faa8f2 qsub r2, r8, r5
| ||||| 0x08057cbc 1214 asrs r2, r2, 0x10
| ||||| 0x08057cbe fff785fe bl func_579cc
| ||||| 0x08057cc2 0020 movs r0, 0
| ||||| 0x08057cc4 00b2 sxth r0, r0
| ||||| 0x08057cc6 03b0 add sp, 0xc
| ||||| 0x08057cc8 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
| ||||`-> 0x08057ccc 2a46 mov r2, r5
| |||| 0x08057cce 3146 mov r1, r6
| |||| 0x08057cd0 2846 mov r0, r5
| |||| 0x08057cd2 fff7dbfe bl func_57a8c
| |||| 0x08057cd6 0106 lsls r1, r0, 0x18
| |||| 0x08057cd8 01f18071 add.w r1, r1, 0x1000000
| |||| 0x08057cdc 8246 mov sl, r0
| |||| 0x08057cde e080 strh r0, [r4, 6]
| |||| 0x08057ce0 6680 strh r6, [r4, 2]
| |||| 0x08057ce2 3005 lsls r0, r6, 0x14
| |||| 0x08057ce4 0914 asrs r1, r1, 0x10
| |||| 0x08057ce6 00f0cbfd bl func_58880
| |||| 0x08057cea 2f4a ldr r2, [0x08057daa] ; [0x8057da8:4]=0xffffb000
| |||| 0x08057cec a081 strh r0, [r4, 0xc]
| |||| 0x08057cee 0af10103 add.w r3, sl, 1
| |||| 0x08057cf2 1bb2 sxth r3, r3
| |||| 0x08057cf4 9145 cmp sb, r2
| ||||,=< 0x08057cf6 b8bf it lt
| ||||`-> 0x08057cf8 9146 mov sb, r2
| |||| 0x08057cfa 47f2ff72 movw r2, 0x77ff
| |||| 0x08057cfe 092b cmp r3, 9 ; 9
| ||||,=< 0x08057d00 b8bf it lt
| ||||`-> 0x08057d02 0923 movs r3, 9 ; 9
| |||| 0x08057d04 9145 cmp sb, r2
| ||||,=< 0x08057d06 a8bf it ge
| ||||`-> 0x08057d08 9146 mov sb, r2
| |||| 0x08057d0a 0af10802 add.w r2, sl, 8
| |||| 0x08057d0e 382b cmp r3, 0x38 ; '8' ; 56
| ||||,=< 0x08057d10 a8bf it ge
| ||||`-> 0x08057d12 3823 movs r3, 0x38 ; '8' ; 56
| |||| 0x08057d14 1ffa89f9 uxth.w sb, sb
| |||| 0x08057d18 a380 strh r3, [r4, 4]
| |||| 0x08057d1a 24f81290 strh.w sb, [r4, r2, lsl 1]
| |||| 0x08057d1e b8f1000f cmp.w r8, 0
| ||||,=< 0x08057d22 27d1 bne 0x8057d74
| .------> 0x08057d24 0020 movs r0, 0
| .-------> 0x08057d26 00b2 sxth r0, r0
| ||||||| 0x08057d28 03b0 add sp, 0xc
| ||||||| 0x08057d2a bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
| |||||`--> 0x08057d2e a2f19001 sub.w r1, r2, 0x90
| ||||| | 0x08057d32 0f29 cmp r1, 0xf ; 15
| |||||,==< 0x08057d34 2bd9 bls 0x8057d8e
| ||||||| 0x08057d36 a03a subs r2, 0xa0
| ||||||| 0x08057d38 5a45 cmp r2, fp
| ========< 0x08057d3a 2bd8 bhi 0x8057d94
| ||||||| 0x08057d3c da46 mov sl, fp
| |||`====< 0x08057d3e 57e7 b 0x8057bf0
| ||`-----> 0x08057d40 194b ldr r3, [0x08057da8] ; [0x8057da8:4]=0xffffb000
| || ||| 0x08057d42 009a ldr r2, [sp]
| || ||| 0x08057d44 9a42 cmp r2, r3
| || ,====< 0x08057d46 b8bf it lt
| || `----> 0x08057d48 1a46 mov r2, r3
| || ||| 0x08057d4a 9945 cmp sb, r3
| || ,====< 0x08057d4c b8bf it lt
| || `----> 0x08057d4e 9946 mov sb, r3
| || ||| 0x08057d50 46f6ff73 movw r3, 0x6fff
| || ||| 0x08057d54 9a42 cmp r2, r3
| || ||| 0x08057d56 9346 mov fp, r2
| || ||| 0x08057d58 05f10805 add.w r5, r5, 8
| || ,====< 0x08057d5c a8bf it ge
| || `----> 0x08057d5e 9b46 mov fp, r3
| || ||| 0x08057d60 0af1080a add.w sl, sl, 8
| || ||| 0x08057d64 4b45 cmp r3, sb
| || ,====< 0x08057d66 a8bf it ge
| || `----> 0x08057d68 4b46 mov r3, sb
| || ||| 0x08057d6a 24f815b0 strh.w fp, [r4, r5, lsl 1]
| || ||| 0x08057d6e 24f81a30 strh.w r3, [r4, sl, lsl 1]
| |`======< 0x08057d72 d7e7 b 0x8057d24
| | ||`-> 0x08057d74 3846 mov r0, r7
| | || 0x08057d76 4fea0949 lsl.w sb, sb, 0x10
| | || 0x08057d7a 5146 mov r1, sl
| | || 0x08057d7c 4ff0a042 mov.w r2, 0x50000000
| | || 0x08057d80 82faa9f2 qsub r2, sb, r2
| | || 0x08057d84 1214 asrs r2, r2, 0x10
| | || 0x08057d86 fff721fe bl func_579cc
| | || 0x08057d8a 2846 mov r0, r5
| ========< 0x08057d8c cbe7 b 0x8057d26
| | |`--> 0x08057d8e 4ff0020a mov.w sl, 2 ; 2
| | `===< 0x08057d92 2de7 b 0x8057bf0
| --------> 0x08057d94 2580 strh r5, [r4]
| | 0x08057d96 0420 movs r0, 4 ; 4
\ `=======< 0x08057d98 c5e7 b 0x8057d26
/ (fcn) func_57dac 44
| Caller: func_587f4 func_57e8c
| func_57dac ();
| 0x08057dac 0004 lsls r0, r0, 0x10
| 0x08057dae 46f25402 movw r2, 0x6054
| 0x08057db2 094b ldr r3, [0x08057dda] ; [0x8057dd8:4]=0x6bca0000
| 0x08057db4 83faa0f3 qsub r3, r0, r3
| 0x08057db8 1b0c lsrs r3, r3, 0x10
| 0x08057dba 13fb02f3 smulbb r3, r3, r2
| 0x08057dbe db11 asrs r3, r3, 7
| 0x08057dc0 03f50043 add.w r3, r3, 0x8000
| 0x08057dc4 6ff03b00 mvn r0, 0x3b
| 0x08057dc8 1b14 asrs r3, r3, 0x10
| 0x08057dca 9842 cmp r0, r3
| ,=< 0x08057dcc b8bf it lt
| `-> 0x08057dce 1846 mov r0, r3
| 0x08057dd0 0328 cmp r0, 3 ; 3
| ,=< 0x08057dd2 a8bf it ge
| `-> 0x08057dd4 0320 movs r0, 3 ; 3
\ 0x08057dd6 7047 bx lr
/ (fcn) func_57e04 128
| Caller: func_53268 func_53730
| func_57e04 ();
| 0x08057e04 89b2 uxth r1, r1
| 0x08057e06 10b4 push {r4}
| 0x08057e08 4c1f subs r4, r1, 5
| 0x08057e0a 752c cmp r4, 0x75 ; 'u' ; 117
| ,=< 0x08057e0c 20d9 bls 0x8057e50
| | 0x08057e0e 8039 subs r1, 0x80
| | 0x08057e10 2329 cmp r1, 0x23 ; '#' ; 35
| ,==< 0x08057e12 37d8 bhi 0x8057e84
| || 0x08057e14 6ff03b01 mvn r1, 0x3b
| || 0x08057e18 8a42 cmp r2, r1
| || 0x08057e1a 1346 mov r3, r2
| ,===< 0x08057e1c b8bf it lt
| `---> 0x08057e1e 0b46 mov r3, r1
| || 0x08057e20 032b cmp r3, 3 ; 3
| ,===< 0x08057e22 a8bf it ge
| `---> 0x08057e24 0323 movs r3, 3 ; 3
| || 0x08057e26 1a46 mov r2, r3
| || 0x08057e28 45f20b53 movw r3, 0x550b
| || 0x08057e2c 02fb03f3 mul r3, r2, r3
| || 0x08057e30 9b02 lsls r3, r3, 0xa
| || 0x08057e32 03f1d743 add.w r3, r3, 0x6b800000
| || 0x08057e36 03f59403 add.w r3, r3, 0x4a0000
| || 0x08057e3a 1b0c lsrs r3, r3, 0x10
| || 0x08057e3c 1b04 lsls r3, r3, 0x10
| || 0x08057e3e 03f17843 add.w r3, r3, -0x8000000
| || 0x08057e42 1b14 asrs r3, r3, 0x10
| || 0x08057e44 0380 strh r3, [r0]
| || 0x08057e46 0120 movs r0, 1 ; 1
| || 0x08057e48 00b2 sxth r0, r0
| || 0x08057e4a 5df8044b ldr r4, [sp], 4
| || 0x08057e4e 7047 bx lr
| |`-> 0x08057e50 6ff03b01 mvn r1, 0x3b
| | 0x08057e54 8a42 cmp r2, r1
| | 0x08057e56 1346 mov r3, r2
| |,=< 0x08057e58 b8bf it lt
| |`-> 0x08057e5a 0b46 mov r3, r1
| | 0x08057e5c 032b cmp r3, 3 ; 3
| |,=< 0x08057e5e a8bf it ge
| |`-> 0x08057e60 0323 movs r3, 3 ; 3
| | 0x08057e62 1a46 mov r2, r3
| | 0x08057e64 45f20b53 movw r3, 0x550b
| | 0x08057e68 02fb03f3 mul r3, r2, r3
| | 0x08057e6c 9b02 lsls r3, r3, 0xa
| | 0x08057e6e 03f1d743 add.w r3, r3, 0x6b800000
| | 0x08057e72 03f59403 add.w r3, r3, 0x4a0000
| | 0x08057e76 1b14 asrs r3, r3, 0x10
| | 0x08057e78 0380 strh r3, [r0]
| | 0x08057e7a 0120 movs r0, 1 ; 1
| | 0x08057e7c 00b2 sxth r0, r0
| | 0x08057e7e 5df8044b ldr r4, [sp], 4
\ | 0x08057e82 7047 bx lr
/ (fcn) func_57e8c 66
| Caller: func_532a8
| func_57e8c ();
| 0x08057e8c 38b5 push {r3, r4, r5, lr}
| 0x08057e8e 0546 mov r5, r0
| 0x08057e90 08b2 sxth r0, r1
| 0x08057e92 1446 mov r4, r2
| 0x08057e94 fff7e2fd bl func_57a5c
| 0x08057e98 0028 cmp r0, 0
| ,=< 0x08057e9a 11d0 beq 0x8057ec0
| ,==< 0x08057e9c 0adb blt 0x8057eb4
| || 0x08057e9e 0328 cmp r0, 3 ; 3
| ,===< 0x08057ea0 08dc bgt 0x8057eb4
| ||| 0x08057ea2 04f50060 add.w r0, r4, 0x800
| ||| 0x08057ea6 00b2 sxth r0, r0
| ||| 0x08057ea8 fff780ff bl func_57dac
| ||| 0x08057eac 0123 movs r3, 1 ; 1
| ||| 0x08057eae 2880 strh r0, [r5]
| ||| 0x08057eb0 1846 mov r0, r3
| ||| 0x08057eb2 38bd pop {r3, r4, r5, pc}
| ``--> 0x08057eb4 4ff6a673 movw r3, 0xffa6
| | 0x08057eb8 2b80 strh r3, [r5]
| | 0x08057eba 0023 movs r3, 0
| | 0x08057ebc 1846 mov r0, r3
| | 0x08057ebe 38bd pop {r3, r4, r5, pc}
| `-> 0x08057ec0 2046 mov r0, r4
| 0x08057ec2 fff773ff bl func_57dac
| 0x08057ec6 0123 movs r3, 1 ; 1
| 0x08057ec8 2880 strh r0, [r5]
| 0x08057eca 1846 mov r0, r3
\ 0x08057ecc 38bd pop {r3, r4, r5, pc}
/ (fcn) func_57f10 38
| func_57f10 ();
| 0x08057f10 70b4 push {r4, r5, r6}
| 0x08057f12 5600 lsls r6, r2, 1
| 0x08057f14 3144 add r1, r6
| ,=< 0x08057f16 5ab1 cbz r2, 0x8057f30
| | 0x08057f18 8d1b subs r5, r1, r6
| | 0x08057f1a 0b46 mov r3, r1
| .--> 0x08057f1c 00f00104 and r4, r0, 1
| || 0x08057f20 23f8024d strh r4, [r3, -0x2]!
| || 0x08057f24 ab42 cmp r3, r5
| || 0x08057f26 4fea6000 asr.w r0, r0, 1
| `==< 0x08057f2a f7d1 bne 0x8057f1c
| | 0x08057f2c a1eb4201 sub.w r1, r1, r2, lsl 1
| `-> 0x08057f30 8819 adds r0, r1, r6
| 0x08057f32 70bc pop {r4, r5, r6}
\ 0x08057f34 7047 bx lr
/ (fcn) func_57f38 38
| Caller: func_5e44c func_53bac
| func_57f38 ();
| 0x08057f38 70b4 push {r4, r5, r6}
| 0x08057f3a 5600 lsls r6, r2, 1
| 0x08057f3c 3144 add r1, r6
| ,=< 0x08057f3e 5ab1 cbz r2, 0x8057f58
| | 0x08057f40 8d1b subs r5, r1, r6
| | 0x08057f42 0b46 mov r3, r1
| .--> 0x08057f44 00f00104 and r4, r0, 1
| || 0x08057f48 23f8024d strh r4, [r3, -0x2]!
| || 0x08057f4c ab42 cmp r3, r5
| || 0x08057f4e 4fea6000 asr.w r0, r0, 1
| `==< 0x08057f52 f7d1 bne 0x8057f44
| | 0x08057f54 a1eb4201 sub.w r1, r1, r2, lsl 1
| `-> 0x08057f58 8819 adds r0, r1, r6
| 0x08057f5a 70bc pop {r4, r5, r6}
\ 0x08057f5c 7047 bx lr
/ (fcn) func_57f62 46
| func_57f62 ();
| 0x08057f62 70b4 push {r4, r5, r6}
| 0x08057f64 0b4c ldr r4, [0x08057f94] ; [0x8057f94:4]=0x80960a0
| 0x08057f66 0646 mov r6, r0
| 0x08057f68 02eb4101 add.w r1, r2, r1, lsl 1
| .-> 0x08057f6c 32f9023b ldrsh r3, [r2], 2
| | 0x08057f70 3340 ands r3, r6
| | 0x08057f72 1b01 lsls r3, r3, 4
| | 0x08057f74 ddb2 uxtb r5, r3
| | 0x08057f76 c3f30723 ubfx r3, r3, 8, 8
| | 0x08057f7a 655d ldrb r5, [r4, r5]
| | 0x08057f7c e35c ldrb r3, [r4, r3]
| | 0x08057f7e 2b44 add r3, r5
| | 0x08057f80 03f00103 and r3, r3, 1
| | 0x08057f84 8a42 cmp r2, r1
| | 0x08057f86 43ea4000 orr.w r0, r3, r0, lsl 1
| `=< 0x08057f8a efd1 bne 0x8057f6c
| 0x08057f8c 70bc pop {r4, r5, r6}
\ 0x08057f8e 7047 bx lr
/ (fcn) func_58018 20
| Caller: ambe_58110
| func_58018 ();
| 0x08058018 b0f90020 ldrsh.w r2, [r0]
| 0x0805801c 022a cmp r2, 2 ; 2
| 0x0805801e 0346 mov r3, r0
| ,=< 0x08058020 29d0 beq 0x8058076
| | 0x08058022 032a cmp r2, 3 ; 3
| ,==< 0x08058024 0bd0 beq 0x805803e
| || 0x08058026 012a cmp r2, 1 ; 1
| ,===< 0x08058028 00d0 beq 0x805802c
\ ||| 0x0805802a 7047 bx lr
/ (fcn) func_58094 62
| Caller: ambe_58554 ambe_58110
| func_58094 ();
| 0x08058094 f0b5 push {r4, r5, r6, r7, lr}
| 0x08058096 0a88 ldrh r2, [r1]
| 0x08058098 b1f804e0 ldrh.w lr, [r1, 4]
| 0x0805809c cf88 ldrh r7, [r1, 6]
| 0x0805809e 8e68 ldr r6, [r1, 8]
| 0x080580a0 8d89 ldrh r5, [r1, 0xc]
| 0x080580a2 cc89 ldrh r4, [r1, 0xe]
| 0x080580a4 b1f802c0 ldrh.w ip, [r1, 2]
| 0x080580a8 d1f88430 ldr.w r3, [r1, 0x84]
| 0x080580ac 0280 strh r2, [r0]
| 0x080580ae 0022 movs r2, 0
| 0x080580b0 a0f804e0 strh.w lr, [r0, 4]
| 0x080580b4 c780 strh r7, [r0, 6]
| 0x080580b6 8660 str r6, [r0, 8]
| 0x080580b8 8581 strh r5, [r0, 0xc]
| 0x080580ba c481 strh r4, [r0, 0xe]
| 0x080580bc c0f88020 str.w r2, [r0, 0x80]
| 0x080580c0 a0f802c0 strh.w ip, [r0, 2]
| 0x080580c4 c0f88430 str.w r3, [r0, 0x84]
| 0x080580c8 1031 adds r1, 0x10
| 0x080580ca 1030 adds r0, 0x10
| 0x080580cc 3822 movs r2, 0x38 ; '8' ; 56
\ 0x080580ce bde8f040 pop.w {r4, r5, r6, r7, lr}
/ (fcn) func_580d8 56
| Caller: func_53778
| func_580d8 ();
| 0x080580d8 38b5 push {r3, r4, r5, lr}
| 0x080580da 0446 mov r4, r0
| 0x080580dc 0023 movs r3, 0
| 0x080580de 0e20 movs r0, 0xe ; 14
| 0x080580e0 ff21 movs r1, 0xff ; 255
| 0x080580e2 0222 movs r2, 2 ; 2
| 0x080580e4 4ff48045 mov.w r5, 0x4000
| 0x080580e8 a080 strh r0, [r4, 4]
| 0x080580ea 6180 strh r1, [r4, 2]
| 0x080580ec 2280 strh r2, [r4]
| 0x080580ee c4f88030 str.w r3, [r4, 0x80]
| 0x080580f2 a360 str r3, [r4, 8]
| 0x080580f4 e381 strh r3, [r4, 0xe]
| 0x080580f6 a581 strh r5, [r4, 0xc]
| 0x080580f8 04f11000 add.w r0, r4, 0x10
| 0x080580fc 46f26661 movw r1, 0x6666
| 0x08058100 3822 movs r2, 0x38 ; '8' ; 56
| 0x08058102 fdf7c7fc bl ambe_55a94
| 0x08058106 6ff01103 mvn r3, 0x11
| 0x0805810a c4f88430 str.w r3, [r4, 0x84]
\ 0x0805810e 38bd pop {r3, r4, r5, pc}
/ (fcn) ambe_58110 346
| Caller: ambe_decode_wav
| ambe_58110 ();
| 0x08058110 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08058114 adf52f7d sub.w sp, sp, 0x2bc
| 0x08058118 1f46 mov r7, r3
| 0x0805811a b89e ldr r6, [sp, 0x2e0]
| 0x0805811c 0491 str r1, [sp, 0x10]
| 0x0805811e b6f8be47 ldrh.w r4, [r6, 0x7be]
| 0x08058122 0592 str r2, [sp, 0x14]
| 0x08058124 06f27443 addw r3, r6, 0x474
| 0x08058128 14f00101 ands r1, r4, 1
| 0x0805812c 0546 mov r5, r0
| 0x0805812e 0393 str r3, [sp, 0xc]
| ,=< 0x08058130 1bd1 bne 0x805816a
| | 0x08058132 b0f90030 ldrsh.w r3, [r0]
| | 0x08058136 012b cmp r3, 1 ; 1
| ,==< 0x08058138 00f0d781 beq.w 0x80584ea
| || 0x0805813c 06f5bb70 add.w r0, r6, 0x176
| || 0x08058140 3822 movs r2, 0x38 ; '8' ; 56
| || 0x08058142 fdf7a7fc bl ambe_55a94
| || 0x08058146 05f11004 add.w r4, r5, 0x10
| || 0x0805814a 05f18408 add.w r8, r5, 0x84
| || 0x0805814e 4146 mov r1, r8
| || 0x08058150 2046 mov r0, r4
| || 0x08058152 b5f90420 ldrsh.w r2, [r5, 4]
| || 0x08058156 07f075fb bl func_5f844
| || 0x0805815a b5f90030 ldrsh.w r3, [r5]
| || 0x0805815e 012b cmp r3, 1 ; 1
| ,===< 0x08058160 00f0dd81 beq.w 0x805851e
| ||| 0x08058164 022b cmp r3, 2 ; 2
| ,====< 0x08058166 00f0d481 beq.w 0x8058512
| |||`-> 0x0805816a 06ab add r3, sp, 0x18
| ||| 0x0805816c c5f88030 str.w r3, [r5, 0x80]
| ||| 0x08058170 2846 mov r0, r5
| ||| 0x08058172 fff751ff bl func_58018
| ||| 0x08058176 22ab add r3, sp, 0x88
| ||| 0x08058178 0398 ldr r0, [sp, 0xc]
| ||| 0x0805817a c6f8f434 str.w r3, [r6, 0x4f4]
| ||| 0x0805817e fff74bff bl func_58018
| ||| 0x08058182 b5f90200 ldrsh.w r0, [r5, 2]
| ||| 0x08058186 ff28 cmp r0, 0xff ; 255
| |||,=< 0x08058188 7ad0 beq 0x8058280
| |||| 0x0805818a b6f9a437 ldrsh.w r3, [r6, 0x7a4]
| |||| 0x0805818e 012b cmp r3, 1 ; 1
| ,=====< 0x08058190 00f05881 beq.w 0x8058444
| ||||| 0x08058194 fff762fc bl func_57a5c
| ||||| 0x08058198 c7b2 uxtb r7, r0
| ||||| 0x0805819a 3846 mov r0, r7
| ||||| 0x0805819c b5f90210 ldrsh.w r1, [r5, 2]
| ||||| 0x080581a0 0022 movs r2, 0
| ||||| 0x080581a2 fff773fc bl func_57a8c
| ||||| 0x080581a6 b5f90210 ldrsh.w r1, [r5, 2]
| ||||| 0x080581aa 0446 mov r4, r0
| ||||| 0x080581ac 0122 movs r2, 1 ; 1
| ||||| 0x080581ae 3846 mov r0, r7
| ||||| 0x080581b0 fff76cfc bl func_57a8c
| ||||| 0x080581b4 b5f90470 ldrsh.w r7, [r5, 4]
| ||||| 0x080581b8 002f cmp r7, 0
| ,======< 0x080581ba 13dd ble 0x80581e4
| |||||| 0x080581bc 05f11002 add.w r2, r5, 0x10
| |||||| 0x080581c0 0023 movs r3, 0
| |||||| 0x080581c2 40f21e5e movw lr, 0x51e ; 1310
| |||||| 0x080581c6 00bf nop
| .-------> 0x080581c8 9c42 cmp r4, r3
| ========< 0x080581ca 06d0 beq 0x80581da
| ||||||| 0x080581cc 9842 cmp r0, r3
| ========< 0x080581ce 04d0 beq 0x80581da
| ||||||| 0x080581d0 1188 ldrh r1, [r2]
| ||||||| 0x080581d2 11fb0ef1 smulbb r1, r1, lr
| ||||||| 0x080581d6 c913 asrs r1, r1, 0xf
| ||||||| 0x080581d8 1180 strh r1, [r2]
| --------> 0x080581da 0133 adds r3, 1
| ||||||| 0x080581dc bb42 cmp r3, r7
| ||||||| 0x080581de 02f10202 add.w r2, r2, 2
| `=======< 0x080581e2 f1d1 bne 0x80581c8
| `------> 0x080581e4 6a88 ldrh r2, [r5, 2]
| ||||| 0x080581e6 93b2 uxth r3, r2
| ||||| 0x080581e8 a3f18001 sub.w r1, r3, 0x80
| ||||| 0x080581ec 1f29 cmp r1, 0x1f ; 31
| ,======< 0x080581ee 40f26481 bls.w 0x80584ba
| |||||| 0x080581f2 143b subs r3, 0x14
| |||||| 0x080581f4 022b cmp r3, 2 ; 2
| ,=======< 0x080581f6 38d9 bls 0x805826a
| ||||||| 0x080581f8 5aaf add r7, sp, 0x168
| ||||||| 0x080581fa 059c ldr r4, [sp, 0x14]
| ||||||| 0x080581fc 6200 lsls r2, r4, 1
| ||||||| 0x080581fe 12b2 sxth r2, r2
| ||||||| 0x08058200 3846 mov r0, r7
| ||||||| 0x08058202 0021 movs r1, 0
| ||||||| 0x08058204 fdf746fc bl ambe_55a94
| ||||||| 0x08058208 b6f9c237 ldrsh.w r3, [r6, 0x7c2]
| ||||||| 0x0805820c 0093 str r3, [sp]
| ||||||| 0x0805820e 3846 mov r0, r7
| ||||||| 0x08058210 2146 mov r1, r4
| ||||||| 0x08058212 06f24c62 addw r2, r6, 0x64c
| ||||||| 0x08058216 2b46 mov r3, r5
| ||||||| 0x08058218 07f0bcfb bl func_5f994
| ||||||| 0x0805821c a046 mov r8, r4
| ||||||| 0x0805821e 039c ldr r4, [sp, 0xc]
| ||||||| 0x08058220 b6f9c237 ldrsh.w r3, [r6, 0x7c2]
| ||||||| 0x08058224 2246 mov r2, r4
| ||||||| 0x08058226 8de80c00 stm.w sp, {r2, r3}
| ||||||| 0x0805822a 3846 mov r0, r7
| ||||||| 0x0805822c 4146 mov r1, r8
| ||||||| 0x0805822e 06f11802 add.w r2, r6, 0x18
| ||||||| 0x08058232 2b46 mov r3, r5
| ||||||| 0x08058234 08f08af9 bl func_6054c
| ||||||| 0x08058238 3846 mov r0, r7
| ||||||| 0x0805823a 3946 mov r1, r7
| ||||||| 0x0805823c 3246 mov r2, r6
| ||||||| 0x0805823e 4346 mov r3, r8
| ||||||| 0x08058240 fdf74afc bl func_55ad8
| ||||||| 0x08058244 0498 ldr r0, [sp, 0x10]
| ||||||| 0x08058246 cdf80080 str.w r8, [sp]
| ||||||| 0x0805824a 3a46 mov r2, r7
| ||||||| 0x0805824c 0f21 movs r1, 0xf ; 15
| ||||||| 0x0805824e 1123 movs r3, 0x11 ; 17
| ||||||| 0x08058250 02f0c2f9 bl func_5a5d8
| ||||||| 0x08058254 0023 movs r3, 0
| ||||||| 0x08058256 2046 mov r0, r4
| ||||||| 0x08058258 c5f88030 str.w r3, [r5, 0x80]
| ||||||| 0x0805825c 2946 mov r1, r5
| ||||||| 0x0805825e fff719ff bl func_58094
| ||||||| 0x08058262 0df52f7d add.w sp, sp, 0x2bc
\ ||||||| 0x08058266 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) ambe_58554 212
| Caller: ambe_decode_wav
| ambe_58554 ();
| 0x08058554 2de9f047 push.w {r4, r5, r6, r7, r8, sb, sl, lr}
| 0x08058558 8cb0 sub sp, 0x30 ; '0'
| 0x0805855a 169c ldr r4, [sp, 0x58]
| 0x0805855c 149e ldr r6, [sp, 0x50]
| 0x0805855e b4f94a56 ldrsh.w r5, [r4, 0x64a]
| 0x08058562 b4f9be77 ldrsh.w r7, [r4, 0x7be]
| 0x08058566 1543 orrs r5, r2
| 0x08058568 7f00 lsls r7, r7, 1
| 0x0805856a 15f00c0f tst.w r5, 0xc ; 12
| 0x0805856e a4f8be77 strh.w r7, [r4, 0x7be]
| ,=< 0x08058572 59d0 beq 0x8058628
| | 0x08058574 04f28457 addw r7, r4, 0x584
| | 0x08058578 4ff00008 mov.w r8, 0
| | 0x0805857c c146 mov sb, r8
| | 0x0805857e 0ca8 add r0, sp, 0x30
| | 0x08058580 7388 ldrh r3, [r6, 2]
| | 0x08058582 20f8023d strh r3, [r0, -0x2]!
| | 0x08058586 04f5f961 add.w r1, r4, 0x7c8
| | 0x0805858a 0022 movs r2, 0
| | 0x0805858c fff7a0fa bl func_57ad0
| | 0x08058590 15f4804a ands sl, r5, 0x4000
| ,==< 0x08058594 1dd0 beq 0x80585d2
| || 0x08058596 b4f8a017 ldrh.w r1, [r4, 0x7a0]
| || 0x0805859a b4f8a227 ldrh.w r2, [r4, 0x7a2]
| || 0x0805859e adf82e10 strh.w r1, [sp, 0x2e]
| || 0x080585a2 12b2 sxth r2, r2
| || 0x080585a4 0020 movs r0, 0
| || 0x080585a6 09b2 sxth r1, r1
| || 0x080585a8 0090 str r0, [sp]
| || 0x080585aa 1346 mov r3, r2
| || 0x080585ac 3046 mov r0, r6
| || 0x080585ae fff7fbfa bl func_57ba8
| || 0x080585b2 1598 ldr r0, [sp, 0x54]
| || 0x080585b4 3146 mov r1, r6
| || 0x080585b6 fff76dfd bl func_58094
| || 0x080585ba 48f20208 movw r8, 0x8002
| || 0x080585be 0023 movs r3, 0
| || 0x080585c0 3846 mov r0, r7
| || 0x080585c2 a4f8c037 strh.w r3, [r4, 0x7c0]
| || 0x080585c6 06f027f8 bl func_5e618
| || 0x080585ca 4046 mov r0, r8
| || 0x080585cc 0cb0 add sp, 0x30
| || 0x080585ce bde8f087 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}
| `--> 0x080585d2 0028 cmp r0, 0
| ,==< 0x080585d4 57d1 bne 0x8058686
| || 0x080585d6 2b07 lsls r3, r5, 0x1c
| ,===< 0x080585d8 10d4 bmi 0x80585fc
| ||| 0x080585da 6a07 lsls r2, r5, 0x1d
| ,====< 0x080585dc 0bd5 bpl 0x80585f6
| |||| 0x080585de b4f8be37 ldrh.w r3, [r4, 0x7be]
| |||| 0x080585e2 03f00e03 and r3, r3, 0xe
| |||| 0x080585e6 0e2b cmp r3, 0xe ; 14
| ,=====< 0x080585e8 08d0 beq 0x80585fc
| ||||| 0x080585ea 3046 mov r0, r6
| ||||| 0x080585ec 04f27441 addw r1, r4, 0x474
| ||||| 0x080585f0 fff750fd bl func_58094
| ,======< 0x080585f4 07e0 b 0x8058606
| ||`----> 0x080585f6 b9f1000f cmp.w sb, 0
| ||,====< 0x080585fa 65d0 beq 0x80586c8
| |`-`---> 0x080585fc 3046 mov r0, r6
| | | || 0x080585fe 04f2fc41 addw r1, r4, 0x4fc
| | | || 0x08058602 fff747fd bl func_58094
| `------> 0x08058606 3146 mov r1, r6
| | || 0x08058608 1598 ldr r0, [sp, 0x54]
| | || 0x0805860a fff743fd bl func_58094
| | || 0x0805860e b4f8be37 ldrh.w r3, [r4, 0x7be]
| | || 0x08058612 43f00103 orr r3, r3, 1
| | || 0x08058616 3846 mov r0, r7
| | || 0x08058618 a4f8be37 strh.w r3, [r4, 0x7be]
| | || 0x0805861c 05f0fcff bl func_5e618
| | || 0x08058620 2020 movs r0, 0x20 ; 32
| | || 0x08058622 0cb0 add sp, 0x30
\ | || 0x08058624 bde8f087 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}
/ (fcn) func_587f4 62
| Caller: func_5375c
| func_587f4 ();
| 0x080587f4 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x080587f6 0646 mov r6, r0
| 0x080587f8 b2f90200 ldrsh.w r0, [r2, 2]
| 0x080587fc 1446 mov r4, r2
| 0x080587fe 0d46 mov r5, r1
| 0x08058800 1f46 mov r7, r3
| 0x08058802 fff72bf9 bl func_57a5c
| 0x08058806 0028 cmp r0, 0
| ,=< 0x08058808 1bd0 beq 0x8058842
| ,==< 0x0805880a 12db blt 0x8058832
| || 0x0805880c 0328 cmp r0, 3 ; 3
| ,===< 0x0805880e 10dc bgt 0x8058832
| ||| 0x08058810 94f90730 ldrsb.w r3, [r4, 7]
| ||| 0x08058814 6288 ldrh r2, [r4, 2]
| ||| 0x08058816 3280 strh r2, [r6]
| ||| 0x08058818 0833 adds r3, 8
| ,====< 0x0805881a dfb9 cbnz r7, 0x8058854
| |||| 0x0805881c 34f81300 ldrh.w r0, [r4, r3, lsl 1]
| |||| 0x08058820 00f50060 add.w r0, r0, 0x800
| |||| 0x08058824 00b2 sxth r0, r0
| |||| 0x08058826 fff7c1fa bl func_57dac
| |||| 0x0805882a 0123 movs r3, 1 ; 1
| |||| 0x0805882c 2880 strh r0, [r5]
| |||| 0x0805882e 1846 mov r0, r3
\ |||| 0x08058830 f8bd pop {r3, r4, r5, r6, r7, pc}
/ (fcn) func_58880 62
| Caller: func_5e62c func_57ba8 func_62378 func_53b7c func_5f994 func_537ec
| func_58880 ();
| 0x08058880 81ea0003 eor.w r3, r1, r0
| 0x08058884 0028 cmp r0, 0
| ,=< 0x08058886 05da bge 0x8058894
| | 0x08058888 b0f1004f cmp.w r0, -0x80000000
| ,==< 0x0805888c 14bf ite ne
| `--> 0x0805888e 4042 rsbs r0, r0, 0
| | 0x08058890 6ff00040 mvn r0, 0x80000000
| `-> 0x08058894 0029 cmp r1, 0
| ,=< 0x08058896 07da bge 0x80588a8
| | 0x08058898 11f5004f cmn.w r1, 0x8000
| ,==< 0x0805889c 02d0 beq 0x80588a4
| || 0x0805889e 4942 rsbs r1, r1, 0
| || 0x080588a0 09b2 sxth r1, r1
| ,===< 0x080588a2 01e0 b 0x80588a8
| |`--> 0x080588a4 47f6ff71 movw r1, 0x7fff
| `-`-> 0x080588a8 8842 cmp r0, r1
| ,=< 0x080588aa 03db blt 0x80588b4
| | 0x080588ac 90fbf1f0 sdiv r0, r0, r1
| | 0x080588b0 4010 asrs r0, r0, 1
| ,==< 0x080588b2 00e0 b 0x80588b6
| |`-> 0x080588b4 0020 movs r0, 0
| `--> 0x080588b6 002b cmp r3, 0
| ,=< 0x080588b8 b8bf it lt
| `-> 0x080588ba 4042 rsbs r0, r0, 0
\ 0x080588bc 7047 bx lr
/ (fcn) func_58940 64
| Caller: func_62ee8 func_5e460
| func_58940 ();
| 0x08058940 81ea0003 eor.w r3, r1, r0
| 0x08058944 0028 cmp r0, 0
| ,=< 0x08058946 05da bge 0x8058954
| | 0x08058948 b0f1004f cmp.w r0, -0x80000000
| ,==< 0x0805894c 14bf ite ne
| `--> 0x0805894e 4042 rsbs r0, r0, 0
| | 0x08058950 6ff00040 mvn r0, 0x80000000
| `-> 0x08058954 0029 cmp r1, 0
| ,=< 0x08058956 07da bge 0x8058968
| | 0x08058958 11f5004f cmn.w r1, 0x8000
| ,==< 0x0805895c 02d0 beq 0x8058964
| || 0x0805895e 4942 rsbs r1, r1, 0
| || 0x08058960 09b2 sxth r1, r1
| ,===< 0x08058962 01e0 b 0x8058968
| |`--> 0x08058964 47f6ff71 movw r1, 0x7fff
| `-`-> 0x08058968 8842 cmp r0, r1
| ,=< 0x0805896a acbf ite ge
| `-> 0x0805896c 90fbf1f0 sdiv r0, r0, r1
| 0x08058970 0020 movs r0, 0
| 0x08058972 002b cmp r3, 0
| ,=< 0x08058974 b8bf it lt
| `-> 0x08058976 4042 rsbs r0, r0, 0
| 0x08058978 7047 bx lr
| 0x0805897a 00bf nop
\ 0x0805897c aff30080 nop.w
/ (fcn) func_58980 26
| Caller: func_60374 func_601c4
| func_58980 ();
| 0x08058980 70b4 push {r4, r5, r6}
| 0x08058982 039c ldr r4, [sp, 0xc]
| ,=< 0x08058984 10b1 cbz r0, 0x805898c
| | 0x08058986 5d1a subs r5, r3, r1
| | 0x08058988 1f2d cmp r5, 0x1f ; 31
| ,==< 0x0805898a 06dd ble 0x805899a
| |`-> 0x0805898c 002a cmp r2, 0
| |,=< 0x0805898e 08bf it eq
| |`-> 0x08058990 0023 movs r3, 0
| | 0x08058992 2360 str r3, [r4]
| | 0x08058994 1046 mov r0, r2
| | 0x08058996 70bc pop {r4, r5, r6}
\ | 0x08058998 7047 bx lr
/ (fcn) func_58a00 26
| Caller: func_6054c
| func_58a00 ();
| 0x08058a00 70b4 push {r4, r5, r6}
| 0x08058a02 039c ldr r4, [sp, 0xc]
| ,=< 0x08058a04 10b1 cbz r0, 0x8058a0c
| | 0x08058a06 5d1a subs r5, r3, r1
| | 0x08058a08 1f2d cmp r5, 0x1f ; 31
| ,==< 0x08058a0a 06dd ble 0x8058a1a
| |`-> 0x08058a0c 002a cmp r2, 0
| |,=< 0x08058a0e 08bf it eq
| |`-> 0x08058a10 0023 movs r3, 0
| | 0x08058a12 2360 str r3, [r4]
| | 0x08058a14 1046 mov r0, r2
| | 0x08058a16 70bc pop {r4, r5, r6}
\ | 0x08058a18 7047 bx lr
/ (fcn) func_58b00 120
| Caller: func_60374 func_601c4 func_6054c func_5f994 func_55dac func_5c8d4
| func_58b00 ();
| 0x08058b00 0028 cmp r0, 0
| 0x08058b02 10b5 push {r4, lr}
| 0x08058b04 82ea0004 eor.w r4, r2, r0
| ,=< 0x08058b08 05da bge 0x8058b16
| | 0x08058b0a b0f1004f cmp.w r0, -0x80000000
| ,==< 0x08058b0e 0cbf ite eq
| `--> 0x08058b10 6ff00040 mvn r0, 0x80000000
| | 0x08058b14 4042 rsbs r0, r0, 0
| `-> 0x08058b16 002a cmp r2, 0
| ,=< 0x08058b18 07da bge 0x8058b2a
| | 0x08058b1a 12f5004f cmn.w r2, 0x8000
| ,==< 0x08058b1e 02d0 beq 0x8058b26
| || 0x08058b20 5242 rsbs r2, r2, 0
| || 0x08058b22 12b2 sxth r2, r2
| ,===< 0x08058b24 01e0 b 0x8058b2a
| |`--> 0x08058b26 47f6ff72 movw r2, 0x7fff
| `-`-> 0x08058b2a b0eb024f cmp.w r0, r2, lsl 16
| ,=< 0x08058b2e 01db blt 0x8058b34
| | 0x08058b30 4010 asrs r0, r0, 1
| | 0x08058b32 0131 adds r1, 1
| `-> 0x08058b34 90fbf2f2 sdiv r2, r0, r2
| 0x08058b38 5010 asrs r0, r2, 1
| 0x08058b3a 002c cmp r4, 0
| 0x08058b3c 82b2 uxth r2, r0
| ,=< 0x08058b3e 01da bge 0x8058b44
| | 0x08058b40 5442 rsbs r4, r2, 0
| | 0x08058b42 a2b2 uxth r2, r4
| `-> 0x08058b44 1204 lsls r2, r2, 0x10
| 0x08058b46 1446 mov r4, r2
| 0x08058b48 002c cmp r4, 0
| ,=< 0x08058b4a b8bf it lt
| `-> 0x08058b4c e443 mvns r4, r4
| ,=< 0x08058b4e 1cbf itt ne
| `-> 0x08058b50 b4fa84f4 clz r4, r4
| 0x08058b54 013c subs r4, 1
| 0x08058b56 24b2 sxth r4, r4
| 0x08058b58 02fa04f0 lsl.w r0, r2, r4
| 0x08058b5c 5fea104c lsrs.w ip, r0, 0x10
| ,=< 0x08058b60 18bf it ne
| `-> 0x08058b62 c3eb0101 rsb r1, r3, r1
| 0x08058b66 029b ldr r3, [sp, 8]
| ,=< 0x08058b68 14bf ite ne
| `-> 0x08058b6a c4eb0101 rsb r1, r4, r1
| 0x08058b6e 6146 mov r1, ip
| 0x08058b70 1960 str r1, [r3]
| 0x08058b72 0ffa8cf0 sxth.w r0, ip
\ 0x08058b76 10bd pop {r4, pc}
/ (fcn) func_58c00 128
| Caller: func_5dcb8 func_5e460 func_58c80
| func_58c00 ();
| 0x08058c00 0004 lsls r0, r0, 0x10
| 0x08058c02 70b4 push {r4, r5, r6}
| 0x08058c04 0346 mov r3, r0
| 0x08058c06 4ff4004c mov.w ip, 0x8000
| 0x08058c0a 002b cmp r3, 0
| ,=< 0x08058c0c 1cbf itt ne
| `-> 0x08058c0e b3fa83f3 clz r3, r3
| 0x08058c12 013b subs r3, 1
| 0x08058c14 1cb2 sxth r4, r3
| 0x08058c16 10fa04f2 lsls.w r2, r0, r4
| 0x08058c1a 184b ldr r3, [0x08058c7e] ; [0x8058c7c:4]=0x8092758
| 0x08058c1c b3f90060 ldrsh.w r6, [r3]
| 0x08058c20 5d88 ldrh r5, [r3, 2]
| 0x08058c22 a2eb0642 sub.w r2, r2, r6, lsl 16
| 0x08058c26 15fb12f0 smulbt r0, r5, r2
| 0x08058c2a b3f90450 ldrsh.w r5, [r3, 4]
| 0x08058c2e 0ceb4000 add.w r0, ip, r0, lsl 1
| 0x08058c32 05eb1040 add.w r0, r5, r0, lsr 16
| 0x08058c36 10fb12f0 smulbt r0, r0, r2
| 0x08058c3a b3f90650 ldrsh.w r5, [r3, 6]
| 0x08058c3e 0ceb4000 add.w r0, ip, r0, lsl 1
| 0x08058c42 05eb1040 add.w r0, r5, r0, lsr 16
| 0x08058c46 10fb12f0 smulbt r0, r0, r2
| 0x08058c4a b3f90850 ldrsh.w r5, [r3, 8]
| 0x08058c4e 0ceb4000 add.w r0, ip, r0, lsl 1
| 0x08058c52 6ff30f00 bfc r0, 0, 0x10
| 0x08058c56 2d04 lsls r5, r5, 0x10
| 0x08058c58 05eb6000 add.w r0, r5, r0, asr 1
| 0x08058c5c 10fb32f2 smultt r2, r0, r2
| 0x08058c60 b3f90a00 ldrsh.w r0, [r3, 0xa]
| 0x08058c64 0ceb4202 add.w r2, ip, r2, lsl 1
| 0x08058c68 120c lsrs r2, r2, 0x10
| 0x08058c6a 0004 lsls r0, r0, 0x10
| 0x08058c6c 0c1b subs r4, r1, r4
| 0x08058c6e 00eb8240 add.w r0, r0, r2, lsl 18
| 0x08058c72 2404 lsls r4, r4, 0x10
| 0x08058c74 04ebe030 add.w r0, r4, r0, asr 15
| 0x08058c78 70bc pop {r4, r5, r6}
| 0x08058c7a 7047 bx lr
| 0x08058c7c 5827 movs r7, 0x58 ; 'X' ; 88
\ 0x08058c7e 0908 lsrs r1, r1, 0x20
/ (fcn) func_58c80 64
| Caller: func_5e62c func_63274 func_5dc40
| func_58c80 ();
| 0x08058c80 10b5 push {r4, lr}
| 0x08058c82 1446 mov r4, r2
| 0x08058c84 fff7bcff bl func_58c00
| 0x08058c88 d4f10f03 rsbs.w r3, r4, 0xf
| ,=< 0x08058c8c 58bf it pl
| `-> 0x08058c8e 9840 lsls r0, r3
| ,=< 0x08058c90 02d5 bpl 0x8058c98
| | 0x08058c92 0f3c subs r4, 0xf
| | 0x08058c94 40fa04f0 asr.w r0, r0, r4
| `-> 0x08058c98 00f50040 add.w r0, r0, 0x8000
| 0x08058c9c 0014 asrs r0, r0, 0x10
| 0x08058c9e 10bd pop {r4, pc}
| 0x08058ca0 aff30080 nop.w
| 0x08058ca4 aff30080 nop.w
| 0x08058ca8 aff30080 nop.w
| 0x08058cac aff30080 nop.w
| 0x08058cb0 aff30080 nop.w
| 0x08058cb4 aff30080 nop.w
| 0x08058cb8 aff30080 nop.w
\ 0x08058cbc aff30080 nop.w
/ (fcn) func_58cc0 8
| Caller: func_58d80
| func_58cc0 ();
| 0x08058cc0 83b2 uxth r3, r0
| 0x08058cc2 30b5 push {r4, r5, lr}
| 0x08058cc4 0414 asrs r4, r0, 0x10
\ 0x08058cc6 5808 lsrs r0, r3, 1
/ (fcn) func_58d80 54
| Caller: func_55d18 func_5f844
| func_58d80 ();
| 0x08058d80 13b5 push {r0, r1, r4, lr}
| 0x08058d82 0004 lsls r0, r0, 0x10
| 0x08058d84 0e29 cmp r1, 0xe ; 14
| 0x08058d86 1446 mov r4, r2
| ,=< 0x08058d88 03dd ble 0x8058d92
| | 0x08058d8a 0f39 subs r1, 0xf
| | 0x08058d8c 00fa01f0 lsl.w r0, r0, r1
| ,==< 0x08058d90 03e0 b 0x8058d9a
| |`-> 0x08058d92 c1f10f01 rsb.w r1, r1, 0xf
| | 0x08058d96 40fa01f0 asr.w r0, r0, r1
| `--> 0x08058d9a 01a9 add r1, sp, 4
| 0x08058d9c fff790ff bl func_58cc0
| 0x08058da0 019b ldr r3, [sp, 4]
| 0x08058da2 1a1b subs r2, r3, r4
| ,=< 0x08058da4 4abf itet mi
| `-> 0x08058da6 c3eb0404 rsb r4, r3, r4
| 0x08058daa 9040 lsls r0, r2
| 0x08058dac 2041 asrs r0, r4
| 0x08058dae 00f50040 add.w r0, r0, 0x8000
| 0x08058db2 0014 asrs r0, r0, 0x10
\ 0x08058db4 1cbd pop {r2, r3, r4, pc}
/ (fcn) func_58dc0 116
| Caller: func_5c8d4 func_5f994 func_60374
| func_58dc0 ();
| 0x08058dc0 30b5 push {r4, r5, lr}
| 0x08058dc2 8446 mov ip, r0
| 0x08058dc4 bcf1000f cmp.w ip, 0
| ,=< 0x08058dc8 33d0 beq 0x8058e32
| ,==< 0x08058dca b8bf it lt
| `--> 0x08058dcc 6fea0c0c mvn.w ip, ip
| ,==< 0x08058dd0 1cbf itt ne
| `--> 0x08058dd2 bcfa8cfc clz ip, ip
| | 0x08058dd6 acf1010c sub.w ip, ip, 1
| | 0x08058dda 0ffa8cf5 sxth.w r5, ip
| | 0x08058dde 00fa05f3 lsl.w r3, r0, r5
| | 0x08058de2 180c lsrs r0, r3, 0x10
| | 0x08058de4 0a68 ldr r2, [r1]
| | 0x08058de6 134b ldr r3, [0x08058e36] ; [0x8058e34:4]=0x8092744
| | 0x08058de8 521b subs r2, r2, r5
| | 0x08058dea b3f90240 ldrsh.w r4, [r3, 2]
| | 0x08058dee 1d88 ldrh r5, [r3]
| | 0x08058df0 2404 lsls r4, r4, 0x10
| | 0x08058df2 15fb00fc smulbb ip, r5, r0
| | 0x08058df6 04eb4c05 add.w r5, r4, ip, lsl 1
| | 0x08058dfa b3f90440 ldrsh.w r4, [r3, 4]
| | 0x08058dfe 05f50045 add.w r5, r5, 0x8000
| | 0x08058e02 2404 lsls r4, r4, 0x10
| | 0x08058e04 15fb20f0 smultb r0, r5, r0
| | 0x08058e08 04eb400c add.w ip, r4, r0, lsl 1
| | 0x08058e0c 0cf50040 add.w r0, ip, 0x8000
| | 0x08058e10 6ff30f00 bfc r0, 0, 0x10
| | 0x08058e14 12f0010f tst.w r2, 1 ; 1
| ,==< 0x08058e18 04d0 beq 0x8058e24
| || 0x08058e1a b3f90630 ldrsh.w r3, [r3, 6]
| || 0x08058e1e 10fb23f0 smultb r0, r0, r3
| || 0x08058e22 4000 lsls r0, r0, 1
| `--> 0x08058e24 00f50040 add.w r0, r0, 0x8000
| | 0x08058e28 6ff30f00 bfc r0, 0, 0x10
| | 0x08058e2c 531c adds r3, r2, 1
| | 0x08058e2e 5a10 asrs r2, r3, 1
| | 0x08058e30 0a60 str r2, [r1]
\ `-> 0x08058e32 30bd pop {r4, r5, pc}
/ (fcn) func_59080 50
| Caller: func_53a98
| func_59080 ();
| 0x08059080 70b4 push {r4, r5, r6}
| 0x08059082 0126 movs r6, 1 ; 1
| 0x08059084 9e40 lsls r6, r3
| 0x08059086 002a cmp r2, 0
| 0x08059088 06f1ff36 add.w r6, r6, -1
| ,=< 0x0805908c 11dd ble 0x80590b2
| | 0x0805908e 01eb4202 add.w r2, r1, r2, lsl 1
| | 0x08059092 0024 movs r4, 0
| .--> 0x08059094 32f9025d ldrsh r5, [r2, -0x2]!
| || 0x08059098 00f00103 and r3, r0, 1
| || 0x0805909c 06fb1353 mls r3, r6, r3, r5
| || 0x080590a0 8a42 cmp r2, r1
| || 0x080590a2 03fb0344 mla r4, r3, r3, r4
| || 0x080590a6 4fea6000 asr.w r0, r0, 1
| `==< 0x080590aa f3d1 bne 0x8059094
| | 0x080590ac 2046 mov r0, r4
| | 0x080590ae 70bc pop {r4, r5, r6}
\ | 0x080590b0 7047 bx lr
/ (fcn) func_591a0 28
| Caller: func_54f52_floating_point_stuff
| func_591a0 ();
| 0x080591a0 b5eec00a vcmpe.f32 s0, 0
| 0x080591a4 f1ee10fa vmrs APSR_nzcv, fpscr
| ,=< 0x080591a8 02d4 bmi 0x80591b0
| | 0x080591aa b1eec00a vsqrt.f32 s0, s0
| | 0x080591ae 7047 bx lr
| `-> 0x080591b0 6ff0004c mvn ip, 0x80000000
| 0x080591b4 00ee10ca vmov s0, ip
\ ,=< 0x080591b8 07f09cbf b.w func_610f4
/ (fcn) func_59a48 68
| Caller: func_55148
| func_59a48 ();
| 0x08059a48 90f8cc25 ldrb.w r2, [r0, 0x5cc]
| 0x08059a4c 0a70 strb r2, [r1]
| 0x08059a4e 90f8cd25 ldrb.w r2, [r0, 0x5cd]
| 0x08059a52 4a70 strb r2, [r1, 1]
| 0x08059a54 90f8ce25 ldrb.w r2, [r0, 0x5ce]
| 0x08059a58 90f8cf35 ldrb.w r3, [r0, 0x5cf]
| 0x08059a5c 1b02 lsls r3, r3, 8
| 0x08059a5e 9a18 adds r2, r3, r2
| 0x08059a60 4a80 strh r2, [r1, 2]
| 0x08059a62 90f8d025 ldrb.w r2, [r0, 0x5d0]
| 0x08059a66 90f8d135 ldrb.w r3, [r0, 0x5d1]
| 0x08059a6a 1b02 lsls r3, r3, 8
| 0x08059a6c 9a18 adds r2, r3, r2
| 0x08059a6e 8a80 strh r2, [r1, 4]
| 0x08059a70 90f8d225 ldrb.w r2, [r0, 0x5d2]
| 0x08059a74 90f8d335 ldrb.w r3, [r0, 0x5d3]
| 0x08059a78 1b02 lsls r3, r3, 8
| 0x08059a7a 9a18 adds r2, r3, r2
| 0x08059a7c ca80 strh r2, [r1, 6]
| 0x08059a7e c988 ldrh r1, [r1, 6]
| 0x08059a80 c0f84011 str.w r1, [r0, 0x140]
| 0x08059a84 0121 movs r1, 1 ; 1
| 0x08059a86 80f81111 strb.w r1, [r0, 0x111]
\ 0x08059a8a 7047 bx lr
/ (fcn) func_59aee 20
| Caller: func_59aa8
| func_59aee ();
| 0x08059aee 0021 movs r1, 0
| ,=< 0x08059af0 01e0 b 0x8059af6
| .--> 0x08059af2 491c adds r1, r1, 1
| || 0x08059af4 401c adds r0, r0, 1
| |`-> 0x08059af6 0278 ldrb r2, [r0]
| | 0x08059af8 002a cmp r2, 0
| `==< 0x08059afa fad1 bne 0x8059af2
| 0x08059afc 0800 movs r0, r1
| 0x08059afe c0b2 uxtb r0, r0
\ 0x08059b00 7047 bx lr
/ (fcn) func_59c40 78
| Caller: func_59ec0
| func_59c40 ();
| 0x08059c40 2029 cmp r1, 0x20 ; 32
| 0x08059c42 2de9c043 push.w {r6, r7, r8, sb, lr}
| ,=< 0x08059c46 08d0 beq 0x8059c5a
| ,==< 0x08059c48 03dc bgt 0x8059c52
| || 0x08059c4a 0829 cmp r1, 8 ; 8
| ,===< 0x08059c4c 06d0 beq 0x8059c5c
| ||| 0x08059c4e 1029 cmp r1, 0x10 ; 16
| ,====< 0x08059c50 00e0 b 0x8059c54
| ||`--> 0x08059c52 4029 cmp r1, 0x40 ; '@' ; 64
| `-,==< 0x08059c54 02d0 beq 0x8059c5c
| ||| 0x08059c56 0e4b ldr r3, [0x08059c92] ; [0x8059c90:4]=0x8095988
| ,====< 0x08059c58 00e0 b 0x8059c5c
| |||`-> 0x08059c5a 0e4b ldr r3, [0x08059c96] ; [0x8059c94:4]=0x8095a6c
| ```--> 0x08059c5c 33f902cb ldrsh ip, [r3], 2
| 0x08059c60 0246 mov r2, r0
| 0x08059c62 00bf nop
| .-> 0x08059c64 33f9027b ldrsh r7, [r3], 2
| | 0x08059c68 33f9026b ldrsh r6, [r3], 2
| | 0x08059c6c 02eb4702 add.w r2, r2, r7, lsl 1
| | 0x08059c70 00eb4600 add.w r0, r0, r6, lsl 1
| | 0x08059c74 bcf1010c subs.w ip, ip, 1
| | 0x08059c78 d2f80080 ldr.w r8, [r2]
| | 0x08059c7c d0f80090 ldr.w sb, [r0]
| | 0x08059c80 42f8029b str sb, [r2], 2
| | 0x08059c84 40f8028b str r8, [r0], 2
| `=< 0x08059c88 ecd1 bne 0x8059c64
\ 0x08059c8a bde8c083 pop.w {r6, r7, r8, sb, pc}
/ (fcn) func_59cc0 8
| Caller: func_59ec0
| func_59cc0 ();
| 0x08059cc0 02f10102 add.w r2, r2, 1
\ 0x08059cc4 12f1010f cmn.w r2, 1 ; 1
/ (fcn) usb_setcallbacks 68
| Caller: func_4e808
| usb_setcallbacks ();
| 0x08055100 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x08055104 0400 movs r4, r0
| 0x08055106 0d00 movs r5, r1
| 0x08055108 1600 movs r6, r2
| 0x0805510a 1f00 movs r7, r3
| 0x0805510c ddf81880 ldr.w r8, [sp, 0x18]
| 0x08055110 2000 movs r0, r4
| 0x08055112 04f053f8 bl func_591bc
| 0x08055116 2000 movs r0, r4
| 0x08055118 00f014f8 bl func_55144_return_zero
| 0x0805511c c4f8e475 str.w r7, [r4, 0x5e4]
| 0x08055120 c4f8e885 str.w r8, [r4, 0x5e8]
| 0x08055124 c4f8ec65 str.w r6, [r4, 0x5ec]
| 0x08055128 2900 movs r1, r5
| 0x0805512a c9b2 uxtb r1, r1
| 0x0805512c 2000 movs r0, r4
| 0x0805512e 04f0a2f8 bl func_59276
| 0x08055132 d4f8e805 ldr.w r0, [r4, 0x5e8]
| 0x08055136 0068 ldr r0, [r0]
| 0x08055138 8047 blx r0
| 0x0805513a 2000 movs r0, r4
| 0x0805513c 04f074f8 bl func_59228
\ 0x08055140 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) usb_send_packet 40
| Caller: func_59908 usb_upld_handle func_59940 func_8ff00 func_59560 func_90174
| func_596c8 usb_do_setup
| usb_send_packet ();
| 0x08059b02 10b5 push {r4, lr}
| 0x08059b04 0024 movs r4, 0
| 0x08059b06 92b2 uxth r2, r2
| 0x08059b08 c0f83c21 str.w r2, [r0, 0x13c]
| 0x08059b0c 92b2 uxth r2, r2
| 0x08059b0e c0f83821 str.w r2, [r0, 0x138]
| 0x08059b12 0223 movs r3, 2 ; 2
| 0x08059b14 80f81131 strb.w r3, [r0, 0x111]
| 0x08059b18 92b2 uxth r2, r2
| 0x08059b1a 1300 movs r3, r2
| 0x08059b1c 0a00 movs r2, r1
| 0x08059b1e 0021 movs r1, 0
| 0x08059b20 fff744fc bl func_593ac
| 0x08059b24 2000 movs r0, r4
| 0x08059b26 c0b2 uxtb r0, r0
\ 0x08059b28 10bd pop {r4, pc}
/ (fcn) usb_do_setup 190
| usb_do_setup ();
| 0x0808eb30 10b5 push {r4, lr}
| 0x0808eb32 0022 movs r2, 0
| 0x0808eb34 0023 movs r3, 0
| 0x0808eb36 0c78 ldrb r4, [r1]
| 0x0808eb38 14f06004 ands r4, r4, 0x60
| 0x0808eb3c e4b2 uxtb r4, r4
| 0x0808eb3e 002c cmp r4, 0
| ,=< 0x0808eb40 27d0 beq 0x808eb92
| | 0x0808eb42 202c cmp r4, 0x20 ; 32
| ,==< 0x0808eb44 51d1 bne 0x808ebea
| || 0x0808eb46 4a78 ldrb r2, [r1, 1]
| || 0x0808eb48 002a cmp r2, 0
| ,===< 0x0808eb4a 1bd0 beq 0x808eb84
| ||| 0x0808eb4c 022a cmp r2, 2 ; 2
| ,====< 0x0808eb4e 0ad0 beq 0x808eb66
| ,=====< 0x0808eb50 06d3 blo 0x808eb60
| ||||| 0x0808eb52 042a cmp r2, 4 ; 4
| ,======< 0x0808eb54 0dd0 beq 0x808eb72
| ,=======< 0x0808eb56 09d3 blo 0x808eb6c
| ||||||| 0x0808eb58 062a cmp r2, 6 ; 6
| ========< 0x0808eb5a 10d0 beq 0x808eb7e
| ========< 0x0808eb5c 0cd3 blo 0x808eb78
| ========< 0x0808eb5e 14e0 b 0x808eb8a
| ||`-----> 0x0808eb60 00f05bfb bl func_8f21a
| --.-----> 0x0808eb64 41e0 b 0x808ebea
| |||`----> 0x0808eb66 00f0cffb bl usb_upld_handle
| ========< 0x0808eb6a fbe7 b 0x808eb64
| `-------> 0x0808eb6c 01f0c8f9 bl func_8ff00
| ========< 0x0808eb70 f8e7 b 0x808eb64
| `------> 0x0808eb72 01f0cbfa bl func_9010c
| ========< 0x0808eb76 f5e7 b 0x808eb64
| --------> 0x0808eb78 01f0fcfa bl func_90174
| ========< 0x0808eb7c f2e7 b 0x808eb64
| --------> 0x0808eb7e 01f001fb bl func_90184
| ========< 0x0808eb82 efe7 b 0x808eb64
| | `---> 0x0808eb84 00f007fb bl func_8f196
| `=====< 0x0808eb88 ece7 b 0x808eb64
| --------> 0x0808eb8a caf77fff bl func_59a8c
| || 0x0808eb8e 0220 movs r0, 2 ; 2
| ,===< 0x0808eb90 2ce0 b 0x808ebec
| ||`-> 0x0808eb92 4c78 ldrb r4, [r1, 1]
| || 0x0808eb94 062c cmp r4, 6 ; 6
| ||,=< 0x0808eb96 04d0 beq 0x808eba2
| ||| 0x0808eb98 0a2c cmp r4, 0xa ; 10
| ,====< 0x0808eb9a 15d0 beq 0x808ebc8
| |||| 0x0808eb9c 0b2c cmp r4, 0xb ; 11
| ,=====< 0x0808eb9e 19d0 beq 0x808ebd4
| ,======< 0x0808eba0 23e0 b 0x808ebea
| |||||`-> 0x0808eba2 4c88 ldrh r4, [r1, 2]
| ||||| 0x0808eba4 a4b2 uxth r4, r4
| ||||| 0x0808eba6 240a lsrs r4, r4, 8
| ||||| 0x0808eba8 e4b2 uxtb r4, r4
| ||||| 0x0808ebaa 212c cmp r4, 0x21 ; '!' ; 33
| |||||,=< 0x0808ebac 07d1 bne 0x808ebbe
| |||||| 0x0808ebae dff80837 ldr.w r3, [0x0808f2be] ; [0x808f2bc:4]=0x2001e75c
| |||||| 0x0808ebb2 ca88 ldrh r2, [r1, 6]
| |||||| 0x0808ebb4 0a2a cmp r2, 0xa ; 10
| ,=======< 0x0808ebb6 01d3 blo 0x808ebbc
| ||||||| 0x0808ebb8 0922 movs r2, 9 ; 9
| ========< 0x0808ebba 00e0 b 0x808ebbe
| `-------> 0x0808ebbc ca88 ldrh r2, [r1, 6]
| ------`-> 0x0808ebbe 92b2 uxth r2, r2
| ||||| 0x0808ebc0 1900 movs r1, r3
| ||||| 0x0808ebc2 caf79eff bl usb_send_packet
| |||||,=< 0x0808ebc6 10e0 b 0x808ebea
| ||`----> 0x0808ebc8 0122 movs r2, 1 ; 1
| || ||| 0x0808ebca dff8f016 ldr.w r1, [0x0808f2c2] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| || ||| 0x0808ebce caf798ff bl usb_send_packet
| ||,====< 0x0808ebd2 0ae0 b 0x808ebea
| |`-----> 0x0808ebd4 4a88 ldrh r2, [r1, 2]
| | |||| 0x0808ebd6 d2b2 uxtb r2, r2
| | |||| 0x0808ebd8 022a cmp r2, 2 ; 2
| |,=====< 0x0808ebda 04d2 bhs 0x808ebe6
| |||||| 0x0808ebdc 8878 ldrb r0, [r1, 2]
| |||||| 0x0808ebde dff8dc16 ldr.w r1, [0x0808f2c2] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| |||||| 0x0808ebe2 0860 str r0, [r1]
| ,=======< 0x0808ebe4 01e0 b 0x808ebea
| ||`-----> 0x0808ebe6 caf751ff bl func_59a8c
| ``-`-``-> 0x0808ebea 0020 movs r0, 0
\ `---> 0x0808ebec 10bd pop {r4, pc}
/ (fcn) usb_dnld_handle 1444
| usb_dnld_handle ();
| 0x0808ebee f0b5 push {r4, r5, r6, r7, lr}
| 0x0808ebf0 83b0 sub sp, 0xc
| 0x0808ebf2 dff8b416 ldr.w r1, [0x0808f2ae] ; [0x808f2ac:4]=0x2001e584
| 0x0808ebf6 0978 ldrb r1, [r1]
| 0x0808ebf8 0429 cmp r1, 4 ; 4
| ,=< 0x0808ebfa 40f0c282 bne.w 0x808f182
| | 0x0808ebfe dff8b016 ldr.w r1, [0x0808f2b6] ; [0x808f2b4:4]=0x2001e758 md380_packetlen
| | 0x0808ec02 0968 ldr r1, [r1]
| | 0x0808ec04 0029 cmp r1, 0
| ,==< 0x0808ec06 40f08882 bne.w 0x808f11a
| || 0x0808ec0a dff8b416 ldr.w r1, [0x0808f2c6] ; [0x808f2c4:4]=0x2001e7c2
| || 0x0808ec0e 0978 ldrb r1, [r1]
| || 0x0808ec10 0029 cmp r1, 0
| ,===< 0x0808ec12 0dd1 bne 0x808ec30
| ||| 0x0808ec14 dff89c16 ldr.w r1, [0x0808f2b8] ; [0x808f2b8:4]=0x20004877
| ||| 0x0808ec18 0968 ldr r1, [r1]
| ||| 0x0808ec1a 0129 cmp r1, 1 ; 1
| ,====< 0x0808ec1c 08d1 bne 0x808ec30
| |||| 0x0808ec1e dff8a406 ldr.w r0, [0x0808f2ca] ; [0x808f2c8:4]=0x20004a14 md380_dfu_target_adr
| |||| 0x0808ec22 0121 movs r1, 1 ; 1
| |||| 0x0808ec24 0170 strb r1, [r0]
| |||| 0x0808ec26 dff89c06 ldr.w r0, [0x0808f2ca] ; [0x808f2c8:4]=0x20004a14 md380_dfu_target_adr
| |||| 0x0808ec2a 0021 movs r1, 0
| |||| 0x0808ec2c 4170 strb r1, [r0, 1]
| ,=====< 0x0808ec2e 90e2 b 0x808f152
| |``---> 0x0808ec30 dff88c16 ldr.w r1, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| | || 0x0808ec34 0978 ldrb r1, [r1]
| | || 0x0808ec36 2129 cmp r1, 0x21 ; '!' ; 33
| | ,===< 0x0808ec38 2cd1 bne 0x808ec94
| | ||| 0x0808ec3a dff87816 ldr.w r1, [0x0808f2ba] ; [0x808f2b8:4]=0x20004877
| | ||| 0x0808ec3e 0968 ldr r1, [r1]
| | ||| 0x0808ec40 0529 cmp r1, 5 ; 5
| |,====< 0x0808ec42 27d1 bne 0x808ec94
| ||||| 0x0808ec44 dff87806 ldr.w r0, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| ||||| 0x0808ec48 4078 ldrb r0, [r0, 1]
| ||||| 0x0808ec4a dff87c16 ldr.w r1, [0x0808f2ce] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| ||||| 0x0808ec4e 0860 str r0, [r1]
| ||||| 0x0808ec50 dff87406 ldr.w r0, [0x0808f2cc] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| ||||| 0x0808ec54 0068 ldr r0, [r0]
| ||||| 0x0808ec56 dff86816 ldr.w r1, [0x0808f2c6] ; [0x808f2c4:4]=0x2001e7c2
| ||||| 0x0808ec5a 8978 ldrb r1, [r1, 2]
| ||||| 0x0808ec5c 10eb0120 adds.w r0, r0, r1, lsl 8
| ||||| 0x0808ec60 dff86416 ldr.w r1, [0x0808f2cc] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| ||||| 0x0808ec64 0860 str r0, [r1]
| ||||| 0x0808ec66 dff86006 ldr.w r0, [0x0808f2ce] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| ||||| 0x0808ec6a 0068 ldr r0, [r0]
| ||||| 0x0808ec6c dff85016 ldr.w r1, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| ||||| 0x0808ec70 c978 ldrb r1, [r1, 3]
| ||||| 0x0808ec72 10eb0140 adds.w r0, r0, r1, lsl 16
| ||||| 0x0808ec76 dff85016 ldr.w r1, [0x0808f2ce] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| ||||| 0x0808ec7a 0860 str r0, [r1]
| ||||| 0x0808ec7c dff84806 ldr.w r0, [0x0808f2cc] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| ||||| 0x0808ec80 0068 ldr r0, [r0]
| ||||| 0x0808ec82 dff83c16 ldr.w r1, [0x0808f2c6] ; [0x808f2c4:4]=0x2001e7c2
| ||||| 0x0808ec86 0979 ldrb r1, [r1, 4]
| ||||| 0x0808ec88 10eb0160 adds.w r0, r0, r1, lsl 24
| ||||| 0x0808ec8c dff83816 ldr.w r1, [0x0808f2cc] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| ||||| 0x0808ec90 0860 str r0, [r1]
| ,======< 0x0808ec92 5ee2 b 0x808f152
| ||``---> 0x0808ec94 dff82816 ldr.w r1, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| || || 0x0808ec98 0978 ldrb r1, [r1]
| || || 0x0808ec9a 4129 cmp r1, 0x41 ; 'A' ; 65
| || ,===< 0x0808ec9c 37d1 bne 0x808ed0e
| || ||| 0x0808ec9e dff81416 ldr.w r1, [0x0808f2ba] ; [0x808f2b8:4]=0x20004877
| || ||| 0x0808eca2 0968 ldr r1, [r1]
| || ||| 0x0808eca4 0529 cmp r1, 5 ; 5
| ||,====< 0x0808eca6 32d1 bne 0x808ed0e
| |||||| 0x0808eca8 dff81406 ldr.w r0, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| |||||| 0x0808ecac 4078 ldrb r0, [r0, 1]
| |||||| 0x0808ecae dff81816 ldr.w r1, [0x0808f2ce] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| |||||| 0x0808ecb2 0860 str r0, [r1]
| |||||| 0x0808ecb4 dff81006 ldr.w r0, [0x0808f2cc] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| |||||| 0x0808ecb8 0068 ldr r0, [r0]
| |||||| 0x0808ecba dff80416 ldr.w r1, [0x0808f2c6] ; [0x808f2c4:4]=0x2001e7c2
| |||||| 0x0808ecbe 8978 ldrb r1, [r1, 2]
| |||||| 0x0808ecc0 10eb0120 adds.w r0, r0, r1, lsl 8
| |||||| 0x0808ecc4 dff80016 ldr.w r1, [0x0808f2cc] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| |||||| 0x0808ecc8 0860 str r0, [r1]
| |||||| 0x0808ecca dff8fc05 ldr.w r0, [0x0808f2ce] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| |||||| 0x0808ecce 0068 ldr r0, [r0]
| |||||| 0x0808ecd0 dff8ec15 ldr.w r1, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| |||||| 0x0808ecd4 c978 ldrb r1, [r1, 3]
| |||||| 0x0808ecd6 10eb0140 adds.w r0, r0, r1, lsl 16
| |||||| 0x0808ecda dff8ec15 ldr.w r1, [0x0808f2ce] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| |||||| 0x0808ecde 0860 str r0, [r1]
| |||||| 0x0808ece0 dff8e405 ldr.w r0, [0x0808f2cc] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| |||||| 0x0808ece4 0068 ldr r0, [r0]
| |||||| 0x0808ece6 dff8d815 ldr.w r1, [0x0808f2c6] ; [0x808f2c4:4]=0x2001e7c2
| |||||| 0x0808ecea 0979 ldrb r1, [r1, 4]
| |||||| 0x0808ecec 10eb0160 adds.w r0, r0, r1, lsl 24
| |||||| 0x0808ecf0 dff8d415 ldr.w r1, [0x0808f2cc] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| |||||| 0x0808ecf4 0860 str r0, [r1]
| |||||| 0x0808ecf6 dff8d405 ldr.w r0, [0x0808f2d2] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| |||||| 0x0808ecfa 0078 ldrb r0, [r0]
| |||||| 0x0808ecfc 3028 cmp r0, 0x30 ; '0' ; 48
| ,=======< 0x0808ecfe c0f02882 blo.w 0x808f152
| ||||||| 0x0808ed02 dff8c405 ldr.w r0, [0x0808f2ce] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| ||||||| 0x0808ed06 0068 ldr r0, [r0]
| ||||||| 0x0808ed08 01f00cfb bl func_90324
| ========< 0x0808ed0c 21e2 b 0x808f152
| |||``---> 0x0808ed0e dff8b015 ldr.w r1, [0x0808f2c6] ; [0x808f2c4:4]=0x2001e7c2
| ||| || 0x0808ed12 0978 ldrb r1, [r1]
| ||| || 0x0808ed14 a229 cmp r1, 0xa2 ; 162
| ||| ,===< 0x0808ed16 0fd1 bne 0x808ed38
| ||| ||| 0x0808ed18 dff89815 ldr.w r1, [0x0808f2b8] ; [0x808f2b8:4]=0x20004877
| ||| ||| 0x0808ed1c 0968 ldr r1, [r1]
| ||| ||| 0x0808ed1e 0229 cmp r1, 2 ; 2
| |||,====< 0x0808ed20 0ad1 bne 0x808ed38
| ||||||| 0x0808ed22 dff8a005 ldr.w r0, [0x0808f2ca] ; [0x808f2c8:4]=0x20004a14 md380_dfu_target_adr
| ||||||| 0x0808ed26 0221 movs r1, 2 ; 2
| ||||||| 0x0808ed28 0170 strb r1, [r0]
| ||||||| 0x0808ed2a dff89805 ldr.w r0, [0x0808f2ca] ; [0x808f2c8:4]=0x20004a14 md380_dfu_target_adr
| ||||||| 0x0808ed2e dff89015 ldr.w r1, [0x0808f2c6] ; [0x808f2c4:4]=0x2001e7c2
| ||||||| 0x0808ed32 4978 ldrb r1, [r1, 1]
| ||||||| 0x0808ed34 4170 strb r1, [r0, 1]
| ========< 0x0808ed36 0ce2 b 0x808f152
| |||``---> 0x0808ed38 dff88415 ldr.w r1, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| ||| || 0x0808ed3c 0978 ldrb r1, [r1]
| ||| || 0x0808ed3e 9129 cmp r1, 0x91 ; 145
| ||| ,===< 0x0808ed40 40f0a880 bne.w 0x808ee94
| ||| ||| 0x0808ed44 dff86c15 ldr.w r1, [0x0808f2b8] ; [0x808f2b8:4]=0x20004877
| ||| ||| 0x0808ed48 0968 ldr r1, [r1]
| ||| ||| 0x0808ed4a 0229 cmp r1, 2 ; 2
| |||,====< 0x0808ed4c 40f0a280 bne.w 0x808ee94
| ||||||| 0x0808ed50 dff86c05 ldr.w r0, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| ||||||| 0x0808ed54 4078 ldrb r0, [r0, 1]
| ||||||| 0x0808ed56 0128 cmp r0, 1 ; 1
| ========< 0x0808ed58 0fd0 beq 0x808ed7a
| ||||||| 0x0808ed5a 0228 cmp r0, 2 ; 2
| ========< 0x0808ed5c 35d0 beq 0x808edca
| ||||||| 0x0808ed5e 0328 cmp r0, 3 ; 3
| ========< 0x0808ed60 3dd0 beq 0x808edde
| ||||||| 0x0808ed62 0428 cmp r0, 4 ; 4
| ========< 0x0808ed64 54d0 beq 0x808ee10
| ||||||| 0x0808ed66 0528 cmp r0, 5 ; 5
| ========< 0x0808ed68 6bd0 beq 0x808ee42
| ||||||| 0x0808ed6a 3128 cmp r0, 0x31 ; '1' ; 49
| ========< 0x0808ed6c 73d0 beq 0x808ee56
| ||||||| 0x0808ed6e 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x0808ed70 7bd0 beq 0x808ee6a
| ||||||| 0x0808ed72 5028 cmp r0, 0x50 ; 'P' ; 80
| ========< 0x0808ed74 00f08380 beq.w 0x808ee7e
| ========< 0x0808ed78 8be0 b 0x808ee92
| --------> 0x0808ed7a dff85005 ldr.w r0, [0x0808f2d2] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ed7e 0078 ldrb r0, [r0]
| ||||||| 0x0808ed80 3028 cmp r0, 0x30 ; '0' ; 48
| ========< 0x0808ed82 21d2 bhs 0x808edc8
| ||||||| 0x0808ed84 dff84405 ldr.w r0, [0x0808f2d0] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ed88 3021 movs r1, 0x30 ; '0' ; 48
| ||||||| 0x0808ed8a 0170 strb r1, [r0]
| ||||||| 0x0808ed8c dff84005 ldr.w r0, [0x0808f2d4] ; [0x808f2d4:4]=0x2001e94b gui_opmode2
| ||||||| 0x0808ed90 9d21 movs r1, 0x9d ; 157
| ||||||| 0x0808ed92 0170 strb r1, [r0]
| ||||||| 0x0808ed94 dff83c05 ldr.w r0, [0x0808f2d8] ; [0x808f2d8:4]=0x2001e8ab
| ||||||| 0x0808ed98 0c21 movs r1, 0xc ; 12
| ||||||| 0x0808ed9a 0170 strb r1, [r0]
| ||||||| 0x0808ed9c dff83805 ldr.w r0, [0x0808f2dc] ; [0x808f2dc:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x0808eda0 1f21 movs r1, 0x1f ; 31
| ||||||| 0x0808eda2 0170 strb r1, [r0]
| ||||||| 0x0808eda4 dff83015 ldr.w r1, [0x0808f2dc] ; [0x808f2dc:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x0808eda8 dff83005 ldr.w r0, [0x0808f2e0] ; [0x808f2e0:4]=0x2001e8a8 beep_code_send
| ||||||| 0x0808edac 0068 ldr r0, [r0]
| ||||||| 0x0808edae a2f7f5f9 bl md380_OSMboxPost
| ||||||| 0x0808edb2 dff82c05 ldr.w r0, [0x0808f2e6] ; [0x808f2e4:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0808edb6 0021 movs r1, 0
| ||||||| 0x0808edb8 0170 strb r1, [r0]
| ||||||| 0x0808edba dff82415 ldr.w r1, [0x0808f2e6] ; [0x808f2e4:4]=0x2001e67c event2_mbox_poi_beep
| ||||||| 0x0808edbe dff82405 ldr.w r0, [0x0808f2ea] ; [0x808f2e8:4]=0x2001e528
| ||||||| 0x0808edc2 0068 ldr r0, [r0]
| ||||||| 0x0808edc4 a2f7eaf9 bl md380_OSMboxPost
| --------> 0x0808edc8 c3e1 b 0x808f152
| --------> 0x0808edca dff80005 ldr.w r0, [0x0808f2d2] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808edce 0078 ldrb r0, [r0]
| ||||||| 0x0808edd0 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x0808edd2 03d2 bhs 0x808eddc
| ||||||| 0x0808edd4 dff8f404 ldr.w r0, [0x0808f2d0] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808edd8 7021 movs r1, 0x70 ; 'p' ; 112
| ||||||| 0x0808edda 0170 strb r1, [r0]
| --------> 0x0808eddc b9e1 b 0x808f152
| --------> 0x0808edde dff8ec04 ldr.w r0, [0x0808f2d2] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ede2 0078 ldrb r0, [r0]
| ||||||| 0x0808ede4 7128 cmp r0, 0x71 ; 'q' ; 113
| ========< 0x0808ede6 12d3 blo 0x808ee0e
| ||||||| 0x0808ede8 dff8fc04 ldr.w r0, [0x0808f2ec] ; [0x808f2ec:4]=0x2001e674
| ||||||| 0x0808edec 4f21 movs r1, 0x4f ; 'O' ; 79
| ||||||| 0x0808edee 0170 strb r1, [r0]
| ||||||| 0x0808edf0 dff8f404 ldr.w r0, [0x0808f2ec] ; [0x808f2ec:4]=0x2001e674
| ||||||| 0x0808edf4 4b21 movs r1, 0x4b ; 'K' ; 75
| ||||||| 0x0808edf6 4170 strb r1, [r0, 1]
| ||||||| 0x0808edf8 dff8ec04 ldr.w r0, [0x0808f2ec] ; [0x808f2ec:4]=0x2001e674
| ||||||| 0x0808edfc 2021 movs r1, 0x20 ; 32
| ||||||| 0x0808edfe 8170 strb r1, [r0, 2]
| ||||||| 0x0808ee00 dff8e414 ldr.w r1, [0x0808f2ec] ; [0x808f2ec:4]=0x2001e674
| ||||||| 0x0808ee04 dff8e404 ldr.w r0, [0x0808f2f0] ; [0x808f2f0:4]=0x2001de38
| ||||||| 0x0808ee08 0068 ldr r0, [r0]
| ||||||| 0x0808ee0a a2f7c7f9 bl md380_OSMboxPost
| --------> 0x0808ee0e a0e1 b 0x808f152
| --------> 0x0808ee10 dff8b804 ldr.w r0, [0x0808f2d0] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ee14 0078 ldrb r0, [r0]
| ||||||| 0x0808ee16 7128 cmp r0, 0x71 ; 'q' ; 113
| ========< 0x0808ee18 12d3 blo 0x808ee40
| ||||||| 0x0808ee1a dff8cc04 ldr.w r0, [0x0808f2ee] ; [0x808f2ec:4]=0x2001e674
| ||||||| 0x0808ee1e 4321 movs r1, 0x43 ; 'C' ; 67
| ||||||| 0x0808ee20 0170 strb r1, [r0]
| ||||||| 0x0808ee22 dff8c404 ldr.w r0, [0x0808f2ee] ; [0x808f2ec:4]=0x2001e674
| ||||||| 0x0808ee26 4121 movs r1, 0x41 ; 'A' ; 65
| ||||||| 0x0808ee28 4170 strb r1, [r0, 1]
| ||||||| 0x0808ee2a dff8bc04 ldr.w r0, [0x0808f2ee] ; [0x808f2ec:4]=0x2001e674
| ||||||| 0x0808ee2e 4c21 movs r1, 0x4c ; 'L' ; 76
| ||||||| 0x0808ee30 8170 strb r1, [r0, 2]
| ||||||| 0x0808ee32 dff8b414 ldr.w r1, [0x0808f2ee] ; [0x808f2ec:4]=0x2001e674
| ||||||| 0x0808ee36 dff8b404 ldr.w r0, [0x0808f2f2] ; [0x808f2f0:4]=0x2001de38
| ||||||| 0x0808ee3a 0068 ldr r0, [r0]
| ||||||| 0x0808ee3c a2f7aef9 bl md380_OSMboxPost
| --------> 0x0808ee40 87e1 b 0x808f152
| --------> 0x0808ee42 dff88804 ldr.w r0, [0x0808f2d2] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ee46 0078 ldrb r0, [r0]
| ||||||| 0x0808ee48 3028 cmp r0, 0x30 ; '0' ; 48
| ========< 0x0808ee4a 03d3 blo 0x808ee54
| ||||||| 0x0808ee4c fff732fe bl func_8eab4
| ||||||| 0x0808ee50 0020 movs r0, 0
| ========< 0x0808ee52 9de1 b 0x808f190
| --------> 0x0808ee54 7de1 b 0x808f152
| --------> 0x0808ee56 dff87404 ldr.w r0, [0x0808f2d2] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ee5a 0078 ldrb r0, [r0]
| ||||||| 0x0808ee5c 4028 cmp r0, 0x40 ; '@' ; 64
| ========< 0x0808ee5e 03d2 bhs 0x808ee68
| ||||||| 0x0808ee60 dff86804 ldr.w r0, [0x0808f2d0] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ee64 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0808ee66 0170 strb r1, [r0]
| --------> 0x0808ee68 73e1 b 0x808f152
| --------> 0x0808ee6a dff86004 ldr.w r0, [0x0808f2d2] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ee6e 0078 ldrb r0, [r0]
| ||||||| 0x0808ee70 3828 cmp r0, 0x38 ; '8' ; 56
| ========< 0x0808ee72 03d2 bhs 0x808ee7c
| ||||||| 0x0808ee74 dff85404 ldr.w r0, [0x0808f2d0] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ee78 3821 movs r1, 0x38 ; '8' ; 56
| ||||||| 0x0808ee7a 0170 strb r1, [r0]
| --------> 0x0808ee7c 69e1 b 0x808f152
| --------> 0x0808ee7e dff84c04 ldr.w r0, [0x0808f2d2] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ee82 0078 ldrb r0, [r0]
| ||||||| 0x0808ee84 3828 cmp r0, 0x38 ; '8' ; 56
| ========< 0x0808ee86 03d1 bne 0x808ee90
| ||||||| 0x0808ee88 a0f70afd bl func_2f8a0_erases_and_writes_flash
| ||||||| 0x0808ee8c a0f7f4fa bl func_2f478
| --------> 0x0808ee90 5fe1 b 0x808f152
| ========< 0x0808ee92 5ee1 b 0x808f152
| |||``---> 0x0808ee94 dff82814 ldr.w r1, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| ||| || 0x0808ee98 0978 ldrb r1, [r1]
| ||| || 0x0808ee9a c429 cmp r1, 0xc4 ; 196
| ||| ,===< 0x0808ee9c 28d1 bne 0x808eef0
| ||| ||| 0x0808ee9e dff81414 ldr.w r1, [0x0808f2ba] ; [0x808f2b8:4]=0x20004877
| ||| ||| 0x0808eea2 0968 ldr r1, [r1]
| ||| ||| 0x0808eea4 0a29 cmp r1, 0xa ; 10
| |||,====< 0x0808eea6 23d1 bne 0x808eef0
| ||||||| 0x0808eea8 dff81804 ldr.w r0, [0x0808f2c8] ; [0x808f2c8:4]=0x20004a14 md380_dfu_target_adr
| ||||||| 0x0808eeac 0321 movs r1, 3 ; 3
| ||||||| 0x0808eeae 0170 strb r1, [r0]
| ||||||| 0x0808eeb0 dff81804 ldr.w r0, [0x0808f2d0] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808eeb4 0078 ldrb r0, [r0]
| ||||||| 0x0808eeb6 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x0808eeb8 c0f04b81 blo.w 0x808f152
| ||||||| 0x0808eebc dff82804 ldr.w r0, [0x0808f2ec] ; [0x808f2ec:4]=0x2001e674
| ||||||| 0x0808eec0 5421 movs r1, 0x54 ; 'T' ; 84
| ||||||| 0x0808eec2 0170 strb r1, [r0]
| ||||||| 0x0808eec4 0120 movs r0, 1 ; 1
| ========< 0x0808eec6 08e0 b 0x808eeda
| --------> 0x0808eec8 80b2 uxth r0, r0
| ||||||| 0x0808eeca dff81c14 ldr.w r1, [0x0808f2ee] ; [0x808f2ec:4]=0x2001e674
| ||||||| 0x0808eece 80b2 uxth r0, r0
| ||||||| 0x0808eed0 dff8ec23 ldr.w r2, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| ||||||| 0x0808eed4 825c ldrb r2, [r0, r2]
| ||||||| 0x0808eed6 4254 strb r2, [r0, r1]
| ||||||| 0x0808eed8 401c adds r0, r0, 1
| --------> 0x0808eeda 80b2 uxth r0, r0
| ||||||| 0x0808eedc 0a28 cmp r0, 0xa ; 10
| ========< 0x0808eede f3d3 blo 0x808eec8
| ||||||| 0x0808eee0 dff80414 ldr.w r1, [0x0808f2ec] ; [0x808f2ec:4]=0x2001e674
| ||||||| 0x0808eee4 dff80404 ldr.w r0, [0x0808f2f0] ; [0x808f2f0:4]=0x2001de38
| ||||||| 0x0808eee8 0068 ldr r0, [r0]
| ||||||| 0x0808eeea a2f757f9 bl md380_OSMboxPost
| ========< 0x0808eeee 30e1 b 0x808f152
| |||``---> 0x0808eef0 dff8cc13 ldr.w r1, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| ||| || 0x0808eef4 0978 ldrb r1, [r1]
| ||| || 0x0808eef6 b229 cmp r1, 0xb2 ; 178
| ||| ,===< 0x0808eef8 1cd1 bne 0x808ef34
| ||| ||| 0x0808eefa dff8b813 ldr.w r1, [0x0808f2ba] ; [0x808f2b8:4]=0x20004877
| ||| ||| 0x0808eefe 0968 ldr r1, [r1]
| ||| ||| 0x0808ef00 2129 cmp r1, 0x21 ; '!' ; 33
| |||,====< 0x0808ef02 17d1 bne 0x808ef34
| ||||||| 0x0808ef04 dff8c403 ldr.w r0, [0x0808f2d0] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ef08 0078 ldrb r0, [r0]
| ||||||| 0x0808ef0a 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x0808ef0c 40f02181 bne.w 0x808f152
| ||||||| 0x0808ef10 0020 movs r0, 0
| ========< 0x0808ef12 09e0 b 0x808ef28
| --------> 0x0808ef14 80b2 uxth r0, r0
| ||||||| 0x0808ef16 dff8a813 ldr.w r1, [0x0808f2c6] ; [0x808f2c4:4]=0x2001e7c2
| ||||||| 0x0808ef1a 4118 adds r1, r0, r1
| ||||||| 0x0808ef1c 4978 ldrb r1, [r1, 1]
| ||||||| 0x0808ef1e 80b2 uxth r0, r0
| ||||||| 0x0808ef20 dff8cc23 ldr.w r2, [0x0808f2f4] ; [0x808f2f4:4]=0x2001e6f4
| ||||||| 0x0808ef24 8154 strb r1, [r0, r2]
| ||||||| 0x0808ef26 401c adds r0, r0, 1
| --------> 0x0808ef28 80b2 uxth r0, r0
| ||||||| 0x0808ef2a 2028 cmp r0, 0x20 ; 32
| ========< 0x0808ef2c f2d3 blo 0x808ef14
| ||||||| 0x0808ef2e 93f70ffb bl func_22550_spiflash_security_3
| ========< 0x0808ef32 0ee1 b 0x808f152
| |||``---> 0x0808ef34 dff88813 ldr.w r1, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| ||| || 0x0808ef38 0978 ldrb r1, [r1]
| ||| || 0x0808ef3a b329 cmp r1, 0xb3 ; 179
| ||| ,===< 0x0808ef3c 1ed1 bne 0x808ef7c
| ||| ||| 0x0808ef3e dff87413 ldr.w r1, [0x0808f2ba] ; [0x808f2b8:4]=0x20004877
| ||| ||| 0x0808ef42 0968 ldr r1, [r1]
| ||| ||| 0x0808ef44 1929 cmp r1, 0x19 ; 25
| |||,====< 0x0808ef46 19d1 bne 0x808ef7c
| ||||||| 0x0808ef48 dff88003 ldr.w r0, [0x0808f2d0] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ef4c 0078 ldrb r0, [r0]
| ||||||| 0x0808ef4e 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x0808ef50 40f0ff80 bne.w 0x808f152
| ||||||| 0x0808ef54 0020 movs r0, 0
| ========< 0x0808ef56 0be0 b 0x808ef70
| --------> 0x0808ef58 80b2 uxth r0, r0
| ||||||| 0x0808ef5a dff89413 ldr.w r1, [0x0808f2f6] ; [0x808f2f4:4]=0x2001e6f4
| ||||||| 0x0808ef5e 4118 adds r1, r0, r1
| ||||||| 0x0808ef60 80b2 uxth r0, r0
| ||||||| 0x0808ef62 dff85c23 ldr.w r2, [0x0808f2c6] ; [0x808f2c4:4]=0x2001e7c2
| ||||||| 0x0808ef66 8218 adds r2, r0, r2
| ||||||| 0x0808ef68 5278 ldrb r2, [r2, 1]
| ||||||| 0x0808ef6a 81f82020 strb.w r2, [r1, 0x20]
| ||||||| 0x0808ef6e 401c adds r0, r0, 1
| --------> 0x0808ef70 80b2 uxth r0, r0
| ||||||| 0x0808ef72 1828 cmp r0, 0x18 ; 24
| ========< 0x0808ef74 f0d3 blo 0x808ef58
| ||||||| 0x0808ef76 93f7ebfa bl func_22550_spiflash_security_3
| ========< 0x0808ef7a eae0 b 0x808f152
| |||``---> 0x0808ef7c dff84013 ldr.w r1, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| ||| || 0x0808ef80 0978 ldrb r1, [r1]
| ||| || 0x0808ef82 b529 cmp r1, 0xb5 ; 181
| ||| ,===< 0x0808ef84 3bd1 bne 0x808effe
| ||| ||| 0x0808ef86 dff82c13 ldr.w r1, [0x0808f2ba] ; [0x808f2b8:4]=0x20004877
| ||| ||| 0x0808ef8a 0968 ldr r1, [r1]
| ||| ||| 0x0808ef8c 0829 cmp r1, 8 ; 8
| |||,====< 0x0808ef8e 36d1 bne 0x808effe
| ||||||| 0x0808ef90 dff83803 ldr.w r0, [0x0808f2d0] ; [0x808f2d0:4]=0x2001e94d gui_opmode1
| ||||||| 0x0808ef94 0078 ldrb r0, [r0]
| ||||||| 0x0808ef96 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x0808ef98 40f0db80 bne.w 0x808f152
| ||||||| 0x0808ef9c 0120 movs r0, 1 ; 1
| ||||||| 0x0808ef9e a7f79efd bl func_36ade
| ||||||| 0x0808efa2 0020 movs r0, 0
| ||||||| 0x0808efa4 a7f79bfd bl func_36ade
| ||||||| 0x0808efa8 c2f756fe bl func_51c58
| ||||||| 0x0808efac dff81003 ldr.w r0, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| ||||||| 0x0808efb0 4079 ldrb r0, [r0, 5]
| ||||||| 0x0808efb2 dff84013 ldr.w r1, [0x0808f2fa] ; [0x808f2f8:4]=0x2001e6f8
| ||||||| 0x0808efb6 0870 strb r0, [r1]
| ||||||| 0x0808efb8 dff83803 ldr.w r0, [0x0808f2f8] ; [0x808f2f8:4]=0x2001e6f8
| ||||||| 0x0808efbc c049 ldr r1, [0x0808f2c0] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||||||| 0x0808efbe 8979 ldrb r1, [r1, 6]
| ||||||| 0x0808efc0 4170 strb r1, [r0, 1]
| ||||||| 0x0808efc2 dff83003 ldr.w r0, [0x0808f2fa] ; [0x808f2f8:4]=0x2001e6f8
| ||||||| 0x0808efc6 be49 ldr r1, [0x0808f2c2] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||||||| 0x0808efc8 c979 ldrb r1, [r1, 7]
| ||||||| 0x0808efca 8170 strb r1, [r0, 2]
| ||||||| 0x0808efcc dff82413 ldr.w r1, [0x0808f2f8] ; [0x808f2f8:4]=0x2001e6f8
| ||||||| 0x0808efd0 0120 movs r0, 1 ; 1
| ||||||| 0x0808efd2 9cf7abf9 bl 0x802b32c
| ||||||| 0x0808efd6 dff82003 ldr.w r0, [0x0808f2fe] ; [0x808f2fc:4]=0x2001c380
| ||||||| 0x0808efda b949 ldr r1, [0x0808f2c2] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||||||| 0x0808efdc 8978 ldrb r1, [r1, 2]
| ||||||| 0x0808efde c170 strb r1, [r0, 3]
| ||||||| 0x0808efe0 dff81403 ldr.w r0, [0x0808f2fc] ; [0x808f2fc:4]=0x2001c380
| ||||||| 0x0808efe4 b649 ldr r1, [0x0808f2c0] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||||||| 0x0808efe6 c978 ldrb r1, [r1, 3]
| ||||||| 0x0808efe8 4170 strb r1, [r0, 1]
| ||||||| 0x0808efea dff80c03 ldr.w r0, [0x0808f2fe] ; [0x808f2fc:4]=0x2001c380
| ||||||| 0x0808efee b449 ldr r1, [0x0808f2c2] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||||||| 0x0808eff0 0979 ldrb r1, [r1, 4]
| ||||||| 0x0808eff2 8170 strb r1, [r0, 2]
| ||||||| 0x0808eff4 c049 ldr r1, [0x0808f2f8] ; [0x808f2f8:4]=0x2001e6f8
| ||||||| 0x0808eff6 0120 movs r0, 1 ; 1
| ||||||| 0x0808eff8 9cf725fa bl 0x802b446
| ========< 0x0808effc a9e0 b 0x808f152
| |||``---> 0x0808effe b049 ldr r1, [0x0808f2c2] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||| || 0x0808f000 0978 ldrb r1, [r1]
| ||| || 0x0808f002 d529 cmp r1, 0xd5 ; 213
| ||| ,===< 0x0808f004 1bd1 bne 0x808f03e
| ||| ||| 0x0808f006 ab49 ldr r1, [0x0808f2b6] ; [0x808f2b4:4]=0x2001e758 md380_packetlen
| ||| ||| 0x0808f008 0968 ldr r1, [r1]
| ||| ||| 0x0808f00a 40f20122 movw r2, 0x201 ; 513
| ||| ||| 0x0808f00e 9142 cmp r1, r2
| |||,====< 0x0808f010 15d1 bne 0x808f03e
| ||||||| 0x0808f012 ae48 ldr r0, [0x0808f2ce] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| ||||||| 0x0808f014 0078 ldrb r0, [r0]
| ||||||| 0x0808f016 7028 cmp r0, 0x70 ; 'p' ; 112
| ========< 0x0808f018 40f09b80 bne.w 0x808f152
| ||||||| 0x0808f01c 0020 movs r0, 0
| ========< 0x0808f01e 07e0 b 0x808f030
| --------> 0x0808f020 80b2 uxth r0, r0
| ||||||| 0x0808f022 a749 ldr r1, [0x0808f2c2] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||||||| 0x0808f024 4118 adds r1, r0, r1
| ||||||| 0x0808f026 4978 ldrb r1, [r1, 1]
| ||||||| 0x0808f028 80b2 uxth r0, r0
| ||||||| 0x0808f02a b44a ldr r2, [0x0808f2fe] ; [0x808f2fc:4]=0x2001c380
| ||||||| 0x0808f02c 8154 strb r1, [r0, r2]
| ||||||| 0x0808f02e 401c adds r0, r0, 1
| --------> 0x0808f030 80b2 uxth r0, r0
| ||||||| 0x0808f032 b0f5007f cmp.w r0, 0x200 ; 512
| ========< 0x0808f036 f3d3 blo 0x808f020
| ||||||| 0x0808f038 93f763fa bl func_22502_spiflash_security
| ========< 0x0808f03c 89e0 b 0x808f152
| |||``---> 0x0808f03e a049 ldr r1, [0x0808f2c2] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||| || 0x0808f040 0978 ldrb r1, [r1]
| ||| || 0x0808f042 b429 cmp r1, 0xb4 ; 180
| ||| ,===< 0x0808f044 59d1 bne 0x808f0fa
| ||| ||| 0x0808f046 9b49 ldr r1, [0x0808f2b6] ; [0x808f2b4:4]=0x2001e758 md380_packetlen
| ||| ||| 0x0808f048 0968 ldr r1, [r1]
| ||| ||| 0x0808f04a 1122 movs r2, 0x11 ; 17
| ||| ||| 0x0808f04c b1fbf2f3 udiv r3, r1, r2
| ||| ||| 0x0808f050 02fb1311 mls r1, r2, r3, r1
| ||| ||| 0x0808f054 0129 cmp r1, 1 ; 1
| |||,====< 0x0808f056 50d1 bne 0x808f0fa
| ||||||| 0x0808f058 9649 ldr r1, [0x0808f2b4] ; [0x808f2b4:4]=0x2001e758 md380_packetlen
| ||||||| 0x0808f05a 0968 ldr r1, [r1]
| ||||||| 0x0808f05c 2329 cmp r1, 0x23 ; '#' ; 35
| ========< 0x0808f05e 4cd3 blo 0x808f0fa
| ||||||| 0x0808f060 9749 ldr r1, [0x0808f2c0] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||||||| 0x0808f062 4978 ldrb r1, [r1, 1]
| ||||||| 0x0808f064 491e subs r1, r1, 1
| ||||||| 0x0808f066 c9b2 uxtb r1, r1
| ||||||| 0x0808f068 2029 cmp r1, 0x20 ; 32
| ========< 0x0808f06a 46d2 bhs 0x808f0fa
| ||||||| 0x0808f06c 9748 ldr r0, [0x0808f2cc] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| ||||||| 0x0808f06e 0078 ldrb r0, [r0]
| ||||||| 0x0808f070 4028 cmp r0, 0x40 ; '@' ; 64
| ========< 0x0808f072 6ed1 bne 0x808f152
| ||||||| 0x0808f074 0020 movs r0, 0
| ========< 0x0808f076 00e0 b 0x808f07a
| --------> 0x0808f078 401c adds r0, r0, 1
| --------> 0x0808f07a 80b2 uxth r0, r0
| ||||||| 0x0808f07c 1028 cmp r0, 0x10 ; 16
| ========< 0x0808f07e 08d2 bhs 0x808f092
| ||||||| 0x0808f080 80b2 uxth r0, r0
| ||||||| 0x0808f082 8f49 ldr r1, [0x0808f2c2] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||||||| 0x0808f084 4118 adds r1, r0, r1
| ||||||| 0x0808f086 8978 ldrb r1, [r1, 2]
| ||||||| 0x0808f088 80b2 uxth r0, r0
| ||||||| 0x0808f08a 9d4a ldr r2, [0x0808f302] ; [0x808f300:4]=0x2001e4a4
| ||||||| 0x0808f08c 825c ldrb r2, [r0, r2]
| ||||||| 0x0808f08e 9142 cmp r1, r2
| ========< 0x0808f090 f2d0 beq 0x808f078
| --------> 0x0808f092 80b2 uxth r0, r0
| ||||||| 0x0808f094 1028 cmp r0, 0x10 ; 16
| ========< 0x0808f096 5cd1 bne 0x808f152
| ||||||| 0x0808f098 8648 ldr r0, [0x0808f2b4] ; [0x808f2b4:4]=0x2001e758 md380_packetlen
| ||||||| 0x0808f09a 0068 ldr r0, [r0]
| ||||||| 0x0808f09c 1121 movs r1, 0x11 ; 17
| ||||||| 0x0808f09e b0fbf1f0 udiv r0, r0, r1
| ||||||| 0x0808f0a2 441e subs r4, r0, 1
| ||||||| 0x0808f0a4 8648 ldr r0, [0x0808f2c0] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||||||| 0x0808f0a6 4078 ldrb r0, [r0, 1]
| ||||||| 0x0808f0a8 e4b2 uxtb r4, r4
| ||||||| 0x0808f0aa 8442 cmp r4, r0
| ========< 0x0808f0ac 02d3 blo 0x808f0b4
| ||||||| 0x0808f0ae 8448 ldr r0, [0x0808f2c2] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||||||| 0x0808f0b0 4478 ldrb r4, [r0, 1]
| ========< 0x0808f0b2 ffe7 b 0x808f0b4
| --------> 0x0808f0b4 0125 movs r5, 1 ; 1
| ========< 0x0808f0b6 11e0 b 0x808f0dc
| --------> 0x0808f0b8 bfb2 uxth r7, r7
| ||||||| 0x0808f0ba edb2 uxtb r5, r5
| ||||||| 0x0808f0bc 1120 movs r0, 0x11 ; 17
| ||||||| 0x0808f0be 8049 ldr r1, [0x0808f2c2] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||||||| 0x0808f0c0 00fb0510 mla r0, r0, r5, r1
| ||||||| 0x0808f0c4 3818 adds r0, r7, r0
| ||||||| 0x0808f0c6 d0f80210 ldr.w r1, [r0, 2]
| ||||||| 0x0808f0ca 3000 movs r0, r6
| ||||||| 0x0808f0cc bff7e1fc bl func_4ea92
| ||||||| 0x0808f0d0 361d adds r6, r6, 4
| ||||||| 0x0808f0d2 3f1d adds r7, r7, 4
| --------> 0x0808f0d4 bfb2 uxth r7, r7
| ||||||| 0x0808f0d6 102f cmp r7, 0x10 ; 16
| ========< 0x0808f0d8 eed3 blo 0x808f0b8
| ||||||| 0x0808f0da 6d1c adds r5, r5, 1
| --------> 0x0808f0dc e4b2 uxtb r4, r4
| ||||||| 0x0808f0de edb2 uxtb r5, r5
| ||||||| 0x0808f0e0 ac42 cmp r4, r5
| ========< 0x0808f0e2 36d3 blo 0x808f152
| ||||||| 0x0808f0e4 edb2 uxtb r5, r5
| ||||||| 0x0808f0e6 1120 movs r0, 0x11 ; 17
| ||||||| 0x0808f0e8 7549 ldr r1, [0x0808f2c0] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| ||||||| 0x0808f0ea 00fb0510 mla r0, r0, r5, r1
| ||||||| 0x0808f0ee 4078 ldrb r0, [r0, 1]
| ||||||| 0x0808f0f0 8449 ldr r1, [0x0808f304] ; [0x808f304:4]=0x1fff77f0
| ||||||| 0x0808f0f2 11eb0016 adds.w r6, r1, r0, lsl 4
| ||||||| 0x0808f0f6 0027 movs r7, 0
| ========< 0x0808f0f8 ece7 b 0x808f0d4
| ---``---> 0x0808f0fa 6e49 ldr r1, [0x0808f2b6] ; [0x808f2b4:4]=0x2001e758 md380_packetlen
| ||| || 0x0808f0fc 0022 movs r2, 0
| ||| || 0x0808f0fe 0a60 str r2, [r1]
| ||| || 0x0808f100 6b49 ldr r1, [0x0808f2b0] ; [0x808f2b0:4]=0x2001e754 md380_blockadr
| ||| || 0x0808f102 0022 movs r2, 0
| ||| || 0x0808f104 0a60 str r2, [r1]
| ||| || 0x0808f106 0021 movs r1, 0
| ||| || 0x0808f108 8df80010 strb.w r1, [sp]
| ||| || 0x0808f10c 0121 movs r1, 1 ; 1
| ||| || 0x0808f10e adf80610 strh.w r1, [sp, 6]
| ||| || 0x0808f112 00a9 add r1, sp, 0
| ||| || 0x0808f114 caf7bafc bl func_59a8c
| ||| ,===< 0x0808f118 1be0 b 0x808f152
| ||| |`--> 0x0808f11a 6548 ldr r0, [0x0808f2b2] ; [0x808f2b0:4]=0x2001e754 md380_blockadr
| ||| | | 0x0808f11c 0068 ldr r0, [r0]
| ||| | | 0x0808f11e 0228 cmp r0, 2 ; 2
| ||| |,==< 0x0808f120 17d3 blo 0x808f152
| ||| ||| 0x0808f122 6848 ldr r0, [0x0808f2c6] ; [0x808f2c4:4]=0x2001e7c2
| ||| ||| 0x0808f124 0021 movs r1, 0
| ||| ||| 0x0808f126 0170 strb r1, [r0]
| ||| ||| 0x0808f128 6648 ldr r0, [0x0808f2c4] ; [0x808f2c4:4]=0x2001e7c2
| ||| ||| 0x0808f12a 0021 movs r1, 0
| ||| ||| 0x0808f12c 4170 strb r1, [r0, 1]
| ||| ||| 0x0808f12e 6048 ldr r0, [0x0808f2b2] ; [0x808f2b0:4]=0x2001e754 md380_blockadr
| ||| ||| 0x0808f130 0068 ldr r0, [r0]
| ||| ||| 0x0808f132 801e subs r0, r0, 2
| ||| ||| 0x0808f134 4ff48061 mov.w r1, 0x400 ; 1024
| ||| ||| 0x0808f138 634a ldr r2, [0x0808f2c8] ; [0x808f2c8:4]=0x20004a14 md380_dfu_target_adr
| ||| ||| 0x0808f13a 1268 ldr r2, [r2]
| ||| ||| 0x0808f13c 01fb0026 mla r6, r1, r0, r2
| ||| ||| 0x0808f140 6248 ldr r0, [0x0808f2cc] ; [0x808f2cc:4]=0x2001e892 gui_opmode3
| ||| ||| 0x0808f142 0078 ldrb r0, [r0]
| ||| ||| 0x0808f144 3028 cmp r0, 0x30 ; '0' ; 48
| |||,====< 0x0808f146 04d3 blo 0x808f152
| ||||||| 0x0808f148 5a48 ldr r0, [0x0808f2b4] ; [0x808f2b4:4]=0x2001e758 md380_packetlen
| ||||||| 0x0808f14a 0168 ldr r1, [r0]
| ||||||| 0x0808f14c 3000 movs r0, r6
| ||||||| 0x0808f14e 01f00ff9 bl usb_dfu_write
| ``````--> 0x0808f152 5848 ldr r0, [0x0808f2b6] ; [0x808f2b4:4]=0x2001e758 md380_packetlen
| | 0x0808f154 0021 movs r1, 0
| | 0x0808f156 0160 str r1, [r0]
| | 0x0808f158 5548 ldr r0, [0x0808f2b0] ; [0x808f2b0:4]=0x2001e754 md380_blockadr
| | 0x0808f15a 0021 movs r1, 0
| | 0x0808f15c 0160 str r1, [r0]
| | 0x0808f15e 5248 ldr r0, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| | 0x0808f160 0321 movs r1, 3 ; 3
| | 0x0808f162 0170 strb r1, [r0]
| | 0x0808f164 5148 ldr r0, [0x0808f2ac] ; [0x808f2ac:4]=0x2001e584
| | 0x0808f166 5049 ldr r1, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| | 0x0808f168 0978 ldrb r1, [r1]
| | 0x0808f16a 0171 strb r1, [r0, 4]
| | 0x0808f16c 4f48 ldr r0, [0x0808f2ac] ; [0x808f2ac:4]=0x2001e584
| | 0x0808f16e 0021 movs r1, 0
| | 0x0808f170 4170 strb r1, [r0, 1]
| | 0x0808f172 4e48 ldr r0, [0x0808f2ae] ; [0x808f2ac:4]=0x2001e584
| | 0x0808f174 0021 movs r1, 0
| | 0x0808f176 8170 strb r1, [r0, 2]
| | 0x0808f178 4c48 ldr r0, [0x0808f2ac] ; [0x808f2ac:4]=0x2001e584
| | 0x0808f17a 0021 movs r1, 0
| | 0x0808f17c c170 strb r1, [r0, 3]
| | 0x0808f17e 0020 movs r0, 0
| ,==< 0x0808f180 06e0 b 0x808f190
| |`-> 0x0808f182 4949 ldr r1, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| | 0x0808f184 0978 ldrb r1, [r1]
| | 0x0808f186 0729 cmp r1, 7 ; 7
| |,=< 0x0808f188 01d1 bne 0x808f18e
| || 0x0808f18a 01f02ff8 bl func_901ec
| |`-> 0x0808f18e 0020 movs r0, 0
\ -----`--> 0x0808f190 febd pop {r1, r2, r3, r4, r5, r6, r7, pc}
/ (fcn) usb_upld_handle 3036
| Caller: usb_do_setup
| usb_upld_handle ();
| 0x0808f308 38b5 push {r3, r4, r5, lr}
| 0x0808f30a 0400 movs r4, r0
| 0x0808f30c 0020 movs r0, 0
| 0x0808f30e 0022 movs r2, 0
| 0x0808f310 cb88 ldrh r3, [r1, 6]
| 0x0808f312 012b cmp r3, 1 ; 1
| ,=< 0x0808f314 c0f0d585 blo.w 0x808fec2
| | 0x0808f318 dff8d02b ldr.w r2, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| | 0x0808f31c 1278 ldrb r2, [r2]
| | 0x0808f31e 022a cmp r2, 2 ; 2
| ,==< 0x0808f320 05d0 beq 0x808f32e
| || 0x0808f322 dff8c82b ldr.w r2, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| || 0x0808f326 1278 ldrb r2, [r2]
| || 0x0808f328 092a cmp r2, 9 ; 9
| ,===< 0x0808f32a 40f0c085 bne.w 0x808feae
| |`--> 0x0808f32e 4a88 ldrh r2, [r1, 2]
| | | 0x0808f330 dff8bc3b ldr.w r3, [0x0808fef4] ; [0x808fef4:4]=0x2001e758 md380_packetlen
| | | 0x0808f334 1a60 str r2, [r3]
| | | 0x0808f336 ca88 ldrh r2, [r1, 6]
| | | 0x0808f338 dff8b83b ldr.w r3, [0x0808fef8] ; [0x808fef8:4]=0x2001e7c2
| | | 0x0808f33c 1a60 str r2, [r3]
| | | 0x0808f33e dff8b02b ldr.w r2, [0x0808fef6] ; [0x808fef4:4]=0x2001e758 md380_packetlen
| | | 0x0808f342 1268 ldr r2, [r2]
| | | 0x0808f344 002a cmp r2, 0
| |,==< 0x0808f346 40f06e85 bne.w 0x808fe26
| ||| 0x0808f34a dff8ac0b ldr.w r0, [0x0808fefe] ; [0x808fefc:4]=0x2001de38
| ||| 0x0808f34e 0078 ldrb r0, [r0]
| ||| 0x0808f350 0228 cmp r0, 2 ; 2
| ,====< 0x0808f352 40f0e382 bne.w 0x808f91c
| |||| 0x0808f356 dff8a00b ldr.w r0, [0x0808fefe] ; [0x808fefc:4]=0x2001de38
| |||| 0x0808f35a 4078 ldrb r0, [r0, 1]
| |||| 0x0808f35c 0128 cmp r0, 1 ; 1
| ,=====< 0x0808f35e 15d0 beq 0x808f38c
| ||||| 0x0808f360 0328 cmp r0, 3 ; 3
| ,======< 0x0808f362 00f08180 beq.w 0x808f468
| |||||| 0x0808f366 0428 cmp r0, 4 ; 4
| ,=======< 0x0808f368 00f01081 beq.w 0x808f58c
| ||||||| 0x0808f36c 0528 cmp r0, 5 ; 5
| ========< 0x0808f36e 00f04581 beq.w 0x808f5fc
| ||||||| 0x0808f372 0728 cmp r0, 7 ; 7
| ========< 0x0808f374 00f07b81 beq.w 0x808f66e
| ||||||| 0x0808f378 0828 cmp r0, 8 ; 8
| ========< 0x0808f37a 00f0ad80 beq.w 0x808f4d8
| ||||||| 0x0808f37e 3228 cmp r0, 0x32 ; '2' ; 50
| ========< 0x0808f380 00f0ab81 beq.w 0x808f6da
| ||||||| 0x0808f384 3328 cmp r0, 0x33 ; '3' ; 51
| ========< 0x0808f386 00f00882 beq.w 0x808f79a
| ========< 0x0808f38a 35e0 b 0x808f3f8
| ||`-----> 0x0808f38c dff8640b ldr.w r0, [0x0808fef8] ; [0x808fef8:4]=0x2001e7c2
| || |||| 0x0808f390 0068 ldr r0, [r0]
| || |||| 0x0808f392 2128 cmp r0, 0x21 ; '!' ; 33
| ||,=====< 0x0808f394 04d3 blo 0x808f3a0
| ||||||| 0x0808f396 dff8540b ldr.w r0, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f39a 0221 movs r1, 2 ; 2
| ||||||| 0x0808f39c 0170 strb r1, [r0]
| ========< 0x0808f39e 03e0 b 0x808f3a8
| ||`-----> 0x0808f3a0 dff8480b ldr.w r0, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| || |||| 0x0808f3a4 0921 movs r1, 9 ; 9
| || |||| 0x0808f3a6 0170 strb r1, [r0]
| --------> 0x0808f3a8 dff85c0d ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| || |||| 0x0808f3ac dff83c1b ldr.w r1, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| || |||| 0x0808f3b0 0978 ldrb r1, [r1]
| || |||| 0x0808f3b2 0171 strb r1, [r0, 4]
| || |||| 0x0808f3b4 dff8500d ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| || |||| 0x0808f3b8 0021 movs r1, 0
| || |||| 0x0808f3ba 4170 strb r1, [r0, 1]
| || |||| 0x0808f3bc dff8480d ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| || |||| 0x0808f3c0 0021 movs r1, 0
| || |||| 0x0808f3c2 8170 strb r1, [r0, 2]
| || |||| 0x0808f3c4 dff8400d ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| || |||| 0x0808f3c8 0021 movs r1, 0
| || |||| 0x0808f3ca c170 strb r1, [r0, 3]
| || |||| 0x0808f3cc 0020 movs r0, 0
| ||,=====< 0x0808f3ce 08e0 b 0x808f3e2
| --------> 0x0808f3d0 80b2 uxth r0, r0
| ||||||| 0x0808f3d2 dff89c1d ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f3d6 80b2 uxth r0, r0
| ||||||| 0x0808f3d8 dff8202b ldr.w r2, [func_8ff00] ; [0x808ff00:4]=0x4b510
| ||||||| 0x0808f3dc 825c ldrb r2, [r0, r2]
| ||||||| 0x0808f3de 4254 strb r2, [r0, r1]
| ||||||| 0x0808f3e0 401c adds r0, r0, 1
| ||`-----> 0x0808f3e2 80b2 uxth r0, r0
| || |||| 0x0808f3e4 2028 cmp r0, 0x20 ; 32
| ========< 0x0808f3e6 f3d3 blo 0x808f3d0
| || |||| 0x0808f3e8 2022 movs r2, 0x20 ; 32
| || |||| 0x0808f3ea dff8841d ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| || |||| 0x0808f3ee 2000 movs r0, r4
| || |||| 0x0808f3f0 caf787fb bl usb_send_packet
| ||,=====< 0x0808f3f4 00f075bd b.w 0x808fee2
| --------> 0x0808f3f8 dff8f80a ldr.w r0, [0x0808fef8] ; [0x808fef8:4]=0x2001e7c2
| ||||||| 0x0808f3fc 0068 ldr r0, [r0]
| ||||||| 0x0808f3fe 0528 cmp r0, 5 ; 5
| ========< 0x0808f400 04d3 blo 0x808f40c
| ||||||| 0x0808f402 dff8e80a ldr.w r0, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f406 0221 movs r1, 2 ; 2
| ||||||| 0x0808f408 0170 strb r1, [r0]
| ========< 0x0808f40a 03e0 b 0x808f414
| --------> 0x0808f40c dff8dc0a ldr.w r0, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f410 0921 movs r1, 9 ; 9
| ||||||| 0x0808f412 0170 strb r1, [r0]
| --------> 0x0808f414 dff8f00c ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f418 dff8d01a ldr.w r1, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f41c 0978 ldrb r1, [r1]
| ||||||| 0x0808f41e 0171 strb r1, [r0, 4]
| ||||||| 0x0808f420 dff8e40c ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f424 0021 movs r1, 0
| ||||||| 0x0808f426 4170 strb r1, [r0, 1]
| ||||||| 0x0808f428 dff8dc0c ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f42c 0021 movs r1, 0
| ||||||| 0x0808f42e 8170 strb r1, [r0, 2]
| ||||||| 0x0808f430 dff8d40c ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f434 0021 movs r1, 0
| ||||||| 0x0808f436 c170 strb r1, [r0, 3]
| ||||||| 0x0808f438 dff8340d ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f43c 4421 movs r1, 0x44 ; 'D' ; 68
| ||||||| 0x0808f43e 0170 strb r1, [r0]
| ||||||| 0x0808f440 dff82c0d ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f444 0121 movs r1, 1 ; 1
| ||||||| 0x0808f446 4170 strb r1, [r0, 1]
| ||||||| 0x0808f448 dff8240d ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f44c 3021 movs r1, 0x30 ; '0' ; 48
| ||||||| 0x0808f44e 8170 strb r1, [r0, 2]
| ||||||| 0x0808f450 dff81c0d ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f454 2021 movs r1, 0x20 ; 32
| ||||||| 0x0808f456 c170 strb r1, [r0, 3]
| ||||||| 0x0808f458 0422 movs r2, 4 ; 4
| ||||||| 0x0808f45a dff8141d ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f45e 2000 movs r0, r4
| ||||||| 0x0808f460 caf74ffb bl usb_send_packet
| ========< 0x0808f464 00f03dbd b.w 0x808fee2
| |`------> 0x0808f468 dff8880a ldr.w r0, [0x0808fef8] ; [0x808fef8:4]=0x2001e7c2
| | ||||| 0x0808f46c 0068 ldr r0, [r0]
| | ||||| 0x0808f46e 1928 cmp r0, 0x19 ; 25
| |,======< 0x0808f470 04d3 blo 0x808f47c
| ||||||| 0x0808f472 dff8780a ldr.w r0, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f476 0221 movs r1, 2 ; 2
| ||||||| 0x0808f478 0170 strb r1, [r0]
| ========< 0x0808f47a 03e0 b 0x808f484
| |`------> 0x0808f47c dff86c0a ldr.w r0, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| | ||||| 0x0808f480 0921 movs r1, 9 ; 9
| | ||||| 0x0808f482 0170 strb r1, [r0]
| --------> 0x0808f484 dff8800c ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| | ||||| 0x0808f488 dff8601a ldr.w r1, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| | ||||| 0x0808f48c 0978 ldrb r1, [r1]
| | ||||| 0x0808f48e 0171 strb r1, [r0, 4]
| | ||||| 0x0808f490 dff8740c ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| | ||||| 0x0808f494 0021 movs r1, 0
| | ||||| 0x0808f496 4170 strb r1, [r0, 1]
| | ||||| 0x0808f498 dff86c0c ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| | ||||| 0x0808f49c 0021 movs r1, 0
| | ||||| 0x0808f49e 8170 strb r1, [r0, 2]
| | ||||| 0x0808f4a0 dff8640c ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| | ||||| 0x0808f4a4 0021 movs r1, 0
| | ||||| 0x0808f4a6 c170 strb r1, [r0, 3]
| | ||||| 0x0808f4a8 0020 movs r0, 0
| |,======< 0x0808f4aa 0ae0 b 0x808f4c2
| --------> 0x0808f4ac 80b2 uxth r0, r0
| ||||||| 0x0808f4ae dff84c1a ldr.w r1, [0x0808ff02] ; [0x808ff00:4]=0x4b510
| ||||||| 0x0808f4b2 4118 adds r1, r0, r1
| ||||||| 0x0808f4b4 91f82010 ldrb.w r1, [r1, 0x20]
| ||||||| 0x0808f4b8 80b2 uxth r0, r0
| ||||||| 0x0808f4ba dff8b42c ldr.w r2, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f4be 8154 strb r1, [r0, r2]
| ||||||| 0x0808f4c0 401c adds r0, r0, 1
| |`------> 0x0808f4c2 80b2 uxth r0, r0
| | ||||| 0x0808f4c4 1828 cmp r0, 0x18 ; 24
| ========< 0x0808f4c6 f1d3 blo 0x808f4ac
| | ||||| 0x0808f4c8 1822 movs r2, 0x18 ; 24
| | ||||| 0x0808f4ca dff8a41c ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| | ||||| 0x0808f4ce 2000 movs r0, r4
| | ||||| 0x0808f4d0 caf717fb bl usb_send_packet
| |,======< 0x0808f4d4 00f005bd b.w 0x808fee2
| --------> 0x0808f4d8 dff8180a ldr.w r0, [0x0808fef8] ; [0x808fef8:4]=0x2001e7c2
| ||||||| 0x0808f4dc 0068 ldr r0, [r0]
| ||||||| 0x0808f4de 0828 cmp r0, 8 ; 8
| ========< 0x0808f4e0 04d3 blo 0x808f4ec
| ||||||| 0x0808f4e2 dff8080a ldr.w r0, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f4e6 0221 movs r1, 2 ; 2
| ||||||| 0x0808f4e8 0170 strb r1, [r0]
| ========< 0x0808f4ea 03e0 b 0x808f4f4
| --------> 0x0808f4ec dff8fc09 ldr.w r0, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f4f0 0921 movs r1, 9 ; 9
| ||||||| 0x0808f4f2 0170 strb r1, [r0]
| --------> 0x0808f4f4 dff8100c ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f4f8 dff8f019 ldr.w r1, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f4fc 0978 ldrb r1, [r1]
| ||||||| 0x0808f4fe 0171 strb r1, [r0, 4]
| ||||||| 0x0808f500 dff8040c ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f504 0021 movs r1, 0
| ||||||| 0x0808f506 4170 strb r1, [r0, 1]
| ||||||| 0x0808f508 dff8fc0b ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f50c 0021 movs r1, 0
| ||||||| 0x0808f50e 8170 strb r1, [r0, 2]
| ||||||| 0x0808f510 dff8f40b ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f514 0021 movs r1, 0
| ||||||| 0x0808f516 c170 strb r1, [r0, 3]
| ||||||| 0x0808f518 dff8540c ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f51c 2021 movs r1, 0x20 ; 32
| ||||||| 0x0808f51e 0170 strb r1, [r0]
| ||||||| 0x0808f520 dff85c1c ldr.w r1, [func_90184] ; [0x8090184:4]=0x7800484a
| ||||||| 0x0808f524 0120 movs r0, 1 ; 1
| ||||||| 0x0808f526 9bf7f1ff bl md380_RTC_GetDate
| ||||||| 0x0808f52a dff8440c ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f52e dff8501c ldr.w r1, [0x08090186] ; [0x8090184:4]=0x7800484a
| ||||||| 0x0808f532 c978 ldrb r1, [r1, 3]
| ||||||| 0x0808f534 4170 strb r1, [r0, 1]
| ||||||| 0x0808f536 dff8380c ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f53a dff8441c ldr.w r1, [0x08090186] ; [0x8090184:4]=0x7800484a
| ||||||| 0x0808f53e 4978 ldrb r1, [r1, 1]
| ||||||| 0x0808f540 8170 strb r1, [r0, 2]
| ||||||| 0x0808f542 dff82c0c ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f546 dff8381c ldr.w r1, [0x08090186] ; [0x8090184:4]=0x7800484a
| ||||||| 0x0808f54a 8978 ldrb r1, [r1, 2]
| ||||||| 0x0808f54c c170 strb r1, [r0, 3]
| ||||||| 0x0808f54e dff8981c ldr.w r1, [0x080901ee] ; [0x80901ec:4]=0x4933b580
| ||||||| 0x0808f552 0120 movs r0, 1 ; 1
| ||||||| 0x0808f554 9bf74fff bl md380_RTC_GetTime
| ||||||| 0x0808f558 dff8140c ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f55c dff8881c ldr.w r1, [func_901ec] ; [0x80901ec:4]=0x4933b580
| ||||||| 0x0808f560 0978 ldrb r1, [r1]
| ||||||| 0x0808f562 0171 strb r1, [r0, 4]
| ||||||| 0x0808f564 dff8080c ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f568 dff87c1c ldr.w r1, [func_901ec] ; [0x80901ec:4]=0x4933b580
| ||||||| 0x0808f56c 4978 ldrb r1, [r1, 1]
| ||||||| 0x0808f56e 4171 strb r1, [r0, 5]
| ||||||| 0x0808f570 dff8fc0b ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f574 dff8701c ldr.w r1, [func_901ec] ; [0x80901ec:4]=0x4933b580
| ||||||| 0x0808f578 8978 ldrb r1, [r1, 2]
| ||||||| 0x0808f57a 8171 strb r1, [r0, 6]
| ||||||| 0x0808f57c 0722 movs r2, 7 ; 7
| ||||||| 0x0808f57e dff8f01b ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f582 2000 movs r0, r4
| ||||||| 0x0808f584 caf7bdfa bl usb_send_packet
| ========< 0x0808f588 00f0abbc b.w 0x808fee2
| `-------> 0x0808f58c dff86409 ldr.w r0, [0x0808fef8] ; [0x808fef8:4]=0x2001e7c2
| |||||| 0x0808f590 0068 ldr r0, [r0]
| |||||| 0x0808f592 0928 cmp r0, 9 ; 9
| ,=======< 0x0808f594 04d3 blo 0x808f5a0
| ||||||| 0x0808f596 dff85409 ldr.w r0, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f59a 0221 movs r1, 2 ; 2
| ||||||| 0x0808f59c 0170 strb r1, [r0]
| ========< 0x0808f59e 03e0 b 0x808f5a8
| `-------> 0x0808f5a0 dff84809 ldr.w r0, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| |||||| 0x0808f5a4 0921 movs r1, 9 ; 9
| |||||| 0x0808f5a6 0170 strb r1, [r0]
| --------> 0x0808f5a8 dff85c0b ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| |||||| 0x0808f5ac dff83c19 ldr.w r1, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| |||||| 0x0808f5b0 0978 ldrb r1, [r1]
| |||||| 0x0808f5b2 0171 strb r1, [r0, 4]
| |||||| 0x0808f5b4 dff8500b ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| |||||| 0x0808f5b8 0021 movs r1, 0
| |||||| 0x0808f5ba 4170 strb r1, [r0, 1]
| |||||| 0x0808f5bc dff8480b ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| |||||| 0x0808f5c0 0021 movs r1, 0
| |||||| 0x0808f5c2 8170 strb r1, [r0, 2]
| |||||| 0x0808f5c4 dff8400b ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| |||||| 0x0808f5c8 0021 movs r1, 0
| |||||| 0x0808f5ca c170 strb r1, [r0, 3]
| |||||| 0x0808f5cc 0020 movs r0, 0
| ,=======< 0x0808f5ce 0ae0 b 0x808f5e6
| --------> 0x0808f5d0 80b2 uxth r0, r0
| ||||||| 0x0808f5d2 dff8801c ldr.w r1, [0x0809025a] ; [0x8090258:4]=0x8b580
| ||||||| 0x0808f5d6 4118 adds r1, r0, r1
| ||||||| 0x0808f5d8 91f82010 ldrb.w r1, [r1, 0x20]
| ||||||| 0x0808f5dc 80b2 uxth r0, r0
| ||||||| 0x0808f5de dff8902b ldr.w r2, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f5e2 8154 strb r1, [r0, r2]
| ||||||| 0x0808f5e4 401c adds r0, r0, 1
| `-------> 0x0808f5e6 80b2 uxth r0, r0
| |||||| 0x0808f5e8 0828 cmp r0, 8 ; 8
| ========< 0x0808f5ea f1d3 blo 0x808f5d0
| |||||| 0x0808f5ec 0822 movs r2, 8 ; 8
| |||||| 0x0808f5ee dff8801b ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| |||||| 0x0808f5f2 2000 movs r0, r4
| |||||| 0x0808f5f4 caf785fa bl usb_send_packet
| ,=======< 0x0808f5f8 00f073bc b.w 0x808fee2
| --------> 0x0808f5fc dff8f408 ldr.w r0, [0x0808fef8] ; [0x808fef8:4]=0x2001e7c2
| ||||||| 0x0808f600 0068 ldr r0, [r0]
| ||||||| 0x0808f602 b0f5007f cmp.w r0, 0x200 ; 512
| ========< 0x0808f606 04d9 bls 0x808f612
| ||||||| 0x0808f608 dff8e008 ldr.w r0, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f60c 0221 movs r1, 2 ; 2
| ||||||| 0x0808f60e 0170 strb r1, [r0]
| ========< 0x0808f610 03e0 b 0x808f61a
| --------> 0x0808f612 dff8d808 ldr.w r0, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f616 0921 movs r1, 9 ; 9
| ||||||| 0x0808f618 0170 strb r1, [r0]
| --------> 0x0808f61a dff8ec0a ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f61e dff8cc18 ldr.w r1, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f622 0978 ldrb r1, [r1]
| ||||||| 0x0808f624 0171 strb r1, [r0, 4]
| ||||||| 0x0808f626 dff8e00a ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f62a 0021 movs r1, 0
| ||||||| 0x0808f62c 4170 strb r1, [r0, 1]
| ||||||| 0x0808f62e dff8d80a ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f632 0021 movs r1, 0
| ||||||| 0x0808f634 8170 strb r1, [r0, 2]
| ||||||| 0x0808f636 dff8d00a ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f63a 0021 movs r1, 0
| ||||||| 0x0808f63c c170 strb r1, [r0, 3]
| ||||||| 0x0808f63e 0020 movs r0, 0
| ========< 0x0808f640 08e0 b 0x808f654
| --------> 0x0808f642 80b2 uxth r0, r0
| ||||||| 0x0808f644 dff8281b ldr.w r1, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f648 80b2 uxth r0, r0
| ||||||| 0x0808f64a dff8302c ldr.w r2, [0x08090282] ; [0x8090280:4]=0x2001e4a4
| ||||||| 0x0808f64e 825c ldrb r2, [r0, r2]
| ||||||| 0x0808f650 4254 strb r2, [r0, r1]
| ||||||| 0x0808f652 401c adds r0, r0, 1
| --------> 0x0808f654 80b2 uxth r0, r0
| ||||||| 0x0808f656 b0f5007f cmp.w r0, 0x200 ; 512
| ========< 0x0808f65a f2d3 blo 0x808f642
| ||||||| 0x0808f65c 4ff40072 mov.w r2, 0x200 ; 512
| ||||||| 0x0808f660 dff80c1b ldr.w r1, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f664 2000 movs r0, r4
| ||||||| 0x0808f666 caf74cfa bl usb_send_packet
| ========< 0x0808f66a 00f03abc b.w 0x808fee2
| --------> 0x0808f66e dff88408 ldr.w r0, [0x0808fefa] ; [0x808fef8:4]=0x2001e7c2
| ||||||| 0x0808f672 0068 ldr r0, [r0]
| ||||||| 0x0808f674 1128 cmp r0, 0x11 ; 17
| ========< 0x0808f676 04d3 blo 0x808f682
| ||||||| 0x0808f678 dff87008 ldr.w r0, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f67c 0221 movs r1, 2 ; 2
| ||||||| 0x0808f67e 0170 strb r1, [r0]
| ========< 0x0808f680 03e0 b 0x808f68a
| --------> 0x0808f682 dff86808 ldr.w r0, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f686 0921 movs r1, 9 ; 9
| ||||||| 0x0808f688 0170 strb r1, [r0]
| --------> 0x0808f68a dff87c0a ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f68e dff85c18 ldr.w r1, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f692 0978 ldrb r1, [r1]
| ||||||| 0x0808f694 0171 strb r1, [r0, 4]
| ||||||| 0x0808f696 dff8700a ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f69a 0021 movs r1, 0
| ||||||| 0x0808f69c 4170 strb r1, [r0, 1]
| ||||||| 0x0808f69e dff8680a ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f6a2 0021 movs r1, 0
| ||||||| 0x0808f6a4 8170 strb r1, [r0, 2]
| ||||||| 0x0808f6a6 dff8600a ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f6aa 0021 movs r1, 0
| ||||||| 0x0808f6ac c170 strb r1, [r0, 3]
| ||||||| 0x0808f6ae 0020 movs r0, 0
| ========< 0x0808f6b0 08e0 b 0x808f6c4
| --------> 0x0808f6b2 80b2 uxth r0, r0
| ||||||| 0x0808f6b4 dff8b81a ldr.w r1, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f6b8 80b2 uxth r0, r0
| ||||||| 0x0808f6ba dff8c42b ldr.w r2, [0x08090286] ; [0x8090284:4]=0x1fff77f0
| ||||||| 0x0808f6be 825c ldrb r2, [r0, r2]
| ||||||| 0x0808f6c0 4254 strb r2, [r0, r1]
| ||||||| 0x0808f6c2 401c adds r0, r0, 1
| --------> 0x0808f6c4 80b2 uxth r0, r0
| ||||||| 0x0808f6c6 1028 cmp r0, 0x10 ; 16
| ========< 0x0808f6c8 f3d3 blo 0x808f6b2
| ||||||| 0x0808f6ca 1022 movs r2, 0x10 ; 16
| ||||||| 0x0808f6cc dff8a01a ldr.w r1, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f6d0 2000 movs r0, r4
| ||||||| 0x0808f6d2 caf716fa bl usb_send_packet
| ========< 0x0808f6d6 00f004bc b.w 0x808fee2
| --------> 0x0808f6da dff81808 ldr.w r0, [0x0808fefa] ; [0x808fef8:4]=0x2001e7c2
| ||||||| 0x0808f6de 0068 ldr r0, [r0]
| ||||||| 0x0808f6e0 40f23221 movw r1, 0x232 ; 562
| ||||||| 0x0808f6e4 8842 cmp r0, r1
| ========< 0x0808f6e6 04d3 blo 0x808f6f2
| ||||||| 0x0808f6e8 dff80008 ldr.w r0, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f6ec 0221 movs r1, 2 ; 2
| ||||||| 0x0808f6ee 0170 strb r1, [r0]
| ========< 0x0808f6f0 03e0 b 0x808f6fa
| --------> 0x0808f6f2 dff8f807 ldr.w r0, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f6f6 0921 movs r1, 9 ; 9
| ||||||| 0x0808f6f8 0170 strb r1, [r0]
| --------> 0x0808f6fa dff80c0a ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f6fe dff8ec17 ldr.w r1, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f702 0978 ldrb r1, [r1]
| ||||||| 0x0808f704 0171 strb r1, [r0, 4]
| ||||||| 0x0808f706 dff8000a ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f70a 0021 movs r1, 0
| ||||||| 0x0808f70c 4170 strb r1, [r0, 1]
| ||||||| 0x0808f70e dff8f809 ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f712 0021 movs r1, 0
| ||||||| 0x0808f714 8170 strb r1, [r0, 2]
| ||||||| 0x0808f716 dff8f009 ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f71a 0021 movs r1, 0
| ||||||| 0x0808f71c c170 strb r1, [r0, 3]
| ||||||| 0x0808f71e dff8500a ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f722 2021 movs r1, 0x20 ; 32
| ||||||| 0x0808f724 0170 strb r1, [r0]
| ||||||| 0x0808f726 0020 movs r0, 0
| ========< 0x0808f728 09e0 b 0x808f73e
| --------> 0x0808f72a 80b2 uxth r0, r0
| ||||||| 0x0808f72c dff8401a ldr.w r1, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f730 4118 adds r1, r0, r1
| ||||||| 0x0808f732 80b2 uxth r0, r0
| ||||||| 0x0808f734 dff8482b ldr.w r2, [0x08090284] ; [0x8090284:4]=0x1fff77f0
| ||||||| 0x0808f738 825c ldrb r2, [r0, r2]
| ||||||| 0x0808f73a 4a70 strb r2, [r1, 1]
| ||||||| 0x0808f73c 401c adds r0, r0, 1
| --------> 0x0808f73e 80b2 uxth r0, r0
| ||||||| 0x0808f740 1028 cmp r0, 0x10 ; 16
| ========< 0x0808f742 f2d3 blo 0x808f72a
| ||||||| 0x0808f744 0120 movs r0, 1 ; 1
| ========< 0x0808f746 0fe0 b 0x808f768
| --------> 0x0808f748 80b2 uxth r0, r0
| ||||||| 0x0808f74a 1123 movs r3, 0x11 ; 17
| ||||||| 0x0808f74c 89b2 uxth r1, r1
| ||||||| 0x0808f74e 03fb0013 mla r3, r3, r0, r1
| ||||||| 0x0808f752 dff81c5a ldr.w r5, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f756 5b19 adds r3, r3, r5
| ||||||| 0x0808f758 1578 ldrb r5, [r2]
| ||||||| 0x0808f75a 5d70 strb r5, [r3, 1]
| ||||||| 0x0808f75c 521c adds r2, r2, 1
| ||||||| 0x0808f75e 491c adds r1, r1, 1
| --------> 0x0808f760 89b2 uxth r1, r1
| ||||||| 0x0808f762 1029 cmp r1, 0x10 ; 16
| ========< 0x0808f764 f0d3 blo 0x808f748
| ||||||| 0x0808f766 401c adds r0, r0, 1
| --------> 0x0808f768 80b2 uxth r0, r0
| ||||||| 0x0808f76a 2128 cmp r0, 0x21 ; '!' ; 33
| ========< 0x0808f76c 0dd2 bhs 0x808f78a
| ||||||| 0x0808f76e 80b2 uxth r0, r0
| ||||||| 0x0808f770 1121 movs r1, 0x11 ; 17
| ||||||| 0x0808f772 dff8fc29 ldr.w r2, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f776 01fb0021 mla r1, r1, r0, r2
| ||||||| 0x0808f77a 0870 strb r0, [r1]
| ||||||| 0x0808f77c 80b2 uxth r0, r0
| ||||||| 0x0808f77e dff8041b ldr.w r1, [0x0809028a] ; [0x8090288:4]=0x2001e528
| ||||||| 0x0808f782 11eb0012 adds.w r2, r1, r0, lsl 4
| ||||||| 0x0808f786 0021 movs r1, 0
| ========< 0x0808f788 eae7 b 0x808f760
| --------> 0x0808f78a 40f23122 movw r2, 0x231 ; 561
| ||||||| 0x0808f78e dff8e019 ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f792 2000 movs r0, r4
| ||||||| 0x0808f794 caf7b5f9 bl usb_send_packet
| ========< 0x0808f798 a3e3 b 0x808fee2
| --------> 0x0808f79a dff85807 ldr.w r0, [0x0808fefa] ; [0x808fef8:4]=0x2001e7c2
| ||||||| 0x0808f79e 0068 ldr r0, [r0]
| ||||||| 0x0808f7a0 4128 cmp r0, 0x41 ; 'A' ; 65
| ========< 0x0808f7a2 04d3 blo 0x808f7ae
| ||||||| 0x0808f7a4 dff84407 ldr.w r0, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f7a8 0221 movs r1, 2 ; 2
| ||||||| 0x0808f7aa 0170 strb r1, [r0]
| ========< 0x0808f7ac 03e0 b 0x808f7b6
| --------> 0x0808f7ae dff83c07 ldr.w r0, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f7b2 0921 movs r1, 9 ; 9
| ||||||| 0x0808f7b4 0170 strb r1, [r0]
| --------> 0x0808f7b6 dff85009 ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f7ba dff83017 ldr.w r1, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f7be 0978 ldrb r1, [r1]
| ||||||| 0x0808f7c0 0171 strb r1, [r0, 4]
| ||||||| 0x0808f7c2 dff84409 ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f7c6 0021 movs r1, 0
| ||||||| 0x0808f7c8 4170 strb r1, [r0, 1]
| ||||||| 0x0808f7ca dff83c09 ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f7ce 0021 movs r1, 0
| ||||||| 0x0808f7d0 8170 strb r1, [r0, 2]
| ||||||| 0x0808f7d2 dff83409 ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f7d6 0021 movs r1, 0
| ||||||| 0x0808f7d8 c170 strb r1, [r0, 3]
| ||||||| 0x0808f7da dff89409 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f7de 0021 movs r1, 0
| ||||||| 0x0808f7e0 0170 strb r1, [r0]
| ||||||| 0x0808f7e2 dff88c09 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f7e6 0021 movs r1, 0
| ||||||| 0x0808f7e8 4170 strb r1, [r0, 1]
| ||||||| 0x0808f7ea dff88409 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f7ee 0821 movs r1, 8 ; 8
| ||||||| 0x0808f7f0 8170 strb r1, [r0, 2]
| ||||||| 0x0808f7f2 dff87c09 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f7f6 0021 movs r1, 0
| ||||||| 0x0808f7f8 c170 strb r1, [r0, 3]
| ||||||| 0x0808f7fa dff87409 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f7fe ff21 movs r1, 0xff ; 255
| ||||||| 0x0808f800 0171 strb r1, [r0, 4]
| ||||||| 0x0808f802 dff86c09 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f806 1f21 movs r1, 0x1f ; 31
| ||||||| 0x0808f808 4171 strb r1, [r0, 5]
| ||||||| 0x0808f80a dff86409 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f80e 0821 movs r1, 8 ; 8
| ||||||| 0x0808f810 8171 strb r1, [r0, 6]
| ||||||| 0x0808f812 dff85c09 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f816 0021 movs r1, 0
| ||||||| 0x0808f818 c171 strb r1, [r0, 7]
| ||||||| 0x0808f81a dff85409 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f81e 0021 movs r1, 0
| ||||||| 0x0808f820 0172 strb r1, [r0, 8]
| ||||||| 0x0808f822 dff84c09 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f826 4021 movs r1, 0x40 ; '@' ; 64
| ||||||| 0x0808f828 4172 strb r1, [r0, 9]
| ||||||| 0x0808f82a dff84409 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f82e 0821 movs r1, 8 ; 8
| ||||||| 0x0808f830 8172 strb r1, [r0, 0xa]
| ||||||| 0x0808f832 dff83c09 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f836 0021 movs r1, 0
| ||||||| 0x0808f838 c172 strb r1, [r0, 0xb]
| ||||||| 0x0808f83a dff83409 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f83e ff21 movs r1, 0xff ; 255
| ||||||| 0x0808f840 0173 strb r1, [r0, 0xc]
| ||||||| 0x0808f842 dff82c09 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f846 7f21 movs r1, 0x7f ; 127
| ||||||| 0x0808f848 4173 strb r1, [r0, 0xd]
| ||||||| 0x0808f84a dff82409 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f84e 0821 movs r1, 8 ; 8
| ||||||| 0x0808f850 8173 strb r1, [r0, 0xe]
| ||||||| 0x0808f852 dff81c09 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f856 0021 movs r1, 0
| ||||||| 0x0808f858 c173 strb r1, [r0, 0xf]
| ||||||| 0x0808f85a dff81409 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f85e 0021 movs r1, 0
| ||||||| 0x0808f860 0174 strb r1, [r0, 0x10]
| ||||||| 0x0808f862 dff80c09 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f866 0021 movs r1, 0
| ||||||| 0x0808f868 4174 strb r1, [r0, 0x11]
| ||||||| 0x0808f86a dff80409 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f86e 0921 movs r1, 9 ; 9
| ||||||| 0x0808f870 8174 strb r1, [r0, 0x12]
| ||||||| 0x0808f872 dff8fc08 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f876 0021 movs r1, 0
| ||||||| 0x0808f878 c174 strb r1, [r0, 0x13]
| ||||||| 0x0808f87a dff8f408 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f87e ff21 movs r1, 0xff ; 255
| ||||||| 0x0808f880 0175 strb r1, [r0, 0x14]
| ||||||| 0x0808f882 dff8ec08 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f886 ff21 movs r1, 0xff ; 255
| ||||||| 0x0808f888 4175 strb r1, [r0, 0x15]
| ||||||| 0x0808f88a dff8e408 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f88e ff21 movs r1, 0xff ; 255
| ||||||| 0x0808f890 8175 strb r1, [r0, 0x16]
| ||||||| 0x0808f892 dff8dc08 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f896 0021 movs r1, 0
| ||||||| 0x0808f898 c175 strb r1, [r0, 0x17]
| ||||||| 0x0808f89a dff8d408 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f89e dff8b419 ldr.w r1, [0x0809025a] ; [0x8090258:4]=0x8b580
| ||||||| 0x0808f8a2 4968 ldr r1, [r1, 4]
| ||||||| 0x0808f8a4 0176 strb r1, [r0, 0x18]
| ||||||| 0x0808f8a6 dff8ac09 ldr.w r0, [0x0809025a] ; [0x8090258:4]=0x8b580
| ||||||| 0x0808f8aa 4068 ldr r0, [r0, 4]
| ||||||| 0x0808f8ac 000a lsrs r0, r0, 8
| ||||||| 0x0808f8ae dff8c018 ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f8b2 4876 strb r0, [r1, 0x19]
| ||||||| 0x0808f8b4 dff89c09 ldr.w r0, [func_90258] ; [0x8090258:4]=0x8b580
| ||||||| 0x0808f8b8 4068 ldr r0, [r0, 4]
| ||||||| 0x0808f8ba 000c lsrs r0, r0, 0x10
| ||||||| 0x0808f8bc dff8b018 ldr.w r1, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f8c0 8876 strb r0, [r1, 0x1a]
| ||||||| 0x0808f8c2 dff8ac08 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f8c6 0021 movs r1, 0
| ||||||| 0x0808f8c8 c176 strb r1, [r0, 0x1b]
| ||||||| 0x0808f8ca dff8a408 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f8ce ff21 movs r1, 0xff ; 255
| ||||||| 0x0808f8d0 0177 strb r1, [r0, 0x1c]
| ||||||| 0x0808f8d2 dff89c08 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f8d6 ff21 movs r1, 0xff ; 255
| ||||||| 0x0808f8d8 4177 strb r1, [r0, 0x1d]
| ||||||| 0x0808f8da dff89408 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f8de ff21 movs r1, 0xff ; 255
| ||||||| 0x0808f8e0 8177 strb r1, [r0, 0x1e]
| ||||||| 0x0808f8e2 dff88c08 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f8e6 ff21 movs r1, 0xff ; 255
| ||||||| 0x0808f8e8 c177 strb r1, [r0, 0x1f]
| ||||||| 0x0808f8ea 0020 movs r0, 0
| ========< 0x0808f8ec 0ce0 b 0x808f908
| --------> 0x0808f8ee 80b2 uxth r0, r0
| ||||||| 0x0808f8f0 dff87c18 ldr.w r1, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f8f4 4118 adds r1, r0, r1
| ||||||| 0x0808f8f6 80b2 uxth r0, r0
| ||||||| 0x0808f8f8 dff85829 ldr.w r2, [func_90258] ; [0x8090258:4]=0x8b580
| ||||||| 0x0808f8fc 8218 adds r2, r0, r2
| ||||||| 0x0808f8fe 92f83020 ldrb.w r2, [r2, 0x30]
| ||||||| 0x0808f902 81f82020 strb.w r2, [r1, 0x20]
| ||||||| 0x0808f906 401c adds r0, r0, 1
| --------> 0x0808f908 80b2 uxth r0, r0
| ||||||| 0x0808f90a 2028 cmp r0, 0x20 ; 32
| ========< 0x0808f90c efd3 blo 0x808f8ee
| ||||||| 0x0808f90e 4022 movs r2, 0x40 ; '@' ; 64
| ||||||| 0x0808f910 dff85c18 ldr.w r1, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f914 2000 movs r0, r4
| ||||||| 0x0808f916 caf7f4f8 bl usb_send_packet
| ========< 0x0808f91a e2e2 b 0x808fee2
| |||`----> 0x0808f91c dff8d805 ldr.w r0, [0x0808fefc] ; [0x808fefc:4]=0x2001de38
| ||| ||| 0x0808f920 0078 ldrb r0, [r0]
| ||| ||| 0x0808f922 0328 cmp r0, 3 ; 3
| |||,====< 0x0808f924 40f05282 bne.w 0x808fdcc
| ||||||| 0x0808f928 dff8c805 ldr.w r0, [0x0808fef8] ; [0x808fef8:4]=0x2001e7c2
| ||||||| 0x0808f92c 0068 ldr r0, [r0]
| ||||||| 0x0808f92e 0c28 cmp r0, 0xc ; 12
| ========< 0x0808f930 04d3 blo 0x808f93c
| ||||||| 0x0808f932 dff8b805 ldr.w r0, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f936 0221 movs r1, 2 ; 2
| ||||||| 0x0808f938 0170 strb r1, [r0]
| ========< 0x0808f93a 03e0 b 0x808f944
| --------> 0x0808f93c dff8ac05 ldr.w r0, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f940 0921 movs r1, 9 ; 9
| ||||||| 0x0808f942 0170 strb r1, [r0]
| --------> 0x0808f944 dff8c007 ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f948 dff8a015 ldr.w r1, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808f94c 0978 ldrb r1, [r1]
| ||||||| 0x0808f94e 0171 strb r1, [r0, 4]
| ||||||| 0x0808f950 dff8b407 ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f954 0021 movs r1, 0
| ||||||| 0x0808f956 4170 strb r1, [r0, 1]
| ||||||| 0x0808f958 dff8ac07 ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f95c 0021 movs r1, 0
| ||||||| 0x0808f95e 8170 strb r1, [r0, 2]
| ||||||| 0x0808f960 dff8a407 ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||||||| 0x0808f964 0021 movs r1, 0
| ||||||| 0x0808f966 c170 strb r1, [r0, 3]
| ||||||| 0x0808f968 0020 movs r0, 0
| ========< 0x0808f96a 09e0 b 0x808f980
| --------> 0x0808f96c 80b2 uxth r0, r0
| ||||||| 0x0808f96e dff81819 ldr.w r1, [0x0809028e] ; [0x809028c:4]=0x2001e892 gui_opmode3
| ||||||| 0x0808f972 4118 adds r1, r0, r1
| ||||||| 0x0808f974 4978 ldrb r1, [r1, 1]
| ||||||| 0x0808f976 80b2 uxth r0, r0
| ||||||| 0x0808f978 dff8f427 ldr.w r2, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f97c 8154 strb r1, [r0, r2]
| ||||||| 0x0808f97e 401c adds r0, r0, 1
| --------> 0x0808f980 80b2 uxth r0, r0
| ||||||| 0x0808f982 0928 cmp r0, 9 ; 9
| ========< 0x0808f984 f2d3 blo 0x808f96c
| ||||||| 0x0808f986 dff8e807 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f98a 0021 movs r1, 0
| ||||||| 0x0808f98c 4172 strb r1, [r0, 9]
| ||||||| 0x0808f98e dff8e007 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f992 0021 movs r1, 0
| ||||||| 0x0808f994 8172 strb r1, [r0, 0xa]
| ||||||| 0x0808f996 dff8f408 ldr.w r0, [0x08090292] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808f99a 0078 ldrb r0, [r0]
| ||||||| 0x0808f99c 9228 cmp r0, 0x92 ; 146
| ========< 0x0808f99e 09d0 beq 0x808f9b4
| ||||||| 0x0808f9a0 dff8e808 ldr.w r0, [0x08090290] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808f9a4 0078 ldrb r0, [r0]
| ||||||| 0x0808f9a6 9328 cmp r0, 0x93 ; 147
| ========< 0x0808f9a8 04d0 beq 0x808f9b4
| ||||||| 0x0808f9aa dff8e008 ldr.w r0, [0x08090292] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808f9ae 0078 ldrb r0, [r0]
| ||||||| 0x0808f9b0 9428 cmp r0, 0x94 ; 148
| ========< 0x0808f9b2 31d1 bne 0x808fa18
| --------> 0x0808f9b4 dff8d808 ldr.w r0, [0x08090294] ; [0x8090294:4]=0x2001e698
| ||||||| 0x0808f9b8 0068 ldr r0, [r0]
| ||||||| 0x0808f9ba 4ff48471 mov.w r1, 0x108 ; 264
| ||||||| 0x0808f9be 01fb00f2 mul r2, r1, r0
| ||||||| 0x0808f9c2 dff8ac07 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f9c6 c270 strb r2, [r0, 3]
| ||||||| 0x0808f9c8 100a lsrs r0, r2, 8
| ||||||| 0x0808f9ca dff8a417 ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f9ce 0871 strb r0, [r1, 4]
| ||||||| 0x0808f9d0 100c lsrs r0, r2, 0x10
| ||||||| 0x0808f9d2 dff89c17 ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f9d6 4871 strb r0, [r1, 5]
| ||||||| 0x0808f9d8 100e lsrs r0, r2, 0x18
| ||||||| 0x0808f9da dff89417 ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f9de 8871 strb r0, [r1, 6]
| ||||||| 0x0808f9e0 dff88c07 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f9e4 dff8ac18 ldr.w r1, [0x08090298] ; [0x8090298:4]=0x2001e8df
| ||||||| 0x0808f9e8 0968 ldr r1, [r1]
| ||||||| 0x0808f9ea c171 strb r1, [r0, 7]
| ||||||| 0x0808f9ec dff8a408 ldr.w r0, [0x08090298] ; [0x8090298:4]=0x2001e8df
| ||||||| 0x0808f9f0 0068 ldr r0, [r0]
| ||||||| 0x0808f9f2 000a lsrs r0, r0, 8
| ||||||| 0x0808f9f4 dff87817 ldr.w r1, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808f9f8 0872 strb r0, [r1, 8]
| ||||||| 0x0808f9fa dff89808 ldr.w r0, [0x0809029a] ; [0x8090298:4]=0x2001e8df
| ||||||| 0x0808f9fe 0068 ldr r0, [r0]
| ||||||| 0x0808fa00 000c lsrs r0, r0, 0x10
| ||||||| 0x0808fa02 dff86c17 ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fa06 4872 strb r0, [r1, 9]
| ||||||| 0x0808fa08 dff88808 ldr.w r0, [0x08090298] ; [0x8090298:4]=0x2001e8df
| ||||||| 0x0808fa0c 0068 ldr r0, [r0]
| ||||||| 0x0808fa0e 000e lsrs r0, r0, 0x18
| ||||||| 0x0808fa10 dff85c17 ldr.w r1, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fa14 8872 strb r0, [r1, 0xa]
| ========< 0x0808fa16 d2e1 b 0x808fdbe
| --------> 0x0808fa18 dff87008 ldr.w r0, [0x08090290] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808fa1c 0078 ldrb r0, [r0]
| ||||||| 0x0808fa1e 7d28 cmp r0, 0x7d ; '}' ; 125
| ========< 0x0808fa20 2bd1 bne 0x808fa7a
| ||||||| 0x0808fa22 dff84c07 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fa26 dff87018 ldr.w r1, [0x0809029e] ; [0x809029c:4]=0x2001e89e
| ||||||| 0x0808fa2a 0978 ldrb r1, [r1]
| ||||||| 0x0808fa2c c170 strb r1, [r0, 3]
| ||||||| 0x0808fa2e dff84007 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fa32 0021 movs r1, 0
| ||||||| 0x0808fa34 0171 strb r1, [r0, 4]
| ||||||| 0x0808fa36 dff83807 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fa3a 0021 movs r1, 0
| ||||||| 0x0808fa3c 4171 strb r1, [r0, 5]
| ||||||| 0x0808fa3e dff83007 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fa42 0021 movs r1, 0
| ||||||| 0x0808fa44 8171 strb r1, [r0, 6]
| ||||||| 0x0808fa46 dff82807 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fa4a 0021 movs r1, 0
| ||||||| 0x0808fa4c c171 strb r1, [r0, 7]
| ||||||| 0x0808fa4e dff82007 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fa52 0021 movs r1, 0
| ||||||| 0x0808fa54 0172 strb r1, [r0, 8]
| ||||||| 0x0808fa56 dff83008 ldr.w r0, [0x0809028e] ; [0x809028c:4]=0x2001e892 gui_opmode3
| ||||||| 0x0808fa5a 8078 ldrb r0, [r0, 2]
| ||||||| 0x0808fa5c dff81c18 ldr.w r1, [0x08090280] ; [0x8090280:4]=0x2001e4a4
| ||||||| 0x0808fa60 4018 adds r0, r0, r1
| ||||||| 0x0808fa62 dff83418 ldr.w r1, [0x0809029e] ; [0x809029c:4]=0x2001e89e
| ||||||| 0x0808fa66 0978 ldrb r1, [r1]
| ||||||| 0x0808fa68 80f83f10 strb.w r1, [r0, 0x3f]
| ||||||| 0x0808fa6c dff82c08 ldr.w r0, [0x080902a0] ; [0x80902a0:4]=0x2001e7f6
| ||||||| 0x0808fa70 dff82418 ldr.w r1, [0x0809029c] ; [0x809029c:4]=0x2001e89e
| ||||||| 0x0808fa74 0978 ldrb r1, [r1]
| ||||||| 0x0808fa76 0170 strb r1, [r0]
| ========< 0x0808fa78 a1e1 b 0x808fdbe
| --------> 0x0808fa7a dff81008 ldr.w r0, [0x08090292] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808fa7e 0078 ldrb r0, [r0]
| ||||||| 0x0808fa80 7f28 cmp r0, 0x7f ; 127
| ========< 0x0808fa82 2bd1 bne 0x808fadc
| ||||||| 0x0808fa84 dff8e806 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fa88 dff80c18 ldr.w r1, [0x0809029c] ; [0x809029c:4]=0x2001e89e
| ||||||| 0x0808fa8c 0978 ldrb r1, [r1]
| ||||||| 0x0808fa8e c170 strb r1, [r0, 3]
| ||||||| 0x0808fa90 dff8dc06 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fa94 0021 movs r1, 0
| ||||||| 0x0808fa96 0171 strb r1, [r0, 4]
| ||||||| 0x0808fa98 dff8d406 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fa9c 0021 movs r1, 0
| ||||||| 0x0808fa9e 4171 strb r1, [r0, 5]
| ||||||| 0x0808faa0 dff8cc06 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808faa4 0021 movs r1, 0
| ||||||| 0x0808faa6 8171 strb r1, [r0, 6]
| ||||||| 0x0808faa8 dff8c406 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808faac 0021 movs r1, 0
| ||||||| 0x0808faae c171 strb r1, [r0, 7]
| ||||||| 0x0808fab0 dff8bc06 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fab4 0021 movs r1, 0
| ||||||| 0x0808fab6 0172 strb r1, [r0, 8]
| ||||||| 0x0808fab8 dff8cc07 ldr.w r0, [0x0809028c] ; [0x809028c:4]=0x2001e892 gui_opmode3
| ||||||| 0x0808fabc 8078 ldrb r0, [r0, 2]
| ||||||| 0x0808fabe dff8bc17 ldr.w r1, [0x08090282] ; [0x8090280:4]=0x2001e4a4
| ||||||| 0x0808fac2 4018 adds r0, r0, r1
| ||||||| 0x0808fac4 dff8d017 ldr.w r1, [0x0809029c] ; [0x809029c:4]=0x2001e89e
| ||||||| 0x0808fac8 0978 ldrb r1, [r1]
| ||||||| 0x0808faca 80f85f10 strb.w r1, [r0, 0x5f]
| ||||||| 0x0808face dff8cc07 ldr.w r0, [0x080902a2] ; [0x80902a0:4]=0x2001e7f6
| ||||||| 0x0808fad2 dff8c417 ldr.w r1, [0x0809029e] ; [0x809029c:4]=0x2001e89e
| ||||||| 0x0808fad6 0978 ldrb r1, [r1]
| ||||||| 0x0808fad8 0170 strb r1, [r0]
| ========< 0x0808fada 70e1 b 0x808fdbe
| --------> 0x0808fadc dff8ac07 ldr.w r0, [0x08090290] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808fae0 0078 ldrb r0, [r0]
| ||||||| 0x0808fae2 7e28 cmp r0, 0x7e ; '~' ; 126
| ========< 0x0808fae4 2bd1 bne 0x808fb3e
| ||||||| 0x0808fae6 dff88806 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808faea dff8ac17 ldr.w r1, [0x0809029e] ; [0x809029c:4]=0x2001e89e
| ||||||| 0x0808faee 0978 ldrb r1, [r1]
| ||||||| 0x0808faf0 c170 strb r1, [r0, 3]
| ||||||| 0x0808faf2 dff87c06 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808faf6 0021 movs r1, 0
| ||||||| 0x0808faf8 0171 strb r1, [r0, 4]
| ||||||| 0x0808fafa dff87406 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fafe 0021 movs r1, 0
| ||||||| 0x0808fb00 4171 strb r1, [r0, 5]
| ||||||| 0x0808fb02 dff86c06 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fb06 0021 movs r1, 0
| ||||||| 0x0808fb08 8171 strb r1, [r0, 6]
| ||||||| 0x0808fb0a dff86406 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fb0e 0021 movs r1, 0
| ||||||| 0x0808fb10 c171 strb r1, [r0, 7]
| ||||||| 0x0808fb12 dff85c06 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fb16 0021 movs r1, 0
| ||||||| 0x0808fb18 0172 strb r1, [r0, 8]
| ||||||| 0x0808fb1a dff86c07 ldr.w r0, [0x0809028e] ; [0x809028c:4]=0x2001e892 gui_opmode3
| ||||||| 0x0808fb1e 8078 ldrb r0, [r0, 2]
| ||||||| 0x0808fb20 dff85817 ldr.w r1, [0x08090280] ; [0x8090280:4]=0x2001e4a4
| ||||||| 0x0808fb24 4018 adds r0, r0, r1
| ||||||| 0x0808fb26 dff87017 ldr.w r1, [0x0809029e] ; [0x809029c:4]=0x2001e89e
| ||||||| 0x0808fb2a 0978 ldrb r1, [r1]
| ||||||| 0x0808fb2c 80f84f10 strb.w r1, [r0, 0x4f]
| ||||||| 0x0808fb30 dff86807 ldr.w r0, [0x080902a0] ; [0x80902a0:4]=0x2001e7f6
| ||||||| 0x0808fb34 dff86017 ldr.w r1, [0x0809029c] ; [0x809029c:4]=0x2001e89e
| ||||||| 0x0808fb38 0978 ldrb r1, [r1]
| ||||||| 0x0808fb3a 0170 strb r1, [r0]
| ========< 0x0808fb3c 3fe1 b 0x808fdbe
| --------> 0x0808fb3e dff84c07 ldr.w r0, [0x08090292] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808fb42 0078 ldrb r0, [r0]
| ||||||| 0x0808fb44 8028 cmp r0, 0x80 ; 128
| ========< 0x0808fb46 2bd1 bne 0x808fba0
| ||||||| 0x0808fb48 dff82406 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fb4c dff84817 ldr.w r1, [0x0809029c] ; [0x809029c:4]=0x2001e89e
| ||||||| 0x0808fb50 0978 ldrb r1, [r1]
| ||||||| 0x0808fb52 c170 strb r1, [r0, 3]
| ||||||| 0x0808fb54 dff81806 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fb58 0021 movs r1, 0
| ||||||| 0x0808fb5a 0171 strb r1, [r0, 4]
| ||||||| 0x0808fb5c dff81006 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fb60 0021 movs r1, 0
| ||||||| 0x0808fb62 4171 strb r1, [r0, 5]
| ||||||| 0x0808fb64 dff80806 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fb68 0021 movs r1, 0
| ||||||| 0x0808fb6a 8171 strb r1, [r0, 6]
| ||||||| 0x0808fb6c dff80006 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fb70 0021 movs r1, 0
| ||||||| 0x0808fb72 c171 strb r1, [r0, 7]
| ||||||| 0x0808fb74 dff8f805 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fb78 0021 movs r1, 0
| ||||||| 0x0808fb7a 0172 strb r1, [r0, 8]
| ||||||| 0x0808fb7c dff80807 ldr.w r0, [0x0809028c] ; [0x809028c:4]=0x2001e892 gui_opmode3
| ||||||| 0x0808fb80 8078 ldrb r0, [r0, 2]
| ||||||| 0x0808fb82 dff8f816 ldr.w r1, [0x08090282] ; [0x8090280:4]=0x2001e4a4
| ||||||| 0x0808fb86 4018 adds r0, r0, r1
| ||||||| 0x0808fb88 dff80c17 ldr.w r1, [0x0809029c] ; [0x809029c:4]=0x2001e89e
| ||||||| 0x0808fb8c 0978 ldrb r1, [r1]
| ||||||| 0x0808fb8e 80f86f10 strb.w r1, [r0, 0x6f]
| ||||||| 0x0808fb92 dff80807 ldr.w r0, [0x080902a2] ; [0x80902a0:4]=0x2001e7f6
| ||||||| 0x0808fb96 dff80017 ldr.w r1, [0x0809029e] ; [0x809029c:4]=0x2001e89e
| ||||||| 0x0808fb9a 0978 ldrb r1, [r1]
| ||||||| 0x0808fb9c 0170 strb r1, [r0]
| ========< 0x0808fb9e 0ee1 b 0x808fdbe
| --------> 0x0808fba0 dff8e806 ldr.w r0, [0x08090290] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808fba4 0078 ldrb r0, [r0]
| ||||||| 0x0808fba6 7328 cmp r0, 0x73 ; 's' ; 115
| ========< 0x0808fba8 28d1 bne 0x808fbfc
| ||||||| 0x0808fbaa dff8c405 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fbae dff8f016 ldr.w r1, [0x080902a6] ; [0x80902a4:4]=0x2001e8e1
| ||||||| 0x0808fbb2 0988 ldrh r1, [r1]
| ||||||| 0x0808fbb4 89b2 uxth r1, r1
| ||||||| 0x0808fbb6 0909 lsrs r1, r1, 4
| ||||||| 0x0808fbb8 c170 strb r1, [r0, 3]
| ||||||| 0x0808fbba dff8b405 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fbbe 0021 movs r1, 0
| ||||||| 0x0808fbc0 0171 strb r1, [r0, 4]
| ||||||| 0x0808fbc2 dff8ac05 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fbc6 0021 movs r1, 0
| ||||||| 0x0808fbc8 4171 strb r1, [r0, 5]
| ||||||| 0x0808fbca dff8a405 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fbce 0021 movs r1, 0
| ||||||| 0x0808fbd0 8171 strb r1, [r0, 6]
| ||||||| 0x0808fbd2 dff89c05 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fbd6 0021 movs r1, 0
| ||||||| 0x0808fbd8 c171 strb r1, [r0, 7]
| ||||||| 0x0808fbda dff89405 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fbde 0021 movs r1, 0
| ||||||| 0x0808fbe0 0172 strb r1, [r0, 8]
| ||||||| 0x0808fbe2 dff89806 ldr.w r0, [0x08090282] ; [0x8090280:4]=0x2001e4a4
| ||||||| 0x0808fbe6 dff88815 ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fbea c978 ldrb r1, [r1, 3]
| ||||||| 0x0808fbec 8170 strb r1, [r0, 2]
| ||||||| 0x0808fbee dff88005 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fbf2 c078 ldrb r0, [r0, 3]
| ||||||| 0x0808fbf4 dff8a416 ldr.w r1, [0x080902a0] ; [0x80902a0:4]=0x2001e7f6
| ||||||| 0x0808fbf8 0870 strb r0, [r1]
| ========< 0x0808fbfa e0e0 b 0x808fdbe
| --------> 0x0808fbfc dff88c06 ldr.w r0, [0x08090290] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808fc00 0078 ldrb r0, [r0]
| ||||||| 0x0808fc02 7428 cmp r0, 0x74 ; 't' ; 116
| ========< 0x0808fc04 28d1 bne 0x808fc58
| ||||||| 0x0808fc06 dff86805 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc0a dff89416 ldr.w r1, [0x080902a6] ; [0x80902a4:4]=0x2001e8e1
| ||||||| 0x0808fc0e 0988 ldrh r1, [r1]
| ||||||| 0x0808fc10 89b2 uxth r1, r1
| ||||||| 0x0808fc12 0909 lsrs r1, r1, 4
| ||||||| 0x0808fc14 c170 strb r1, [r0, 3]
| ||||||| 0x0808fc16 dff85805 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc1a 0021 movs r1, 0
| ||||||| 0x0808fc1c 0171 strb r1, [r0, 4]
| ||||||| 0x0808fc1e dff85005 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc22 0021 movs r1, 0
| ||||||| 0x0808fc24 4171 strb r1, [r0, 5]
| ||||||| 0x0808fc26 dff84805 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc2a 0021 movs r1, 0
| ||||||| 0x0808fc2c 8171 strb r1, [r0, 6]
| ||||||| 0x0808fc2e dff84005 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc32 0021 movs r1, 0
| ||||||| 0x0808fc34 c171 strb r1, [r0, 7]
| ||||||| 0x0808fc36 dff83805 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc3a 0021 movs r1, 0
| ||||||| 0x0808fc3c 0172 strb r1, [r0, 8]
| ||||||| 0x0808fc3e dff83c06 ldr.w r0, [0x08090282] ; [0x8090280:4]=0x2001e4a4
| ||||||| 0x0808fc42 dff82c15 ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc46 c978 ldrb r1, [r1, 3]
| ||||||| 0x0808fc48 c170 strb r1, [r0, 3]
| ||||||| 0x0808fc4a dff82405 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc4e c078 ldrb r0, [r0, 3]
| ||||||| 0x0808fc50 dff84816 ldr.w r1, [0x080902a0] ; [0x80902a0:4]=0x2001e7f6
| ||||||| 0x0808fc54 0870 strb r0, [r1]
| ========< 0x0808fc56 b2e0 b 0x808fdbe
| --------> 0x0808fc58 dff83006 ldr.w r0, [0x08090290] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808fc5c 0078 ldrb r0, [r0]
| ||||||| 0x0808fc5e 7528 cmp r0, 0x75 ; 'u' ; 117
| ========< 0x0808fc60 26d1 bne 0x808fcb0
| ||||||| 0x0808fc62 dff80c05 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc66 dff83c16 ldr.w r1, [0x080902aa] ; [0x80902a8:4]=0x2001e796
| ||||||| 0x0808fc6a 0978 ldrb r1, [r1]
| ||||||| 0x0808fc6c c170 strb r1, [r0, 3]
| ||||||| 0x0808fc6e dff80005 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc72 0021 movs r1, 0
| ||||||| 0x0808fc74 0171 strb r1, [r0, 4]
| ||||||| 0x0808fc76 dff8f804 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc7a 0021 movs r1, 0
| ||||||| 0x0808fc7c 4171 strb r1, [r0, 5]
| ||||||| 0x0808fc7e dff8f004 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc82 0021 movs r1, 0
| ||||||| 0x0808fc84 8171 strb r1, [r0, 6]
| ||||||| 0x0808fc86 dff8e804 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc8a 0021 movs r1, 0
| ||||||| 0x0808fc8c c171 strb r1, [r0, 7]
| ||||||| 0x0808fc8e dff8e004 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc92 0021 movs r1, 0
| ||||||| 0x0808fc94 0172 strb r1, [r0, 8]
| ||||||| 0x0808fc96 dff8e405 ldr.w r0, [0x08090282] ; [0x8090280:4]=0x2001e4a4
| ||||||| 0x0808fc9a dff8d414 ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fc9e c978 ldrb r1, [r1, 3]
| ||||||| 0x0808fca0 0171 strb r1, [r0, 4]
| ||||||| 0x0808fca2 dff8cc04 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fca6 c078 ldrb r0, [r0, 3]
| ||||||| 0x0808fca8 dff8f015 ldr.w r1, [0x080902a0] ; [0x80902a0:4]=0x2001e7f6
| ||||||| 0x0808fcac 0870 strb r0, [r1]
| ========< 0x0808fcae 86e0 b 0x808fdbe
| --------> 0x0808fcb0 dff8d805 ldr.w r0, [0x08090290] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808fcb4 0078 ldrb r0, [r0]
| ||||||| 0x0808fcb6 7628 cmp r0, 0x76 ; 'v' ; 118
| ========< 0x0808fcb8 26d1 bne 0x808fd08
| ||||||| 0x0808fcba dff8b404 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fcbe dff8e415 ldr.w r1, [0x080902aa] ; [0x80902a8:4]=0x2001e796
| ||||||| 0x0808fcc2 0978 ldrb r1, [r1]
| ||||||| 0x0808fcc4 c170 strb r1, [r0, 3]
| ||||||| 0x0808fcc6 dff8a804 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fcca 0021 movs r1, 0
| ||||||| 0x0808fccc 0171 strb r1, [r0, 4]
| ||||||| 0x0808fcce dff8a004 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fcd2 0021 movs r1, 0
| ||||||| 0x0808fcd4 4171 strb r1, [r0, 5]
| ||||||| 0x0808fcd6 dff89804 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fcda 0021 movs r1, 0
| ||||||| 0x0808fcdc 8171 strb r1, [r0, 6]
| ||||||| 0x0808fcde dff89004 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fce2 0021 movs r1, 0
| ||||||| 0x0808fce4 c171 strb r1, [r0, 7]
| ||||||| 0x0808fce6 dff88804 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fcea 0021 movs r1, 0
| ||||||| 0x0808fcec 0172 strb r1, [r0, 8]
| ||||||| 0x0808fcee dff88c05 ldr.w r0, [0x08090282] ; [0x8090280:4]=0x2001e4a4
| ||||||| 0x0808fcf2 dff87c14 ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fcf6 c978 ldrb r1, [r1, 3]
| ||||||| 0x0808fcf8 4171 strb r1, [r0, 5]
| ||||||| 0x0808fcfa dff87404 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fcfe c078 ldrb r0, [r0, 3]
| ||||||| 0x0808fd00 dff89815 ldr.w r1, [0x080902a0] ; [0x80902a0:4]=0x2001e7f6
| ||||||| 0x0808fd04 0870 strb r0, [r1]
| ========< 0x0808fd06 5ae0 b 0x808fdbe
| --------> 0x0808fd08 dff88005 ldr.w r0, [0x08090290] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808fd0c 0078 ldrb r0, [r0]
| ||||||| 0x0808fd0e 7128 cmp r0, 0x71 ; 'q' ; 113
| ========< 0x0808fd10 28d1 bne 0x808fd64
| ||||||| 0x0808fd12 dff85c04 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd16 dff89015 ldr.w r1, [0x080902ae] ; [0x80902ac:4]=0x20004a14 md380_dfu_target_adr
| ||||||| 0x0808fd1a 0988 ldrh r1, [r1]
| ||||||| 0x0808fd1c 89b2 uxth r1, r1
| ||||||| 0x0808fd1e 8909 lsrs r1, r1, 6
| ||||||| 0x0808fd20 c170 strb r1, [r0, 3]
| ||||||| 0x0808fd22 dff84c04 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd26 0021 movs r1, 0
| ||||||| 0x0808fd28 0171 strb r1, [r0, 4]
| ||||||| 0x0808fd2a dff84404 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd2e 0021 movs r1, 0
| ||||||| 0x0808fd30 4171 strb r1, [r0, 5]
| ||||||| 0x0808fd32 dff83c04 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd36 0021 movs r1, 0
| ||||||| 0x0808fd38 8171 strb r1, [r0, 6]
| ||||||| 0x0808fd3a dff83404 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd3e 0021 movs r1, 0
| ||||||| 0x0808fd40 c171 strb r1, [r0, 7]
| ||||||| 0x0808fd42 dff82c04 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd46 0021 movs r1, 0
| ||||||| 0x0808fd48 0172 strb r1, [r0, 8]
| ||||||| 0x0808fd4a dff82404 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd4e c078 ldrb r0, [r0, 3]
| ||||||| 0x0808fd50 dff82815 ldr.w r1, [0x08090280] ; [0x8090280:4]=0x2001e4a4
| ||||||| 0x0808fd54 0870 strb r0, [r1]
| ||||||| 0x0808fd56 dff81804 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd5a c078 ldrb r0, [r0, 3]
| ||||||| 0x0808fd5c dff83c15 ldr.w r1, [0x080902a0] ; [0x80902a0:4]=0x2001e7f6
| ||||||| 0x0808fd60 0870 strb r0, [r1]
| ========< 0x0808fd62 2ce0 b 0x808fdbe
| --------> 0x0808fd64 dff82405 ldr.w r0, [0x08090290] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808fd68 0078 ldrb r0, [r0]
| ||||||| 0x0808fd6a 7228 cmp r0, 0x72 ; 'r' ; 114
| ========< 0x0808fd6c 27d1 bne 0x808fdbe
| ||||||| 0x0808fd6e dff80004 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd72 dff83415 ldr.w r1, [0x080902ae] ; [0x80902ac:4]=0x20004a14 md380_dfu_target_adr
| ||||||| 0x0808fd76 0988 ldrh r1, [r1]
| ||||||| 0x0808fd78 89b2 uxth r1, r1
| ||||||| 0x0808fd7a 8909 lsrs r1, r1, 6
| ||||||| 0x0808fd7c c170 strb r1, [r0, 3]
| ||||||| 0x0808fd7e dff8f003 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd82 0021 movs r1, 0
| ||||||| 0x0808fd84 0171 strb r1, [r0, 4]
| ||||||| 0x0808fd86 dff8e803 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd8a 0021 movs r1, 0
| ||||||| 0x0808fd8c 4171 strb r1, [r0, 5]
| ||||||| 0x0808fd8e dff8e003 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd92 0021 movs r1, 0
| ||||||| 0x0808fd94 8171 strb r1, [r0, 6]
| ||||||| 0x0808fd96 dff8d803 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fd9a 0021 movs r1, 0
| ||||||| 0x0808fd9c c171 strb r1, [r0, 7]
| ||||||| 0x0808fd9e dff8d003 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fda2 0021 movs r1, 0
| ||||||| 0x0808fda4 0172 strb r1, [r0, 8]
| ||||||| 0x0808fda6 dff8d404 ldr.w r0, [0x08090282] ; [0x8090280:4]=0x2001e4a4
| ||||||| 0x0808fdaa dff8c413 ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fdae c978 ldrb r1, [r1, 3]
| ||||||| 0x0808fdb0 4170 strb r1, [r0, 1]
| ||||||| 0x0808fdb2 dff8bc03 ldr.w r0, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fdb6 c078 ldrb r0, [r0, 3]
| ||||||| 0x0808fdb8 dff8e014 ldr.w r1, [0x080902a0] ; [0x80902a0:4]=0x2001e7f6
| ||||||| 0x0808fdbc 0870 strb r0, [r1]
| --------> 0x0808fdbe 0b22 movs r2, 0xb ; 11
| ||||||| 0x0808fdc0 dff8ac13 ldr.w r1, [func_90174] ; [0x8090174:4]=0x2201b580
| ||||||| 0x0808fdc4 2000 movs r0, r4
| ||||||| 0x0808fdc6 c9f79cfe bl usb_send_packet
| ========< 0x0808fdca 8ae0 b 0x808fee2
| |||`----> 0x0808fdcc 4948 ldr r0, [0x0808fef4] ; [0x808fef4:4]=0x2001e758 md380_packetlen
| ||| ||| 0x0808fdce 0068 ldr r0, [r0]
| ||| ||| 0x0808fdd0 0428 cmp r0, 4 ; 4
| |||,====< 0x0808fdd2 01d3 blo 0x808fdd8
| ||||||| 0x0808fdd4 0220 movs r0, 2 ; 2
| ========< 0x0808fdd6 00e0 b 0x808fdda
| |||`----> 0x0808fdd8 0920 movs r0, 9 ; 9
| --------> 0x0808fdda 4449 ldr r1, [0x0808feee] ; [0x808feec:4]=0x2001e962 md380_dfu_state
| ||| ||| 0x0808fddc 0870 strb r0, [r1]
| ||| ||| 0x0808fdde dff82803 ldr.w r0, [0x0809010e] ; [0x809010c:4]=0x78004868
| ||| ||| 0x0808fde2 4249 ldr r1, [0x0808feee] ; [0x808feec:4]=0x2001e962 md380_dfu_state
| ||| ||| 0x0808fde4 0978 ldrb r1, [r1]
| ||| ||| 0x0808fde6 0171 strb r1, [r0, 4]
| ||| ||| 0x0808fde8 dff81c03 ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||| ||| 0x0808fdec 0021 movs r1, 0
| ||| ||| 0x0808fdee 4170 strb r1, [r0, 1]
| ||| ||| 0x0808fdf0 dff81403 ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||| ||| 0x0808fdf4 0021 movs r1, 0
| ||| ||| 0x0808fdf6 8170 strb r1, [r0, 2]
| ||| ||| 0x0808fdf8 dff80c03 ldr.w r0, [func_9010c] ; [0x809010c:4]=0x78004868
| ||| ||| 0x0808fdfc 0021 movs r1, 0
| ||| ||| 0x0808fdfe c170 strb r1, [r0, 3]
| ||| ||| 0x0808fe00 dff86c03 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||| ||| 0x0808fe04 0021 movs r1, 0
| ||| ||| 0x0808fe06 0170 strb r1, [r0]
| ||| ||| 0x0808fe08 dff86403 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||| ||| 0x0808fe0c 2121 movs r1, 0x21 ; '!' ; 33
| ||| ||| 0x0808fe0e 4170 strb r1, [r0, 1]
| ||| ||| 0x0808fe10 dff85c03 ldr.w r0, [func_90174] ; [0x8090174:4]=0x2201b580
| ||| ||| 0x0808fe14 4121 movs r1, 0x41 ; 'A' ; 65
| ||| ||| 0x0808fe16 8170 strb r1, [r0, 2]
| ||| ||| 0x0808fe18 0322 movs r2, 3 ; 3
| ||| ||| 0x0808fe1a dff85413 ldr.w r1, [0x08090176] ; [0x8090174:4]=0x2201b580
| ||| ||| 0x0808fe1e 2000 movs r0, r4
| ||| ||| 0x0808fe20 c9f76ffe bl usb_send_packet
| |||,====< 0x0808fe24 5de0 b 0x808fee2
| |||||`--> 0x0808fe26 324a ldr r2, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||| | 0x0808fe28 1268 ldr r2, [r2]
| ||||| | 0x0808fe2a 022a cmp r2, 2 ; 2
| |||||,==< 0x0808fe2c 2bd3 blo 0x808fe86
| ||||||| 0x0808fe2e 2f49 ldr r1, [0x0808feee] ; [0x808feec:4]=0x2001e962 md380_dfu_state
| ||||||| 0x0808fe30 0922 movs r2, 9 ; 9
| ||||||| 0x0808fe32 0a70 strb r2, [r1]
| ||||||| 0x0808fe34 b449 ldr r1, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808fe36 2d4a ldr r2, [0x0808feee] ; [0x808feec:4]=0x2001e962 md380_dfu_state
| ||||||| 0x0808fe38 1278 ldrb r2, [r2]
| ||||||| 0x0808fe3a 0a71 strb r2, [r1, 4]
| ||||||| 0x0808fe3c b249 ldr r1, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808fe3e 0022 movs r2, 0
| ||||||| 0x0808fe40 4a70 strb r2, [r1, 1]
| ||||||| 0x0808fe42 b149 ldr r1, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808fe44 0022 movs r2, 0
| ||||||| 0x0808fe46 8a70 strb r2, [r1, 2]
| ||||||| 0x0808fe48 af49 ldr r1, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808fe4a 0022 movs r2, 0
| ||||||| 0x0808fe4c ca70 strb r2, [r1, 3]
| ||||||| 0x0808fe4e 2849 ldr r1, [0x0808fef2] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| ||||||| 0x0808fe50 0968 ldr r1, [r1]
| ||||||| 0x0808fe52 891e subs r1, r1, 2
| ||||||| 0x0808fe54 4ff48062 mov.w r2, 0x400 ; 1024
| ||||||| 0x0808fe58 dff85034 ldr.w r3, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| ||||||| 0x0808fe5c 1b68 ldr r3, [r3]
| ||||||| 0x0808fe5e 02fb0132 mla r2, r2, r1, r3
| ||||||| 0x0808fe62 dff82814 ldr.w r1, [0x08090292] ; [0x8090290:4]=0x2001e69c
| ||||||| 0x0808fe66 0978 ldrb r1, [r1]
| ||||||| 0x0808fe68 3029 cmp r1, 0x30 ; '0' ; 48
| ========< 0x0808fe6a 04d3 blo 0x808fe76
| ||||||| 0x0808fe6c 2148 ldr r0, [0x0808fef4] ; [0x808fef4:4]=0x2001e758 md380_packetlen
| ||||||| 0x0808fe6e 0168 ldr r1, [r0]
| ||||||| 0x0808fe70 1000 movs r0, r2
| ||||||| 0x0808fe72 00f0a5fa bl usb_dfu_read
| --------> 0x0808fe76 1f49 ldr r1, [0x0808fef6] ; [0x808fef4:4]=0x2001e758 md380_packetlen
| ||||||| 0x0808fe78 0a68 ldr r2, [r1]
| ||||||| 0x0808fe7a 92b2 uxth r2, r2
| ||||||| 0x0808fe7c 0100 movs r1, r0
| ||||||| 0x0808fe7e 2000 movs r0, r4
| ||||||| 0x0808fe80 c9f73ffe bl usb_send_packet
| ========< 0x0808fe84 2de0 b 0x808fee2
| |||||`--> 0x0808fe86 1948 ldr r0, [0x0808feee] ; [0x808feec:4]=0x2001e962 md380_dfu_state
| ||||| | 0x0808fe88 0f22 movs r2, 0xf ; 15
| ||||| | 0x0808fe8a 0270 strb r2, [r0]
| ||||| | 0x0808fe8c 9e48 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||| | 0x0808fe8e 174a ldr r2, [0x0808feee] ; [0x808feec:4]=0x2001e962 md380_dfu_state
| ||||| | 0x0808fe90 1278 ldrb r2, [r2]
| ||||| | 0x0808fe92 0271 strb r2, [r0, 4]
| ||||| | 0x0808fe94 9c48 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||| | 0x0808fe96 0022 movs r2, 0
| ||||| | 0x0808fe98 4270 strb r2, [r0, 1]
| ||||| | 0x0808fe9a 9b48 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||||| | 0x0808fe9c 0022 movs r2, 0
| ||||| | 0x0808fe9e 8270 strb r2, [r0, 2]
| ||||| | 0x0808fea0 9948 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||| | 0x0808fea2 0022 movs r2, 0
| ||||| | 0x0808fea4 c270 strb r2, [r0, 3]
| ||||| | 0x0808fea6 2000 movs r0, r4
| ||||| | 0x0808fea8 c9f7f0fd bl func_59a8c
| |||||,==< 0x0808feac 19e0 b 0x808fee2
| ||||`---> 0x0808feae 1148 ldr r0, [0x0808fef6] ; [0x808fef4:4]=0x2001e758 md380_packetlen
| |||| || 0x0808feb0 0022 movs r2, 0
| |||| || 0x0808feb2 0260 str r2, [r0]
| |||| || 0x0808feb4 0e48 ldr r0, [0x0808fef0] ; [0x808fef0:4]=0x2001e754 md380_blockadr
| |||| || 0x0808feb6 0022 movs r2, 0
| |||| || 0x0808feb8 0260 str r2, [r0]
| |||| || 0x0808feba 2000 movs r0, r4
| |||| || 0x0808febc c9f7e6fd bl func_59a8c
| ||||,===< 0x0808fec0 0fe0 b 0x808fee2
| ||||||`-> 0x0808fec2 0a48 ldr r0, [0x0808feee] ; [0x808feec:4]=0x2001e962 md380_dfu_state
| |||||| 0x0808fec4 0221 movs r1, 2 ; 2
| |||||| 0x0808fec6 0170 strb r1, [r0]
| |||||| 0x0808fec8 8f48 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| |||||| 0x0808feca 0021 movs r1, 0
| |||||| 0x0808fecc 4170 strb r1, [r0, 1]
| |||||| 0x0808fece 8e48 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| |||||| 0x0808fed0 0021 movs r1, 0
| |||||| 0x0808fed2 8170 strb r1, [r0, 2]
| |||||| 0x0808fed4 8c48 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| |||||| 0x0808fed6 0021 movs r1, 0
| |||||| 0x0808fed8 c170 strb r1, [r0, 3]
| |||||| 0x0808feda 8b48 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| |||||| 0x0808fedc 0349 ldr r1, [0x0808feec] ; [0x808feec:4]=0x2001e962 md380_dfu_state
| |||||| 0x0808fede 0978 ldrb r1, [r1]
| |||||| 0x0808fee0 0171 strb r1, [r0, 4]
\ ``````--> 0x0808fee2 31bd pop {r0, r4, r5, pc}
/ (fcn) usb_dfu_write 80
| Caller: usb_dnld_handle
| usb_dfu_write ();
| 0x08090370 38b5 push {r3, r4, r5, lr}
| 0x08090372 0400 movs r4, r0
| 0x08090374 0d00 movs r5, r1
| 0x08090376 2000 movs r0, r4
| 0x08090378 00f06df8 bl func_90456
| 0x0809037c 0200 movs r2, r0
| 0x0809037e 4248 ldr r0, [0x0809048a] ; [0x8090488:4]=0x800c000 VectorTable
| 0x08090380 201a subs r0, r4, r0
| 0x08090382 b0f5742f cmp.w r0, 0xf4000
| ,=< 0x08090386 01d2 bhs 0x809038c
| | 0x08090388 0120 movs r0, 1 ; 1
| ,==< 0x0809038a 00e0 b 0x809038e
| |`-> 0x0809038c 0020 movs r0, 0
| `--> 0x0809038e c0b2 uxtb r0, r0
| 0x08090390 0028 cmp r0, 0
| ,=< 0x08090392 01d0 beq 0x8090398
| | 0x08090394 0120 movs r0, 1 ; 1
| ,==< 0x08090396 12e0 b 0x80903be
| |`-> 0x08090398 022a cmp r2, 2 ; 2
| |,=< 0x0809039a 0fd2 bhs 0x80903bc
| || 0x0809039c 3948 ldr r0, [0x08090484] ; [0x8090484:4]=0x200049c4
| || 0x0809039e 50f82200 ldr.w r0, [r0, r2, lsl 2]
| || 0x080903a2 0069 ldr r0, [r0, 0x10]
| || 0x080903a4 0028 cmp r0, 0
| ,===< 0x080903a6 07d0 beq 0x80903b8
| ||| 0x080903a8 2900 movs r1, r5
| ||| 0x080903aa 2000 movs r0, r4
| ||| 0x080903ac 354b ldr r3, [0x08090484] ; [0x8090484:4]=0x200049c4
| ||| 0x080903ae 53f82220 ldr.w r2, [r3, r2, lsl 2]
| ||| 0x080903b2 1269 ldr r2, [r2, 0x10]
| ||| 0x080903b4 9047 blx r2
| ,====< 0x080903b6 02e0 b 0x80903be
| |`---> 0x080903b8 0120 movs r0, 1 ; 1
| |,===< 0x080903ba 00e0 b 0x80903be
| |||`-> 0x080903bc 0120 movs r0, 1 ; 1
\ ```--> 0x080903be 32bd pop {r1, r4, r5, pc}
/ (fcn) usb_dfu_read 54
| Caller: usb_upld_handle
| usb_dfu_read ();
| 0x080903c0 38b5 push {r3, r4, r5, lr}
| 0x080903c2 0400 movs r4, r0
| 0x080903c4 0d00 movs r5, r1
| 0x080903c6 2000 movs r0, r4
| 0x080903c8 00f045f8 bl func_90456
| 0x080903cc 0200 movs r2, r0
| 0x080903ce 022a cmp r2, 2 ; 2
| ,=< 0x080903d0 0fd2 bhs 0x80903f2
| | 0x080903d2 2c48 ldr r0, [0x08090486] ; [0x8090484:4]=0x200049c4
| | 0x080903d4 50f82200 ldr.w r0, [r0, r2, lsl 2]
| | 0x080903d8 4069 ldr r0, [r0, 0x14]
| | 0x080903da 0028 cmp r0, 0
| ,==< 0x080903dc 07d0 beq 0x80903ee
| || 0x080903de 2900 movs r1, r5
| || 0x080903e0 2000 movs r0, r4
| || 0x080903e2 284b ldr r3, [0x08090486] ; [0x8090484:4]=0x200049c4
| || 0x080903e4 53f82220 ldr.w r2, [r3, r2, lsl 2]
| || 0x080903e8 5269 ldr r2, [r2, 0x14]
| || 0x080903ea 9047 blx r2
| ,===< 0x080903ec 02e0 b 0x80903f4
| |`--> 0x080903ee 2748 ldr r0, [0x0809048e] ; [0x809048c:4]=0x2001ae74 md380_packet
| |,==< 0x080903f0 00e0 b 0x80903f4
| ||`-> 0x080903f2 2648 ldr r0, [0x0809048e] ; [0x809048c:4]=0x2001ae74 md380_packet
\ ``--> 0x080903f4 32bd pop {r1, r4, r5, pc}
/ (fcn) usb_serialnumber 34
| usb_serialnumber ();
| 0x0809662e 80b5 push {r7, lr}
| 0x08096630 c0b2 uxtb r0, r0
| 0x08096632 0028 cmp r0, 0
| ,=< 0x08096634 05d1 bne 0x8096642
| | 0x08096636 0a00 movs r2, r1
| | 0x08096638 1849 ldr r1, [0x0809669c] ; [0x809669c:4]=0x2001d504 md380_usbstring
| | 0x0809663a 1c48 ldr r0, [0x080966ae] ; [0x80966ac:4]=0x80f8fe4 s_000000000010B
| | 0x0809663c c3f734fa bl func_59aa8
| ,==< 0x08096640 04e0 b 0x809664c
| |`-> 0x08096642 0a00 movs r2, r1
| | 0x08096644 1549 ldr r1, [0x0809669c] ; [0x809669c:4]=0x2001d504 md380_usbstring
| | 0x08096646 1a48 ldr r0, [0x080966b2] ; [0x80966b0:4]=0x80f8ff4 s_000000000010C
| | 0x08096648 c3f72efa bl func_59aa8
| `--> 0x0809664c 1348 ldr r0, [0x0809669c] ; [0x809669c:4]=0x2001d504 md380_usbstring
\ 0x0809664e 02bd pop {r1, pc}
/ (fcn) GPIO_Init 166
| Caller: func_477a4 init_more_and_start_watchdog func_499e2 SomethingWithGPIOC_TIM8_TIM7
| kb_scan_matrix_3 kbscan_cfg_K1K2K3_as_inputs_with_pull_up ConfigureLCDPort kb_scan_matrix_4
| func_46f8e kbscan_set_LCD_data_LOW func_4dc0c_more_bitbang_io SomethingWithGPIOC_TIM7_Status
| func_48ade bp_tone_off func_591bc func_4915c bp_tone_on
| GPIO_Init ();
| 0x0802b748 30b4 push {r4, r5} ; in: R0=base address of a GPIO block
| 0x0802b74a 0022 movs r2, 0
| 0x0802b74c 0023 movs r3, 0
| 0x0802b74e 0024 movs r4, 0
| 0x0802b750 0025 movs r5, 0
| 0x0802b752 2a00 movs r2, r5
| ,=< 0x0802b754 47e0 b 0x802b7e6
| .--> 0x0802b756 0123 movs r3, 1 ; 1
| || 0x0802b758 9340 lsls r3, r2
| || 0x0802b75a 0c68 ldr r4, [r1] ; in: R1=address of a GPIO_InitStruct
| || 0x0802b75c 1c40 ands r4, r3 ; if same as in stm32f4xx_gpio.c, R4='GPIO_Pin'
| || 0x0802b75e 9c42 cmp r4, r3
| ,===< 0x0802b760 40d1 bne 0x802b7e4
| ||| 0x0802b762 0368 ldr r3, [r0]
| ||| 0x0802b764 0324 movs r4, 3 ; 3
| ||| 0x0802b766 1500 movs r5, r2
| ||| 0x0802b768 edb2 uxtb r5, r5
| ||| 0x0802b76a 6d00 lsls r5, r5, 1
| ||| 0x0802b76c ac40 lsls r4, r5
| ||| 0x0802b76e a343 bics r3, r4
| ||| 0x0802b770 0360 str r3, [r0] ; [R0+0] = GPIOx Mode Register
| ||| 0x0802b772 0368 ldr r3, [r0]
| ||| 0x0802b774 0c79 ldrb r4, [r1, 4] ; [R1+4] = GPIO_InitStruct.GPIO_Mode
| ||| 0x0802b776 1500 movs r5, r2
| ||| 0x0802b778 edb2 uxtb r5, r5
| ||| 0x0802b77a 6d00 lsls r5, r5, 1
| ||| 0x0802b77c ac40 lsls r4, r5
| ||| 0x0802b77e 2343 orrs r3, r4
| ||| 0x0802b780 0360 str r3, [r0]
| ||| 0x0802b782 0b79 ldrb r3, [r1, 4]
| ||| 0x0802b784 012b cmp r3, 1 ; 1
| ,====< 0x0802b786 02d0 beq 0x802b78e
| |||| 0x0802b788 0b79 ldrb r3, [r1, 4]
| |||| 0x0802b78a 022b cmp r3, 2 ; 2
| ,=====< 0x0802b78c 1ad1 bne 0x802b7c4
| |`----> 0x0802b78e 8368 ldr r3, [r0, 8] ; [R0+8] = GPIOx Output Speed Register
| | ||| 0x0802b790 0324 movs r4, 3 ; 3
| | ||| 0x0802b792 1500 movs r5, r2
| | ||| 0x0802b794 edb2 uxtb r5, r5
| | ||| 0x0802b796 6d00 lsls r5, r5, 1
| | ||| 0x0802b798 ac40 lsls r4, r5
| | ||| 0x0802b79a a343 bics r3, r4
| | ||| 0x0802b79c 8360 str r3, [r0, 8]
| | ||| 0x0802b79e 8368 ldr r3, [r0, 8]
| | ||| 0x0802b7a0 4c79 ldrb r4, [r1, 5] ; [R1+5] = GPIO_InitStruct.GPIO_Speed
| | ||| 0x0802b7a2 1500 movs r5, r2
| | ||| 0x0802b7a4 edb2 uxtb r5, r5
| | ||| 0x0802b7a6 6d00 lsls r5, r5, 1
| | ||| 0x0802b7a8 ac40 lsls r4, r5
| | ||| 0x0802b7aa 2343 orrs r3, r4
| | ||| 0x0802b7ac 8360 str r3, [r0, 8]
| | ||| 0x0802b7ae 4368 ldr r3, [r0, 4] ; [R0+4] = GPIOx Output Type Register
| | ||| 0x0802b7b0 0124 movs r4, 1 ; 1
| | ||| 0x0802b7b2 9440 lsls r4, r2
| | ||| 0x0802b7b4 a343 bics r3, r4
| | ||| 0x0802b7b6 4360 str r3, [r0, 4]
| | ||| 0x0802b7b8 4368 ldr r3, [r0, 4]
| | ||| 0x0802b7ba 8c79 ldrb r4, [r1, 6] ; [R1+7] = GPIO_InitStruct.GPIO_PuPd
| | ||| 0x0802b7bc 9440 lsls r4, r2
| | ||| 0x0802b7be a4b2 uxth r4, r4
| | ||| 0x0802b7c0 2343 orrs r3, r4
| | ||| 0x0802b7c2 4360 str r3, [r0, 4]
| `-----> 0x0802b7c4 c368 ldr r3, [r0, 0xc] ; [R0+0xC] = GPIOx PullUp/PullDown Reg
| ||| 0x0802b7c6 0324 movs r4, 3 ; 3
| ||| 0x0802b7c8 1500 movs r5, r2
| ||| 0x0802b7ca edb2 uxtb r5, r5
| ||| 0x0802b7cc 6d00 lsls r5, r5, 1
| ||| 0x0802b7ce ac40 lsls r4, r5
| ||| 0x0802b7d0 a343 bics r3, r4
| ||| 0x0802b7d2 c360 str r3, [r0, 0xc]
| ||| 0x0802b7d4 c368 ldr r3, [r0, 0xc]
| ||| 0x0802b7d6 cc79 ldrb r4, [r1, 7]
| ||| 0x0802b7d8 1500 movs r5, r2
| ||| 0x0802b7da edb2 uxtb r5, r5
| ||| 0x0802b7dc 6d00 lsls r5, r5, 1
| ||| 0x0802b7de ac40 lsls r4, r5
| ||| 0x0802b7e0 2343 orrs r3, r4
| ||| 0x0802b7e2 c360 str r3, [r0, 0xc]
| `---> 0x0802b7e4 521c adds r2, r2, 1
| |`-> 0x0802b7e6 102a cmp r2, 0x10 ; 16
| `==< 0x0802b7e8 b5d3 blo 0x802b756 ; loop for multiple pins of the same port
| 0x0802b7ea 30bc pop {r4, r5}
\ 0x0802b7ec 7047 bx lr
/ (fcn) GPIO_ReadInputDataBit 22
| Caller: Read_Channel_Switch_maybe SPI3_Handler func_4f6de some_bitband_io func_4f68a_polls_EXT_PTT
| kb_handler_sub1 md380_f_4102 Volume_Menu check_for_ptt_switch
| GPIO_ReadInputDataBit ();
| 0x0802b7ee 0022 movs r2, 0
| 0x0802b7f0 0069 ldr r0, [r0, 0x10] ; in: R0=base address of a GPIO block, +0x10 = 'IDR'
| 0x0802b7f2 89b2 uxth r1, r1 ; zero-extend to 32 bits (2nd arg, R1, is UINT16)
| 0x0802b7f4 0842 tst r0, r1 ; R0=value read from GPIO InputDataRegister
| 0x0802b7f6 01d0 beq 0x802b7fc
| 0x0802b7f8 0122 movs r2, 1 ; 1
| ,=< 0x0802b7fa 00e0 b 0x802b7fe
| | 0x0802b7fc 0022 movs r2, 0
| `-> 0x0802b7fe 1000 movs r0, r2
| 0x0802b800 c0b2 uxtb r0, r0 ; return value in R0 looks like BOOLEAN
\ 0x0802b802 7047 bx lr
/ (fcn) GPIO_SetBits 4
| Caller: func_474a0_heavy_bitbanging gfx_put_pixel func_47802 Start some_func_post
| md380_f_4520 func_477a4 gfx_write_pixel_2 SomethingWithGPIOC_TIM7_Status
| DeAssertLCDReset md380_spiflash_disable SomethingWithGPIOC_and_Backlight_Timer update_scr_17
| update_scr_16 some_bitband_io draw_botline_text update_scr_35 func_4dc0c_more_bitbang_io
| scr_mode_stable func_49b40 update_scr_29 update_scr_20
| GPIO_SetBits ();
| 0x0802b80a 0183 strh r1, [r0, 0x18]
\ 0x0802b80c 7047 bx lr
/ (fcn) GPIO_ResetBits 4
| Caller: some_func_pend gfx_write_pixel_2 scr_mode_stable func_49b30 func_474a0_heavy_bitbanging
| some_bitband_io md380_spiflash_enable func_47802 func_4dc0c_more_bitbang_io
| kb_scan_matrix_4 gfx_put_pixel kbscan_set_LCD_data_LOW DrawSomethingThenBitBangIO
| c5000_wr_60_5
| GPIO_ResetBits ();
| 0x0802b80e 4183 strh r1, [r0, 0x1a]
\ 0x0802b810 7047 bx lr
/ (fcn) GPIO_WriteBit 14
| Caller: func_4fe14_monster_accessing_C5000 c5000_wr_60_1 func_3fda8 c5000_some3 TimerIRQ_Sub8
| EXTI2_IRQHandler LED_Process c5000_wr_60_3 func_31fe2 func_3f8f2_init_PLL_and_C5000
| TimerIRQ_Sub1 WaitAndDoSomethingWithGPIOC c5000_iffreq_init func_31e8e bp_tone_off
| c5000_wr_60_5
| GPIO_WriteBit ();
| 0x0802b812 d2b2 uxtb r2, r2 ; in: R2='BitVal', 0=RESET, 1=SET
| 0x0802b814 002a cmp r2, 0
| ,=< 0x0802b816 01d0 beq 0x802b81c ; in: R1='GPIO_Pin', 0..15
| | 0x0802b818 0183 strh r1, [r0, 0x18] ; in: R0=GPIOx base address
| ,==< 0x0802b81a 00e0 b 0x802b81e
| |`-> 0x0802b81c 4183 strh r1, [r0, 0x1a]
\ `--> 0x0802b81e 7047 bx lr
/ (fcn) GPIO_ReadInputData 6
| Caller: kb_handler_sub1
| GPIO_ReadInputData ();
| 0x0802b804 0069 ldr r0, [r0, 0x10] ; in: R0=GPIOx base address (or something completely different?)
| 0x0802b806 80b2 uxth r0, r0 ; out: R0=value from InputDataRegister (?)
\ 0x0802b808 7047 bx lr
/ (fcn) GPIO_PinAFConfig 82
| Caller: bp_tone_on func_499e2 func_591bc SomethingWithGPIOC_TIM8_TIM7 func_48ade
| ConfigureLCDPort func_46f8e func_4915c
| GPIO_PinAFConfig ();
| 0x0802b820 f0b4 push {r4, r5, r6, r7}
| 0x0802b822 0023 movs r3, 0
| 0x0802b824 0024 movs r4, 0
| 0x0802b826 d2b2 uxtb r2, r2 ; in: R2=Alternate Function number
| 0x0802b828 11f00705 ands r5, r1, 7 ; (GPIO_PinSource & 0x07) * 4 ..
| 0x0802b82c edb2 uxtb r5, r5
| 0x0802b82e ad00 lsls r5, r5, 2
| 0x0802b830 aa40 lsls r2, r5
| 0x0802b832 1300 movs r3, r2
| 0x0802b834 89b2 uxth r1, r1
| 0x0802b836 ca10 asrs r2, r1, 3
| 0x0802b838 10eb8202 adds.w r2, r0, r2, lsl 2
| 0x0802b83c 89b2 uxth r1, r1
| 0x0802b83e cd10 asrs r5, r1, 3
| 0x0802b840 10eb8505 adds.w r5, r0, r5, lsl 2 ; in: R0=GPIOx base address
| 0x0802b844 2d6a ldr r5, [r5, 0x20]
| 0x0802b846 0f26 movs r6, 0xf ; 15
| 0x0802b848 11f00707 ands r7, r1, 7
| 0x0802b84c ffb2 uxtb r7, r7
| 0x0802b84e bf00 lsls r7, r7, 2
| 0x0802b850 be40 lsls r6, r7
| 0x0802b852 b543 bics r5, r6
| 0x0802b854 1562 str r5, [r2, 0x20]
| 0x0802b856 89b2 uxth r1, r1
| 0x0802b858 ca10 asrs r2, r1, 3
| 0x0802b85a 10eb8202 adds.w r2, r0, r2, lsl 2
| 0x0802b85e 126a ldr r2, [r2, 0x20]
| 0x0802b860 1a43 orrs r2, r3
| 0x0802b862 1400 movs r4, r2
| 0x0802b864 89b2 uxth r1, r1
| 0x0802b866 c910 asrs r1, r1, 3
| 0x0802b868 10eb8100 adds.w r0, r0, r1, lsl 2
| 0x0802b86c 0462 str r4, [r0, 0x20]
| 0x0802b86e f0bc pop {r4, r5, r6, r7}
\ 0x0802b870 7047 bx lr
/ (fcn) TIM_GetCounter 4
| Caller: ev5_rest
| TIM_GetCounter ();
| 0x08043aa8 406a ldr r0, [r0, 0x24]
\ 0x08043aaa 7047 bx lr
/ (fcn) TIM_SetCounter 4
| Caller: EXTI2_IRQHandler DMA1_Stream2_Sub TIM4_IRQHandler func_49ca8
| TIM_SetCounter ();
| 0x08043aa0 4162 str r1, [r0, 0x24]
\ 0x08043aa2 7047 bx lr
/ (fcn) TIM_SetAutoreload 4
| Caller: EXTI2_IRQHandler SomethingWithTIM7_RadioStatus1 Something2_TIM7_RadioStatus1 TIM4_IRQHandler
| func_49ca8
| TIM_SetAutoreload ();
| 0x08043aa4 c162 str r1, [r0, 0x2c]
\ 0x08043aa6 7047 bx lr
/ (fcn) TIM_ClearFlag 8
| Caller: TIM3_IRQHandler func_49ca8 TIM2_IRQHandler TIM6_DAC_IRQHandler TIM5_IRQHandler
| TIM4_IRQHandler TIM7_DAC_IRQHandler TIM8_UP_TIM13_IRQHandler
| TIM_ClearFlag ();
| 0x08043dca 89b2 uxth r1, r1 ; [in] R1=bit to clear, R0= TIMx base addr
| 0x08043dcc c943 mvns r1, r1 ; Move Negative (complement)
| 0x08043dce 0182 strh r1, [r0, 0x10] ; 'clear pending' in TIMx StatusReg
\ 0x08043dd0 7047 bx lr
/ (fcn) c5000_spi0_writereg 38
| Caller: task_468f8 c5000_set_local_addr func_31e8e c5000_set_local_addr2 dmr_CSBK_handler
| msg_process_sms2 func_43824_wr_C5000 func_31fe2 c5000_wr_60_1 c5000_wr_60_3
| c5000_wr_60_5 c5000_wr_60_4 Beep_Process CalledFromLongDispatcher func_3fda8
| c5000_some2 c5000_some3 func_43490_wr_C5000 c5000_iffreq_init c5000_strange_init
| func_4fe14_monster_accessing_C5000 func_434e4_wr_C5000 c5000_pll_init c5000_init_lowregs
| c5000_spi0_writereg ();
| 0x0803ff84 38b5 push {r3, r4, r5, lr}
| 0x0803ff86 0400 movs r4, r0
| 0x0803ff88 0d00 movs r5, r1
| 0x0803ff8a 0df0d4fe bl some_func_pend
| 0x0803ff8e 0020 movs r0, 0
| 0x0803ff90 8df80000 strb.w r0, [sp]
| 0x0803ff94 8df80140 strb.w r4, [sp, 1]
| 0x0803ff98 8df80250 strb.w r5, [sp, 2]
| 0x0803ff9c 0321 movs r1, 3 ; 3
| 0x0803ff9e 00a8 add r0, sp, 0
| 0x0803ffa0 0df0a9fe bl some_bitband_io_range
| 0x0803ffa4 0df0d3fe bl some_func_post
\ 0x0803ffa8 31bd pop {r0, r4, r5, pc}
/ (fcn) c5000_spi0_readreg 42
| c5000_spi0_readreg ();
| 0x0803ffd0 38b5 push {r3, r4, r5, lr}
| 0x0803ffd2 0400 movs r4, r0
| 0x0803ffd4 0d00 movs r5, r1
| 0x0803ffd6 0df0aefe bl some_func_pend
| 0x0803ffda 8020 movs r0, 0x80 ; 128
| 0x0803ffdc 8df80000 strb.w r0, [sp]
| 0x0803ffe0 8df80140 strb.w r4, [sp, 1]
| 0x0803ffe4 0221 movs r1, 2 ; 2
| 0x0803ffe6 00a8 add r0, sp, 0
| 0x0803ffe8 0df085fe bl some_bitband_io_range
| 0x0803ffec 0121 movs r1, 1 ; 1
| 0x0803ffee 2800 movs r0, r5
| 0x0803fff0 0df08ffe bl SPI0_ReadReg_Sub1
| 0x0803fff4 0df0abfe bl some_func_post
\ 0x0803fff8 31bd pop {r0, r4, r5, pc}
/ (fcn) c5000_spi0_writereg_1 38
| Caller: c5000_some2 F_858 func_3da68 func_43824_wr_C5000 dmr_call_end c5000_iffreq_init
| event_36 dmr_before_squelch
| c5000_spi0_writereg_1 ();
| 0x0803ffaa 38b5 push {r3, r4, r5, lr}
| 0x0803ffac 0400 movs r4, r0
| 0x0803ffae 0d00 movs r5, r1
| 0x0803ffb0 0df0c1fe bl some_func_pend
| 0x0803ffb4 0120 movs r0, 1 ; 1
| 0x0803ffb6 8df80000 strb.w r0, [sp]
| 0x0803ffba 8df80140 strb.w r4, [sp, 1]
| 0x0803ffbe 8df80250 strb.w r5, [sp, 2]
| 0x0803ffc2 0321 movs r1, 3 ; 3
| 0x0803ffc4 00a8 add r0, sp, 0
| 0x0803ffc6 0df096fe bl some_bitband_io_range
| 0x0803ffca 0df0c0fe bl some_func_post
\ 0x0803ffce 31bd pop {r0, r4, r5, pc}
/ (fcn) c5000_spi0_readreg_maybe 46
| Caller: func_434e4_wr_C5000 func_3fda8 c5000_iffreq_init
| c5000_spi0_readreg_maybe ();
| 0x0803fffa f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x0803fffc 0400 movs r4, r0
| 0x0803fffe 0d00 movs r5, r1
| 0x08040000 1600 movs r6, r2
| 0x08040002 1f00 movs r7, r3
| 0x08040004 0df097fe bl some_func_pend
| 0x08040008 8df80040 strb.w r4, [sp]
| 0x0804000c 8df80150 strb.w r5, [sp, 1]
| 0x08040010 0221 movs r1, 2 ; 2
| 0x08040012 00a8 add r0, sp, 0
| 0x08040014 0df06ffe bl some_bitband_io_range
| 0x08040018 3900 movs r1, r7
| 0x0804001a 89b2 uxth r1, r1
| 0x0804001c 3000 movs r0, r6
| 0x0804001e 0df06afe bl some_bitband_io_range
| 0x08040022 0df094fe bl some_func_post
\ 0x08040026 f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) c5000_set_local_addr 84
| Caller: CalledFromLongDispatcher c5000_wr_60_5
| c5000_set_local_addr ();
| 0x0803cae0 80b5 push {r7, lr}
| 0x0803cae2 dff8a404 ldr.w r0, [0x0803cf8e] ; [0x803cf8c:4]=0x2001e8bc
| 0x0803cae6 0168 ldr r1, [r0]
| 0x0803cae8 c9b2 uxtb r1, r1
| 0x0803caea 6120 movs r0, 0x61 ; 'a' ; 97
| 0x0803caec 03f04afa bl c5000_spi0_writereg
| 0x0803caf0 dff89404 ldr.w r0, [0x0803cf8c] ; [0x803cf8c:4]=0x2001e8bc
| 0x0803caf4 0068 ldr r0, [r0]
| 0x0803caf6 010a lsrs r1, r0, 8
| 0x0803caf8 c9b2 uxtb r1, r1
| 0x0803cafa 6220 movs r0, 0x62 ; 'b' ; 98
| 0x0803cafc 03f042fa bl c5000_spi0_writereg
| 0x0803cb00 dff88404 ldr.w r0, [0x0803cf8c] ; [0x803cf8c:4]=0x2001e8bc
| 0x0803cb04 0068 ldr r0, [r0]
| 0x0803cb06 010c lsrs r1, r0, 0x10
| 0x0803cb08 c9b2 uxtb r1, r1
| 0x0803cb0a 6320 movs r0, 0x63 ; 'c' ; 99
| 0x0803cb0c 03f03afa bl c5000_spi0_writereg
| 0x0803cb10 f5f795fb bl func_3223e
| 0x0803cb14 dff87404 ldr.w r0, [0x0803cf90] ; [0x803cf90:4]=0x2001e8bd
| 0x0803cb18 1021 movs r1, 0x10 ; 16
| 0x0803cb1a 0170 strb r1, [r0]
| 0x0803cb1c dff87004 ldr.w r0, [0x0803cf94] ; [0x803cf94:4]=0x2001e8be
| 0x0803cb20 0321 movs r1, 3 ; 3
| 0x0803cb22 0170 strb r1, [r0]
| 0x0803cb24 dff86c04 ldr.w r0, [0x0803cf98] ; [0x803cf98:4]=0x2001e8f2
| 0x0803cb28 0121 movs r1, 1 ; 1
| 0x0803cb2a 0170 strb r1, [r0]
| 0x0803cb2c 5e48 ldr r0, [0x0803cca8] ; [0x803cca8:4]=0x2001e894
| 0x0803cb2e 0721 movs r1, 7 ; 7
| 0x0803cb30 0170 strb r1, [r0]
\ 0x0803cb32 01bd pop {r0, pc}
/ (fcn) c5000_set_local_addr2 96
| Caller: msg_handle_type_11 msg_handle_type_21 msg_handle_type_other
| c5000_set_local_addr2 ();
| 0x0803cb34 80b5 push {r7, lr}
| 0x0803cb36 dff85004 ldr.w r0, [0x0803cf8e] ; [0x803cf8c:4]=0x2001e8bc
| 0x0803cb3a 0168 ldr r1, [r0]
| 0x0803cb3c c9b2 uxtb r1, r1
| 0x0803cb3e 6120 movs r0, 0x61 ; 'a' ; 97
| 0x0803cb40 03f020fa bl c5000_spi0_writereg
| 0x0803cb44 dff84004 ldr.w r0, [0x0803cf8c] ; [0x803cf8c:4]=0x2001e8bc
| 0x0803cb48 0068 ldr r0, [r0]
| 0x0803cb4a 010a lsrs r1, r0, 8
| 0x0803cb4c c9b2 uxtb r1, r1
| 0x0803cb4e 6220 movs r0, 0x62 ; 'b' ; 98
| 0x0803cb50 03f018fa bl c5000_spi0_writereg
| 0x0803cb54 dff83004 ldr.w r0, [0x0803cf8c] ; [0x803cf8c:4]=0x2001e8bc
| 0x0803cb58 0068 ldr r0, [r0]
| 0x0803cb5a 010c lsrs r1, r0, 0x10
| 0x0803cb5c c9b2 uxtb r1, r1
| 0x0803cb5e 6320 movs r0, 0x63 ; 'c' ; 99
| 0x0803cb60 03f010fa bl c5000_spi0_writereg
| 0x0803cb64 f5f76bfb bl func_3223e
| 0x0803cb68 dff8640a ldr.w r0, [0x0803d5d4] ; [0x803d5d4:4]=0x2001e8bd
| 0x0803cb6c 0078 ldrb r0, [r0]
| 0x0803cb6e 0028 cmp r0, 0
| ,=< 0x0803cb70 04d0 beq 0x803cb7c
| | 0x0803cb72 dff81c04 ldr.w r0, [0x0803cf96] ; [0x803cf94:4]=0x2001e8be
| | 0x0803cb76 0021 movs r1, 0
| | 0x0803cb78 0170 strb r1, [r0]
| ,==< 0x0803cb7a 03e0 b 0x803cb84
| |`-> 0x0803cb7c dff81004 ldr.w r0, [0x0803cf94] ; [0x803cf94:4]=0x2001e8be
| | 0x0803cb80 0121 movs r1, 1 ; 1
| | 0x0803cb82 0170 strb r1, [r0]
| `--> 0x0803cb84 dff80c04 ldr.w r0, [0x0803cf98] ; [0x803cf98:4]=0x2001e8f2
| 0x0803cb88 0121 movs r1, 1 ; 1
| 0x0803cb8a 0170 strb r1, [r0]
| 0x0803cb8c 4648 ldr r0, [0x0803cca8] ; [0x803cca8:4]=0x2001e894
| 0x0803cb8e 0721 movs r1, 7 ; 7
| 0x0803cb90 0170 strb r1, [r0]
\ 0x0803cb92 01bd pop {r0, pc}
/ (fcn) c5000_some2 218
| Caller: func_3228e
| c5000_some2 ();
| 0x080402f8 80b5 push {r7, lr}
| 0x080402fa 8c21 movs r1, 0x8c ; 140
| 0x080402fc 0d20 movs r0, 0xd ; 13
| 0x080402fe fff741fe bl c5000_spi0_writereg
| 0x08040302 4421 movs r1, 0x44 ; 'D' ; 68
| 0x08040304 0e20 movs r0, 0xe ; 14
| 0x08040306 fff73dfe bl c5000_spi0_writereg
| 0x0804030a c821 movs r1, 0xc8 ; 200
| 0x0804030c 0f20 movs r0, 0xf ; 15
| 0x0804030e fff739fe bl c5000_spi0_writereg
| 0x08040312 0e21 movs r1, 0xe ; 14
| 0x08040314 2520 movs r0, 0x25 ; '%' ; 37
| 0x08040316 fff735fe bl c5000_spi0_writereg
| 0x0804031a fe21 movs r1, 0xfe ; 254
| 0x0804031c 2620 movs r0, 0x26 ; '&' ; 38
| 0x0804031e fff731fe bl c5000_spi0_writereg
| 0x08040322 ff21 movs r1, 0xff ; 255
| 0x08040324 8320 movs r0, 0x83 ; 131
| 0x08040326 fff72dfe bl c5000_spi0_writereg
| 0x0804032a 0021 movs r1, 0
| 0x0804032c 8720 movs r0, 0x87 ; 135
| 0x0804032e fff729fe bl c5000_spi0_writereg
| 0x08040332 fff793fe bl func_4005c
| 0x08040336 dff8780a ldr.w r0, [0x08040db6] ; [0x8040db4:4]=0x2001e89a
| 0x0804033a 0078 ldrb r0, [r0]
| 0x0804033c c0f38100 ubfx r0, r0, 2, 2
| 0x08040340 c0b2 uxtb r0, r0
| 0x08040342 0028 cmp r0, 0
| ,=< 0x08040344 04d0 beq 0x8040350
| | 0x08040346 3c21 movs r1, 0x3c ; '<' ; 60
| | 0x08040348 3420 movs r0, 0x34 ; '4' ; 52
| | 0x0804034a fff71bfe bl c5000_spi0_writereg
| ,==< 0x0804034e 03e0 b 0x8040358
| |`-> 0x08040350 3c21 movs r1, 0x3c ; '<' ; 60
| | 0x08040352 3420 movs r0, 0x34 ; '4' ; 52
| | 0x08040354 fff716fe bl c5000_spi0_writereg
| `--> 0x08040358 0821 movs r1, 8 ; 8
| 0x0804035a 3e20 movs r0, 0x3e ; '>' ; 62
| 0x0804035c fff712fe bl c5000_spi0_writereg
| 0x08040360 c221 movs r1, 0xc2 ; 194
| 0x08040362 3720 movs r0, 0x37 ; '7' ; 55
| 0x08040364 fff70efe bl c5000_spi0_writereg
| 0x08040368 0021 movs r1, 0
| 0x0804036a 5020 movs r0, 0x50 ; 'P' ; 80
| 0x0804036c fff71dfe bl c5000_spi0_writereg_1
| 0x08040370 0021 movs r1, 0
| 0x08040372 5120 movs r0, 0x51 ; 'Q' ; 81
| 0x08040374 fff719fe bl c5000_spi0_writereg_1
| 0x08040378 0021 movs r1, 0
| 0x0804037a 8120 movs r0, 0x81 ; 129
| 0x0804037c fff702fe bl c5000_spi0_writereg
| 0x08040380 8021 movs r1, 0x80 ; 128
| ;-- c5000_wr_60_3:
| 0x08040382 6020 movs r0, 0x60 ; '`' ; 96
| 0x08040384 fff7fefd bl c5000_spi0_writereg
| 0x08040388 0022 movs r2, 0
| 0x0804038a 4ff48061 mov.w r1, 0x400 ; 1024
| 0x0804038e dff81c0a ldr.w r0, [0x08040db2] ; [0x8040db0:4]=0x2001de78 struct_channel_info2
| 0x08040392 ebf73efa bl GPIO_WriteBit
| 0x08040396 0022 movs r2, 0
| 0x08040398 0421 movs r1, 4 ; 4
| 0x0804039a b448 ldr r0, [0x0804066e] ; [0x804066c:4]=0x40020400 io_GPIOB
| 0x0804039c ebf739fa bl GPIO_WriteBit
| 0x080403a0 dff80c0a ldr.w r0, [0x08040db4] ; [0x8040db4:4]=0x2001e89a
| 0x080403a4 408b ldrh r0, [r0, 0x1a]
| 0x080403a6 4ff6ff71 movw r1, 0xffff
| 0x080403aa 8842 cmp r0, r1
| ,=< 0x080403ac 10d0 beq 0x80403d0
| | 0x080403ae dff8000a ldr.w r0, [0x08040db6] ; [0x8040db4:4]=0x2001e89a
| | 0x080403b2 408b ldrh r0, [r0, 0x1a]
| | 0x080403b4 0004 lsls r0, r0, 0x10
| ,==< 0x080403b6 04d5 bpl 0x80403c2
| || 0x080403b8 00f010f8 bl func_403dc
| || 0x080403bc fef7b7ff bl func_3f32e
| ,===< 0x080403c0 06e0 b 0x80403d0
| |`--> 0x080403c2 dff8ec09 ldr.w r0, [0x08040db6] ; [0x8040db4:4]=0x2001e89a
| | | 0x080403c6 408b ldrh r0, [r0, 0x1a]
| | | 0x080403c8 00f088f8 bl func_404dc
| | | 0x080403cc fef7a2ff bl func_3f314
\ `-`-> 0x080403d0 01bd pop {r0, pc}
/ (fcn) c5000_some3 86
| Caller: func_3228e
| c5000_some3 ();
| 0x08040290 80b5 push {r7, lr}
| 0x08040292 fff7c8f9 bl SomethingWithGPIOC_TIM7_Status
| 0x08040296 8c21 movs r1, 0x8c ; 140
| 0x08040298 0d20 movs r0, 0xd ; 13
| 0x0804029a fff773fe bl c5000_spi0_writereg
| 0x0804029e 4421 movs r1, 0x44 ; 'D' ; 68
| 0x080402a0 0e20 movs r0, 0xe ; 14
| 0x080402a2 fff76ffe bl c5000_spi0_writereg
| 0x080402a6 c821 movs r1, 0xc8 ; 200
| 0x080402a8 0f20 movs r0, 0xf ; 15
| 0x080402aa fff76bfe bl c5000_spi0_writereg
| 0x080402ae c221 movs r1, 0xc2 ; 194
| 0x080402b0 3720 movs r0, 0x37 ; '7' ; 55
| 0x080402b2 fff767fe bl c5000_spi0_writereg
| 0x080402b6 0e21 movs r1, 0xe ; 14
| 0x080402b8 2520 movs r0, 0x25 ; '%' ; 37
| 0x080402ba fff763fe bl c5000_spi0_writereg
| 0x080402be fe21 movs r1, 0xfe ; 254
| 0x080402c0 2620 movs r0, 0x26 ; '&' ; 38
| 0x080402c2 fff75ffe bl c5000_spi0_writereg
| 0x080402c6 fff7c9fe bl func_4005c
| 0x080402ca 0022 movs r2, 0
| 0x080402cc 4ff48061 mov.w r1, 0x400 ; 1024
| 0x080402d0 dff8d80a ldr.w r0, [0x08040db0] ; [0x8040db0:4]=0x2001de78 struct_channel_info2
| 0x080402d4 ebf79dfa bl GPIO_WriteBit
| 0x080402d8 0022 movs r2, 0
| 0x080402da 0421 movs r1, 4 ; 4
| 0x080402dc dff8c40a ldr.w r0, [0x08040da8] ; [0x8040da8:4]=0x2001e7c6
| 0x080402e0 ebf797fa bl GPIO_WriteBit
\ 0x080402e4 01bd pop {r0, pc}
/ (fcn) dmr_call_start 740
| dmr_call_start ();
| 0x08040a02 38b5 push {r3, r4, r5, lr}
| 0x08040a04 0400 movs r4, r0
| 0x08040a06 6079 ldrb r0, [r4, 5]
| 0x08040a08 a179 ldrb r1, [r4, 6]
| 0x08040a0a 0902 lsls r1, r1, 8
| 0x08040a0c 11eb0040 adds.w r0, r1, r0, lsl 16
| 0x08040a10 e179 ldrb r1, [r4, 7]
| 0x08040a12 4018 adds r0, r0, r1
| 0x08040a14 dff8dc19 ldr.w r1, [0x080413f8] ; [0x80413f8:4]=0x2001e5e0
| 0x08040a18 0860 str r0, [r1]
| 0x08040a1a 207a ldrb r0, [r4, 8]
| 0x08040a1c 617a ldrb r1, [r4, 9]
| 0x08040a1e 0902 lsls r1, r1, 8
| 0x08040a20 11eb0040 adds.w r0, r1, r0, lsl 16
| 0x08040a24 a17a ldrb r1, [r4, 0xa]
| 0x08040a26 4018 adds r0, r0, r1
| 0x08040a28 dff8cc19 ldr.w r1, [0x080413fc] ; [0x80413fc:4]=0x2001e86f
| 0x08040a2c 0860 str r0, [r1]
| 0x08040a2e dff8cc09 ldr.w r0, [0x08041402] ; [0x8041400:4]=0x2001e892 gui_opmode3
| 0x08040a32 0021 movs r1, 0
| 0x08040a34 0170 strb r1, [r0]
| 0x08040a36 dff8c809 ldr.w r0, [0x08041406] ; [0x8041404:4]=0x2001e160
| 0x08040a3a 0078 ldrb r0, [r0]
| 0x08040a3c 801f subs r0, r0, 6
| 0x08040a3e c0b2 uxtb r0, r0
| 0x08040a40 4a28 cmp r0, 0x4a ; 'J' ; 74
| ,=< 0x08040a42 11d3 blo 0x8040a68
| | 0x08040a44 dff8b809 ldr.w r0, [0x08041404] ; [0x8041404:4]=0x2001e160
| | 0x08040a48 0078 ldrb r0, [r0]
| | 0x08040a4a 0128 cmp r0, 1 ; 1
| ,==< 0x08040a4c 0dd1 bne 0x8040a6a
| || 0x08040a4e dff8b409 ldr.w r0, [0x0804140a] ; [0x8041408:4]=0x2001e5f4
| || 0x08040a52 90f82000 ldrb.w r0, [r0, 0x20]
| || 0x08040a56 10f00300 ands r0, r0, 3
| || 0x08040a5a 0228 cmp r0, 2 ; 2
| ,===< 0x08040a5c 05d1 bne 0x8040a6a
| ||| 0x08040a5e dff8a809 ldr.w r0, [0x0804140e] ; [0x804140c:4]=0xfffff0
| ||| 0x08040a62 4078 ldrb r0, [r0, 1]
| ||| 0x08040a64 c007 lsls r0, r0, 0x1f
| ,====< 0x08040a66 00d5 bpl 0x8040a6a
| ,===`-> 0x08040a68 3ce1 b 0x8040ce4
| |```--> 0x08040a6a a078 ldrb r0, [r4, 2]
| | 0x08040a6c 3f21 movs r1, 0x3f ; '?' ; 63
| | 0x08040a6e 0842 tst r0, r1
| | ,=< 0x08040a70 40f0d780 bne.w 0x8040c22
| | | 0x08040a74 dff87c09 ldr.w r0, [0x080413f8] ; [0x80413f8:4]=0x2001e5e0
| | | 0x08040a78 0068 ldr r0, [r0]
| | | 0x08040a7a dff89019 ldr.w r1, [0x08041412] ; [0x8041410:4]=0x2001e895 msg_sms_flags_shifted
| | | 0x08040a7e 0840 ands r0, r1
| | | 0x08040a80 dff88819 ldr.w r1, [0x08041410] ; [0x8041410:4]=0x2001e895 msg_sms_flags_shifted
| | | 0x08040a84 8842 cmp r0, r1
| | ,==< 0x08040a86 16d1 bne 0x8040ab6
| | || 0x08040a88 dff88409 ldr.w r0, [0x08041414] ; [0x8041414:4]=0x2001e1ac contact
| | || 0x08040a8c 3021 movs r1, 0x30 ; '0' ; 48
| | || 0x08040a8e 0170 strb r1, [r0]
| | || 0x08040a90 dff88009 ldr.w r0, [0x08041418] ; [0x8041418:4]=0x2001e5dc msg_dest_addr
| | || 0x08040a94 0068 ldr r0, [r0]
| | || 0x08040a96 0002 lsls r0, r0, 8
| | || 0x08040a98 000a lsrs r0, r0, 8
| | || 0x08040a9a dff87c19 ldr.w r1, [0x0804141e] ; [0x804141c:4]=0x2001e79e
| | || 0x08040a9e 0860 str r0, [r1]
| | || 0x08040aa0 dff87809 ldr.w r0, [0x08041420] ; [0x8041420:4]=0xffffe0
| | || 0x08040aa4 0021 movs r1, 0
| | || 0x08040aa6 0180 strh r1, [r0]
| | || 0x08040aa8 00f01df9 bl dmr_before_squelch
| | || 0x08040aac dff83409 ldr.w r0, [0x080413e8] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| | || 0x08040ab0 0921 movs r1, 9 ; 9
| | || 0x08040ab2 0170 strb r1, [r0]
| | ,===< 0x08040ab4 ade0 b 0x8040c12
| | |`--> 0x08040ab6 dff83c09 ldr.w r0, [0x080413fa] ; [0x80413f8:4]=0x2001e5e0
| | | | 0x08040aba 0068 ldr r0, [r0]
| | | | 0x08040abc dff86019 ldr.w r1, [0x08041424] ; [0x8041424:4]=0x2001e604 q_status_4
| | | | 0x08040ac0 0840 ands r0, r1
| | | | 0x08040ac2 dff85c19 ldr.w r1, [0x08041426] ; [0x8041424:4]=0x2001e604 q_status_4
| | | | 0x08040ac6 8842 cmp r0, r1
| | |,==< 0x08040ac8 16d1 bne 0x8040af8
| | ||| 0x08040aca dff84409 ldr.w r0, [0x08041416] ; [0x8041414:4]=0x2001e1ac contact
| | ||| 0x08040ace 3021 movs r1, 0x30 ; '0' ; 48
| | ||| 0x08040ad0 0170 strb r1, [r0]
| | ||| 0x08040ad2 dff84009 ldr.w r0, [0x0804141a] ; [0x8041418:4]=0x2001e5dc msg_dest_addr
| | ||| 0x08040ad6 0068 ldr r0, [r0]
| | ||| 0x08040ad8 0002 lsls r0, r0, 8
| | ||| 0x08040ada 000a lsrs r0, r0, 8
| | ||| 0x08040adc dff83819 ldr.w r1, [0x0804141c] ; [0x804141c:4]=0x2001e79e
| | ||| 0x08040ae0 0860 str r0, [r1]
| | ||| 0x08040ae2 dff83809 ldr.w r0, [0x08041422] ; [0x8041420:4]=0xffffe0
| | ||| 0x08040ae6 0021 movs r1, 0
| | ||| 0x08040ae8 0180 strh r1, [r0]
| | ||| 0x08040aea 00f0fcf8 bl dmr_before_squelch
| | ||| 0x08040aee dff8f408 ldr.w r0, [0x080413ea] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| | ||| 0x08040af2 0921 movs r1, 9 ; 9
| | ||| 0x08040af4 0170 strb r1, [r0]
| |,====< 0x08040af6 8ce0 b 0x8040c12
| |||`--> 0x08040af8 2079 ldrb r0, [r4, 4]
| ||| | 0x08040afa 4007 lsls r0, r0, 0x1d
| |||,==< 0x08040afc 16d5 bpl 0x8040b2c
| ||||| 0x08040afe dff81009 ldr.w r0, [0x08041416] ; [0x8041414:4]=0x2001e1ac contact
| ||||| 0x08040b02 1021 movs r1, 0x10 ; 16
| ||||| 0x08040b04 0170 strb r1, [r0]
| ||||| 0x08040b06 dff80c09 ldr.w r0, [0x0804141a] ; [0x8041418:4]=0x2001e5dc msg_dest_addr
| ||||| 0x08040b0a 0068 ldr r0, [r0]
| ||||| 0x08040b0c 0002 lsls r0, r0, 8
| ||||| 0x08040b0e 000a lsrs r0, r0, 8
| ||||| 0x08040b10 dff80419 ldr.w r1, [0x0804141c] ; [0x804141c:4]=0x2001e79e
| ||||| 0x08040b14 0860 str r0, [r1]
| ||||| 0x08040b16 dff80409 ldr.w r0, [0x08041422] ; [0x8041420:4]=0xffffe0
| ||||| 0x08040b1a 0021 movs r1, 0
| ||||| 0x08040b1c 0180 strh r1, [r0]
| ||||| 0x08040b1e 00f0e2f8 bl dmr_before_squelch
| ||||| 0x08040b22 dff8c008 ldr.w r0, [0x080413ea] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| ||||| 0x08040b26 0921 movs r1, 9 ; 9
| ||||| 0x08040b28 0170 strb r1, [r0]
| ,======< 0x08040b2a 72e0 b 0x8040c12
| ||||`--> 0x08040b2c dff8e408 ldr.w r0, [0x08041418] ; [0x8041418:4]=0x2001e5dc msg_dest_addr
| |||| | 0x08040b30 c078 ldrb r0, [r0, 3]
| |||| | 0x08040b32 10f00f00 ands r0, r0, 0xf
| |||| | 0x08040b36 0128 cmp r0, 1 ; 1
| ||||,==< 0x08040b38 2ad1 bne 0x8040b90
| |||||| 0x08040b3a dff8d808 ldr.w r0, [0x0804141a] ; [0x8041418:4]=0x2001e5dc msg_dest_addr
| |||||| 0x08040b3e 0068 ldr r0, [r0]
| |||||| 0x08040b40 0002 lsls r0, r0, 8
| |||||| 0x08040b42 000a lsrs r0, r0, 8
| |||||| 0x08040b44 dff8ac18 ldr.w r1, [0x080413f8] ; [0x80413f8:4]=0x2001e5e0
| |||||| 0x08040b48 0968 ldr r1, [r1]
| |||||| 0x08040b4a 8842 cmp r0, r1
| ,=======< 0x08040b4c 20d1 bne 0x8040b90
| ||||||| 0x08040b4e dff8c008 ldr.w r0, [0x08041416] ; [0x8041414:4]=0x2001e1ac contact
| ||||||| 0x08040b52 1021 movs r1, 0x10 ; 16
| ||||||| 0x08040b54 0170 strb r1, [r0]
| ||||||| 0x08040b56 dff8c008 ldr.w r0, [0x0804141e] ; [0x804141c:4]=0x2001e79e
| ||||||| 0x08040b5a dff89818 ldr.w r1, [0x080413fa] ; [0x80413f8:4]=0x2001e5e0
| ||||||| 0x08040b5e 0968 ldr r1, [r1]
| ||||||| 0x08040b60 0160 str r1, [r0]
| ||||||| 0x08040b62 9348 ldr r0, [0x08040db2] ; [0x8040db0:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08040b64 c088 ldrh r0, [r0, 6]
| ||||||| 0x08040b66 dff8b418 ldr.w r1, [0x08041422] ; [0x8041420:4]=0xffffe0
| ||||||| 0x08040b6a 0880 strh r0, [r1]
| ||||||| 0x08040b6c 00f0bbf8 bl dmr_before_squelch
| ||||||| 0x08040b70 dff87008 ldr.w r0, [0x080413e8] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| ||||||| 0x08040b74 0921 movs r1, 9 ; 9
| ||||||| 0x08040b76 0170 strb r1, [r0]
| ||||||| 0x08040b78 2079 ldrb r0, [r4, 4]
| ||||||| 0x08040b7a 0006 lsls r0, r0, 0x18
| ========< 0x08040b7c 49d5 bpl 0x8040c12
| ||||||| 0x08040b7e dff8a408 ldr.w r0, [0x0804142a] ; [0x8041428:4]=0x2001d8d0
| ||||||| 0x08040b82 0078 ldrb r0, [r0]
| ||||||| 0x08040b84 50f00400 orrs r0, r0, 4
| ||||||| 0x08040b88 dff89818 ldr.w r1, [0x08041428] ; [0x8041428:4]=0x2001d8d0
| ||||||| 0x08040b8c 0870 strb r0, [r1]
| ========< 0x08040b8e 40e0 b 0x8040c12
| `----`--> 0x08040b90 0025 movs r5, 0
| ||||,==< 0x08040b92 00e0 b 0x8040b96
| .-------> ;-- is_this_the_check_for_group_rx_list:
| .-------> 0x08040b94 6d1c adds r5, r5, 1
| |||||`--> 0x08040b96 edb2 uxtb r5, r5
| ||||| | 0x08040b98 202d cmp r5, 0x20 ; 32
| |||||,==< 0x08040b9a 2fd2 bhs 0x8040bfc
| ||||||| 0x08040b9c edb2 uxtb r5, r5
| ||||||| 0x08040b9e dff88808 ldr.w r0, [0x0804142e] ; [0x804142c:4]=0x2001da7c
| ||||||| 0x08040ba2 50f82500 ldr.w r0, [r0, r5, lsl 2]
| ||||||| 0x08040ba6 0002 lsls r0, r0, 8
| ||||||| 0x08040ba8 000a lsrs r0, r0, 8
| ||||||| 0x08040baa dff84818 ldr.w r1, [0x080413fa] ; [0x80413f8:4]=0x2001e5e0
| ||||||| 0x08040bae 0968 ldr r1, [r1]
| ||||||| 0x08040bb0 8842 cmp r0, r1
| `=======< 0x08040bb2 efd1 bne 0x8040b94
| |||||| 0x08040bb4 dff85808 ldr.w r0, [0x08041414] ; [0x8041414:4]=0x2001e1ac contact
| |||||| 0x08040bb8 1021 movs r1, 0x10 ; 16
| |||||| 0x08040bba 0170 strb r1, [r0]
| |||||| 0x08040bbc dff85808 ldr.w r0, [0x0804141c] ; [0x804141c:4]=0x2001e79e
| |||||| 0x08040bc0 dff83018 ldr.w r1, [0x080413f8] ; [0x80413f8:4]=0x2001e5e0
| |||||| 0x08040bc4 0968 ldr r1, [r1]
| |||||| 0x08040bc6 0160 str r1, [r0]
| |||||| 0x08040bc8 edb2 uxtb r5, r5
| |||||| 0x08040bca dff86008 ldr.w r0, [0x08041432] ; [0x8041430:4]=0x4b510 LEA dmr_call_end ; dmr_call_end
| |||||| 0x08040bce 10eb4500 adds.w r0, r0, r5, lsl 1
| |||||| 0x08040bd2 008c ldrh r0, [r0, 0x20]
| |||||| 0x08040bd4 dff84418 ldr.w r1, [0x08041420] ; [0x8041420:4]=0xffffe0
| |||||| 0x08040bd8 0880 strh r0, [r1]
| |||||| 0x08040bda 00f084f8 bl dmr_before_squelch
| |||||| 0x08040bde dff80408 ldr.w r0, [0x080413ea] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| |||||| 0x08040be2 0921 movs r1, 9 ; 9
| |||||| 0x08040be4 0170 strb r1, [r0]
| |||||| 0x08040be6 2079 ldrb r0, [r4, 4]
| |||||| 0x08040be8 0006 lsls r0, r0, 0x18
| ,=======< 0x08040bea 07d5 bpl 0x8040bfc
| ||||||| 0x08040bec dff83408 ldr.w r0, [0x08041428] ; [0x8041428:4]=0x2001d8d0
| ||||||| 0x08040bf0 0078 ldrb r0, [r0]
| ||||||| 0x08040bf2 50f00400 orrs r0, r0, 4
| ||||||| 0x08040bf6 dff82c18 ldr.w r1, [0x0804142a] ; [0x8041428:4]=0x2001d8d0
| ||||||| 0x08040bfa 0870 strb r0, [r1]
| `----`--> 0x08040bfc edb2 uxtb r5, r5
| |||| | 0x08040bfe 202d cmp r5, 0x20 ; 32
| ||||,==< 0x08040c00 07d1 bne 0x8040c12
| |||||| ;-- re_create_event_8:
| |||||| 0x08040c02 dff8e007 ldr.w r0, [0x080413ea] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| |||||| 0x08040c06 0821 movs r1, 8 ; 8
| |||||| 0x08040c08 0170 strb r1, [r0]
| |||||| 0x08040c0a dff81008 ldr.w r0, [0x08041422] ; [0x8041420:4]=0xffffe0
| |||||| 0x08040c0e 0021 movs r1, 0
| |||||| 0x08040c10 0180 strh r1, [r0]
| -`-```--> 0x08040c12 dff8d017 ldr.w r1, [0x080413ea] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| | | 0x08040c16 dff8d007 ldr.w r0, [0x080413ee] ; [0x80413ec:4]=0x2001e8ab
| | | 0x08040c1a 0068 ldr r0, [r0]
| | | 0x08040c1c f0f7befa bl md380_OSMboxPost
| | ,==< 0x08040c20 60e0 b 0x8040ce4
| | |`-> 0x08040c22 a078 ldrb r0, [r4, 2]
| | | 0x08040c24 10f03f00 ands r0, r0, 0x3f
| | | 0x08040c28 0328 cmp r0, 3 ; 3
| | |,=< 0x08040c2a 5bd1 bne 0x8040ce4
| | || 0x08040c2c dff8ec07 ldr.w r0, [0x08041420] ; [0x8041420:4]=0xffffe0
| | || 0x08040c30 0021 movs r1, 0
| | || 0x08040c32 0180 strh r1, [r0]
| | || 0x08040c34 2079 ldrb r0, [r4, 4]
| | || 0x08040c36 4007 lsls r0, r0, 0x1d
| | ,===< 0x08040c38 1fd5 bpl 0x8040c7a
| | ||| 0x08040c3a dff8d407 ldr.w r0, [0x08041416] ; [0x8041414:4]=0x2001e1ac contact
| | ||| 0x08040c3e 2021 movs r1, 0x20 ; 32
| | ||| 0x08040c40 0170 strb r1, [r0]
| | ||| 0x08040c42 dff8d407 ldr.w r0, [0x0804141e] ; [0x804141c:4]=0x2001e79e
| | ||| 0x08040c46 dff8b017 ldr.w r1, [0x080413fe] ; [0x80413fc:4]=0x2001e86f
| | ||| 0x08040c4a 0968 ldr r1, [r1]
| | ||| 0x08040c4c 0160 str r1, [r0]
| | ||| 0x08040c4e dff8400b ldr.w r0, [0x08041796] ; [0x8041794:4]=0x2001e63c
| | ||| 0x08040c52 0078 ldrb r0, [r0]
| | ||| 0x08040c54 0028 cmp r0, 0
| |,====< 0x08040c56 09d1 bne 0x8040c6c
| ||||| 0x08040c58 dff8340b ldr.w r0, [0x08041794] ; [0x8041794:4]=0x2001e63c
| ||||| 0x08040c5c 0121 movs r1, 1 ; 1
| ||||| 0x08040c5e 0170 strb r1, [r0]
| ||||| 0x08040c60 dff8300b ldr.w r0, [0x08041798] ; [0x8041798:4]=0x2001dadc md380_radio_config
| ||||| 0x08040c64 dff89017 ldr.w r1, [0x080413fc] ; [0x80413fc:4]=0x2001e86f
| ||||| 0x08040c68 0968 ldr r1, [r1]
| ||||| 0x08040c6a 0160 str r1, [r0]
| |`----> 0x08040c6c 00f03bf8 bl dmr_before_squelch
| | ||| 0x08040c70 dff87007 ldr.w r0, [0x080413e8] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| | ||| 0x08040c74 0921 movs r1, 9 ; 9
| | ||| 0x08040c76 0170 strb r1, [r0]
| |,====< 0x08040c78 2de0 b 0x8040cd6
| ||`---> ;-- audio_for_me_or_not:
| ||`---> 0x08040c7a dff81c0b ldr.w r0, [0x0804179e] ; [0x804179c:4]=0x2001e8e5
| || || 0x08040c7e 4068 ldr r0, [r0, 4]
| || || 0x08040c80 0002 lsls r0, r0, 8
| || || 0x08040c82 000a lsrs r0, r0, 8
| || || 0x08040c84 dff86c17 ldr.w r1, [0x080413f8] ; [0x80413f8:4]=0x2001e5e0
| || || 0x08040c88 0968 ldr r1, [r1]
| || || 0x08040c8a 8842 cmp r0, r1
| ||,===< 0x08040c8c 1fd1 bne 0x8040cce
| ||||| 0x08040c8e dff88007 ldr.w r0, [0x08041416] ; [0x8041414:4]=0x2001e1ac contact
| ||||| 0x08040c92 2021 movs r1, 0x20 ; 32
| ||||| 0x08040c94 0170 strb r1, [r0]
| ||||| 0x08040c96 dff88007 ldr.w r0, [0x0804141e] ; [0x804141c:4]=0x2001e79e
| ||||| 0x08040c9a dff85c17 ldr.w r1, [0x080413fe] ; [0x80413fc:4]=0x2001e86f
| ||||| 0x08040c9e 0968 ldr r1, [r1]
| ||||| 0x08040ca0 0160 str r1, [r0]
| ||||| 0x08040ca2 dff8ec0a ldr.w r0, [0x08041796] ; [0x8041794:4]=0x2001e63c
| ||||| 0x08040ca6 0078 ldrb r0, [r0]
| ||||| 0x08040ca8 0028 cmp r0, 0
| ,======< 0x08040caa 09d1 bne 0x8040cc0
| |||||| 0x08040cac dff8e00a ldr.w r0, [0x08041794] ; [0x8041794:4]=0x2001e63c
| |||||| 0x08040cb0 0121 movs r1, 1 ; 1
| |||||| 0x08040cb2 0170 strb r1, [r0]
| |||||| 0x08040cb4 dff8dc0a ldr.w r0, [0x08041798] ; [0x8041798:4]=0x2001dadc md380_radio_config
| |||||| 0x08040cb8 dff83c17 ldr.w r1, [0x080413fc] ; [0x80413fc:4]=0x2001e86f
| |||||| 0x08040cbc 0968 ldr r1, [r1]
| |||||| 0x08040cbe 0160 str r1, [r0]
| `------> 0x08040cc0 00f011f8 bl dmr_before_squelch
| ||||| ;-- normal_audio_frame:
| ||||| 0x08040cc4 dff81c07 ldr.w r0, [0x080413e8] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| ||||| 0x08040cc8 0921 movs r1, 9 ; 9
| ||||| 0x08040cca 0170 strb r1, [r0]
| ,======< 0x08040ccc 03e0 b 0x8040cd6
| |||`---> ;-- promisc_audio_frame:
| |||`---> 0x08040cce dff81407 ldr.w r0, [0x080413ea] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| ||| || 0x08040cd2 0821 movs r1, 8 ; 8
| ||| || 0x08040cd4 0170 strb r1, [r0]
| `-`----> 0x08040cd6 dff80c17 ldr.w r1, [0x080413ea] ; [0x80413e8:4]=0x2001e65c event1_mbox_poi_radio
| | || 0x08040cda dff80c07 ldr.w r0, [0x080413ee] ; [0x80413ec:4]=0x2001e8ab
| | || 0x08040cde 0068 ldr r0, [r0]
| | || 0x08040ce0 f0f75cfa bl md380_OSMboxPost
\ `--``-> 0x08040ce4 31bd pop {r0, r4, r5, pc}
/ (fcn) dmr_before_squelch 92
| Caller: audio_for_me_or_not is_this_the_check_for_group_rx_list re_create_event_8 dmr_call_start
| dmr_before_squelch ();
| 0x08040ce6 80b5 push {r7, lr}
| 0x08040ce8 dff8b00a ldr.w r0, [0x080417a0] ; [0x80417a0:4]=0x2001e600 q_struct_1
| 0x08040cec 0021 movs r1, 0
| 0x08040cee 0170 strb r1, [r0]
| 0x08040cf0 dff8ac0a ldr.w r0, [0x080417a4] ; [0x80417a4:4]=0x2001e894
| 0x08040cf4 0078 ldrb r0, [r0]
| 0x08040cf6 0006 lsls r0, r0, 0x18
| ,=< 0x08040cf8 04d5 bpl 0x8040d04
| | 0x08040cfa dff8a80a ldr.w r0, [0x080417aa] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| | 0x08040cfe 0078 ldrb r0, [r0]
| | 0x08040d00 0828 cmp r0, 8 ; 8
| ,==< 0x08040d02 1dd0 beq 0x8040d40
| |`-> 0x08040d04 dff8980a ldr.w r0, [0x080417a4] ; [0x80417a4:4]=0x2001e894
| | 0x08040d08 0078 ldrb r0, [r0]
| | 0x08040d0a 50f08000 orrs r0, r0, 0x80
| | 0x08040d0e dff8901a ldr.w r1, [0x080417a6] ; [0x80417a4:4]=0x2001e894
| | 0x08040d12 0870 strb r0, [r1]
| | 0x08040d14 dff88c0a ldr.w r0, [0x080417a8] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| | 0x08040d18 0821 movs r1, 8 ; 8
| | 0x08040d1a 0170 strb r1, [r0]
| | 0x08040d1c f3f741fa bl func_341a2
| | 0x08040d20 dff87c0a ldr.w r0, [0x080417a4] ; [0x80417a4:4]=0x2001e894
| | 0x08040d24 4078 ldrb r0, [r0, 1]
| | 0x08040d26 50f00100 orrs r0, r0, 1
| | 0x08040d2a dff8741a ldr.w r1, [0x080417a6] ; [0x80417a4:4]=0x2001e894
| | 0x08040d2e 4870 strb r0, [r1, 1]
| | 0x08040d30 6721 movs r1, 0x67 ; 'g' ; 103
| | 0x08040d32 5420 movs r0, 0x54 ; 'T' ; 84
| | 0x08040d34 fff739f9 bl c5000_spi0_writereg_1
| | 0x08040d38 dff86c0a ldr.w r0, [0x080417ac] ; [0x80417ac:4]=0x2001e650 sema1_poi
| | 0x08040d3c 9121 movs r1, 0x91 ; 145
| | 0x08040d3e 0170 strb r1, [r0]
\ `--> 0x08040d40 01bd pop {r0, pc}
/ (fcn) dmr_call_end 864
| dmr_call_end ();
| 0x08041430 10b5 push {r4, lr}
| 0x08041432 0400 movs r4, r0
| 0x08041434 6079 ldrb r0, [r4, 5]
| 0x08041436 a179 ldrb r1, [r4, 6]
| 0x08041438 0902 lsls r1, r1, 8
| 0x0804143a 11eb0040 adds.w r0, r1, r0, lsl 16
| 0x0804143e e179 ldrb r1, [r4, 7]
| 0x08041440 4018 adds r0, r0, r1
| 0x08041442 dff84418 ldr.w r1, [0x08041c8e] ; [0x8041c8c:4]=0x2001e5e0
| 0x08041446 0860 str r0, [r1]
| 0x08041448 207a ldrb r0, [r4, 8]
| 0x0804144a 617a ldrb r1, [r4, 9]
| 0x0804144c 0902 lsls r1, r1, 8
| 0x0804144e 11eb0040 adds.w r0, r1, r0, lsl 16
| 0x08041452 a17a ldrb r1, [r4, 0xa]
| 0x08041454 4018 adds r0, r0, r1
| 0x08041456 dff83418 ldr.w r1, [0x08041c92] ; [0x8041c90:4]=0x2001e604 q_status_4
| 0x0804145a 0860 str r0, [r1]
| 0x0804145c 6078 ldrb r0, [r4, 1]
| 0x0804145e 4007 lsls r0, r0, 0x1d
| ,=< 0x08041460 00f19581 bmi.w 0x804178e
| | 0x08041464 a078 ldrb r0, [r4, 2]
| | 0x08041466 10f03f00 ands r0, r0, 0x3f
| | 0x0804146a 3028 cmp r0, 0x30 ; '0' ; 48
| ,==< 0x0804146c 00f08f81 beq.w 0x804178e
| || 0x08041470 a078 ldrb r0, [r4, 2]
| || 0x08041472 10f03f00 ands r0, r0, 0x3f
| || 0x08041476 0328 cmp r0, 3 ; 3
| ,===< 0x08041478 40f09f80 bne.w 0x80415ba
| ||| 0x0804147c dff81008 ldr.w r0, [0x08041c94] ; [0x8041c94:4]=0x2001e5f0 radio_status_1
| ||| 0x08041480 0078 ldrb r0, [r0]
| ||| 0x08041482 10f07f00 ands r0, r0, 0x7f
| ||| 0x08041486 dff80818 ldr.w r1, [0x08041c96] ; [0x8041c94:4]=0x2001e5f0 radio_status_1
| ||| 0x0804148a 0870 strb r0, [r1]
| ||| 0x0804148c c548 ldr r0, [0x080417a4] ; [0x80417a4:4]=0x2001e894
| ||| 0x0804148e 0078 ldrb r0, [r0]
| ||| 0x08041490 0828 cmp r0, 8 ; 8
| ,====< 0x08041492 03d0 beq 0x804149c
| |||| 0x08041494 c248 ldr r0, [0x080417a0] ; [0x80417a0:4]=0x2001e600 q_struct_1
| |||| 0x08041496 0078 ldrb r0, [r0]
| |||| 0x08041498 0006 lsls r0, r0, 0x18
| ,=====< 0x0804149a 2fd5 bpl 0x80414fc
| |`----> 0x0804149c c048 ldr r0, [0x080417a0] ; [0x80417a0:4]=0x2001e600 q_struct_1
| | ||| 0x0804149e 0078 ldrb r0, [r0]
| | ||| 0x080414a0 10f07f00 ands r0, r0, 0x7f
| | ||| 0x080414a4 be49 ldr r1, [0x080417a0] ; [0x80417a0:4]=0x2001e600 q_struct_1
| | ||| 0x080414a6 0870 strb r0, [r1]
| | ||| 0x080414a8 bd48 ldr r0, [0x080417a0] ; [0x80417a0:4]=0x2001e600 q_struct_1
| | ||| 0x080414aa 4078 ldrb r0, [r0, 1]
| | ||| 0x080414ac 10f0fe00 ands r0, r0, 0xfe
| | ||| 0x080414b0 bb49 ldr r1, [0x080417a0] ; [0x80417a0:4]=0x2001e600 q_struct_1
| | ||| 0x080414b2 4870 strb r0, [r1, 1]
| | ||| 0x080414b4 b948 ldr r0, [0x0804179c] ; [0x804179c:4]=0x2001e8e5
| | ||| 0x080414b6 0021 movs r1, 0
| | ||| 0x080414b8 0170 strb r1, [r0]
| | ||| 0x080414ba dff8d807 ldr.w r0, [0x08041c9a] ; [0x8041c98:4]=0x2001e8a8 beep_code_send
| | ||| 0x080414be 8078 ldrb r0, [r0, 2]
| | ||| 0x080414c0 50f00400 orrs r0, r0, 4
| | ||| 0x080414c4 dff8cc17 ldr.w r1, [0x08041c98] ; [0x8041c98:4]=0x2001e8a8 beep_code_send
| | ||| 0x080414c8 8870 strb r0, [r1, 2]
| | ||| 0x080414ca b848 ldr r0, [0x080417ae] ; [0x80417ac:4]=0x2001e650 sema1_poi
| | ||| 0x080414cc 0068 ldr r0, [r0]
| | ||| 0x080414ce fef7b9f9 bl OSSemPost
| | ||| 0x080414d2 b148 ldr r0, [0x0804179a] ; [0x8041798:4]=0x2001dadc md380_radio_config
| | ||| 0x080414d4 4078 ldrb r0, [r0, 1]
| | ||| 0x080414d6 c0f30010 ubfx r0, r0, 4, 1
| | ||| 0x080414da c007 lsls r0, r0, 0x1f
| |,====< 0x080414dc 0ad4 bmi 0x80414f4
| ||||| 0x080414de dff8b807 ldr.w r0, [0x08041c9e] ; [0x8041c9c:4]=0x2001e67c event2_mbox_poi_beep
| ||||| 0x080414e2 2421 movs r1, 0x24 ; '$' ; 36
| ||||| 0x080414e4 0170 strb r1, [r0]
| ||||| 0x080414e6 dff8b017 ldr.w r1, [0x08041c9e] ; [0x8041c9c:4]=0x2001e67c event2_mbox_poi_beep
| ||||| 0x080414ea dff8b007 ldr.w r0, [0x08041ca2] ; [0x8041ca0:4]=0x2001e895 msg_sms_flags_shifted
| ||||| 0x080414ee 0068 ldr r0, [r0]
| ||||| 0x080414f0 eff754fe bl md380_OSMboxPost
| |`----> 0x080414f4 7821 movs r1, 0x78 ; 'x' ; 120
| | ||| 0x080414f6 5420 movs r0, 0x54 ; 'T' ; 84
| | ||| 0x080414f8 fef757fd bl c5000_spi0_writereg_1
| `-----> 0x080414fc 2079 ldrb r0, [r4, 4]
| ||| 0x080414fe 4007 lsls r0, r0, 0x1d
| ,====< 0x08041500 14d5 bpl 0x804152c
| |||| 0x08041502 dff89c07 ldr.w r0, [0x08041ca6] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| |||| 0x08041506 2021 movs r1, 0x20 ; 32
| |||| 0x08041508 0170 strb r1, [r0]
| |||| 0x0804150a dff89807 ldr.w r0, [0x08041caa] ; [0x8041ca8:4]=0x2001e8aa event1_buffer
| |||| 0x0804150e dff87c17 ldr.w r1, [0x08041c92] ; [0x8041c90:4]=0x2001e604 q_status_4
| |||| 0x08041512 0968 ldr r1, [r1]
| |||| 0x08041514 0160 str r1, [r0]
| |||| 0x08041516 dff89007 ldr.w r0, [0x08041cae] ; [0x8041cac:4]=0xfffff0
| |||| 0x0804151a 0a21 movs r1, 0xa ; 10
| |||| 0x0804151c 0170 strb r1, [r0]
| |||| 0x0804151e a148 ldr r0, [0x080417a6] ; [0x80417a4:4]=0x2001e894
| |||| 0x08041520 0121 movs r1, 1 ; 1
| |||| 0x08041522 0170 strb r1, [r0]
| |||| 0x08041524 a048 ldr r0, [0x080417a8] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| |||| 0x08041526 9321 movs r1, 0x93 ; 147
| |||| 0x08041528 0170 strb r1, [r0]
| ,=====< 0x0804152a 3fe0 b 0x80415ac
| |`----> 0x0804152c 9a48 ldr r0, [0x08041798] ; [0x8041798:4]=0x2001dadc md380_radio_config
| | ||| 0x0804152e 4068 ldr r0, [r0, 4]
| | ||| 0x08041530 0002 lsls r0, r0, 8
| | ||| 0x08041532 000a lsrs r0, r0, 8
| | ||| 0x08041534 dff85017 ldr.w r1, [0x08041c8c] ; [0x8041c8c:4]=0x2001e5e0
| | ||| 0x08041538 0968 ldr r1, [r1]
| | ||| 0x0804153a 8842 cmp r0, r1
| |,====< 0x0804153c 14d1 bne 0x8041568
| ||||| 0x0804153e dff86007 ldr.w r0, [0x08041ca6] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| ||||| 0x08041542 2021 movs r1, 0x20 ; 32
| ||||| 0x08041544 0170 strb r1, [r0]
| ||||| 0x08041546 dff85c07 ldr.w r0, [0x08041caa] ; [0x8041ca8:4]=0x2001e8aa event1_buffer
| ||||| 0x0804154a dff84017 ldr.w r1, [0x08041c92] ; [0x8041c90:4]=0x2001e604 q_status_4
| ||||| 0x0804154e 0968 ldr r1, [r1]
| ||||| 0x08041550 0160 str r1, [r0]
| ||||| 0x08041552 dff85407 ldr.w r0, [0x08041cae] ; [0x8041cac:4]=0xfffff0
| ||||| 0x08041556 0a21 movs r1, 0xa ; 10
| ||||| 0x08041558 0170 strb r1, [r0]
| ||||| 0x0804155a 9248 ldr r0, [0x080417a6] ; [0x80417a4:4]=0x2001e894
| ||||| 0x0804155c 0121 movs r1, 1 ; 1
| ||||| 0x0804155e 0170 strb r1, [r0]
| ||||| 0x08041560 9148 ldr r0, [0x080417a8] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| ||||| 0x08041562 9221 movs r1, 0x92 ; 146
| ||||| 0x08041564 0170 strb r1, [r0]
| ,======< 0x08041566 21e0 b 0x80415ac
| ||`----> 0x08041568 8b48 ldr r0, [0x08041798] ; [0x8041798:4]=0x2001dadc md380_radio_config
| || ||| 0x0804156a 4068 ldr r0, [r0, 4]
| || ||| 0x0804156c 0002 lsls r0, r0, 8
| || ||| 0x0804156e 000a lsrs r0, r0, 8
| || ||| 0x08041570 dff81817 ldr.w r1, [0x08041c90] ; [0x8041c90:4]=0x2001e604 q_status_4
| || ||| 0x08041574 0968 ldr r1, [r1]
| || ||| 0x08041576 8842 cmp r0, r1
| ||,====< 0x08041578 0ed1 bne 0x8041598
| |||||| 0x0804157a dff82407 ldr.w r0, [0x08041ca6] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| |||||| 0x0804157e 2021 movs r1, 0x20 ; 32
| |||||| 0x08041580 0170 strb r1, [r0]
| |||||| 0x08041582 dff82407 ldr.w r0, [0x08041cae] ; [0x8041cac:4]=0xfffff0
| |||||| 0x08041586 0a21 movs r1, 0xa ; 10
| |||||| 0x08041588 0170 strb r1, [r0]
| |||||| 0x0804158a 8648 ldr r0, [0x080417a6] ; [0x80417a4:4]=0x2001e894
| |||||| 0x0804158c 0121 movs r1, 1 ; 1
| |||||| 0x0804158e 0170 strb r1, [r0]
| |||||| 0x08041590 8548 ldr r0, [0x080417a8] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| |||||| 0x08041592 9221 movs r1, 0x92 ; 146
| |||||| 0x08041594 0170 strb r1, [r0]
| ,=======< 0x08041596 09e0 b 0x80415ac
| |||`----> 0x08041598 dff80c07 ldr.w r0, [0x08041cac] ; [0x8041cac:4]=0xfffff0
| ||| ||| 0x0804159c 0821 movs r1, 8 ; 8
| ||| ||| 0x0804159e 0170 strb r1, [r0]
| ||| ||| 0x080415a0 8048 ldr r0, [0x080417a4] ; [0x80417a4:4]=0x2001e894
| ||| ||| 0x080415a2 0121 movs r1, 1 ; 1
| ||| ||| 0x080415a4 0170 strb r1, [r0]
| ||| ||| 0x080415a6 8048 ldr r0, [0x080417aa] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| ||| ||| 0x080415a8 9321 movs r1, 0x93 ; 147
| ||| ||| 0x080415aa 0170 strb r1, [r0]
| ```-----> 0x080415ac dff8f816 ldr.w r1, [0x08041cac] ; [0x8041cac:4]=0xfffff0
| ||| 0x080415b0 8a48 ldr r0, [0x080417dc] ; [0x80417dc:4]=0x2001e65c event1_mbox_poi_radio
| ||| 0x080415b2 0068 ldr r0, [r0]
| ||| 0x080415b4 eff7f2fd bl md380_OSMboxPost
| ,====< 0x080415b8 e9e0 b 0x804178e
| |`---> 0x080415ba a078 ldrb r0, [r4, 2]
| | || 0x080415bc 3f21 movs r1, 0x3f ; '?' ; 63
| | || 0x080415be 0842 tst r0, r1
| |,===< 0x080415c0 40f0e580 bne.w 0x804178e
| |||| 0x080415c4 7748 ldr r0, [0x080417a4] ; [0x80417a4:4]=0x2001e894
| |||| 0x080415c6 0078 ldrb r0, [r0]
| |||| 0x080415c8 0828 cmp r0, 8 ; 8
| ,=====< 0x080415ca 03d0 beq 0x80415d4
| ||||| 0x080415cc 7448 ldr r0, [0x080417a0] ; [0x80417a0:4]=0x2001e600 q_struct_1
| ||||| 0x080415ce 0078 ldrb r0, [r0]
| ||||| 0x080415d0 0006 lsls r0, r0, 0x18
| ,======< 0x080415d2 2fd5 bpl 0x8041634
| |`-----> 0x080415d4 7248 ldr r0, [0x080417a0] ; [0x80417a0:4]=0x2001e600 q_struct_1
| | |||| 0x080415d6 0078 ldrb r0, [r0]
| | |||| 0x080415d8 10f07f00 ands r0, r0, 0x7f
| | |||| 0x080415dc 7049 ldr r1, [0x080417a0] ; [0x80417a0:4]=0x2001e600 q_struct_1
| | |||| 0x080415de 0870 strb r0, [r1]
| | |||| 0x080415e0 6f48 ldr r0, [0x080417a0] ; [0x80417a0:4]=0x2001e600 q_struct_1
| | |||| 0x080415e2 4078 ldrb r0, [r0, 1]
| | |||| 0x080415e4 10f0fe00 ands r0, r0, 0xfe
| | |||| 0x080415e8 6d49 ldr r1, [0x080417a0] ; [0x80417a0:4]=0x2001e600 q_struct_1
| | |||| 0x080415ea 4870 strb r0, [r1, 1]
| | |||| 0x080415ec 6b48 ldr r0, [0x0804179c] ; [0x804179c:4]=0x2001e8e5
| | |||| 0x080415ee 0021 movs r1, 0
| | |||| 0x080415f0 0170 strb r1, [r0]
| | |||| 0x080415f2 dff8a006 ldr.w r0, [0x08041c9a] ; [0x8041c98:4]=0x2001e8a8 beep_code_send
| | |||| 0x080415f6 8078 ldrb r0, [r0, 2]
| | |||| 0x080415f8 50f00400 orrs r0, r0, 4
| | |||| 0x080415fc dff89416 ldr.w r1, [0x08041c98] ; [0x8041c98:4]=0x2001e8a8 beep_code_send
| | |||| 0x08041600 8870 strb r0, [r1, 2]
| | |||| 0x08041602 6a48 ldr r0, [0x080417ae] ; [0x80417ac:4]=0x2001e650 sema1_poi
| | |||| 0x08041604 0068 ldr r0, [r0]
| | |||| 0x08041606 fef71df9 bl OSSemPost
| | |||| 0x0804160a 6348 ldr r0, [0x0804179a] ; [0x8041798:4]=0x2001dadc md380_radio_config
| | |||| 0x0804160c 4078 ldrb r0, [r0, 1]
| | |||| 0x0804160e c0f30010 ubfx r0, r0, 4, 1
| | |||| 0x08041612 c007 lsls r0, r0, 0x1f
| |,=====< 0x08041614 0ad4 bmi 0x804162c
| |||||| ;-- event_36:
| |||||| 0x08041616 dff88006 ldr.w r0, [0x08041c9e] ; [0x8041c9c:4]=0x2001e67c event2_mbox_poi_beep
| |||||| 0x0804161a 2421 movs r1, 0x24 ; '$' ; 36
| |||||| 0x0804161c 0170 strb r1, [r0]
| |||||| 0x0804161e dff87816 ldr.w r1, [0x08041c9e] ; [0x8041c9c:4]=0x2001e67c event2_mbox_poi_beep
| |||||| 0x08041622 dff87806 ldr.w r0, [0x08041ca2] ; [0x8041ca0:4]=0x2001e895 msg_sms_flags_shifted
| |||||| 0x08041626 0068 ldr r0, [r0]
| |||||| 0x08041628 eff7b8fd bl md380_OSMboxPost
| |`-----> 0x0804162c 7821 movs r1, 0x78 ; 'x' ; 120
| | |||| 0x0804162e 5420 movs r0, 0x54 ; 'T' ; 84
| | |||| 0x08041630 fef7bbfc bl c5000_spi0_writereg_1
| `------> 0x08041634 dff85006 ldr.w r0, [0x08041c8c] ; [0x8041c8c:4]=0x2001e5e0
| |||| 0x08041638 0068 ldr r0, [r0]
| |||| 0x0804163a dff87016 ldr.w r1, [0x08041cb2] ; [0x8041cb0:4]=0x2001e1ac contact
| |||| 0x0804163e 0840 ands r0, r1
| |||| 0x08041640 dff86816 ldr.w r1, [0x08041cb0] ; [0x8041cb0:4]=0x2001e1ac contact
| |||| 0x08041644 8842 cmp r0, r1
| ,=====< 0x08041646 16d1 bne 0x8041676
| ||||| 0x08041648 dff85406 ldr.w r0, [0x08041ca4] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| ||||| 0x0804164c 3021 movs r1, 0x30 ; '0' ; 48
| ||||| 0x0804164e 0170 strb r1, [r0]
| ||||| 0x08041650 dff85c06 ldr.w r0, [0x08041cb4] ; [0x8041cb4:4]=0xffffe0
| ||||| 0x08041654 0068 ldr r0, [r0]
| ||||| 0x08041656 0002 lsls r0, r0, 8
| ||||| 0x08041658 000a lsrs r0, r0, 8
| ||||| 0x0804165a dff84816 ldr.w r1, [0x08041caa] ; [0x8041ca8:4]=0x2001e8aa event1_buffer
| ||||| 0x0804165e 0860 str r0, [r1]
| ||||| 0x08041660 dff84406 ldr.w r0, [0x08041cac] ; [0x8041cac:4]=0xfffff0
| ||||| 0x08041664 0a21 movs r1, 0xa ; 10
| ||||| 0x08041666 0170 strb r1, [r0]
| ||||| 0x08041668 4e48 ldr r0, [0x080417a4] ; [0x80417a4:4]=0x2001e894
| ||||| 0x0804166a 0121 movs r1, 1 ; 1
| ||||| 0x0804166c 0170 strb r1, [r0]
| ||||| 0x0804166e 4e48 ldr r0, [0x080417aa] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| ||||| 0x08041670 9321 movs r1, 0x93 ; 147
| ||||| 0x08041672 0170 strb r1, [r0]
| ,======< 0x08041674 85e0 b 0x8041782
| |`-----> 0x08041676 dff81006 ldr.w r0, [0x08041c8e] ; [0x8041c8c:4]=0x2001e5e0
| | |||| 0x0804167a 0068 ldr r0, [r0]
| | |||| 0x0804167c dff83416 ldr.w r1, [0x08041cb8] ; [0x8041cb8:4]=0x2001d8d0
| | |||| 0x08041680 0840 ands r0, r1
| | |||| 0x08041682 dff83016 ldr.w r1, [0x08041cba] ; [0x8041cb8:4]=0x2001d8d0
| | |||| 0x08041686 8842 cmp r0, r1
| |,=====< 0x08041688 16d1 bne 0x80416b8
| |||||| 0x0804168a dff81406 ldr.w r0, [0x08041ca6] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| |||||| 0x0804168e 3021 movs r1, 0x30 ; '0' ; 48
| |||||| 0x08041690 0170 strb r1, [r0]
| |||||| 0x08041692 dff81c06 ldr.w r0, [0x08041cb6] ; [0x8041cb4:4]=0xffffe0
| |||||| 0x08041696 0068 ldr r0, [r0]
| |||||| 0x08041698 0002 lsls r0, r0, 8
| |||||| 0x0804169a 000a lsrs r0, r0, 8
| |||||| 0x0804169c dff80416 ldr.w r1, [0x08041ca8] ; [0x8041ca8:4]=0x2001e8aa event1_buffer
| |||||| 0x080416a0 0860 str r0, [r1]
| |||||| 0x080416a2 dff80406 ldr.w r0, [0x08041cae] ; [0x8041cac:4]=0xfffff0
| |||||| 0x080416a6 0a21 movs r1, 0xa ; 10
| |||||| 0x080416a8 0170 strb r1, [r0]
| |||||| 0x080416aa 3e48 ldr r0, [0x080417a6] ; [0x80417a4:4]=0x2001e894
| |||||| 0x080416ac 0121 movs r1, 1 ; 1
| |||||| 0x080416ae 0170 strb r1, [r0]
| |||||| 0x080416b0 3d48 ldr r0, [0x080417a8] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| |||||| 0x080416b2 9321 movs r1, 0x93 ; 147
| |||||| 0x080416b4 0170 strb r1, [r0]
| ,=======< 0x080416b6 64e0 b 0x8041782
| ||`-----> 0x080416b8 3748 ldr r0, [0x08041798] ; [0x8041798:4]=0x2001dadc md380_radio_config
| || |||| 0x080416ba 4068 ldr r0, [r0, 4]
| || |||| 0x080416bc 0002 lsls r0, r0, 8
| || |||| 0x080416be 000a lsrs r0, r0, 8
| || |||| 0x080416c0 dff8c815 ldr.w r1, [0x08041c90] ; [0x8041c90:4]=0x2001e604 q_status_4
| || |||| 0x080416c4 0968 ldr r1, [r1]
| || |||| 0x080416c6 8842 cmp r0, r1
| ||,=====< 0x080416c8 0ed1 bne 0x80416e8
| ||||||| 0x080416ca dff8d405 ldr.w r0, [0x08041ca6] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x080416ce 1021 movs r1, 0x10 ; 16
| ||||||| 0x080416d0 0170 strb r1, [r0]
| ||||||| 0x080416d2 dff8d405 ldr.w r0, [0x08041cae] ; [0x8041cac:4]=0xfffff0
| ||||||| 0x080416d6 0a21 movs r1, 0xa ; 10
| ||||||| 0x080416d8 0170 strb r1, [r0]
| ||||||| 0x080416da 3248 ldr r0, [0x080417a6] ; [0x80417a4:4]=0x2001e894
| ||||||| 0x080416dc 0121 movs r1, 1 ; 1
| ||||||| 0x080416de 0170 strb r1, [r0]
| ||||||| 0x080416e0 3148 ldr r0, [0x080417a8] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| ||||||| 0x080416e2 9221 movs r1, 0x92 ; 146
| ||||||| 0x080416e4 0170 strb r1, [r0]
| ========< 0x080416e6 4ce0 b 0x8041782
| ||`-----> 0x080416e8 2079 ldrb r0, [r4, 4]
| || |||| 0x080416ea 4007 lsls r0, r0, 0x1d
| ||,=====< 0x080416ec 16d5 bpl 0x804171c
| ||||||| 0x080416ee dff8b005 ldr.w r0, [0x08041ca6] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x080416f2 1021 movs r1, 0x10 ; 16
| ||||||| 0x080416f4 0170 strb r1, [r0]
| ||||||| 0x080416f6 dff8b805 ldr.w r0, [0x08041cb6] ; [0x8041cb4:4]=0xffffe0
| ||||||| 0x080416fa 0068 ldr r0, [r0]
| ||||||| 0x080416fc 0002 lsls r0, r0, 8
| ||||||| 0x080416fe 000a lsrs r0, r0, 8
| ||||||| 0x08041700 dff8a015 ldr.w r1, [0x08041ca8] ; [0x8041ca8:4]=0x2001e8aa event1_buffer
| ||||||| 0x08041704 0860 str r0, [r1]
| ||||||| 0x08041706 dff8a005 ldr.w r0, [0x08041cae] ; [0x8041cac:4]=0xfffff0
| ||||||| 0x0804170a 0a21 movs r1, 0xa ; 10
| ||||||| 0x0804170c 0170 strb r1, [r0]
| ||||||| 0x0804170e 2548 ldr r0, [0x080417a6] ; [0x80417a4:4]=0x2001e894
| ||||||| 0x08041710 0121 movs r1, 1 ; 1
| ||||||| 0x08041712 0170 strb r1, [r0]
| ||||||| 0x08041714 2448 ldr r0, [0x080417a8] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| ||||||| 0x08041716 9321 movs r1, 0x93 ; 147
| ||||||| 0x08041718 0170 strb r1, [r0]
| ========< 0x0804171a 32e0 b 0x8041782
| ||`-----> 0x0804171c 0020 movs r0, 0
| ||,=====< 0x0804171e 00e0 b 0x8041722
| --------> 0x08041720 401c adds r0, r0, 1
| ||`-----> 0x08041722 c0b2 uxtb r0, r0
| || |||| 0x08041724 2028 cmp r0, 0x20 ; 32
| ||,=====< 0x08041726 1fd2 bhs 0x8041768
| ||||||| 0x08041728 c0b2 uxtb r0, r0
| ||||||| 0x0804172a dff88c15 ldr.w r1, [0x08041cbe] ; [0x8041cbc:4]=0x2001dadc md380_radio_config
| ||||||| 0x0804172e 51f82010 ldr.w r1, [r1, r0, lsl 2]
| ||||||| 0x08041732 0902 lsls r1, r1, 8
| ||||||| 0x08041734 090a lsrs r1, r1, 8
| ||||||| 0x08041736 dff85025 ldr.w r2, [0x08041c8e] ; [0x8041c8c:4]=0x2001e5e0
| ||||||| 0x0804173a 1268 ldr r2, [r2]
| ||||||| 0x0804173c 9142 cmp r1, r2
| ========< 0x0804173e efd1 bne 0x8041720
| ||||||| 0x08041740 dff85c15 ldr.w r1, [0x08041ca4] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x08041744 1022 movs r2, 0x10 ; 16
| ||||||| 0x08041746 0a70 strb r2, [r1]
| ||||||| 0x08041748 dff85815 ldr.w r1, [0x08041ca8] ; [0x8041ca8:4]=0x2001e8aa event1_buffer
| ||||||| 0x0804174c dff83825 ldr.w r2, [0x08041c8c] ; [0x8041c8c:4]=0x2001e5e0
| ||||||| 0x08041750 1268 ldr r2, [r2]
| ||||||| 0x08041752 0a60 str r2, [r1]
| ||||||| 0x08041754 dff85015 ldr.w r1, [0x08041cac] ; [0x8041cac:4]=0xfffff0
| ||||||| 0x08041758 0a22 movs r2, 0xa ; 10
| ||||||| 0x0804175a 0a70 strb r2, [r1]
| ||||||| 0x0804175c 1149 ldr r1, [0x080417a4] ; [0x80417a4:4]=0x2001e894
| ||||||| 0x0804175e 0122 movs r2, 1 ; 1
| ||||||| 0x08041760 0a70 strb r2, [r1]
| ||||||| 0x08041762 1149 ldr r1, [0x080417aa] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| ||||||| 0x08041764 9222 movs r2, 0x92 ; 146
| ||||||| 0x08041766 0a70 strb r2, [r1]
| ||`-----> 0x08041768 c0b2 uxtb r0, r0
| || |||| 0x0804176a 2028 cmp r0, 0x20 ; 32
| ||,=====< 0x0804176c 09d1 bne 0x8041782
| ||||||| 0x0804176e dff83805 ldr.w r0, [0x08041cae] ; [0x8041cac:4]=0xfffff0
| ||||||| 0x08041772 0821 movs r1, 8 ; 8
| ||||||| 0x08041774 0170 strb r1, [r0]
| ||||||| 0x08041776 0b48 ldr r0, [0x080417a6] ; [0x80417a4:4]=0x2001e894
| ||||||| 0x08041778 0121 movs r1, 1 ; 1
| ||||||| 0x0804177a 0170 strb r1, [r0]
| ||||||| 0x0804177c 0a48 ldr r0, [0x080417a8] ; [0x80417a8:4]=0x2001e94d gui_opmode1
| ||||||| 0x0804177e 9321 movs r1, 0x93 ; 147
| ||||||| 0x08041780 0170 strb r1, [r0]
| ```-----> 0x08041782 dff82415 ldr.w r1, [0x08041cae] ; [0x8041cac:4]=0xfffff0
| |||| 0x08041786 1548 ldr r0, [0x080417de] ; [0x80417dc:4]=0x2001e65c event1_mbox_poi_radio
| |||| 0x08041788 0068 ldr r0, [r0]
| |||| 0x0804178a eff707fd bl md380_OSMboxPost
\ ````-> 0x0804178e 10bd pop {r4, pc}
/ (fcn) dmr_CSBK_handler 1158
| dmr_CSBK_handler ();
| 0x080417e0 80b5 push {r7, lr}
| 0x080417e2 4178 ldrb r1, [r0, 1]
| 0x080417e4 4907 lsls r1, r1, 0x1d
| ,=< 0x080417e6 00f13d82 bmi.w 0x8041c64
| | 0x080417ea 8179 ldrb r1, [r0, 6]
| | 0x080417ec c279 ldrb r2, [r0, 7]
| | 0x080417ee 1202 lsls r2, r2, 8
| | 0x080417f0 12eb0141 adds.w r1, r2, r1, lsl 16
| | 0x080417f4 027a ldrb r2, [r0, 8]
| | 0x080417f6 8918 adds r1, r1, r2
| | 0x080417f8 dff88c24 ldr.w r2, [0x08041c8c] ; [0x8041c8c:4]=0x2001e5e0
| | 0x080417fc 1160 str r1, [r2]
| | 0x080417fe 417a ldrb r1, [r0, 9]
| | 0x08041800 827a ldrb r2, [r0, 0xa]
| | 0x08041802 1202 lsls r2, r2, 8
| | 0x08041804 12eb0141 adds.w r1, r2, r1, lsl 16
| | 0x08041808 c27a ldrb r2, [r0, 0xb]
| | 0x0804180a 8918 adds r1, r1, r2
| | 0x0804180c dff87c24 ldr.w r2, [0x08041c90] ; [0x8041c90:4]=0x2001e604 q_status_4
| | 0x08041810 1160 str r1, [r2]
| | 0x08041812 8178 ldrb r1, [r0, 2]
| | 0x08041814 11f03f01 ands r1, r1, 0x3f
| | 0x08041818 c9b2 uxtb r1, r1
| | 0x0804181a 0429 cmp r1, 4 ; 4
| ,==< 0x0804181c 3cd1 bne 0x8041898
| || 0x0804181e dff89c24 ldr.w r2, [0x08041cc2] ; [0x8041cc0:4]=0x2001e94b gui_opmode2
| || 0x08041822 5268 ldr r2, [r2, 4]
| || 0x08041824 1202 lsls r2, r2, 8
| || 0x08041826 120a lsrs r2, r2, 8
| || 0x08041828 dff85c34 ldr.w r3, [0x08041c8c] ; [0x8041c8c:4]=0x2001e5e0
| || 0x0804182c 1b68 ldr r3, [r3]
| || 0x0804182e 9a42 cmp r2, r3
| ,===< 0x08041830 32d1 bne 0x8041898
| ||| 0x08041832 dff88c24 ldr.w r2, [0x08041cc6] ; [0x8041cc4:4]=0x2001e350
| ||| 0x08041836 1278 ldrb r2, [r2]
| ||| 0x08041838 002a cmp r2, 0
| ,====< 0x0804183a 2dd0 beq 0x8041898
| |||| 0x0804183c dff86004 ldr.w r0, [0x08041ca4] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| |||| 0x08041840 2021 movs r1, 0x20 ; 32
| |||| 0x08041842 0170 strb r1, [r0]
| |||| 0x08041844 dff85c04 ldr.w r0, [0x08041ca8] ; [0x8041ca8:4]=0x2001e8aa event1_buffer
| |||| 0x08041848 dff84014 ldr.w r1, [0x08041c90] ; [0x8041c90:4]=0x2001e604 q_status_4
| |||| 0x0804184c 0968 ldr r1, [r1]
| |||| 0x0804184e 0160 str r1, [r0]
| |||| 0x08041850 c321 movs r1, 0xc3 ; 195
| |||| 0x08041852 4020 movs r0, 0x40 ; '@' ; 64
| |||| 0x08041854 fef796fb bl c5000_spi0_writereg
| |||| 0x08041858 f0f7f1fc bl func_3223e
| |||| 0x0804185c dff86404 ldr.w r0, [0x08041cc8] ; [0x8041cc8:4]=0x2001e8bc
| |||| 0x08041860 0090 str r0, [sp]
| |||| 0x08041862 2023 movs r3, 0x20 ; 32
| |||| 0x08041864 0022 movs r2, 0
| |||| 0x08041866 dff83c04 ldr.w r0, [0x08041caa] ; [0x8041ca8:4]=0x2001e8aa event1_buffer
| |||| 0x0804186a 0168 ldr r1, [r0]
| |||| 0x0804186c dff84c04 ldr.w r0, [0x08041cc0] ; [0x8041cc0:4]=0x2001e94b gui_opmode2
| |||| 0x08041870 4068 ldr r0, [r0, 4]
| |||| 0x08041872 fcf757f8 bl func_3d924
| |||| 0x08041876 dff85004 ldr.w r0, [0x08041cce] ; [0x8041ccc:4]=0x2001e8bd
| |||| 0x0804187a 3021 movs r1, 0x30 ; '0' ; 48
| |||| 0x0804187c 0170 strb r1, [r0]
| |||| 0x0804187e dff84c04 ldr.w r0, [0x08041cd2] ; [0x8041cd0:4]=0x2001e8be
| |||| 0x08041882 0021 movs r1, 0
| |||| 0x08041884 0170 strb r1, [r0]
| |||| 0x08041886 dff84804 ldr.w r0, [0x08041cd6] ; [0x8041cd4:4]=0x2001e894
| |||| 0x0804188a 0121 movs r1, 1 ; 1
| |||| 0x0804188c 0170 strb r1, [r0]
| |||| 0x0804188e dff84404 ldr.w r0, [0x08041cda] ; [0x8041cd8:4]=0x2001e8ab
| |||| 0x08041892 0921 movs r1, 9 ; 9
| |||| 0x08041894 0170 strb r1, [r0]
| ,=====< 0x08041896 e5e1 b 0x8041c64
| |```--> 0x08041898 c9b2 uxtb r1, r1
| | | 0x0804189a 0529 cmp r1, 5 ; 5
| | ,==< 0x0804189c 2ad1 bne 0x80418f4
| | || 0x0804189e dff81c24 ldr.w r2, [0x08041cc2] ; [0x8041cc0:4]=0x2001e94b gui_opmode2
| | || 0x080418a2 5268 ldr r2, [r2, 4]
| | || 0x080418a4 1202 lsls r2, r2, 8
| | || 0x080418a6 120a lsrs r2, r2, 8
| | || 0x080418a8 dff8dc33 ldr.w r3, [0x08041c8c] ; [0x8041c8c:4]=0x2001e5e0
| | || 0x080418ac 1b68 ldr r3, [r3]
| | || 0x080418ae 9a42 cmp r2, r3
| | ,===< 0x080418b0 20d1 bne 0x80418f4
| | ||| 0x080418b2 4179 ldrb r1, [r0, 5]
| | ||| 0x080418b4 8906 lsls r1, r1, 0x1a
| |,====< 0x080418b6 0bd5 bpl 0x80418d0
| ||||| 0x080418b8 dff81c04 ldr.w r0, [0x08041cdc] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| ||||| 0x080418bc 1921 movs r1, 0x19 ; 25
| ||||| 0x080418be 0170 strb r1, [r0]
| ||||| 0x080418c0 dff81414 ldr.w r1, [0x08041cdc] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| ||||| 0x080418c4 dff81404 ldr.w r0, [0x08041ce0] ; [0x8041ce0:4]=0x2001e73c
| ||||| 0x080418c8 0068 ldr r0, [r0]
| ||||| 0x080418ca eff767fc bl md380_OSMboxPost
| ,======< 0x080418ce c9e1 b 0x8041c64
| ||`----> 0x080418d0 4079 ldrb r0, [r0, 5]
| || ||| 0x080418d2 10f02100 ands r0, r0, 0x21
| || ||| 0x080418d6 2128 cmp r0, 0x21 ; '!' ; 33
| ||,====< 0x080418d8 40f0c481 bne.w 0x8041c64
| |||||| 0x080418dc dff8f803 ldr.w r0, [0x08041cdc] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| |||||| 0x080418e0 1a21 movs r1, 0x1a ; 26
| |||||| 0x080418e2 0170 strb r1, [r0]
| |||||| 0x080418e4 dff8f013 ldr.w r1, [0x08041cdc] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| |||||| 0x080418e8 dff8f003 ldr.w r0, [0x08041ce0] ; [0x8041ce0:4]=0x2001e73c
| |||||| 0x080418ec 0068 ldr r0, [r0]
| |||||| 0x080418ee eff755fc bl md380_OSMboxPost
| ,=======< 0x080418f2 b7e1 b 0x8041c64
| ||||``--> 0x080418f4 c9b2 uxtb r1, r1
| |||| | 0x080418f6 2429 cmp r1, 0x24 ; '$' ; 36
| |||| ,==< 0x080418f8 47d1 bne 0x804198a
| |||| || 0x080418fa dff8c023 ldr.w r2, [0x08041cc2] ; [0x8041cc0:4]=0x2001e94b gui_opmode2
| |||| || 0x080418fe 5268 ldr r2, [r2, 4]
| |||| || 0x08041900 1202 lsls r2, r2, 8
| |||| || 0x08041902 120a lsrs r2, r2, 8
| |||| || 0x08041904 dff88033 ldr.w r3, [0x08041c8c] ; [0x8041c8c:4]=0x2001e5e0
| |||| || 0x08041908 1b68 ldr r3, [r3]
| |||| || 0x0804190a 9a42 cmp r2, r3
| ||||,===< 0x0804190c 3dd1 bne 0x804198a
| ||||||| 0x0804190e 4179 ldrb r1, [r0, 5]
| ||||||| 0x08041910 8029 cmp r1, 0x80 ; 128
| ========< 0x08041912 10d1 bne 0x8041936
| ||||||| 0x08041914 dff88813 ldr.w r1, [0x08041ca4] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x08041918 0978 ldrb r1, [r1]
| ||||||| 0x0804191a 2629 cmp r1, 0x26 ; '&' ; 38
| ========< 0x0804191c 0bd1 bne 0x8041936
| ||||||| 0x0804191e dff8b803 ldr.w r0, [0x08041cde] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x08041922 1921 movs r1, 0x19 ; 25
| ||||||| 0x08041924 0170 strb r1, [r0]
| ||||||| 0x08041926 dff8b013 ldr.w r1, [0x08041cde] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x0804192a dff8b003 ldr.w r0, [0x08041ce2] ; [0x8041ce0:4]=0x2001e73c
| ||||||| 0x0804192e 0068 ldr r0, [r0]
| ||||||| 0x08041930 eff734fc bl md380_OSMboxPost
| ========< 0x08041934 96e1 b 0x8041c64
| --------> 0x08041936 4179 ldrb r1, [r0, 5]
| ||||||| 0x08041938 fe29 cmp r1, 0xfe ; 254
| ========< 0x0804193a 10d1 bne 0x804195e
| ||||||| 0x0804193c dff86013 ldr.w r1, [0x08041ca4] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x08041940 0978 ldrb r1, [r1]
| ||||||| 0x08041942 2729 cmp r1, 0x27 ; ''' ; 39
| ========< 0x08041944 0bd1 bne 0x804195e
| ||||||| 0x08041946 dff89003 ldr.w r0, [0x08041cde] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x0804194a 1921 movs r1, 0x19 ; 25
| ||||||| 0x0804194c 0170 strb r1, [r0]
| ||||||| 0x0804194e dff88813 ldr.w r1, [0x08041cde] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x08041952 dff88803 ldr.w r0, [0x08041ce2] ; [0x8041ce0:4]=0x2001e73c
| ||||||| 0x08041956 0068 ldr r0, [r0]
| ||||||| 0x08041958 eff720fc bl md380_OSMboxPost
| ========< 0x0804195c 82e1 b 0x8041c64
| --------> 0x0804195e 4079 ldrb r0, [r0, 5]
| ||||||| 0x08041960 ff28 cmp r0, 0xff ; 255
| ========< 0x08041962 40f07f81 bne.w 0x8041c64
| ||||||| 0x08041966 dff83803 ldr.w r0, [0x08041ca6] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x0804196a 0078 ldrb r0, [r0]
| ||||||| 0x0804196c 2828 cmp r0, 0x28 ; '(' ; 40
| ========< 0x0804196e 40f07981 bne.w 0x8041c64
| ||||||| 0x08041972 dff86403 ldr.w r0, [0x08041cde] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x08041976 1921 movs r1, 0x19 ; 25
| ||||||| 0x08041978 0170 strb r1, [r0]
| ||||||| 0x0804197a dff85c13 ldr.w r1, [0x08041cde] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x0804197e dff85c03 ldr.w r0, [0x08041ce2] ; [0x8041ce0:4]=0x2001e73c
| ||||||| 0x08041982 0068 ldr r0, [r0]
| ||||||| 0x08041984 eff70afc bl md380_OSMboxPost
| ========< 0x08041988 6ce1 b 0x8041c64
| ||||``--> 0x0804198a c9b2 uxtb r1, r1
| |||| | 0x0804198c 2029 cmp r1, 0x20 ; 32
| |||| ,==< 0x0804198e 41d1 bne 0x8041a14
| |||| || 0x08041990 dff82823 ldr.w r2, [0x08041cc0] ; [0x8041cc0:4]=0x2001e94b gui_opmode2
| |||| || 0x08041994 5268 ldr r2, [r2, 4]
| |||| || 0x08041996 1202 lsls r2, r2, 8
| |||| || 0x08041998 120a lsrs r2, r2, 8
| |||| || 0x0804199a bb4b ldr r3, [0x08041c8a] ; [0x8041c88:4]=0x2001e5e4
| |||| || 0x0804199c 1b68 ldr r3, [r3]
| |||| || 0x0804199e 9a42 cmp r2, r3
| ||||,===< 0x080419a0 38d1 bne 0x8041a14
| ||||||| 0x080419a2 0179 ldrb r1, [r0, 4]
| ||||||| 0x080419a4 9f29 cmp r1, 0x9f ; 159
| ========< 0x080419a6 0fd1 bne 0x80419c8
| ||||||| 0x080419a8 bd49 ldr r1, [0x08041ca0] ; [0x8041ca0:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x080419aa 0978 ldrb r1, [r1]
| ||||||| 0x080419ac 2229 cmp r1, 0x22 ; '"' ; 34
| ========< 0x080419ae 0bd1 bne 0x80419c8
| ||||||| 0x080419b0 dff82403 ldr.w r0, [0x08041cdc] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x080419b4 1921 movs r1, 0x19 ; 25
| ||||||| 0x080419b6 0170 strb r1, [r0]
| ||||||| 0x080419b8 dff81c13 ldr.w r1, [0x08041cdc] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x080419bc dff81c03 ldr.w r0, [0x08041ce0] ; [0x8041ce0:4]=0x2001e73c
| ||||||| 0x080419c0 0068 ldr r0, [r0]
| ||||||| 0x080419c2 eff7ebfb bl md380_OSMboxPost
| ========< 0x080419c6 4de1 b 0x8041c64
| --------> 0x080419c8 0179 ldrb r1, [r0, 4]
| ||||||| 0x080419ca 9d29 cmp r1, 0x9d ; 157
| ========< 0x080419cc 0cd1 bne 0x80419e8
| ||||||| 0x080419ce b449 ldr r1, [0x08041ca2] ; [0x8041ca0:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x080419d0 0978 ldrb r1, [r1]
| ||||||| 0x080419d2 2929 cmp r1, 0x29 ; ')' ; 41
| ========< 0x080419d4 08d1 bne 0x80419e8
| ||||||| 0x080419d6 c048 ldr r0, [0x08041cda] ; [0x8041cd8:4]=0x2001e8ab
| ||||||| 0x080419d8 1921 movs r1, 0x19 ; 25
| ||||||| 0x080419da 0170 strb r1, [r0]
| ||||||| 0x080419dc be49 ldr r1, [0x08041cd8] ; [0x8041cd8:4]=0x2001e8ab
| ||||||| 0x080419de bf48 ldr r0, [0x08041cde] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x080419e0 0068 ldr r0, [r0]
| ||||||| 0x080419e2 eff7dbfb bl md380_OSMboxPost
| ========< 0x080419e6 3de1 b 0x8041c64
| --------> 0x080419e8 0079 ldrb r0, [r0, 4]
| ||||||| 0x080419ea a728 cmp r0, 0xa7 ; 167
| ========< 0x080419ec 40f03a81 bne.w 0x8041c64
| ||||||| 0x080419f0 ab48 ldr r0, [0x08041ca0] ; [0x8041ca0:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x080419f2 0078 ldrb r0, [r0]
| ||||||| 0x080419f4 2528 cmp r0, 0x25 ; '%' ; 37
| ========< 0x080419f6 04d0 beq 0x8041a02
| ||||||| 0x080419f8 a948 ldr r0, [0x08041ca0] ; [0x8041ca0:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x080419fa 0078 ldrb r0, [r0]
| ||||||| 0x080419fc 1528 cmp r0, 0x15 ; 21
| ========< 0x080419fe 40f03181 bne.w 0x8041c64
| --------> 0x08041a02 b548 ldr r0, [0x08041cda] ; [0x8041cd8:4]=0x2001e8ab
| ||||||| 0x08041a04 1921 movs r1, 0x19 ; 25
| ||||||| 0x08041a06 0170 strb r1, [r0]
| ||||||| 0x08041a08 b349 ldr r1, [0x08041cd8] ; [0x8041cd8:4]=0x2001e8ab
| ||||||| 0x08041a0a b448 ldr r0, [0x08041cde] ; [0x8041cdc:4]=0x2001e660 event4_mbox_poi
| ||||||| 0x08041a0c 0068 ldr r0, [r0]
| ||||||| 0x08041a0e eff7c5fb bl md380_OSMboxPost
| ========< 0x08041a12 27e1 b 0x8041c64
| ||||``--> 0x08041a14 c9b2 uxtb r1, r1
| |||| | 0x08041a16 1f29 cmp r1, 0x1f ; 31
| |||| ,==< 0x08041a18 2dd1 bne 0x8041a76
| |||| || 0x08041a1a a84a ldr r2, [0x08041cbe] ; [0x8041cbc:4]=0x2001dadc md380_radio_config
| |||| || 0x08041a1c 5268 ldr r2, [r2, 4]
| |||| || 0x08041a1e 1202 lsls r2, r2, 8
| |||| || 0x08041a20 120a lsrs r2, r2, 8
| |||| || 0x08041a22 994b ldr r3, [0x08041c8a] ; [0x8041c88:4]=0x2001e5e4
| |||| || 0x08041a24 1b68 ldr r3, [r3]
| |||| || 0x08041a26 9a42 cmp r2, r3
| ||||,===< 0x08041a28 25d1 bne 0x8041a76
| ||||||| 0x08041a2a a54a ldr r2, [0x08041cc2] ; [0x8041cc0:4]=0x2001e94b gui_opmode2
| ||||||| 0x08041a2c 1278 ldrb r2, [r2]
| ||||||| 0x08041a2e 002a cmp r2, 0
| ========< 0x08041a30 21d0 beq 0x8041a76
| ||||||| 0x08041a32 9b48 ldr r0, [0x08041ca2] ; [0x8041ca0:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x08041a34 2221 movs r1, 0x22 ; '"' ; 34
| ||||||| 0x08041a36 0170 strb r1, [r0]
| ||||||| 0x08041a38 9a48 ldr r0, [0x08041ca4] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x08041a3a 9449 ldr r1, [0x08041c8e] ; [0x8041c8c:4]=0x2001e5e0
| ||||||| 0x08041a3c 0968 ldr r1, [r1]
| ||||||| 0x08041a3e 0160 str r1, [r0]
| ||||||| 0x08041a40 c321 movs r1, 0xc3 ; 195
| ||||||| 0x08041a42 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x08041a44 fef79efa bl c5000_spi0_writereg
| ||||||| 0x08041a48 f0f7f9fb bl func_3223e
| ||||||| 0x08041a4c 9d4b ldr r3, [0x08041cc4] ; [0x8041cc4:4]=0x2001e350
| ||||||| 0x08041a4e 1f22 movs r2, 0x1f ; 31
| ||||||| 0x08041a50 9448 ldr r0, [0x08041ca4] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x08041a52 0168 ldr r1, [r0]
| ||||||| 0x08041a54 9948 ldr r0, [0x08041cbc] ; [0x8041cbc:4]=0x2001dadc md380_radio_config
| ||||||| 0x08041a56 4068 ldr r0, [r0, 4]
| ||||||| 0x08041a58 fbf7f0ff bl func_3da3c
| ||||||| 0x08041a5c 9a48 ldr r0, [0x08041cc8] ; [0x8041cc8:4]=0x2001e8bc
| ||||||| 0x08041a5e 3021 movs r1, 0x30 ; '0' ; 48
| ||||||| 0x08041a60 0170 strb r1, [r0]
| ||||||| 0x08041a62 9a48 ldr r0, [0x08041cce] ; [0x8041ccc:4]=0x2001e8bd
| ||||||| 0x08041a64 0021 movs r1, 0
| ||||||| 0x08041a66 0170 strb r1, [r0]
| ||||||| 0x08041a68 9948 ldr r0, [0x08041cd0] ; [0x8041cd0:4]=0x2001e8be
| ||||||| 0x08041a6a 0121 movs r1, 1 ; 1
| ||||||| 0x08041a6c 0170 strb r1, [r0]
| ||||||| 0x08041a6e 9948 ldr r0, [0x08041cd6] ; [0x8041cd4:4]=0x2001e894
| ||||||| 0x08041a70 0921 movs r1, 9 ; 9
| ||||||| 0x08041a72 0170 strb r1, [r0]
| ========< 0x08041a74 f6e0 b 0x8041c64
| ----``--> 0x08041a76 c9b2 uxtb r1, r1
| |||| | 0x08041a78 2429 cmp r1, 0x24 ; '$' ; 36
| |||| ,==< 0x08041a7a 70d1 bne 0x8041b5e
| |||| || 0x08041a7c 8f4a ldr r2, [0x08041cbc] ; [0x8041cbc:4]=0x2001dadc md380_radio_config
| |||| || 0x08041a7e 5268 ldr r2, [r2, 4]
| |||| || 0x08041a80 1202 lsls r2, r2, 8
| |||| || 0x08041a82 120a lsrs r2, r2, 8
| |||| || 0x08041a84 814b ldr r3, [0x08041c8c] ; [0x8041c8c:4]=0x2001e5e0
| |||| || 0x08041a86 1b68 ldr r3, [r3]
| |||| || 0x08041a88 9a42 cmp r2, r3
| ||||,===< 0x08041a8a 68d1 bne 0x8041b5e
| ||||||| 0x08041a8c 4179 ldrb r1, [r0, 5]
| ||||||| 0x08041a8e 0029 cmp r1, 0
| ========< 0x08041a90 1dd1 bne 0x8041ace
| ||||||| 0x08041a92 8348 ldr r0, [0x08041ca2] ; [0x8041ca0:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x08041a94 2621 movs r1, 0x26 ; '&' ; 38
| ||||||| 0x08041a96 0170 strb r1, [r0]
| ||||||| 0x08041a98 c321 movs r1, 0xc3 ; 195
| ||||||| 0x08041a9a 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x08041a9c fef772fa bl c5000_spi0_writereg
| ||||||| 0x08041aa0 f0f7cdfb bl func_3223e
| ||||||| 0x08041aa4 874b ldr r3, [0x08041cc4] ; [0x8041cc4:4]=0x2001e350
| ||||||| 0x08041aa6 0022 movs r2, 0
| ||||||| 0x08041aa8 7748 ldr r0, [0x08041c88] ; [0x8041c88:4]=0x2001e5e4
| ||||||| 0x08041aaa 0168 ldr r1, [r0]
| ||||||| 0x08041aac 8348 ldr r0, [0x08041cbc] ; [0x8041cbc:4]=0x2001dadc md380_radio_config
| ||||||| 0x08041aae 4068 ldr r0, [r0, 4]
| ||||||| 0x08041ab0 fbf773ff bl func_3d99a
| ||||||| 0x08041ab4 8448 ldr r0, [0x08041cc8] ; [0x8041cc8:4]=0x2001e8bc
| ||||||| 0x08041ab6 3021 movs r1, 0x30 ; '0' ; 48
| ||||||| 0x08041ab8 0170 strb r1, [r0]
| ||||||| 0x08041aba 8448 ldr r0, [0x08041cce] ; [0x8041ccc:4]=0x2001e8bd
| ||||||| 0x08041abc 0021 movs r1, 0
| ||||||| 0x08041abe 0170 strb r1, [r0]
| ||||||| 0x08041ac0 8348 ldr r0, [0x08041cd0] ; [0x8041cd0:4]=0x2001e8be
| ||||||| 0x08041ac2 0121 movs r1, 1 ; 1
| ||||||| 0x08041ac4 0170 strb r1, [r0]
| ||||||| 0x08041ac6 8348 ldr r0, [0x08041cd6] ; [0x8041cd4:4]=0x2001e894
| ||||||| 0x08041ac8 0921 movs r1, 9 ; 9
| ||||||| 0x08041aca 0170 strb r1, [r0]
| ========< 0x08041acc cae0 b 0x8041c64
| --------> 0x08041ace 4179 ldrb r1, [r0, 5]
| ||||||| 0x08041ad0 7e29 cmp r1, 0x7e ; '~' ; 126
| ========< 0x08041ad2 1dd1 bne 0x8041b10
| ||||||| 0x08041ad4 7248 ldr r0, [0x08041ca0] ; [0x8041ca0:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x08041ad6 2721 movs r1, 0x27 ; ''' ; 39
| ||||||| 0x08041ad8 0170 strb r1, [r0]
| ||||||| 0x08041ada c321 movs r1, 0xc3 ; 195
| ||||||| 0x08041adc 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x08041ade fef751fa bl c5000_spi0_writereg
| ||||||| 0x08041ae2 f0f7acfb bl func_3223e
| ||||||| 0x08041ae6 774b ldr r3, [0x08041cc6] ; [0x8041cc4:4]=0x2001e350
| ||||||| 0x08041ae8 7e22 movs r2, 0x7e ; '~' ; 126
| ||||||| 0x08041aea 6748 ldr r0, [0x08041c8a] ; [0x8041c88:4]=0x2001e5e4
| ||||||| 0x08041aec 0168 ldr r1, [r0]
| ||||||| 0x08041aee 7348 ldr r0, [0x08041cbe] ; [0x8041cbc:4]=0x2001dadc md380_radio_config
| ||||||| 0x08041af0 4068 ldr r0, [r0, 4]
| ||||||| 0x08041af2 fbf752ff bl func_3d99a
| ||||||| 0x08041af6 7448 ldr r0, [0x08041cca] ; [0x8041cc8:4]=0x2001e8bc
| ||||||| 0x08041af8 3021 movs r1, 0x30 ; '0' ; 48
| ||||||| 0x08041afa 0170 strb r1, [r0]
| ||||||| 0x08041afc 7348 ldr r0, [0x08041ccc] ; [0x8041ccc:4]=0x2001e8bd
| ||||||| 0x08041afe 0021 movs r1, 0
| ||||||| 0x08041b00 0170 strb r1, [r0]
| ||||||| 0x08041b02 7348 ldr r0, [0x08041cd2] ; [0x8041cd0:4]=0x2001e8be
| ||||||| 0x08041b04 0121 movs r1, 1 ; 1
| ||||||| 0x08041b06 0170 strb r1, [r0]
| ||||||| 0x08041b08 7248 ldr r0, [0x08041cd4] ; [0x8041cd4:4]=0x2001e894
| ||||||| 0x08041b0a 0921 movs r1, 9 ; 9
| ||||||| 0x08041b0c 0170 strb r1, [r0]
| ========< 0x08041b0e a9e0 b 0x8041c64
| --------> 0x08041b10 4079 ldrb r0, [r0, 5]
| ||||||| 0x08041b12 7f28 cmp r0, 0x7f ; 127
| ========< 0x08041b14 40f0a680 bne.w 0x8041c64
| ||||||| 0x08041b18 7148 ldr r0, [0x08041ce0] ; [0x8041ce0:4]=0x2001e73c
| ||||||| 0x08041b1a 0078 ldrb r0, [r0]
| ||||||| 0x08041b1c c007 lsls r0, r0, 0x1f
| ========< 0x08041b1e 40f1a180 bpl.w 0x8041c64
| ||||||| 0x08041b22 5f48 ldr r0, [0x08041ca2] ; [0x8041ca0:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x08041b24 2821 movs r1, 0x28 ; '(' ; 40
| ||||||| 0x08041b26 0170 strb r1, [r0]
| ||||||| 0x08041b28 c321 movs r1, 0xc3 ; 195
| ||||||| 0x08041b2a 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x08041b2c fef72afa bl c5000_spi0_writereg
| ||||||| 0x08041b30 f0f785fb bl func_3223e
| ||||||| 0x08041b34 634b ldr r3, [0x08041cc4] ; [0x8041cc4:4]=0x2001e350
| ||||||| 0x08041b36 7f22 movs r2, 0x7f ; 127
| ||||||| 0x08041b38 5348 ldr r0, [0x08041c88] ; [0x8041c88:4]=0x2001e5e4
| ||||||| 0x08041b3a 0168 ldr r1, [r0]
| ||||||| 0x08041b3c 5f48 ldr r0, [0x08041cbc] ; [0x8041cbc:4]=0x2001dadc md380_radio_config
| ||||||| 0x08041b3e 4068 ldr r0, [r0, 4]
| ||||||| 0x08041b40 fbf72bff bl func_3d99a
| ||||||| 0x08041b44 6048 ldr r0, [0x08041cc8] ; [0x8041cc8:4]=0x2001e8bc
| ||||||| 0x08041b46 3021 movs r1, 0x30 ; '0' ; 48
| ||||||| 0x08041b48 0170 strb r1, [r0]
| ||||||| 0x08041b4a 6048 ldr r0, [0x08041cce] ; [0x8041ccc:4]=0x2001e8bd
| ||||||| 0x08041b4c 0021 movs r1, 0
| ||||||| 0x08041b4e 0170 strb r1, [r0]
| ||||||| 0x08041b50 5f48 ldr r0, [0x08041cd0] ; [0x8041cd0:4]=0x2001e8be
| ||||||| 0x08041b52 0121 movs r1, 1 ; 1
| ||||||| 0x08041b54 0170 strb r1, [r0]
| ||||||| 0x08041b56 5f48 ldr r0, [0x08041cd6] ; [0x8041cd4:4]=0x2001e894
| ||||||| 0x08041b58 0921 movs r1, 9 ; 9
| ||||||| 0x08041b5a 0170 strb r1, [r0]
| ========< 0x08041b5c 82e0 b 0x8041c64
| ||||``--> 0x08041b5e c9b2 uxtb r1, r1
| |||| | 0x08041b60 1d29 cmp r1, 0x1d ; 29
| |||| ,==< 0x08041b62 32d1 bne 0x8041bca
| |||| || 0x08041b64 554a ldr r2, [0x08041cbc] ; [0x8041cbc:4]=0x2001dadc md380_radio_config
| |||| || 0x08041b66 5268 ldr r2, [r2, 4]
| |||| || 0x08041b68 1202 lsls r2, r2, 8
| |||| || 0x08041b6a 120a lsrs r2, r2, 8
| |||| || 0x08041b6c 474b ldr r3, [0x08041c8c] ; [0x8041c8c:4]=0x2001e5e0
| |||| || 0x08041b6e 1b68 ldr r3, [r3]
| |||| || 0x08041b70 9a42 cmp r2, r3
| ||||,===< 0x08041b72 2ad1 bne 0x8041bca
| ||||||| 0x08041b74 5a49 ldr r1, [0x08041ce0] ; [0x8041ce0:4]=0x2001e73c
| ||||||| 0x08041b76 0978 ldrb r1, [r1]
| ||||||| 0x08041b78 c1f34001 ubfx r1, r1, 1, 1
| ||||||| 0x08041b7c c907 lsls r1, r1, 0x1f
| ========< 0x08041b7e 71d5 bpl 0x8041c64
| ||||||| 0x08041b80 4749 ldr r1, [0x08041ca0] ; [0x8041ca0:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x08041b82 2922 movs r2, 0x29 ; ')' ; 41
| ||||||| 0x08041b84 0a70 strb r2, [r1]
| ||||||| 0x08041b86 4749 ldr r1, [0x08041ca6] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x08041b88 3f4a ldr r2, [0x08041c88] ; [0x8041c88:4]=0x2001e5e4
| ||||||| 0x08041b8a 1268 ldr r2, [r2]
| ||||||| 0x08041b8c 0a60 str r2, [r1]
| ||||||| 0x08041b8e 4079 ldrb r0, [r0, 5]
| ||||||| 0x08041b90 5449 ldr r1, [0x08041ce4] ; [0x8041ce4:4]=0x2001e8b7
| ||||||| 0x08041b92 0870 strb r0, [r1]
| ||||||| 0x08041b94 c321 movs r1, 0xc3 ; 195
| ||||||| 0x08041b96 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x08041b98 fef7f4f9 bl c5000_spi0_writereg
| ||||||| 0x08041b9c f0f74ffb bl func_3223e
| ||||||| 0x08041ba0 484b ldr r3, [0x08041cc4] ; [0x8041cc4:4]=0x2001e350
| ||||||| 0x08041ba2 1d22 movs r2, 0x1d ; 29
| ||||||| 0x08041ba4 3848 ldr r0, [0x08041c88] ; [0x8041c88:4]=0x2001e5e4
| ||||||| 0x08041ba6 0168 ldr r1, [r0]
| ||||||| 0x08041ba8 4448 ldr r0, [0x08041cbc] ; [0x8041cbc:4]=0x2001dadc md380_radio_config
| ||||||| 0x08041baa 4068 ldr r0, [r0, 4]
| ||||||| 0x08041bac fbf746ff bl func_3da3c
| ||||||| 0x08041bb0 4548 ldr r0, [0x08041cc8] ; [0x8041cc8:4]=0x2001e8bc
| ||||||| 0x08041bb2 3021 movs r1, 0x30 ; '0' ; 48
| ||||||| 0x08041bb4 0170 strb r1, [r0]
| ||||||| 0x08041bb6 4548 ldr r0, [0x08041cce] ; [0x8041ccc:4]=0x2001e8bd
| ||||||| 0x08041bb8 0021 movs r1, 0
| ||||||| 0x08041bba 0170 strb r1, [r0]
| ||||||| 0x08041bbc 4448 ldr r0, [0x08041cd0] ; [0x8041cd0:4]=0x2001e8be
| ||||||| 0x08041bbe 0121 movs r1, 1 ; 1
| ||||||| 0x08041bc0 0170 strb r1, [r0]
| ||||||| 0x08041bc2 4448 ldr r0, [0x08041cd6] ; [0x8041cd4:4]=0x2001e894
| ||||||| 0x08041bc4 0921 movs r1, 9 ; 9
| ||||||| 0x08041bc6 0170 strb r1, [r0]
| ========< 0x08041bc8 4ce0 b 0x8041c64
| ||||``--> 0x08041bca c9b2 uxtb r1, r1
| |||| | 0x08041bcc 2729 cmp r1, 0x27 ; ''' ; 39
| |||| ,==< 0x08041bce 49d1 bne 0x8041c64
| |||| || 0x08041bd0 4548 ldr r0, [0x08041ce8] ; [0x8041ce8:4]=0x2001e892 gui_opmode3
| |||| || 0x08041bd2 0078 ldrb r0, [r0]
| |||| || 0x08041bd4 0828 cmp r0, 8 ; 8
| ||||,===< 0x08041bd6 45d0 beq 0x8041c64
| ||||||| 0x08041bd8 4348 ldr r0, [0x08041ce8] ; [0x8041ce8:4]=0x2001e892 gui_opmode3
| ||||||| 0x08041bda 0078 ldrb r0, [r0]
| ||||||| 0x08041bdc 0128 cmp r0, 1 ; 1
| ========< 0x08041bde 41d0 beq 0x8041c64
| ||||||| 0x08041be0 0020 movs r0, 0
| ========< 0x08041be2 00e0 b 0x8041be6
| --------> 0x08041be4 401c adds r0, r0, 1
| --------> 0x08041be6 c0b2 uxtb r0, r0
| ||||||| 0x08041be8 2028 cmp r0, 0x20 ; 32
| ========< 0x08041bea 3bd2 bhs 0x8041c64
| ||||||| 0x08041bec c0b2 uxtb r0, r0
| ||||||| 0x08041bee 3249 ldr r1, [0x08041cba] ; [0x8041cb8:4]=0x2001d8d0
| ||||||| 0x08041bf0 51f82010 ldr.w r1, [r1, r0, lsl 2]
| ||||||| 0x08041bf4 0902 lsls r1, r1, 8
| ||||||| 0x08041bf6 090a lsrs r1, r1, 8
| ||||||| 0x08041bf8 234a ldr r2, [0x08041c88] ; [0x8041c88:4]=0x2001e5e4
| ||||||| 0x08041bfa 1268 ldr r2, [r2]
| ||||||| 0x08041bfc 9142 cmp r1, r2
| ========< 0x08041bfe f1d1 bne 0x8041be4
| ||||||| 0x08041c00 2849 ldr r1, [0x08041ca4] ; [0x8041ca4:4]=0x2001e5dc msg_dest_addr
| ||||||| 0x08041c02 214a ldr r2, [0x08041c8a] ; [0x8041c88:4]=0x2001e5e4
| ||||||| 0x08041c04 1268 ldr r2, [r2]
| ||||||| 0x08041c06 0a60 str r2, [r1]
| ||||||| 0x08041c08 c0b2 uxtb r0, r0
| ||||||| 0x08041c0a 3849 ldr r1, [0x08041cee] ; [0x8041cec:4]=0x2001da7c
| ||||||| 0x08041c0c 11eb4000 adds.w r0, r1, r0, lsl 1
| ||||||| 0x08041c10 008c ldrh r0, [r0, 0x20]
| ||||||| 0x08041c12 3749 ldr r1, [0x08041cf2] ; [0x8041cf0:4]=0x2001e79e
| ||||||| 0x08041c14 0880 strh r0, [r1]
| ||||||| 0x08041c16 3748 ldr r0, [0x08041cf6] ; [0x8041cf4:4]=0x2001de78 struct_channel_info2
| ||||||| 0x08041c18 c078 ldrb r0, [r0, 3]
| ||||||| 0x08041c1a c0f3c000 ubfx r0, r0, 3, 1
| ||||||| 0x08041c1e c007 lsls r0, r0, 0x1f
| ========< 0x08041c20 1dd5 bpl 0x8041c5e
| ||||||| 0x08041c22 1f48 ldr r0, [0x08041ca2] ; [0x8041ca0:4]=0x2001e895 msg_sms_flags_shifted
| ||||||| 0x08041c24 1521 movs r1, 0x15 ; 21
| ||||||| 0x08041c26 0170 strb r1, [r0]
| ||||||| 0x08041c28 c321 movs r1, 0xc3 ; 195
| ||||||| 0x08041c2a 4020 movs r0, 0x40 ; '@' ; 64
| ||||||| 0x08041c2c fef7aaf9 bl c5000_spi0_writereg
| ||||||| 0x08041c30 f0f705fb bl func_3223e
| ||||||| 0x08041c34 234b ldr r3, [0x08041cc4] ; [0x8041cc4:4]=0x2001e350
| ||||||| 0x08041c36 2722 movs r2, 0x27 ; ''' ; 39
| ||||||| 0x08041c38 1448 ldr r0, [0x08041c8c] ; [0x8041c8c:4]=0x2001e5e0
| ||||||| 0x08041c3a 0168 ldr r1, [r0]
| ||||||| 0x08041c3c 1f48 ldr r0, [0x08041cbc] ; [0x8041cbc:4]=0x2001dadc md380_radio_config
| ||||||| 0x08041c3e 4068 ldr r0, [r0, 4]
| ||||||| 0x08041c40 fbf7fcfe bl func_3da3c
| ||||||| 0x08041c44 2048 ldr r0, [0x08041cc8] ; [0x8041cc8:4]=0x2001e8bc
| ||||||| 0x08041c46 3021 movs r1, 0x30 ; '0' ; 48
| ||||||| 0x08041c48 0170 strb r1, [r0]
| ||||||| 0x08041c4a 2048 ldr r0, [0x08041cce] ; [0x8041ccc:4]=0x2001e8bd
| ||||||| 0x08041c4c 0021 movs r1, 0
| ||||||| 0x08041c4e 0170 strb r1, [r0]
| ||||||| 0x08041c50 1f48 ldr r0, [0x08041cd0] ; [0x8041cd0:4]=0x2001e8be
| ||||||| 0x08041c52 0121 movs r1, 1 ; 1
| ||||||| 0x08041c54 0170 strb r1, [r0]
| ||||||| 0x08041c56 1f48 ldr r0, [0x08041cd6] ; [0x8041cd4:4]=0x2001e894
| ||||||| 0x08041c58 0921 movs r1, 9 ; 9
| ||||||| 0x08041c5a 0170 strb r1, [r0]
| ========< 0x08041c5c 02e0 b 0x8041c64
| --------> 0x08041c5e 2648 ldr r0, [0x08041cfa] ; [0x8041cf8:4]=0x2001e94d gui_opmode1
| ||||||| 0x08041c60 9521 movs r1, 0x95 ; 149
| ||||||| 0x08041c62 0170 strb r1, [r0]
\ ```````-> 0x08041c64 01bd pop {r0, pc}
/ (fcn) md380_RTC_GetDate 76
| Caller: usb_upld_handle draw_datetime_row func_18aa4_GetDateAndConv2String
| md380_RTC_GetDate ();
| 0x0802b50c 10b5 push {r4, lr}
| 0x0802b50e 0c00 movs r4, r1
| 0x0802b510 0021 movs r1, 0
| 0x0802b512 dff81c21 ldr.w r2, [0x0802b636] ; [0x802b634:4]=0x40002808 io_RTC_CR
| 0x0802b516 1268 ldr r2, [r2]
| 0x0802b518 dff8cc31 ldr.w r3, [0x0802b6ec] ; [0x802b6ec:4]=0x40002808 io_RTC_CR
| 0x0802b51c 1a40 ands r2, r3
| 0x0802b51e 1100 movs r1, r2
| 0x0802b520 0a0c lsrs r2, r1, 0x10
| 0x0802b522 e270 strb r2, [r4, 3]
| 0x0802b524 0a0a lsrs r2, r1, 8
| 0x0802b526 12f01f02 ands r2, r2, 0x1f
| 0x0802b52a 6270 strb r2, [r4, 1]
| 0x0802b52c 11f03f02 ands r2, r1, 0x3f
| 0x0802b530 a270 strb r2, [r4, 2]
| 0x0802b532 490b lsrs r1, r1, 0xd
| 0x0802b534 11f00701 ands r1, r1, 7
| 0x0802b538 2170 strb r1, [r4]
| 0x0802b53a 0028 cmp r0, 0
| ,=< 0x0802b53c 0bd1 bne 0x802b556
| | 0x0802b53e e078 ldrb r0, [r4, 3]
| | 0x0802b540 00f0e5f8 bl rtc_sub1
| | 0x0802b544 e070 strb r0, [r4, 3]
| | 0x0802b546 6078 ldrb r0, [r4, 1]
| | 0x0802b548 00f0e1f8 bl rtc_sub1
| | 0x0802b54c 6070 strb r0, [r4, 1]
| | 0x0802b54e a078 ldrb r0, [r4, 2]
| | 0x0802b550 00f0ddf8 bl rtc_sub1
| | 0x0802b554 a070 strb r0, [r4, 2]
\ `-> 0x0802b556 10bd pop {r4, pc}
/ (fcn) md380_RTC_GetTime 80
| Caller: usb_upld_handle func_18a40 draw_datetime_row
| md380_RTC_GetTime ();
| 0x0802b3f6 10b5 push {r4, lr}
| 0x0802b3f8 0c00 movs r4, r1
| 0x0802b3fa 0021 movs r1, 0
| 0x0802b3fc dff82c22 ldr.w r2, [0x0802b630] ; [0x802b630:4]=0x40002804 io_RTC_DR
| 0x0802b400 1268 ldr r2, [r2]
| 0x0802b402 dff8e032 ldr.w r3, [0x0802b6ea] ; [0x802b6e8:4]=0xffff3f
| 0x0802b406 1a40 ands r2, r3
| 0x0802b408 1100 movs r1, r2
| 0x0802b40a 0a0c lsrs r2, r1, 0x10
| 0x0802b40c 12f03f02 ands r2, r2, 0x3f
| 0x0802b410 2270 strb r2, [r4]
| 0x0802b412 0a0a lsrs r2, r1, 8
| 0x0802b414 12f07f02 ands r2, r2, 0x7f
| 0x0802b418 6270 strb r2, [r4, 1]
| 0x0802b41a 11f07f02 ands r2, r1, 0x7f
| 0x0802b41e a270 strb r2, [r4, 2]
| 0x0802b420 090c lsrs r1, r1, 0x10
| 0x0802b422 11f04001 ands r1, r1, 0x40
| 0x0802b426 e170 strb r1, [r4, 3]
| 0x0802b428 0028 cmp r0, 0
| ,=< 0x0802b42a 0bd1 bne 0x802b444
| | 0x0802b42c 2078 ldrb r0, [r4]
| | 0x0802b42e 00f06ef9 bl rtc_sub1
| | 0x0802b432 2070 strb r0, [r4]
| | 0x0802b434 6078 ldrb r0, [r4, 1]
| | 0x0802b436 00f06af9 bl rtc_sub1
| | 0x0802b43a 6070 strb r0, [r4, 1]
| | 0x0802b43c a078 ldrb r0, [r4, 2]
| | 0x0802b43e 00f066f9 bl rtc_sub1
| | 0x0802b442 a070 strb r0, [r4, 2]
\ `-> 0x0802b444 10bd pop {r4, pc}
/ (fcn) rtc_sub1 24
| Caller: md380_RTC_GetTime md380_RTC_GetDate
| rtc_sub1 ();
| 0x0802b70e 0021 movs r1, 0
| 0x0802b710 c0b2 uxtb r0, r0
| 0x0802b712 0209 lsrs r2, r0, 4
| 0x0802b714 0a23 movs r3, 0xa ; 10
| 0x0802b716 12fb03f2 smulbb r2, r2, r3
| 0x0802b71a 1100 movs r1, r2
| 0x0802b71c 10f00f00 ands r0, r0, 0xf
| 0x0802b720 4018 adds r0, r0, r1
| 0x0802b722 c0b2 uxtb r0, r0
\ 0x0802b724 7047 bx lr
/ (fcn) func_591bc 104
| Caller: usb_setcallbacks
| func_591bc ();
| 0x080591bc 00b5 push {lr}
| 0x080591be 83b0 sub sp, 0xc
| 0x080591c0 0121 movs r1, 1 ; 1
| 0x080591c2 0120 movs r0, 1 ; 1
| 0x080591c4 ddf78ffc bl func_36ae6
| 0x080591c8 4ff40060 mov.w r0, 0x800 ; 2048
| 0x080591cc 0090 str r0, [sp]
| 0x080591ce 0320 movs r0, 3 ; 3
| 0x080591d0 8df80500 strb.w r0, [sp, 5]
| 0x080591d4 0220 movs r0, 2 ; 2
| 0x080591d6 8df80400 strb.w r0, [sp, 4]
| 0x080591da 0020 movs r0, 0
| 0x080591dc 8df80600 strb.w r0, [sp, 6]
| 0x080591e0 0020 movs r0, 0
| 0x080591e2 8df80700 strb.w r0, [sp, 7]
| 0x080591e6 00a9 add r1, sp, 0
| 0x080591e8 0e48 ldr r0, [0x08059224] ; [0x8059224:4]=0x40020000 io_GPIOA
| 0x080591ea d2f7adfa bl GPIO_Init
| 0x080591ee 4ff48050 mov.w r0, 0x1000
| 0x080591f2 0090 str r0, [sp]
| 0x080591f4 00a9 add r1, sp, 0
| 0x080591f6 0b48 ldr r0, [0x08059226] ; [0x8059224:4]=0x40020000 io_GPIOA
| 0x080591f8 d2f7a6fa bl GPIO_Init
| 0x080591fc 0a22 movs r2, 0xa ; 10
| 0x080591fe 0b21 movs r1, 0xb ; 11
| 0x08059200 0848 ldr r0, [0x08059224] ; [0x8059224:4]=0x40020000 io_GPIOA
| 0x08059202 d2f70dfb bl GPIO_PinAFConfig
| 0x08059206 0a22 movs r2, 0xa ; 10
| 0x08059208 0c21 movs r1, 0xc ; 12
| 0x0805920a 0648 ldr r0, [0x08059226] ; [0x8059224:4]=0x40020000 io_GPIOA
| 0x0805920c d2f708fb bl GPIO_PinAFConfig
| 0x08059210 0121 movs r1, 1 ; 1
| 0x08059212 4ff48040 mov.w r0, 0x4000
| 0x08059216 ddf7a6fc bl func_36b66
| 0x0805921a 0121 movs r1, 1 ; 1
| 0x0805921c 8020 movs r0, 0x80 ; 128
| 0x0805921e ddf772fc bl func_36b06
\ 0x08059222 07bd pop {r0, r1, r2, pc}
/ (fcn) func_59228 42
| Caller: usb_setcallbacks
| func_59228 ();
| 0x08059228 80b5 push {r7, lr}
| 0x0805922a 4ff44070 mov.w r0, 0x300 ; 768
| 0x0805922e f8f76dfd bl func_51d0c
| 0x08059232 4320 movs r0, 0x43 ; 'C' ; 67
| 0x08059234 8df80000 strb.w r0, [sp]
| 0x08059238 0020 movs r0, 0
| 0x0805923a 8df80100 strb.w r0, [sp, 1]
| 0x0805923e 0020 movs r0, 0
| 0x08059240 8df80200 strb.w r0, [sp, 2]
| 0x08059244 0120 movs r0, 1 ; 1
| 0x08059246 8df80300 strb.w r0, [sp, 3]
| 0x0805924a 00a8 add r0, sp, 0
| 0x0805924c f8f763fd bl func_51d16
\ 0x08059250 01bd pop {r0, pc}
/ (fcn) func_59252 22
| Caller: func_613f4 func_613ae func_61120 func_59268
| func_59252 ();
| 0x08059252 0021 movs r1, 0
| 0x08059254 7822 movs r2, 0x78 ; 'x' ; 120
| 0x08059256 5043 muls r0, r2, r0
| 0x08059258 0722 movs r2, 7 ; 7
| 0x0805925a b0fbf2f0 udiv r0, r0, r2
| ,=< 0x0805925e ffe7 b 0x8059260
| .`-> 0x08059260 491c adds r1, r1, 1
| | 0x08059262 8842 cmp r0, r1
| `==< 0x08059264 fcd2 bhs 0x8059260
\ 0x08059266 7047 bx lr
/ (fcn) func_59268 14
| Caller: func_594a0 func_6143c func_8f196 func_612c6 func_5948a
| func_59268 ();
| 0x08059268 80b5 push {r7, lr}
| 0x0805926a 4ff47a71 mov.w r1, 0x3e8 ; 1000
| 0x0805926e 4843 muls r0, r1, r0
| 0x08059270 fff7efff bl func_59252
\ 0x08059274 01bd pop {r0, pc}
/ (fcn) func_59276 150
| Caller: usb_setcallbacks
| func_59276 ();
| 0x08059276 10b5 push {r4, lr}
| 0x08059278 0400 movs r4, r0
| 0x0805927a c9b2 uxtb r1, r1
| 0x0805927c 2000 movs r0, r4
| 0x0805927e 07f0b5ff bl func_611ec
| 0x08059282 0120 movs r0, 1 ; 1
| 0x08059284 84f81201 strb.w r0, [r4, 0x112]
| 0x08059288 0020 movs r0, 0
| 0x0805928a 84f81401 strb.w r0, [r4, 0x114]
| 0x0805928e 0020 movs r0, 0
| ,=< 0x08059290 11e0 b 0x80592b6
| .--> 0x08059292 2821 movs r1, 0x28 ; '(' ; 40
| || 0x08059294 01fb0041 mla r1, r1, r0, r4
| || 0x08059298 11f58e71 adds.w r1, r1, 0x11c
| || 0x0805929c 0122 movs r2, 1 ; 1
| || 0x0805929e 4a70 strb r2, [r1, 1]
| || 0x080592a0 0870 strb r0, [r1]
| || 0x080592a2 c880 strh r0, [r1, 6]
| || 0x080592a4 0022 movs r2, 0
| || 0x080592a6 ca70 strb r2, [r1, 3]
| || 0x080592a8 4022 movs r2, 0x40 ; '@' ; 64
| || 0x080592aa 8a60 str r2, [r1, 8]
| || 0x080592ac 0022 movs r2, 0
| || 0x080592ae ca60 str r2, [r1, 0xc]
| || 0x080592b0 0022 movs r2, 0
| || 0x080592b2 4a61 str r2, [r1, 0x14]
| || 0x080592b4 401c adds r0, r0, 1
| |`-> 0x080592b6 6178 ldrb r1, [r4, 1]
| | 0x080592b8 8842 cmp r0, r1
| `==< 0x080592ba ead3 blo 0x8059292
| 0x080592bc 0020 movs r0, 0
| ,=< 0x080592be 11e0 b 0x80592e4
| .--> 0x080592c0 2821 movs r1, 0x28 ; '(' ; 40
| || 0x080592c2 01fb0041 mla r1, r1, r0, r4
| || 0x080592c6 11f55d71 adds.w r1, r1, 0x374
| || 0x080592ca 0022 movs r2, 0
| || 0x080592cc 4a70 strb r2, [r1, 1]
| || 0x080592ce 0870 strb r0, [r1]
| || 0x080592d0 c880 strh r0, [r1, 6]
| || 0x080592d2 0022 movs r2, 0
| || 0x080592d4 ca70 strb r2, [r1, 3]
| || 0x080592d6 4022 movs r2, 0x40 ; '@' ; 64
| || 0x080592d8 8a60 str r2, [r1, 8]
| || 0x080592da 0022 movs r2, 0
| || 0x080592dc ca60 str r2, [r1, 0xc]
| || 0x080592de 0022 movs r2, 0
| || 0x080592e0 4a61 str r2, [r1, 0x14]
| || 0x080592e2 401c adds r0, r0, 1
| |`-> 0x080592e4 6178 ldrb r1, [r4, 1]
| | 0x080592e6 8842 cmp r0, r1
| `==< 0x080592e8 ead3 blo 0x80592c0
| 0x080592ea 2000 movs r0, r4
| 0x080592ec 08f052f8 bl func_61394
| 0x080592f0 2000 movs r0, r4
| 0x080592f2 07f0e8ff bl func_612c6
| 0x080592f6 0021 movs r1, 0
| 0x080592f8 2000 movs r0, r4
| 0x080592fa 08f09ff8 bl func_6143c
| 0x080592fe 2000 movs r0, r4
| 0x08059300 08f0d7f8 bl func_614b2
| 0x08059304 2000 movs r0, r4
| 0x08059306 08f039f8 bl func_6137c
\ 0x0805930a 10bd pop {r4, pc}
/ (fcn) func_5930c 90
| Caller: func_5530c
| func_5930c ();
| 0x0805930c 38b5 push {r3, r4, r5, lr}
| 0x0805930e c9b2 uxtb r1, r1
| 0x08059310 0c06 lsls r4, r1, 0x18
| ,=< 0x08059312 08d5 bpl 0x8059326
| | 0x08059314 c9b2 uxtb r1, r1
| | 0x08059316 11f07f04 ands r4, r1, 0x7f
| | 0x0805931a 2825 movs r5, 0x28 ; '(' ; 40
| | 0x0805931c 05fb0404 mla r4, r5, r4, r0
| | 0x08059320 14f58e74 adds.w r4, r4, 0x11c
| ,==< 0x08059324 07e0 b 0x8059336
| |`-> 0x08059326 c9b2 uxtb r1, r1
| | 0x08059328 11f07f04 ands r4, r1, 0x7f
| | 0x0805932c 2825 movs r5, 0x28 ; '(' ; 40
| | 0x0805932e 05fb0404 mla r4, r5, r4, r0
| | 0x08059332 14f55d74 adds.w r4, r4, 0x374
| `--> 0x08059336 11f07f05 ands r5, r1, 0x7f
| 0x0805933a 2570 strb r5, [r4]
| 0x0805933c c1f3c011 ubfx r1, r1, 7, 1
| 0x08059340 6170 strb r1, [r4, 1]
| 0x08059342 92b2 uxth r2, r2
| 0x08059344 a260 str r2, [r4, 8]
| 0x08059346 e370 strb r3, [r4, 3]
| 0x08059348 6178 ldrb r1, [r4, 1]
| 0x0805934a 0029 cmp r1, 0
| ,=< 0x0805934c 01d0 beq 0x8059352
| | 0x0805934e 2178 ldrb r1, [r4]
| | 0x08059350 e180 strh r1, [r4, 6]
| `-> 0x08059352 dbb2 uxtb r3, r3
| 0x08059354 022b cmp r3, 2 ; 2
| ,=< 0x08059356 01d1 bne 0x805935c
| | 0x08059358 0021 movs r1, 0
| | 0x0805935a 2171 strb r1, [r4, 4]
| `-> 0x0805935c 2100 movs r1, r4
| 0x0805935e 08f0c7f9 bl func_616f0
| 0x08059362 0020 movs r0, 0
\ 0x08059364 32bd pop {r1, r4, r5, pc}
/ (fcn) func_59366 70
| Caller: func_59ba2 func_59b40 func_59b68
| func_59366 ();
| 0x08059366 38b5 push {r3, r4, r5, lr}
| 0x08059368 c9b2 uxtb r1, r1
| 0x0805936a 11f07f04 ands r4, r1, 0x7f
| 0x0805936e 2825 movs r5, 0x28 ; '(' ; 40
| 0x08059370 05fb0404 mla r4, r5, r4, r0
| 0x08059374 14f55d74 adds.w r4, r4, 0x374
| 0x08059378 e260 str r2, [r4, 0xc]
| 0x0805937a 9bb2 uxth r3, r3
| 0x0805937c 6361 str r3, [r4, 0x14]
| 0x0805937e 0023 movs r3, 0
| 0x08059380 a361 str r3, [r4, 0x18]
| 0x08059382 0023 movs r3, 0
| 0x08059384 6370 strb r3, [r4, 1]
| 0x08059386 11f07f01 ands r1, r1, 0x7f
| 0x0805938a 2170 strb r1, [r4]
| 0x0805938c c178 ldrb r1, [r0, 3]
| 0x0805938e 0129 cmp r1, 1 ; 1
| ,=< 0x08059390 00d1 bne 0x8059394
| | 0x08059392 2261 str r2, [r4, 0x10]
| `-> 0x08059394 2178 ldrb r1, [r4]
| 0x08059396 0029 cmp r1, 0
| ,=< 0x08059398 03d1 bne 0x80593a2
| | 0x0805939a 2100 movs r1, r4
| | 0x0805939c 08f094fa bl func_618c8
| ,==< 0x080593a0 02e0 b 0x80593a8
| |`-> 0x080593a2 2100 movs r1, r4
| | 0x080593a4 08f0ddf9 bl func_61762
| `--> 0x080593a8 0020 movs r0, 0
\ 0x080593aa 32bd pop {r1, r4, r5, pc}
/ (fcn) func_593ac 62
| Caller: usb_send_packet func_59b2a func_59b7e
| func_593ac ();
| 0x080593ac 38b5 push {r3, r4, r5, lr}
| 0x080593ae c9b2 uxtb r1, r1
| 0x080593b0 11f07f04 ands r4, r1, 0x7f
| 0x080593b4 2825 movs r5, 0x28 ; '(' ; 40
| 0x080593b6 05fb0404 mla r4, r5, r4, r0
| 0x080593ba 14f58e74 adds.w r4, r4, 0x11c
| 0x080593be 0125 movs r5, 1 ; 1
| 0x080593c0 6570 strb r5, [r4, 1]
| 0x080593c2 11f07f01 ands r1, r1, 0x7f
| 0x080593c6 2170 strb r1, [r4]
| 0x080593c8 e260 str r2, [r4, 0xc]
| 0x080593ca 2261 str r2, [r4, 0x10]
| 0x080593cc 0021 movs r1, 0
| 0x080593ce a161 str r1, [r4, 0x18]
| 0x080593d0 6361 str r3, [r4, 0x14]
| 0x080593d2 2178 ldrb r1, [r4]
| 0x080593d4 0029 cmp r1, 0
| ,=< 0x080593d6 03d1 bne 0x80593e0
| | 0x080593d8 2100 movs r1, r4
| | 0x080593da 08f075fa bl func_618c8
| ,==< 0x080593de 02e0 b 0x80593e6
| |`-> 0x080593e0 2100 movs r1, r4
| | 0x080593e2 08f0bef9 bl func_61762
| `--> 0x080593e6 0020 movs r0, 0
\ 0x080593e8 32bd pop {r1, r4, r5, pc}
/ (fcn) func_593ea 70
| Caller: func_59a8c func_55148 func_59560
| func_593ea ();
| 0x080593ea 80b5 push {r7, lr}
| 0x080593ec c9b2 uxtb r1, r1
| 0x080593ee 0a06 lsls r2, r1, 0x18
| ,=< 0x080593f0 08d5 bpl 0x8059404
| | 0x080593f2 c9b2 uxtb r1, r1
| | 0x080593f4 11f07f02 ands r2, r1, 0x7f
| | 0x080593f8 2823 movs r3, 0x28 ; '(' ; 40
| | 0x080593fa 03fb0202 mla r2, r3, r2, r0
| | 0x080593fe 12f58e72 adds.w r2, r2, 0x11c
| ,==< 0x08059402 05e0 b 0x8059410
| |`-> 0x08059404 c9b2 uxtb r1, r1
| | 0x08059406 2822 movs r2, 0x28 ; '(' ; 40
| | 0x08059408 02fb0102 mla r2, r2, r1, r0
| | 0x0805940c 12f55d72 adds.w r2, r2, 0x374
| `--> 0x08059410 0123 movs r3, 1 ; 1
| 0x08059412 9370 strb r3, [r2, 2]
| 0x08059414 11f07f03 ands r3, r1, 0x7f
| 0x08059418 1370 strb r3, [r2]
| 0x0805941a c1f3c011 ubfx r1, r1, 7, 1
| 0x0805941e c9b2 uxtb r1, r1
| 0x08059420 11f00101 ands r1, r1, 1
| 0x08059424 5170 strb r1, [r2, 1]
| 0x08059426 1100 movs r1, r2
| 0x08059428 08f0e1fa bl func_619ee
| 0x0805942c 0020 movs r0, 0
\ 0x0805942e 02bd pop {r1, pc}
/ (fcn) func_59430 70
| Caller: func_59560
| func_59430 ();
| 0x08059430 80b5 push {r7, lr}
| 0x08059432 c9b2 uxtb r1, r1
| 0x08059434 0a06 lsls r2, r1, 0x18
| ,=< 0x08059436 08d5 bpl 0x805944a
| | 0x08059438 c9b2 uxtb r1, r1
| | 0x0805943a 11f07f02 ands r2, r1, 0x7f
| | 0x0805943e 2823 movs r3, 0x28 ; '(' ; 40
| | 0x08059440 03fb0202 mla r2, r3, r2, r0
| | 0x08059444 12f58e72 adds.w r2, r2, 0x11c
| ,==< 0x08059448 05e0 b 0x8059456
| |`-> 0x0805944a c9b2 uxtb r1, r1
| | 0x0805944c 2822 movs r2, 0x28 ; '(' ; 40
| | 0x0805944e 02fb0102 mla r2, r2, r1, r0
| | 0x08059452 12f55d72 adds.w r2, r2, 0x374
| `--> 0x08059456 0023 movs r3, 0
| 0x08059458 9370 strb r3, [r2, 2]
| 0x0805945a 11f07f03 ands r3, r1, 0x7f
| 0x0805945e 1370 strb r3, [r2]
| 0x08059460 c1f3c011 ubfx r1, r1, 7, 1
| 0x08059464 c9b2 uxtb r1, r1
| 0x08059466 11f00101 ands r1, r1, 1
| 0x0805946a 5170 strb r1, [r2, 1]
| 0x0805946c 1100 movs r1, r2
| 0x0805946e 08f0ddfa bl func_61a2c
| 0x08059472 0020 movs r0, 0
\ 0x08059474 02bd pop {r1, pc}
/ (fcn) func_59476 20
| Caller: func_597f0
| func_59476 ();
| 0x08059476 0022 movs r2, 0
| 0x08059478 c9b2 uxtb r1, r1
| 0x0805947a 61f30a12 bfi r2, r1, 4, 7
| 0x0805947e 0169 ldr r1, [r0, 0x10]
| 0x08059480 0968 ldr r1, [r1]
| 0x08059482 1143 orrs r1, r2
| 0x08059484 0069 ldr r0, [r0, 0x10]
| 0x08059486 0160 str r1, [r0]
\ 0x08059488 7047 bx lr
/ (fcn) func_5948a 22
| Caller: func_8f196
| func_5948a ();
| 0x0805948a 80b5 push {r7, lr}
| 0x0805948c 0169 ldr r1, [r0, 0x10]
| 0x0805948e 4968 ldr r1, [r1, 4]
| 0x08059490 31f00201 bics r1, r1, 2
| 0x08059494 0069 ldr r0, [r0, 0x10]
| 0x08059496 4160 str r1, [r0, 4]
| 0x08059498 0320 movs r0, 3 ; 3
| 0x0805949a fff7e5fe bl func_59268
\ 0x0805949e 01bd pop {r0, pc}
/ (fcn) func_594a0 22
| Caller: func_8f196 func_901ec
| func_594a0 ();
| 0x080594a0 80b5 push {r7, lr}
| 0x080594a2 0169 ldr r1, [r0, 0x10]
| 0x080594a4 4968 ldr r1, [r1, 4]
| 0x080594a6 51f00201 orrs r1, r1, 2
| 0x080594aa 0069 ldr r0, [r0, 0x10]
| 0x080594ac 4160 str r1, [r0, 4]
| 0x080594ae 0320 movs r0, 3 ; 3
| 0x080594b0 fff7dafe bl func_59268
\ 0x080594b4 01bd pop {r0, pc}
/ (fcn) func_594b8 88
| Caller: func_55148
| func_594b8 ();
| 0x080594b8 10b5 push {r4, lr}
| 0x080594ba 0024 movs r4, 0
| 0x080594bc 4a78 ldrb r2, [r1, 1]
| 0x080594be 002a cmp r2, 0
| ,=< 0x080594c0 18d0 beq 0x80594f4
| | 0x080594c2 012a cmp r2, 1 ; 1
| ,==< 0x080594c4 1cd0 beq 0x8059500
| || 0x080594c6 032a cmp r2, 3 ; 3
| ,===< 0x080594c8 17d0 beq 0x80594fa
| ||| 0x080594ca 052a cmp r2, 5 ; 5
| ,====< 0x080594cc 09d0 beq 0x80594e2
| |||| 0x080594ce 062a cmp r2, 6 ; 6
| ,=====< 0x080594d0 04d0 beq 0x80594dc
| ||||| 0x080594d2 082a cmp r2, 8 ; 8
| ,======< 0x080594d4 0bd0 beq 0x80594ee
| |||||| 0x080594d6 092a cmp r2, 9 ; 9
| ,=======< 0x080594d8 06d0 beq 0x80594e8
| ========< 0x080594da 14e0 b 0x8059506
| ||`-----> 0x080594dc 00f0f4f8 bl func_596c8
| ||,=====< 0x080594e0 13e0 b 0x805950a
| |||`----> 0x080594e2 00f085f9 bl func_597f0
| |||,====< 0x080594e6 10e0 b 0x805950a
| `-------> 0x080594e8 00f0aef9 bl func_59848
| ,=======< 0x080594ec 0de0 b 0x805950a
| |`------> 0x080594ee 00f00bfa bl func_59908
| |,======< 0x080594f2 0ae0 b 0x805950a
| ||||||`-> 0x080594f4 00f024fa bl func_59940
| ||||||,=< 0x080594f8 07e0 b 0x805950a
| ||||`---> 0x080594fa 00f03cfa bl func_59976
| ||||,===< 0x080594fe 04e0 b 0x805950a
| |||||`--> 0x08059500 00f088fa bl func_59a14
| |||||,==< 0x08059504 01e0 b 0x805950a
| --------> 0x08059506 00f0c1fa bl func_59a8c
| ```````-> 0x0805950a 2000 movs r0, r4
| 0x0805950c c0b2 uxtb r0, r0
\ 0x0805950e 10bd pop {r4, pc}
/ (fcn) func_59510 80
| Caller: func_55148
| func_59510 ();
| 0x08059510 70b5 push {r4, r5, r6, lr}
| 0x08059512 0400 movs r4, r0
| 0x08059514 0d00 movs r5, r1
| 0x08059516 0026 movs r6, 0
| 0x08059518 94f81201 ldrb.w r0, [r4, 0x112]
| 0x0805951c 0328 cmp r0, 3 ; 3
| ,=< 0x0805951e 18d1 bne 0x8059552
| | 0x08059520 a888 ldrh r0, [r5, 4]
| | 0x08059522 c0b2 uxtb r0, r0
| | 0x08059524 0328 cmp r0, 3 ; 3
| ,==< 0x08059526 0fd2 bhs 0x8059548
| || 0x08059528 2900 movs r1, r5
| || 0x0805952a 2000 movs r0, r4
| || 0x0805952c d4f8e425 ldr.w r2, [r4, 0x5e4]
| || 0x08059530 9268 ldr r2, [r2, 8]
| || 0x08059532 9047 blx r2
| || 0x08059534 e888 ldrh r0, [r5, 6]
| || 0x08059536 0028 cmp r0, 0
| ,===< 0x08059538 0ad1 bne 0x8059550
| ||| 0x0805953a f6b2 uxtb r6, r6
| ||| 0x0805953c 002e cmp r6, 0
| ,====< 0x0805953e 07d1 bne 0x8059550
| |||| 0x08059540 2000 movs r0, r4
| |||| 0x08059542 00f01cfb bl func_59b7e
| ,=====< 0x08059546 03e0 b 0x8059550
| |||`--> 0x08059548 2900 movs r1, r5
| ||| | 0x0805954a 2000 movs r0, r4
| ||| | 0x0805954c 00f09efa bl func_59a8c
| ```,==< 0x08059550 03e0 b 0x805955a
| |`-> 0x08059552 2900 movs r1, r5
| | 0x08059554 2000 movs r0, r4
| | 0x08059556 00f099fa bl func_59a8c
| `--> 0x0805955a 3000 movs r0, r6
| 0x0805955c c0b2 uxtb r0, r0
\ 0x0805955e 70bd pop {r4, r5, r6, pc}
/ (fcn) func_59560 360
| Caller: func_55148
| func_59560 ();
| 0x08059560 70b5 push {r4, r5, r6, lr}
| 0x08059562 0500 movs r5, r0
| 0x08059564 0e00 movs r6, r1
| 0x08059566 0024 movs r4, 0
| 0x08059568 b188 ldrh r1, [r6, 4]
| 0x0805956a 7078 ldrb r0, [r6, 1]
| 0x0805956c 0028 cmp r0, 0
| ,=< 0x0805956e 60d0 beq 0x8059632
| | 0x08059570 0128 cmp r0, 1 ; 1
| ,==< 0x08059572 30d0 beq 0x80595d6
| || 0x08059574 0328 cmp r0, 3 ; 3
| ,===< 0x08059576 40f0a480 bne.w 0x80596c2
| ||| 0x0805957a 95f81201 ldrb.w r0, [r5, 0x112]
| ||| 0x0805957e 0228 cmp r0, 2 ; 2
| ,====< 0x08059580 02d0 beq 0x8059588
| |||| 0x08059582 0328 cmp r0, 3 ; 3
| ,=====< 0x08059584 0bd0 beq 0x805959e
| ,======< 0x08059586 21e0 b 0x80595cc
| ||`----> 0x08059588 c9b2 uxtb r1, r1
| || ||| 0x0805958a 0029 cmp r1, 0
| ||,====< 0x0805958c 06d0 beq 0x805959c
| |||||| 0x0805958e c9b2 uxtb r1, r1
| |||||| 0x08059590 8029 cmp r1, 0x80 ; 128
| ,=======< 0x08059592 03d0 beq 0x805959c
| ||||||| 0x08059594 c9b2 uxtb r1, r1
| ||||||| 0x08059596 2800 movs r0, r5
| ||||||| 0x08059598 fff727ff bl func_593ea
| `--`----> 0x0805959c 1ae0 b 0x80595d4
| |`-----> 0x0805959e 7088 ldrh r0, [r6, 2]
| | ||| 0x080595a0 0028 cmp r0, 0
| | ,====< 0x080595a2 09d1 bne 0x80595b8
| | |||| 0x080595a4 c9b2 uxtb r1, r1
| | |||| 0x080595a6 0029 cmp r1, 0
| |,=====< 0x080595a8 06d0 beq 0x80595b8
| |||||| 0x080595aa c9b2 uxtb r1, r1
| |||||| 0x080595ac 8029 cmp r1, 0x80 ; 128
| ,=======< 0x080595ae 03d0 beq 0x80595b8
| ||||||| 0x080595b0 c9b2 uxtb r1, r1
| ||||||| 0x080595b2 2800 movs r0, r5
| ||||||| 0x080595b4 fff719ff bl func_593ea
| `-``----> 0x080595b8 3100 movs r1, r6
| | ||| 0x080595ba 2800 movs r0, r5
| | ||| 0x080595bc d5f8e425 ldr.w r2, [r5, 0x5e4]
| | ||| 0x080595c0 9268 ldr r2, [r2, 8]
| | ||| 0x080595c2 9047 blx r2
| | ||| 0x080595c4 2800 movs r0, r5
| | ||| 0x080595c6 00f0dafa bl func_59b7e
| | ,====< 0x080595ca 03e0 b 0x80595d4
| `------> 0x080595cc 3100 movs r1, r6
| |||| 0x080595ce 2800 movs r0, r5
| |||| 0x080595d0 00f05cfa bl func_59a8c
| --,`----> 0x080595d4 75e0 b 0x80596c2
| | |`--> 0x080595d6 95f81201 ldrb.w r0, [r5, 0x112]
| | | | 0x080595da 0228 cmp r0, 2 ; 2
| | |,==< 0x080595dc 02d0 beq 0x80595e4
| | ||| 0x080595de 0328 cmp r0, 3 ; 3
| |,====< 0x080595e0 0bd0 beq 0x80595fa
| ,======< 0x080595e2 21e0 b 0x8059628
| ||||`--> 0x080595e4 c9b2 uxtb r1, r1
| |||| | 0x080595e6 0029 cmp r1, 0
| ||||,==< 0x080595e8 06d0 beq 0x80595f8
| |||||| 0x080595ea c9b2 uxtb r1, r1
| |||||| 0x080595ec 8029 cmp r1, 0x80 ; 128
| ,=======< 0x080595ee 03d0 beq 0x80595f8
| ||||||| 0x080595f0 c9b2 uxtb r1, r1
| ||||||| 0x080595f2 2800 movs r0, r5
| ||||||| 0x080595f4 fff7f9fe bl func_593ea
| `----`--> 0x080595f8 1ae0 b 0x8059630
| ||`----> 0x080595fa 7088 ldrh r0, [r6, 2]
| || | | 0x080595fc 0028 cmp r0, 0
| || |,==< 0x080595fe 12d1 bne 0x8059626
| || ||| 0x08059600 c9b2 uxtb r1, r1
| || ||| 0x08059602 0029 cmp r1, 0
| ||,====< 0x08059604 0cd0 beq 0x8059620
| |||||| 0x08059606 c9b2 uxtb r1, r1
| |||||| 0x08059608 8029 cmp r1, 0x80 ; 128
| ,=======< 0x0805960a 09d0 beq 0x8059620
| ||||||| 0x0805960c c9b2 uxtb r1, r1
| ||||||| 0x0805960e 2800 movs r0, r5
| ||||||| 0x08059610 fff70eff bl func_59430
| ||||||| 0x08059614 3100 movs r1, r6
| ||||||| 0x08059616 2800 movs r0, r5
| ||||||| 0x08059618 d5f8e425 ldr.w r2, [r5, 0x5e4]
| ||||||| 0x0805961c 9268 ldr r2, [r2, 8]
| ||||||| 0x0805961e 9047 blx r2
| `--`----> 0x08059620 2800 movs r0, r5
| || ||| 0x08059622 00f0acfa bl func_59b7e
| ||,=`--> 0x08059626 03e0 b 0x8059630
| `------> 0x08059628 3100 movs r1, r6
| ||| | 0x0805962a 2800 movs r0, r5
| ||| | 0x0805962c 00f02efa bl func_59a8c
| ---`-,==< 0x08059630 47e0 b 0x80596c2
| | ||`-> 0x08059632 95f81201 ldrb.w r0, [r5, 0x112]
| | || 0x08059636 0228 cmp r0, 2 ; 2
| | ||,=< 0x08059638 02d0 beq 0x8059640
| | ||| 0x0805963a 0328 cmp r0, 3 ; 3
| |,====< 0x0805963c 0bd0 beq 0x8059656
| ,======< 0x0805963e 3be0 b 0x80596b8
| |||||`-> 0x08059640 c9b2 uxtb r1, r1
| ||||| 0x08059642 0029 cmp r1, 0
| |||||,=< 0x08059644 06d0 beq 0x8059654
| |||||| 0x08059646 c9b2 uxtb r1, r1
| |||||| 0x08059648 8029 cmp r1, 0x80 ; 128
| ,=======< 0x0805964a 03d0 beq 0x8059654
| ||||||| 0x0805964c c9b2 uxtb r1, r1
| ||||||| 0x0805964e 2800 movs r0, r5
| ||||||| 0x08059650 fff7cbfe bl func_593ea
| `-----`-> 0x08059654 34e0 b 0x80596c0
| ||`----> 0x08059656 c9b2 uxtb r1, r1
| || || 0x08059658 0806 lsls r0, r1, 0x18
| || ||,=< 0x0805965a 13d5 bpl 0x8059684
| || ||| 0x0805965c c9b2 uxtb r1, r1
| || ||| 0x0805965e 11f07f00 ands r0, r1, 0x7f
| || ||| 0x08059662 2821 movs r1, 0x28 ; '(' ; 40
| || ||| 0x08059664 01fb0050 mla r0, r1, r0, r5
| || ||| 0x08059668 90f81e01 ldrb.w r0, [r0, 0x11e]
| || ||| 0x0805966c 0028 cmp r0, 0
| ||,====< 0x0805966e 04d0 beq 0x805967a
| |||||| 0x08059670 dff88c03 ldr.w r0, [0x08059a04] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| |||||| 0x08059674 0121 movs r1, 1 ; 1
| |||||| 0x08059676 0160 str r1, [r0]
| ,=======< 0x08059678 17e0 b 0x80596aa
| |||`----> 0x0805967a dff88403 ldr.w r0, [0x08059a06] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| ||| ||| 0x0805967e 0021 movs r1, 0
| ||| ||| 0x08059680 0160 str r1, [r0]
| |||,====< 0x08059682 12e0 b 0x80596aa
| ||||||`-> 0x08059684 0806 lsls r0, r1, 0x18
| ||||||,=< 0x08059686 10d4 bmi 0x80596aa
| ||||||| 0x08059688 c9b2 uxtb r1, r1
| ||||||| 0x0805968a 2820 movs r0, 0x28 ; '(' ; 40
| ||||||| 0x0805968c 00fb0150 mla r0, r0, r1, r5
| ||||||| 0x08059690 90f87603 ldrb.w r0, [r0, 0x376]
| ||||||| 0x08059694 0028 cmp r0, 0
| ========< 0x08059696 04d0 beq 0x80596a2
| ||||||| 0x08059698 dff86403 ldr.w r0, [0x08059a04] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| ||||||| 0x0805969c 0121 movs r1, 1 ; 1
| ||||||| 0x0805969e 0160 str r1, [r0]
| ========< 0x080596a0 03e0 b 0x80596aa
| --------> 0x080596a2 dff85c03 ldr.w r0, [0x08059a06] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| ||||||| 0x080596a6 0021 movs r1, 0
| ||||||| 0x080596a8 0160 str r1, [r0]
| `--`--`-> 0x080596aa 0222 movs r2, 2 ; 2
| || || 0x080596ac dff85013 ldr.w r1, [0x08059a04] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| || || 0x080596b0 2800 movs r0, r5
| || || 0x080596b2 00f026fa bl usb_send_packet
| || ||,=< 0x080596b6 03e0 b 0x80596c0
| `------> 0x080596b8 3100 movs r1, r6
| | ||| 0x080596ba 2800 movs r0, r5
| | ||| 0x080596bc 00f0e6f9 bl func_59a8c
| ---,==`-> 0x080596c0 ffe7 b 0x80596c2
| ````--> 0x080596c2 2000 movs r0, r4
| 0x080596c4 c0b2 uxtb r0, r0
\ 0x080596c6 70bd pop {r4, r5, r6, pc}
/ (fcn) func_596c8 296
| Caller: func_594b8
| func_596c8 ();
| 0x080596c8 38b5 push {r3, r4, r5, lr}
| 0x080596ca 0400 movs r4, r0
| 0x080596cc 0d00 movs r5, r1
| 0x080596ce 6888 ldrh r0, [r5, 2]
| 0x080596d0 80b2 uxth r0, r0
| 0x080596d2 000a lsrs r0, r0, 8
| 0x080596d4 c0b2 uxtb r0, r0
| 0x080596d6 0128 cmp r0, 1 ; 1
| ,=< 0x080596d8 08d0 beq 0x80596ec
| | 0x080596da 0228 cmp r0, 2 ; 2
| ,==< 0x080596dc 25d0 beq 0x805972a
| || 0x080596de 0328 cmp r0, 3 ; 3
| ,===< 0x080596e0 2ed0 beq 0x8059740
| ||| 0x080596e2 0628 cmp r0, 6 ; 6
| ,====< 0x080596e4 6bd0 beq 0x80597be
| |||| 0x080596e6 0728 cmp r0, 7 ; 7
| ,=====< 0x080596e8 6ed0 beq 0x80597c8
| ,======< 0x080596ea 72e0 b 0x80597d2
| |||||`-> 0x080596ec 00a9 add r1, sp, 0
| ||||| 0x080596ee a078 ldrb r0, [r4, 2]
| ||||| 0x080596f0 d4f8ec25 ldr.w r2, [r4, 0x5ec]
| ||||| 0x080596f4 1268 ldr r2, [r2]
| ||||| 0x080596f6 9047 blx r2
| ||||| 0x080596f8 e988 ldrh r1, [r5, 6]
| ||||| 0x080596fa 4029 cmp r1, 0x40 ; '@' ; 64
| |||||,=< 0x080596fc 03d0 beq 0x8059706
| |||||| 0x080596fe 94f81211 ldrb.w r1, [r4, 0x112]
| |||||| 0x08059702 0129 cmp r1, 1 ; 1
| ,=======< 0x08059704 02d1 bne 0x805970c
| ||||||`-> 0x08059706 0821 movs r1, 8 ; 8
| |||||| 0x08059708 adf80010 strh.w r1, [sp]
| `-----.-> 0x0805970c bdf80010 ldrh.w r1, [sp]
| |||||| 0x08059710 0029 cmp r1, 0
| ,=======< 0x08059712 6cd0 beq 0x80597ee
| ||||||| 0x08059714 e988 ldrh r1, [r5, 6]
| ||||||| 0x08059716 0029 cmp r1, 0
| ========< 0x08059718 69d0 beq 0x80597ee
| ||||||| 0x0805971a bdf80010 ldrh.w r1, [sp]
| ||||||| 0x0805971e ea88 ldrh r2, [r5, 6]
| ||||||| 0x08059720 9142 cmp r1, r2
| ========< 0x08059722 5bd2 bhs 0x80597dc
| ||||||| 0x08059724 bdf80010 ldrh.w r1, [sp]
| ========< 0x08059728 59e0 b 0x80597de
| |||||`--> 0x0805972a 00a9 add r1, sp, 0
| ||||| | 0x0805972c a078 ldrb r0, [r4, 2]
| ||||| | 0x0805972e d4f8e425 ldr.w r2, [r4, 0x5e4]
| ||||| | 0x08059732 926a ldr r2, [r2, 0x28]
| ||||| | 0x08059734 9047 blx r2
| ||||| | 0x08059736 0221 movs r1, 2 ; 2
| ||||| | 0x08059738 4170 strb r1, [r0, 1]
| ||||| | 0x0805973a c4f8f005 str.w r0, [r4, 0x5f0]
| ========< 0x0805973e e5e7 b 0x805970c
| ||||`---> 0x08059740 a878 ldrb r0, [r5, 2]
| |||| | 0x08059742 0028 cmp r0, 0
| |||| ,==< 0x08059744 08d0 beq 0x8059758
| |||| || 0x08059746 0228 cmp r0, 2 ; 2
| ||||,===< 0x08059748 14d0 beq 0x8059774
| ========< 0x0805974a 0cd3 blo 0x8059766
| ||||||| 0x0805974c 0428 cmp r0, 4 ; 4
| ========< 0x0805974e 1fd0 beq 0x8059790
| ========< 0x08059750 17d3 blo 0x8059782
| ||||||| 0x08059752 0528 cmp r0, 5 ; 5
| ========< 0x08059754 23d0 beq 0x805979e
| ========< 0x08059756 29e0 b 0x80597ac
| |||||`--> 0x08059758 00a9 add r1, sp, 0
| ||||| | 0x0805975a a078 ldrb r0, [r4, 2]
| ||||| | 0x0805975c d4f8ec25 ldr.w r2, [r4, 0x5ec]
| ||||| | 0x08059760 5268 ldr r2, [r2, 4]
| ||||| | 0x08059762 9047 blx r2
| |||||,==< 0x08059764 2ae0 b 0x80597bc
| --------> 0x08059766 00a9 add r1, sp, 0
| ||||||| 0x08059768 a078 ldrb r0, [r4, 2]
| ||||||| 0x0805976a d4f8ec25 ldr.w r2, [r4, 0x5ec]
| ||||||| 0x0805976e 9268 ldr r2, [r2, 8]
| ||||||| 0x08059770 9047 blx r2
| ========< 0x08059772 23e0 b 0x80597bc
| ||||`---> 0x08059774 00a9 add r1, sp, 0
| |||| || 0x08059776 a078 ldrb r0, [r4, 2]
| |||| || 0x08059778 d4f8ec25 ldr.w r2, [r4, 0x5ec]
| |||| || 0x0805977c d268 ldr r2, [r2, 0xc]
| |||| || 0x0805977e 9047 blx r2
| ||||,===< 0x08059780 1ce0 b 0x80597bc
| --------> 0x08059782 00a9 add r1, sp, 0
| ||||||| 0x08059784 a078 ldrb r0, [r4, 2]
| ||||||| 0x08059786 d4f8ec25 ldr.w r2, [r4, 0x5ec]
| ||||||| 0x0805978a 1269 ldr r2, [r2, 0x10]
| ||||||| 0x0805978c 9047 blx r2
| ========< 0x0805978e 15e0 b 0x80597bc
| --------> 0x08059790 00a9 add r1, sp, 0
| ||||||| 0x08059792 a078 ldrb r0, [r4, 2]
| ||||||| 0x08059794 d4f8ec25 ldr.w r2, [r4, 0x5ec]
| ||||||| 0x08059798 5269 ldr r2, [r2, 0x14]
| ||||||| 0x0805979a 9047 blx r2
| ========< 0x0805979c 0ee0 b 0x80597bc
| --------> 0x0805979e 00a9 add r1, sp, 0
| ||||||| 0x080597a0 a078 ldrb r0, [r4, 2]
| ||||||| 0x080597a2 d4f8ec25 ldr.w r2, [r4, 0x5ec]
| ||||||| 0x080597a6 9269 ldr r2, [r2, 0x18]
| ||||||| 0x080597a8 9047 blx r2
| ========< 0x080597aa 07e0 b 0x80597bc
| --------> 0x080597ac 00aa add r2, sp, 0
| ||||||| 0x080597ae 6988 ldrh r1, [r5, 2]
| ||||||| 0x080597b0 c9b2 uxtb r1, r1
| ||||||| 0x080597b2 a078 ldrb r0, [r4, 2]
| ||||||| 0x080597b4 d4f8e435 ldr.w r3, [r4, 0x5e4]
| ||||||| 0x080597b8 db6a ldr r3, [r3, 0x2c]
| ||||||| 0x080597ba 9847 blx r3
| ----```=< 0x080597bc a6e7 b 0x805970c
| |||`----> 0x080597be 2900 movs r1, r5
| ||| 0x080597c0 2000 movs r0, r4
| ||| 0x080597c2 00f063f9 bl func_59a8c
| ||| ,=< 0x080597c6 12e0 b 0x80597ee
| ||`-----> 0x080597c8 2900 movs r1, r5
| || | 0x080597ca 2000 movs r0, r4
| || | 0x080597cc 00f05ef9 bl func_59a8c
| || ,==< 0x080597d0 0de0 b 0x80597ee
| |`------> 0x080597d2 2900 movs r1, r5
| | || 0x080597d4 2000 movs r0, r4
| | || 0x080597d6 00f059f9 bl func_59a8c
| | ,===< 0x080597da 08e0 b 0x80597ee
| --------> 0x080597dc e988 ldrh r1, [r5, 6]
| --------> 0x080597de adf80010 strh.w r1, [sp]
| | ||| 0x080597e2 bdf80020 ldrh.w r2, [sp]
| | ||| 0x080597e6 0100 movs r1, r0
| | ||| 0x080597e8 2000 movs r0, r4
| | ||| 0x080597ea 00f08af9 bl usb_send_packet
\ `---```-> 0x080597ee 31bd pop {r0, r4, r5, pc}
/ (fcn) func_597f0 88
| Caller: func_594b8
| func_597f0 ();
| 0x080597f0 38b5 push {r3, r4, r5, lr}
| 0x080597f2 0400 movs r4, r0
| 0x080597f4 8888 ldrh r0, [r1, 4]
| 0x080597f6 0028 cmp r0, 0
| ,=< 0x080597f8 22d1 bne 0x8059840
| | 0x080597fa c888 ldrh r0, [r1, 6]
| | 0x080597fc 0028 cmp r0, 0
| ,==< 0x080597fe 1fd1 bne 0x8059840
| || 0x08059800 8878 ldrb r0, [r1, 2]
| || 0x08059802 10f07f05 ands r5, r0, 0x7f
| || 0x08059806 94f81201 ldrb.w r0, [r4, 0x112]
| || 0x0805980a 0328 cmp r0, 3 ; 3
| ,===< 0x0805980c 03d1 bne 0x8059816
| ||| 0x0805980e 2000 movs r0, r4
| ||| 0x08059810 00f03cf9 bl func_59a8c
| ,====< 0x08059814 17e0 b 0x8059846
| |`---> 0x08059816 84f81451 strb.w r5, [r4, 0x114]
| | || 0x0805981a 2900 movs r1, r5
| | || 0x0805981c c9b2 uxtb r1, r1
| | || 0x0805981e 2000 movs r0, r4
| | || 0x08059820 fff729fe bl func_59476
| | || 0x08059824 2000 movs r0, r4
| | || 0x08059826 00f0aaf9 bl func_59b7e
| | || 0x0805982a edb2 uxtb r5, r5
| | || 0x0805982c 002d cmp r5, 0
| |,===< 0x0805982e 03d0 beq 0x8059838
| |||| 0x08059830 0220 movs r0, 2 ; 2
| |||| 0x08059832 84f81201 strb.w r0, [r4, 0x112]
| ,=====< 0x08059836 06e0 b 0x8059846
| ||`---> 0x08059838 0120 movs r0, 1 ; 1
| || || 0x0805983a 84f81201 strb.w r0, [r4, 0x112]
| ||,===< 0x0805983e 02e0 b 0x8059846
| |||``-> 0x08059840 2000 movs r0, r4
| ||| 0x08059842 00f023f9 bl func_59a8c
\ ```---> 0x08059846 31bd pop {r0, r4, r5, pc}
/ (fcn) func_59848 192
| Caller: func_594b8
| func_59848 ();
| 0x08059848 10b5 push {r4, lr}
| 0x0805984a 0400 movs r4, r0
| 0x0805984c 4888 ldrh r0, [r1, 2]
| 0x0805984e 6d4a ldr r2, [0x08059a06] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| 0x08059850 1070 strb r0, [r2]
| 0x08059852 6c48 ldr r0, [0x08059a06] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| 0x08059854 0078 ldrb r0, [r0]
| 0x08059856 0228 cmp r0, 2 ; 2
| ,=< 0x08059858 03d3 blo 0x8059862
| | 0x0805985a 2000 movs r0, r4
| | 0x0805985c 00f016f9 bl func_59a8c
| ,==< 0x08059860 51e0 b 0x8059906
| |`-> 0x08059862 94f81201 ldrb.w r0, [r4, 0x112]
| | 0x08059866 0228 cmp r0, 2 ; 2
| |,=< 0x08059868 02d0 beq 0x8059870
| || 0x0805986a 0328 cmp r0, 3 ; 3
| ,===< 0x0805986c 18d0 beq 0x80598a0
| ,====< 0x0805986e 47e0 b 0x8059900
| |||`-> 0x08059870 6448 ldr r0, [0x08059a04] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| ||| 0x08059872 0078 ldrb r0, [r0]
| ||| 0x08059874 0028 cmp r0, 0
| |||,=< 0x08059876 0fd0 beq 0x8059898
| |||| 0x08059878 6248 ldr r0, [0x08059a04] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| |||| 0x0805987a 0078 ldrb r0, [r0]
| |||| 0x0805987c 84f81001 strb.w r0, [r4, 0x110]
| |||| 0x08059880 0320 movs r0, 3 ; 3
| |||| 0x08059882 84f81201 strb.w r0, [r4, 0x112]
| |||| 0x08059886 5f48 ldr r0, [0x08059a06] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| |||| 0x08059888 0178 ldrb r1, [r0]
| |||| 0x0805988a 2000 movs r0, r4
| |||| 0x0805988c fbf77ffd bl func_5538e
| |||| 0x08059890 2000 movs r0, r4
| |||| 0x08059892 00f074f9 bl func_59b7e
| ,=====< 0x08059896 02e0 b 0x805989e
| ||||`-> 0x08059898 2000 movs r0, r4
| |||| 0x0805989a 00f070f9 bl func_59b7e
| `---,=< 0x0805989e 32e0 b 0x8059906
| |`---> 0x080598a0 5848 ldr r0, [0x08059a04] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| | || 0x080598a2 0078 ldrb r0, [r0]
| | || 0x080598a4 0028 cmp r0, 0
| |,===< 0x080598a6 0fd1 bne 0x80598c8
| |||| 0x080598a8 0220 movs r0, 2 ; 2
| |||| 0x080598aa 84f81201 strb.w r0, [r4, 0x112]
| |||| 0x080598ae 5548 ldr r0, [0x08059a06] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| |||| 0x080598b0 0078 ldrb r0, [r0]
| |||| 0x080598b2 84f81001 strb.w r0, [r4, 0x110]
| |||| 0x080598b6 5348 ldr r0, [0x08059a06] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| |||| 0x080598b8 0178 ldrb r1, [r0]
| |||| 0x080598ba 2000 movs r0, r4
| |||| 0x080598bc fbf775fd bl func_553aa
| |||| 0x080598c0 2000 movs r0, r4
| |||| 0x080598c2 00f05cf9 bl func_59b7e
| ,=====< 0x080598c6 1ae0 b 0x80598fe
| ||`---> 0x080598c8 4e48 ldr r0, [0x08059a04] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| || || 0x080598ca 0078 ldrb r0, [r0]
| || || 0x080598cc 94f81011 ldrb.w r1, [r4, 0x110]
| || || 0x080598d0 8842 cmp r0, r1
| ||,===< 0x080598d2 11d0 beq 0x80598f8
| ||||| 0x080598d4 94f81011 ldrb.w r1, [r4, 0x110]
| ||||| 0x080598d8 2000 movs r0, r4
| ||||| 0x080598da fbf766fd bl func_553aa
| ||||| 0x080598de 4948 ldr r0, [0x08059a06] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| ||||| 0x080598e0 0078 ldrb r0, [r0]
| ||||| 0x080598e2 84f81001 strb.w r0, [r4, 0x110]
| ||||| 0x080598e6 4748 ldr r0, [0x08059a06] ; [0x8059a04:4]=0x2001e963 md380_thingy2
| ||||| 0x080598e8 0178 ldrb r1, [r0]
| ||||| 0x080598ea 2000 movs r0, r4
| ||||| 0x080598ec fbf74ffd bl func_5538e
| ||||| 0x080598f0 2000 movs r0, r4
| ||||| 0x080598f2 00f044f9 bl func_59b7e
| ,======< 0x080598f6 02e0 b 0x80598fe
| |||`---> 0x080598f8 2000 movs r0, r4
| ||| || 0x080598fa 00f040f9 bl func_59b7e
| ``-,===< 0x080598fe 02e0 b 0x8059906
| `----> 0x08059900 2000 movs r0, r4
| ||| 0x08059902 00f0c3f8 bl func_59a8c
\ ```-> 0x08059906 10bd pop {r4, pc}
/ (fcn) func_59908 56
| Caller: func_594b8
| func_59908 ();
| 0x08059908 80b5 push {r7, lr}
| 0x0805990a ca88 ldrh r2, [r1, 6]
| 0x0805990c 012a cmp r2, 1 ; 1
| ,=< 0x0805990e 02d0 beq 0x8059916
| | 0x08059910 00f0bcf8 bl func_59a8c
| ,==< 0x08059914 13e0 b 0x805993e
| |`-> 0x08059916 90f81221 ldrb.w r2, [r0, 0x112]
| | 0x0805991a 022a cmp r2, 2 ; 2
| |,=< 0x0805991c 02d0 beq 0x8059924
| || 0x0805991e 032a cmp r2, 3 ; 3
| ,===< 0x08059920 05d0 beq 0x805992e
| ,====< 0x08059922 0ae0 b 0x805993a
| |||`-> 0x08059924 0122 movs r2, 1 ; 1
| ||| 0x08059926 3849 ldr r1, [0x08059a0a] ; [0x8059a08:4]=0x2001e764
| ||| 0x08059928 00f0ebf8 bl usb_send_packet
| |||,=< 0x0805992c 07e0 b 0x805993e
| |`---> 0x0805992e 0122 movs r2, 1 ; 1
| | || 0x08059930 10f58871 adds.w r1, r0, 0x110
| | || 0x08059934 00f0e5f8 bl usb_send_packet
| |,===< 0x08059938 01e0 b 0x805993e
| `----> 0x0805993a 00f0a7f8 bl func_59a8c
\ ```-> 0x0805993e 01bd pop {r0, pc}
/ (fcn) func_59940 54
| Caller: func_594b8
| func_59940 ();
| 0x08059940 80b5 push {r7, lr}
| 0x08059942 90f81221 ldrb.w r2, [r0, 0x112]
| 0x08059946 921e subs r2, r2, 2
| 0x08059948 012a cmp r2, 1 ; 1
| ,=< 0x0805994a 11d8 bhi 0x8059970
| | 0x0805994c 2f49 ldr r1, [0x08059a0c] ; [0x8059a0c:4]=0x2001e768
| | 0x0805994e 0122 movs r2, 1 ; 1
| | 0x08059950 0a60 str r2, [r1]
| | 0x08059952 d0f81811 ldr.w r1, [r0, 0x118]
| | 0x08059956 0029 cmp r1, 0
| ,==< 0x08059958 05d0 beq 0x8059966
| || 0x0805995a 2c49 ldr r1, [0x08059a0e] ; [0x8059a0c:4]=0x2001e768
| || 0x0805995c 0968 ldr r1, [r1]
| || 0x0805995e 51f00201 orrs r1, r1, 2
| || 0x08059962 2a4a ldr r2, [0x08059a0e] ; [0x8059a0c:4]=0x2001e768
| || 0x08059964 1160 str r1, [r2]
| `--> 0x08059966 0222 movs r2, 2 ; 2
| | 0x08059968 2849 ldr r1, [0x08059a0c] ; [0x8059a0c:4]=0x2001e768
| | 0x0805996a 00f0caf8 bl usb_send_packet
| ,==< 0x0805996e 01e0 b 0x8059974
| |`-> 0x08059970 00f08cf8 bl func_59a8c
\ `--> 0x08059974 01bd pop {r0, pc}
/ (fcn) func_59976 136
| Caller: func_594b8
| func_59976 ();
| 0x08059976 10b5 push {r4, lr}
| 0x08059978 0400 movs r4, r0
| 0x0805997a 0022 movs r2, 0
| 0x0805997c 4888 ldrh r0, [r1, 2]
| 0x0805997e 0128 cmp r0, 1 ; 1
| ,=< 0x08059980 0bd1 bne 0x805999a
| | 0x08059982 0120 movs r0, 1 ; 1
| | 0x08059984 c4f81801 str.w r0, [r4, 0x118]
| | 0x08059988 2000 movs r0, r4
| | 0x0805998a d4f8e425 ldr.w r2, [r4, 0x5e4]
| | 0x0805998e 9268 ldr r2, [r2, 8]
| | 0x08059990 9047 blx r2
| | 0x08059992 2000 movs r0, r4
| | 0x08059994 00f0f3f8 bl func_59b7e
| ,==< 0x08059998 30e0 b 0x80599fc
| |`-> 0x0805999a 4888 ldrh r0, [r1, 2]
| | 0x0805999c 0228 cmp r0, 2 ; 2
| |,=< 0x0805999e 2dd1 bne 0x80599fc
| || 0x080599a0 0879 ldrb r0, [r1, 4]
| || 0x080599a2 0006 lsls r0, r0, 0x18
| ,===< 0x080599a4 2ad1 bne 0x80599fc
| ||| 0x080599a6 2069 ldr r0, [r4, 0x10]
| ||| 0x080599a8 4068 ldr r0, [r0, 4]
| ||| 0x080599aa 8988 ldrh r1, [r1, 4]
| ||| 0x080599ac 89b2 uxth r1, r1
| ||| 0x080599ae 0a0a lsrs r2, r1, 8
| ||| 0x080599b0 d2b2 uxtb r2, r2
| ||| 0x080599b2 012a cmp r2, 1 ; 1
| ,====< 0x080599b4 07d0 beq 0x80599c6
| ,=====< 0x080599b6 19d3 blo 0x80599ec
| ||||| 0x080599b8 032a cmp r2, 3 ; 3
| ,======< 0x080599ba 0cd0 beq 0x80599d6
| ,=======< 0x080599bc 07d3 blo 0x80599ce
| ||||||| 0x080599be 052a cmp r2, 5 ; 5
| ========< 0x080599c0 11d0 beq 0x80599e6
| ========< 0x080599c2 0cd3 blo 0x80599de
| ========< 0x080599c4 12e0 b 0x80599ec
| |||`----> 0x080599c6 0121 movs r1, 1 ; 1
| ||| ||| 0x080599c8 61f30610 bfi r0, r1, 4, 3
| |||,====< 0x080599cc 0ee0 b 0x80599ec
| `-------> 0x080599ce 0221 movs r1, 2 ; 2
| |||||| 0x080599d0 61f30610 bfi r0, r1, 4, 3
| ,=======< 0x080599d4 0ae0 b 0x80599ec
| |`------> 0x080599d6 0321 movs r1, 3 ; 3
| | ||||| 0x080599d8 61f30610 bfi r0, r1, 4, 3
| |,======< 0x080599dc 06e0 b 0x80599ec
| --------> 0x080599de 0421 movs r1, 4 ; 4
| ||||||| 0x080599e0 61f30610 bfi r0, r1, 4, 3
| ========< 0x080599e4 02e0 b 0x80599ec
| --------> 0x080599e6 0521 movs r1, 5 ; 5
| ||||||| 0x080599e8 61f30610 bfi r0, r1, 4, 3
| ````----> 0x080599ec 0849 ldr r1, [0x08059a10] ; [0x8059a10:4]=0x2001e74c
| ||| 0x080599ee 0860 str r0, [r1]
| ||| 0x080599f0 0120 movs r0, 1 ; 1
| ||| 0x080599f2 84f81601 strb.w r0, [r4, 0x116]
| ||| 0x080599f6 2000 movs r0, r4
| ||| 0x080599f8 00f0c1f8 bl func_59b7e
\ ```-> 0x080599fc 10bd pop {r4, pc}
/ (fcn) func_59a14 52
| Caller: func_594b8
| func_59a14 ();
| 0x08059a14 10b5 push {r4, lr}
| 0x08059a16 0400 movs r4, r0
| 0x08059a18 94f81201 ldrb.w r0, [r4, 0x112]
| 0x08059a1c 801e subs r0, r0, 2
| 0x08059a1e 0128 cmp r0, 1 ; 1
| ,=< 0x08059a20 0ed8 bhi 0x8059a40
| | 0x08059a22 4888 ldrh r0, [r1, 2]
| | 0x08059a24 0128 cmp r0, 1 ; 1
| ,==< 0x08059a26 0ad1 bne 0x8059a3e
| || 0x08059a28 0020 movs r0, 0
| || 0x08059a2a c4f81801 str.w r0, [r4, 0x118]
| || 0x08059a2e 2000 movs r0, r4
| || 0x08059a30 d4f8e425 ldr.w r2, [r4, 0x5e4]
| || 0x08059a34 9268 ldr r2, [r2, 8]
| || 0x08059a36 9047 blx r2
| || 0x08059a38 2000 movs r0, r4
| || 0x08059a3a 00f0a0f8 bl func_59b7e
| ,`--> 0x08059a3e 02e0 b 0x8059a46
| | `-> 0x08059a40 2000 movs r0, r4
| | 0x08059a42 00f023f8 bl func_59a8c
\ `---> 0x08059a46 10bd pop {r4, pc}
/ (fcn) func_59a8c 28
| Caller: func_59908 usb_upld_handle func_59510 func_59940 func_59560 func_8f21a
| func_59a14 func_59848 func_596c8 usb_do_setup func_594b8 func_597f0
| usb_dnld_handle
| func_59a8c ();
| 0x08059a8c 10b5 push {r4, lr}
| 0x08059a8e 0400 movs r4, r0
| 0x08059a90 8021 movs r1, 0x80 ; 128
| 0x08059a92 2000 movs r0, r4
| 0x08059a94 fff7a9fc bl func_593ea
| 0x08059a98 0021 movs r1, 0
| 0x08059a9a 2000 movs r0, r4
| 0x08059a9c fff7a5fc bl func_593ea
| 0x08059aa0 2000 movs r0, r4
| 0x08059aa2 07f0faff bl func_61a9a
\ 0x08059aa6 10bd pop {r4, pc}
/ (fcn) func_59aa8 70
| Caller: func_90258 usb_serialnumber
| func_59aa8 ();
| 0x08059aa8 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x08059aaa 0400 movs r4, r0
| 0x08059aac 0d00 movs r5, r1
| 0x08059aae 1700 movs r7, r2
| 0x08059ab0 0026 movs r6, 0
| 0x08059ab2 002c cmp r4, 0
| ,=< 0x08059ab4 1ad0 beq 0x8059aec
| | 0x08059ab6 2000 movs r0, r4
| | 0x08059ab8 00f019f8 bl func_59aee
| | 0x08059abc 4000 lsls r0, r0, 1
| | 0x08059abe 801c adds r0, r0, 2
| | 0x08059ac0 3880 strh r0, [r7]
| | 0x08059ac2 f6b2 uxtb r6, r6
| | 0x08059ac4 3888 ldrh r0, [r7]
| | 0x08059ac6 7055 strb r0, [r6, r5]
| | 0x08059ac8 761c adds r6, r6, 1
| | 0x08059aca f6b2 uxtb r6, r6
| | 0x08059acc 0320 movs r0, 3 ; 3
| | 0x08059ace 7055 strb r0, [r6, r5]
| | 0x08059ad0 761c adds r6, r6, 1
| ,==< 0x08059ad2 08e0 b 0x8059ae6
| .---> 0x08059ad4 f6b2 uxtb r6, r6
| ||| 0x08059ad6 2078 ldrb r0, [r4]
| ||| 0x08059ad8 7055 strb r0, [r6, r5]
| ||| 0x08059ada 641c adds r4, r4, 1
| ||| 0x08059adc 761c adds r6, r6, 1
| ||| 0x08059ade f6b2 uxtb r6, r6
| ||| 0x08059ae0 0020 movs r0, 0
| ||| 0x08059ae2 7055 strb r0, [r6, r5]
| ||| 0x08059ae4 761c adds r6, r6, 1
| |`--> 0x08059ae6 2078 ldrb r0, [r4]
| | | 0x08059ae8 0028 cmp r0, 0
| `===< 0x08059aea f3d1 bne 0x8059ad4
\ `-> 0x08059aec f1bd pop {r0, r4, r5, r6, r7, pc}
/ (fcn) func_59b2a 22
| Caller: func_5522e
| func_59b2a ();
| 0x08059b2a 10b5 push {r4, lr}
| 0x08059b2c 0024 movs r4, 0
| 0x08059b2e 92b2 uxth r2, r2
| 0x08059b30 1300 movs r3, r2
| 0x08059b32 0a00 movs r2, r1
| 0x08059b34 0021 movs r1, 0
| 0x08059b36 fff739fc bl func_593ac
| 0x08059b3a 2000 movs r0, r4
| 0x08059b3c c0b2 uxtb r0, r0
\ 0x08059b3e 10bd pop {r4, pc}
/ (fcn) func_59b40 40
| Caller: func_8f21a
| func_59b40 ();
| 0x08059b40 10b5 push {r4, lr}
| 0x08059b42 0024 movs r4, 0
| 0x08059b44 92b2 uxth r2, r2
| 0x08059b46 c0f89423 str.w r2, [r0, 0x394]
| 0x08059b4a 92b2 uxth r2, r2
| 0x08059b4c c0f89023 str.w r2, [r0, 0x390]
| 0x08059b50 0323 movs r3, 3 ; 3
| 0x08059b52 80f81131 strb.w r3, [r0, 0x111]
| 0x08059b56 1300 movs r3, r2
| 0x08059b58 9bb2 uxth r3, r3
| 0x08059b5a 0a00 movs r2, r1
| 0x08059b5c 0021 movs r1, 0
| 0x08059b5e fff702fc bl func_59366
| 0x08059b62 2000 movs r0, r4
| 0x08059b64 c0b2 uxtb r0, r0
\ 0x08059b66 10bd pop {r4, pc}
/ (fcn) func_59b68 22
| Caller: func_5519a
| func_59b68 ();
| 0x08059b68 10b5 push {r4, lr}
| 0x08059b6a 0024 movs r4, 0
| 0x08059b6c 1300 movs r3, r2
| 0x08059b6e 9bb2 uxth r3, r3
| 0x08059b70 0a00 movs r2, r1
| 0x08059b72 0021 movs r1, 0
| 0x08059b74 fff7f7fb bl func_59366
| 0x08059b78 2000 movs r0, r4
| 0x08059b7a c0b2 uxtb r0, r0
\ 0x08059b7c 10bd pop {r4, pc}
/ (fcn) func_59b7e 36
| Caller: func_59510 func_59560 func_59a14 func_59848 func_59976 func_5519a
| func_597f0
| func_59b7e ();
| 0x08059b7e 38b5 push {r3, r4, r5, lr}
| 0x08059b80 0400 movs r4, r0
| 0x08059b82 0025 movs r5, 0
| 0x08059b84 0420 movs r0, 4 ; 4
| 0x08059b86 84f81101 strb.w r0, [r4, 0x111]
| 0x08059b8a 0023 movs r3, 0
| 0x08059b8c 0022 movs r2, 0
| 0x08059b8e 0021 movs r1, 0
| 0x08059b90 2000 movs r0, r4
| 0x08059b92 fff70bfc bl func_593ac
| 0x08059b96 2000 movs r0, r4
| 0x08059b98 07f07fff bl func_61a9a
| 0x08059b9c 2800 movs r0, r5
| 0x08059b9e c0b2 uxtb r0, r0
\ 0x08059ba0 32bd pop {r1, r4, r5, pc}
/ (fcn) func_59ba2 36
| Caller: func_5522e
| func_59ba2 ();
| 0x08059ba2 38b5 push {r3, r4, r5, lr}
| 0x08059ba4 0400 movs r4, r0
| 0x08059ba6 0025 movs r5, 0
| 0x08059ba8 0520 movs r0, 5 ; 5
| 0x08059baa 84f81101 strb.w r0, [r4, 0x111]
| 0x08059bae 0023 movs r3, 0
| 0x08059bb0 0022 movs r2, 0
| 0x08059bb2 0021 movs r1, 0
| 0x08059bb4 2000 movs r0, r4
| 0x08059bb6 fff7d6fb bl func_59366
| 0x08059bba 2000 movs r0, r4
| 0x08059bbc 07f06dff bl func_61a9a
| 0x08059bc0 2800 movs r0, r5
| 0x08059bc2 c0b2 uxtb r0, r0
\ 0x08059bc4 32bd pop {r1, r4, r5, pc}
/ (fcn) func_59c00 46
| Caller: func_59ec0
| func_59c00 ();
| 0x08059c00 10b5 push {r4, lr}
| 0x08059c02 4ff08073 mov.w r3, 0x1000000
| 0x08059c06 00bf nop
| .-> 0x08059c08 50f8044b ldr r4, [r0], 4
| | 0x08059c0c 24fb04f2 smuad r2, r4, r4
| | 0x08059c10 9342 cmp r3, r2
| ,==< 0x08059c12 b8bf it lt
| `--> 0x08059c14 1346 mov r3, r2
| | 0x08059c16 0139 subs r1, 1
| `=< 0x08059c18 f6d1 bne 0x8059c08
| 0x08059c1a 1846 mov r0, r3
| 0x08059c1c 0028 cmp r0, 0
| ,=< 0x08059c1e b8bf it lt
| `-> 0x08059c20 c043 mvns r0, r0
| ,=< 0x08059c22 1cbf itt ne
| `-> 0x08059c24 b0fa80f0 clz r0, r0
| 0x08059c28 0138 subs r0, 1
| 0x08059c2a 0138 subs r0, 1
\ 0x08059c2c 10bd pop {r4, pc}
/ (fcn) func_59c40 78
| Caller: func_59ec0
| func_59c40 ();
| 0x08059c40 2029 cmp r1, 0x20 ; 32
| 0x08059c42 2de9c043 push.w {r6, r7, r8, sb, lr}
| ,=< 0x08059c46 08d0 beq 0x8059c5a
| ,==< 0x08059c48 03dc bgt 0x8059c52
| || 0x08059c4a 0829 cmp r1, 8 ; 8
| ,===< 0x08059c4c 06d0 beq 0x8059c5c
| ||| 0x08059c4e 1029 cmp r1, 0x10 ; 16
| ,====< 0x08059c50 00e0 b 0x8059c54
| ||`--> 0x08059c52 4029 cmp r1, 0x40 ; '@' ; 64
| `-,==< 0x08059c54 02d0 beq 0x8059c5c
| ||| 0x08059c56 0e4b ldr r3, [0x08059c92] ; [0x8059c90:4]=0x8095988
| ,====< 0x08059c58 00e0 b 0x8059c5c
| |||`-> 0x08059c5a 0e4b ldr r3, [0x08059c96] ; [0x8059c94:4]=0x8095a6c
| ```--> 0x08059c5c 33f902cb ldrsh ip, [r3], 2
| 0x08059c60 0246 mov r2, r0
| 0x08059c62 00bf nop
| .-> 0x08059c64 33f9027b ldrsh r7, [r3], 2
| | 0x08059c68 33f9026b ldrsh r6, [r3], 2
| | 0x08059c6c 02eb4702 add.w r2, r2, r7, lsl 1
| | 0x08059c70 00eb4600 add.w r0, r0, r6, lsl 1
| | 0x08059c74 bcf1010c subs.w ip, ip, 1
| | 0x08059c78 d2f80080 ldr.w r8, [r2]
| | 0x08059c7c d0f80090 ldr.w sb, [r0]
| | 0x08059c80 42f8029b str sb, [r2], 2
| | 0x08059c84 40f8028b str r8, [r0], 2
| `=< 0x08059c88 ecd1 bne 0x8059c64
\ 0x08059c8a bde8c083 pop.w {r6, r7, r8, sb, pc}
/ (fcn) func_59cc8 42
| func_59cc8 ();
| 0x08059cc8 2de9f000 push.w {r4, r5, r6, r7}
| 0x08059ccc 00f10403 add.w r3, r0, 4
| ,=< 0x08059cd0 12d0 beq 0x8059cf8
| | 0x08059cd2 012a cmp r2, 1 ; 1
| ,==< 0x08059cd4 22d0 beq 0x8059d1c
| || 0x08059cd6 00bf nop
| .---> 0x08059cd8 0568 ldr r5, [r0]
| ||| 0x08059cda 1c68 ldr r4, [r3]
| ||| 0x08059cdc 94fa25f7 shadd16 r7, r4, r5
| ||| 0x08059ce0 d5fa24f2 shsub16 r2, r5, r4
| ||| 0x08059ce4 40f8087b str r7, [r0], 8
| ||| 0x08059ce8 43f8082b str r2, [r3], 8
| ||| 0x08059cec 0239 subs r1, 2
| `===< 0x08059cee f3d1 bne 0x8059cd8
\ || 0x08059cf0 f0bc pop {r4, r5, r6, r7}
/ (fcn) func_59d40 204
| Caller: func_59ec0
| func_59d40 ();
| 0x08059d40 2de9fc4f push.w {r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08059d44 0446 mov r4, r0
| 0x08059d46 0c98 ldr r0, [sp, 0x30]
| 0x08059d48 0d46 mov r5, r1
| 0x08059d4a 10f1010f cmn.w r0, 1 ; 1
| 0x08059d4e 0b9e ldr r6, [sp, 0x2c]
| 0x08059d50 019f ldr r7, [sp, 4]
| 0x08059d52 4fea8707 lsl.w r7, r7, 2
| 0x08059d56 0c97 str r7, [sp, 0x30]
| 0x08059d58 2046 mov r0, r4
| 0x08059d5a a846 mov r8, r5
| 0x08059d5c 4feac202 lsl.w r2, r2, 3
| 0x08059d60 0092 str r2, [sp]
| ,=< 0x08059d62 53d0 beq 0x8059e0c
| .--> 0x08059d64 ddf80020 ldr.w r2, [sp]
| || 0x08059d68 ddf804a0 ldr.w sl, [sp, 4]
| || 0x08059d6c dff834b1 ldr.w fp, [0x08059ea8] ; [0x8059ea8:4]=0x8000f3af
| .---> 0x08059d70 d8f800e0 ldr.w lr, [r8]
| ||| 0x08059d74 dbe90045 ldrd r4, r5, [fp]
| ||| 0x08059d78 0beb020b add.w fp, fp, r2
| ||| 0x08059d7c b0f90070 ldrsh.w r7, [r0]
| ||| 0x08059d80 4efb04f3 smusd r3, lr, r4
| ||| 0x08059d84 b0f90210 ldrsh.w r1, [r0, 2]
| ||| 0x08059d88 2efb14f9 smuadx sb, lr, r4
| ||| 0x08059d8c d8f804e0 ldr.w lr, [r8, 4]
| ||| 0x08059d90 03ebc734 add.w r4, r3, r7, lsl 15
| ||| 0x08059d94 09ebc13c add.w ip, sb, r1, lsl 15
| ||| 0x08059d98 4feae434 asr.w r4, r4, 0xf
| ||| 0x08059d9c c4ea4c0c pkhbt ip, r4, ip, lsl 1
| ||| 0x08059da0 40f804cb str ip, [r0], 4
| ||| 0x08059da4 c3ebc734 rsb r4, r3, r7, lsl 15
| ||| 0x08059da8 c9ebc13c rsb ip, sb, r1, lsl 15
| ||| 0x08059dac b0f90070 ldrsh.w r7, [r0]
| ||| 0x08059db0 4feae434 asr.w r4, r4, 0xf
| ||| 0x08059db4 c4ea4c0c pkhbt ip, r4, ip, lsl 1
| ||| 0x08059db8 dbe90045 ldrd r4, r5, [fp]
| ||| 0x08059dbc 0beb020b add.w fp, fp, r2
| ||| 0x08059dc0 4efb04f3 smusd r3, lr, r4
| ||| 0x08059dc4 b0f90210 ldrsh.w r1, [r0, 2]
| ||| 0x08059dc8 2efb14f9 smuadx sb, lr, r4
| ||| 0x08059dcc 03ebc734 add.w r4, r3, r7, lsl 15
| ||| 0x08059dd0 48f808cb str ip, [r8], 8
| ||| 0x08059dd4 09ebc13c add.w ip, sb, r1, lsl 15
| ||| 0x08059dd8 4feae434 asr.w r4, r4, 0xf
| ||| 0x08059ddc c4ea4c0c pkhbt ip, r4, ip, lsl 1
| ||| 0x08059de0 40f804cb str ip, [r0], 4
| ||| 0x08059de4 c3ebc734 rsb r4, r3, r7, lsl 15
| ||| 0x08059de8 c9ebc13c rsb ip, sb, r1, lsl 15
| ||| 0x08059dec 4feae434 asr.w r4, r4, 0xf
| ||| 0x08059df0 c4ea4c0c pkhbt ip, r4, ip, lsl 1
| ||| 0x08059df4 baf1020a subs.w sl, sl, 2
| ||| 0x08059df8 48f804cc str ip, [r8, -0x4]
| `===< 0x08059dfc b8d1 bne 0x8059d70
| || 0x08059dfe 0c9f ldr r7, [sp, 0x30]
| || 0x08059e00 013e subs r6, 1
| || 0x08059e02 3844 add r0, r7
| || 0x08059e04 b844 add r8, r7
| `==< 0x08059e06 add1 bne 0x8059d64
\ | 0x08059e08 bde8fc8f pop.w {r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_59ec0 162
| Caller: func_5a1b4 func_5a190
| func_59ec0 ();
| 0x08059ec0 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08059ec4 0125 movs r5, 1 ; 1
| 0x08059ec6 87b0 sub sp, 0x1c
| 0x08059ec8 9540 lsls r5, r2
| 0x08059eca 0491 str r1, [sp, 0x10]
| 0x08059ecc 2946 mov r1, r5
| 0x08059ece 0446 mov r4, r0
| 0x08059ed0 0392 str r2, [sp, 0xc]
| 0x08059ed2 fff795fe bl func_59c00
| 0x08059ed6 431c adds r3, r0, 1
| 0x08059ed8 062b cmp r3, 6 ; 6
| ,=< 0x08059eda 9cbf itt ls
| `-> 0x08059edc 214a ldr r2, [0x08059f64] ; [0x8059f64:4]=0x80fbdd7
| 0x08059ede d756 ldrsb r7, [r2, r3]
| 0x08059ee0 2946 mov r1, r5
| ,=< 0x08059ee2 88bf it hi
| `-> 0x08059ee4 0027 movs r7, 0
| 0x08059ee6 0646 mov r6, r0
| 0x08059ee8 2046 mov r0, r4
| 0x08059eea fff7a9fe bl func_59c40
| 0x08059eee 2946 mov r1, r5
| 0x08059ef0 2046 mov r0, r4
| 0x08059ef2 3a46 mov r2, r7
| 0x08059ef4 fff7e4fe bl func_59cc0
| 0x08059ef8 4feaa50a asr.w sl, r5, 2
| 0x08059efc 0595 str r5, [sp, 0x14]
| 0x08059efe 023e subs r6, 2
| 0x08059f00 4ff0800b mov.w fp, 0x80 ; 128
| 0x08059f04 4ff00208 mov.w r8, 2 ; 2
| 0x08059f08 4ff00109 mov.w sb, 1 ; 1
| 0x08059f0c 2546 mov r5, r4
| ,=< 0x08059f0e 20e0 b 0x8059f52
| .--> 0x08059f10 19f0010f tst.w sb, 1 ; 1
| ,===< 0x08059f14 04d1 bne 0x8059f20
| ||| 0x08059f16 2846 mov r0, r5
| ||| 0x08059f18 0599 ldr r1, [sp, 0x14]
| ||| 0x08059f1a fff771fe bl func_59c00
| ||| 0x08059f1e 0646 mov r6, r0
| `---> 0x08059f20 012e cmp r6, 1 ; 1
| ,===< 0x08059f22 d4bf ite le
| `---> 0x08059f24 4ff0ff34 mov.w r4, -1 ; -1
| || 0x08059f28 0024 movs r4, 0
| || 0x08059f2a 05eb8801 add.w r1, r5, r8, lsl 2
| || 0x08059f2e 5a46 mov r2, fp
| || 0x08059f30 4346 mov r3, r8
| || 0x08059f32 2846 mov r0, r5
| || 0x08059f34 cdf800a0 str.w sl, [sp]
| || 0x08059f38 0194 str r4, [sp, 4]
| || 0x08059f3a fff701ff bl func_59d40
| || 0x08059f3e 4fea6b0b asr.w fp, fp, 1
| || 0x08059f42 4fea6a0a asr.w sl, sl, 1
| || 0x08059f46 4fea4808 lsl.w r8, r8, 1
| || 0x08059f4a 3f19 adds r7, r7, r4
| || 0x08059f4c 023e subs r6, 2
| || 0x08059f4e 09f10109 add.w sb, sb, 1
| |`-> 0x08059f52 039b ldr r3, [sp, 0xc]
| | 0x08059f54 9945 cmp sb, r3
| `==< 0x08059f56 dbdb blt 0x8059f10
| 0x08059f58 049b ldr r3, [sp, 0x10]
| 0x08059f5a d81b subs r0, r3, r7
| 0x08059f5c 07b0 add sp, 0x1c
\ 0x08059f5e bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_5a080 82
| Caller: func_5a0dc
| func_5a080 ();
| 0x0805a080 2de9f00f push.w {r4, r5, r6, r7, r8, sb, sl, fp}
| 0x0805a084 4feac202 lsl.w r2, r2, 3
| 0x0805a088 dff84cb0 ldr.w fp, [func_5a0dc] ; [0x805a0dc:4]=0x47f0e92d
| 0x0805a08c 9344 add fp, r2
| 0x0805a08e 00bf nop
| .-> 0x0805a090 dbf80060 ldr.w r6, [fp]
| | 0x0805a094 9344 add fp, r2
| | 0x0805a096 0c68 ldr r4, [r1]
| | 0x0805a098 b0f90080 ldrsh.w r8, [r0]
| | 0x0805a09c 24fb16fc smuadx ip, r4, r6
| | 0x0805a0a0 b0f90270 ldrsh.w r7, [r0, 2]
| | 0x0805a0a4 44fb06f6 smusd r6, r4, r6
| | 0x0805a0a8 0cebc735 add.w r5, ip, r7, lsl 15
| | 0x0805a0ac 06ebc834 add.w r4, r6, r8, lsl 15
| | 0x0805a0b0 c5ea2445 pkhtb r5, r5, r4, asr 0x10
| | 0x0805a0b4 c6ebc836 rsb r6, r6, r8, lsl 15
| | 0x0805a0b8 acebc73c sub.w ip, ip, r7, lsl 15
| | 0x0805a0bc ccea264c pkhtb ip, ip, r6, asr 0x10
| | 0x0805a0c0 40f8045b str r5, [r0], 4
| | 0x0805a0c4 41f804c9 str ip, [r1], -4
| | 0x0805a0c8 013b subs r3, 1
| `=< 0x0805a0ca e1d1 bne 0x805a090
| 0x0805a0cc bde8f00f pop.w {r4, r5, r6, r7, r8, sb, sl, fp}
\ 0x0805a0d0 7047 bx lr
/ (fcn) func_5a0dc 180
| Caller: func_5a1b4 func_5a190
| func_5a0dc ();
| 0x0805a0dc 2de9f047 push.w {r4, r5, r6, r7, r8, sb, sl, lr}
| 0x0805a0e0 0125 movs r5, 1 ; 1
| 0x0805a0e2 9540 lsls r5, r2
| 0x0805a0e4 8a46 mov sl, r1
| 0x0805a0e6 0899 ldr r1, [sp, 0x20]
| 0x0805a0e8 4ff40079 mov.w sb, 0x200 ; 512
| 0x0805a0ec ae10 asrs r6, r5, 2
| 0x0805a0ee 49fa02f9 asr.w sb, sb, r2
| 0x0805a0f2 0446 mov r4, r0
| 0x0805a0f4 013e subs r6, 1
| 0x0805a0f6 00eb4507 add.w r7, r0, r5, lsl 1
| 0x0805a0fa b0f90020 ldrsh.w r2, [r0]
| ,=< 0x0805a0fe 21b9 cbnz r1, 0x805a10a
| | 0x0805a100 b0f90210 ldrsh.w r1, [r0, 2]
| | 0x0805a104 d203 lsls r2, r2, 0xf
| | 0x0805a106 c903 lsls r1, r1, 0xf
| ,==< 0x0805a108 04e0 b 0x805a114
| ,=`-> 0x0805a10a 53b1 cbz r3, 0x805a122
| || 0x0805a10c 30f91510 ldrsh.w r1, [r0, r5, lsl 1]
| || 0x0805a110 9203 lsls r2, r2, 0xe
| || 0x0805a112 8903 lsls r1, r1, 0xe
| |`--> 0x0805a114 8818 adds r0, r1, r2
| | 0x0805a116 521a subs r2, r2, r1
| | 0x0805a118 0014 asrs r0, r0, 0x10
| | 0x0805a11a 1214 asrs r2, r2, 0x10
| | 0x0805a11c 2080 strh r0, [r4]
| | 0x0805a11e 6280 strh r2, [r4, 2]
| | ,=< 0x0805a120 0ce0 b 0x805a13c
| `---> 0x0805a122 b0f90210 ldrsh.w r1, [r0, 2]
| | 0x0805a126 d203 lsls r2, r2, 0xf
| | 0x0805a128 c903 lsls r1, r1, 0xf
| | 0x0805a12a 8818 adds r0, r1, r2
| | 0x0805a12c 521a subs r2, r2, r1
| | 0x0805a12e 0014 asrs r0, r0, 0x10
| | 0x0805a130 1214 asrs r2, r2, 0x10
| | 0x0805a132 2080 strh r0, [r4]
| | 0x0805a134 24f81520 strh.w r2, [r4, r5, lsl 1]
| | 0x0805a138 7b80 strh r3, [r7, 2]
| | 0x0805a13a 6380 strh r3, [r4, 2]
| `-> 0x0805a13c 04f10408 add.w r8, r4, 4
| 0x0805a140 043f subs r7, 4
| 0x0805a142 4046 mov r0, r8
| 0x0805a144 3946 mov r1, r7
| 0x0805a146 3246 mov r2, r6
| ,=< 0x0805a148 13b1 cbz r3, 0x805a150
| | 0x0805a14a fff759ff bl 0x805a000
| ,==< 0x0805a14e 01e0 b 0x805a154
| |`-> 0x0805a150 fff716ff bl 0x8059f80
| `--> 0x0805a154 6d10 asrs r5, r5, 1
| 0x0805a156 4a46 mov r2, sb
| 0x0805a158 3346 mov r3, r6
| 0x0805a15a 4046 mov r0, r8
| 0x0805a15c 3946 mov r1, r7
| 0x0805a15e fff78fff bl func_5a080
| 0x0805a162 34f91520 ldrsh.w r2, [r4, r5, lsl 1]
| 0x0805a166 5210 asrs r2, r2, 1
| 0x0805a168 04eb4503 add.w r3, r4, r5, lsl 1
| 0x0805a16c 24f81520 strh.w r2, [r4, r5, lsl 1]
| 0x0805a170 b3f90220 ldrsh.w r2, [r3, 2]
| 0x0805a174 1204 lsls r2, r2, 0x10
| 0x0805a176 b2f1004f cmp.w r2, -0x80000000
| ,=< 0x0805a17a 01d0 beq 0x805a180
| | 0x0805a17c 5242 rsbs r2, r2, 0
| ,==< 0x0805a17e 01e0 b 0x805a184
| |`-> 0x0805a180 6ff00042 mvn r2, 0x80000000
| `--> 0x0805a184 5214 asrs r2, r2, 0x11
| 0x0805a186 5a80 strh r2, [r3, 2]
| 0x0805a188 0af10100 add.w r0, sl, 1
\ 0x0805a18c bde8f087 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}
/ (fcn) func_5a190 36
| Caller: func_5c8d4 func_5f994 func_55c78
| func_5a190 ();
| 0x0805a190 73b5 push {r0, r1, r4, r5, r6, lr}
| 0x0805a192 1646 mov r6, r2
| 0x0805a194 013a subs r2, 1
| 0x0805a196 12b2 sxth r2, r2
| 0x0805a198 1d46 mov r5, r3
| 0x0805a19a 0446 mov r4, r0
| 0x0805a19c fff790fe bl func_59ec0
| 0x0805a1a0 3246 mov r2, r6
| 0x0805a1a2 0146 mov r1, r0
| 0x0805a1a4 0023 movs r3, 0
| 0x0805a1a6 2046 mov r0, r4
| 0x0805a1a8 0095 str r5, [sp]
| 0x0805a1aa fff797ff bl func_5a0dc
| ,=< 0x0805a1ae 05b9 cbnz r5, 0x805a1b2
| | 0x0805a1b0 6580 strh r5, [r4, 2]
\ `-> 0x0805a1b2 7cbd pop {r2, r3, r4, r5, r6, pc}
/ (fcn) func_5a1b4 42
| Caller: func_5c8d4 func_5f994
| func_5a1b4 ();
| 0x0805a1b4 37b5 push {r0, r1, r2, r4, r5, lr}
| 0x0805a1b6 0546 mov r5, r0
| 0x0805a1b8 1446 mov r4, r2
| ,=< 0x0805a1ba 03b9 cbnz r3, 0x805a1be
| | 0x0805a1bc 4380 strh r3, [r0, 2]
| `-> 0x0805a1be 0093 str r3, [sp]
| 0x0805a1c0 2246 mov r2, r4
| 0x0805a1c2 0123 movs r3, 1 ; 1
| 0x0805a1c4 2846 mov r0, r5
| 0x0805a1c6 fff789ff bl func_5a0dc
| 0x0805a1ca 621e subs r2, r4, 1
| 0x0805a1cc 0146 mov r1, r0
| 0x0805a1ce 12b2 sxth r2, r2
| 0x0805a1d0 2846 mov r0, r5
| 0x0805a1d2 fff775fe bl func_59ec0
| 0x0805a1d6 c4f10104 rsb.w r4, r4, 1
| 0x0805a1da 0019 adds r0, r0, r4
\ 0x0805a1dc 3ebd pop {r1, r2, r3, r4, r5, pc}
/ (fcn) func_5a298 80
| Caller: func_55dac
| func_5a298 ();
| 0x0805a298 f0b4 push {r4, r5, r6, r7}
| 0x0805a29a 4ff0010c mov.w ip, 1 ; 1
| 0x0805a29e 1646 mov r6, r2
| 0x0805a2a0 0024 movs r4, 0
| 0x0805a2a2 0025 movs r5, 0
| .-> 0x0805a2a4 50f8047b ldr r7, [r0], 4
| | 0x0805a2a8 c7fb0c45 smlal r4, r5, r7, ip
| | 0x0805a2ac 0139 subs r1, 1
| `=< 0x0805a2ae f9d1 bne 0x805a2a4
| 0x0805a2b0 54ea0503 orrs.w r3, r4, r5
| ,=< 0x0805a2b4 08bf it eq
| `-> 0x0805a2b6 0846 mov r0, r1
| ,=< 0x0805a2b8 14d0 beq 0x805a2e4
| | 0x0805a2ba ea17 asrs r2, r5, 0x1f
| | 0x0805a2bc 1346 mov r3, r2
| | 0x0805a2be 82ea0400 eor.w r0, r2, r4
| | 0x0805a2c2 82ea0501 eor.w r1, r2, r5
| | 0x0805a2c6 801a subs r0, r0, r2
| | 0x0805a2c8 61eb0301 sbc.w r1, r1, r3
| | 0x0805a2cc 8bb2 uxth r3, r1
| ,==< 0x0805a2ce 5bb9 cbnz r3, 0x805a2e8
| || 0x0805a2d0 0028 cmp r0, 0
| || 0x0805a2d2 3368 ldr r3, [r6]
| ,===< 0x0805a2d4 20db blt 0x805a318
| ||| 0x0805a2d6 b0fa80f0 clz r0, r0
| ||| 0x0805a2da 0138 subs r0, 1
| ||| 0x0805a2dc 1b1a subs r3, r3, r0
| ||| 0x0805a2de 14fa00f0 lsls.w r0, r4, r0
| ||| 0x0805a2e2 3360 str r3, [r6]
| ||`-> 0x0805a2e4 f0bc pop {r4, r5, r6, r7}
\ || 0x0805a2e6 7047 bx lr
/ (fcn) func_5a3b8 38
| Caller: func_5f994
| func_5a3b8 ();
| 0x0805a3b8 30b4 push {r4, r5}
| 0x0805a3ba 039c ldr r4, [sp, 0xc]
| 0x0805a3bc 029d ldr r5, [sp, 8]
| 0x0805a3be 2c1b subs r4, r5, r4
| 0x0805a3c0 0f3c subs r4, 0xf
| ,=< 0x0805a3c2 0cd4 bmi 0x805a3de
| | 0x0805a3c4 00eb4202 add.w r2, r0, r2, lsl 1
| .--> 0x0805a3c8 31f9025b ldrsh r5, [r1], 2
| || 0x0805a3cc 03fb05f5 mul r5, r3, r5
| || 0x0805a3d0 a540 lsls r5, r4
| || 0x0805a3d2 20f8025b strh r5, [r0], 2
| || 0x0805a3d6 9042 cmp r0, r2
| `==< 0x0805a3d8 f6d1 bne 0x805a3c8
| | 0x0805a3da 30bc pop {r4, r5}
\ | 0x0805a3dc 7047 bx lr
/ (fcn) func_5a418 152
| Caller: func_6250c func_5f994
| func_5a418 ();
| 0x0805a418 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x0805a41c 0b46 mov r3, r1
| 0x0805a41e 0446 mov r4, r0
| 0x0805a420 0e46 mov r6, r1
| 0x0805a422 4fea620c asr.w ip, r2, 1
| 0x0805a426 0025 movs r5, 0
| 0x0805a428 0020 movs r0, 0
| 0x0805a42a 0021 movs r1, 0
| ,=< 0x0805a42c 04e0 b 0x805a438
| .--> 0x0805a42e 56f8047b ldr r7, [r6], 4
| || 0x0805a432 c7fbc701 smlald r0, r1, r7, r7
| || 0x0805a436 0135 adds r5, 1
| |`-> 0x0805a438 6545 cmp r5, ip
| `==< 0x0805a43a f8db blt 0x805a42e
| 0x0805a43c d507 lsls r5, r2, 0x1f
| ,=< 0x0805a43e 07d5 bpl 0x805a450
| | 0x0805a440 013a subs r2, 1
| | 0x0805a442 33f81230 ldrh.w r3, [r3, r2, lsl 1]
| | 0x0805a446 13fb03f3 smulbb r3, r3, r3
| | 0x0805a44a c018 adds r0, r0, r3
| | 0x0805a44c 41ebe371 adc.w r1, r1, r3, asr 31
| `-> 0x0805a450 0218 adds r2, r0, r0
| 0x0805a452 41eb0103 adc.w r3, r1, r1
| 0x0805a456 1046 mov r0, r2
| 0x0805a458 1946 mov r1, r3
| 0x0805a45a 50ea0105 orrs.w r5, r0, r1
| ,=< 0x0805a45e 03d1 bne 0x805a468
| | 0x0805a460 0023 movs r3, 0
| | 0x0805a462 2360 str r3, [r4]
| | 0x0805a464 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
| `-> 0x0805a468 19b2 sxth r1, r3
| 0x0805a46a 0029 cmp r1, 0
| 0x0805a46c 1046 mov r0, r2
| ,=< 0x0805a46e 02da bge 0x805a476
| | 0x0805a470 cb43 mvns r3, r1
| | 0x0805a472 d243 mvns r2, r2
| ,==< 0x0805a474 00e0 b 0x805a478
| |`-> 0x0805a476 0b46 mov r3, r1
| `--> 0x0805a478 b3fa83f3 clz r3, r3
| 0x0805a47c 202b cmp r3, 0x20 ; 32
| ,=< 0x0805a47e 04bf itt eq
| `-> 0x0805a480 b2fa82f2 clz r2, r2
| 0x0805a484 02f12003 add.w r3, r2, 0x20
| 0x0805a488 b3f12102 subs.w r2, r3, 0x21
| 0x0805a48c c2f10005 rsb.w r5, r2, 0
| ,=< 0x0805a490 05d4 bmi 0x805a49e
| | 0x0805a492 10fa02f2 lsls.w r2, r0, r2
| | 0x0805a496 1046 mov r0, r2
| | 0x0805a498 2560 str r5, [r4]
| | 0x0805a49a bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
| `-> 0x0805a49e 013b subs r3, 1
| 0x0805a4a0 e840 lsrs r0, r5
| 0x0805a4a2 9940 lsls r1, r3
| 0x0805a4a4 2560 str r5, [r4]
| 0x0805a4a6 41ea0005 orr.w r5, r1, r0
| 0x0805a4aa 2846 mov r0, r5
\ 0x0805a4ac bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_5a4b0 20
| Caller: func_55c78
| func_5a4b0 ();
| .-> 0x0805a4b0 51f8043b ldr r3, [r1], 4
| | 0x0805a4b4 23fb03f3 smuad r3, r3, r3
| | 0x0805a4b8 5b00 lsls r3, r3, 1
| | 0x0805a4ba 013a subs r2, 1
| | 0x0805a4bc 40f8043b str r3, [r0], 4
| `=< 0x0805a4c0 f6d1 bne func_5a4b0
\ 0x0805a4c2 7047 bx lr
/ (fcn) func_5a4c4 108
| Caller: func_5a570 func_631e0
| func_5a4c4 ();
| || 0x0805a4c4 002b cmp r3, 0
| || 0x0805a4c6 10b4 push {r4}
| ,===< 0x0805a4c8 05d1 bne 0x805a4d6
| ||| 0x0805a4ca 8842 cmp r0, r1
| ,====< 0x0805a4cc 0fd0 beq 0x805a4ee
| |||| 0x0805a4ce 12b2 sxth r2, r2
| |||| 0x0805a4d0 10bc pop {r4}
| ||`==< 0x0805a4d2 fbf7abba b.w func_55a2c
| |`,==< 0x0805a4d6 0cdc bgt 0x805a4f2
| | || 0x0805a4d8 5b42 rsbs r3, r3, 0
| | || 0x0805a4da 00eb4202 add.w r2, r0, r2, lsl 1
| | || 0x0805a4de 00bf nop
| |.---> 0x0805a4e0 31f9024b ldrsh r4, [r1], 2
| |||| 0x0805a4e4 1c41 asrs r4, r3
| |||| 0x0805a4e6 20f8024b strh r4, [r0], 2
| |||| 0x0805a4ea 9042 cmp r0, r2
| |`===< 0x0805a4ec f8d1 bne 0x805a4e0
| `.---> 0x0805a4ee 10bc pop {r4}
| ||| 0x0805a4f0 7047 bx lr
| |`--> 0x0805a4f2 00eb4202 add.w r2, r0, r2, lsl 1
| | | 0x0805a4f6 00bf nop
| |.--> 0x0805a4f8 31f9024b ldrsh r4, [r1], 2
| ||| 0x0805a4fc 9c40 lsls r4, r3
| ||| 0x0805a4fe 20f8024b strh r4, [r0], 2
| ||| 0x0805a502 9042 cmp r0, r2
| |`==< 0x0805a504 f8d1 bne 0x805a4f8
| `===< 0x0805a506 f2e7 b 0x805a4ee
| | 0x0805a508 10b4 push {r4}
| ,==< 0x0805a50a 2bb9 cbnz r3, 0x805a518
| || 0x0805a50c 8842 cmp r0, r1
| ,===< 0x0805a50e 0cd0 beq 0x805a52a
| ||| 0x0805a510 12b2 sxth r2, r2
| ||| 0x0805a512 10bc pop {r4}
| ||`=< 0x0805a514 fbf78aba b.w func_55a2c
| |`--> 0x0805a518 00eb4202 add.w r2, r0, r2, lsl 1
| | .-> 0x0805a51c 31f9024b ldrsh r4, [r1], 2
| | | 0x0805a520 1c41 asrs r4, r3
| | | 0x0805a522 20f8024b strh r4, [r0], 2
| | | 0x0805a526 9042 cmp r0, r2
| | `=< 0x0805a528 f8d1 bne 0x805a51c
| `---> 0x0805a52a 10bc pop {r4}
| 0x0805a52c 7047 bx lr
\ 0x0805a52e 00bf nop
/ (fcn) func_5a530 64
| Caller: func_5a570
| func_5a530 ();
| 0x0805a530 00eb4101 add.w r1, r0, r1, lsl 1
| 0x0805a534 0023 movs r3, 0
| 0x0805a536 00bf nop
| .-> 0x0805a538 30f9022b ldrsh r2, [r0], 2
| | 0x0805a53c 002a cmp r2, 0
| ,==< 0x0805a53e b8bf it lt
| `--> 0x0805a540 5242 rsbs r2, r2, 0
| | 0x0805a542 9342 cmp r3, r2
| ,==< 0x0805a544 b8bf it lt
| `--> 0x0805a546 1346 mov r3, r2
| | 0x0805a548 8842 cmp r0, r1
| `=< 0x0805a54a f5d1 bne 0x805a538
| 0x0805a54c b3f5004f cmp.w r3, 0x8000
| ,=< 0x0805a550 0bd1 bne 0x805a56a
| | 0x0805a552 0023 movs r3, 0
| | 0x0805a554 c7f6ff73 movt r3, 0x7fff
| .--> 0x0805a558 002b cmp r3, 0
| ,===< 0x0805a55a b8bf it lt
| `---> 0x0805a55c db43 mvns r3, r3
| ,===< 0x0805a55e 1cbf itt ne
| `---> 0x0805a560 b3fa83f3 clz r3, r3
| || 0x0805a564 013b subs r3, 1
| || 0x0805a566 5842 rsbs r0, r3, 0
| || 0x0805a568 7047 bx lr
| |`-> 0x0805a56a 1b04 lsls r3, r3, 0x10
| `==< 0x0805a56c f4e7 b 0x805a558
\ 0x0805a56e 00bf nop
/ (fcn) func_5a570 52
| Caller: func_62334 func_62490 func_623c0 func_5cd94 func_5c8d4 func_55cc8
| func_62204
| func_5a570 ();
| 0x0805a570 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x0805a574 0d46 mov r5, r1
| 0x0805a576 8046 mov r8, r0
| 0x0805a578 1146 mov r1, r2
| 0x0805a57a 2846 mov r0, r5
| 0x0805a57c 1746 mov r7, r2
| 0x0805a57e 1e46 mov r6, r3
| 0x0805a580 fff7d6ff bl func_5a530
| 0x0805a584 a845 cmp r8, r5
| ,=< 0x0805a586 08bf it eq
| `-> 0x0805a588 0028 cmp r0, 0
| 0x0805a58a 0446 mov r4, r0
| ,=< 0x0805a58c 05d0 beq 0x805a59a
| | 0x0805a58e 4342 rsbs r3, r0, 0
| | 0x0805a590 2946 mov r1, r5
| | 0x0805a592 4046 mov r0, r8
| | 0x0805a594 3a46 mov r2, r7
| | 0x0805a596 fff795ff bl func_5a4c4
| `-> 0x0805a59a 3368 ldr r3, [r6]
| 0x0805a59c 1c19 adds r4, r3, r4
| 0x0805a59e 3460 str r4, [r6]
\ 0x0805a5a0 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) func_5a5d8 122
| Caller: ambe_58110
| func_5a5d8 ();
| 0x0805a5d8 591a subs r1, r3, r1
| 0x0805a5da f0b4 push {r4, r5, r6, r7}
| 0x0805a5dc 0029 cmp r1, 0
| 0x0805a5de 049f ldr r7, [sp, 0x10]
| ,=< 0x0805a5e0 19dd ble 0x805a616
| | 0x0805a5e2 00bf nop
| | 0x0805a5e4 00eb4707 add.w r7, r0, r7, lsl 1
| | 0x0805a5e8 6ff0004c mvn ip, 0x80000000
| | 0x0805a5ec 4ff40046 mov.w r6, 0x8000
| .--> 0x0805a5f0 52f8044b ldr r4, [r2], 4
| || 0x0805a5f4 14fa01f3 lsls.w r3, r4, r1
| || 0x0805a5f8 53fa01f5 asrs.w r5, r3, r1
| || 0x0805a5fc a542 cmp r5, r4
| ,===< 0x0805a5fe 18bf it ne
| `---> 0x0805a600 8ceae473 eor.w r3, ip, r4, asr 31
| || 0x0805a604 83fa86f3 qadd r3, r6, r3
| || 0x0805a608 1b14 asrs r3, r3, 0x10
| || 0x0805a60a 20f8023b strh r3, [r0], 2
| || 0x0805a60e b842 cmp r0, r7
| `==< 0x0805a610 eed1 bne 0x805a5f0
| ..--> 0x0805a612 f0bc pop {r4, r5, r6, r7}
| ||| 0x0805a614 7047 bx lr
| ,==`-> 0x0805a616 0dd1 bne 0x805a634
| ||| 0x0805a618 00eb4707 add.w r7, r0, r7, lsl 1
| ||| 0x0805a61c 4ff40041 mov.w r1, 0x8000
| |||.-> 0x0805a620 52f8043b ldr r3, [r2], 4
| |||| 0x0805a624 83fa81f3 qadd r3, r1, r3
| |||| 0x0805a628 1b14 asrs r3, r3, 0x10
| |||| 0x0805a62a 20f8023b strh r3, [r0], 2
| |||| 0x0805a62e b842 cmp r0, r7
| |||`=< 0x0805a630 f6d1 bne 0x805a620
| |`===< 0x0805a632 eee7 b 0x805a612
| `----> 0x0805a634 4942 rsbs r1, r1, 0
| | 0x0805a636 00bf nop
| | 0x0805a638 00eb4707 add.w r7, r0, r7, lsl 1
| |.-> 0x0805a63c 52f8043b ldr r3, [r2], 4
| || 0x0805a640 0b41 asrs r3, r1
| || 0x0805a642 03f50043 add.w r3, r3, 0x8000
| || 0x0805a646 1b14 asrs r3, r3, 0x10
| || 0x0805a648 20f8023b strh r3, [r0], 2
| || 0x0805a64c b842 cmp r0, r7
| |`=< 0x0805a64e f5d1 bne 0x805a63c
\ `==< 0x0805a650 dfe7 b 0x805a612
/ (fcn) func_5b6c0 28
| Caller: func_5715c
| func_5b6c0 ();
| 0x0805b6c0 b0f94420 ldrsh.w r2, [r0, 0x44]
| 0x0805b6c4 0231 adds r1, 2
| 0x0805b6c6 0323 movs r3, 3 ; 3
| 0x0805b6c8 8b40 lsls r3, r1
| 0x0805b6ca 1340 ands r3, r2
| ,=< 0x0805b6cc 17bf itett ne
| `-> 0x0805b6ce 4ff47a23 mov.w r3, 0xfa000
| 0x0805b6d2 1846 mov r0, r3
| 0x0805b6d4 0364 str r3, [r0, 0x40]
| 0x0805b6d6 4ff48060 mov.w r0, 0x400 ; 1024
\ 0x0805b6da 7047 bx lr
/ (fcn) func_5c8d4 1034
| Caller: func_56b4c
| func_5c8d4 ();
| 0x0805c8d4 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0805c8d8 adf28c4d subw sp, sp, 0x48c
| 0x0805c8dc 0646 mov r6, r0
| 0x0805c8de ddf8b044 ldr.w r4, [sp, 0x4b0]
| 0x0805c8e2 0890 str r0, [sp, 0x20]
| 0x0805c8e4 1f46 mov r7, r3
| 0x0805c8e6 3346 mov r3, r6
| 0x0805c8e8 1833 adds r3, 0x18
| 0x0805c8ea 3830 adds r0, 0x38
| 0x0805c8ec 0591 str r1, [sp, 0x14]
| 0x0805c8ee 02f10f05 add.w r5, r2, 0xf
| 0x0805c8f2 c0f12808 rsb.w r8, r0, 0x28
| 0x0805c8f6 0a93 str r3, [sp, 0x28]
| 0x0805c8f8 1e34 adds r4, 0x1e
| 0x0805c8fa b246 mov sl, r6
| 0x0805c8fc 9b46 mov fp, r3
| .-> 0x0805c8fe 00eb0809 add.w sb, r0, r8
| | 0x0805c902 7188 ldrh r1, [r6, 2]
| | 0x0805c904 3289 ldrh r2, [r6, 8]
| | 0x0805c906 f389 ldrh r3, [r6, 0xe]
| | 0x0805c908 b180 strh r1, [r6, 4]
| | 0x0805c90a d144 add sb, sl
| | 0x0805c90c 7281 strh r2, [r6, 0xa]
| | 0x0805c90e 3382 strh r3, [r6, 0x10]
| | 0x0805c910 4946 mov r1, sb
| | 0x0805c912 0822 movs r2, 8 ; 8
| | 0x0805c914 f9f78af8 bl func_55a2c
| | 0x0805c918 b6f84a30 ldrh.w r3, [r6, 0x4a]
| | 0x0805c91c a6f84c30 strh.w r3, [r6, 0x4c]
| | 0x0805c920 d945 cmp sb, fp
| | 0x0805c922 4846 mov r0, sb
| | 0x0805c924 a6f10206 sub.w r6, r6, 2
| `=< 0x0805c928 e9d1 bne 0x805c8fe
| 0x0805c92a 2246 mov r2, r4
| 0x0805c92c 3946 mov r1, r7
| 0x0805c92e 8123 movs r3, 0x81 ; 129
| 0x0805c930 20a8 add r0, sp, 0x80
| 0x0805c932 05f08ffb bl func_62054
| 0x0805c936 0646 mov r6, r0
| 0x0805c938 3146 mov r1, r6
| 0x0805c93a 0822 movs r2, 8 ; 8
| 0x0805c93c 0123 movs r3, 1 ; 1
| 0x0805c93e 20a8 add r0, sp, 0x80
| 0x0805c940 0c96 str r6, [sp, 0x30]
| 0x0805c942 fdf737fc bl func_5a1b4
| 0x0805c946 bdf980e0 ldrsh.w lr, [sp, 0x80]
| 0x0805c94a bdf98061 ldrsh.w r6, [sp, 0x180]
| 0x0805c94e 0c90 str r0, [sp, 0x30]
| 0x0805c950 20a8 add r0, sp, 0x80
| 0x0805c952 4fea6e0e asr.w lr, lr, 1
| 0x0805c956 0146 mov r1, r0
| 0x0805c958 7610 asrs r6, r6, 1
| 0x0805c95a 8122 movs r2, 0x81 ; 129
| 0x0805c95c 47f2f703 movw r3, 0x70f7
| 0x0805c960 adf880e0 strh.w lr, [sp, 0x80]
| 0x0805c964 adf88061 strh.w r6, [sp, 0x180]
| 0x0805c968 fdf746fd bl 0x805a3f8
| 0x0805c96c 0c9b ldr r3, [sp, 0x30]
| 0x0805c96e 20a8 add r0, sp, 0x80
| 0x0805c970 9e1e subs r6, r3, 2
| 0x0805c972 0146 mov r1, r0
| 0x0805c974 0cab add r3, sp, 0x30
| 0x0805c976 8122 movs r2, 0x81 ; 129
| 0x0805c978 0c96 str r6, [sp, 0x30]
| 0x0805c97a fdf7f9fd bl func_5a570
| 0x0805c97e 0021 movs r1, 0
| 0x0805c980 7f22 movs r2, 0x7f ; 127
| 0x0805c982 0df5c170 add.w r0, sp, 0x182
| 0x0805c986 f9f785f8 bl ambe_55a94
| 0x0805c98a 0c99 ldr r1, [sp, 0x30]
| 0x0805c98c 0822 movs r2, 8 ; 8
| 0x0805c98e 0123 movs r3, 1 ; 1
| 0x0805c990 20a8 add r0, sp, 0x80
| 0x0805c992 fdf7fdfb bl func_5a190
| 0x0805c996 0df18201 add.w r1, sp, 0x82
| 0x0805c99a 0646 mov r6, r0
| 0x0805c99c 0246 mov r2, r0
| 0x0805c99e 8023 movs r3, 0x80 ; 128
| 0x0805c9a0 20a8 add r0, sp, 0x80
| 0x0805c9a2 0c96 str r6, [sp, 0x30]
| 0x0805c9a4 05f0d0fb bl func_62148
| 0x0805c9a8 2246 mov r2, r4
| 0x0805c9aa 3946 mov r1, r7
| 0x0805c9ac 8123 movs r3, 0x81 ; 129
| 0x0805c9ae a1a8 add r0, sp, 0x284
| 0x0805c9b0 05f028fc bl func_62204
| 0x0805c9b4 8122 movs r2, 0x81 ; 129
| 0x0805c9b6 0090 str r0, [sp]
| 0x0805c9b8 0446 mov r4, r0
| 0x0805c9ba 20a8 add r0, sp, 0x80
| 0x0805c9bc 0146 mov r1, r0
| 0x0805c9be 0192 str r2, [sp, 4]
| 0x0805c9c0 a1ab add r3, sp, 0x284
| 0x0805c9c2 0022 movs r2, 0
| 0x0805c9c4 05f0b6fc bl func_62334
| 0x0805c9c8 0df28222 addw r2, sp, 0x282
| 0x0805c9cc 0646 mov r6, r0
| 0x0805c9ce 47f6ff71 movw r1, 0x7fff
| 0x0805c9d2 e1a8 add r0, sp, 0x384
| .-> 0x0805c9d4 32f8023f ldrh r3, [r2, 2]!
| ,==< 0x0805c9d8 1bb1 cbz r3, 0x805c9e2
| || 0x0805c9da 1bb2 sxth r3, r3
| || 0x0805c9dc 9942 cmp r1, r3
| ,===< 0x0805c9de a8bf it ge
| `---> 0x0805c9e0 1946 mov r1, r3
| `--> 0x0805c9e2 8242 cmp r2, r0
| `=< 0x0805c9e4 f6d1 bne 0x805c9d4
| 0x0805c9e6 4b1e subs r3, r1, 1
| ,=< 0x0805c9e8 09d0 beq 0x805c9fe
| | 0x0805c9ea 1b04 lsls r3, r3, 0x10
| | 0x0805c9ec 002b cmp r3, 0
| ,==< 0x0805c9ee b8bf it lt
| `--> 0x0805c9f0 db43 mvns r3, r3
| ,==< 0x0805c9f2 1cbf itt ne
| `--> 0x0805c9f4 b3fa83f3 clz r3, r3
| | 0x0805c9f8 013b subs r3, 1
| | 0x0805c9fa c3f10f03 rsb.w r3, r3, 0xf
| `-> 0x0805c9fe 8127 movs r7, 0x81 ; 129
| 0x0805ca00 a1a8 add r0, sp, 0x284
| 0x0805ca02 2246 mov r2, r4
| 0x0805ca04 0097 str r7, [sp]
| 0x0805ca06 0146 mov r1, r0
| 0x0805ca08 05f0b6fc bl func_62378
| 0x0805ca0c 3146 mov r1, r6
| 0x0805ca0e 0446 mov r4, r0
| 0x0805ca10 20a8 add r0, sp, 0x80
| 0x0805ca12 05f0d5fc bl func_623c0
| 0x0805ca16 2a46 mov r2, r5
| 0x0805ca18 059d ldr r5, [sp, 0x14]
| 0x0805ca1a 8de89000 stm.w sp, {r4, r7}
| 0x0805ca1e 2946 mov r1, r5
| 0x0805ca20 a1ab add r3, sp, 0x284
| 0x0805ca22 8146 mov sb, r0
| 0x0805ca24 2846 mov r0, r5
| 0x0805ca26 05f085fc bl func_62334
| 0x0805ca2a 0146 mov r1, r0
| 0x0805ca2c 2846 mov r0, r5
| 0x0805ca2e 05f0c7fc bl func_623c0
| 0x0805ca32 ddf8bc34 ldr.w r3, [sp, 0x4bc]
| 0x0805ca36 ddf8b414 ldr.w r1, [sp, 0x4b4]
| 0x0805ca3a ddf8b824 ldr.w r2, [sp, 0x4b8]
| 0x0805ca3e 0446 mov r4, r0
| 0x0805ca40 a1a8 add r0, sp, 0x284
| 0x0805ca42 05f0e8fc bl func_62416
| 0x0805ca46 0021 movs r1, 0
| 0x0805ca48 0c22 movs r2, 0xc ; 12
| 0x0805ca4a a1a8 add r0, sp, 0x284
| 0x0805ca4c f9f722f8 bl ambe_55a94
| 0x0805ca50 7f22 movs r2, 0x7f ; 127
| 0x0805ca52 0095 str r5, [sp]
| 0x0805ca54 a1a9 add r1, sp, 0x284
| 0x0805ca56 4b46 mov r3, sb
| 0x0805ca58 0292 str r2, [sp, 8]
| 0x0805ca5a 0194 str r4, [sp, 4]
| 0x0805ca5c 20aa add r2, sp, 0x80
| 0x0805ca5e 0da8 add r0, sp, 0x34
| 0x0805ca60 05f069fd bl func_62536
| 0x0805ca64 0eae add r6, sp, 0x38
| 0x0805ca66 0546 mov r5, r0
| 0x0805ca68 bdf93420 ldrsh.w r2, [sp, 0x34]
| 0x0805ca6c 0096 str r6, [sp]
| 0x0805ca6e 2946 mov r1, r5
| 0x0805ca70 2b46 mov r3, r5
| 0x0805ca72 bdf93600 ldrsh.w r0, [sp, 0x36]
| 0x0805ca76 06f057f8 bl func_62b28
| 0x0805ca7a 3268 ldr r2, [r6]
| 0x0805ca7c c34b ldr r3, [0x0805cd8c] ; [0x805cd8c:4]=0xffffae84
| 0x0805ca7e bdf93660 ldrsh.w r6, [sp, 0x36]
| 0x0805ca82 bdf93410 ldrsh.w r1, [sp, 0x34]
| 0x0805ca86 002a cmp r2, 0
| 0x0805ca88 03fb00f0 mul r0, r3, r0
| 0x0805ca8c 4fea4003 lsl.w r3, r0, 1
| ,=< 0x0805ca90 cbbf itete gt
| `-> 0x0805ca92 02f1ff32 add.w r2, r2, -1
| 0x0805ca96 c2f10102 rsb.w r2, r2, 1
| 0x0805ca9a 9340 lsls r3, r2
| 0x0805ca9c 1341 asrs r3, r2
| 0x0805ca9e bc4a ldr r2, [0x0805cd92] ; [0x805cd90:4]=0xffff8001
| 0x0805caa0 9642 cmp r6, r2
| ,=< 0x0805caa2 b8bf it lt
| `-> 0x0805caa4 1646 mov r6, r2
| 0x0805caa6 8a42 cmp r2, r1
| ,=< 0x0805caa8 b8bf it lt
| `-> 0x0805caaa 0a46 mov r2, r1
| 0x0805caac b6b2 uxth r6, r6
| 0x0805caae 92b2 uxth r2, r2
| 0x0805cab0 16fb06f0 smulbb r0, r6, r6
| 0x0805cab4 12fb02f7 smulbb r7, r2, r2
| 0x0805cab8 7f00 lsls r7, r7, 1
| 0x0805caba 4000 lsls r0, r0, 1
| 0x0805cabc c117 asrs r1, r0, 0x1f
| 0x0805cabe c019 adds r0, r0, r7
| 0x0805cac0 41ebe771 adc.w r1, r1, r7, asr 31
| 0x0805cac4 089f ldr r7, [sp, 0x20]
| 0x0805cac6 adf83660 strh.w r6, [sp, 0x36]
| 0x0805caca 1b14 asrs r3, r3, 0x10
| 0x0805cacc 3b80 strh r3, [r7]
| 0x0805cace 50ea0103 orrs.w r3, r0, r1
| 0x0805cad2 adf83420 strh.w r2, [sp, 0x34]
| ,=< 0x0805cad6 34d0 beq 0x805cb42
| | 0x0805cad8 b1fa81f3 clz r3, r1
| | 0x0805cadc 202b cmp r3, 0x20 ; 32
| ,==< 0x0805cade 04bf itt eq
| `--> 0x0805cae0 b0fa80f3 clz r3, r0
| | 0x0805cae4 2033 adds r3, 0x20
| | 0x0805cae6 b3f12102 subs.w r2, r3, 0x21
| ,==< 0x0805caea 00f13b81 bmi.w 0x805cd64
| || 0x0805caee 9040 lsls r0, r2
| || 0x0805caf0 c2eb4503 rsb r3, r2, r5, lsl 1
| || 0x0805caf4 0028 cmp r0, 0
| ,===< 0x0805caf6 24dd ble 0x805cb42
| ||| 0x0805caf8 1caa add r2, sp, 0x70
| ||| 0x0805cafa 1146 mov r1, r2
| ||| 0x0805cafc 1746 mov r7, r2
| ||| 0x0805cafe 1360 str r3, [r2]
| ||| 0x0805cb00 0992 str r2, [sp, 0x24]
| ||| 0x0805cb02 fcf75df9 bl func_58dc0
| ||| 0x0805cb06 18a9 add r1, sp, 0x60
| ||| 0x0805cb08 3b68 ldr r3, [r7]
| ||| 0x0805cb0a 0691 str r1, [sp, 0x18]
| ||| 0x0805cb0c 0214 asrs r2, r0, 0x10
| ||| 0x0805cb0e 0e46 mov r6, r1
| ||| 0x0805cb10 0091 str r1, [sp]
| ||| 0x0805cb12 4ff08040 mov.w r0, 0x40000000 ; io_TIM2
| ||| 0x0805cb16 0121 movs r1, 1 ; 1
| ||| 0x0805cb18 fbf7f2ff bl func_58b00
| ||| 0x0805cb1c bdf93410 ldrsh.w r1, [sp, 0x34]
| ||| 0x0805cb20 bdf93630 ldrsh.w r3, [sp, 0x36]
| ||| 0x0805cb24 3268 ldr r2, [r6]
| ||| 0x0805cb26 01fb00f1 mul r1, r1, r0
| ||| 0x0805cb2a 03fb00f3 mul r3, r3, r0
| ||| 0x0805cb2e 41f3cf31 sbfx r1, r1, 0xf, 0x10
| ||| 0x0805cb32 43f3cf33 sbfx r3, r3, 0xf, 0x10
| ||| 0x0805cb36 adf83410 strh.w r1, [sp, 0x34]
| ||| 0x0805cb3a adf83630 strh.w r3, [sp, 0x36]
| ||| 0x0805cb3e 2a44 add r2, r5
| ,====< 0x0805cb40 04e0 b 0x805cb4c
| |`-`-> 0x0805cb42 1cab add r3, sp, 0x70
| | | 0x0805cb44 0993 str r3, [sp, 0x24]
| | | 0x0805cb46 18ab add r3, sp, 0x60
| | | 0x0805cb48 0022 movs r2, 0
| | | 0x0805cb4a 0693 str r3, [sp, 0x18]
| `----> 0x0805cb4c 7f23 movs r3, 0x7f ; 127
| | 0x0805cb4e 0193 str r3, [sp, 4]
| | 0x0805cb50 059b ldr r3, [sp, 0x14]
| | 0x0805cb52 0094 str r4, [sp]
| | 0x0805cb54 0da9 add r1, sp, 0x34
| | 0x0805cb56 1846 mov r0, r3
| | 0x0805cb58 05f09afc bl func_62490
| | 0x0805cb5c 0df1500b add.w fp, sp, 0x50
| | 0x0805cb60 0021 movs r1, 0
| | 0x0805cb62 03b2 sxth r3, r0
| | 0x0805cb64 0ffa89f9 sxth.w sb, sb
| | 0x0805cb68 0793 str r3, [sp, 0x1c]
| | 0x0805cb6a d846 mov r8, fp
| | 0x0805cb6c 0d46 mov r5, r1
| | 0x0805cb6e 099f ldr r7, [sp, 0x24]
| | 0x0805cb70 cdf82cb0 str.w fp, [sp, 0x2c]
| | 0x0805cb74 0d26 movs r6, 0xd ; 13
| |,=< 0x0805cb76 00e0 b 0x805cb7a
| .---> 0x0805cb78 5146 mov r1, sl
| ||`-> 0x0805cb7a 072d cmp r5, 7 ; 7
| ||,=< 0x0805cb7c 00f00281 beq.w 0x805cd84
| ||| 0x0805cb80 b4b2 uxth r4, r6
| ||| 0x0805cb82 b246 mov sl, r6
| ||| 0x0805cb84 1036 adds r6, 0x10
| ||| 0x0805cb86 641a subs r4, r4, r1
| ||| 0x0805cb88 20ab add r3, sp, 0x80
| ||| 0x0805cb8a 8900 lsls r1, r1, 2
| ||| 0x0805cb8c 03eb010b add.w fp, r3, r1
| ||| 0x0805cb90 059b ldr r3, [sp, 0x14]
| ||| 0x0805cb92 079a ldr r2, [sp, 0x1c]
| ||| 0x0805cb94 cdf80090 str.w sb, [sp]
| ||| 0x0805cb98 24b2 sxth r4, r4
| ||| 0x0805cb9a 1944 add r1, r3
| ||| 0x0805cb9c 4046 mov r0, r8
| ||| 0x0805cb9e 5b46 mov r3, fp
| ||| 0x0805cba0 0194 str r4, [sp, 4]
| ||| 0x0805cba2 05f06bfd bl func_6267c
| ||| 0x0805cba6 10ab add r3, sp, 0x40
| ||| 0x0805cba8 5946 mov r1, fp
| ||| 0x0805cbaa 23f81500 strh.w r0, [r3, r5, lsl 1]
| ||| 0x0805cbae 4a46 mov r2, sb
| ||| 0x0805cbb0 2346 mov r3, r4
| ||| 0x0805cbb2 3846 mov r0, r7
| ||| 0x0805cbb4 05f0aafc bl func_6250c
| ||| 0x0805cbb8 069b ldr r3, [sp, 0x18]
| ||| 0x0805cbba 23f81500 strh.w r0, [r3, r5, lsl 1]
| ||| 0x0805cbbe 0135 adds r5, 1
| ||| 0x0805cbc0 082d cmp r5, 8 ; 8
| ||| 0x0805cbc2 08f10208 add.w r8, r8, 2
| ||| 0x0805cbc6 07f10207 add.w r7, r7, 2
| `===< 0x0805cbca d5d1 bne 0x805cb78
| || 0x0805cbcc 10a8 add r0, sp, 0x40
| || 0x0805cbce 0146 mov r1, r0
| || 0x0805cbd0 14aa add r2, sp, 0x50
| || 0x0805cbd2 2b46 mov r3, r5
| || 0x0805cbd4 ddf82cb0 ldr.w fp, [sp, 0x2c]
| || 0x0805cbd8 05f083fc bl func_624e2
| || 0x0805cbdc 069e ldr r6, [sp, 0x18]
| || 0x0805cbde 099a ldr r2, [sp, 0x24]
| || 0x0805cbe0 0446 mov r4, r0
| || 0x0805cbe2 3146 mov r1, r6
| || 0x0805cbe4 3046 mov r0, r6
| || 0x0805cbe6 2b46 mov r3, r5
| || 0x0805cbe8 05f07bfc bl func_624e2
| || 0x0805cbec a3b2 uxth r3, r4
| || 0x0805cbee 0693 str r3, [sp, 0x18]
| || 0x0805cbf0 83b2 uxth r3, r0
| || 0x0805cbf2 3446 mov r4, r6
| || 0x0805cbf4 10af add r7, sp, 0x40
| || 0x0805cbf6 0593 str r3, [sp, 0x14]
| || 0x0805cbf8 ddf82880 ldr.w r8, [sp, 0x28]
| || 0x0805cbfc 0026 movs r6, 0
| || 0x0805cbfe 4ff4804a mov.w sl, 0x4000
| || 0x0805cc02 4ff00109 mov.w sb, 1 ; 1
| ,===< 0x0805cc06 0ae0 b 0x805cc1e
| .----> 0x0805cc08 0136 adds r6, 1
| |||| 0x0805cc0a 082e cmp r6, 8 ; 8
| |||| 0x0805cc0c a8f800a0 strh.w sl, [r8]
| |||| 0x0805cc10 abf80090 strh.w sb, [fp]
| |||| 0x0805cc14 08f10208 add.w r8, r8, 2
| |||| 0x0805cc18 0bf1020b add.w fp, fp, 2
| ,=====< 0x0805cc1c 46d0 beq 0x805ccac
| .--`---> 0x0805cc1e 37f9020b ldrsh r0, [r7], 2
| ||| || 0x0805cc22 34f9022b ldrsh r2, [r4], 2
| |||,===< 0x0805cc26 3eb1 cbz r6, 0x805cc38
| |||||| 0x0805cc28 37f9041c ldrsh r1, [r7, -0x4]
| |||||| 0x0805cc2c 34f9043c ldrsh r3, [r4, -0x4]
| |||||| 0x0805cc30 072e cmp r6, 7 ; 7
| |||||| 0x0805cc32 0844 add r0, r1
| |||||| 0x0805cc34 1a44 add r2, r3
| ,=======< 0x0805cc36 05d0 beq 0x805cc44
| ||||`---> 0x0805cc38 b7f90010 ldrsh.w r1, [r7]
| |||| || 0x0805cc3c b4f90030 ldrsh.w r3, [r4]
| |||| || 0x0805cc40 0844 add r0, r1
| |||| || 0x0805cc42 1a44 add r2, r3
| `-------> 0x0805cc44 1346 mov r3, r2
| ||| || 0x0805cc46 002b cmp r3, 0
| |||,===< 0x0805cc48 b8bf it lt
| |||`---> 0x0805cc4a db43 mvns r3, r3
| |||,===< 0x0805cc4c 1cbf itt ne
| |||`---> 0x0805cc4e b3fa83f3 clz r3, r3
| ||| || 0x0805cc52 013b subs r3, 1
| ||| || 0x0805cc54 0ffa83fe sxth.w lr, r3
| ||| || 0x0805cc58 0146 mov r1, r0
| ||| || 0x0805cc5a 0029 cmp r1, 0
| |||,===< 0x0805cc5c b8bf it lt
| |||`---> 0x0805cc5e c943 mvns r1, r1
| |||,===< 0x0805cc60 1cbf itt ne
| |||`---> 0x0805cc62 b1fa81f1 clz r1, r1
| ||| || 0x0805cc66 0139 subs r1, 1
| ||| || 0x0805cc68 12fa0ef2 lsls.w r2, r2, lr
| ||`====< 0x0805cc6c ccd0 beq 0x805cc08
| || || 0x0805cc6e 059d ldr r5, [sp, 0x14]
| || || 0x0805cc70 eb1a subs r3, r5, r3
| || || 0x0805cc72 069d ldr r5, [sp, 0x18]
| || || 0x0805cc74 0ffa81fe sxth.w lr, r1
| || || 0x0805cc78 691a subs r1, r5, r1
| || || 0x0805cc7a 0fad add r5, sp, 0x3c
| || || 0x0805cc7c 0095 str r5, [sp]
| || || 0x0805cc7e 1bb2 sxth r3, r3
| || || 0x0805cc80 00fa0ef0 lsl.w r0, r0, lr
| || || 0x0805cc84 1214 asrs r2, r2, 0x10
| || || 0x0805cc86 bbf900e0 ldrsh.w lr, [fp]
| || || 0x0805cc8a cdf83ce0 str.w lr, [sp, 0x3c]
| || || 0x0805cc8e 09b2 sxth r1, r1
| || || 0x0805cc90 fbf736ff bl func_58b00
| || || 0x0805cc94 0136 adds r6, 1
| || || 0x0805cc96 0f9b ldr r3, [sp, 0x3c]
| || || 0x0805cc98 a8f80000 strh.w r0, [r8]
| || || 0x0805cc9c 082e cmp r6, 8 ; 8
| || || 0x0805cc9e abf80030 strh.w r3, [fp]
| || || 0x0805cca2 08f10208 add.w r8, r8, 2
| || || 0x0805cca6 0bf1020b add.w fp, fp, 2
| `======< 0x0805ccaa b8d1 bne 0x805cc1e
| `-----> 0x0805ccac 0a98 ldr r0, [sp, 0x28]
| || 0x0805ccae 3346 mov r3, r6
| || 0x0805ccb0 0146 mov r1, r0
| || 0x0805ccb2 14aa add r2, sp, 0x50
| || 0x0805ccb4 05f015fc bl func_624e2
| || 0x0805ccb8 0899 ldr r1, [sp, 0x20]
| || 0x0805ccba bdf81440 ldrh.w r4, [sp, 0x14]
| || 0x0805ccbe b1f90230 ldrsh.w r3, [r1, 2]
| || 0x0805ccc2 4c82 strh r4, [r1, 0x12]
| || 0x0805ccc4 80b2 uxth r0, r0
| || 0x0805ccc6 002b cmp r3, 0
| || 0x0805ccc8 a1f84800 strh.w r0, [r1, 0x48]
| ,===< 0x0805cccc 03dd ble 0x805ccd6
| ||| 0x0805ccce b1f90030 ldrsh.w r3, [r1]
| ||| 0x0805ccd2 002b cmp r3, 0
| ,====< 0x0805ccd4 03db blt 0x805ccde
| |`---> 0x0805ccd6 0df28c4d addw sp, sp, 0x48c
\ | || 0x0805ccda bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_5cd94 1242
| Caller: func_56b4c
| func_5cd94 ();
| 0x0805cd94 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0805cd98 afb0 sub sp, 0xbc
| 0x0805cd9a 0df1b809 add.w sb, sp, 0xb8
| 0x0805cd9e 0d46 mov r5, r1
| 0x0805cda0 49f87c2d str r2, [sb, -0x7c]!
| 0x0805cda4 1c46 mov r4, r3
| 0x0805cda6 0e90 str r0, [sp, 0x38]
| 0x0805cda8 5022 movs r2, 0x50 ; 'P' ; 80
| 0x0805cdaa 2846 mov r0, r5
| 0x0805cdac 4b46 mov r3, sb
| 0x0805cdae fdf7dffb bl func_5a570
| 0x0805cdb2 24a8 add r0, sp, 0x90
| 0x0805cdb4 05f14e02 add.w r2, r5, 0x4e
| 0x0805cdb8 04f14e08 add.w r8, r4, 0x4e
| 0x0805cdbc 0190 str r0, [sp, 4]
| 0x0805cdbe a446 mov ip, r4
| 0x0805cdc0 10ab add r3, sp, 0x40
| 0x0805cdc2 00bf nop
| .-> 0x0805cdc4 32f80269 ldrh r6, [r2], -2
| | 0x0805cdc8 3cf8020b ldrh r0, [ip], 2
| | 0x0805cdcc b2f85210 ldrh.w r1, [r2, 0x52]
| | 0x0805cdd0 35f8024b ldrh r4, [r5], 2
| | 0x0805cdd4 11fb00fe smulbb lr, r1, r0
| | 0x0805cdd8 38f80219 ldrh r1, [r8], -2
| | 0x0805cddc b5f84e70 ldrh.w r7, [r5, 0x4e]
| | 0x0805cde0 14fb00f0 smulbb r0, r4, r0
| | 0x0805cde4 16fb01f6 smulbb r6, r6, r1
| | 0x0805cde8 17fb01e1 smlabb r1, r7, r1, lr
| | 0x0805cdec 801b subs r0, r0, r6
| | 0x0805cdee 0014 asrs r0, r0, 0x10
| | 0x0805cdf0 0914 asrs r1, r1, 0x10
| | 0x0805cdf2 019c ldr r4, [sp, 4]
| | 0x0805cdf4 1880 strh r0, [r3]
| | 0x0805cdf6 5980 strh r1, [r3, 2]
| | 0x0805cdf8 0433 adds r3, 4
| | 0x0805cdfa 9c42 cmp r4, r3
| `=< 0x0805cdfc e2d1 bne 0x805cdc4
| 0x0805cdfe 10a8 add r0, sp, 0x40
| 0x0805ce00 0146 mov r1, r0
| 0x0805ce02 2822 movs r2, 0x28 ; '(' ; 40
| 0x0805ce04 4b46 mov r3, sb
| 0x0805ce06 fdf7b3fb bl func_5a570
| 0x0805ce0a 0e9c ldr r4, [sp, 0x38]
| 0x0805ce0c 4ff0010a mov.w sl, 1 ; 1
| 0x0805ce10 24a9 add r1, sp, 0x90
| 0x0805ce12 4ff03d0b mov.w fp, 0x3d ; '=' ; 61
| 0x0805ce16 1420 movs r0, 0x14 ; 20
| 0x0805ce18 a54e ldr r6, [0x0805d0b0] ; [0x805d0b0:4]=0x80944f8
| 0x0805ce1a cdf808b0 str.w fp, [sp, 8]
| 0x0805ce1e 0494 str r4, [sp, 0x10]
| 0x0805ce20 d346 mov fp, sl
| 0x0805ce22 0390 str r0, [sp, 0xc]
| 0x0805ce24 0591 str r1, [sp, 0x14]
| 0x0805ce26 8a46 mov sl, r1
| ..-> 0x0805ce28 0398 ldr r0, [sp, 0xc]
| || 0x0805ce2a 10ac add r4, sp, 0x40
| || 0x0805ce2c c0f19f02 rsb.w r2, r0, 0x9f
| || 0x0805ce30 4ff00008 mov.w r8, 0
| || 0x0805ce34 4ff00009 mov.w sb, 0
| .---> 0x0805ce38 54f8045b ldr r5, [r4], 4
| ||| 0x0805ce3c 56f82270 ldr.w r7, [r6, r2, lsl 2]
| ||| 0x0805ce40 b2eb0b02 subs.w r2, r2, fp
| ,====< 0x0805ce44 48bf it mi
| `----> 0x0805ce46 a032 adds r2, 0xa0
| ||| 0x0805ce48 c5fbc789 smlald r8, sb, r5, r7
| ||| 0x0805ce4c 54f8045b ldr r5, [r4], 4
| ||| 0x0805ce50 56f82270 ldr.w r7, [r6, r2, lsl 2]
| ||| 0x0805ce54 b2eb0b02 subs.w r2, r2, fp
| ||| 0x0805ce58 c5fbc789 smlald r8, sb, r5, r7
| ,====< 0x0805ce5c 48bf it mi
| `----> 0x0805ce5e a032 adds r2, 0xa0
| ||| 0x0805ce60 5445 cmp r4, sl
| `===< 0x0805ce62 e9d1 bne 0x805ce38
| || 0x0805ce64 18eb0808 adds.w r8, r8, r8
| || 0x0805ce68 49eb0909 adc.w sb, sb, sb
| || 0x0805ce6c 58ea0901 orrs.w r1, r8, sb
| ,===< 0x0805ce70 00f08381 beq.w 0x805d17a
| ||| 0x0805ce74 4feae972 asr.w r2, sb, 0x1f
| ||| 0x0805ce78 0692 str r2, [sp, 0x18]
| ||| 0x0805ce7a 0792 str r2, [sp, 0x1c]
| ||| 0x0805ce7c dde90601 ldrd r0, r1, [sp, 0x18]
| ||| 0x0805ce80 80ea0800 eor.w r0, r0, r8
| ||| 0x0805ce84 81ea0901 eor.w r1, r1, sb
| ||| 0x0805ce88 dde90623 ldrd r2, r3, [sp, 0x18]
| ||| 0x0805ce8c 801a subs r0, r0, r2
| ||| 0x0805ce8e 61eb0301 sbc.w r1, r1, r3
| ||| 0x0805ce92 8bb2 uxth r3, r1
| ||| 0x0805ce94 002b cmp r3, 0
| ,====< 0x0805ce96 00f09381 beq.w 0x805d1c0
| |||| 0x0805ce9a 1bb2 sxth r3, r3
| |||| 0x0805ce9c b3fa83f3 clz r3, r3
| |||| 0x0805cea0 c3f12101 rsb.w r1, r3, 0x21
| |||| 0x0805cea4 c1f12003 rsb.w r3, r1, 0x20
| |||| 0x0805cea8 a1f12000 sub.w r0, r1, 0x20
| |||| 0x0805ceac 09fa03f4 lsl.w r4, sb, r3
| |||| 0x0805ceb0 28fa01f2 lsr.w r2, r8, r1
| |||| 0x0805ceb4 49fa00f3 asr.w r3, sb, r0
| |||| 0x0805ceb8 2243 orrs r2, r4
| |||| 0x0805ceba 12ea2002 ands.w r2, r2, r0, asr 32
| ,=====< 0x0805cebe 38bf it lo
| `-----> 0x0805cec0 1a46 mov r2, r3
| |||| 0x0805cec2 46f26663 movw r3, 0x6666
| |||| 0x0805cec6 12fb23f2 smultb r2, r2, r3
| |||| 0x0805ceca cbb2 uxtb r3, r1
| |||| 0x0805cecc c2f3cf31 ubfx r1, r2, 0xf, 0x10
| ..-----> 0x0805ced0 0498 ldr r0, [sp, 0x10]
| |||||| 0x0805ced2 029c ldr r4, [sp, 8]
| |||||| 0x0805ced4 0180 strh r1, [r0]
| |||||| 0x0805ced6 0599 ldr r1, [sp, 0x14]
| |||||| 0x0805ced8 04f17802 add.w r2, r4, 0x78
| |||||| 0x0805cedc 0b70 strb r3, [r1]
| |||||| 0x0805cede 029b ldr r3, [sp, 8]
| |||||| 0x0805cee0 9f2a cmp r2, 0x9f ; 159
| ,=======< 0x0805cee2 c8bf it gt
| `-------> 0x0805cee4 a4f12802 sub.w r2, r4, 0x28
| |||||| 0x0805cee8 2933 adds r3, 0x29
| |||||| 0x0805ceea 9f2b cmp r3, 0x9f ; 159
| |||||| 0x0805ceec 0bf1020c add.w ip, fp, 2
| |||||| 0x0805cef0 0393 str r3, [sp, 0xc]
| ,=======< 0x0805cef2 02dd ble 0x805cefa
| ||||||| 0x0805cef4 029c ldr r4, [sp, 8]
| ||||||| 0x0805cef6 773c subs r4, 0x77
| ||||||| 0x0805cef8 0394 str r4, [sp, 0xc]
| `-------> 0x0805cefa c2f19f02 rsb.w r2, r2, 0x9f
| |||||| 0x0805cefe 10ac add r4, sp, 0x40
| |||||| 0x0805cf00 4ff00008 mov.w r8, 0
| |||||| 0x0805cf04 4ff00009 mov.w sb, 0
| .-------> 0x0805cf08 54f8045b ldr r5, [r4], 4
| ||||||| 0x0805cf0c 56f82270 ldr.w r7, [r6, r2, lsl 2]
| ||||||| 0x0805cf10 b2eb0c02 subs.w r2, r2, ip
| ========< 0x0805cf14 48bf it mi
| --------> 0x0805cf16 a032 adds r2, 0xa0
| ||||||| 0x0805cf18 c5fbd789 smlaldx r8, sb, r5, r7
| ||||||| 0x0805cf1c 54f8045b ldr r5, [r4], 4
| ||||||| 0x0805cf20 56f82270 ldr.w r7, [r6, r2, lsl 2]
| ||||||| 0x0805cf24 b2eb0c02 subs.w r2, r2, ip
| ||||||| 0x0805cf28 c5fbd789 smlaldx r8, sb, r5, r7
| ========< 0x0805cf2c 48bf it mi
| --------> 0x0805cf2e a032 adds r2, 0xa0
| ||||||| 0x0805cf30 5445 cmp r4, sl
| `=======< 0x0805cf32 e9d1 bne 0x805cf08
| |||||| 0x0805cf34 18eb0808 adds.w r8, r8, r8
| |||||| 0x0805cf38 49eb0909 adc.w sb, sb, sb
| |||||| 0x0805cf3c 0023 movs r3, 0
| |||||| 0x0805cf3e 58ea0900 orrs.w r0, r8, sb
| |||||| 0x0805cf42 1946 mov r1, r3
| ,=======< 0x0805cf44 2dd0 beq 0x805cfa2
| ||||||| 0x0805cf46 4feae971 asr.w r1, sb, 0x1f
| ||||||| 0x0805cf4a 0891 str r1, [sp, 0x20]
| ||||||| 0x0805cf4c 0991 str r1, [sp, 0x24]
| ||||||| 0x0805cf4e dde90801 ldrd r0, r1, [sp, 0x20]
| ||||||| 0x0805cf52 80ea0800 eor.w r0, r0, r8
| ||||||| 0x0805cf56 81ea0901 eor.w r1, r1, sb
| ||||||| 0x0805cf5a dde90823 ldrd r2, r3, [sp, 0x20]
| ||||||| 0x0805cf5e 801a subs r0, r0, r2
| ||||||| 0x0805cf60 61eb0301 sbc.w r1, r1, r3
| ||||||| 0x0805cf64 8bb2 uxth r3, r1
| ||||||| 0x0805cf66 002b cmp r3, 0
| ========< 0x0805cf68 00f01a81 beq.w 0x805d1a0
| ||||||| 0x0805cf6c 1bb2 sxth r3, r3
| ||||||| 0x0805cf6e b3fa83f3 clz r3, r3
| ||||||| 0x0805cf72 c3f12101 rsb.w r1, r3, 0x21
| ||||||| 0x0805cf76 c1f12003 rsb.w r3, r1, 0x20
| ||||||| 0x0805cf7a a1f12000 sub.w r0, r1, 0x20
| ||||||| 0x0805cf7e 09fa03f4 lsl.w r4, sb, r3
| ||||||| 0x0805cf82 28fa01f2 lsr.w r2, r8, r1
| ||||||| 0x0805cf86 49fa00f3 asr.w r3, sb, r0
| ||||||| 0x0805cf8a 2243 orrs r2, r4
| ||||||| 0x0805cf8c 12ea2002 ands.w r2, r2, r0, asr 32
| ========< 0x0805cf90 38bf it lo
| --------> 0x0805cf92 1a46 mov r2, r3
| ||||||| 0x0805cf94 46f26663 movw r3, 0x6666
| ||||||| 0x0805cf98 12fb23f2 smultb r2, r2, r3
| ||||||| 0x0805cf9c cbb2 uxtb r3, r1
| ||||||| 0x0805cf9e c2f3cf31 ubfx r1, r2, 0xf, 0x10
| `-------> 0x0805cfa2 0498 ldr r0, [sp, 0x10]
| |||||| 0x0805cfa4 039c ldr r4, [sp, 0xc]
| |||||| 0x0805cfa6 4180 strh r1, [r0, 2]
| |||||| 0x0805cfa8 0599 ldr r1, [sp, 0x14]
| |||||| 0x0805cfaa 04f15002 add.w r2, r4, 0x50
| |||||| 0x0805cfae 4b70 strb r3, [r1, 1]
| |||||| 0x0805cfb0 039b ldr r3, [sp, 0xc]
| |||||| 0x0805cfb2 9f2a cmp r2, 0x9f ; 159
| ,=======< 0x0805cfb4 c8bf it gt
| `-------> 0x0805cfb6 a4f15002 sub.w r2, r4, 0x50
| |||||| 0x0805cfba 2933 adds r3, 0x29
| |||||| 0x0805cfbc 9f2b cmp r3, 0x9f ; 159
| |||||| 0x0805cfbe 0bf1040c add.w ip, fp, 4
| |||||| 0x0805cfc2 0293 str r3, [sp, 8]
| ,=======< 0x0805cfc4 02dd ble 0x805cfcc
| ||||||| 0x0805cfc6 039c ldr r4, [sp, 0xc]
| ||||||| 0x0805cfc8 773c subs r4, 0x77
| ||||||| 0x0805cfca 0294 str r4, [sp, 8]
| `-------> 0x0805cfcc c2f19f02 rsb.w r2, r2, 0x9f
| |||||| 0x0805cfd0 10ac add r4, sp, 0x40
| |||||| 0x0805cfd2 4ff00008 mov.w r8, 0
| |||||| 0x0805cfd6 4ff00009 mov.w sb, 0
| |||||| 0x0805cfda 00bf nop
| .-------> 0x0805cfdc 54f8045b ldr r5, [r4], 4
| ||||||| 0x0805cfe0 56f82270 ldr.w r7, [r6, r2, lsl 2]
| ||||||| 0x0805cfe4 b2eb0c02 subs.w r2, r2, ip
| ========< 0x0805cfe8 48bf it mi
| --------> 0x0805cfea a032 adds r2, 0xa0
| ||||||| 0x0805cfec c5fbc789 smlald r8, sb, r5, r7
| ||||||| 0x0805cff0 54f8045b ldr r5, [r4], 4
| ||||||| 0x0805cff4 56f82270 ldr.w r7, [r6, r2, lsl 2]
| ||||||| 0x0805cff8 b2eb0c02 subs.w r2, r2, ip
| ||||||| 0x0805cffc c5fbc789 smlald r8, sb, r5, r7
| ========< 0x0805d000 48bf it mi
| --------> 0x0805d002 a032 adds r2, 0xa0
| ||||||| 0x0805d004 5445 cmp r4, sl
| `=======< 0x0805d006 e9d1 bne 0x805cfdc
| |||||| 0x0805d008 18eb0808 adds.w r8, r8, r8
| |||||| 0x0805d00c 49eb0909 adc.w sb, sb, sb
| |||||| 0x0805d010 0023 movs r3, 0
| |||||| 0x0805d012 58ea0900 orrs.w r0, r8, sb
| |||||| 0x0805d016 1946 mov r1, r3
| ,=======< 0x0805d018 2dd0 beq 0x805d076
| ||||||| 0x0805d01a 4feae971 asr.w r1, sb, 0x1f
| ||||||| 0x0805d01e 0a91 str r1, [sp, 0x28]
| ||||||| 0x0805d020 0b91 str r1, [sp, 0x2c]
| ||||||| 0x0805d022 dde90a01 ldrd r0, r1, [sp, 0x28]
| ||||||| 0x0805d026 80ea0800 eor.w r0, r0, r8
| ||||||| 0x0805d02a 81ea0901 eor.w r1, r1, sb
| ||||||| 0x0805d02e dde90a23 ldrd r2, r3, [sp, 0x28]
| ||||||| 0x0805d032 801a subs r0, r0, r2
| ||||||| 0x0805d034 61eb0301 sbc.w r1, r1, r3
| ||||||| 0x0805d038 8bb2 uxth r3, r1
| ||||||| 0x0805d03a 002b cmp r3, 0
| ========< 0x0805d03c 00f0d080 beq.w 0x805d1e0
| ||||||| 0x0805d040 1bb2 sxth r3, r3
| ||||||| 0x0805d042 b3fa83f3 clz r3, r3
| ||||||| 0x0805d046 c3f12101 rsb.w r1, r3, 0x21
| ||||||| 0x0805d04a c1f12003 rsb.w r3, r1, 0x20
| ||||||| 0x0805d04e a1f12000 sub.w r0, r1, 0x20
| ||||||| 0x0805d052 09fa03f4 lsl.w r4, sb, r3
| ||||||| 0x0805d056 28fa01f2 lsr.w r2, r8, r1
| ||||||| 0x0805d05a 49fa00f3 asr.w r3, sb, r0
| ||||||| 0x0805d05e 2243 orrs r2, r4
| ||||||| 0x0805d060 12ea2002 ands.w r2, r2, r0, asr 32
| ========< 0x0805d064 38bf it lo
| --------> 0x0805d066 1a46 mov r2, r3
| ||||||| 0x0805d068 46f26663 movw r3, 0x6666
| ||||||| 0x0805d06c 12fb23f2 smultb r2, r2, r3
| ||||||| 0x0805d070 cbb2 uxtb r3, r1
| ||||||| 0x0805d072 c2f3cf31 ubfx r1, r2, 0xf, 0x10
| `-------> 0x0805d076 0498 ldr r0, [sp, 0x10]
| |||||| 0x0805d078 029c ldr r4, [sp, 8]
| |||||| 0x0805d07a 8180 strh r1, [r0, 4]
| |||||| 0x0805d07c 0599 ldr r1, [sp, 0x14]
| |||||| 0x0805d07e 04f12802 add.w r2, r4, 0x28
| |||||| 0x0805d082 8b70 strb r3, [r1, 2]
| |||||| 0x0805d084 029b ldr r3, [sp, 8]
| |||||| 0x0805d086 9f2a cmp r2, 0x9f ; 159
| ,=======< 0x0805d088 c8bf it gt
| `-------> 0x0805d08a a4f17802 sub.w r2, r4, 0x78
| |||||| 0x0805d08e 2933 adds r3, 0x29
| |||||| 0x0805d090 9f2b cmp r3, 0x9f ; 159
| |||||| 0x0805d092 0bf1060c add.w ip, fp, 6
| |||||| 0x0805d096 0393 str r3, [sp, 0xc]
| ,=======< 0x0805d098 02dd ble 0x805d0a0
| ||||||| 0x0805d09a 029c ldr r4, [sp, 8]
| ||||||| 0x0805d09c 773c subs r4, 0x77
| ||||||| 0x0805d09e 0394 str r4, [sp, 0xc]
| `-------> 0x0805d0a0 c2f19f02 rsb.w r2, r2, 0x9f
| |||||| 0x0805d0a4 10ac add r4, sp, 0x40
| |||||| 0x0805d0a6 4ff00008 mov.w r8, 0
| |||||| 0x0805d0aa 4ff00009 mov.w sb, 0
| ,=======< 0x0805d0ae 01e0 b 0x805d0b4
| ||||||| 0x0805d0b0 f844 add r8, pc
| ||||||| 0x0805d0b2 0908 lsrs r1, r1, 0x20
| `-------> 0x0805d0b4 54f8045b ldr r5, [r4], 4
| |||||| 0x0805d0b8 56f82270 ldr.w r7, [r6, r2, lsl 2]
| |||||| 0x0805d0bc b2eb0c02 subs.w r2, r2, ip
| ,=======< 0x0805d0c0 48bf it mi
| `-------> 0x0805d0c2 a032 adds r2, 0xa0
| |||||| 0x0805d0c4 c5fbd789 smlaldx r8, sb, r5, r7
| |||||| 0x0805d0c8 54f8045b ldr r5, [r4], 4
| |||||| 0x0805d0cc 56f82270 ldr.w r7, [r6, r2, lsl 2]
| |||||| 0x0805d0d0 b2eb0c02 subs.w r2, r2, ip
| |||||| 0x0805d0d4 c5fbd789 smlaldx r8, sb, r5, r7
| ,=======< 0x0805d0d8 48bf it mi
| `-------> 0x0805d0da a032 adds r2, 0xa0
| |||||| 0x0805d0dc 5445 cmp r4, sl
| ========< 0x0805d0de e9d1 bne 0x805d0b4
| |||||| 0x0805d0e0 18eb0808 adds.w r8, r8, r8
| |||||| 0x0805d0e4 49eb0909 adc.w sb, sb, sb
| |||||| 0x0805d0e8 0023 movs r3, 0
| |||||| 0x0805d0ea 58ea0900 orrs.w r0, r8, sb
| |||||| 0x0805d0ee 1a46 mov r2, r3
| ,=======< 0x0805d0f0 2cd0 beq 0x805d14c
| ||||||| 0x0805d0f2 4feae971 asr.w r1, sb, 0x1f
| ||||||| 0x0805d0f6 0c91 str r1, [sp, 0x30]
| ||||||| 0x0805d0f8 0d91 str r1, [sp, 0x34]
| ||||||| 0x0805d0fa dde90c01 ldrd r0, r1, [sp, 0x30]
| ||||||| 0x0805d0fe 80ea0800 eor.w r0, r0, r8
| ||||||| 0x0805d102 81ea0901 eor.w r1, r1, sb
| ||||||| 0x0805d106 dde90c23 ldrd r2, r3, [sp, 0x30]
| ||||||| 0x0805d10a 801a subs r0, r0, r2
| ||||||| 0x0805d10c 61eb0301 sbc.w r1, r1, r3
| ||||||| 0x0805d110 8bb2 uxth r3, r1
| ||||||| 0x0805d112 002b cmp r3, 0
| ========< 0x0805d114 34d0 beq 0x805d180
| ||||||| 0x0805d116 1bb2 sxth r3, r3
| ||||||| 0x0805d118 b3fa83f3 clz r3, r3
| ||||||| 0x0805d11c c3f12101 rsb.w r1, r3, 0x21
| ||||||| 0x0805d120 c1f12003 rsb.w r3, r1, 0x20
| ||||||| 0x0805d124 a1f12000 sub.w r0, r1, 0x20
| ||||||| 0x0805d128 09fa03f4 lsl.w r4, sb, r3
| ||||||| 0x0805d12c 28fa01f2 lsr.w r2, r8, r1
| ||||||| 0x0805d130 49fa00f3 asr.w r3, sb, r0
| ||||||| 0x0805d134 2243 orrs r2, r4
| ||||||| 0x0805d136 12ea2002 ands.w r2, r2, r0, asr 32
| ========< 0x0805d13a 38bf it lo
| --------> 0x0805d13c 1a46 mov r2, r3
| ||||||| 0x0805d13e 46f26663 movw r3, 0x6666
| ||||||| 0x0805d142 12fb23f2 smultb r2, r2, r3
| ||||||| 0x0805d146 cbb2 uxtb r3, r1
| ||||||| 0x0805d148 c2f3cf32 ubfx r2, r2, 0xf, 0x10
| `-------> 0x0805d14c 049c ldr r4, [sp, 0x10]
| |||||| 0x0805d14e 0598 ldr r0, [sp, 0x14]
| |||||| 0x0805d150 0bf1080b add.w fp, fp, 8
| |||||| 0x0805d154 e280 strh r2, [r4, 6]
| |||||| 0x0805d156 0834 adds r4, 8
| |||||| 0x0805d158 c370 strb r3, [r0, 3]
| |||||| 0x0805d15a 0430 adds r0, 4
| |||||| 0x0805d15c bbf1510f cmp.w fp, 0x51 ; 'Q' ; 81
| |||||| 0x0805d160 0494 str r4, [sp, 0x10]
| |||||| 0x0805d162 0590 str r0, [sp, 0x14]
| ,=======< 0x0805d164 4cd0 beq 0x805d200
| ||||||| 0x0805d166 039b ldr r3, [sp, 0xc]
| ||||||| 0x0805d168 2933 adds r3, 0x29
| ||||||| 0x0805d16a 9f2b cmp r3, 0x9f ; 159
| ||||||| 0x0805d16c 0293 str r3, [sp, 8]
| |||||`==< 0x0805d16e 7ff75bae ble.w 0x805ce28
| ||||| | 0x0805d172 039c ldr r4, [sp, 0xc]
| ||||| | 0x0805d174 773c subs r4, 0x77
| ||||| | 0x0805d176 0294 str r4, [sp, 8]
| ||||| `=< 0x0805d178 56e6 b 0x805ce28
| ||||`---> 0x0805d17a 0023 movs r3, 0
| |||| 0x0805d17c 1946 mov r1, r3
| |`======< 0x0805d17e a7e6 b 0x805ced0
| --------> 0x0805d180 0028 cmp r0, 0
| | || ,=< 0x0805d182 74db blt 0x805d26e
| | || | 0x0805d184 b0fa80f0 clz r0, r0
| | || | 0x0805d188 0138 subs r0, 1
| | || | 0x0805d18a 08fa00f3 lsl.w r3, r8, r0
| | || | 0x0805d18e 46f26661 movw r1, 0x6666
| | || | 0x0805d192 13fb21f3 smultb r3, r3, r1
| | || | 0x0805d196 4042 rsbs r0, r0, 0
| | || | 0x0805d198 c3f3cf32 ubfx r2, r3, 0xf, 0x10
| | || | 0x0805d19c c3b2 uxtb r3, r0
| ========< 0x0805d19e d5e7 b 0x805d14c
| --------> 0x0805d1a0 0028 cmp r0, 0
| | || ,==< 0x0805d1a2 7cdb blt 0x805d29e
| | || || 0x0805d1a4 b0fa80f0 clz r0, r0
| | || || 0x0805d1a8 0138 subs r0, 1
| | || || 0x0805d1aa 08fa00f3 lsl.w r3, r8, r0
| | || || 0x0805d1ae 46f26661 movw r1, 0x6666
| | || || 0x0805d1b2 13fb21f3 smultb r3, r3, r1
| | || || 0x0805d1b6 4042 rsbs r0, r0, 0
| | || || 0x0805d1b8 c3f3cf31 ubfx r1, r3, 0xf, 0x10
| | || || 0x0805d1bc c3b2 uxtb r3, r0
| ========< 0x0805d1be f0e6 b 0x805cfa2
| | |`----> 0x0805d1c0 0028 cmp r0, 0
| | | ,===< 0x0805d1c2 60db blt 0x805d286
| | | ||| 0x0805d1c4 b0fa80f0 clz r0, r0
| | | ||| 0x0805d1c8 0138 subs r0, 1
| | | ||| 0x0805d1ca 08fa00f3 lsl.w r3, r8, r0
| | | ||| 0x0805d1ce 46f26661 movw r1, 0x6666
| | | ||| 0x0805d1d2 13fb21f3 smultb r3, r3, r1
| | | ||| 0x0805d1d6 4042 rsbs r0, r0, 0
| | | ||| 0x0805d1d8 c3f3cf31 ubfx r1, r3, 0xf, 0x10
| | | ||| 0x0805d1dc c3b2 uxtb r3, r0
| | `=====< 0x0805d1de 77e6 b 0x805ced0
| --------> 0x0805d1e0 0028 cmp r0, 0
| | ,====< 0x0805d1e2 68db blt 0x805d2b6
| | |||| 0x0805d1e4 b0fa80f0 clz r0, r0
| | |||| 0x0805d1e8 0138 subs r0, 1
| | |||| 0x0805d1ea 08fa00f3 lsl.w r3, r8, r0
| | |||| 0x0805d1ee 46f26661 movw r1, 0x6666
| | |||| 0x0805d1f2 13fb21f3 smultb r3, r3, r1
| | |||| 0x0805d1f6 4042 rsbs r0, r0, 0
| | |||| 0x0805d1f8 c3f3cf31 ubfx r1, r3, 0xf, 0x10
| | |||| 0x0805d1fc c3b2 uxtb r3, r0
| ========< 0x0805d1fe 3ae7 b 0x805d076
| `-------> 0x0805d200 0e9c ldr r4, [sp, 0x38]
| |||| 0x0805d202 6ff01f02 mvn r2, 0x1f
| |||| 0x0805d206 a11e subs r1, r4, 2
| |||| 0x0805d208 0023 movs r3, 0
| .-----> 0x0805d20a 31f9020f ldrsh r0, [r1, 2]!
| ,======< 0x0805d20e 20b1 cbz r0, 0x805d21a
| |||||| 0x0805d210 24ac add r4, sp, 0x90
| |||||| 0x0805d212 e056 ldrsb r0, [r4, r3]
| |||||| 0x0805d214 8242 cmp r2, r0
| ,=======< 0x0805d216 b8bf it lt
| `-------> 0x0805d218 0246 mov r2, r0
| `------> 0x0805d21a 0133 adds r3, 1
| ||||| 0x0805d21c 282b cmp r3, 0x28 ; '(' ; 40
| `=====< 0x0805d21e f4d1 bne 0x805d20a
| |||| 0x0805d220 12f1200f cmn.w r2, 0x20 ; 32
| ,=====< 0x0805d224 08bf it eq
| `-----> 0x0805d226 1046 mov r0, r2
| ,=====< 0x0805d228 1ed0 beq 0x805d268
| ||||| 0x0805d22a 0e9b ldr r3, [sp, 0x38]
| ||||| 0x0805d22c 0df18f00 add.w r0, sp, 0x8f
| ||||| 0x0805d230 03f15006 add.w r6, r3, 0x50
| ,======< 0x0805d234 06e0 b 0x805d244
| .-------> 0x0805d236 14fa05f1 lsls.w r1, r4, r5
| ||||||| 0x0805d23a 0914 asrs r1, r1, 0x10
| ||||||| 0x0805d23c b342 cmp r3, r6
| ||||||| 0x0805d23e 23f8021c strh r1, [r3, -0x2]
| ========< 0x0805d242 0ed0 beq 0x805d262
| -`------> 0x0805d244 33f9024b ldrsh r4, [r3], 2
| | ||||| 0x0805d248 10f9011f ldrsb r1, [r0, 1]!
| | ||||| 0x0805d24c 2404 lsls r4, r4, 0x10
| | ||||| 0x0805d24e 8d1a subs r5, r1, r2
| `=======< 0x0805d250 f1d5 bpl 0x805d236
| ||||| 0x0805d252 511a subs r1, r2, r1
| ||||| 0x0805d254 54fa01f1 asrs.w r1, r4, r1
| ||||| 0x0805d258 0914 asrs r1, r1, 0x10
| ||||| 0x0805d25a b342 cmp r3, r6
| ||||| 0x0805d25c 23f8021c strh r1, [r3, -0x2]
| ========< 0x0805d260 f0d1 bne 0x805d244
| --------> 0x0805d262 0f98 ldr r0, [sp, 0x3c]
| ||||| 0x0805d264 0438 subs r0, 4
| ||||| 0x0805d266 8018 adds r0, r0, r2
| `-----> 0x0805d268 2fb0 add sp, 0xbc
\ |||| 0x0805d26a bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_5dc40 114
| Caller: func_5742c
| func_5dc40 ();
| 0x0805dc40 2de9f843 push.w {r3, r4, r5, r6, r7, r8, sb, lr}
| 0x0805dc44 8846 mov r8, r1
| 0x0805dc46 1746 mov r7, r2
| 0x0805dc48 1e46 mov r6, r3
| 0x0805dc4a 851c adds r5, r0, 2
| 0x0805dc4c 0824 movs r4, 8 ; 8
| 0x0805dc4e 47f6ff79 movw sb, 0x7fff
| ,=< 0x0805dc52 05e0 b 0x805dc60
| .--> 0x0805dc54 013c subs r4, 1
| || 0x0805dc56 25f8029c strh sb, [r5, -0x2]
| || 0x0805dc5a 05f10205 add.w r5, r5, 2
| ,===< 0x0805dc5e 26d0 beq 0x805dcae
| .--`-> 0x0805dc60 38f9020b ldrsh r0, [r8], 2
| ||| 0x0805dc64 0028 cmp r0, 0
| ||`==< 0x0805dc66 f5d0 beq 0x805dc54
| || 0x0805dc68 3946 mov r1, r7
| || 0x0805dc6a 0622 movs r2, 6 ; 6
| || 0x0805dc6c fbf708f8 bl func_58c80
| || 0x0805dc70 0004 lsls r0, r0, 0x10
| || 0x0805dc72 c0f17b43 rsb.w r3, r0, -0x5000000
| || 0x0805dc76 03f5ba03 add.w r3, r3, 0x5d0000
| || ,=< 0x0805dc7a 2eb1 cbz r6, 0x805dc88
| || | 0x0805dc7c 042c cmp r4, 4 ; 4
| ||,==< 0x0805dc7e dcbf itt le
| ||`--> 0x0805dc80 c0f17943 rsb.w r3, r0, -0x7000000
| || | 0x0805dc84 03f5ba03 add.w r3, r3, 0x5d0000
| || `-> 0x0805dc88 002b cmp r3, 0
| || ,=< 0x0805dc8a 12db blt 0x805dcb2
| || | 0x0805dc8c 5a01 lsls r2, r3, 5
| || | 0x0805dc8e b3eb621f cmp.w r3, r2, asr 5
| ||,==< 0x0805dc92 08bf it eq
| ||`--> 0x0805dc94 130c lsrs r3, r2, 0x10
| ||,==< 0x0805dc96 04d0 beq 0x805dca2
| |||| 0x0805dc98 db17 asrs r3, r3, 0x1f
| |||| 0x0805dc9a 83f00043 eor r3, r3, 0x80000000
| |||| 0x0805dc9e db43 mvns r3, r3
| |||| 0x0805dca0 1b0c lsrs r3, r3, 0x10
| ||`--> 0x0805dca2 013c subs r4, 1
| || | 0x0805dca4 25f8023c strh r3, [r5, -0x2]
| || | 0x0805dca8 05f10205 add.w r5, r5, 2
| `====< 0x0805dcac d8d1 bne 0x805dc60
\ `---> 0x0805dcae bde8f883 pop.w {r3, r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_5dcb8 500
| Caller: func_5742c
| func_5dcb8 ();
| 0x0805dcb8 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0805dcbc 8db0 sub sp, 0x34 ; '4'
| 0x0805dcbe 0239 subs r1, 2
| 0x0805dcc0 ddf85c80 ldr.w r8, [sp, 0x5c]
| 0x0805dcc4 169f ldr r7, [sp, 0x58]
| 0x0805dcc6 4fea0816 lsl.w r6, r8, 4
| 0x0805dcca 3344 add r3, r6
| 0x0805dccc 9d1e subs r5, r3, 2
| 0x0805dcce 03f10e0e add.w lr, r3, 0xe
| 0x0805dcd2 00bf nop
| .-> 0x0805dcd4 35f9024f ldrsh r4, [r5, 2]!
| | 0x0805dcd8 012c cmp r4, 1 ; 1
| ,==< 0x0805dcda b8bf it lt
| `--> 0x0805dcdc 0124 movs r4, 1 ; 1
| | 0x0805dcde 7545 cmp r5, lr
| | 0x0805dce0 21f8024f strh r4, [r1, 2]!
| `=< 0x0805dce4 f6d1 bne 0x805dcd4
| 0x0805dce6 08f10205 add.w r5, r8, 2
| 0x0805dcea 47fa05f1 asr.w r1, r7, r5
| 0x0805dcee 11f00101 ands r1, r1, 1
| ,=< 0x0805dcf2 0ed1 bne 0x805dd12
| | 0x0805dcf4 831e subs r3, r0, 2
| | 0x0805dcf6 0a46 mov r2, r1
| | 0x0805dcf8 0e30 adds r0, 0xe
| | 0x0805dcfa 00bf nop
| .--> 0x0805dcfc 23f8022f strh r2, [r3, 2]!
| || 0x0805dd00 8342 cmp r3, r0
| || 0x0805dd02 4ff00001 mov.w r1, 0
| `==< 0x0805dd06 f9d1 bne 0x805dcfc
| | 0x0805dd08 199b ldr r3, [sp, 0x64]
| | 0x0805dd0a 1960 str r1, [r3]
| .--> 0x0805dd0c 0db0 add sp, 0x34
| || 0x0805dd0e bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
| |`-> 0x0805dd12 0446 mov r4, r0
| | 0x0805dd14 1946 mov r1, r3
| | 0x0805dd16 9146 mov sb, r2
| | 0x0805dd18 0822 movs r2, 8 ; 8
| | 0x0805dd1a f7f787fe bl func_55a2c
| | 0x0805dd1e 0821 movs r1, 8 ; 8
| | 0x0805dd20 0222 movs r2, 2 ; 2
| | 0x0805dd22 2046 mov r0, r4
| | 0x0805dd24 05f02ef8 bl func_62d84
| | 0x0805dd28 b4f90030 ldrsh.w r3, [r4]
| | 0x0805dd2c b4f90220 ldrsh.w r2, [r4, 2]
| | 0x0805dd30 1899 ldr r1, [sp, 0x60]
| | 0x0805dd32 db03 lsls r3, r3, 0xf
| | 0x0805dd34 5b42 rsbs r3, r3, 0
| | 0x0805dd36 b3eb024f cmp.w r3, r2, lsl 16
| |,=< 0x0805dd3a ccbf ite gt
| |`-> 0x0805dd3c 0120 movs r0, 1 ; 1
| | 0x0805dd3e 0020 movs r0, 0
| | 0x0805dd40 08eb010e add.w lr, r8, r1
| | 0x0805dd44 1999 ldr r1, [sp, 0x64]
| | 0x0805dd46 82b2 uxth r2, r0
| | 0x0805dd48 0023 movs r3, 0
| | 0x0805dd4a 0860 str r0, [r1]
| | 0x0805dd4c 4e44 add r6, sb
| | 0x0805dd4e adf80820 strh.w r2, [sp, 8]
| | 0x0805dd52 adf80a20 strh.w r2, [sp, 0xa]
| | 0x0805dd56 adf80c20 strh.w r2, [sp, 0xc]
| | 0x0805dd5a adf80e20 strh.w r2, [sp, 0xe]
| | 0x0805dd5e adf80030 strh.w r3, [sp]
| | 0x0805dd62 adf80230 strh.w r3, [sp, 2]
| | 0x0805dd66 adf80430 strh.w r3, [sp, 4]
| | 0x0805dd6a adf80630 strh.w r3, [sp, 6]
| | 0x0805dd6e 09eb0e11 add.w r1, sb, lr, lsl 4
| | 0x0805dd72 b8f1000f cmp.w r8, 0
| |,=< 0x0805dd76 05d0 beq 0x805dd84
| || 0x0805dd78 189b ldr r3, [sp, 0x60]
| || 0x0805dd7a eb1a subs r3, r5, r3
| || 0x0805dd7c 47fa03f3 asr.w r3, r7, r3
| || 0x0805dd80 db07 lsls r3, r3, 0x1f
| ,===< 0x0805dd82 67d4 bmi 0x805de54
| ||`-> 0x0805dd84 189b ldr r3, [sp, 0x60]
| || 0x0805dd86 1d44 add r5, r3
| || 0x0805dd88 47fa05f5 asr.w r5, r7, r5
| || 0x0805dd8c 04af add r7, sp, 0x10
| || 0x0805dd8e 05f00105 and r5, r5, 1
| || 0x0805dd92 3846 mov r0, r7
| || 0x0805dd94 01f1100e add.w lr, r1, 0x10
| || 0x0805dd98 41f22618 movw r8, 0x1126
| || 0x0805dd9c 41f69919 movw sb, 0x1999
| || 0x0805dda0 45f2c35c movw ip, 0x55c3
| ||,=< 0x0805dda4 09e0 b 0x805ddba
| .----> 0x0805dda6 4245 cmp r2, r8
| |||| 0x0805dda8 13fb0cfa smulbb sl, r3, ip
| ,=====< 0x0805ddac 42dc bgt 0x805de34
| ||||| 0x0805ddae 4fea4a03 lsl.w r3, sl, 1
| .------> 0x0805ddb2 7145 cmp r1, lr
| |||||| 0x0805ddb4 40f8043b str r3, [r0], 4
| ,=======< 0x0805ddb8 0bd0 beq 0x805ddd2
| ------`-> 0x0805ddba 31f8022b ldrh r2, [r1], 2
| |||||| 0x0805ddbe 36f8023b ldrh r3, [r6], 2
| |||||| 0x0805ddc2 12b2 sxth r2, r2
| |||||| 0x0805ddc4 002d cmp r5, 0
| |||`====< 0x0805ddc6 eed1 bne 0x805dda6
| ||| ||.-> 0x0805ddc8 1b04 lsls r3, r3, 0x10
| ||| ||| 0x0805ddca 7145 cmp r1, lr
| ||| ||| 0x0805ddcc 40f8043b str r3, [r0], 4
| ========< 0x0805ddd0 f3d1 bne 0x805ddba
| `--.----> 0x0805ddd2 e846 mov r8, sp
| |||||| 0x0805ddd4 0026 movs r6, 0
| |||||| 0x0805ddd6 47f6ff79 movw sb, 0x7fff
| |||||| 0x0805ddda 4ff6fe75 movw r5, 0xfffe
| ,=======< 0x0805ddde 06e0 b 0x805ddee
| --------> 0x0805dde0 a4f80090 strh.w sb, [r4]
| --------> 0x0805dde4 0cab add r3, sp, 0x30
| ||||||| 0x0805dde6 9f42 cmp r7, r3
| ||||||| 0x0805dde8 04f10204 add.w r4, r4, 2
| |||||`==< 0x0805ddec 8ed0 beq 0x805dd0c
| `-------> 0x0805ddee 38f9022b ldrsh r2, [r8], 2
| |||| | 0x0805ddf2 57f8043b ldr r3, [r7], 4
| |||| | 0x0805ddf6 002a cmp r2, 0
| ||||,==< 0x0805ddf8 28dd ble 0x805de4c
| |||||| 0x0805ddfa 03fa02f0 lsl.w r0, r3, r2
| |||||| 0x0805ddfe 40fa02f2 asr.w r2, r0, r2
| |||||| 0x0805de02 9342 cmp r3, r2
| ,=======< 0x0805de04 03d0 beq 0x805de0e
| ||||||| 0x0805de06 d817 asrs r0, r3, 0x1f
| ||||||| 0x0805de08 80f00040 eor r0, r0, 0x80000000
| ||||||| 0x0805de0c c043 mvns r0, r0
| `-------> 0x0805de0e 000c lsrs r0, r0, 0x10
| ========< 0x0805de10 e6d0 beq 0x805dde0
| |||||| 0x0805de12 00b2 sxth r0, r0
| |||||| 0x0805de14 0021 movs r1, 0
| |||||| 0x0805de16 faf7f3fe bl func_58c00
| |||||| 0x0805de1a 244b ldr r3, [0x0805deae] ; [0x805deac:4]=0xffff56cc
| |||||| 0x0805de1c 4010 asrs r0, r0, 1
| |||||| 0x0805de1e 1b1a subs r3, r3, r0
| |||||| 0x0805de20 002b cmp r3, 0
| ,=======< 0x0805de22 41db blt 0x805dea8
| ||||||| 0x0805de24 ab42 cmp r3, r5
| ========< 0x0805de26 dbdc bgt 0x805dde0
| ||||||| 0x0805de28 db03 lsls r3, r3, 0xf
| ||||||| 0x0805de2a 03f50043 add.w r3, r3, 0x8000
| ||||||| 0x0805de2e 1b14 asrs r3, r3, 0x10
| ||||||| 0x0805de30 2380 strh r3, [r4]
| ========< 0x0805de32 d7e7 b 0x805dde4
| ||`-----> 0x0805de34 02eb820a add.w sl, r2, r2, lsl 2
| || |||| 0x0805de38 0ffa8afa sxth.w sl, sl
| || |||| 0x0805de3c 0ffa83fb sxth.w fp, r3
| || |||| 0x0805de40 4a45 cmp r2, sb
| || |||| 0x0805de42 0bfb0af2 mul r2, fp, sl
| || |||`=< 0x0805de46 bfdc bgt 0x805ddc8
| || ||| 0x0805de48 5300 lsls r3, r2, 1
| |`======< 0x0805de4a b2e7 b 0x805ddb2
| | ||`--> 0x0805de4c 5242 rsbs r2, r2, 0
| | || 0x0805de4e 43fa02f0 asr.w r0, r3, r2
| ========< 0x0805de52 dce7 b 0x805de0e
| | |`---> 0x0805de54 189b ldr r3, [sp, 0x60]
| | | 0x0805de56 1d44 add r5, r3
| | | 0x0805de58 2f41 asrs r7, r5
| | | 0x0805de5a c3eb0808 rsb r8, r3, r8
| | | 0x0805de5e 17f0010f tst.w r7, 1 ; 1
| | | 0x0805de62 09eb0818 add.w r8, sb, r8, lsl 4
| | | 0x0805de66 04af add r7, sp, 0x10
| | | ,=< 0x0805de68 08bf it eq
| | | `-> 0x0805de6a 3146 mov r1, r6
| | | 0x0805de6c 08f1100e add.w lr, r8, 0x10
| | | 0x0805de70 3d46 mov r5, r7
| | | ,=< 0x0805de72 05e0 b 0x805de80
| | | .--> 0x0805de74 8242 cmp r2, r0
| | |,===< 0x0805de76 14da bge 0x805dea2
| | |||| 0x0805de78 2a60 str r2, [r5]
| | |||| 0x0805de7a 0435 adds r5, 4
| |..-----> 0x0805de7c f045 cmp r8, lr
| |||`====< 0x0805de7e a8d0 beq 0x805ddd2
| ||| ||`-> 0x0805de80 38f9023b ldrsh r3, [r8], 2
| ||| || 0x0805de84 31f9022b ldrsh r2, [r1], 2
| ||| || 0x0805de88 36f9020b ldrsh r0, [r6], 2
| ||| || 0x0805de8c 1b04 lsls r3, r3, 0x10
| ||| || 0x0805de8e 1204 lsls r2, r2, 0x10
| ||| || 0x0805de90 9342 cmp r3, r2
| ||| || 0x0805de92 4fea0040 lsl.w r0, r0, 0x10
| ||| |`==< 0x0805de96 eddd ble 0x805de74
| ||| | 0x0805de98 8342 cmp r3, r0
| ||| | ,=< 0x0805de9a 02da bge 0x805dea2
| ||| | | 0x0805de9c 2b60 str r3, [r5]
| ||| | | 0x0805de9e 0435 adds r5, 4
| |`======< 0x0805dea0 ece7 b 0x805de7c
| | | `-`-> 0x0805dea2 2860 str r0, [r5]
| | | 0x0805dea4 0435 adds r5, 4
| | `=====< 0x0805dea6 e9e7 b 0x805de7c
| `-------> 0x0805dea8 2680 strh r6, [r4]
\ ========< 0x0805deaa 9be7 b 0x805dde4
/ (fcn) func_5deb0 272
| Caller: func_5742c
| func_5deb0 ();
| 0x0805deb0 002b cmp r3, 0
| 0x0805deb2 f0b5 push {r4, r5, r6, r7, lr}
| ,=< 0x0805deb4 23dd ble 0x805defe
| | 0x0805deb6 0133 adds r3, 1
| | 0x0805deb8 5c00 lsls r4, r3, 1
| | 0x0805deba 251f subs r5, r4, 4
| | 0x0805debc 41f6991c movw ip, 0x1999
| | 0x0805dec0 4e5f ldrsh r6, [r1, r5]
| | 0x0805dec2 31f813e0 ldrh.w lr, [r1, r3, lsl 1]
| | 0x0805dec6 475b ldrh r7, [r0, r5]
| | 0x0805dec8 023c subs r4, 2
| | 0x0805deca 6645 cmp r6, ip
| | 0x0805decc 0d5b ldrh r5, [r1, r4]
| | 0x0805dece 035b ldrh r3, [r0, r4]
| ,==< 0x0805ded0 18dc bgt 0x805df04
| || 0x0805ded2 3604 lsls r6, r6, 0x10
| || 0x0805ded4 4fea054c lsl.w ip, r5, 0x10
| || 0x0805ded8 b6eb6c0f cmp.w r6, ip, asr 1
| ,===< 0x0805dedc 12da bge 0x805df04
| ||| 0x0805dede 4fea0e4e lsl.w lr, lr, 0x10
| ||| 0x0805dee2 b6eb6e0f cmp.w r6, lr, asr 1
| ,====< 0x0805dee6 0dda bge 0x805df04
| |||| 0x0805dee8 3f04 lsls r7, r7, 0x10
| |||| 0x0805deea 7f10 asrs r7, r7, 1
| |||| 0x0805deec 1b04 lsls r3, r3, 0x10
| |||| 0x0805deee de1b subs r6, r3, r7
| ,=====< 0x0805def0 61d4 bmi 0x805dfb6
| .------> 0x0805def2 b6eba70f cmp.w r6, r7, asr 2
| ,=======< 0x0805def6 05da bge 0x805df04
| ||||||| 0x0805def8 43f3cf30 sbfx r0, r3, 0xf, 0x10
| ========< 0x0805defc 08e0 b 0x805df10
| ||||||`-> 0x0805defe 31f81350 ldrh.w r5, [r1, r3, lsl 1]
| |||||| 0x0805df02 5c00 lsls r4, r3, 1
| `--```.-> 0x0805df04 2db2 sxth r5, r5
| || | 0x0805df06 43f23333 movw r3, 0x3333
| || | 0x0805df0a 9d42 cmp r5, r3
| || ,==< 0x0805df0c 0bdc bgt 0x805df26
| || || 0x0805df0e 005f ldrsh r0, [r0, r4]
| ---..---> 0x0805df10 0304 lsls r3, r0, 0x10
| |||||| 0x0805df12 4004 lsls r0, r0, 0x11
| |||||| 0x0805df14 b3eb600f cmp.w r3, r0, asr 1
| ,=======< 0x0805df18 03d0 beq 0x805df22
| ||||||| 0x0805df1a d817 asrs r0, r3, 0x1f
| ||||||| 0x0805df1c 80f00040 eor r0, r0, 0x80000000
| ||||||| 0x0805df20 c043 mvns r0, r0
| `-------> 0x0805df22 0014 asrs r0, r0, 0x10
| |||||| 0x0805df24 f0bd pop {r4, r5, r6, r7, pc}
| ||||`--> 0x0805df26 059b ldr r3, [sp, 0x14]
| |||| | 0x0805df28 31f91350 ldrsh.w r5, [r1, r3, lsl 1]
| |||| | 0x0805df2c 43f23234 movw r4, 0x3332
| |||| | 0x0805df30 a542 cmp r5, r4
| |||| | 0x0805df32 4fea4303 lsl.w r3, r3, 1
| ||||,==< 0x0805df36 3cdd ble 0x805dfb2
| |||||| 0x0805df38 b1f90060 ldrsh.w r6, [r1]
| |||||| 0x0805df3c 0124 movs r4, 1 ; 1
| |||||| 0x0805df3e 0027 movs r7, 0
| .-------> 0x0805df40 31f9025f ldrsh r5, [r1, 2]!
| ||||||| 0x0805df44 b542 cmp r5, r6
| ||||||| 0x0805df46 4fea4403 lsl.w r3, r4, 1
| ========< 0x0805df4a b8bf it lt
| --------> 0x0805df4c 2746 mov r7, r4
| ||||||| 0x0805df4e 04f10104 add.w r4, r4, 1
| ========< 0x0805df52 acbf ite ge
| --------> 0x0805df54 7b00 lsls r3, r7, 1
| ||||||| 0x0805df56 2e46 mov r6, r5
| ||||||| 0x0805df58 052c cmp r4, 5 ; 5
| `=======< 0x0805df5a f1d1 bne 0x805df40
| |||||| 0x0805df5c 43f23231 movw r1, 0x3332
| |||||| 0x0805df60 8e42 cmp r6, r1
| ,=======< 0x0805df62 26dd ble 0x805dfb2
| ||||||| 0x0805df64 0146 mov r1, r0
| ||||||| 0x0805df66 0788 ldrh r7, [r0]
| ||||||| 0x0805df68 31f8026f ldrh r6, [r1, 2]!
| ||||||| 0x0805df6c 00f1080e add.w lr, r0, 8
| ||||||| 0x0805df70 30b2 sxth r0, r6
| ||||||| 0x0805df72 851a subs r5, r0, r2
| ========< 0x0805df74 0dd4 bmi 0x805df92
| --------> 0x0805df76 3bb2 sxth r3, r7
| ||||||| 0x0805df78 9c1a subs r4, r3, r2
| ========< 0x0805df7a 13d4 bmi 0x805dfa4
| --------> 0x0805df7c a542 cmp r5, r4
| ========< 0x0805df7e b4bf ite lt
| --------> 0x0805df80 3746 mov r7, r6
| ||||||| 0x0805df82 1846 mov r0, r3
| ||||||| 0x0805df84 7145 cmp r1, lr
| |||`====< 0x0805df86 c3d0 beq 0x805df10
| ||| ||| 0x0805df88 31f8026f ldrh r6, [r1, 2]!
| ||| ||| 0x0805df8c 30b2 sxth r0, r6
| ||| ||| 0x0805df8e 851a subs r5, r0, r2
| ========< 0x0805df90 f1d5 bpl 0x805df76
| --------> 0x0805df92 15f5004f cmn.w r5, 0x8000
| ||| ||| 0x0805df96 3bb2 sxth r3, r7
| |||,====< 0x0805df98 14bf ite ne
| |||`----> 0x0805df9a 151a subs r5, r2, r0
| ||| ||| 0x0805df9c 47f6ff75 movw r5, 0x7fff
| ||| ||| 0x0805dfa0 9c1a subs r4, r3, r2
| ========< 0x0805dfa2 ebd5 bpl 0x805df7c
| --------> 0x0805dfa4 14f5004f cmn.w r4, 0x8000
| |||,====< 0x0805dfa8 14bf ite ne
| |||`----> 0x0805dfaa d41a subs r4, r2, r3
| ||| ||| 0x0805dfac 47f6ff74 movw r4, 0x7fff
| ========< 0x0805dfb0 e4e7 b 0x805df7c
| `----`--> 0x0805dfb2 c05e ldrsh r0, [r0, r3]
| || `===< 0x0805dfb4 ace7 b 0x805df10
| |`-----> 0x0805dfb6 b6f1004f cmp.w r6, -0x80000000
| | `=< 0x0805dfba a3d0 beq 0x805df04
| | 0x0805dfbc 7642 rsbs r6, r6, 0
\ `======< 0x0805dfbe 98e7 b 0x805def2
/ (fcn) func_5dfc0 4
| Caller: func_5753c
| func_5dfc0 ();
| 0x0805dfc0 0160 str r1, [r0]
\ 0x0805dfc2 7047 bx lr
/ (fcn) func_5dfc4 518
| Caller: func_5753c
| func_5dfc4 ();
| 0x0805dfc4 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0805dfc8 a1b0 sub sp, 0x84
| 0x0805dfca 0128 cmp r0, 1 ; 1
| 0x0805dfcc 8b46 mov fp, r1
| 0x0805dfce 0092 str r2, [sp]
| ,=< 0x0805dfd0 0dd0 beq 0x805dfee
| | 0x0805dfd2 2c9b ldr r3, [sp, 0xb0]
| | 0x0805dfd4 4020 movs r0, 0x40 ; '@' ; 64
| | 0x0805dfd6 c3f10703 rsb.w r3, r3, 7
| | 0x0805dfda 40fa03f4 asr.w r4, r0, r3
| | 0x0805dfde 009b ldr r3, [sp]
| | 0x0805dfe0 0022 movs r2, 0
| | 0x0805dfe2 1a60 str r2, [r3]
| | 0x0805dfe4 0a60 str r2, [r1]
| .--> 0x0805dfe6 2046 mov r0, r4
| || 0x0805dfe8 21b0 add sp, 0x84
| || 0x0805dfea bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
| |`-> 0x0805dfee bdf9b020 ldrsh.w r2, [sp, 0xb0]
| | 0x0805dff2 c2f10701 rsb.w r1, r2, 7
| | 0x0805dff6 00fa01f1 lsl.w r1, r0, r1
| | 0x0805dffa 03f11e06 add.w r6, r3, 0x1e
| | 0x0805dffe 9040 lsls r0, r2
| | 0x0805e000 a3f1020a sub.w sl, r3, 2
| | 0x0805e004 8ab2 uxth r2, r1
| | 0x0805e006 2a9b ldr r3, [sp, 0xa8]
| | 0x0805e008 0392 str r2, [sp, 0xc]
| | 0x0805e00a 0df14009 add.w sb, sp, 0x40
| | 0x0805e00e 82b2 uxth r2, r0
| | 0x0805e010 0192 str r2, [sp, 4]
| | 0x0805e012 c846 mov r8, sb
| | 0x0805e014 0df1200c add.w ip, sp, 0x20
| | 0x0805e018 03f11e07 add.w r7, r3, 0x1e
| | 0x0805e01c 0df1600e add.w lr, sp, 0x60
| |.-> 0x0805e020 36f90239 ldrsh r3, [r6], -2
| || 0x0805e024 37f90219 ldrsh r1, [r7], -2
| || 0x0805e028 1b04 lsls r3, r3, 0x10
| || 0x0805e02a c3f1ff42 rsb.w r2, r3, 0x7f800000
| || 0x0805e02e 02f5fe02 add.w r2, r2, 0x7f0000
| || 0x0805e032 13fb33f3 smultt r3, r3, r3
| || 0x0805e036 12fb32f2 smultt r2, r2, r2
| || 0x0805e03a db13 asrs r3, r3, 0xf
| || 0x0805e03c d213 asrs r2, r2, 0xf
| || 0x0805e03e 1804 lsls r0, r3, 0x10
| || 0x0805e040 1204 lsls r2, r2, 0x10
| || 0x0805e042 0b04 lsls r3, r1, 0x10
| || 0x0805e044 c2f1ff45 rsb.w r5, r2, 0x7f800000
| || 0x0805e048 c3f1ff41 rsb.w r1, r3, 0x7f800000
| || 0x0805e04c c0f1ff44 rsb.w r4, r0, 0x7f800000
| || 0x0805e050 04f5fe04 add.w r4, r4, 0x7f0000
| || 0x0805e054 05f5fe05 add.w r5, r5, 0x7f0000
| || 0x0805e058 13fb33f3 smultt r3, r3, r3
| || 0x0805e05c 01f5fe01 add.w r1, r1, 0x7f0000
| || 0x0805e060 5b00 lsls r3, r3, 1
| || 0x0805e062 11fb31f1 smultt r1, r1, r1
| || 0x0805e066 15fb33f5 smultt r5, r5, r3
| || 0x0805e06a 4900 lsls r1, r1, 1
| || 0x0805e06c 2a44 add r2, r5
| || 0x0805e06e 14fb31f1 smultt r1, r4, r1
| || 0x0805e072 14fb33f3 smultt r3, r4, r3
| || 0x0805e076 0144 add r1, r0
| || 0x0805e078 0344 add r3, r0
| || 0x0805e07a 1214 asrs r2, r2, 0x10
| || 0x0805e07c 0914 asrs r1, r1, 0x10
| || 0x0805e07e 1b14 asrs r3, r3, 0x10
| || 0x0805e080 5645 cmp r6, sl
| || 0x0805e082 2cf8022b strh r2, [ip], 2
| || 0x0805e086 28f8021b strh r1, [r8], 2
| || 0x0805e08a 2ef8023b strh r3, [lr], 2
| |`=< 0x0805e08e c7d1 bne 0x805e020
| | 0x0805e090 bdf90430 ldrsh.w r3, [sp, 4]
| | 0x0805e094 0493 str r3, [sp, 0x10]
| | 0x0805e096 002b cmp r3, 0
| |,=< 0x0805e098 40f39380 ble.w 0x805e1c2
| || 0x0805e09c 47f6ff73 movw r3, 0x7fff
| || 0x0805e0a0 0693 str r3, [sp, 0x18]
| || 0x0805e0a2 0193 str r3, [sp, 4]
| || 0x0805e0a4 2b9b ldr r3, [sp, 0xac]
| || 0x0805e0a6 cdf81cb0 str.w fp, [sp, 0x1c]
| || 0x0805e0aa 4ff0000a mov.w sl, 0
| || 0x0805e0ae 2033 adds r3, 0x20
| || 0x0805e0b0 5046 mov r0, sl
| || 0x0805e0b2 cdf814a0 str.w sl, [sp, 0x14]
| || 0x0805e0b6 0293 str r3, [sp, 8]
| .---> 0x0805e0b8 444b ldr r3, [0x0805e1cc] ; [0x805e1cc:4]=0x8094f10
| ||| 0x0805e0ba ddf80880 ldr.w r8, [sp, 8]
| ||| 0x0805e0be 53f80a40 ldr.w r4, [r3, sl]
| ||| 0x0805e0c2 1ffa80fb uxth.w fp, r0
| ||| 0x0805e0c6 0df15e0c add.w ip, sp, 0x5e
| ||| 0x0805e0ca 0026 movs r6, 0
| ||| 0x0805e0cc 0027 movs r7, 0
| ||| 0x0805e0ce ce46 mov lr, sb
| ||| 0x0805e0d0 08a9 add r1, sp, 0x20
| ,====< 0x0805e0d2 0ee0 b 0x805e0f2
| .-----> 0x0805e0d4 022d cmp r5, 2 ; 2
| ,======< 0x0805e0d6 08bf it eq
| `------> 0x0805e0d8 bef80030 ldrh.w r3, [lr]
| .------> 0x0805e0dc 0231 adds r1, 2
| |||||| 0x0805e0de 4945 cmp r1, sb
| |||||| 0x0805e0e0 1bb2 sxth r3, r3
| |||||| 0x0805e0e2 12b2 sxth r2, r2
| |||||| 0x0805e0e4 0ef1020e add.w lr, lr, 2
| |||||| 0x0805e0e8 c3fb8267 smlalbb r6, r7, r3, r2
| |||||| 0x0805e0ec 4feaa404 asr.w r4, r4, 2
| ,=======< 0x0805e0f0 09d0 beq 0x805e106
| |||`----> 0x0805e0f2 04f00305 and r5, r4, 3
| ||| ||| 0x0805e0f6 012d cmp r5, 1 ; 1
| ||| ||| 0x0805e0f8 38f8022d ldrh r2, [r8, -0x2]!
| ||| ||| 0x0805e0fc 3cf8023f ldrh r3, [ip, 2]!
| ||`=====< 0x0805e100 e8d1 bne 0x805e0d4
| || ||| 0x0805e102 0b88 ldrh r3, [r1]
| |`======< 0x0805e104 eae7 b 0x805e0dc
| `-------> 0x0805e106 56ea0703 orrs.w r3, r6, r7
| ,====< 0x0805e10a 11d1 bne 0x805e130
| .-----> 0x0805e10c 2c9b ldr r3, [sp, 0xb0]
| ||||| 0x0805e10e 2f4a ldr r2, [0x0805e1ce] ; [0x805e1cc:4]=0x8094f10
| ||||| 0x0805e110 ddf81cb0 ldr.w fp, [sp, 0x1c]
| ||||| 0x0805e114 c3f10703 rsb.w r3, r3, 7
| ||||| 0x0805e118 00fa03f3 lsl.w r3, r0, r3
| ||||| 0x0805e11c 1bb2 sxth r3, r3
| ||||| 0x0805e11e 02eb8303 add.w r3, r2, r3, lsl 2
| ||||| 0x0805e122 0446 mov r4, r0
| ..------> 0x0805e124 0099 ldr r1, [sp]
| ||||||| 0x0805e126 1a68 ldr r2, [r3]
| ||||||| 0x0805e128 5846 mov r0, fp
| ||||||| 0x0805e12a 04f0b3fe bl func_62e94
| |||||`==< 0x0805e12e 5ae7 b 0x805dfe6
| |||`----> 0x0805e130 3ab2 sxth r2, r7
| ||| | | 0x0805e132 b2fa82f1 clz r1, r2
| ||| | | 0x0805e136 2029 cmp r1, 0x20 ; 32
| ||| |,==< 0x0805e138 04bf itt eq
| ||| |`--> 0x0805e13a b6fa86f1 clz r1, r6
| ||| | | 0x0805e13e 2031 adds r1, 0x20
| ||| | | 0x0805e140 b1f12103 subs.w r3, r1, 0x21
| ||| |,==< 0x0805e144 28d4 bmi 0x805e198
| ||| ||| 0x0805e146 9e40 lsls r6, r3
| ||| ||| 0x0805e148 c3f10103 rsb.w r3, r3, 1
| ||| ||| 0x0805e14c 9bb2 uxth r3, r3
| |||.----> 0x0805e14e 360c lsrs r6, r6, 0x10
| ||`=====< 0x0805e150 dcd0 beq 0x805e10c
| || |||| 0x0805e152 bdf90410 ldrsh.w r1, [sp, 4]
| || |||| 0x0805e156 1ab2 sxth r2, r3
| || |||| 0x0805e158 8a42 cmp r2, r1
| ||,=====< 0x0805e15a 04dc bgt 0x805e166
| ========< 0x0805e15c 24d0 beq 0x805e1a8
| ||||||| 0x0805e15e cdf814b0 str.w fp, [sp, 0x14]
| ||||||| 0x0805e162 0193 str r3, [sp, 4]
| ||||||| 0x0805e164 0696 str r6, [sp, 0x18]
| --`-----> 0x0805e166 bdf80c20 ldrh.w r2, [sp, 0xc]
| || |||| 0x0805e16a 0421 movs r1, 4 ; 4
| || |||| 0x0805e16c 0130 adds r0, 1
| || |||| 0x0805e16e 12fb01aa smlabb sl, r2, r1, sl
| || |||| 0x0805e172 049a ldr r2, [sp, 0x10]
| || |||| 0x0805e174 03b2 sxth r3, r0
| || |||| 0x0805e176 9a42 cmp r2, r3
| || |`===< 0x0805e178 9edc bgt 0x805e0b8
| || | || 0x0805e17a 2c9b ldr r3, [sp, 0xb0]
| || | || 0x0805e17c bdf91400 ldrsh.w r0, [sp, 0x14]
| || | || 0x0805e180 124a ldr r2, [0x0805e1cc] ; [0x805e1cc:4]=0x8094f10
| || | || 0x0805e182 ddf81cb0 ldr.w fp, [sp, 0x1c]
| || | || 0x0805e186 c3f10703 rsb.w r3, r3, 7
| || | || 0x0805e18a 00fa03f3 lsl.w r3, r0, r3
| || | || 0x0805e18e 1bb2 sxth r3, r3
| || | || 0x0805e190 02eb8303 add.w r3, r2, r3, lsl 2
| || | || 0x0805e194 0446 mov r4, r0
| `=======< 0x0805e196 c5e7 b 0x805e124
| | | `--> 0x0805e198 5b42 rsbs r3, r3, 0
| | | | 0x0805e19a 0139 subs r1, 1
| | | | 0x0805e19c de40 lsrs r6, r3
| | | | 0x0805e19e 8a40 lsls r2, r1
| | | | 0x0805e1a0 0133 adds r3, 1
| | | | 0x0805e1a2 9bb2 uxth r3, r3
| | | | 0x0805e1a4 1643 orrs r6, r2
| | `====< 0x0805e1a6 d2e7 b 0x805e14e
| --------> 0x0805e1a8 069c ldr r4, [sp, 0x18]
| | | 0x0805e1aa 0193 str r3, [sp, 4]
| | | 0x0805e1ac 22b2 sxth r2, r4
| | | 0x0805e1ae 31b2 sxth r1, r6
| | | 0x0805e1b0 9142 cmp r1, r2
| | | 0x0805e1b2 2346 mov r3, r4
| | | 0x0805e1b4 059a ldr r2, [sp, 0x14]
| | ,==< 0x0805e1b6 bcbf itt lt
| | `--> 0x0805e1b8 3346 mov r3, r6
| | | 0x0805e1ba 5a46 mov r2, fp
| | | 0x0805e1bc 0592 str r2, [sp, 0x14]
| | | 0x0805e1be 0693 str r3, [sp, 0x18]
| ========< 0x0805e1c0 d1e7 b 0x805e166
| | `-> 0x0805e1c2 0020 movs r0, 0
| | 0x0805e1c4 014b ldr r3, [0x0805e1cc] ; [0x805e1cc:4]=0x8094f10
| | 0x0805e1c6 0446 mov r4, r0
\ `======< 0x0805e1c8 ace7 b 0x805e124
/ (fcn) func_5e1d0 16
| Caller: func_5e2b8
| func_5e1d0 ();
| 0x0805e1d0 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x0805e1d4 0c04 lsls r4, r1, 0x10
| 0x0805e1d6 85b0 sub sp, 0x14
| 0x0805e1d8 0f46 mov r7, r1
| 0x0805e1da 2146 mov r1, r4
| 0x0805e1dc 0029 cmp r1, 0
\ ,=< 0x0805e1de b8bf it lt
/ (fcn) func_5e2b8 300
| Caller: func_5753c
| func_5e2b8 ();
| 0x0805e2b8 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x0805e2bc 87b0 sub sp, 0x1c
| 0x0805e2be 0f46 mov r7, r1
| 0x0805e2c0 109e ldr r6, [sp, 0x40]
| 0x0805e2c2 8968 ldr r1, [r1, 8]
| 0x0805e2c4 9468 ldr r4, [r2, 8]
| 0x0805e2c6 1546 mov r5, r2
| 0x0805e2c8 8046 mov r8, r0
| 0x0805e2ca 002e cmp r6, 0
| ,=< 0x0805e2cc 4ad0 beq 0x805e364
| | 0x0805e2ce 44ea0100 orr.w r0, r4, r1
| | 0x0805e2d2 10f0553f tst.w r0, 0x55555555
| | 0x0805e2d6 1288 ldrh r2, [r2]
| ,==< 0x0805e2d8 52d1 bne 0x805e380
| || 0x0805e2da 012a cmp r2, 1 ; 1
| ,===< 0x0805e2dc 50d1 bne 0x805e380
| ||| 0x0805e2de 14f0aa3f tst.w r4, -0x55555556
| ,====< 0x0805e2e2 14bf ite ne
| `----> 0x0805e2e4 0122 movs r2, 1 ; 1
| ||| 0x0805e2e6 0022 movs r2, 0
| ||| 0x0805e2e8 11f0aa3f tst.w r1, -0x55555556
| ,====< 0x0805e2ec 47d0 beq 0x805e37e
| |||| 0x0805e2ee 0f99 ldr r1, [sp, 0x3c]
| |||| 0x0805e2f0 4ff03c09 mov.w sb, 0x3c ; '<' ; 60
| |||| 0x0805e2f4 0639 subs r1, 6
| |||| 0x0805e2f6 09fa01f9 lsl.w sb, sb, r1
| |||| 0x0805e2fa 09f1ff39 add.w sb, sb, -1
| |||| 0x0805e2fe 002a cmp r2, 0
| ,=====< 0x0805e300 59d0 beq 0x805e3b6
| .------> 0x0805e302 0f9a ldr r2, [sp, 0x3c]
| |||||| 0x0805e304 0124 movs r4, 1 ; 1
| |||||| 0x0805e306 5210 asrs r2, r2, 1
| |||||| 0x0805e308 9440 lsls r4, r2
| |||||| 0x0805e30a 0f9a ldr r2, [sp, 0x3c]
| |||||| 0x0805e30c d207 lsls r2, r2, 0x1f
| ,=======< 0x0805e30e 05d5 bpl 0x805e31c
| ||||||| 0x0805e310 45f68222 movw r2, 0x5a82
| ||||||| 0x0805e314 02fb04f4 mul r4, r2, r4
| ||||||| 0x0805e318 44f38f34 sbfx r4, r4, 0xe, 0x10
| `-------> 0x0805e31c 002e cmp r6, 0
| ,=======< 0x0805e31e 61d0 beq 0x805e3e4
| ||||||| 0x0805e320 1a46 mov r2, r3
| ||||||| 0x0805e322 2146 mov r1, r4
| ||||||| 0x0805e324 4b46 mov r3, sb
| ||||||| 0x0805e326 0096 str r6, [sp]
| ||||||| 0x0805e328 05a8 add r0, sp, 0x14
| ||||||| 0x0805e32a fff751ff bl func_5e1d0
| ||||||| 0x0805e32e 0096 str r6, [sp]
| ||||||| 0x0805e330 2146 mov r1, r4
| ||||||| 0x0805e332 f881 strh r0, [r7, 0xe]
| ||||||| 0x0805e334 0e9a ldr r2, [sp, 0x38]
| ||||||| 0x0805e336 4b46 mov r3, sb
| ||||||| 0x0805e338 0df11600 add.w r0, sp, 0x16
| ||||||| 0x0805e33c fff748ff bl func_5e1d0
| ||||||| 0x0805e340 bdf81630 ldrh.w r3, [sp, 0x16]
| ||||||| 0x0805e344 bdf81420 ldrh.w r2, [sp, 0x14]
| ||||||| 0x0805e348 e881 strh r0, [r5, 0xe]
| ||||||| 0x0805e34a 13fb0424 smlabb r4, r3, r4, r2
| ||||||| 0x0805e34e 24b2 sxth r4, r4
| ||||||| 0x0805e350 4c45 cmp r4, sb
| ========< 0x0805e352 44dc bgt 0x805e3de
| ||||||| 0x0805e354 24eae479 bic.w sb, r4, r4, asr 31
| ||||||| 0x0805e358 1ffa89f9 uxth.w sb, sb
| --------> 0x0805e35c a8f80090 strh.w sb, [r8]
| ||||||| 0x0805e360 0123 movs r3, 1 ; 1
| ========< 0x0805e362 11e0 b 0x805e388
| ||||||`-> 0x0805e364 44ea0102 orr.w r2, r4, r1
| |||||| 0x0805e368 12f0553f tst.w r2, 0x55555555
| ||||||,=< 0x0805e36c 08d1 bne 0x805e380
| ||||||| 0x0805e36e 14f0aa3f tst.w r4, -0x55555556
| ========< 0x0805e372 14bf ite ne
| --------> 0x0805e374 0122 movs r2, 1 ; 1
| ||||||| 0x0805e376 0022 movs r2, 0
| ||||||| 0x0805e378 11f0aa3f tst.w r1, -0x55555556
| ========< 0x0805e37c 08d1 bne 0x805e390
| ===`----> 0x0805e37e 52b9 cbnz r2, 0x805e396
| ||| ```-> 0x0805e380 0022 movs r2, 0
| ||| 0x0805e382 ea81 strh r2, [r5, 0xe]
| ||| 0x0805e384 1346 mov r3, r2
| ||| 0x0805e386 fa81 strh r2, [r7, 0xe]
| -----..-> 0x0805e388 18b2 sxth r0, r3
| ||| || 0x0805e38a 07b0 add sp, 0x1c
| ||| || 0x0805e38c bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
| --------> 0x0805e390 b146 mov sb, r6
| ||| ,===< 0x0805e392 82b1 cbz r2, 0x805e3b6
| |`======< 0x0805e394 b5e7 b 0x805e302
| ---,====< 0x0805e396 e6b9 cbnz r6, 0x805e3d2
| | ||||| 0x0805e398 3346 mov r3, r6
| |.------> 0x0805e39a 0022 movs r2, 0
| ||||||| 0x0805e39c 0096 str r6, [sp]
| ||||||| 0x0805e39e fa81 strh r2, [r7, 0xe]
| ||||||| 0x0805e3a0 0f9a ldr r2, [sp, 0x3c]
| ||||||| 0x0805e3a2 0124 movs r4, 1 ; 1
| ||||||| 0x0805e3a4 04fa02f1 lsl.w r1, r4, r2
| ||||||| 0x0805e3a8 4046 mov r0, r8
| ||||||| 0x0805e3aa 0e9a ldr r2, [sp, 0x38]
| ||||||| 0x0805e3ac fff710ff bl func_5e1d0
| ||||||| 0x0805e3b0 2346 mov r3, r4
| ||||||| 0x0805e3b2 e881 strh r0, [r5, 0xe]
| |||||`==< 0x0805e3b4 e8e7 b 0x805e388
| ||`-`---> 0x0805e3b6 0f99 ldr r1, [sp, 0x3c]
| || | | 0x0805e3b8 ea81 strh r2, [r5, 0xe]
| || | | 0x0805e3ba 0124 movs r4, 1 ; 1
| || | | 0x0805e3bc 1a46 mov r2, r3
| || | | 0x0805e3be 0096 str r6, [sp]
| || | | 0x0805e3c0 4b46 mov r3, sb
| || | | 0x0805e3c2 4046 mov r0, r8
| || | | 0x0805e3c4 04fa01f1 lsl.w r1, r4, r1
| || | | 0x0805e3c8 fff702ff bl func_5e1d0
| || | | 0x0805e3cc 2346 mov r3, r4
| || | | 0x0805e3ce f881 strh r0, [r7, 0xe]
| || | `=< 0x0805e3d0 dae7 b 0x805e388
| || `----> 0x0805e3d2 0f9b ldr r3, [sp, 0x3c]
| || 0x0805e3d4 9a1f subs r2, r3, 6
| || 0x0805e3d6 3c23 movs r3, 0x3c ; '<' ; 60
| || 0x0805e3d8 9340 lsls r3, r2
| || 0x0805e3da 013b subs r3, 1
| |`======< 0x0805e3dc dde7 b 0x805e39a
| --------> 0x0805e3de 1ffa89f9 uxth.w sb, sb
\ ========< 0x0805e3e2 bbe7 b 0x805e35c
/ (fcn) func_5e44c 20
| Caller: func_5e62c func_5e520 func_62fb4 func_5753c
| func_5e44c ();
| 0x0805e44c 10b5 push {r4, lr}
| 0x0805e44e 0446 mov r4, r0
| 0x0805e450 0b46 mov r3, r1
| 0x0805e452 1046 mov r0, r2
| 0x0805e454 2168 ldr r1, [r4]
| 0x0805e456 1a46 mov r2, r3
| 0x0805e458 f9f76efd bl func_57f38
| 0x0805e45c 2060 str r0, [r4]
\ 0x0805e45e 10bd pop {r4, pc}
/ (fcn) func_5e460 176
| Caller: func_5753c
| func_5e460 ();
| 0x0805e460 2de9f843 push.w {r3, r4, r5, r6, r7, r8, sb, lr}
| 0x0805e464 012a cmp r2, 1 ; 1
| 0x0805e466 bdf92060 ldrsh.w r6, [sp, 0x20]
| ,=< 0x0805e46a 11d0 beq 0x805e490
| | 0x0805e46c 022a cmp r2, 2 ; 2
| ,==< 0x0805e46e 03d0 beq 0x805e478
| || 0x0805e470 0024 movs r4, 0
| || 0x0805e472 20b2 sxth r0, r4
| || 0x0805e474 bde8f883 pop.w {r3, r4, r5, r6, r7, r8, sb, pc}
| `--> 0x0805e478 063b subs r3, 6
| | 0x0805e47a 3e24 movs r4, 0x3e ; '>' ; 62
| | 0x0805e47c 9c40 lsls r4, r3
| | 0x0805e47e 44f22702 movw r2, 0x4027
| | 0x0805e482 0f23 movs r3, 0xf ; 15
| | 0x0805e484 a4b2 uxth r4, r4
| | 0x0805e486 0280 strh r2, [r0]
| | 0x0805e488 0b80 strh r3, [r1]
| | 0x0805e48a 20b2 sxth r0, r4
| | 0x0805e48c bde8f883 pop.w {r3, r4, r5, r6, r7, r8, sb, pc}
| `-> 0x0805e490 063b subs r3, 6
| 0x0805e492 0f46 mov r7, r1
| 0x0805e494 0546 mov r5, r0
| 0x0805e496 4ff03c08 mov.w r8, 0x3c ; '<' ; 60
| 0x0805e49a b0f90000 ldrsh.w r0, [r0]
| 0x0805e49e 6ff00301 mvn r1, 3
| 0x0805e4a2 08fa03f8 lsl.w r8, r8, r3
| 0x0805e4a6 faf7abfb bl func_58c00
| 0x0805e4aa b0f1004f cmp.w r0, -0x80000000
| 0x0805e4ae 4fea4809 lsl.w sb, r8, 1
| ,=< 0x0805e4b2 2dd0 beq 0x805e510
| | 0x0805e4b4 4342 rsbs r3, r0, 0
| | 0x0805e4b6 43f30f13 sbfx r3, r3, 4, 0x10
| | 0x0805e4ba a3f58943 sub.w r3, r3, 0x4480
| | 0x0805e4be 7d3b subs r3, 0x7d
| | 0x0805e4c0 18b2 sxth r0, r3
| | 0x0805e4c2 00fb09f0 mul r0, r0, sb
| | 0x0805e4c6 45f2a441 movw r1, 0x54a4
| | 0x0805e4ca faf739fa bl func_58940
| | 0x0805e4ce 84b2 uxth r4, r0
| | 0x0805e4d0 20b2 sxth r0, r4
| | 0x0805e4d2 0028 cmp r0, 0
| ,==< 0x0805e4d4 1edb blt 0x805e514
| || 0x0805e4d6 8045 cmp r8, r0
| ,===< 0x0805e4d8 d6bf itet le
| `---> 0x0805e4da 08f1ff34 add.w r4, r8, -1
| || 0x0805e4de 4300 lsls r3, r0, 1
| || 0x0805e4e0 6300 lsls r3, r4, 1
| || 0x0805e4e2 42f65220 movw r0, 0x2a52
| || 0x0805e4e6 a4b2 uxth r4, r4
| || 0x0805e4e8 03fb0000 mla r0, r3, r0, r0
| || 0x0805e4ec 0ffa89f1 sxth.w r1, sb
| || 0x0805e4f0 faf726fa bl func_58940
| || 0x0805e4f4 0004 lsls r0, r0, 0x10
| || 0x0805e4f6 c0f13b42 rsb.w r2, r0, -0x45000000
| || 0x0805e4fa 02f54032 add.w r2, r2, 0x30000
| || 0x0805e4fe 2846 mov r0, r5
| || 0x0805e500 1214 asrs r2, r2, 0x10
| || 0x0805e502 3946 mov r1, r7
| || 0x0805e504 3346 mov r3, r6
| || 0x0805e506 04f011fd bl func_62f2c
| || 0x0805e50a 20b2 sxth r0, r4
\ || 0x0805e50c bde8f883 pop.w {r3, r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_5e520 92
| Caller: func_5753c
| func_5e520 ();
| 0x0805e520 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x0805e522 0746 mov r7, r0
| 0x0805e524 0e46 mov r6, r1
| 0x0805e526 1446 mov r4, r2
| 0x0805e528 1846 mov r0, r3
| 0x0805e52a 0621 movs r1, 6 ; 6
| 0x0805e52c 3f22 movs r2, 0x3f ; '?' ; 63
| 0x0805e52e 1d46 mov r5, r3
| 0x0805e530 fff78cff bl func_5e44c
| 0x0805e534 7f2f cmp r7, 0x7f ; 127
| ,=< 0x0805e536 23dd ble 0x805e580
| | 0x0805e538 b6f90020 ldrsh.w r2, [r6]
| | 0x0805e53c b6f90230 ldrsh.w r3, [r6, 2]
| | 0x0805e540 1344 add r3, r2
| | 0x0805e542 5a10 asrs r2, r3, 1
| | 0x0805e544 b2f5e04f cmp.w r2, 0x7000
| ,==< 0x0805e548 2adb blt 0x805e5a0
| || 0x0805e54a 0126 movs r6, 1 ; 1
| || 0x0805e54c 3f22 movs r2, 0x3f ; '?' ; 63
| || 0x0805e54e 2846 mov r0, r5
| || 0x0805e550 0621 movs r1, 6 ; 6
| || 0x0805e552 fff77bff bl func_5e44c
| || 0x0805e556 b4f90440 ldrsh.w r4, [r4, 4]
| || 0x0805e55a 0d3c subs r4, 0xd
| || 0x0805e55c e410 asrs r4, r4, 3
| || 0x0805e55e 002c cmp r4, 0
| ,===< 0x0805e560 07dd ble 0x805e572
| ||| 0x0805e562 00bf nop
| .----> 0x0805e564 2846 mov r0, r5
| |||| 0x0805e566 0821 movs r1, 8 ; 8
| |||| 0x0805e568 3a46 mov r2, r7
| |||| 0x0805e56a fff76fff bl func_5e44c
| |||| 0x0805e56e 013c subs r4, 1
| `====< 0x0805e570 f8d1 bne 0x805e564
| `---> 0x0805e572 2846 mov r0, r5
| || 0x0805e574 3246 mov r2, r6
| || 0x0805e576 0121 movs r1, 1 ; 1
\ || 0x0805e578 bde8f840 pop.w {r3, r4, r5, r6, r7, lr}
/ (fcn) func_5e618 18
| Caller: ambe_58554
| func_5e618 ();
| 0x0805e618 b0f88630 ldrh.w r3, [r0, 0x86]
| 0x0805e61c 1ab2 sxth r2, r3
| 0x0805e61e 632a cmp r2, 0x63 ; 'c' ; 99
| ,=< 0x0805e620 dcbf itt le
| `-> 0x0805e622 0133 adds r3, 1
| 0x0805e624 a0f88630 strh.w r3, [r0, 0x86]
\ 0x0805e628 7047 bx lr
/ (fcn) func_5e62c 798
| Caller: func_5ea58
| func_5e62c ();
| 0x0805e62c 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0805e630 0c46 mov r4, r1
| 0x0805e632 bbb0 sub sp, 0xec
| 0x0805e634 8988 ldrh r1, [r1, 4]
| 0x0805e636 b0f90450 ldrsh.w r5, [r0, 4]
| 0x0805e63a 0991 str r1, [sp, 0x24]
| 0x0805e63c 0746 mov r7, r0
| 0x0805e63e 09b2 sxth r1, r1
| 0x0805e640 4ff40020 mov.w r0, 0x80000
| 0x0805e644 0e46 mov r6, r1
| 0x0805e646 0591 str r1, [sp, 0x14]
| 0x0805e648 0a92 str r2, [sp, 0x28]
| 0x0805e64a 9b46 mov fp, r3
| 0x0805e64c faf718f9 bl func_58880
| 0x0805e650 6d06 lsls r5, r5, 0x19
| 0x0805e652 00b2 sxth r0, r0
| 0x0805e654 2d14 asrs r5, r5, 0x10
| 0x0805e656 00fb05f5 mul r5, r0, r5
| 0x0805e65a 45f3d329 sbfx sb, r5, 0xb, 0x14
| 0x0805e65e b446 mov ip, r6
| 0x0805e660 1034 adds r4, 0x10
| 0x0805e662 ce46 mov lr, sb
| 0x0805e664 07f11008 add.w r8, r7, 0x10
| 0x0805e668 1eae add r6, sp, 0x78
| 0x0805e66a 0020 movs r0, 0
| ,=< 0x0805e66c 0ce0 b 0x805e688
| .--> 0x0805e66e b7f91030 ldrsh.w r3, [r7, 0x10]
| || 0x0805e672 1b04 lsls r3, r3, 0x10
| .---> 0x0805e674 1a14 asrs r2, r3, 0x10
| ||| 0x0805e676 bcf1010c subs.w ip, ip, 1
| ||| 0x0805e67a 3280 strh r2, [r6]
| ||| 0x0805e67c 00eba310 add.w r0, r0, r3, asr 6
| ||| 0x0805e680 06f10206 add.w r6, r6, 2
| ||| 0x0805e684 ce44 add lr, sb
| ,====< 0x0805e686 1bd0 beq 0x805e6c0
| |||`-> 0x0805e688 4fea2e42 asr.w r2, lr, 0x10
| ||| 0x0805e68c 372a cmp r2, 0x37 ; '7' ; 55
| |||,=< 0x0805e68e a8bf it ge
| |||`-> 0x0805e690 3722 movs r2, 0x37 ; '7' ; 55
| ||| 0x0805e692 02f10041 add.w r1, r2, -0x80000000
| ||| 0x0805e696 0139 subs r1, 1
| ||| 0x0805e698 08eb4103 add.w r3, r8, r1, lsl 1
| ||| 0x0805e69c cef34e05 ubfx r5, lr, 1, 0xf
| ||| 0x0805e6a0 002a cmp r2, 0
| ||`==< 0x0805e6a2 e4d0 beq 0x805e66e
| || 0x0805e6a4 38f91120 ldrsh.w r2, [r8, r1, lsl 1]
| || 0x0805e6a8 b3f90210 ldrsh.w r1, [r3, 2]
| || 0x0805e6ac 02fb05f3 mul r3, r2, r5
| || 0x0805e6b0 1204 lsls r2, r2, 0x10
| || 0x0805e6b2 01fb05f1 mul r1, r1, r5
| || 0x0805e6b6 a2eb4302 sub.w r2, r2, r3, lsl 1
| || 0x0805e6ba 02eb4103 add.w r3, r2, r1, lsl 1
| |`===< 0x0805e6be d9e7 b 0x805e674
| `----> 0x0805e6c0 059e ldr r6, [sp, 0x14]
| 0x0805e6c2 7106 lsls r1, r6, 0x19
| 0x0805e6c4 0914 asrs r1, r1, 0x10
| 0x0805e6c6 faf7dbf8 bl func_58880
| 0x0805e6ca 45f23335 movw r5, 0x5333
| 0x0805e6ce 00b2 sxth r0, r0
| 0x0805e6d0 05fb00f0 mul r0, r5, r0
| 0x0805e6d4 1eab add r3, sp, 0x78
| 0x0805e6d6 4042 rsbs r0, r0, 0
| 0x0805e6d8 4fea460e lsl.w lr, r6, 1
| 0x0805e6dc 40f31e00 sbfx r0, r0, 0, 0x1f
| 0x0805e6e0 03eb0e06 add.w r6, r3, lr
| 0x0805e6e4 1946 mov r1, r3
| 0x0805e6e6 00bf nop
| .-> 0x0805e6e8 b1f90020 ldrsh.w r2, [r1]
| | 0x0805e6ec 02fb0502 mla r2, r2, r5, r0
| | 0x0805e6f0 5300 lsls r3, r2, 1
| | 0x0805e6f2 b2eb630f cmp.w r2, r3, asr 1
| ,==< 0x0805e6f6 03d0 beq 0x805e700
| || 0x0805e6f8 d317 asrs r3, r2, 0x1f
| || 0x0805e6fa 83f00043 eor r3, r3, 0x80000000
| || 0x0805e6fe db43 mvns r3, r3
| `--> 0x0805e700 1b14 asrs r3, r3, 0x10
| | 0x0805e702 21f8023b strh r3, [r1], 2
| | 0x0805e706 b142 cmp r1, r6
| `=< 0x0805e708 eed1 bne 0x805e6e8
| 0x0805e70a 059a ldr r2, [sp, 0x14]
| 0x0805e70c c94b ldr r3, [0x0805ea34] ; [0x805ea34:4]=0x80916d0
| 0x0805e70e 093a subs r2, 9
| 0x0805e710 0df1480a add.w sl, sp, 0x48
| 0x0805e714 33f91210 ldrsh.w r1, [r3, r2, lsl 1]
| 0x0805e718 0df15809 add.w sb, sp, 0x58
| 0x0805e71c 5246 mov r2, sl
| .-> 0x0805e71e 01f00f03 and r3, r1, 0xf
| | 0x0805e722 0233 adds r3, 2
| | 0x0805e724 42f8043b str r3, [r2], 4
| | 0x0805e728 4a45 cmp r2, sb
| | 0x0805e72a 4fea2111 asr.w r1, r1, 4
| `=< 0x0805e72e f6d1 bne 0x805e71e
| 0x0805e730 459b ldr r3, [sp, 0x114]
| 0x0805e732 002b cmp r3, 0
| ,=< 0x0805e734 40f00e81 bne.w 0x805e954
| | 0x0805e738 0fab add r3, sp, 0x3c
| | 0x0805e73a 0793 str r3, [sp, 0x1c]
| | 0x0805e73c 13ab add r3, sp, 0x4c
| | 0x0805e73e 0d93 str r3, [sp, 0x34]
| | 0x0805e740 0eab add r3, sp, 0x38
| | 0x0805e742 04eb0e05 add.w r5, r4, lr
| | 0x0805e746 0893 str r3, [sp, 0x20]
| | 0x0805e748 449b ldr r3, [sp, 0x110]
| | 0x0805e74a bbf90e20 ldrsh.w r2, [fp, 0xe]
| | 0x0805e74e 4599 ldr r1, [sp, 0x114]
| | 0x0805e750 0293 str r3, [sp, 8]
| | 0x0805e752 4ff00308 mov.w r8, 3 ; 3
| | 0x0805e756 0923 movs r3, 9 ; 9
| | 0x0805e758 8de80801 stm.w sp, {r3, r8}
| | 0x0805e75c 0391 str r1, [sp, 0xc]
| | 0x0805e75e b64b ldr r3, [0x0805ea3a] ; [0x805ea38:4]=0x8090ad0
| | 0x0805e760 4146 mov r1, r8
| | 0x0805e762 0026 movs r6, 0
| | 0x0805e764 0df13a00 add.w r0, sp, 0x3a
| | 0x0805e768 adf83860 strh.w r6, [sp, 0x38]
| | 0x0805e76c 04f022fc bl func_62fb4
| | 0x0805e770 449b ldr r3, [sp, 0x110]
| | 0x0805e772 bbf91020 ldrsh.w r2, [fp, 0x10]
| | 0x0805e776 4599 ldr r1, [sp, 0x114]
| | 0x0805e778 0293 str r3, [sp, 8]
| | 0x0805e77a 0427 movs r7, 4 ; 4
| | 0x0805e77c 0723 movs r3, 7 ; 7
| | 0x0805e77e 8de88800 stm.w sp, {r3, r7}
| | 0x0805e782 0391 str r1, [sp, 0xc]
| | 0x0805e784 ad4b ldr r3, [0x0805ea3c] ; [0x805ea3c:4]=0x80906d0
| | 0x0805e786 3946 mov r1, r7
| | 0x0805e788 10a8 add r0, sp, 0x40
| | 0x0805e78a 04f013fc bl func_62fb4
| | 0x0805e78e 0522 movs r2, 5 ; 5
| | 0x0805e790 ab4b ldr r3, [0x0805ea40] ; [0x805ea40:4]=0x80905d0
| | 0x0805e792 dff8c0e2 ldr.w lr, [0x0805ea5a] ; [0x805ea58:4]=0x43f0e92d
| | 0x0805e796 ab48 ldr r0, [0x0805ea46] ; [0x805ea44:4]=0x80904d0
| | 0x0805e798 ab49 ldr r1, [0x0805ea48] ; [0x805ea48:4]=0x8090490
| | 0x0805e79a 1a92 str r2, [sp, 0x68]
| | 0x0805e79c 9446 mov ip, r2
| | 0x0805e79e 1aaa add r2, sp, 0x68
| | 0x0805e7a0 1b97 str r7, [sp, 0x6c]
| | 0x0805e7a2 1c97 str r7, [sp, 0x70]
| | 0x0805e7a4 cdf87480 str.w r8, [sp, 0x74]
| | 0x0805e7a8 0697 str r7, [sp, 0x18]
| | 0x0805e7aa 0bf1120b add.w fp, fp, 0x12
| | 0x0805e7ae 1693 str r3, [sp, 0x58]
| | 0x0805e7b0 cdf85ce0 str.w lr, [sp, 0x5c]
| | 0x0805e7b4 1890 str r0, [sp, 0x60]
| | 0x0805e7b6 1991 str r1, [sp, 0x64]
| | 0x0805e7b8 c846 mov r8, sb
| | 0x0805e7ba 2746 mov r7, r4
| | 0x0805e7bc 0b94 str r4, [sp, 0x2c]
| | 0x0805e7be 0c95 str r5, [sp, 0x30]
| | 0x0805e7c0 0492 str r2, [sp, 0x10]
| .--> 0x0805e7c2 5af82640 ldr.w r4, [sl, r6, lsl 2]
| || 0x0805e7c6 3bf902eb ldrsh lr, [fp], 2
| || 0x0805e7ca a11e subs r1, r4, 2
| || 0x0805e7cc 0029 cmp r1, 0
| || 0x0805e7ce 07f10400 add.w r0, r7, 4
| || 0x0805e7d2 7246 mov r2, lr
| ,===< 0x0805e7d4 18dd ble 0x805e808
| ||| 0x0805e7d6 069d ldr r5, [sp, 0x18]
| ||| 0x0805e7d8 0195 str r5, [sp, 4]
| ||| 0x0805e7da 449d ldr r5, [sp, 0x110]
| ||| 0x0805e7dc 0295 str r5, [sp, 8]
| ||| 0x0805e7de 0429 cmp r1, 4 ; 4
| ||| 0x0805e7e0 459d ldr r5, [sp, 0x114]
| ||| 0x0805e7e2 cdf800c0 str.w ip, [sp]
| ||| 0x0805e7e6 0395 str r5, [sp, 0xc]
| ,====< 0x0805e7e8 a8bf it ge
| `----> 0x0805e7ea 0421 movs r1, 4 ; 4
| ||| 0x0805e7ec 04f0e2fb bl func_62fb4
| ||| 0x0805e7f0 0136 adds r6, 1
| ||| 0x0805e7f2 042e cmp r6, 4 ; 4
| ||| 0x0805e7f4 07eb4407 add.w r7, r7, r4, lsl 1
| ,====< 0x0805e7f8 14d0 beq 0x805e824
| .-----> 0x0805e7fa 049a ldr r2, [sp, 0x10]
| ||||| 0x0805e7fc 58f8043f ldr r3, [r8, 4]!
| ||||| 0x0805e800 52f804cf ldr ip, [r2, 4]!
| ||||| 0x0805e804 0492 str r2, [sp, 0x10]
| |||`==< 0x0805e806 dce7 b 0x805e7c2
| ||`---> 0x0805e808 459b ldr r3, [sp, 0x114]
| || | 0x0805e80a 4498 ldr r0, [sp, 0x110]
| || | 0x0805e80c 7146 mov r1, lr
| || | 0x0805e80e 0022 movs r2, 0
| || | 0x0805e810 002b cmp r3, 0
| || ,==< 0x0805e812 00f09a80 beq.w 0x805e94a
| || || 0x0805e816 0136 adds r6, 1
| || || 0x0805e818 fff718fe bl func_5e44c
| || || 0x0805e81c 042e cmp r6, 4 ; 4
| || || 0x0805e81e 07eb4407 add.w r7, r7, r4, lsl 1
| `=====< 0x0805e822 ead1 bne 0x805e7fa
| `----> 0x0805e824 0821 movs r1, 8 ; 8
| || 0x0805e826 0a46 mov r2, r1
| || 0x0805e828 0898 ldr r0, [sp, 0x20]
| || 0x0805e82a 0b9c ldr r4, [sp, 0x2c]
| || 0x0805e82c 0c9d ldr r5, [sp, 0x30]
| || 0x0805e82e 04f0d7fc bl func_631e0
| || 0x0805e832 0799 ldr r1, [sp, 0x1c]
| || 0x0805e834 0d9e ldr r6, [sp, 0x34]
| || 0x0805e836 45f68220 movw r0, 0x5a82
| .---> 0x0805e83a 31f9043c ldrsh r3, [r1, -0x4]
| ||| 0x0805e83e 31f9022c ldrsh r2, [r1, -0x2]
| ||| 0x0805e842 df03 lsls r7, r3, 0xf
| ||| 0x0805e844 d303 lsls r3, r2, 0xf
| ||| 0x0805e846 fa1a subs r2, r7, r3
| ||| 0x0805e848 1214 asrs r2, r2, 0x10
| ||| 0x0805e84a 00fb02f2 mul r2, r0, r2
| ||| 0x0805e84e 3b44 add r3, r7
| ||| 0x0805e850 d213 asrs r2, r2, 0xf
| ||| 0x0805e852 1b14 asrs r3, r3, 0x10
| ||| 0x0805e854 21f8022c strh r2, [r1, -0x2]
| ||| 0x0805e858 21f8043c strh r3, [r1, -0x4]
| ||| 0x0805e85c 0431 adds r1, 4
| ||| 0x0805e85e b142 cmp r1, r6
| `===< 0x0805e860 ebd1 bne 0x805e83a
| || 0x0805e862 079f ldr r7, [sp, 0x1c]
| || 0x0805e864 2646 mov r6, r4
| || 0x0805e866 d046 mov r8, sl
| .---> 0x0805e868 37f8042c ldrh r2, [r7, -0x4]
| ||| 0x0805e86c 58f8041b ldr r1, [r8], 4
| ||| 0x0805e870 37f8023c ldrh r3, [r7, -0x2]
| ||| 0x0805e874 3280 strh r2, [r6]
| ||| 0x0805e876 7380 strh r3, [r6, 2]
| ||| 0x0805e878 3046 mov r0, r6
| ||| 0x0805e87a 0622 movs r2, 6 ; 6
| ||| 0x0805e87c 06eb4106 add.w r6, r6, r1, lsl 1
| ||| 0x0805e880 04f0aefc bl func_631e0
| ||| 0x0805e884 c845 cmp r8, sb
| ||| 0x0805e886 07f10407 add.w r7, r7, 4
| `===< 0x0805e88a edd1 bne 0x805e868
| || 0x0805e88c 0f21 movs r1, 0xf ; 15
| || 0x0805e88e 0598 ldr r0, [sp, 0x14]
| || 0x0805e890 0522 movs r2, 5 ; 5
| || 0x0805e892 faf7f5f9 bl func_58c80
| || 0x0805e896 0a9b ldr r3, [sp, 0x28]
| || 0x0805e898 089e ldr r6, [sp, 0x20]
| || 0x0805e89a 181a subs r0, r3, r0
| || 0x0805e89c bdf82430 ldrh.w r3, [sp, 0x24]
| || 0x0805e8a0 13fb00f0 smulbb r0, r3, r0
| || 0x0805e8a4 4000 lsls r0, r0, 1
| || 0x0805e8a6 0021 movs r1, 0
| .---> 0x0805e8a8 36f92120 ldrsh.w r2, [r6, r1, lsl 2]
| ||| 0x0805e8ac 5af82130 ldr.w r3, [sl, r1, lsl 2]
| ||| 0x0805e8b0 0131 adds r1, 1
| ||| 0x0805e8b2 03fb02f3 mul r3, r3, r2
| ||| 0x0805e8b6 0429 cmp r1, 4 ; 4
| ||| 0x0805e8b8 a0eb4300 sub.w r0, r0, r3, lsl 1
| `===< 0x0805e8bc f4d1 bne 0x805e8a8
| || 0x0805e8be 0599 ldr r1, [sp, 0x14]
| || 0x0805e8c0 f9f7deff bl func_58880
| || 0x0805e8c4 0004 lsls r0, r0, 0x10
| || 0x0805e8c6 4010 asrs r0, r0, 1
| || 0x0805e8c8 2946 mov r1, r5
| || 0x0805e8ca 2646 mov r6, r4
| .---> 0x0805e8cc b6f90020 ldrsh.w r2, [r6]
| ||| 0x0805e8d0 00ebc232 add.w r2, r0, r2, lsl 15
| ||| 0x0805e8d4 5300 lsls r3, r2, 1
| ||| 0x0805e8d6 b2eb630f cmp.w r2, r3, asr 1
| ,====< 0x0805e8da 03d0 beq 0x805e8e4
| |||| 0x0805e8dc d317 asrs r3, r2, 0x1f
| |||| 0x0805e8de 83f00043 eor r3, r3, 0x80000000
| |||| 0x0805e8e2 db43 mvns r3, r3
| `----> 0x0805e8e4 1b14 asrs r3, r3, 0x10
| ||| 0x0805e8e6 26f8023b strh r3, [r6], 2
| ||| 0x0805e8ea ae42 cmp r6, r5
| `===< 0x0805e8ec eed1 bne 0x805e8cc
| || 0x0805e8ee 574f ldr r7, [0x0805ea4e] ; [0x805ea4c:4]=0xffff8800
| || 0x0805e8f0 1ea8 add r0, sp, 0x78
| || 0x0805e8f2 47f2ff76 movw r6, 0x77ff
| || 0x0805e8f6 00bf nop
| .---> 0x0805e8f8 30f9023b ldrsh r3, [r0], 2
| ||| 0x0805e8fc b4f90020 ldrsh.w r2, [r4]
| ||| 0x0805e900 db03 lsls r3, r3, 0xf
| ||| 0x0805e902 03ebc232 add.w r2, r3, r2, lsl 15
| ||| 0x0805e906 5300 lsls r3, r2, 1
| ||| 0x0805e908 b2eb630f cmp.w r2, r3, asr 1
| ,====< 0x0805e90c 03d0 beq 0x805e916
| |||| 0x0805e90e d317 asrs r3, r2, 0x1f
| |||| 0x0805e910 83f00043 eor r3, r3, 0x80000000
| |||| 0x0805e914 db43 mvns r3, r3
| `----> 0x0805e916 1b14 asrs r3, r3, 0x10
| ||| 0x0805e918 bb42 cmp r3, r7
| ,====< 0x0805e91a b8bf it lt
| `----> 0x0805e91c 3b46 mov r3, r7
| ||| 0x0805e91e b342 cmp r3, r6
| ,====< 0x0805e920 a8bf it ge
| `----> 0x0805e922 3346 mov r3, r6
| ||| 0x0805e924 9bb2 uxth r3, r3
| ||| 0x0805e926 24f8023b strh r3, [r4], 2
| ||| 0x0805e92a ac42 cmp r4, r5
| `===< 0x0805e92c e4d1 bne 0x805e8f8
| || 0x0805e92e 059a ldr r2, [sp, 0x14]
| || 0x0805e930 d2f13802 rsbs.w r2, r2, 0x38
| ,===< 0x0805e934 06d0 beq 0x805e944
| ||| 0x0805e936 04eb4204 add.w r4, r4, r2, lsl 1
| ||| 0x0805e93a 00bf nop
| .----> 0x0805e93c 21f8023b strh r3, [r1], 2
| |||| 0x0805e940 a142 cmp r1, r4
| `====< 0x0805e942 fbd1 bne 0x805e93c
| `---> 0x0805e944 3bb0 add sp, 0xec
\ || 0x0805e946 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_5ea58 84
| Caller: func_5763c
| func_5ea58 ();
| 0x0805ea58 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x0805ea5c 0c46 mov r4, r1
| 0x0805ea5e 0d46 mov r5, r1
| 0x0805ea60 87b0 sub sp, 0x1c
| 0x0805ea62 35f9101b ldrsh r1, [r5], 0x10
| 0x0805ea66 b4f904e0 ldrsh.w lr, [r4, 4]
| 0x0805ea6a ddf83880 ldr.w r8, [sp, 0x38]
| 0x0805ea6e 1646 mov r6, r2
| 0x0805ea70 0746 mov r7, r0
| 0x0805ea72 b2f90c20 ldrsh.w r2, [r2, 0xc]
| 0x0805ea76 0192 str r2, [sp, 4]
| 0x0805ea78 8430 adds r0, 0x84
| 0x0805ea7a 9946 mov sb, r3
| 0x0805ea7c 0293 str r3, [sp, 8]
| 0x0805ea7e 2a46 mov r2, r5
| 0x0805ea80 7346 mov r3, lr
| 0x0805ea82 0090 str r0, [sp]
| 0x0805ea84 cdf80c80 str.w r8, [sp, 0xc]
| 0x0805ea88 0df11600 add.w r0, sp, 0x16
| 0x0805ea8c 04f0f2fb bl func_63274
| 0x0805ea90 bdf91620 ldrsh.w r2, [sp, 0x16]
| 0x0805ea94 cdf80090 str.w sb, [sp]
| 0x0805ea98 cdf80480 str.w r8, [sp, 4]
| 0x0805ea9c 3846 mov r0, r7
| 0x0805ea9e 2146 mov r1, r4
| 0x0805eaa0 3346 mov r3, r6
| 0x0805eaa2 fff7c3fd bl func_5e62c
| 0x0805eaa6 07b0 add sp, 0x1c
\ 0x0805eaa8 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_5eaac 888
| Caller: func_5763c
| func_5eaac ();
| 0x0805eaac 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x0805eab0 e0b0 sub sp, 0x180
| 0x0805eab2 0029 cmp r1, 0
| ,=< 0x0805eab4 40f05182 bne.w 0x805ef5a
| | 0x0805eab8 b2f90460 ldrsh.w r6, [r2, 4]
| | 0x0805eabc 002e cmp r6, 0
| ,==< 0x0805eabe 0ddd ble 0x805eadc
| || 0x0805eac0 06f10046 add.w r6, r6, -0x80000000
| || 0x0805eac4 013e subs r6, 1
| || 0x0805eac6 00eb4606 add.w r6, r0, r6, lsl 1
| || 0x0805eaca 831e subs r3, r0, 2
| || 0x0805eacc adf10204 sub.w r4, sp, 2
| .---> 0x0805ead0 33f8025f ldrh r5, [r3, 2]!
| ||| 0x0805ead4 24f8025f strh r5, [r4, 2]!
| ||| 0x0805ead8 b342 cmp r3, r6
| `===< 0x0805eada f9d1 bne 0x805ead0
| `--> 0x0805eadc 6e46 mov r6, sp
| | 0x0805eade 6c46 mov r4, sp
| | 0x0805eae0 0546 mov r5, r0
| | 0x0805eae2 af1e subs r7, r5, 2
| | 0x0805eae4 04f10803 add.w r3, r4, 8
| .--> 0x0805eae8 34f802eb ldrh lr, [r4], 2
| || 0x0805eaec 27f802ef strh lr, [r7, 2]!
| || 0x0805eaf0 9c42 cmp r4, r3
| `==< 0x0805eaf2 f9d1 bne 0x805eae8
| | 0x0805eaf4 0835 adds r5, 8
| | 0x0805eaf6 b2f90a40 ldrsh.w r4, [r2, 0xa]
| | 0x0805eafa 0029 cmp r1, 0
| ,==< 0x0805eafc 00f02a82 beq.w 0x805ef54
| || 0x0805eb00 06eb4405 add.w r5, r6, r4, lsl 1
| || 0x0805eb04 a5f1020e sub.w lr, r5, 2
| || 0x0805eb08 03f10807 add.w r7, r3, 8
| .---> 0x0805eb0c 33f802cb ldrh ip, [r3], 2
| ||| 0x0805eb10 2ef802cf strh ip, [lr, 2]!
| ||| 0x0805eb14 bb42 cmp r3, r7
| `===< 0x0805eb16 f9d1 bne 0x805eb0c
| || 0x0805eb18 b2f90830 ldrsh.w r3, [r2, 8]
| || 0x0805eb1c 0835 adds r5, 8
| || 0x0805eb1e 1c44 add r4, r3
| || 0x0805eb20 0029 cmp r1, 0
| ,===< 0x0805eb22 00f01482 beq.w 0x805ef4e
| ||| 0x0805eb26 06eb4405 add.w r5, r6, r4, lsl 1
| ||| 0x0805eb2a a5f1020e sub.w lr, r5, 2
| ||| 0x0805eb2e 07f10803 add.w r3, r7, 8
| .----> 0x0805eb32 37f802cb ldrh ip, [r7], 2
| |||| 0x0805eb36 2ef802cf strh ip, [lr, 2]!
| |||| 0x0805eb3a 9f42 cmp r7, r3
| `====< 0x0805eb3c f9d1 bne 0x805eb32
| ||| 0x0805eb3e 0835 adds r5, 8
| ||| 0x0805eb40 0029 cmp r1, 0
| ,====< 0x0805eb42 00f0fe81 beq.w 0x805ef42
| |||| 0x0805eb46 b2f90c50 ldrsh.w r5, [r2, 0xc]
| |||| 0x0805eb4a 2c44 add r4, r5
| |||| 0x0805eb4c 06eb4405 add.w r5, r6, r4, lsl 1
| |||| 0x0805eb50 a5f1020e sub.w lr, r5, 2
| |||| 0x0805eb54 03f11007 add.w r7, r3, 0x10
| .-----> 0x0805eb58 33f802cb ldrh ip, [r3], 2
| ||||| 0x0805eb5c 2ef802cf strh ip, [lr, 2]!
| ||||| 0x0805eb60 bb42 cmp r3, r7
| `=====< 0x0805eb62 f9d1 bne 0x805eb58
| |||| 0x0805eb64 b2f90e30 ldrsh.w r3, [r2, 0xe]
| |||| 0x0805eb68 1035 adds r5, 0x10
| |||| 0x0805eb6a 1c44 add r4, r3
| |||| 0x0805eb6c 0029 cmp r1, 0
| ,=====< 0x0805eb6e 00f0e581 beq.w 0x805ef3c
| ||||| 0x0805eb72 06eb4405 add.w r5, r6, r4, lsl 1
| ||||| 0x0805eb76 a5f1020e sub.w lr, r5, 2
| ||||| 0x0805eb7a 07f10803 add.w r3, r7, 8
| .------> 0x0805eb7e 37f802cb ldrh ip, [r7], 2
| |||||| 0x0805eb82 2ef802cf strh ip, [lr, 2]!
| |||||| 0x0805eb86 9f42 cmp r7, r3
| `======< 0x0805eb88 f9d1 bne 0x805eb7e
| ||||| 0x0805eb8a 0835 adds r5, 8
| ||||| 0x0805eb8c 0029 cmp r1, 0
| ,======< 0x0805eb8e 00f0cf81 beq.w 0x805ef30
| |||||| 0x0805eb92 b2f91050 ldrsh.w r5, [r2, 0x10]
| |||||| 0x0805eb96 2c44 add r4, r5
| |||||| 0x0805eb98 06eb4405 add.w r5, r6, r4, lsl 1
| |||||| 0x0805eb9c a5f1020e sub.w lr, r5, 2
| |||||| 0x0805eba0 03f10807 add.w r7, r3, 8
| .-------> 0x0805eba4 33f802cb ldrh ip, [r3], 2
| ||||||| 0x0805eba8 2ef802cf strh ip, [lr, 2]!
| ||||||| 0x0805ebac bb42 cmp r3, r7
| `=======< 0x0805ebae f9d1 bne 0x805eba4
| |||||| 0x0805ebb0 b2f91230 ldrsh.w r3, [r2, 0x12]
| |||||| 0x0805ebb4 0835 adds r5, 8
| |||||| 0x0805ebb6 1c44 add r4, r3
| |||||| 0x0805ebb8 0029 cmp r1, 0
| ,=======< 0x0805ebba 00f0b681 beq.w 0x805ef2a
| ||||||| 0x0805ebbe 06eb4405 add.w r5, r6, r4, lsl 1
| ||||||| 0x0805ebc2 a5f1020e sub.w lr, r5, 2
| ||||||| 0x0805ebc6 bb1d adds r3, r7, 6
| --------> 0x0805ebc8 37f802cb ldrh ip, [r7], 2
| ||||||| 0x0805ebcc 2ef802cf strh ip, [lr, 2]!
| ||||||| 0x0805ebd0 9f42 cmp r7, r3
| ========< 0x0805ebd2 f9d1 bne 0x805ebc8
| ||||||| 0x0805ebd4 0635 adds r5, 6
| ||||||| 0x0805ebd6 0029 cmp r1, 0
| ========< 0x0805ebd8 00f0a181 beq.w 0x805ef1e
| ||||||| 0x0805ebdc b2f91450 ldrsh.w r5, [r2, 0x14]
| ||||||| 0x0805ebe0 2c44 add r4, r5
| ||||||| 0x0805ebe2 06eb4405 add.w r5, r6, r4, lsl 1
| ||||||| 0x0805ebe6 a5f1020e sub.w lr, r5, 2
| ||||||| 0x0805ebea 03f10608 add.w r8, r3, 6
| ||||||| 0x0805ebee 1f46 mov r7, r3
| --------> 0x0805ebf0 37f802cb ldrh ip, [r7], 2
| ||||||| 0x0805ebf4 2ef802cf strh ip, [lr, 2]!
| ||||||| 0x0805ebf8 4745 cmp r7, r8
| ========< 0x0805ebfa f9d1 bne 0x805ebf0
| ||||||| 0x0805ebfc 0029 cmp r1, 0
| ========< 0x0805ebfe 00f02b81 beq.w 0x805ee58
| ||||||| 0x0805ec02 b2f91650 ldrsh.w r5, [r2, 0x16]
| ||||||| 0x0805ec06 b2f808c0 ldrh.w ip, [r2, 8]
| ||||||| 0x0805ec0a 5789 ldrh r7, [r2, 0xa]
| ||||||| 0x0805ec0c b3f80680 ldrh.w r8, [r3, 6]
| ||||||| 0x0805ec10 2c44 add r4, r5
| ||||||| 0x0805ec12 60ad add r5, sp, 0x180
| ||||||| 0x0805ec14 05eb4404 add.w r4, r5, r4, lsl 1
| ||||||| 0x0805ec18 0ffa8cfe sxth.w lr, ip
| ||||||| 0x0805ec1c a4f5c074 sub.w r4, r4, 0x180
| ||||||| 0x0805ec20 3db2 sxth r5, r7
| ||||||| 0x0805ec22 aef1040e sub.w lr, lr, 4
| ||||||| 0x0805ec26 0435 adds r5, 4
| ||||||| 0x0805ec28 bef1000f cmp.w lr, 0
| ||||||| 0x0805ec2c a4f80080 strh.w r8, [r4]
| ||||||| 0x0805ec30 03f10803 add.w r3, r3, 8
| ||||||| 0x0805ec34 06eb4504 add.w r4, r6, r5, lsl 1
| ========< 0x0805ec38 0fdd ble 0x805ec5a
| ||||||| 0x0805ec3a 0025 movs r5, 0
| --------> 0x0805ec3c 0135 adds r5, 1
| ||||||| 0x0805ec3e 33f8027b ldrh r7, [r3], 2
| ||||||| 0x0805ec42 24f8027b strh r7, [r4], 2
| ||||||| 0x0805ec46 ae45 cmp lr, r5
| ========< 0x0805ec48 f8dc bgt 0x805ec3c
| ||||||| 0x0805ec4a 5789 ldrh r7, [r2, 0xa]
| ||||||| 0x0805ec4c 0029 cmp r1, 0
| ========< 0x0805ec4e 00f0e980 beq.w 0x805ee24
| ||||||| 0x0805ec52 3db2 sxth r5, r7
| ||||||| 0x0805ec54 b2f808c0 ldrh.w ip, [r2, 8]
| ||||||| 0x0805ec58 0435 adds r5, 4
| --------> 0x0805ec5a b2f90ce0 ldrsh.w lr, [r2, 0xc]
| ||||||| 0x0805ec5e aef1040e sub.w lr, lr, 4
| ||||||| 0x0805ec62 05fa8cfc sxtah ip, r5, ip
| ||||||| 0x0805ec66 bef1000f cmp.w lr, 0
| ||||||| 0x0805ec6a 06eb4c04 add.w r4, r6, ip, lsl 1
| ========< 0x0805ec6e 0cdd ble 0x805ec8a
| ||||||| 0x0805ec70 0025 movs r5, 0
| ||||||| 0x0805ec72 00bf nop
| --------> 0x0805ec74 0135 adds r5, 1
| ||||||| 0x0805ec76 33f8027b ldrh r7, [r3], 2
| ||||||| 0x0805ec7a 24f8027b strh r7, [r4], 2
| ||||||| 0x0805ec7e ae45 cmp lr, r5
| ========< 0x0805ec80 f8dc bgt 0x805ec74
| ||||||| 0x0805ec82 5789 ldrh r7, [r2, 0xa]
| ||||||| 0x0805ec84 0029 cmp r1, 0
| ========< 0x0805ec86 00f0dc80 beq.w 0x805ee42
| --------> 0x0805ec8a 3fb2 sxth r7, r7
| ||||||| 0x0805ec8c a7f1040e sub.w lr, r7, 4
| ||||||| 0x0805ec90 bef1000f cmp.w lr, 0
| ========< 0x0805ec94 0fdd ble 0x805ecb6
| ||||||| 0x0805ec96 02ac add r4, sp, 8
| ||||||| 0x0805ec98 0025 movs r5, 0
| ||||||| 0x0805ec9a 00bf nop
| --------> 0x0805ec9c 0135 adds r5, 1
| ||||||| 0x0805ec9e 33f8027b ldrh r7, [r3], 2
| ||||||| 0x0805eca2 24f8027b strh r7, [r4], 2
| ||||||| 0x0805eca6 ae45 cmp lr, r5
| ========< 0x0805eca8 f8dc bgt 0x805ec9c
| ||||||| 0x0805ecaa 0029 cmp r1, 0
| ========< 0x0805ecac 40f05981 bne.w 0x805ef62
| ||||||| 0x0805ecb0 b2f90a70 ldrsh.w r7, [r2, 0xa]
| ||||||| 0x0805ecb4 2346 mov r3, r4
| --------> 0x0805ecb6 b2f90840 ldrsh.w r4, [r2, 8]
| ||||||| 0x0805ecba b2f90cc0 ldrsh.w ip, [r2, 0xc]
| ||||||| 0x0805ecbe b2f90e50 ldrsh.w r5, [r2, 0xe]
| ||||||| 0x0805ecc2 b2f910e0 ldrsh.w lr, [r2, 0x10]
| ||||||| 0x0805ecc6 2744 add r7, r4
| ||||||| 0x0805ecc8 6744 add r7, ip
| ||||||| 0x0805ecca 07eb050c add.w ip, r7, r5
| ||||||| 0x0805ecce 0cf10404 add.w r4, ip, 4
| ||||||| 0x0805ecd2 06eb4404 add.w r4, r6, r4, lsl 1
| ||||||| 0x0805ecd6 aef1040e sub.w lr, lr, 4
| ||||||| 0x0805ecda 0029 cmp r1, 0
| ========< 0x0805ecdc 00f0d980 beq.w 0x805ee92
| ||||||| 0x0805ece0 bef1000f cmp.w lr, 0
| ========< 0x0805ece4 40f34081 ble.w 0x805ef68
| ||||||| 0x0805ece8 1d46 mov r5, r3
| ||||||| 0x0805ecea 2346 mov r3, r4
| ||||||| 0x0805ecec 2c46 mov r4, r5
| ||||||| 0x0805ecee 0025 movs r5, 0
| --------> 0x0805ecf0 0135 adds r5, 1
| ||||||| 0x0805ecf2 34f8027b ldrh r7, [r4], 2
| ||||||| 0x0805ecf6 23f8027b strh r7, [r3], 2
| ||||||| 0x0805ecfa ae45 cmp lr, r5
| ========< 0x0805ecfc f8dc bgt 0x805ecf0
| ||||||| 0x0805ecfe b2f90e70 ldrsh.w r7, [r2, 0xe]
| ||||||| 0x0805ed02 3d46 mov r5, r7
| ||||||| 0x0805ed04 0029 cmp r1, 0
| ========< 0x0805ed06 00f0ca80 beq.w 0x805ee9e
| ||||||| 0x0805ed0a 0cf10803 add.w r3, ip, 8
| ||||||| 0x0805ed0e a5f1080e sub.w lr, r5, 8
| ||||||| 0x0805ed12 db1b subs r3, r3, r7
| ||||||| 0x0805ed14 bef1000f cmp.w lr, 0
| ||||||| 0x0805ed18 06eb4303 add.w r3, r6, r3, lsl 1
| ========< 0x0805ed1c 0add ble 0x805ed34
| ||||||| 0x0805ed1e 0025 movs r5, 0
| --------> 0x0805ed20 0135 adds r5, 1
| ||||||| 0x0805ed22 34f8027b ldrh r7, [r4], 2
| ||||||| 0x0805ed26 23f8027b strh r7, [r3], 2
| ||||||| 0x0805ed2a ae45 cmp lr, r5
| ========< 0x0805ed2c f8dc bgt 0x805ed20
| ||||||| 0x0805ed2e 0029 cmp r1, 0
| ========< 0x0805ed30 00f0c080 beq.w 0x805eeb4
| --------> 0x0805ed34 b2f91030 ldrsh.w r3, [r2, 0x10]
| ||||||| 0x0805ed38 b2f91250 ldrsh.w r5, [r2, 0x12]
| ||||||| 0x0805ed3c 9c44 add ip, r3
| ||||||| 0x0805ed3e a5f1040e sub.w lr, r5, 4
| ||||||| 0x0805ed42 0cf10403 add.w r3, ip, 4
| ||||||| 0x0805ed46 bef1000f cmp.w lr, 0
| ||||||| 0x0805ed4a 06eb4303 add.w r3, r6, r3, lsl 1
| ========< 0x0805ed4e 0ddd ble 0x805ed6c
| ||||||| 0x0805ed50 0025 movs r5, 0
| ||||||| 0x0805ed52 00bf nop
| --------> 0x0805ed54 0135 adds r5, 1
| ||||||| 0x0805ed56 34f8027b ldrh r7, [r4], 2
| ||||||| 0x0805ed5a 23f8027b strh r7, [r3], 2
| ||||||| 0x0805ed5e ae45 cmp lr, r5
| ========< 0x0805ed60 f8dc bgt 0x805ed54
| ||||||| 0x0805ed62 b2f91250 ldrsh.w r5, [r2, 0x12]
| ||||||| 0x0805ed66 0029 cmp r1, 0
| ========< 0x0805ed68 00f0b380 beq.w 0x805eed2
| --------> 0x0805ed6c b2f91470 ldrsh.w r7, [r2, 0x14]
| ||||||| 0x0805ed70 ac44 add ip, r5
| ||||||| 0x0805ed72 a7f1030e sub.w lr, r7, 3
| ||||||| 0x0805ed76 0cf10303 add.w r3, ip, 3
| ||||||| 0x0805ed7a bef1000f cmp.w lr, 0
| ||||||| 0x0805ed7e 06eb4303 add.w r3, r6, r3, lsl 1
| ========< 0x0805ed82 0ddd ble 0x805eda0
| ||||||| 0x0805ed84 0025 movs r5, 0
| ||||||| 0x0805ed86 00bf nop
| --------> 0x0805ed88 0135 adds r5, 1
| ||||||| 0x0805ed8a 34f8027b ldrh r7, [r4], 2
| ||||||| 0x0805ed8e 23f8027b strh r7, [r3], 2
| ||||||| 0x0805ed92 ae45 cmp lr, r5
| ========< 0x0805ed94 f8dc bgt 0x805ed88
| ||||||| 0x0805ed96 b2f91470 ldrsh.w r7, [r2, 0x14]
| ||||||| 0x0805ed9a 0029 cmp r1, 0
| ========< 0x0805ed9c 00f0a680 beq.w 0x805eeec
| --------> 0x0805eda0 b2f91650 ldrsh.w r5, [r2, 0x16]
| ||||||| 0x0805eda4 bc44 add ip, r7
| ||||||| 0x0805eda6 a5f1030e sub.w lr, r5, 3
| ||||||| 0x0805edaa 0cf10303 add.w r3, ip, 3
| ||||||| 0x0805edae bef1000f cmp.w lr, 0
| ||||||| 0x0805edb2 06eb4303 add.w r3, r6, r3, lsl 1
| ========< 0x0805edb6 0ddd ble 0x805edd4
| ||||||| 0x0805edb8 0025 movs r5, 0
| ||||||| 0x0805edba 00bf nop
| --------> 0x0805edbc 0135 adds r5, 1
| ||||||| 0x0805edbe 34f8027b ldrh r7, [r4], 2
| ||||||| 0x0805edc2 23f8027b strh r7, [r3], 2
| ||||||| 0x0805edc6 ae45 cmp lr, r5
| ========< 0x0805edc8 f8dc bgt 0x805edbc
| ||||||| 0x0805edca b2f91650 ldrsh.w r5, [r2, 0x16]
| ||||||| 0x0805edce 0029 cmp r1, 0
| ========< 0x0805edd0 00f09980 beq.w 0x805ef06
| --------> 0x0805edd4 b2f91870 ldrsh.w r7, [r2, 0x18]
| ||||||| 0x0805edd8 05eb0c03 add.w r3, r5, ip
| ||||||| 0x0805eddc 013f subs r7, 1
| ||||||| 0x0805edde 0133 adds r3, 1
| ||||||| 0x0805ede0 002f cmp r7, 0
| ||||||| 0x0805ede2 06eb4303 add.w r3, r6, r3, lsl 1
| ========< 0x0805ede6 09dd ble 0x805edfc
| ||||||| 0x0805ede8 023b subs r3, 2
| ||||||| 0x0805edea 0025 movs r5, 0
| --------> 0x0805edec 0135 adds r5, 1
| ||||||| 0x0805edee 34f8026b ldrh r6, [r4], 2
| ||||||| 0x0805edf2 23f8026f strh r6, [r3, 2]!
| ||||||| 0x0805edf6 af42 cmp r7, r5
| ========< 0x0805edf8 f8dc bgt 0x805edec
| ========< 0x0805edfa 81b1 cbz r1, 0x805ee1e
| --------> 0x0805edfc b2f90430 ldrsh.w r3, [r2, 4]
| ||||||| 0x0805ee00 002b cmp r3, 0
| ========< 0x0805ee02 0cdd ble 0x805ee1e
| ||||||| 0x0805ee04 0238 subs r0, 2
| ||||||| 0x0805ee06 adf10201 sub.w r1, sp, 2
| ||||||| 0x0805ee0a 0023 movs r3, 0
| --------> 0x0805ee0c 31f8024f ldrh r4, [r1, 2]!
| ||||||| 0x0805ee10 20f8024f strh r4, [r0, 2]!
| ||||||| 0x0805ee14 b2f90440 ldrsh.w r4, [r2, 4]
| ||||||| 0x0805ee18 0133 adds r3, 1
| ||||||| 0x0805ee1a 9c42 cmp r4, r3
| ========< 0x0805ee1c f6dc bgt 0x805ee0c
| --------> 0x0805ee1e 60b0 add sp, 0x180
\ ||||||| 0x0805ee20 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) func_5f844 118
| Caller: ambe_58110
| func_5f844 ();
| 0x0805f844 2de9f047 push.w {r4, r5, r6, r7, r8, sb, sl, lr}
| 0x0805f848 5600 lsls r6, r2, 1
| 0x0805f84a 1546 mov r5, r2
| 0x0805f84c dff874e0 ldr.w lr, [0x0805f8c8] ; [0x805f8c8:4]=0xb089b5f0
| 0x0805f850 1b4a ldr r2, [0x0805f8c0] ; [0x805f8c0:4]=0xffff8000
| 0x0805f852 0f46 mov r7, r1
| 0x0805f854 8419 adds r4, r0, r6
| 0x0805f856 47f2ff71 movw r1, 0x77ff
| 0x0805f85a 00bf nop
| .-> 0x0805f85c b0f90030 ldrsh.w r3, [r0]
| | 0x0805f860 7345 cmp r3, lr
| ,==< 0x0805f862 b8bf it lt
| `--> 0x0805f864 7346 mov r3, lr
| | 0x0805f866 8b42 cmp r3, r1
| ,==< 0x0805f868 a8bf it ge
| `--> 0x0805f86a 0b46 mov r3, r1
| | 0x0805f86c 20f8023b strh r3, [r0], 2
| | 0x0805f870 9a42 cmp r2, r3
| ,==< 0x0805f872 b8bf it lt
| `--> 0x0805f874 1a46 mov r2, r3
| | 0x0805f876 a042 cmp r0, r4
| `=< 0x0805f878 f0d1 bne 0x805f85c
| 0x0805f87a 4fea0248 lsl.w r8, r2, 0x10
| 0x0805f87e 4feae828 asr.w r8, r8, 0xb
| 0x0805f882 08f58038 add.w r8, r8, 0x10000
| 0x0805f886 841b subs r4, r0, r6
| 0x0805f888 4fea2848 asr.w r8, r8, 0x10
| 0x0805f88c a246 mov sl, r4
| 0x0805f88e a946 mov sb, r5
| .-> 0x0805f890 baf90000 ldrsh.w r0, [sl]
| | 0x0805f894 0421 movs r1, 4 ; 4
| | 0x0805f896 4246 mov r2, r8
| | 0x0805f898 f9f772fa bl func_58d80
| | 0x0805f89c b9f10109 subs.w sb, sb, 1
| | 0x0805f8a0 2af8020b strh r0, [sl], 2
| `=< 0x0805f8a4 f4d1 bne 0x805f890
| 0x0805f8a6 a8f10f03 sub.w r3, r8, 0xf
| 0x0805f8aa c5f13802 rsb.w r2, r5, 0x38
| 0x0805f8ae 3b60 str r3, [r7]
| 0x0805f8b0 a019 adds r0, r4, r6
| 0x0805f8b2 4946 mov r1, sb
| 0x0805f8b4 12b2 sxth r2, r2
\ 0x0805f8b6 bde8f047 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}
/ (fcn) func_5f994 1320
| Caller: ambe_58110
| func_5f994 ();
| 0x0805f994 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0805f998 adf5477d sub.w sp, sp, 0x31c
| 0x0805f99c 8029 cmp r1, 0x80 ; 128
| 0x0805f99e 0b92 str r2, [sp, 0x2c]
| 0x0805f9a0 b2f95221 ldrsh.w r2, [r2, 0x152]
| 0x0805f9a4 0492 str r2, [sp, 0x10]
| 0x0805f9a6 bdf94023 ldrsh.w r2, [sp, 0x340]
| 0x0805f9aa 0391 str r1, [sp, 0xc]
| 0x0805f9ac 9a46 mov sl, r3
| 0x0805f9ae 8346 mov fp, r0
| 0x0805f9b0 1592 str r2, [sp, 0x54]
| 0x0805f9b2 0b46 mov r3, r1
| ,=< 0x0805f9b4 40f3a382 ble.w 0x805fefe
| | 0x0805f9b8 0821 movs r1, 8 ; 8
| | 0x0805f9ba 0120 movs r0, 1 ; 1
| | 0x0805f9bc 1c46 mov r4, r3
| | 0x0805f9be 00bf nop
| .--> 0x0805f9c0 00fa01f3 lsl.w r3, r0, r1
| || 0x0805f9c4 0122 movs r2, 1 ; 1
| || 0x0805f9c6 a342 cmp r3, r4
| || 0x0805f9c8 1144 add r1, r2
| `==< 0x0805f9ca f9db blt 0x805f9c0
| | 0x0805f9cc 02fa01f3 lsl.w r3, r2, r1
| | 0x0805f9d0 1191 str r1, [sp, 0x44]
| | 0x0805f9d2 0d93 str r3, [sp, 0x34]
| | 0x0805f9d4 039b ldr r3, [sp, 0xc]
| | 0x0805f9d6 be4f ldr r7, [0x0805fcd2] ; [0x805fcd0:4]=0x8096a74
| | 0x0805f9d8 1a04 lsls r2, r3, 0x10
| | 0x0805f9da 1346 mov r3, r2
| | 0x0805f9dc 4ff4a000 mov.w r0, 0x500000
| | 0x0805f9e0 002b cmp r3, 0
| ,==< 0x0805f9e2 b8bf it lt
| `--> 0x0805f9e4 db43 mvns r3, r3
| ,==< 0x0805f9e6 1cbf itt ne
| `--> 0x0805f9e8 b3fa83f3 clz r3, r3
| | 0x0805f9ec 013b subs r3, 1
| | 0x0805f9ee 1bb2 sxth r3, r3
| | 0x0805f9f0 46ac add r4, sp, 0x118
| | 0x0805f9f2 9a40 lsls r2, r3
| | 0x0805f9f4 0146 mov r1, r0
| | 0x0805f9f6 0029 cmp r1, 0
| ,==< 0x0805f9f8 b8bf it lt
| `--> 0x0805f9fa c943 mvns r1, r1
| ,==< 0x0805f9fc 1cbf itt ne
| `--> 0x0805f9fe b1fa81f1 clz r1, r1
| | 0x0805fa02 0139 subs r1, 1
| | 0x0805fa04 09b2 sxth r1, r1
| | 0x0805fa06 1214 asrs r2, r2, 0x10
| | 0x0805fa08 5b42 rsbs r3, r3, 0
| | 0x0805fa0a 8840 lsls r0, r1
| | 0x0805fa0c 0094 str r4, [sp]
| | 0x0805fa0e 4942 rsbs r1, r1, 0
| | 0x0805fa10 0894 str r4, [sp, 0x20]
| | 0x0805fa12 f9f775f8 bl func_58b00
| | 0x0805fa16 2368 ldr r3, [r4]
| | 0x0805fa18 0e2b cmp r3, 0xe ; 14
| ,==< 0x0805fa1a ccbf ite gt
| `--> 0x0805fa1c 0f3b subs r3, 0xf
| | 0x0805fa1e c3f10f03 rsb.w r3, r3, 0xf
| | 0x0805fa22 4fea0040 lsl.w r0, r0, 0x10
| ,==< 0x0805fa26 ccbf ite gt
| `--> 0x0805fa28 9840 lsls r0, r3
| | 0x0805fa2a 1841 asrs r0, r3
| | 0x0805fa2c 1bab add r3, sp, 0x6c
| | 0x0805fa2e 1a46 mov r2, r3
| | 0x0805fa30 0c93 str r3, [sp, 0x30]
| | 0x0805fa32 3b88 ldrh r3, [r7]
| | 0x0805fa34 1380 strh r3, [r2]
| | 0x0805fa36 039b ldr r3, [sp, 0xc]
| | 0x0805fa38 012b cmp r3, 1 ; 1
| ,==< 0x0805fa3a 20dd ble 0x805fa7e
| || 0x0805fa3c 0399 ldr r1, [sp, 0xc]
| || 0x0805fa3e 0646 mov r6, r0
| || 0x0805fa40 0125 movs r5, 1 ; 1
| || 0x0805fa42 07f1020e add.w lr, r7, 2
| || 0x0805fa46 00bf nop
| .---> 0x0805fa48 3214 asrs r2, r6, 0x10
| ||| 0x0805fa4a c6f34e0c ubfx ip, r6, 1, 0xf
| ||| 0x0805fa4e 37f91230 ldrsh.w r3, [r7, r2, lsl 1]
| ||| 0x0805fa52 3ef91240 ldrsh.w r4, [lr, r2, lsl 1]
| ||| 0x0805fa56 03fb0cf2 mul r2, r3, ip
| ||| 0x0805fa5a 5200 lsls r2, r2, 1
| ||| 0x0805fa5c c2eb0343 rsb r3, r2, r3, lsl 16
| ||| 0x0805fa60 c6aa add r2, sp, 0x318
| ||| 0x0805fa62 02eb4502 add.w r2, r2, r5, lsl 1
| ||| 0x0805fa66 04fb0cf4 mul r4, r4, ip
| ||| 0x0805fa6a 03eb4403 add.w r3, r3, r4, lsl 1
| ||| 0x0805fa6e a2f52b72 sub.w r2, r2, 0x2ac
| ||| 0x0805fa72 0135 adds r5, 1
| ||| 0x0805fa74 1b14 asrs r3, r3, 0x10
| ||| 0x0805fa76 a942 cmp r1, r5
| ||| 0x0805fa78 0644 add r6, r0
| ||| 0x0805fa7a 1380 strh r3, [r2]
| `===< 0x0805fa7c e4dc bgt 0x805fa48
| `--> 0x0805fa7e 0c98 ldr r0, [sp, 0x30]
| | 0x0805fa80 039d ldr r5, [sp, 0xc]
| | 0x0805fa82 baf90030 ldrsh.w r3, [sl]
| | 0x0805fa86 b7f8a020 ldrh.w r2, [r7, 0xa0]
| | 0x0805fa8a 20f81520 strh.w r2, [r0, r5, lsl 1]
| | 0x0805fa8e 032b cmp r3, 3 ; 3
| | 0x0805fa90 4fea4502 lsl.w r2, r5, 1
| | 0x0805fa94 1492 str r2, [sp, 0x50]
| | 0x0805fa96 1044 add r0, r2
| ,==< 0x0805fa98 00f01882 beq.w 0x805fecc
| || 0x0805fa9c 0b9b ldr r3, [sp, 0x2c]
| || 0x0805fa9e 991c adds r1, r3, 2
| || 0x0805faa0 039b ldr r3, [sp, 0xc]
| || 0x0805faa2 002b cmp r3, 0
| ,===< 0x0805faa4 40f30b81 ble.w 0x805fcbe
| ||| 0x0805faa8 1390 str r0, [sp, 0x4c]
| ||| 0x0805faaa 039e ldr r6, [sp, 0xc]
| ||| 0x0805faac 0898 ldr r0, [sp, 0x20]
| ||| 0x0805faae 0c9c ldr r4, [sp, 0x30]
| ||| 0x0805fab0 0a46 mov r2, r1
| ||| 0x0805fab2 00bf nop
| .----> 0x0805fab4 32f8025b ldrh r5, [r2], 2
| |||| 0x0805fab8 34f8023b ldrh r3, [r4], 2
| |||| 0x0805fabc 013e subs r6, 1
| |||| 0x0805fabe 15fb03f3 smulbb r3, r5, r3
| |||| 0x0805fac2 43f3cf33 sbfx r3, r3, 0xf, 0x10
| |||| 0x0805fac6 002e cmp r6, 0
| |||| 0x0805fac8 20f8023b strh r3, [r0], 2
| `====< 0x0805facc f2dc bgt 0x805fab4
| ||| 0x0805face 039b ldr r3, [sp, 0xc]
| ||| 0x0805fad0 c3f15403 rsb.w r3, r3, 0x54
| ||| 0x0805fad4 002b cmp r3, 0
| ||| 0x0805fad6 0f93 str r3, [sp, 0x3c]
| ,====< 0x0805fad8 09dd ble 0x805faee
| |||| 0x0805fada 00bf nop
| ..-----> 0x0805fadc 32f8025b ldrh r5, [r2], 2
| |||||| 0x0805fae0 21f8025b strh r5, [r1], 2
| |||||| 0x0805fae4 013b subs r3, 1
| `======< 0x0805fae6 f9d1 bne 0x805fadc
| ||||| 0x0805fae8 039b ldr r3, [sp, 0xc]
| ||||| 0x0805faea 002b cmp r3, 0
| ,======< 0x0805faec 21dd ble 0x805fb32
| ||`----> 0x0805faee 039d ldr r5, [sp, 0xc]
| || ||| 0x0805faf0 ddf82ce0 ldr.w lr, [sp, 0x2c]
| || ||| 0x0805faf4 ad27 movs r7, 0xad ; 173
| || ||| 0x0805faf6 43f21966 movw r6, 0x3619
| || ||| 0x0805fafa 00bf nop
| ||.----> 0x0805fafc bef80030 ldrh.w r3, [lr]
| |||||| 0x0805fb00 013d subs r5, 1
| |||||| 0x0805fb02 13fb0763 smlabb r3, r3, r7, r6
| |||||| 0x0805fb06 9bb2 uxth r3, r3
| |||||| 0x0805fb08 002d cmp r5, 0
| |||||| 0x0805fb0a aef80030 strh.w r3, [lr]
| |||||| 0x0805fb0e 21f8023b strh r3, [r1], 2
| ||`====< 0x0805fb12 f3dc bgt 0x805fafc
| || ||| 0x0805fb14 039d ldr r5, [sp, 0xc]
| || ||| 0x0805fb16 a83a subs r2, 0xa8
| ||.----> 0x0805fb18 32f8021b ldrh r1, [r2], 2
| |||||| 0x0805fb1c 34f80239 ldrh r3, [r4], -2
| |||||| 0x0805fb20 013d subs r5, 1
| |||||| 0x0805fb22 11fb03f3 smulbb r3, r1, r3
| |||||| 0x0805fb26 43f3cf33 sbfx r3, r3, 0xf, 0x10
| |||||| 0x0805fb2a 002d cmp r5, 0
| |||||| 0x0805fb2c 20f8023b strh r3, [r0], 2
| ||`====< 0x0805fb30 f2dc bgt 0x805fb18
| `------> 0x0805fb32 039b ldr r3, [sp, 0xc]
| | ||| 0x0805fb34 0d9c ldr r4, [sp, 0x34]
| | ||| 0x0805fb36 c3ebc332 rsb r2, r3, r3, lsl 15
| | ||| 0x0805fb3a 04eb4202 add.w r2, r4, r2, lsl 1
| | ||| 0x0805fb3e 12b2 sxth r2, r2
| | ||| 0x0805fb40 0021 movs r1, 0
| | ||| 0x0805fb42 f5f7a7ff bl ambe_55a94
| | ||| 0x0805fb46 0021 movs r1, 0
| | ||| 0x0805fb48 0b46 mov r3, r1
| | ||| 0x0805fb4a 119a ldr r2, [sp, 0x44]
| | ||| 0x0805fb4c 0898 ldr r0, [sp, 0x20]
| | ||| 0x0805fb4e faf71ffb bl func_5a190
| | ||| 0x0805fb52 5546 mov r5, sl
| | ||| 0x0805fb54 0746 mov r7, r0
| | ||| 0x0805fb56 baf80400 ldrh.w r0, [sl, 4]
| | ||| 0x0805fb5a 35f9103b ldrsh r3, [r5], 0x10
| | ||| 0x0805fb5e daf88010 ldr.w r1, [sl, 0x80]
| | ||| 0x0805fb62 b4f5007f cmp.w r4, 0x200 ; 512
| | ||| 0x0805fb66 2246 mov r2, r4
| | ||| 0x0805fb68 0ffa80fe sxth.w lr, r0
| |,====< 0x0805fb6c 0cbf ite eq
| |`----> 0x0805fb6e f222 movs r2, 0xf2 ; 242
| | ||| 0x0805fb70 7922 movs r2, 0x79 ; 'y' ; 121
| | ||| 0x0805fb72 a3f10203 sub.w r3, r3, 2
| | ||| 0x0805fb76 1692 str r2, [sp, 0x58]
| | ||| 0x0805fb78 b3fa83f3 clz r3, r3
| | ||| 0x0805fb7c 6210 asrs r2, r4, 1
| | ||| 0x0805fb7e 5b09 lsrs r3, r3, 5
| | ||| 0x0805fb80 bef1000f cmp.w lr, 0
| | ||| 0x0805fb84 0693 str r3, [sp, 0x18]
| | ||| 0x0805fb86 0292 str r2, [sp, 8]
| | ||| 0x0805fb88 2b46 mov r3, r5
| |,====< 0x0805fb8a 40f3dd81 ble.w 0x805ff48
| ||||| 0x0805fb8e 05eb4e06 add.w r6, r5, lr, lsl 1
| ||||| 0x0805fb92 4ff00008 mov.w r8, 0
| ||||| 0x0805fb96 00bf nop
| .------> 0x0805fb98 31f9024b ldrsh r4, [r1], 2
| |||||| 0x0805fb9c 33f8022b ldrh r2, [r3], 2
| ,=======< 0x0805fba0 1cb9 cbnz r4, 0x805fbaa
| ||||||| 0x0805fba2 1204 lsls r2, r2, 0x10
| ||||||| 0x0805fba4 9045 cmp r8, r2
| ========< 0x0805fba6 b8bf it lt
| --------> 0x0805fba8 9046 mov r8, r2
| `-------> 0x0805fbaa b342 cmp r3, r6
| `======< 0x0805fbac f4d1 bne 0x805fb98
| ||||| 0x0805fbae 4346 mov r3, r8
| ||||| 0x0805fbb0 002b cmp r3, 0
| ,======< 0x0805fbb2 1cbf itt ne
| `------> 0x0805fbb4 b3fa83f3 clz r3, r3
| ||||| 0x0805fbb8 013b subs r3, 1
| ||||| 0x0805fbba 0e93 str r3, [sp, 0x38]
| ||||| 0x0805fbbc 5b42 rsbs r3, r3, 0
| ||||| 0x0805fbbe 1293 str r3, [sp, 0x48]
| ||||| 0x0805fbc0 069b ldr r3, [sp, 0x18]
| ||||| 0x0805fbc2 002b cmp r3, 0
| ,======< 0x0805fbc4 40f08680 bne.w 0x805fcd4
| |||||| 0x0805fbc8 039b ldr r3, [sp, 0xc]
| |||||| 0x0805fbca 0efb03f3 mul r3, lr, r3
| |||||| 0x0805fbce 9bb2 uxth r3, r3
| |||||| 0x0805fbd0 44f25b30 movw r0, 0x435b
| |||||| 0x0805fbd4 13fb00f0 smulbb r0, r3, r0
| |||||| 0x0805fbd8 18ab add r3, sp, 0x60
| |||||| 0x0805fbda 1e46 mov r6, r3
| |||||| 0x0805fbdc 0993 str r3, [sp, 0x24]
| |||||| 0x0805fbde 4000 lsls r0, r0, 1
| |||||| 0x0805fbe0 1123 movs r3, 0x11 ; 17
| |||||| 0x0805fbe2 3146 mov r1, r6
| |||||| 0x0805fbe4 3360 str r3, [r6]
| |||||| 0x0805fbe6 f9f7ebf8 bl func_58dc0
| |||||| 0x0805fbea 3368 ldr r3, [r6]
| |||||| 0x0805fbec 020c lsrs r2, r0, 0x10
| |||||| 0x0805fbee 0a92 str r2, [sp, 0x28]
| .-------> 0x0805fbf0 0d99 ldr r1, [sp, 0x34]
| ||||||| 0x0805fbf2 baf90c20 ldrsh.w r2, [sl, 0xc]
| ||||||| 0x0805fbf6 0898 ldr r0, [sp, 0x20]
| ||||||| 0x0805fbf8 01fb02f2 mul r2, r1, r2
| ||||||| 0x0805fbfc 42f3db02 sbfx r2, r2, 3, 0x1c
| ||||||| 0x0805fc00 02f58039 add.w sb, r2, 0x10000
| ||||||| 0x0805fc04 0592 str r2, [sp, 0x14]
| ||||||| 0x0805fc06 0e9a ldr r2, [sp, 0x38]
| ||||||| 0x0805fc08 4fea6944 asr.w r4, sb, 0x11
| ||||||| 0x0805fc0c 9b1a subs r3, r3, r2
| ||||||| 0x0805fc0e 0233 adds r3, 2
| ||||||| 0x0805fc10 6200 lsls r2, r4, 1
| ||||||| 0x0805fc12 0021 movs r1, 0
| ||||||| 0x0805fc14 0793 str r3, [sp, 0x1c]
| ||||||| 0x0805fc16 f5f73dff bl ambe_55a94
| ||||||| 0x0805fc1a baf90430 ldrsh.w r3, [sl, 4]
| ||||||| 0x0805fc1e 002b cmp r3, 0
| ||||||| 0x0805fc20 4fea6909 asr.w sb, sb, 1
| ||||||| 0x0805fc24 24b2 sxth r4, r4
| ||||||| 0x0805fc26 0746 mov r7, r0
| ========< 0x0805fc28 40f38c81 ble.w 0x805ff44
| ||||||| 0x0805fc2c cdf85cb0 str.w fp, [sp, 0x5c]
| ||||||| 0x0805fc30 a846 mov r8, r5
| ||||||| 0x0805fc32 0026 movs r6, 0
| ||||||| 0x0805fc34 ddf838b0 ldr.w fp, [sp, 0x38]
| ========< 0x0805fc38 2be0 b 0x805fc92
| --------> 0x0805fc3a 069b ldr r3, [sp, 0x18]
| ||||||| 0x0805fc3c 002b cmp r3, 0
| ========< 0x0805fc3e 62d0 beq 0x805fd06
| ||||||| 0x0805fc40 099b ldr r3, [sp, 0x24]
| ||||||| 0x0805fc42 bdf92800 ldrsh.w r0, [sp, 0x28]
| ||||||| 0x0805fc46 1a68 ldr r2, [r3]
| ||||||| 0x0805fc48 4fea440c lsl.w ip, r4, 1
| --------> 0x0805fc4c b8f90030 ldrsh.w r3, [r8]
| ||||||| 0x0805fc50 bbf1000f cmp.w fp, 0
| ||||||| 0x0805fc54 00fb03f3 mul r3, r0, r3
| ========< 0x0805fc58 b8bf it lt
| --------> 0x0805fc5a 1299 ldr r1, [sp, 0x48]
| ||||||| 0x0805fc5c 4fea4303 lsl.w r3, r3, 1
| ||||||| 0x0805fc60 cbeb0202 rsb r2, fp, r2
| ========< 0x0805fc64 b4bf ite lt
| --------> 0x0805fc66 0b41 asrs r3, r1
| ||||||| 0x0805fc68 03fa0bf3 lsl.w r3, r3, fp
| ||||||| 0x0805fc6c 0092 str r2, [sp]
| ||||||| 0x0805fc6e 079a ldr r2, [sp, 0x1c]
| ||||||| 0x0805fc70 0192 str r2, [sp, 4]
| ||||||| 0x0805fc72 1b14 asrs r3, r3, 0x10
| ||||||| 0x0805fc74 6246 mov r2, ip
| ||||||| 0x0805fc76 3846 mov r0, r7
| ||||||| 0x0805fc78 3946 mov r1, r7
| ||||||| 0x0805fc7a faf79dfb bl func_5a3b8
| --------> 0x0805fc7e baf90430 ldrsh.w r3, [sl, 4]
| ||||||| 0x0805fc82 0136 adds r6, 1
| ||||||| 0x0805fc84 9e42 cmp r6, r3
| ||||||| 0x0805fc86 07eb8407 add.w r7, r7, r4, lsl 2
| ||||||| 0x0805fc8a 08f10208 add.w r8, r8, 2
| ||||||| 0x0805fc8e 2c46 mov r4, r5
| ========< 0x0805fc90 71da bge 0x805fd76
| --------> 0x0805fc92 059a ldr r2, [sp, 0x14]
| ||||||| 0x0805fc94 daf88030 ldr.w r3, [sl, 0x80]
| ||||||| 0x0805fc98 9144 add sb, r2
| ||||||| 0x0805fc9a 029a ldr r2, [sp, 8]
| ||||||| 0x0805fc9c 33f91630 ldrsh.w r3, [r3, r6, lsl 1]
| ||||||| 0x0805fca0 4fea2945 asr.w r5, sb, 0x10
| ||||||| 0x0805fca4 9542 cmp r5, r2
| ========< 0x0805fca6 a8bf it ge
| --------> 0x0805fca8 1546 mov r5, r2
| ||||||| 0x0805fcaa 2c1b subs r4, r5, r4
| ||||||| 0x0805fcac 002b cmp r3, 0
| ========< 0x0805fcae c4d0 beq 0x805fc3a
| ||||||| 0x0805fcb0 6200 lsls r2, r4, 1
| ||||||| 0x0805fcb2 12b2 sxth r2, r2
| ||||||| 0x0805fcb4 3846 mov r0, r7
| ||||||| 0x0805fcb6 0021 movs r1, 0
| ||||||| 0x0805fcb8 f5f7ecfe bl ambe_55a94
| ========< 0x0805fcbc dfe7 b 0x805fc7e
| ||||`---> 0x0805fcbe 039b ldr r3, [sp, 0xc]
| |||| || 0x0805fcc0 1390 str r0, [sp, 0x4c]
| |||| || 0x0805fcc2 c3f15403 rsb.w r3, r3, 0x54
| |||| || 0x0805fcc6 0f93 str r3, [sp, 0x3c]
| |||| || 0x0805fcc8 0a46 mov r2, r1
| |||| || 0x0805fcca 0898 ldr r0, [sp, 0x20]
| |||| || 0x0805fccc 0c9c ldr r4, [sp, 0x30]
| ||`=====< 0x0805fcce 05e7 b 0x805fadc
| || | || 0x0805fcd0 746a ldr r4, [r6, 0x24]
| || | || 0x0805fcd2 0908 lsrs r1, r1, 0x20
| |`------> 0x0805fcd4 44f25b33 movw r3, 0x435b
| | | || 0x0805fcd8 18ac add r4, sp, 0x60
| | | || 0x0805fcda 10fb03f0 smulbb r0, r0, r3
| | | || 0x0805fcde 4000 lsls r0, r0, 1
| | | || 0x0805fce0 1123 movs r3, 0x11 ; 17
| | | || 0x0805fce2 2146 mov r1, r4
| | | || 0x0805fce4 2360 str r3, [r4]
| | | || 0x0805fce6 0994 str r4, [sp, 0x24]
| | | || 0x0805fce8 f9f76af8 bl func_58dc0
| | | || 0x0805fcec 2368 ldr r3, [r4]
| | | || 0x0805fcee 45f2fa72 movw r2, 0x57fa
| | | || 0x0805fcf2 000c lsrs r0, r0, 0x10
| | | || 0x0805fcf4 0137 adds r7, 1
| | | || 0x0805fcf6 10fb02f0 smulbb r0, r0, r2
| | | || 0x0805fcfa 3b44 add r3, r7
| | | || 0x0805fcfc c0f3cf32 ubfx r2, r0, 0xf, 0x10
| | | || 0x0805fd00 0a92 str r2, [sp, 0x28]
| | | || 0x0805fd02 2360 str r3, [r4]
| `=======< 0x0805fd04 74e7 b 0x805fbf0
| --------> 0x0805fd06 4fea440c lsl.w ip, r4, 1
| | || 0x0805fd0a 6246 mov r2, ip
| | || 0x0805fd0c 3946 mov r1, r7
| | || 0x0805fd0e 19a8 add r0, sp, 0x64
| | || 0x0805fd10 cdf838c0 str.w ip, [sp, 0x38]
| | || 0x0805fd14 faf780fb bl func_5a418
| | || 0x0805fd18 0114 asrs r1, r0, 0x10
| | || 0x0805fd1a 0029 cmp r1, 0
| | || 0x0805fd1c ddf838c0 ldr.w ip, [sp, 0x38]
| |,===< 0x0805fd20 40f3d180 ble.w 0x805fec6
| |||| 0x0805fd24 2004 lsls r0, r4, 0x10
| |||| 0x0805fd26 b0fa80f3 clz r3, r0
| |||| 0x0805fd2a 5a1e subs r2, r3, 1
| |||| 0x0805fd2c 9040 lsls r0, r2
| |||| 0x0805fd2e b1eb204f cmp.w r1, r0, asr 16
| |||| 0x0805fd32 1aaa add r2, sp, 0x68
| ,=====< 0x0805fd34 40f3c280 ble.w 0x805febc
| ||||| 0x0805fd38 c3f11003 rsb.w r3, r3, 0x10
| ||||| 0x0805fd3c 1360 str r3, [r2]
| ||||| 0x0805fd3e cdf840c0 str.w ip, [sp, 0x40]
| ||||| 0x0805fd42 0e92 str r2, [sp, 0x38]
| ||||| 0x0805fd44 f8f79cfd bl func_58880
| ||||| 0x0805fd48 0e9a ldr r2, [sp, 0x38]
| ||||| 0x0805fd4a 1999 ldr r1, [sp, 0x64]
| ||||| 0x0805fd4c 1368 ldr r3, [r2]
| ||||| 0x0805fd4e 0004 lsls r0, r0, 0x10
| ||||| 0x0805fd50 5b1a subs r3, r3, r1
| ||||| 0x0805fd52 1146 mov r1, r2
| ||||| 0x0805fd54 1360 str r3, [r2]
| ||||| 0x0805fd56 f9f733f8 bl func_58dc0
| ||||| 0x0805fd5a bdf82830 ldrh.w r3, [sp, 0x28]
| ||||| 0x0805fd5e 0e9a ldr r2, [sp, 0x38]
| ||||| 0x0805fd60 ddf840c0 ldr.w ip, [sp, 0x40]
| ||||| 0x0805fd64 1268 ldr r2, [r2]
| ||||| 0x0805fd66 10fb23f0 smultb r0, r0, r3
| ||||| 0x0805fd6a 40f3cf30 sbfx r0, r0, 0xf, 0x10
| ||||| 0x0805fd6e 099b ldr r3, [sp, 0x24]
| ||||| 0x0805fd70 1b68 ldr r3, [r3]
| ||||| 0x0805fd72 1a44 add r2, r3
| ========< 0x0805fd74 6ae7 b 0x805fc4c
| --------> 0x0805fd76 ddf85cb0 ldr.w fp, [sp, 0x5c]
| ||||| 0x0805fd7a 029b ldr r3, [sp, 8]
| ||||| 0x0805fd7c 169a ldr r2, [sp, 0x58]
| ||||| 0x0805fd7e 0d9c ldr r4, [sp, 0x34]
| ||||| 0x0805fd80 5d1b subs r5, r3, r5
| ||||| 0x0805fd82 9a1a subs r2, r3, r2
| ||||| 0x0805fd84 9542 cmp r5, r2
| ,======< 0x0805fd86 b8bf it lt
| `------> 0x0805fd88 1546 mov r5, r2
| ||||| 0x0805fd8a a4eb4500 sub.w r0, r4, r5, lsl 1
| ||||| 0x0805fd8e 6a00 lsls r2, r5, 1
| ||||| 0x0805fd90 089d ldr r5, [sp, 0x20]
| ||||| 0x0805fd92 12b2 sxth r2, r2
| ||||| 0x0805fd94 0021 movs r1, 0
| ||||| 0x0805fd96 05eb4000 add.w r0, r5, r0, lsl 1
| ||||| 0x0805fd9a f5f77bfe bl ambe_55a94
| ||||| 0x0805fd9e 159a ldr r2, [sp, 0x54]
| ||||| 0x0805fda0 04fb02f2 mul r2, r4, r2
| ||||| 0x0805fda4 42f3cb42 sbfx r2, r2, 0x13, 0xc
| ||||| 0x0805fda8 5200 lsls r2, r2, 1
| ||||| 0x0805fdaa 0021 movs r1, 0
| ||||| 0x0805fdac 2846 mov r0, r5
| ||||| 0x0805fdae f5f771fe bl ambe_55a94
| ||||| 0x0805fdb2 daf88410 ldr.w r1, [sl, 0x84]
| ||||| 0x0805fdb6 079b ldr r3, [sp, 0x1c]
| ||||| 0x0805fdb8 119a ldr r2, [sp, 0x44]
| ||||| 0x0805fdba 0b44 add r3, r1
| ||||| 0x0805fdbc 1946 mov r1, r3
| ||||| 0x0805fdbe 2846 mov r0, r5
| ||||| 0x0805fdc0 0023 movs r3, 0
| ||||| 0x0805fdc2 faf7f7f9 bl func_5a1b4
| ||||| 0x0805fdc6 8646 mov lr, r0
| ||||| 0x0805fdc8 1ffa8ef3 uxth.w r3, lr
| ||||| 0x0805fdcc 1398 ldr r0, [sp, 0x4c]
| ||||| 0x0805fdce 0793 str r3, [sp, 0x1c]
| ||||| 0x0805fdd0 0b9b ldr r3, [sp, 0x2c]
| ||||| 0x0805fdd2 03f1aa01 add.w r1, r3, 0xaa
| ||||| 0x0805fdd6 039b ldr r3, [sp, 0xc]
| ||||| 0x0805fdd8 002b cmp r3, 0
| ,======< 0x0805fdda 40f38d80 ble.w 0x805fef8
| |||||| 0x0805fdde 049a ldr r2, [sp, 0x10]
| |||||| 0x0805fde0 0c9f ldr r7, [sp, 0x30]
| |||||| 0x0805fde2 089e ldr r6, [sp, 0x20]
| |||||| 0x0805fde4 0290 str r0, [sp, 8]
| |||||| 0x0805fde6 5b00 lsls r3, r3, 1
| |||||| 0x0805fde8 0993 str r3, [sp, 0x24]
| |||||| 0x0805fdea 01eb0308 add.w r8, r1, r3
| |||||| 0x0805fdee c2f10203 rsb.w r3, r2, 2
| |||||| 0x0805fdf2 0593 str r3, [sp, 0x14]
| |||||| 0x0805fdf4 cef10203 rsb.w r3, lr, 2
| |||||| 0x0805fdf8 951e subs r5, r2, 2
| |||||| 0x0805fdfa aef10204 sub.w r4, lr, 2
| |||||| 0x0805fdfe 0693 str r3, [sp, 0x18]
| ,=======< 0x0805fe00 20e0 b 0x805fe44
| --------> 0x0805fe02 059b ldr r3, [sp, 0x14]
| ||||||| 0x0805fe04 42fa03fc asr.w ip, r2, r3
| --------> 0x0805fe08 36f9029b ldrsh sb, [r6], 2
| ||||||| 0x0805fe0c 37f902ab ldrsh sl, [r7], 2
| ||||||| 0x0805fe10 0022 movs r2, 0
| ||||||| 0x0805fe12 0023 movs r3, 0
| ||||||| 0x0805fe14 bef1020f cmp.w lr, 2 ; 2
| ||||||| 0x0805fe18 89fb0a23 smull r2, r3, sb, sl
| ||||||| 0x0805fe1c 82fa82f2 qadd r2, r2, r2
| ||||||| 0x0805fe20 02fa04f3 lsl.w r3, r2, r4
| ||||||| 0x0805fe24 43fa04f9 asr.w sb, r3, r4
| ========< 0x0805fe28 27dc bgt 0x805fe7a
| ||||||| 0x0805fe2a 069b ldr r3, [sp, 0x18]
| ||||||| 0x0805fe2c 42fa03f3 asr.w r3, r2, r3
| --------> 0x0805fe30 4145 cmp r1, r8
| ||||||| 0x0805fe32 8cfa83fc qadd ip, r3, ip
| ||||||| 0x0805fe36 dbf80030 ldr.w r3, [fp]
| ||||||| 0x0805fe3a 8cfa83f3 qadd r3, r3, ip
| ||||||| 0x0805fe3e 4bf8043b str r3, [fp], 4
| ========< 0x0805fe42 21d0 beq 0x805fe88
| `-------> 0x0805fe44 0298 ldr r0, [sp, 8]
| |||||| 0x0805fe46 31f902cb ldrsh ip, [r1], 2
| |||||| 0x0805fe4a 30f90299 ldrsh sb, [r0], -2
| |||||| 0x0805fe4e 0290 str r0, [sp, 8]
| |||||| 0x0805fe50 0498 ldr r0, [sp, 0x10]
| |||||| 0x0805fe52 0022 movs r2, 0
| |||||| 0x0805fe54 0023 movs r3, 0
| |||||| 0x0805fe56 0228 cmp r0, 2 ; 2
| |||||| 0x0805fe58 8cfb0923 smull r2, r3, ip, sb
| |||||| 0x0805fe5c 82fa82f2 qadd r2, r2, r2
| |||||| 0x0805fe60 02fa05fc lsl.w ip, r2, r5
| |||||| 0x0805fe64 4cfa05f3 asr.w r3, ip, r5
| ========< 0x0805fe68 cbdd ble 0x805fe02
| |||||| 0x0805fe6a 9a42 cmp r2, r3
| ========< 0x0805fe6c ccd0 beq 0x805fe08
| |||||| 0x0805fe6e d217 asrs r2, r2, 0x1f
| |||||| 0x0805fe70 82f0004c eor ip, r2, 0x80000000
| |||||| 0x0805fe74 6fea0c0c mvn.w ip, ip
| ========< 0x0805fe78 c6e7 b 0x805fe08
| --------> 0x0805fe7a 4a45 cmp r2, sb
| ========< 0x0805fe7c d8d0 beq 0x805fe30
| |||||| 0x0805fe7e d217 asrs r2, r2, 0x1f
| |||||| 0x0805fe80 82f00043 eor r3, r2, 0x80000000
| |||||| 0x0805fe84 db43 mvns r3, r3
| ========< 0x0805fe86 d3e7 b 0x805fe30
| --------> 0x0805fe88 089b ldr r3, [sp, 0x20]
| |||||| 0x0805fe8a 099a ldr r2, [sp, 0x24]
| |||||| 0x0805fe8c 1344 add r3, r2
| |||||| 0x0805fe8e 1946 mov r1, r3
| |||||| 0x0805fe90 149b ldr r3, [sp, 0x50]
| |||||| 0x0805fe92 bdf90c20 ldrsh.w r2, [sp, 0xc]
| |||||| 0x0805fe96 c3eb0800 rsb r0, r3, r8
| |||||| 0x0805fe9a f5f7c7fd bl func_55a2c
| |||||| 0x0805fe9e bdf93c20 ldrsh.w r2, [sp, 0x3c]
| |||||| 0x0805fea2 4046 mov r0, r8
| |||||| 0x0805fea4 0021 movs r1, 0
| |||||| 0x0805fea6 f5f7f5fd bl ambe_55a94
| |||||| 0x0805feaa 0b9b ldr r3, [sp, 0x2c]
| |||||| 0x0805feac bdf81c20 ldrh.w r2, [sp, 0x1c]
| |||||| 0x0805feb0 a3f85221 strh.w r2, [r3, 0x152]
| |||||| 0x0805feb4 0df5477d add.w sp, sp, 0x31c
\ |||||| 0x0805feb8 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_5ff60 246
| Caller: func_601c4
| func_5ff60 ();
| 0x0805ff60 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0805ff64 87b0 sub sp, 0x1c
| 0x0805ff66 bdf94c40 ldrsh.w r4, [sp, 0x4c]
| 0x0805ff6a 109d ldr r5, [sp, 0x40]
| 0x0805ff6c bdf94860 ldrsh.w r6, [sp, 0x48]
| 0x0805ff70 2d68 ldr r5, [r5]
| 0x0805ff72 0395 str r5, [sp, 0xc]
| 0x0805ff74 002c cmp r4, 0
| 0x0805ff76 bdf944c0 ldrsh.w ip, [sp, 0x44]
| 0x0805ff7a 0196 str r6, [sp, 4]
| ,=< 0x0805ff7c 64dd ble 0x8060048
| | 0x0805ff7e 013c subs r4, 1
| | 0x0805ff80 9946 mov sb, r3
| | 0x0805ff82 a3b2 uxth r3, r4
| | 0x0805ff84 1c46 mov r4, r3
| | 0x0805ff86 0593 str r3, [sp, 0x14]
| | 0x0805ff88 3304 lsls r3, r6, 0x10
| | 0x0805ff8a 0293 str r3, [sp, 8]
| | 0x0805ff8c ccf10003 rsb.w r3, ip, 0
| | 0x0805ff90 4fea421a lsl.w sl, r2, 5
| | 0x0805ff94 05eb8408 add.w r8, r5, r4, lsl 2
| | 0x0805ff98 a5f1040e sub.w lr, r5, 4
| | 0x0805ff9c 0493 str r3, [sp, 0x10]
| | 0x0805ff9e 00bf nop
| .--> 0x0805ffa0 0668 ldr r6, [r0]
| || 0x0805ffa2 350c lsrs r5, r6, 0x10
| || 0x0805ffa4 ecb2 uxtb r4, r5
| || 0x0805ffa6 0134 adds r4, 1
| || 0x0805ffa8 01eb4407 add.w r7, r1, r4, lsl 1
| || 0x0805ffac 49f38f13 sbfx r3, sb, 6, 0x10
| || 0x0805ffb0 37f9027c ldrsh r7, [r7, -0x2]
| || 0x0805ffb4 31f91440 ldrsh.w r4, [r1, r4, lsl 1]
| || 0x0805ffb8 ff03 lsls r7, r7, 0xf
| || 0x0805ffba 1b04 lsls r3, r3, 0x10
| || 0x0805ffbc 9b11 asrs r3, r3, 6
| || 0x0805ffbe a6eb0545 sub.w r5, r6, r5, lsl 16
| || 0x0805ffc2 c7ebc434 rsb r4, r7, r4, lsl 15
| || 0x0805ffc6 002b cmp r3, 0
| || 0x0805ffc8 4fea2444 asr.w r4, r4, 0x10
| || 0x0805ffcc 45f34f05 sbfx r5, r5, 1, 0x10
| ,===< 0x0805ffd0 b8bf it lt
| `---> 0x0805ffd2 5b42 rsbs r3, r3, 0
| || 0x0805ffd4 04fb05f5 mul r5, r4, r5
| || 0x0805ffd8 019c ldr r4, [sp, 4]
| || 0x0805ffda 4fea234b asr.w fp, r3, 0x10
| || 0x0805ffde 5644 add r6, sl
| || 0x0805ffe0 0bf10102 add.w r2, fp, 1
| || 0x0805ffe4 9bb2 uxth r3, r3
| || 0x0805ffe6 0660 str r6, [r0]
| || 0x0805ffe8 07eb4505 add.w r5, r7, r5, lsl 1
| ,===< 0x0805ffec bcb1 cbz r4, 0x806001e
| ||| 0x0805ffee 1a4c ldr r4, [0x0806005a] ; [0x8060058:4]=0x8092330
| ||| 0x0805fff0 194e ldr r6, [0x08060058] ; [0x8060058:4]=0x8092330
| ||| 0x0805fff2 34f91b40 ldrsh.w r4, [r4, fp, lsl 1]
| ||| 0x0805fff6 36f91260 ldrsh.w r6, [r6, r2, lsl 1]
| ||| 0x0805fffa 03fb04f2 mul r2, r3, r4
| ||| 0x0805fffe c2eb0442 rsb r2, r2, r4, lsl 16
| ||| 0x08060002 06fb0322 mla r2, r6, r3, r2
| ||| 0x08060006 1214 asrs r2, r2, 0x10
| ||| 0x08060008 c2f50042 rsb.w r2, r2, 0x8000
| ||| 0x0806000c 42f34f02 sbfx r2, r2, 1, 0x10
| ||| 0x08060010 82fb0523 smull r2, r3, r2, r5
| ||| 0x08060014 029c ldr r4, [sp, 8]
| ||| 0x08060016 d50b lsrs r5, r2, 0xf
| ||| 0x08060018 a144 add sb, r4
| ||| 0x0806001a 45ea4345 orr.w r5, r5, r3, lsl 17
| `---> 0x0806001e bcf1000f cmp.w ip, 0
| || 0x08060022 5ef8042f ldr r2, [lr, 4]!
| ,===< 0x08060026 b6bf itet lt
| `---> 0x08060028 049b ldr r3, [sp, 0x10]
| || 0x0806002a 05fa0cf5 lsl.w r5, r5, ip
| || 0x0806002e 1d41 asrs r5, r3
| || 0x08060030 c645 cmp lr, r8
| || 0x08060032 85fa82f5 qadd r5, r2, r5
| || 0x08060036 cef80050 str.w r5, [lr]
| `==< 0x0806003a b1d1 bne 0x805ffa0
| | 0x0806003c 059b ldr r3, [sp, 0x14]
| | 0x0806003e 039a ldr r2, [sp, 0xc]
| | 0x08060040 0133 adds r3, 1
| | 0x08060042 02eb8303 add.w r3, r2, r3, lsl 2
| | 0x08060046 0393 str r3, [sp, 0xc]
| `-> 0x08060048 109b ldr r3, [sp, 0x40]
| 0x0806004a 1a46 mov r2, r3
| 0x0806004c 039b ldr r3, [sp, 0xc]
| 0x0806004e 1360 str r3, [r2]
| 0x08060050 07b0 add sp, 0x1c
\ 0x08060052 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_6005c 316
| Caller: func_6054c
| func_6005c ();
| 0x0806005c 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08060060 85b0 sub sp, 0x14
| 0x08060062 8de80c00 stm.w sp, {r2, r3}
| 0x08060066 119f ldr r7, [sp, 0x44]
| 0x08060068 129c ldr r4, [sp, 0x48]
| 0x0806006a ddf83880 ldr.w r8, [sp, 0x38]
| 0x0806006e ddf83cb0 ldr.w fp, [sp, 0x3c]
| 0x08060072 139e ldr r6, [sp, 0x4c]
| 0x08060074 0291 str r1, [sp, 8]
| 0x08060076 bc42 cmp r4, r7
| 0x08060078 8146 mov sb, r0
| ,=< 0x0806007a 80f29b80 bge.w 0x80601b4
| | 0x0806007e 6500 lsls r5, r4, 1
| | 0x08060080 08eb0502 add.w r2, r8, r5
| | 0x08060084 0beb0501 add.w r1, fp, r5
| | 0x08060088 08eb470e add.w lr, r8, r7, lsl 1
| | 0x0806008c 0023 movs r3, 0
| ,==< 0x0806008e 03e0 b 0x8060098
| .---> 0x08060090 7245 cmp r2, lr
| ||| 0x08060092 01f10201 add.w r1, r1, 2
| ,====< 0x08060096 0cd0 beq 0x80600b2
| .--`--> 0x08060098 32f9020b ldrsh r0, [r2], 2
| ||| | 0x0806009c 8642 cmp r6, r0
| ||`===< 0x0806009e f7d1 bne 0x8060090
| || | 0x080600a0 b1f90000 ldrsh.w r0, [r1]
| || | 0x080600a4 8342 cmp r3, r0
| || ,==< 0x080600a6 b8bf it lt
| || `--> 0x080600a8 0346 mov r3, r0
| || | 0x080600aa 7245 cmp r2, lr
| || | 0x080600ac 01f10201 add.w r1, r1, 2
| `=====< 0x080600b0 f2d1 bne 0x8060098
| `----> 0x080600b2 1b04 lsls r3, r3, 0x10
| | 0x080600b4 4846 mov r0, sb
| | 0x080600b6 0021 movs r1, 0
| | 0x080600b8 4ff48072 mov.w r2, 0x100 ; 256
| | 0x080600bc 0393 str r3, [sp, 0xc]
| | 0x080600be 4ff0000a mov.w sl, 0
| | 0x080600c2 f5f7e7fc bl ambe_55a94
| | 0x080600c6 039b ldr r3, [sp, 0xc]
| | 0x080600c8 dff8f4e0 ldr.w lr, [func_601c4] ; [0x80601c4:4]=0x4ff0e92d
| | 0x080600cc 002b cmp r3, 0
| ,==< 0x080600ce b8bf it lt
| `--> 0x080600d0 db43 mvns r3, r3
| ,==< 0x080600d2 1cbf itt ne
| `--> 0x080600d4 b3fa83f3 clz r3, r3
| | 0x080600d8 013b subs r3, 1
| | 0x080600da c3f1000c rsb.w ip, r3, 0
| ,==< 0x080600de 03e0 b 0x80600e8
| .---> 0x080600e0 0134 adds r4, 1
| ||| 0x080600e2 a742 cmp r7, r4
| ,====< 0x080600e4 40dd ble 0x8060168
| .-----> 0x080600e6 6500 lsls r5, r4, 1
| |||`--> 0x080600e8 38f90520 ldrsh.w r2, [r8, r5]
| ||| | 0x080600ec b242 cmp r2, r6
| ||`===< 0x080600ee f7d1 bne 0x80600e0
| || | 0x080600f0 019a ldr r2, [sp, 4]
| || | 0x080600f2 515f ldrsh r1, [r2, r5]
| || | 0x080600f4 009a ldr r2, [sp]
| || | 0x080600f6 0134 adds r4, 1
| || | 0x080600f8 04fb0211 mla r1, r4, r2, r1
| || | 0x080600fc 8902 lsls r1, r1, 0xa
| || | 0x080600fe 01f50041 add.w r1, r1, 0x8000
| || | 0x08060102 01f00042 and r2, r1, 0x80000000
| || | 0x08060106 c901 lsls r1, r1, 7
| || | 0x08060108 02eb5101 add.w r1, r2, r1, lsr 1
| || | 0x0806010c 8a11 asrs r2, r1, 6
| || ,==< 0x0806010e 43d4 bmi 0x8060198
| || || 0x08060110 120c lsrs r2, r2, 0x10
| || || 0x08060112 1204 lsls r2, r2, 0x10
| || || 0x08060114 c2f30842 ubfx r2, r2, 0x10, 9
| || || 0x08060118 3bf80500 ldrh.w r0, [fp, r5]
| || || 0x0806011c 3ef81210 ldrh.w r1, [lr, r2, lsl 1]
| || || 0x08060120 10fb01f1 smulbb r1, r0, r1
| || || 0x08060124 4900 lsls r1, r1, 1
| || || 0x08060126 002b cmp r3, 0
| ||,===< 0x08060128 acbf ite ge
| ||`---> 0x0806012a 9940 lsls r1, r3
| || || 0x0806012c 41fa0cf1 asr.w r1, r1, ip
| || || 0x08060130 1204 lsls r2, r2, 0x10
| || || 0x08060132 0914 asrs r1, r1, 0x10
| || || 0x08060134 02f1c072 add.w r2, r2, 0x1800000
| || || 0x08060138 29f82410 strh.w r1, [sb, r4, lsl 2]
| || || 0x0806013c 5d44 add r5, fp
| || || 0x0806013e c2f30842 ubfx r2, r2, 0x10, 9
| || || 0x08060142 2988 ldrh r1, [r5]
| || || 0x08060144 3ef81220 ldrh.w r2, [lr, r2, lsl 1]
| || || 0x08060148 11fb02f2 smulbb r2, r1, r2
| || || 0x0806014c 5200 lsls r2, r2, 1
| || || 0x0806014e 002b cmp r3, 0
| ||,===< 0x08060150 acbf ite ge
| ||`---> 0x08060152 9a40 lsls r2, r3
| || || 0x08060154 42fa0cf2 asr.w r2, r2, ip
| || || 0x08060158 09eb8401 add.w r1, sb, r4, lsl 2
| || || 0x0806015c 1214 asrs r2, r2, 0x10
| || || 0x0806015e a742 cmp r7, r4
| || || 0x08060160 4a80 strh r2, [r1, 2]
| || || 0x08060162 0af1010a add.w sl, sl, 1
| `=====< 0x08060166 bedc bgt 0x80600e6
| `----> 0x08060168 109b ldr r3, [sp, 0x40]
| || 0x0806016a 03f11701 add.w r1, r3, 0x17
| || 0x0806016e 6144 add r1, ip
| || 0x08060170 029b ldr r3, [sp, 8]
| || 0x08060172 89b2 uxth r1, r1
| || 0x08060174 1980 strh r1, [r3]
| || 0x08060176 baf1000f cmp.w sl, 0
| ,===< 0x0806017a 12d1 bne 0x80601a2
| ||| 0x0806017c 029a ldr r2, [sp, 8]
| ||| 0x0806017e 4ff6e073 movw r3, 0xffe0
| ||| 0x08060182 1380 strh r3, [r2]
| ||| 0x08060184 4ff0000a mov.w sl, 0
| ||| 0x08060188 b9f80030 ldrh.w r3, [sb]
| ||| 0x0806018c a9f80032 strh.w r3, [sb, 0x200]
| ||| 0x08060190 5046 mov r0, sl
| ||| 0x08060192 05b0 add sp, 0x14
\ ||| 0x08060194 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_601c4 374
| Caller: func_6054c
| func_601c4 ();
| 0x080601c4 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x080601c8 8bb0 sub sp, 0x2c ; ','
| 0x080601ca 1746 mov r7, r2
| 0x080601cc 0e2f cmp r7, 0xe ; 14
| 0x080601ce bdf95420 ldrsh.w r2, [sp, 0x54]
| 0x080601d2 0692 str r2, [sp, 0x18]
| 0x080601d4 4fea0144 lsl.w r4, r1, 0x10
| ,=< 0x080601d8 ccbf ite gt
| `-> 0x080601da a7f10f02 sub.w r2, r7, 0xf
| 0x080601de c7f10f02 rsb.w r2, r7, 0xf
| 0x080601e2 4fea0345 lsl.w r5, r3, 0x10
| ,=< 0x080601e6 ccbf ite gt
| `-> 0x080601e8 9440 lsls r4, r2
| 0x080601ea 1441 asrs r4, r2
| 0x080601ec 8846 mov r8, r1
| 0x080601ee 2b46 mov r3, r5
| 0x080601f0 002b cmp r3, 0
| ,=< 0x080601f2 b8bf it lt
| `-> 0x080601f4 db43 mvns r3, r3
| ,=< 0x080601f6 1cbf itt ne
| `-> 0x080601f8 b3fa83f3 clz r3, r3
| 0x080601fc 013b subs r3, 1
| 0x080601fe 19b2 sxth r1, r3
| 0x08060200 05fa01f2 lsl.w r2, r5, r1
| 0x08060204 0df12409 add.w sb, sp, 0x24
| 0x08060208 6ff00303 mvn r3, 3
| 0x0806020c 5b1a subs r3, r3, r1
| 0x0806020e 0590 str r0, [sp, 0x14]
| 0x08060210 1214 asrs r2, r2, 0x10
| 0x08060212 0121 movs r1, 1 ; 1
| 0x08060214 cdf80090 str.w sb, [sp]
| 0x08060218 4ff08040 mov.w r0, 0x40000000 ; io_TIM2
| 0x0806021c f8f770fc bl func_58b00
| 0x08060220 099b ldr r3, [sp, 0x24]
| 0x08060222 cdf80090 str.w sb, [sp]
| 0x08060226 0246 mov r2, r0
| 0x08060228 3946 mov r1, r7
| 0x0806022a 4046 mov r0, r8
| 0x0806022c f8f7a8fb bl func_58980
| 0x08060230 099b ldr r3, [sp, 0x24]
| 0x08060232 0e2b cmp r3, 0xe ; 14
| 0x08060234 4fea0040 lsl.w r0, r0, 0x10
| ,=< 0x08060238 cbbf itete gt
| `-> 0x0806023a 0f3b subs r3, 0xf
| 0x0806023c c3f10f03 rsb.w r3, r3, 0xf
| 0x08060240 9840 lsls r0, r3
| 0x08060242 1841 asrs r0, r3
| 0x08060244 0314 asrs r3, r0, 0x10
| 0x08060246 a62b cmp r3, 0xa6 ; 166
| 0x08060248 1f46 mov r7, r3
| 0x0806024a 4ff6ff76 movw r6, 0xffff
| ,=< 0x0806024e a8bf it ge
| `-> 0x08060250 a627 movs r7, 0xa6 ; 166
| 0x08060252 84fa86f6 qadd r6, r6, r4
| 0x08060256 3614 asrs r6, r6, 0x10
| 0x08060258 0ffa86fb sxth.w fp, r6
| 0x0806025c 962f cmp r7, 0x96 ; 150
| 0x0806025e 4fea0b4a lsl.w sl, fp, 0x10
| ,=< 0x08060262 07dc bgt 0x8060274
| | 0x08060264 07f11008 add.w r8, r7, 0x10
| | 0x08060268 b8f1000f cmp.w r8, 0
| ,==< 0x0806026c 04dc bgt 0x8060278
| || 0x0806026e 0bb0 add sp, 0x2c
| || 0x08060270 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
| |`-> 0x08060274 4ff0a608 mov.w r8, 0xa6 ; 166
| `--> 0x08060278 a0eb0340 sub.w r0, r0, r3, lsl 16
| 0x0806027c c4eb0a04 rsb r4, r4, sl
| 0x08060280 40f31000 sbfx r0, r0, 0, 0x11
| 0x08060284 44f34f04 sbfx r4, r4, 1, 0x10
| 0x08060288 2a14 asrs r2, r5, 0x10
| 0x0806028a 20f00100 bic r0, r0, 1
| 0x0806028e 2304 lsls r3, r4, 0x10
| 0x08060290 00f57021 add.w r1, r0, 0xf0000
| 0x08060294 04fb02f4 mul r4, r4, r2
| 0x08060298 bbf1000f cmp.w fp, 0
| 0x0806029c 0791 str r1, [sp, 0x1c]
| 0x0806029e 4feae333 asr.w r3, r3, 0xf
| 0x080602a2 44f39424 sbfx r4, r4, 0xa, 0x15
| 0x080602a6 91b2 uxth r1, r2
| ,=< 0x080602a8 49db blt 0x806033e
| | 0x080602aa 0894 str r4, [sp, 0x20]
| | 0x080602ac 4fea8b02 lsl.w r2, fp, 2
| | 0x080602b0 5e46 mov r6, fp
| | 0x080602b2 0698 ldr r0, [sp, 0x18]
| | 0x080602b4 a0f11004 sub.w r4, r0, 0x10
| | 0x080602b8 0598 ldr r0, [sp, 0x14]
| | 0x080602ba 0bf1100a add.w sl, fp, 0x10
| | 0x080602be 1044 add r0, r2
| | 0x080602c0 0246 mov r2, r0
| | 0x080602c2 c6eb0a00 rsb r0, r6, sl
| | 0x080602c6 a4b2 uxth r4, r4
| | 0x080602c8 0028 cmp r0, 0
| | 0x080602ca 0992 str r2, [sp, 0x24]
| | 0x080602cc 0ffa81fb sxth.w fp, r1
| | 0x080602d0 24b2 sxth r4, r4
| ,==< 0x080602d2 32dd ble 0x806033a
| || 0x080602d4 00b2 sxth r0, r0
| || 0x080602d6 0121 movs r1, 1 ; 1
| || 0x080602d8 08ad add r5, sp, 0x20
| || 0x080602da 0390 str r0, [sp, 0xc]
| || 0x080602dc 0291 str r1, [sp, 8]
| || 0x080602de 0194 str r4, [sp, 4]
| || 0x080602e0 cdf80090 str.w sb, [sp]
| || 0x080602e4 5a46 mov r2, fp
| || 0x080602e6 2846 mov r0, r5
| || 0x080602e8 1499 ldr r1, [sp, 0x50]
| || 0x080602ea fff739fe bl func_5ff60
| || 0x080602ee 5646 mov r6, sl
| || 0x080602f0 bf1b subs r7, r7, r6
| || 0x080602f2 0137 adds r7, 1
| || 0x080602f4 002f cmp r7, 0
| ,===< 0x080602f6 0cdd ble 0x8060312
| ||| 0x080602f8 3ab2 sxth r2, r7
| ||| 0x080602fa 0023 movs r3, 0
| ||| 0x080602fc 0392 str r2, [sp, 0xc]
| ||| 0x080602fe cdf80090 str.w sb, [sp]
| ||| 0x08060302 0194 str r4, [sp, 4]
| ||| 0x08060304 0293 str r3, [sp, 8]
| ||| 0x08060306 2846 mov r0, r5
| ||| 0x08060308 1499 ldr r1, [sp, 0x50]
| ||| 0x0806030a 5a46 mov r2, fp
| ||| 0x0806030c 3e44 add r6, r7
| ||| 0x0806030e fff727fe bl func_5ff60
| `---> 0x08060312 c6eb0806 rsb r6, r6, r8
| || 0x08060316 0136 adds r6, 1
| || 0x08060318 36b2 sxth r6, r6
| || 0x0806031a 4ff0ff31 mov.w r1, -1 ; -1
| || 0x0806031e 0291 str r1, [sp, 8]
| || 0x08060320 0396 str r6, [sp, 0xc]
| || 0x08060322 cdf80090 str.w sb, [sp]
| || 0x08060326 0194 str r4, [sp, 4]
| || 0x08060328 2846 mov r0, r5
| || 0x0806032a 5a46 mov r2, fp
| || 0x0806032c 079b ldr r3, [sp, 0x1c]
| || 0x0806032e 1499 ldr r1, [sp, 0x50]
| || 0x08060330 fff716fe bl func_5ff60
| || 0x08060334 0bb0 add sp, 0x2c
\ || 0x08060336 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_60374 470
| Caller: func_6054c
| func_60374 ();
| 0x08060374 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08060378 8bb0 sub sp, 0x2c ; ','
| 0x0806037a 169c ldr r4, [sp, 0x58]
| 0x0806037c bdf95050 ldrsh.w r5, [sp, 0x50]
| 0x08060380 0495 str r5, [sp, 0x10]
| 0x08060382 002c cmp r4, 0
| ,=< 0x08060384 40f3de80 ble.w 0x8060544
| | 0x08060388 0746 mov r7, r0
| | 0x0806038a 1598 ldr r0, [sp, 0x54]
| | 0x0806038c 0792 str r2, [sp, 0x1c]
| | 0x0806038e 00fb00f5 mul r5, r0, r0
| | 0x08060392 03fb03f2 mul r2, r3, r3
| | 0x08060396 5200 lsls r2, r2, 1
| | 0x08060398 6d00 lsls r5, r5, 1
| | 0x0806039a 1046 mov r0, r2
| | 0x0806039c 2e46 mov r6, r5
| | 0x0806039e 0028 cmp r0, 0
| ,==< 0x080603a0 b8bf it lt
| `--> 0x080603a2 c043 mvns r0, r0
| ,==< 0x080603a4 1cbf itt ne
| `--> 0x080603a6 b0fa80f0 clz r0, r0
| | 0x080603aa 0138 subs r0, 1
| | 0x080603ac 002e cmp r6, 0
| ,==< 0x080603ae b8bf it lt
| `--> 0x080603b0 f643 mvns r6, r6
| ,==< 0x080603b2 1cbf itt ne
| `--> 0x080603b4 b6fa86f6 clz r6, r6
| | 0x080603b8 013e subs r6, 1
| | 0x080603ba 00b2 sxth r0, r0
| | 0x080603bc 36b2 sxth r6, r6
| | 0x080603be b540 lsls r5, r6
| | 0x080603c0 8240 lsls r2, r0
| | 0x080603c2 12fb35f2 smultt r2, r2, r5
| | 0x080603c6 8e46 mov lr, r1
| | 0x080603c8 5200 lsls r2, r2, 1
| | 0x080603ca 1599 ldr r1, [sp, 0x54]
| | 0x080603cc 0397 str r7, [sp, 0xc]
| | 0x080603ce 9146 mov sb, r2
| | 0x080603d0 b9f1000f cmp.w sb, 0
| ,==< 0x080603d4 b8bf it lt
| `--> 0x080603d6 6fea0909 mvn.w sb, sb
| ,==< 0x080603da 1cbf itt ne
| `--> 0x080603dc b9fa89f9 clz sb, sb
| | 0x080603e0 a9f10109 sub.w sb, sb, 1
| | 0x080603e4 0ffa89f5 sxth.w r5, sb
| | 0x080603e8 03fb01f3 mul r3, r3, r1
| | 0x080603ec aa40 lsls r2, r5
| | 0x080603ee c0f11600 rsb.w r0, r0, 0x16
| | 0x080603f2 4fea430a lsl.w sl, r3, 1
| | 0x080603f6 1314 asrs r3, r2, 0x10
| | 0x080603f8 c6eb0009 rsb sb, r6, r0
| | 0x080603fc 0693 str r3, [sp, 0x18]
| | 0x080603fe 159b ldr r3, [sp, 0x54]
| | 0x08060400 07eb4401 add.w r1, r7, r4, lsl 1
| | 0x08060404 c5eb0909 rsb sb, r5, sb
| | 0x08060408 aef1020c sub.w ip, lr, 2
| | 0x0806040c 4f46 mov r7, sb
| | 0x0806040e 0591 str r1, [sp, 0x14]
| | 0x08060410 4fea034b lsl.w fp, r3, 0x10
| | 0x08060414 4ff00008 mov.w r8, 0
| | 0x08060418 09ae add r6, sp, 0x24
| | 0x0806041a e146 mov sb, ip
| .--> 0x0806041c 079b ldr r3, [sp, 0x1c]
| || 0x0806041e 159a ldr r2, [sp, 0x54]
| || 0x08060420 0096 str r6, [sp]
| || 0x08060422 08f10108 add.w r8, r8, 1
| || 0x08060426 c3eb0844 rsb r4, r3, r8, lsl 16
| || 0x0806042a 2346 mov r3, r4
| || 0x0806042c 002b cmp r3, 0
| ,===< 0x0806042e b8bf it lt
| `---> 0x08060430 db43 mvns r3, r3
| ,===< 0x08060432 1cbf itt ne
| `---> 0x08060434 b3fa83f3 clz r3, r3
| || 0x08060438 013b subs r3, 1
| || 0x0806043a 1bb2 sxth r3, r3
| || 0x0806043c 9c40 lsls r4, r3
| || 0x0806043e 2414 asrs r4, r4, 0x10
| || 0x08060440 02fb04f4 mul r4, r2, r4
| || 0x08060444 6400 lsls r4, r4, 1
| || 0x08060446 2546 mov r5, r4
| || 0x08060448 002d cmp r5, 0
| ,===< 0x0806044a b8bf it lt
| `---> 0x0806044c ed43 mvns r5, r5
| ,===< 0x0806044e 1cbf itt ne
| `---> 0x08060450 b5fa85f5 clz r5, r5
| || 0x08060454 013d subs r5, 1
| || 0x08060456 29b2 sxth r1, r5
| || 0x08060458 8c40 lsls r4, r1
| || 0x0806045a bdf81020 ldrh.w r2, [sp, 0x10]
| || 0x0806045e 0698 ldr r0, [sp, 0x18]
| || 0x08060460 0997 str r7, [sp, 0x24]
| || 0x08060462 240c lsrs r4, r4, 0x10
| || 0x08060464 14fb02f2 smulbb r2, r4, r2
| || 0x08060468 c3f11f05 rsb.w r5, r3, 0x1f
| || 0x0806046c 5200 lsls r2, r2, 1
| || 0x0806046e 6d1a subs r5, r5, r1
| || 0x08060470 1346 mov r3, r2
| || 0x08060472 002b cmp r3, 0
| ,===< 0x08060474 b8bf it lt
| `---> 0x08060476 db43 mvns r3, r3
| ,===< 0x08060478 1cbf itt ne
| `---> 0x0806047a b3fa83f3 clz r3, r3
| || 0x0806047e 013b subs r3, 1
| || 0x08060480 1bb2 sxth r3, r3
| || 0x08060482 9a40 lsls r2, r3
| || 0x08060484 291f subs r1, r5, 4
| || 0x08060486 cb1a subs r3, r1, r3
| || 0x08060488 1214 asrs r2, r2, 0x10
| || 0x0806048a 3946 mov r1, r7
| || 0x0806048c f8f778fa bl func_58980
| || 0x08060490 3146 mov r1, r6
| || 0x08060492 0004 lsls r0, r0, 0x10
| || 0x08060494 f8f794fc bl func_58dc0
| || 0x08060498 099b ldr r3, [sp, 0x24]
| || 0x0806049a 0096 str r6, [sp]
| || 0x0806049c 8646 mov lr, r0
| || 0x0806049e 5146 mov r1, sl
| || 0x080604a0 bef1000f cmp.w lr, 0
| ,===< 0x080604a4 b8bf it lt
| `---> 0x080604a6 6fea0e0e mvn.w lr, lr
| ,===< 0x080604aa 1cbf itt ne
| `---> 0x080604ac befa8efe clz lr, lr
| || 0x080604b0 aef1010e sub.w lr, lr, 1
| || 0x080604b4 0029 cmp r1, 0
| ,===< 0x080604b6 b8bf it lt
| `---> 0x080604b8 c943 mvns r1, r1
| ,===< 0x080604ba 1cbf itt ne
| `---> 0x080604bc b1fa81f1 clz r1, r1
| || 0x080604c0 0139 subs r1, 1
| || 0x080604c2 0ffa8efe sxth.w lr, lr
| || 0x080604c6 09b2 sxth r1, r1
| || 0x080604c8 00fa0ef2 lsl.w r2, r0, lr
| || 0x080604cc ceeb030e rsb lr, lr, r3
| || 0x080604d0 0afa01f3 lsl.w r3, sl, r1
| || 0x080604d4 1214 asrs r2, r2, 0x10
| || 0x080604d6 1814 asrs r0, r3, 0x10
| || 0x080604d8 c1f10b01 rsb.w r1, r1, 0xb
| || 0x080604dc 7346 mov r3, lr
| || 0x080604de cdf824e0 str.w lr, [sp, 0x24]
| || 0x080604e2 f8f74dfa bl func_58980
| || 0x080604e6 099b ldr r3, [sp, 0x24]
| || 0x080604e8 0096 str r6, [sp]
| || 0x080604ea 02b2 sxth r2, r0
| || 0x080604ec 2946 mov r1, r5
| || 0x080604ee 2004 lsls r0, r4, 0x10
| || 0x080604f0 f8f706fb bl func_58b00
| || 0x080604f4 099b ldr r3, [sp, 0x24]
| || 0x080604f6 80b2 uxth r0, r0
| || 0x080604f8 0e2b cmp r3, 0xe ; 14
| || 0x080604fa 4fea0042 lsl.w r2, r0, 0x10
| || 0x080604fe a3f10f01 sub.w r1, r3, 0xf
| ,===< 0x08060502 d6bf itet le
| `---> 0x08060504 c3f10f01 rsb.w r1, r3, 0xf
| || 0x08060508 8a40 lsls r2, r1
| || 0x0806050a 0a41 asrs r2, r1
| || 0x0806050c cbeb0202 rsb r2, fp, r2
| || 0x08060510 002a cmp r2, 0
| ,===< 0x08060512 0ddb blt 0x8060530
| ||| 0x08060514 5b46 mov r3, fp
| ||| 0x08060516 002b cmp r3, 0
| ,====< 0x08060518 b8bf it lt
| `----> 0x0806051a db43 mvns r3, r3
| ,====< 0x0806051c 1cbf itt ne
| `----> 0x0806051e b3fa83f3 clz r3, r3
| ||| 0x08060522 013b subs r3, 1
| ||| 0x08060524 1bb2 sxth r3, r3
| ||| 0x08060526 0bfa03f0 lsl.w r0, fp, r3
| ||| 0x0806052a 000c lsrs r0, r0, 0x10
| ||| 0x0806052c c3f10f03 rsb.w r3, r3, 0xf
| `---> 0x08060530 039a ldr r2, [sp, 0xc]
| || 0x08060532 22f8020b strh r0, [r2], 2
| || 0x08060536 29f8023f strh r3, [sb, 2]!
| || 0x0806053a 059b ldr r3, [sp, 0x14]
| || 0x0806053c 0392 str r2, [sp, 0xc]
| || 0x0806053e 9a42 cmp r2, r3
| `==< 0x08060540 7ff46caf bne.w 0x806041c
| `-> 0x08060544 0bb0 add sp, 0x2c
\ 0x08060546 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_6054c 1362
| Caller: ambe_58110
| func_6054c ();
| 0x0806054c 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08060550 adf5597d sub.w sp, sp, 0x364
| 0x08060554 9846 mov r8, r3
| 0x08060556 bdf98c43 ldrsh.w r4, [sp, 0x38c]
| 0x0806055a 1394 str r4, [sp, 0x4c]
| 0x0806055c e29c ldr r4, [sp, 0x388]
| 0x0806055e 9b68 ldr r3, [r3, 8]
| 0x08060560 a468 ldr r4, [r4, 8]
| 0x08060562 0791 str r1, [sp, 0x1c]
| 0x08060564 14f0553f tst.w r4, 0x55555555
| ,=< 0x08060568 14bf ite ne
| `-> 0x0806056a 0124 movs r4, 1 ; 1
| 0x0806056c 0024 movs r4, 0
| 0x0806056e 13f0553f tst.w r3, 0x55555555
| 0x08060572 4fea0141 lsl.w r1, r1, 0x10
| ,=< 0x08060576 14bf ite ne
| `-> 0x08060578 0123 movs r3, 1 ; 1
| 0x0806057a 0023 movs r3, 0
| 0x0806057c 0893 str r3, [sp, 0x20]
| 0x0806057e 0b46 mov r3, r1
| 0x08060580 002b cmp r3, 0
| ,=< 0x08060582 b8bf it lt
| `-> 0x08060584 db43 mvns r3, r3
| ,=< 0x08060586 1cbf itt ne
| `-> 0x08060588 b3fa83f3 clz r3, r3
| 0x0806058c 013b subs r3, 1
| 0x0806058e 1bb2 sxth r3, r3
| 0x08060590 1546 mov r5, r2
| 0x08060592 1791 str r1, [sp, 0x5c]
| 0x08060594 01fa03f2 lsl.w r2, r1, r3
| 0x08060598 1ba9 add r1, sp, 0x6c
| 0x0806059a 0091 str r1, [sp]
| 0x0806059c 0a94 str r4, [sp, 0x28]
| 0x0806059e 2646 mov r6, r4
| 0x080605a0 c3f10f04 rsb.w r4, r3, 0xf
| 0x080605a4 2346 mov r3, r4
| 0x080605a6 1b94 str r4, [sp, 0x6c]
| 0x080605a8 b5f85441 ldrh.w r4, [r5, 0x154]
| 0x080605ac 0e90 str r0, [sp, 0x38]
| 0x080605ae 1214 asrs r2, r2, 0x10
| 0x080605b0 1194 str r4, [sp, 0x44]
| 0x080605b2 4ff08040 mov.w r0, 0x40000000 ; io_TIM2
| 0x080605b6 b5f85841 ldrh.w r4, [r5, 0x158]
| 0x080605ba 1294 str r4, [sp, 0x48]
| 0x080605bc 0121 movs r1, 1 ; 1
| 0x080605be f8f79ffa bl func_58b00
| 0x080605c2 d5f85031 ldr.w r3, [r5, 0x150]
| 0x080605c6 0b93 str r3, [sp, 0x2c]
| 0x080605c8 e29b ldr r3, [sp, 0x388]
| 0x080605ca b8f80c20 ldrh.w r2, [r8, 0xc]
| 0x080605ce 9b89 ldrh r3, [r3, 0xc]
| 0x080605d0 0c93 str r3, [sp, 0x30]
| 0x080605d2 83b2 uxth r3, r0
| 0x080605d4 0d93 str r3, [sp, 0x34]
| 0x080605d6 089b ldr r3, [sp, 0x20]
| ,=< 0x080605d8 1ebb cbnz r6, 0x8060622
| | 0x080605da 002b cmp r3, 0
| ,==< 0x080605dc 00f08382 beq.w 0x8060ae6
| || 0x080605e0 079b ldr r3, [sp, 0x1c]
| || 0x080605e2 0c92 str r2, [sp, 0x30]
| || 0x080605e4 14b2 sxth r4, r2
| || 0x080605e6 04fb03f4 mul r4, r4, r3
| || 0x080605ea 0b9b ldr r3, [sp, 0x2c]
| || 0x080605ec 0a9a ldr r2, [sp, 0x28]
| || 0x080605ee 1992 str r2, [sp, 0x64]
| || 0x080605f0 44f3db04 sbfx r4, r4, 3, 0x1c
| || 0x080605f4 1c44 add r4, r3
| || 0x080605f6 2346 mov r3, r4
| || 0x080605f8 002b cmp r3, 0
| ,===< 0x080605fa b8bf it lt
| `---> 0x080605fc db43 mvns r3, r3
| ,===< 0x080605fe 1cbf itt ne
| `---> 0x08060600 b3fa83f3 clz r3, r3
| || 0x08060604 013b subs r3, 1
| || 0x08060606 1bb2 sxth r3, r3
| || 0x08060608 9c40 lsls r4, r3
| || 0x0806060a c3f10f03 rsb.w r3, r3, 0xf
| || 0x0806060e 0e2b cmp r3, 0xe ; 14
| || 0x08060610 1892 str r2, [sp, 0x60]
| || 0x08060612 1092 str r2, [sp, 0x40]
| ,===< 0x08060614 23dd ble 0x806065e
| .----> 0x08060616 0f3b subs r3, 0xf
| |||| 0x08060618 04fa03f3 lsl.w r3, r4, r3
| |||| 0x0806061c 0f93 str r3, [sp, 0x3c]
| |||| 0x0806061e 1c14 asrs r4, r3, 0x10
| ,=====< 0x08060620 23e0 b 0x806066a
| ||||`-> 0x08060622 002b cmp r3, 0
| ||||,=< 0x08060624 40f0c881 bne.w 0x80609b8
| ||||| 0x08060628 079b ldr r3, [sp, 0x1c]
| ||||| 0x0806062a bdf93040 ldrsh.w r4, [sp, 0x30]
| ||||| 0x0806062e 089a ldr r2, [sp, 0x20]
| ||||| 0x08060630 1992 str r2, [sp, 0x64]
| ||||| 0x08060632 04fb03f4 mul r4, r4, r3
| ||||| 0x08060636 0b9b ldr r3, [sp, 0x2c]
| ||||| 0x08060638 1892 str r2, [sp, 0x60]
| ||||| 0x0806063a 44f3db04 sbfx r4, r4, 3, 0x1c
| ||||| 0x0806063e 1c44 add r4, r3
| ||||| 0x08060640 2346 mov r3, r4
| ||||| 0x08060642 002b cmp r3, 0
| ,======< 0x08060644 b8bf it lt
| `------> 0x08060646 db43 mvns r3, r3
| ,======< 0x08060648 1cbf itt ne
| `------> 0x0806064a b3fa83f3 clz r3, r3
| ||||| 0x0806064e 013b subs r3, 1
| ||||| 0x08060650 1bb2 sxth r3, r3
| ||||| 0x08060652 9c40 lsls r4, r3
| ||||| 0x08060654 1092 str r2, [sp, 0x40]
| ||||| 0x08060656 c3f10f03 rsb.w r3, r3, 0xf
| .------> 0x0806065a 0e2b cmp r3, 0xe ; 14
| ||`====< 0x0806065c dbdc bgt 0x8060616
| || `---> 0x0806065e c3f10f03 rsb.w r3, r3, 0xf
| || || 0x08060662 1c41 asrs r4, r3
| || || 0x08060664 2314 asrs r3, r4, 0x10
| || || 0x08060666 0f94 str r4, [sp, 0x3c]
| || || 0x08060668 1c46 mov r4, r3
| |`-----> 0x0806066a 2946 mov r1, r5
| | || 0x0806066c a822 movs r2, 0xa8 ; 168
| | || 0x0806066e 30a8 add r0, sp, 0xc0
| | || 0x08060670 f5f7dcf9 bl func_55a2c
| | || 0x08060674 84a8 add r0, sp, 0x210
| | || 0x08060676 0021 movs r1, 0
| | || 0x08060678 a822 movs r2, 0xa8 ; 168
| | || 0x0806067a f5f70bfa bl ambe_55a94
| | || 0x0806067e 0a9b ldr r3, [sp, 0x28]
| | || 0x08060680 002b cmp r3, 0
| | ,===< 0x08060682 00f0e981 beq.w 0x8060a58
| | ||| 0x08060686 002c cmp r4, 0
| | ,====< 0x08060688 40f3e681 ble.w 0x8060a58
| | |||| 0x0806068c bdf94030 ldrsh.w r3, [sp, 0x40]
| | |||| 0x08060690 079a ldr r2, [sp, 0x1c]
| | |||| 0x08060692 0192 str r2, [sp, 4]
| | |||| 0x08060694 0093 str r3, [sp]
| | |||| 0x08060696 0294 str r4, [sp, 8]
| | |||| 0x08060698 e29f ldr r7, [sp, 0x388]
| | |||| 0x0806069a b5f8ce91 ldrh.w sb, [r5, 0x1ce]
| | |||| 0x0806069e b7f80cb0 ldrh.w fp, [r7, 0xc]
| | |||| 0x080606a2 0b9a ldr r2, [sp, 0x2c]
| | |||| 0x080606a4 bdf93030 ldrsh.w r3, [sp, 0x30]
| | |||| 0x080606a8 0df1700a add.w sl, sp, 0x70
| | |||| 0x080606ac 26ae add r6, sp, 0x98
| | |||| 0x080606ae 5046 mov r0, sl
| | |||| 0x080606b0 3146 mov r1, r6
| | |||| 0x080606b2 fff75ffe bl func_60374
| | |||| 0x080606b6 0ffa89f3 sxth.w r3, sb
| | |||| 0x080606ba 05f5e872 add.w r2, r5, 0x1d0
| | |||| 0x080606be 4ff00009 mov.w sb, 0
| | |||| 0x080606c2 cdf84480 str.w r8, [sp, 0x44]
| | |||| 0x080606c6 0ffa8bfb sxth.w fp, fp
| | |||| 0x080606ca c846 mov r8, sb
| | |||| 0x080606cc 1746 mov r7, r2
| | |||| 0x080606ce a946 mov sb, r5
| | |||| 0x080606d0 1d46 mov r5, r3
| | |||| 0x080606d2 00bf nop
| |.-----> 0x080606d4 3af91810 ldrsh.w r1, [sl, r8, lsl 1]
| |||||| 0x080606d8 36f91820 ldrsh.w r2, [r6, r8, lsl 1]
| |||||| 0x080606dc 0097 str r7, [sp]
| |||||| 0x080606de 0195 str r5, [sp, 4]
| |||||| 0x080606e0 08f10108 add.w r8, r8, 1
| |||||| 0x080606e4 30a8 add r0, sp, 0xc0
| |||||| 0x080606e6 5b46 mov r3, fp
| |||||| 0x080606e8 fff76cfd bl func_601c4
| |||||| 0x080606ec a045 cmp r8, r4
| |`=====< 0x080606ee f1d1 bne 0x80606d4
| | |||| 0x080606f0 631e subs r3, r4, 1
| | |||| 0x080606f2 ddf84480 ldr.w r8, [sp, 0x44]
| | |||| 0x080606f6 3af81320 ldrh.w r2, [sl, r3, lsl 1]
| | |||| 0x080606fa 36f81330 ldrh.w r3, [r6, r3, lsl 1]
| | |||| 0x080606fe 0997 str r7, [sp, 0x24]
| | |||| 0x08060700 4d46 mov r5, sb
| | |||| 0x08060702 1192 str r2, [sp, 0x44]
| | |||| 0x08060704 1293 str r3, [sp, 0x48]
| |.-----> 0x08060706 bdf91c30 ldrsh.w r3, [sp, 0x1c]
| |||||| 0x0806070a bdf86ca0 ldrh.w sl, [sp, 0x6c]
| |||||| 0x0806070e 1593 str r3, [sp, 0x54]
| |||||| 0x08060710 002b cmp r3, 0
| ,=======< 0x08060712 33dd ble 0x806077c
| ||||||| 0x08060714 0d99 ldr r1, [sp, 0x34]
| ||||||| 0x08060716 099f ldr r7, [sp, 0x24]
| ||||||| 0x08060718 0ffa8af3 sxth.w r3, sl
| ||||||| 0x0806071c 5a42 rsbs r2, r3, 0
| ||||||| 0x0806071e 4fea014a lsl.w sl, r1, 0x10
| ||||||| 0x08060722 0799 ldr r1, [sp, 0x1c]
| ||||||| 0x08060724 4afa02f2 asr.w r2, sl, r2
| ||||||| 0x08060728 0afa03fa lsl.w sl, sl, r3
| ||||||| 0x0806072c 01f1ff3b add.w fp, r1, -1
| ||||||| 0x08060730 3aea230a bics.w sl, sl, r3, asr 32
| ========< 0x08060734 28bf it hs
| --------> 0x08060736 9246 mov sl, r2
| ||||||| 0x08060738 0e9a ldr r2, [sp, 0x38]
| ||||||| 0x0806073a 1ffa8bfb uxth.w fp, fp
| ||||||| 0x0806073e 02eb8b0b add.w fp, r2, fp, lsl 2
| ||||||| 0x08060742 0df1c009 add.w sb, sp, 0xc0
| ||||||| 0x08060746 a2f1040e sub.w lr, r2, 4
| ||||||| 0x0806074a 4ff0000c mov.w ip, 0
| ||||||| 0x0806074e 00bf nop
| --------> 0x08060750 59f8043b ldr r3, [sb], 4
| ||||||| 0x08060754 5ef8042f ldr r2, [lr, 4]!
| ||||||| 0x08060758 4fea2c40 asr.w r0, ip, 0x10
| ||||||| 0x0806075c 83fb0001 smull r0, r1, r3, r0
| ||||||| 0x08060760 c00b lsrs r0, r0, 0xf
| ||||||| 0x08060762 40ea4140 orr.w r0, r0, r1, lsl 17
| ||||||| 0x08060766 de45 cmp lr, fp
| ||||||| 0x08060768 a3eb0003 sub.w r3, r3, r0
| ||||||| 0x0806076c 8cfa8afc qadd ip, sl, ip
| ||||||| 0x08060770 83fa82f3 qadd r3, r2, r3
| ||||||| 0x08060774 cef80030 str.w r3, [lr]
| ========< 0x08060778 ead1 bne 0x8060750
| ||||||| 0x0806077a 0997 str r7, [sp, 0x24]
| `-------> 0x0806077c 0021 movs r1, 0
| |||||| 0x0806077e 4ff4a872 mov.w r2, 0x150 ; 336
| |||||| 0x08060782 30a8 add r0, sp, 0xc0
| |||||| 0x08060784 f5f786f9 bl ambe_55a94
| |||||| 0x08060788 b8f90ce0 ldrsh.w lr, [r8, 0xc]
| |||||| 0x0806078c 139b ldr r3, [sp, 0x4c]
| |||||| 0x0806078e 0096 str r6, [sp]
| |||||| 0x08060790 4fea0e42 lsl.w r2, lr, 0x10
| |||||| 0x08060794 1804 lsls r0, r3, 0x10
| |||||| 0x08060796 9146 mov sb, r2
| |||||| 0x08060798 6ff00303 mvn r3, 3
| |||||| 0x0806079c b9f1000f cmp.w sb, 0
| ,=======< 0x080607a0 b8bf it lt
| `-------> 0x080607a2 6fea0909 mvn.w sb, sb
| ,=======< 0x080607a6 1cbf itt ne
| `-------> 0x080607a8 b9fa89f9 clz sb, sb
| |||||| 0x080607ac a9f10109 sub.w sb, sb, 1
| |||||| 0x080607b0 0ffa89f9 sxth.w sb, sb
| |||||| 0x080607b4 d8f88070 ldr.w r7, [r8, 0x80]
| |||||| 0x080607b8 1397 str r7, [sp, 0x4c]
| |||||| 0x080607ba 02fa09f2 lsl.w r2, r2, sb
| |||||| 0x080607be 8446 mov ip, r0
| |||||| 0x080607c0 1946 mov r1, r3
| |||||| 0x080607c2 bcf1000f cmp.w ip, 0
| ,=======< 0x080607c6 b8bf it lt
| `-------> 0x080607c8 6fea0c0c mvn.w ip, ip
| ,=======< 0x080607cc 1cbf itt ne
| `-------> 0x080607ce bcfa8cfc clz ip, ip
| |||||| 0x080607d2 acf1010c sub.w ip, ip, 1
| |||||| 0x080607d6 cef1000e rsb.w lr, lr, 0
| |||||| 0x080607da 0ffa8cfc sxth.w ip, ip
| |||||| 0x080607de d8f88470 ldr.w r7, [r8, 0x84]
| |||||| 0x080607e2 1497 str r7, [sp, 0x50]
| |||||| 0x080607e4 1214 asrs r2, r2, 0x10
| |||||| 0x080607e6 c9eb0303 rsb r3, sb, r3
| |||||| 0x080607ea 00fa0cf0 lsl.w r0, r0, ip
| |||||| 0x080607ee cceb0101 rsb r1, ip, r1
| |||||| 0x080607f2 1ffa8efc uxth.w ip, lr
| |||||| 0x080607f6 cdf858c0 str.w ip, [sp, 0x58]
| |||||| 0x080607fa b8f90470 ldrsh.w r7, [r8, 4]
| |||||| 0x080607fe f8f77ff9 bl func_58b00
| |||||| 0x08060802 3268 ldr r2, [r6]
| |||||| 0x08060804 ddf858c0 ldr.w ip, [sp, 0x58]
| |||||| 0x08060808 0e2a cmp r2, 0xe ; 14
| |||||| 0x0806080a 4fea0040 lsl.w r0, r0, 0x10
| |||||| 0x0806080e 05f5e77b add.w fp, r5, 0x1ce
| |||||| 0x08060812 05f5af7a add.w sl, r5, 0x15e
| |||||| 0x08060816 08f11009 add.w sb, r8, 0x10
| ,=======< 0x0806081a 00f34081 bgt.w 0x8060a9e
| ||||||| 0x0806081e c2f10f02 rsb.w r2, r2, 0xf
| ||||||| 0x08060822 40fa02f3 asr.w r3, r0, r2
| ||||||| 0x08060826 03f50043 add.w r3, r3, 0x8000
| ||||||| 0x0806082a 1b14 asrs r3, r3, 0x10
| ||||||| 0x0806082c 0493 str r3, [sp, 0x10]
| ||||||| 0x0806082e 139b ldr r3, [sp, 0x4c]
| ||||||| 0x08060830 0397 str r7, [sp, 0xc]
| ||||||| 0x08060832 0221 movs r1, 2 ; 2
| ||||||| 0x08060834 8de80802 stm.w sp, {r3, sb}
| ||||||| 0x08060838 149b ldr r3, [sp, 0x50]
| ||||||| 0x0806083a 0293 str r3, [sp, 8]
| ||||||| 0x0806083c 0591 str r1, [sp, 0x14]
| ||||||| 0x0806083e 0ffa8cf2 sxth.w r2, ip
| ||||||| 0x08060842 0998 ldr r0, [sp, 0x24]
| ||||||| 0x08060844 5946 mov r1, fp
| ||||||| 0x08060846 5346 mov r3, sl
| ||||||| 0x08060848 fff708fc bl func_6005c
| ||||||| 0x0806084c 0028 cmp r0, 0
| ========< 0x0806084e 40f02a81 bne.w 0x8060aa6
| ||||||| 0x08060852 089b ldr r3, [sp, 0x20]
| ||||||| 0x08060854 002b cmp r3, 0
| ========< 0x08060856 67d0 beq 0x8060928
| ||||||| 0x08060858 189b ldr r3, [sp, 0x60]
| ||||||| 0x0806085a 002b cmp r3, 0
| ========< 0x0806085c 40f06381 bne.w 0x8060b26
| ||||||| 0x08060860 199b ldr r3, [sp, 0x64]
| ||||||| 0x08060862 002b cmp r3, 0
| ========< 0x08060864 40f04681 bne.w 0x8060af4
| ||||||| 0x08060868 b8f90c20 ldrsh.w r2, [r8, 0xc]
| ||||||| 0x0806086c d8f88030 ldr.w r3, [r8, 0x80]
| ||||||| 0x08060870 d8f88400 ldr.w r0, [r8, 0x84]
| ||||||| 0x08060874 099f ldr r7, [sp, 0x24]
| ||||||| 0x08060876 cdf80490 str.w sb, [sp, 4]
| ||||||| 0x0806087a b8f904e0 ldrsh.w lr, [r8, 4]
| ||||||| 0x0806087e 0290 str r0, [sp, 8]
| ||||||| 0x08060880 4ff00009 mov.w sb, 0
| ||||||| 0x08060884 0120 movs r0, 1 ; 1
| ||||||| 0x08060886 5242 rsbs r2, r2, 0
| ||||||| 0x08060888 0093 str r3, [sp]
| ||||||| 0x0806088a 5946 mov r1, fp
| ||||||| 0x0806088c 5346 mov r3, sl
| ||||||| 0x0806088e 12b2 sxth r2, r2
| ||||||| 0x08060890 cdf80ce0 str.w lr, [sp, 0xc]
| ||||||| 0x08060894 0590 str r0, [sp, 0x14]
| ||||||| 0x08060896 cdf81090 str.w sb, [sp, 0x10]
| ||||||| 0x0806089a 3846 mov r0, r7
| ||||||| 0x0806089c fff7defb bl func_6005c
| ||||||| 0x080608a0 b5f9ce01 ldrsh.w r0, [r5, 0x1ce]
| ||||||| 0x080608a4 b5f95411 ldrsh.w r1, [r5, 0x154]
| ||||||| 0x080608a8 b5f95821 ldrsh.w r2, [r5, 0x158]
| ||||||| 0x080608ac b8f90c30 ldrsh.w r3, [r8, 0xc]
| ||||||| 0x080608b0 0190 str r0, [sp, 4]
| ||||||| 0x080608b2 0097 str r7, [sp]
| ||||||| 0x080608b4 30a8 add r0, sp, 0xc0
| ||||||| 0x080608b6 fff785fc bl func_601c4
| ||||||| 0x080608ba 4c45 cmp r4, sb
| ========< 0x080608bc 34dd ble 0x8060928
| ||||||| 0x080608be bdf94030 ldrsh.w r3, [sp, 0x40]
| ||||||| 0x080608c2 0093 str r3, [sp]
| ||||||| 0x080608c4 079b ldr r3, [sp, 0x1c]
| ||||||| 0x080608c6 0193 str r3, [sp, 4]
| ||||||| 0x080608c8 0294 str r4, [sp, 8]
| ||||||| 0x080608ca 0df1700a add.w sl, sp, 0x70
| ||||||| 0x080608ce b5f8cec1 ldrh.w ip, [r5, 0x1ce]
| ||||||| 0x080608d2 bdf93030 ldrsh.w r3, [sp, 0x30]
| ||||||| 0x080608d6 0b9a ldr r2, [sp, 0x2c]
| ||||||| 0x080608d8 b8f80cb0 ldrh.w fp, [r8, 0xc]
| ||||||| 0x080608dc cdf824c0 str.w ip, [sp, 0x24]
| ||||||| 0x080608e0 5046 mov r0, sl
| ||||||| 0x080608e2 3146 mov r1, r6
| ||||||| 0x080608e4 fff746fd bl func_60374
| ||||||| 0x080608e8 ddf824c0 ldr.w ip, [sp, 0x24]
| ||||||| 0x080608ec c846 mov r8, sb
| ||||||| 0x080608ee 0ffa8cf9 sxth.w sb, ip
| ||||||| 0x080608f2 4b46 mov r3, sb
| ||||||| 0x080608f4 0ffa8bfb sxth.w fp, fp
| ||||||| 0x080608f8 a946 mov sb, r5
| ||||||| 0x080608fa 1d46 mov r5, r3
| --------> 0x080608fc 3af91810 ldrsh.w r1, [sl, r8, lsl 1]
| ||||||| 0x08060900 36f91820 ldrsh.w r2, [r6, r8, lsl 1]
| ||||||| 0x08060904 0097 str r7, [sp]
| ||||||| 0x08060906 0195 str r5, [sp, 4]
| ||||||| 0x08060908 08f10108 add.w r8, r8, 1
| ||||||| 0x0806090c 30a8 add r0, sp, 0xc0
| ||||||| 0x0806090e 5b46 mov r3, fp
| ||||||| 0x08060910 fff758fc bl func_601c4
| ||||||| 0x08060914 a045 cmp r8, r4
| ========< 0x08060916 f1d1 bne 0x80608fc
| ||||||| 0x08060918 631e subs r3, r4, 1
| ||||||| 0x0806091a 4d46 mov r5, sb
| ||||||| 0x0806091c 3af81320 ldrh.w r2, [sl, r3, lsl 1]
| ||||||| 0x08060920 36f81330 ldrh.w r3, [r6, r3, lsl 1]
| ||||||| 0x08060924 1192 str r2, [sp, 0x44]
| ||||||| 0x08060926 1293 str r3, [sp, 0x48]
| --------> 0x08060928 0f9b ldr r3, [sp, 0x3c]
| ||||||| 0x0806092a bdf86c70 ldrh.w r7, [sp, 0x6c]
| ||||||| 0x0806092e a3eb0444 sub.w r4, r3, r4, lsl 16
| ||||||| 0x08060932 159b ldr r3, [sp, 0x54]
| ||||||| 0x08060934 c5f85041 str.w r4, [r5, 0x150]
| ||||||| 0x08060938 002b cmp r3, 0
| ========< 0x0806093a 26dd ble 0x806098a
| ||||||| 0x0806093c 0d9a ldr r2, [sp, 0x34]
| ||||||| 0x0806093e 3bb2 sxth r3, r7
| ||||||| 0x08060940 1704 lsls r7, r2, 0x10
| ||||||| 0x08060942 079a ldr r2, [sp, 0x1c]
| ||||||| 0x08060944 5942 rsbs r1, r3, 0
| ||||||| 0x08060946 561e subs r6, r2, 1
| ||||||| 0x08060948 07fa03f2 lsl.w r2, r7, r3
| ||||||| 0x0806094c 0f41 asrs r7, r1
| ||||||| 0x0806094e 17ea2307 ands.w r7, r7, r3, asr 32
| ========< 0x08060952 38bf it lo
| --------> 0x08060954 1746 mov r7, r2
| ||||||| 0x08060956 0e9a ldr r2, [sp, 0x38]
| ||||||| 0x08060958 b6b2 uxth r6, r6
| ||||||| 0x0806095a 02eb8606 add.w r6, r2, r6, lsl 2
| ||||||| 0x0806095e 0df1c00e add.w lr, sp, 0xc0
| ||||||| 0x08060962 043a subs r2, 4
| ||||||| 0x08060964 0024 movs r4, 0
| ||||||| 0x08060966 b446 mov ip, r6
| --------> 0x08060968 5ef8040b ldr r0, [lr], 4
| ||||||| 0x0806096c 52f8046f ldr r6, [r2, 4]!
| ||||||| 0x08060970 2314 asrs r3, r4, 0x10
| ||||||| 0x08060972 80fb0301 smull r0, r1, r0, r3
| ||||||| 0x08060976 c30b lsrs r3, r0, 0xf
| ||||||| 0x08060978 6245 cmp r2, ip
| ||||||| 0x0806097a 43ea4143 orr.w r3, r3, r1, lsl 17
| ||||||| 0x0806097e 84fa87f4 qadd r4, r7, r4
| ||||||| 0x08060982 86fa83f3 qadd r3, r3, r6
| ||||||| 0x08060986 1360 str r3, [r2]
| ========< 0x08060988 eed1 bne 0x8060968
| --------> 0x0806098a 079b ldr r3, [sp, 0x1c]
| ||||||| 0x0806098c 30aa add r2, sp, 0xc0
| ||||||| 0x0806098e 02eb8301 add.w r1, r2, r3, lsl 2
| ||||||| 0x08060992 2846 mov r0, r5
| ||||||| 0x08060994 a822 movs r2, 0xa8 ; 168
| ||||||| 0x08060996 f5f749f8 bl func_55a2c
| ||||||| 0x0806099a 0a9b ldr r3, [sp, 0x28]
| ||||||| 0x0806099c 002b cmp r3, 0
| ========< 0x0806099e 60d1 bne 0x8060a62
| ||||||| 0x080609a0 089b ldr r3, [sp, 0x20]
| ||||||| 0x080609a2 002b cmp r3, 0
| ========< 0x080609a4 5dd1 bne 0x8060a62
| ||||||| 0x080609a6 089b ldr r3, [sp, 0x20]
| ||||||| 0x080609a8 a5f85431 strh.w r3, [r5, 0x154]
| ||||||| 0x080609ac c5f85831 str.w r3, [r5, 0x158]
| ||||||| 0x080609b0 0df5597d add.w sp, sp, 0x364
| ||||||| 0x080609b4 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
| ||||||`-> 0x080609b8 0c9c ldr r4, [sp, 0x30]
| |||||| 0x080609ba 44f6cc40 movw r0, 0x4ccc
| |||||| 0x080609be 12fb00f0 smulbb r0, r2, r0
| |||||| 0x080609c2 13b2 sxth r3, r2
| |||||| 0x080609c4 43f25551 movw r1, 0x3555
| |||||| 0x080609c8 22b2 sxth r2, r4
| |||||| 0x080609ca 14fb01f1 smulbb r1, r4, r1
| |||||| 0x080609ce b2ebe03f cmp.w r2, r0, asr 15
| |||||| 0x080609d2 4fea4101 lsl.w r1, r1, 1
| |||||| 0x080609d6 1c46 mov r4, r3
| ||||||,=< 0x080609d8 12da bge 0x8060a00
| ||||||| 0x080609da 03eb4300 add.w r0, r3, r3, lsl 1
| ||||||| 0x080609de 00eb0010 add.w r0, r0, r0, lsl 4
| ||||||| 0x080609e2 00eb0020 add.w r0, r0, r0, lsl 8
| ||||||| 0x080609e6 40f3cf30 sbfx r0, r0, 0xf, 0x10
| ||||||| 0x080609ea 8242 cmp r2, r0
| ========< 0x080609ec 08dd ble 0x8060a00
| ||||||| 0x080609ee b2f5804f cmp.w r2, 0x4000
| ========< 0x080609f2 05da bge 0x8060a00
| ||||||| 0x080609f4 0021 movs r1, 0
| ||||||| 0x080609f6 1991 str r1, [sp, 0x64]
| ||||||| 0x080609f8 0121 movs r1, 1 ; 1
| ||||||| 0x080609fa 5b10 asrs r3, r3, 1
| ||||||| 0x080609fc 1891 str r1, [sp, 0x60]
| ========< 0x080609fe 0ee0 b 0x8060a1e
| ------`-> 0x08060a00 b4eb214f cmp.w r4, r1, asr 16
| ||||||,=< 0x08060a04 08dd ble 0x8060a18
| ||||||| 0x08060a06 02eb8201 add.w r1, r2, r2, lsl 2
| ||||||| 0x08060a0a b4ebe10f cmp.w r4, r1, asr 3
| ========< 0x08060a0e 03da bge 0x8060a18
| ||||||| 0x08060a10 b4f5804f cmp.w r4, 0x4000
| ========< 0x08060a14 c0f2e280 blt.w 0x8060bdc
| ------`-> 0x08060a18 0021 movs r1, 0
| |||||| 0x08060a1a 1991 str r1, [sp, 0x64]
| |||||| 0x08060a1c 1891 str r1, [sp, 0x60]
| --------> 0x08060a1e 1204 lsls r2, r2, 0x10
| |||||| 0x08060a20 1b04 lsls r3, r3, 0x10
| |||||| 0x08060a22 5410 asrs r4, r2, 1
| |||||| 0x08060a24 04eb6304 add.w r4, r4, r3, asr 1
| |||||| 0x08060a28 0799 ldr r1, [sp, 0x1c]
| |||||| 0x08060a2a 2414 asrs r4, r4, 0x10
| |||||| 0x08060a2c 04fb01f4 mul r4, r4, r1
| |||||| 0x08060a30 0b99 ldr r1, [sp, 0x2c]
| |||||| 0x08060a32 44f3db04 sbfx r4, r4, 3, 0x1c
| |||||| 0x08060a36 0c44 add r4, r1
| |||||| 0x08060a38 9a1a subs r2, r3, r2
| |||||| 0x08060a3a 120c lsrs r2, r2, 0x10
| |||||| 0x08060a3c 2346 mov r3, r4
| |||||| 0x08060a3e 002b cmp r3, 0
| ||||||,=< 0x08060a40 b8bf it lt
| ||||||`-> 0x08060a42 db43 mvns r3, r3
| ||||||,=< 0x08060a44 1cbf itt ne
| ||||||`-> 0x08060a46 b3fa83f3 clz r3, r3
| |||||| 0x08060a4a 013b subs r3, 1
| |||||| 0x08060a4c 1bb2 sxth r3, r3
| |||||| 0x08060a4e 9c40 lsls r4, r3
| |||||| 0x08060a50 1092 str r2, [sp, 0x40]
| |||||| 0x08060a52 c3f10f03 rsb.w r3, r3, 0xf
| |`======< 0x08060a56 00e6 b 0x806065a
| | |``---> 0x08060a58 05f5e873 add.w r3, r5, 0x1d0
| | | | 0x08060a5c 0993 str r3, [sp, 0x24]
| | | | 0x08060a5e 26ae add r6, sp, 0x98
| | `=====< 0x08060a60 51e6 b 0x8060706
| --------> 0x08060a62 1798 ldr r0, [sp, 0x5c]
| | | 0x08060a64 bdf94420 ldrsh.w r2, [sp, 0x44]
| | | 0x08060a68 0146 mov r1, r0
| | | 0x08060a6a 0029 cmp r1, 0
| | |,=< 0x08060a6c b8bf it lt
| | |`-> 0x08060a6e c943 mvns r1, r1
| | |,=< 0x08060a70 1cbf itt ne
| | |`-> 0x08060a72 b1fa81f1 clz r1, r1
| | | 0x08060a76 0139 subs r1, 1
| | | 0x08060a78 0bb2 sxth r3, r1
| | | 0x08060a7a 9840 lsls r0, r3
| | | 0x08060a7c 05f5ac74 add.w r4, r5, 0x158
| | | 0x08060a80 c1f10f01 rsb.w r1, r1, 0xf
| | | 0x08060a84 bdf94830 ldrsh.w r3, [sp, 0x48]
| | | 0x08060a88 0094 str r4, [sp]
| | | 0x08060a8a 09b2 sxth r1, r1
| | | 0x08060a8c 0014 asrs r0, r0, 0x10
| | | 0x08060a8e f7f7b7ff bl func_58a00
| | | 0x08060a92 a5f85401 strh.w r0, [r5, 0x154]
| | | 0x08060a96 0df5597d add.w sp, sp, 0x364
\ | | 0x08060a9a bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_61100 32
| Caller: func_61622
| func_61100 ();
| 0x08061100 0021 movs r1, 0
| 0x08061102 c268 ldr r2, [r0, 0xc]
| 0x08061104 5ff0ff33 movs.w r3, -1 ; -1
| 0x08061108 5360 str r3, [r2, 4]
| 0x0806110a c268 ldr r2, [r0, 0xc]
| 0x0806110c 7ff08043 mvns r3, 0x40000000
| 0x08061110 5361 str r3, [r2, 0x14]
| 0x08061112 51f00041 orrs r1, r1, 0x80000000
| 0x08061116 51f40061 orrs r1, r1, 0x800
| 0x0806111a c068 ldr r0, [r0, 0xc]
| 0x0806111c 8161 str r1, [r0, 0x18]
\ 0x0806111e 7047 bx lr
/ (fcn) func_61120 98
| Caller: func_612c6
| func_61120 ();
| 0x08061120 70b5 push {r4, r5, r6, lr}
| 0x08061122 82b0 sub sp, 8
| 0x08061124 0400 movs r4, r0
| 0x08061126 0025 movs r5, 0
| 0x08061128 0026 movs r6, 0
| 0x0806112a 0020 movs r0, 0
| 0x0806112c 0090 str r0, [sp]
| .-> 0x0806112e 0320 movs r0, 3 ; 3
| | 0x08061130 f8f78ff8 bl func_59252
| | 0x08061134 e068 ldr r0, [r4, 0xc]
| | 0x08061136 0069 ldr r0, [r0, 0x10]
| | 0x08061138 0090 str r0, [sp]
| | 0x0806113a 761c adds r6, r6, 1
| | 0x0806113c bd48 ldr r0, [0x08061434] ; [0x8061434:4]=0x30d41
| | 0x0806113e 8642 cmp r6, r0
| ,==< 0x08061140 01d3 blo 0x8061146
| || 0x08061142 0020 movs r0, 0
| ,===< 0x08061144 1ce0 b 0x8061180
| |`--> 0x08061146 0098 ldr r0, [sp]
| | | 0x08061148 0028 cmp r0, 0
| | `=< 0x0806114a f0d5 bpl 0x806112e
| | 0x0806114c 0026 movs r6, 0
| | 0x0806114e 0098 ldr r0, [sp]
| | 0x08061150 50f00100 orrs r0, r0, 1
| | 0x08061154 0090 str r0, [sp]
| | 0x08061156 e068 ldr r0, [r4, 0xc]
| | 0x08061158 0099 ldr r1, [sp]
| | 0x0806115a 0161 str r1, [r0, 0x10]
| | .-> 0x0806115c e068 ldr r0, [r4, 0xc]
| | | 0x0806115e 0069 ldr r0, [r0, 0x10]
| | | 0x08061160 0090 str r0, [sp]
| | | 0x08061162 761c adds r6, r6, 1
| | | 0x08061164 b348 ldr r0, [0x08061434] ; [0x8061434:4]=0x30d41
| | | 0x08061166 8642 cmp r6, r0
| |,==< 0x08061168 05d2 bhs 0x8061176
| ||| 0x0806116a 0098 ldr r0, [sp]
| ||| 0x0806116c 10f00100 ands r0, r0, 1
| ||| 0x08061170 c0b2 uxtb r0, r0
| ||| 0x08061172 0028 cmp r0, 0
| ||`=< 0x08061174 f2d1 bne 0x806115c
| |`--> 0x08061176 0320 movs r0, 3 ; 3
| | 0x08061178 f8f76bf8 bl func_59252
| | 0x0806117c 2800 movs r0, r5
| | 0x0806117e c0b2 uxtb r0, r0
\ `---> 0x08061180 76bd pop {r1, r2, r4, r5, r6, pc}
/ (fcn) func_61182 64
| Caller: func_93ce2 func_61762
| func_61182 ();
| 0x08061182 f0b4 push {r4, r5, r6, r7}
| 0x08061184 1c00 movs r4, r3
| 0x08061186 0023 movs r3, 0
| 0x08061188 c578 ldrb r5, [r0, 3]
| 0x0806118a 002d cmp r5, 0
| ,=< 0x0806118c 15d1 bne 0x80611ba
| | 0x0806118e 0025 movs r5, 0
| | 0x08061190 0026 movs r6, 0
| | 0x08061192 a4b2 uxth r4, r4
| | 0x08061194 e41c adds r4, r4, 3
| | 0x08061196 0427 movs r7, 4 ; 4
| | 0x08061198 94fbf7f4 sdiv r4, r4, r7
| | 0x0806119c 2500 movs r5, r4
| | 0x0806119e d2b2 uxtb r2, r2
| | 0x080611a0 10eb8200 adds.w r0, r0, r2, lsl 2
| | 0x080611a4 d0f8d000 ldr.w r0, [r0, 0xd0]
| | 0x080611a8 0022 movs r2, 0
| | 0x080611aa 1600 movs r6, r2
| ,==< 0x080611ac 03e0 b 0x80611b6
| .---> 0x080611ae 0a68 ldr r2, [r1]
| ||| 0x080611b0 0260 str r2, [r0]
| ||| 0x080611b2 761c adds r6, r6, 1
| ||| 0x080611b4 091d adds r1, r1, 4
| |`--> 0x080611b6 ae42 cmp r6, r5
| `===< 0x080611b8 f9d3 blo 0x80611ae
| `-> 0x080611ba 1800 movs r0, r3
| 0x080611bc c0b2 uxtb r0, r0
| 0x080611be f0bc pop {r4, r5, r6, r7}
\ 0x080611c0 7047 bx lr
/ (fcn) func_611c2 42
| Caller: func_93c44
| func_611c2 ();
| 0x080611c2 10b4 push {r4}
| 0x080611c4 0023 movs r3, 0
| 0x080611c6 92b2 uxth r2, r2
| 0x080611c8 d21c adds r2, r2, 3
| 0x080611ca 0424 movs r4, 4 ; 4
| 0x080611cc 92fbf4f2 sdiv r2, r2, r4
| 0x080611d0 d0f8d000 ldr.w r0, [r0, 0xd0]
| 0x080611d4 0024 movs r4, 0
| 0x080611d6 2300 movs r3, r4
| ,=< 0x080611d8 03e0 b 0x80611e2
| .--> 0x080611da 0468 ldr r4, [r0]
| || 0x080611dc 0c60 str r4, [r1]
| || 0x080611de 5b1c adds r3, r3, 1
| || 0x080611e0 091d adds r1, r1, 4
| |`-> 0x080611e2 9342 cmp r3, r2
| `==< 0x080611e4 f9d3 blo 0x80611da
| 0x080611e6 0800 movs r0, r1
| 0x080611e8 10bc pop {r4}
\ 0x080611ea 7047 bx lr
/ (fcn) func_611ec 218
| Caller: func_59276
| func_611ec ();
| 0x080611ec 30b4 push {r4, r5}
| 0x080611ee 0a00 movs r2, r1
| 0x080611f0 0023 movs r3, 0
| 0x080611f2 0021 movs r1, 0
| 0x080611f4 0024 movs r4, 0
| 0x080611f6 c470 strb r4, [r0, 3]
| 0x080611f8 0124 movs r4, 1 ; 1
| 0x080611fa 8470 strb r4, [r0, 2]
| 0x080611fc 4024 movs r4, 0x40 ; '@' ; 64
| 0x080611fe 8480 strh r4, [r0, 4]
| 0x08061200 d2b2 uxtb r2, r2
| 0x08061202 012a cmp r2, 1 ; 1
| ,=< 0x08061204 0dd1 bne 0x8061222
| | 0x08061206 5ff0a043 movs.w r3, 0x50000000
| | 0x0806120a 0122 movs r2, 1 ; 1
| | 0x0806120c c272 strb r2, [r0, 0xb]
| | 0x0806120e 0822 movs r2, 8 ; 8
| | 0x08061210 0270 strb r2, [r0]
| | 0x08061212 0422 movs r2, 4 ; 4
| | 0x08061214 4270 strb r2, [r0, 1]
| | 0x08061216 4ff4a072 mov.w r2, 0x140 ; 320
| | 0x0806121a c280 strh r2, [r0, 6]
| | 0x0806121c 0222 movs r2, 2 ; 2
| | 0x0806121e 0272 strb r2, [r0, 8]
| ,==< 0x08061220 0ce0 b 0x806123c
| |`-> 0x08061222 d2b2 uxtb r2, r2
| | 0x08061224 002a cmp r2, 0
| |,=< 0x08061226 09d1 bne 0x806123c
| || 0x08061228 834b ldr r3, [0x08061438] ; [0x8061438:4]=0x40040000 io_USB_OTG_HS
| || 0x0806122a 0022 movs r2, 0
| || 0x0806122c c272 strb r2, [r0, 0xb]
| || 0x0806122e 0c22 movs r2, 0xc ; 12
| || 0x08061230 0270 strb r2, [r0]
| || 0x08061232 0622 movs r2, 6 ; 6
| || 0x08061234 4270 strb r2, [r0, 1]
| || 0x08061236 4ff4a062 mov.w r2, 0x500 ; 1280
| || 0x0806123a c280 strh r2, [r0, 6]
| ``-> 0x0806123c c360 str r3, [r0, 0xc]
| 0x0806123e 13f50062 adds.w r2, r3, 0x800
| 0x08061242 0261 str r2, [r0, 0x10]
| 0x08061244 0022 movs r2, 0
| ,=< 0x08061246 0ee0 b 0x8061266
| .--> 0x08061248 10eb8204 adds.w r4, r0, r2, lsl 2
| || 0x0806124c 13eb4215 adds.w r5, r3, r2, lsl 5
| || 0x08061250 15f51065 adds.w r5, r5, 0x900
| || 0x08061254 a561 str r5, [r4, 0x18]
| || 0x08061256 10eb8204 adds.w r4, r0, r2, lsl 2
| || 0x0806125a 13eb4215 adds.w r5, r3, r2, lsl 5
| || 0x0806125e 15f53065 adds.w r5, r5, 0xb00
| || 0x08061262 6565 str r5, [r4, 0x54]
| || 0x08061264 521c adds r2, r2, 1
| |`-> 0x08061266 4478 ldrb r4, [r0, 1]
| | 0x08061268 a242 cmp r2, r4
| `==< 0x0806126a edd3 blo 0x8061248
| 0x0806126c 13f58062 adds.w r2, r3, 0x400
| 0x08061270 4261 str r2, [r0, 0x14]
| 0x08061272 13f58862 adds.w r2, r3, 0x440
| 0x08061276 c0f8cc20 str.w r2, [r0, 0xcc]
| 0x0806127a 0022 movs r2, 0
| ,=< 0x0806127c 08e0 b 0x8061290
| .--> 0x0806127e 10eb8204 adds.w r4, r0, r2, lsl 2
| || 0x08061282 13eb4215 adds.w r5, r3, r2, lsl 5
| || 0x08061286 15f5a065 adds.w r5, r5, 0x500
| || 0x0806128a c4f89050 str.w r5, [r4, 0x90]
| || 0x0806128e 521c adds r2, r2, 1
| |`-> 0x08061290 0478 ldrb r4, [r0]
| | 0x08061292 a242 cmp r2, r4
| `==< 0x08061294 f3d3 blo 0x806127e
| 0x08061296 0022 movs r2, 0
| ,=< 0x08061298 0ae0 b 0x80612b0
| .--> 0x0806129a 10eb8204 adds.w r4, r0, r2, lsl 2
| || 0x0806129e 4ff48055 mov.w r5, 0x1000
| || 0x080612a2 05fb0235 mla r5, r5, r2, r3
| || 0x080612a6 15f58055 adds.w r5, r5, 0x1000
| || 0x080612aa c4f8d050 str.w r5, [r4, 0xd0]
| || 0x080612ae 521c adds r2, r2, 1
| |`-> 0x080612b0 0478 ldrb r4, [r0]
| | 0x080612b2 a242 cmp r2, r4
| `==< 0x080612b4 f1d3 blo 0x806129a
| 0x080612b6 13f56062 adds.w r2, r3, 0xe00
| 0x080612ba c0f80c21 str.w r2, [r0, 0x10c]
| 0x080612be 0800 movs r0, r1
| 0x080612c0 c0b2 uxtb r0, r0
| 0x080612c2 30bc pop {r4, r5}
\ 0x080612c4 7047 bx lr
/ (fcn) func_612c6 182
| Caller: func_59276
| func_612c6 ();
| 0x080612c6 70b5 push {r4, r5, r6, lr}
| 0x080612c8 0400 movs r4, r0
| 0x080612ca 0025 movs r5, 0
| 0x080612cc 0020 movs r0, 0
| 0x080612ce 0021 movs r1, 0
| 0x080612d0 0026 movs r6, 0
| 0x080612d2 227a ldrb r2, [r4, 8]
| 0x080612d4 012a cmp r2, 1 ; 1
| ,=< 0x080612d6 26d1 bne 0x8061326
| | 0x080612d8 e068 ldr r0, [r4, 0xc]
| | 0x080612da 816b ldr r1, [r0, 0x38]
| | 0x080612dc 31f48031 bics r1, r1, 0x10000
| | 0x080612e0 607a ldrb r0, [r4, 9]
| | 0x080612e2 0028 cmp r0, 0
| ,==< 0x080612e4 01d0 beq 0x80612ea
| || 0x080612e6 51f48011 orrs r1, r1, 0x100000
| `--> 0x080612ea e068 ldr r0, [r4, 0xc]
| | 0x080612ec 8163 str r1, [r0, 0x38]
| | 0x080612ee 0020 movs r0, 0
| | 0x080612f0 e168 ldr r1, [r4, 0xc]
| | 0x080612f2 c968 ldr r1, [r1, 0xc]
| | 0x080612f4 0800 movs r0, r1
| | 0x080612f6 30f04000 bics r0, r0, 0x40
| | 0x080612fa 30f48000 bics r0, r0, 0x400000
| | 0x080612fe 30f40030 bics r0, r0, 0x20000
| | 0x08061302 30f40020 bics r0, r0, 0x80000
| | 0x08061306 e168 ldr r1, [r4, 0xc]
| | 0x08061308 c860 str r0, [r1, 0xc]
| | 0x0806130a 2000 movs r0, r4
| | 0x0806130c fff708ff bl func_61120
| | 0x08061310 e078 ldrb r0, [r4, 3]
| | 0x08061312 0128 cmp r0, 1 ; 1
| ,==< 0x08061314 23d1 bne 0x806135e
| || 0x08061316 0520 movs r0, 5 ; 5
| || 0x08061318 60f34406 bfi r6, r0, 1, 4
| || 0x0806131c 56f02006 orrs r6, r6, 0x20
| || 0x08061320 e068 ldr r0, [r4, 0xc]
| || 0x08061322 8660 str r6, [r0, 8]
| ,===< 0x08061324 1be0 b 0x806135e
| ||`-> 0x08061326 e068 ldr r0, [r4, 0xc]
| || 0x08061328 c068 ldr r0, [r0, 0xc]
| || 0x0806132a 50f04000 orrs r0, r0, 0x40
| || 0x0806132e e168 ldr r1, [r4, 0xc]
| || 0x08061330 c860 str r0, [r1, 0xc]
| || 0x08061332 2000 movs r0, r4
| || 0x08061334 fff7f4fe bl func_61120
| || 0x08061338 0021 movs r1, 0
| || 0x0806133a 51f48031 orrs r1, r1, 0x10000
| || 0x0806133e 31f48021 bics r1, r1, 0x40000
| || 0x08061342 31f40021 bics r1, r1, 0x80000
| || 0x08061346 51f40011 orrs r1, r1, 0x200000
| || 0x0806134a 607a ldrb r0, [r4, 9]
| || 0x0806134c 0028 cmp r0, 0
| ||,=< 0x0806134e 01d0 beq 0x8061354
| ||| 0x08061350 51f48011 orrs r1, r1, 0x100000
| ||`-> 0x08061354 e068 ldr r0, [r4, 0xc]
| || 0x08061356 8163 str r1, [r0, 0x38]
| || 0x08061358 1420 movs r0, 0x14 ; 20
| || 0x0806135a f7f785ff bl func_59268
| ``--> 0x0806135e e078 ldrb r0, [r4, 3]
| 0x08061360 0128 cmp r0, 1 ; 1
| ,=< 0x08061362 08d1 bne 0x8061376
| | 0x08061364 e068 ldr r0, [r4, 0xc]
| | 0x08061366 8668 ldr r6, [r0, 8]
| | 0x08061368 0520 movs r0, 5 ; 5
| | 0x0806136a 60f34406 bfi r6, r0, 1, 4
| | 0x0806136e 56f02006 orrs r6, r6, 0x20
| | 0x08061372 e068 ldr r0, [r4, 0xc]
| | 0x08061374 8660 str r6, [r0, 8]
| `-> 0x08061376 2800 movs r0, r5
| 0x08061378 c0b2 uxtb r0, r0
\ 0x0806137a 70bd pop {r4, r5, r6, pc}
/ (fcn) func_6137c 24
| Caller: func_59276
| func_6137c ();
| 0x0806137c 0021 movs r1, 0
| 0x0806137e 0022 movs r2, 0
| 0x08061380 52f00102 orrs r2, r2, 1
| 0x08061384 c368 ldr r3, [r0, 0xc]
| 0x08061386 9b68 ldr r3, [r3, 8]
| 0x08061388 1a43 orrs r2, r3
| 0x0806138a c068 ldr r0, [r0, 0xc]
| 0x0806138c 8260 str r2, [r0, 8]
| 0x0806138e 0800 movs r0, r1
| 0x08061390 c0b2 uxtb r0, r0
\ 0x08061392 7047 bx lr
/ (fcn) func_61394 26
| Caller: func_59276
| func_61394 ();
| 0x08061394 0021 movs r1, 0
| 0x08061396 0022 movs r2, 0
| 0x08061398 52f00102 orrs r2, r2, 1
| 0x0806139c c368 ldr r3, [r0, 0xc]
| 0x0806139e 9b68 ldr r3, [r3, 8]
| 0x080613a0 33ea0202 bics.w r2, r3, r2
| 0x080613a4 c068 ldr r0, [r0, 0xc]
| 0x080613a6 8260 str r2, [r0, 8]
| 0x080613a8 0800 movs r0, r1
| 0x080613aa c0b2 uxtb r0, r0
\ 0x080613ac 7047 bx lr
/ (fcn) func_613ae 70
| Caller: func_614b2 func_93d6a
| func_613ae ();
| 0x080613ae 10b5 push {r4, lr}
| 0x080613b0 82b0 sub sp, 8
| 0x080613b2 0024 movs r4, 0
| 0x080613b4 0022 movs r2, 0
| 0x080613b6 0023 movs r3, 0
| 0x080613b8 0093 str r3, [sp]
| 0x080613ba 009b ldr r3, [sp]
| 0x080613bc 53f02003 orrs r3, r3, 0x20
| 0x080613c0 0093 str r3, [sp]
| 0x080613c2 009b ldr r3, [sp]
| 0x080613c4 61f38a13 bfi r3, r1, 6, 5
| 0x080613c8 0093 str r3, [sp]
| 0x080613ca c168 ldr r1, [r0, 0xc]
| 0x080613cc 009b ldr r3, [sp]
| 0x080613ce 0b61 str r3, [r1, 0x10]
| .-> 0x080613d0 c168 ldr r1, [r0, 0xc]
| | 0x080613d2 0969 ldr r1, [r1, 0x10]
| | 0x080613d4 0091 str r1, [sp]
| | 0x080613d6 521c adds r2, r2, 1
| | 0x080613d8 1649 ldr r1, [0x08061434] ; [0x8061434:4]=0x30d41
| | 0x080613da 8a42 cmp r2, r1
| ,==< 0x080613dc 04d2 bhs 0x80613e8
| || 0x080613de 0099 ldr r1, [sp]
| || 0x080613e0 c1f34011 ubfx r1, r1, 5, 1
| || 0x080613e4 c907 lsls r1, r1, 0x1f
| |`=< 0x080613e6 f3d4 bmi 0x80613d0
| `--> 0x080613e8 0320 movs r0, 3 ; 3
| 0x080613ea f7f732ff bl func_59252
| 0x080613ee 2000 movs r0, r4
| 0x080613f0 c0b2 uxtb r0, r0
\ 0x080613f2 16bd pop {r1, r2, r4, pc}
/ (fcn) func_613f4 62
| Caller: func_614b2
| func_613f4 ();
| 0x080613f4 10b5 push {r4, lr}
| 0x080613f6 82b0 sub sp, 8
| 0x080613f8 0024 movs r4, 0
| 0x080613fa 0021 movs r1, 0
| 0x080613fc 0022 movs r2, 0
| 0x080613fe 0092 str r2, [sp]
| 0x08061400 009a ldr r2, [sp]
| 0x08061402 52f01002 orrs r2, r2, 0x10
| 0x08061406 0092 str r2, [sp]
| 0x08061408 c268 ldr r2, [r0, 0xc]
| 0x0806140a 009b ldr r3, [sp]
| 0x0806140c 1361 str r3, [r2, 0x10]
| .-> 0x0806140e c268 ldr r2, [r0, 0xc]
| | 0x08061410 1269 ldr r2, [r2, 0x10]
| | 0x08061412 0092 str r2, [sp]
| | 0x08061414 491c adds r1, r1, 1
| | 0x08061416 074a ldr r2, [0x08061436] ; [0x8061434:4]=0x30d41
| | 0x08061418 9142 cmp r1, r2
| ,==< 0x0806141a 04d2 bhs 0x8061426
| || 0x0806141c 009a ldr r2, [sp]
| || 0x0806141e c2f30012 ubfx r2, r2, 4, 1
| || 0x08061422 d207 lsls r2, r2, 0x1f
| |`=< 0x08061424 f3d4 bmi 0x806140e
| `--> 0x08061426 0320 movs r0, 3 ; 3
| 0x08061428 f7f713ff bl func_59252
| 0x0806142c 2000 movs r0, r4
| 0x0806142e c0b2 uxtb r0, r0
\ 0x08061430 16bd pop {r1, r2, r4, pc}
/ (fcn) func_6143c 54
| Caller: func_59276
| func_6143c ();
| 0x0806143c 10b5 push {r4, lr}
| 0x0806143e 0024 movs r4, 0
| 0x08061440 c268 ldr r2, [r0, 0xc]
| 0x08061442 d268 ldr r2, [r2, 0xc]
| 0x08061444 32f00052 bics r2, r2, 0x20000000
| 0x08061448 32f08042 bics r2, r2, 0x40000000
| 0x0806144c c9b2 uxtb r1, r1
| 0x0806144e 0129 cmp r1, 1 ; 1
| ,=< 0x08061450 02d1 bne 0x8061458
| | 0x08061452 52f00052 orrs r2, r2, 0x20000000
| ,==< 0x08061456 04e0 b 0x8061462
| |`-> 0x08061458 c9b2 uxtb r1, r1
| | 0x0806145a 0029 cmp r1, 0
| |,=< 0x0806145c 01d1 bne 0x8061462
| || 0x0806145e 52f08042 orrs r2, r2, 0x40000000
| ``-> 0x08061462 c068 ldr r0, [r0, 0xc]
| 0x08061464 c260 str r2, [r0, 0xc]
| 0x08061466 3220 movs r0, 0x32 ; '2' ; 50
| 0x08061468 f7f7fefe bl func_59268
| 0x0806146c 2000 movs r0, r4
| 0x0806146e c0b2 uxtb r0, r0
\ 0x08061470 10bd pop {r4, pc}
/ (fcn) func_61472 10
| Caller: func_6147c
| func_61472 ();
| 0x08061472 c068 ldr r0, [r0, 0xc]
| 0x08061474 4069 ldr r0, [r0, 0x14]
| 0x08061476 10f00100 ands r0, r0, 1
\ 0x0806147a 7047 bx lr
/ (fcn) func_6147c 20
| Caller: CalledFromUSB_IRQ
| func_6147c ();
| 0x0806147c 80b5 push {r7, lr}
| 0x0806147e fff7f8ff bl func_61472
| 0x08061482 0128 cmp r0, 1 ; 1
| ,=< 0x08061484 01d0 beq 0x806148a
| | 0x08061486 0120 movs r0, 1 ; 1
| ,==< 0x08061488 00e0 b 0x806148c
| |`-> 0x0806148a 0020 movs r0, 0
| `--> 0x0806148c c0b2 uxtb r0, r0
\ 0x0806148e 02bd pop {r1, pc}
/ (fcn) func_61490 18
| Caller: CalledFromUSB_IRQ
| func_61490 ();
| 0x08061490 0021 movs r1, 0
| 0x08061492 c268 ldr r2, [r0, 0xc]
| 0x08061494 5269 ldr r2, [r2, 0x14]
| 0x08061496 1100 movs r1, r2
| 0x08061498 c068 ldr r0, [r0, 0xc]
| 0x0806149a 8069 ldr r0, [r0, 0x18]
| 0x0806149c 0140 ands r1, r0
| 0x0806149e 0800 movs r0, r1
\ 0x080614a0 7047 bx lr
/ (fcn) func_614a2 16
| Caller: func_614b2
| func_614a2 ();
| 0x080614a2 0269 ldr r2, [r0, 0x10]
| 0x080614a4 1268 ldr r2, [r2]
| 0x080614a6 c9b2 uxtb r1, r1
| 0x080614a8 61f30102 bfi r2, r1, 0, 2
| 0x080614ac 0069 ldr r0, [r0, 0x10]
| 0x080614ae 0260 str r2, [r0]
\ 0x080614b0 7047 bx lr
/ (fcn) func_614b2 368
| Caller: func_59276
| func_614b2 ();
| 0x080614b2 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x080614b4 0400 movs r4, r0
| 0x080614b6 0025 movs r5, 0
| 0x080614b8 0020 movs r0, 0
| 0x080614ba 0022 movs r2, 0
| 0x080614bc 0026 movs r6, 0
| 0x080614be 0027 movs r7, 0
| 0x080614c0 0021 movs r1, 0
| 0x080614c2 d4f80c31 ldr.w r3, [r4, 0x10c]
| 0x080614c6 5ff0000c movs.w ip, 0
| 0x080614ca c3f800c0 str.w ip, [r3]
| 0x080614ce 2369 ldr r3, [r4, 0x10]
| 0x080614d0 1b68 ldr r3, [r3]
| 0x080614d2 1a00 movs r2, r3
| 0x080614d4 32f4c052 bics r2, r2, 0x1800
| 0x080614d8 2369 ldr r3, [r4, 0x10]
| 0x080614da 1a60 str r2, [r3]
| 0x080614dc e27a ldrb r2, [r4, 0xb]
| 0x080614de 012a cmp r2, 1 ; 1
| ,=< 0x080614e0 28d1 bne 0x8061534
| | 0x080614e2 0321 movs r1, 3 ; 3
| | 0x080614e4 2000 movs r0, r4
| | 0x080614e6 fff7dcff bl func_614a2
| | 0x080614ea e068 ldr r0, [r4, 0xc]
| | 0x080614ec a021 movs r1, 0xa0 ; 160
| | 0x080614ee 4162 str r1, [r0, 0x24]
| | 0x080614f0 a020 movs r0, 0xa0 ; 160
| | 0x080614f2 60f31f46 bfi r6, r0, 0x10, 0x10
| | 0x080614f6 a020 movs r0, 0xa0 ; 160
| | 0x080614f8 60f30f06 bfi r6, r0, 0, 0x10
| | 0x080614fc e068 ldr r0, [r4, 0xc]
| | 0x080614fe 8662 str r6, [r0, 0x28]
| | 0x08061500 16eb1640 adds.w r0, r6, r6, lsr 16
| | 0x08061504 60f30f07 bfi r7, r0, 0, 0x10
| | 0x08061508 bfb2 uxth r7, r7
| | 0x0806150a e068 ldr r0, [r4, 0xc]
| | 0x0806150c c0f80471 str.w r7, [r0, 0x104]
| | 0x08061510 17eb1740 adds.w r0, r7, r7, lsr 16
| | 0x08061514 80b2 uxth r0, r0
| | 0x08061516 50f00007 orrs r7, r0, 0
| | 0x0806151a bfb2 uxth r7, r7
| | 0x0806151c e068 ldr r0, [r4, 0xc]
| | 0x0806151e c0f80871 str.w r7, [r0, 0x108]
| | 0x08061522 17eb1740 adds.w r0, r7, r7, lsr 16
| | 0x08061526 80b2 uxth r0, r0
| | 0x08061528 50f00007 orrs r7, r0, 0
| | 0x0806152c bfb2 uxth r7, r7
| | 0x0806152e e068 ldr r0, [r4, 0xc]
| | 0x08061530 c0f80c71 str.w r7, [r0, 0x10c]
| `-> 0x08061534 1021 movs r1, 0x10 ; 16
| 0x08061536 2000 movs r0, r4
| 0x08061538 fff739ff bl func_613ae
| 0x0806153c 2000 movs r0, r4
| 0x0806153e fff759ff bl func_613f4
| 0x08061542 2069 ldr r0, [r4, 0x10]
| 0x08061544 0021 movs r1, 0
| 0x08061546 0161 str r1, [r0, 0x10]
| 0x08061548 2069 ldr r0, [r4, 0x10]
| 0x0806154a 0021 movs r1, 0
| 0x0806154c 4161 str r1, [r0, 0x14]
| 0x0806154e 2069 ldr r0, [r4, 0x10]
| 0x08061550 5ff0ff31 movs.w r1, -1 ; -1
| 0x08061554 8161 str r1, [r0, 0x18]
| 0x08061556 2069 ldr r0, [r4, 0x10]
| 0x08061558 0021 movs r1, 0
| 0x0806155a c161 str r1, [r0, 0x1c]
| 0x0806155c 0021 movs r1, 0
| ,=< 0x0806155e 0fe0 b 0x8061580
| .--> 0x08061560 0020 movs r0, 0
| .---> 0x08061562 14eb8102 adds.w r2, r4, r1, lsl 2
| ||| 0x08061566 9269 ldr r2, [r2, 0x18]
| ||| 0x08061568 1060 str r0, [r2]
| ||| 0x0806156a 14eb8100 adds.w r0, r4, r1, lsl 2
| ||| 0x0806156e 8069 ldr r0, [r0, 0x18]
| ||| 0x08061570 0022 movs r2, 0
| ||| 0x08061572 0261 str r2, [r0, 0x10]
| ||| 0x08061574 14eb8100 adds.w r0, r4, r1, lsl 2
| ||| 0x08061578 8069 ldr r0, [r0, 0x18]
| ||| 0x0806157a ff22 movs r2, 0xff ; 255
| ||| 0x0806157c 8260 str r2, [r0, 8]
| ||| 0x0806157e 491c adds r1, r1, 1
| ||`-> 0x08061580 6078 ldrb r0, [r4, 1]
| || 0x08061582 8142 cmp r1, r0
| ||,=< 0x08061584 0bd2 bhs 0x806159e
| ||| 0x08061586 14eb8100 adds.w r0, r4, r1, lsl 2
| ||| 0x0806158a 8069 ldr r0, [r0, 0x18]
| ||| 0x0806158c 0068 ldr r0, [r0]
| ||| 0x0806158e 0028 cmp r0, 0
| |`==< 0x08061590 e6d5 bpl 0x8061560
| | | 0x08061592 0020 movs r0, 0
| | | 0x08061594 50f08040 orrs r0, r0, 0x40000000
| | | 0x08061598 50f00060 orrs r0, r0, 0x8000000
| `===< 0x0806159c e1e7 b 0x8061562
| `-> 0x0806159e 0021 movs r1, 0
| ,=< 0x080615a0 0fe0 b 0x80615c2
| .--> 0x080615a2 0020 movs r0, 0
| .---> 0x080615a4 14eb8102 adds.w r2, r4, r1, lsl 2
| ||| 0x080615a8 526d ldr r2, [r2, 0x54]
| ||| 0x080615aa 1060 str r0, [r2]
| ||| 0x080615ac 14eb8100 adds.w r0, r4, r1, lsl 2
| ||| 0x080615b0 406d ldr r0, [r0, 0x54]
| ||| 0x080615b2 0022 movs r2, 0
| ||| 0x080615b4 0261 str r2, [r0, 0x10]
| ||| 0x080615b6 14eb8100 adds.w r0, r4, r1, lsl 2
| ||| 0x080615ba 406d ldr r0, [r0, 0x54]
| ||| 0x080615bc ff22 movs r2, 0xff ; 255
| ||| 0x080615be 8260 str r2, [r0, 8]
| ||| 0x080615c0 491c adds r1, r1, 1
| ||`-> 0x080615c2 6078 ldrb r0, [r4, 1]
| || 0x080615c4 8142 cmp r1, r0
| ||,=< 0x080615c6 0bd2 bhs 0x80615e0
| ||| 0x080615c8 14eb8100 adds.w r0, r4, r1, lsl 2
| ||| 0x080615cc 406d ldr r0, [r0, 0x54]
| ||| 0x080615ce 0068 ldr r0, [r0]
| ||| 0x080615d0 0028 cmp r0, 0
| |`==< 0x080615d2 e6d5 bpl 0x80615a2
| | | 0x080615d4 0020 movs r0, 0
| | | 0x080615d6 50f08040 orrs r0, r0, 0x40000000
| | | 0x080615da 50f00060 orrs r0, r0, 0x8000000
| `===< 0x080615de e1e7 b 0x80615a4
| `-> 0x080615e0 0021 movs r1, 0
| 0x080615e2 51f48071 orrs r1, r1, 0x100
| 0x080615e6 2069 ldr r0, [r4, 0x10]
| 0x080615e8 0069 ldr r0, [r0, 0x10]
| 0x080615ea 8843 bics r0, r1
| 0x080615ec 0843 orrs r0, r1
| 0x080615ee 2169 ldr r1, [r4, 0x10]
| 0x080615f0 0861 str r0, [r1, 0x10]
| 0x080615f2 e078 ldrb r0, [r4, 3]
| 0x080615f4 0128 cmp r0, 1 ; 1
| ,=< 0x080615f6 0ed1 bne 0x8061616
| | 0x080615f8 0020 movs r0, 0
| | 0x080615fa 50f00100 orrs r0, r0, 1
| | 0x080615fe 50f00200 orrs r0, r0, 2
| | 0x08061602 4021 movs r1, 0x40 ; '@' ; 64
| | 0x08061604 61f38a00 bfi r0, r1, 2, 9
| | 0x08061608 50f48030 orrs r0, r0, 0x10000
| | 0x0806160c 4021 movs r1, 0x40 ; '@' ; 64
| | 0x0806160e 61f35940 bfi r0, r1, 0x11, 9
| | 0x08061612 2169 ldr r1, [r4, 0x10]
| | 0x08061614 0863 str r0, [r1, 0x30]
| `-> 0x08061616 2000 movs r0, r4
| 0x08061618 00f003f8 bl func_61622
| 0x0806161c 2800 movs r0, r5
| 0x0806161e c0b2 uxtb r0, r0
\ 0x08061620 f2bd pop {r1, r4, r5, r6, r7, pc}
/ (fcn) func_61622 88
| Caller: func_614b2
| func_61622 ();
| 0x08061622 70b5 push {r4, r5, r6, lr}
| 0x08061624 0400 movs r4, r0
| 0x08061626 0025 movs r5, 0
| 0x08061628 0026 movs r6, 0
| 0x0806162a e068 ldr r0, [r4, 0xc]
| 0x0806162c 0021 movs r1, 0
| 0x0806162e 8161 str r1, [r0, 0x18]
| 0x08061630 e068 ldr r0, [r4, 0xc]
| 0x08061632 7ff08041 mvns r1, 0x40000000
| 0x08061636 4161 str r1, [r0, 0x14]
| 0x08061638 2000 movs r0, r4
| 0x0806163a fff761fd bl func_61100
| 0x0806163e e078 ldrb r0, [r4, 3]
| 0x08061640 0028 cmp r0, 0
| ,=< 0x08061642 01d1 bne 0x8061648
| | 0x08061644 56f01006 orrs r6, r6, 0x10
| `-> 0x08061648 56f40066 orrs r6, r6, 0x800
| 0x0806164c 56f48056 orrs r6, r6, 0x1000
| 0x08061650 56f40056 orrs r6, r6, 0x2000
| 0x08061654 56f48026 orrs r6, r6, 0x40000
| 0x08061658 56f40026 orrs r6, r6, 0x80000
| 0x0806165c 56f00806 orrs r6, r6, 8
| 0x08061660 56f48016 orrs r6, r6, 0x100000
| 0x08061664 56f40016 orrs r6, r6, 0x200000
| 0x08061668 e068 ldr r0, [r4, 0xc]
| 0x0806166a 8069 ldr r0, [r0, 0x18]
| 0x0806166c b043 bics r0, r6
| 0x0806166e 3043 orrs r0, r6
| 0x08061670 e168 ldr r1, [r4, 0xc]
| 0x08061672 8861 str r0, [r1, 0x18]
| 0x08061674 2800 movs r0, r5
| 0x08061676 c0b2 uxtb r0, r0
\ 0x08061678 70bd pop {r4, r5, r6, pc}
/ (fcn) func_6167a 44
| Caller: func_93e24
| func_6167a ();
| 0x0806167a 0021 movs r1, 0
| 0x0806167c 0069 ldr r0, [r0, 0x10]
| 0x0806167e 8068 ldr r0, [r0, 8]
| 0x08061680 4008 lsrs r0, r0, 1
| 0x08061682 10f00300 ands r0, r0, 3
| 0x08061686 0028 cmp r0, 0
| ,=< 0x08061688 05d0 beq 0x8061696
| | 0x0806168a 0228 cmp r0, 2 ; 2
| ,==< 0x0806168c 07d0 beq 0x806169e
| ,===< 0x0806168e 04d3 blo 0x806169a
| ||| 0x08061690 0328 cmp r0, 3 ; 3
| ,====< 0x08061692 02d0 beq 0x806169a
| ,=====< 0x08061694 04e0 b 0x80616a0
| ||||`-> 0x08061696 0321 movs r1, 3 ; 3
| ||||,=< 0x08061698 02e0 b 0x80616a0
| |``---> 0x0806169a 0221 movs r1, 2 ; 2
| | ,===< 0x0806169c 00e0 b 0x80616a0
| | |`--> 0x0806169e 0121 movs r1, 1 ; 1
| `-`-`-> 0x080616a0 0800 movs r0, r1
| 0x080616a2 c0b2 uxtb r0, r0
\ 0x080616a4 7047 bx lr
/ (fcn) func_616a6 74
| Caller: func_93e24
| func_616a6 ();
| 0x080616a6 10b4 push {r4}
| 0x080616a8 0021 movs r1, 0
| 0x080616aa 0024 movs r4, 0
| 0x080616ac 0269 ldr r2, [r0, 0x10]
| 0x080616ae 9268 ldr r2, [r2, 8]
| 0x080616b0 8369 ldr r3, [r0, 0x18]
| 0x080616b2 1b68 ldr r3, [r3]
| 0x080616b4 5208 lsrs r2, r2, 1
| 0x080616b6 12f00302 ands r2, r2, 3
| 0x080616ba 002a cmp r2, 0
| ,=< 0x080616bc 04d0 beq 0x80616c8
| | 0x080616be 022a cmp r2, 2 ; 2
| ,==< 0x080616c0 05d0 beq 0x80616ce
| ,===< 0x080616c2 01d3 blo 0x80616c8
| ||| 0x080616c4 032a cmp r2, 3 ; 3
| ,====< 0x080616c6 05d1 bne 0x80616d4
| |`-`-> 0x080616c8 db0a lsrs r3, r3, 0xb
| | | 0x080616ca db02 lsls r3, r3, 0xb
| | |,=< 0x080616cc 02e0 b 0x80616d4
| | `--> 0x080616ce 0322 movs r2, 3 ; 3
| | | 0x080616d0 62f30a03 bfi r3, r2, 0, 0xb
| `--`-> 0x080616d4 8269 ldr r2, [r0, 0x18]
| 0x080616d6 1360 str r3, [r2]
| 0x080616d8 54f48074 orrs r4, r4, 0x100
| 0x080616dc 0269 ldr r2, [r0, 0x10]
| 0x080616de 5268 ldr r2, [r2, 4]
| 0x080616e0 a243 bics r2, r4
| 0x080616e2 2243 orrs r2, r4
| 0x080616e4 0069 ldr r0, [r0, 0x10]
| 0x080616e6 4260 str r2, [r0, 4]
| 0x080616e8 0800 movs r0, r1
| 0x080616ea c0b2 uxtb r0, r0
| 0x080616ec 10bc pop {r4}
\ 0x080616ee 7047 bx lr
/ (fcn) func_616f0 114
| Caller: func_5930c
| func_616f0 ();
| 0x080616f0 70b4 push {r4, r5, r6}
| 0x080616f2 0a00 movs r2, r1
| 0x080616f4 0021 movs r1, 0
| 0x080616f6 0025 movs r5, 0
| 0x080616f8 0023 movs r3, 0
| 0x080616fa 5478 ldrb r4, [r2, 1]
| 0x080616fc 012c cmp r4, 1 ; 1
| ,=< 0x080616fe 0ad1 bne 0x8061716
| | 0x08061700 1478 ldrb r4, [r2]
| | 0x08061702 10eb8404 adds.w r4, r0, r4, lsl 2
| | 0x08061706 a469 ldr r4, [r4, 0x18]
| | 0x08061708 0125 movs r5, 1 ; 1
| | 0x0806170a 92f90060 ldrsb.w r6, [r2]
| | 0x0806170e b540 lsls r5, r6
| | 0x08061710 65f30f03 bfi r3, r5, 0, 0x10
| ,==< 0x08061714 09e0 b 0x806172a
| |`-> 0x08061716 1478 ldrb r4, [r2]
| | 0x08061718 10eb8404 adds.w r4, r0, r4, lsl 2
| | 0x0806171c 646d ldr r4, [r4, 0x54]
| | 0x0806171e 0125 movs r5, 1 ; 1
| | 0x08061720 92f90060 ldrsb.w r6, [r2]
| | 0x08061724 b540 lsls r5, r6
| | 0x08061726 65f31f43 bfi r3, r5, 0x10, 0x10
| `--> 0x0806172a 2568 ldr r5, [r4]
| 0x0806172c c5f3c036 ubfx r6, r5, 0xf, 1
| 0x08061730 f607 lsls r6, r6, 0x1f
| ,=< 0x08061732 0dd4 bmi 0x8061750
| | 0x08061734 9668 ldr r6, [r2, 8]
| | 0x08061736 66f30a05 bfi r5, r6, 0, 0xb
| | 0x0806173a d678 ldrb r6, [r2, 3]
| | 0x0806173c 66f39345 bfi r5, r6, 0x12, 2
| | 0x08061740 d288 ldrh r2, [r2, 6]
| | 0x08061742 62f39955 bfi r5, r2, 0x16, 4
| | 0x08061746 55f08055 orrs r5, r5, 0x10000000
| | 0x0806174a 55f40045 orrs r5, r5, 0x8000
| | 0x0806174e 2560 str r5, [r4]
| `-> 0x08061750 0269 ldr r2, [r0, 0x10]
| 0x08061752 d269 ldr r2, [r2, 0x1c]
| 0x08061754 1a43 orrs r2, r3
| 0x08061756 0069 ldr r0, [r0, 0x10]
| 0x08061758 c261 str r2, [r0, 0x1c]
| 0x0806175a 0800 movs r0, r1
| 0x0806175c c0b2 uxtb r0, r0
| 0x0806175e 70bc pop {r4, r5, r6}
\ 0x08061760 7047 bx lr
/ (fcn) func_61762 358
| Caller: func_593ac func_59366
| func_61762 ();
| 0x08061762 70b5 push {r4, r5, r6, lr}
| 0x08061764 0024 movs r4, 0
| 0x08061766 0025 movs r5, 0
| 0x08061768 0022 movs r2, 0
| 0x0806176a 0023 movs r3, 0
| 0x0806176c 4e78 ldrb r6, [r1, 1]
| 0x0806176e 012e cmp r6, 1 ; 1
| ,=< 0x08061770 62d1 bne 0x8061838
| | 0x08061772 0a78 ldrb r2, [r1]
| | 0x08061774 10eb8202 adds.w r2, r0, r2, lsl 2
| | 0x08061778 9269 ldr r2, [r2, 0x18]
| | 0x0806177a 1268 ldr r2, [r2]
| | 0x0806177c 0b78 ldrb r3, [r1]
| | 0x0806177e 10eb8303 adds.w r3, r0, r3, lsl 2
| | 0x08061782 9b69 ldr r3, [r3, 0x18]
| | 0x08061784 1b69 ldr r3, [r3, 0x10]
| | 0x08061786 4d69 ldr r5, [r1, 0x14]
| | 0x08061788 002d cmp r5, 0
| ,==< 0x0806178a 05d1 bne 0x8061798
| || 0x0806178c db0c lsrs r3, r3, 0x13
| || 0x0806178e db04 lsls r3, r3, 0x13
| || 0x08061790 0125 movs r5, 1 ; 1
| || 0x08061792 65f3dc43 bfi r3, r5, 0x13, 0xa
| ,===< 0x08061796 11e0 b 0x80617bc
| |`--> 0x08061798 4d69 ldr r5, [r1, 0x14]
| | | 0x0806179a 65f31203 bfi r3, r5, 0, 0x13
| | | 0x0806179e 4d69 ldr r5, [r1, 0x14]
| | | 0x080617a0 8e68 ldr r6, [r1, 8]
| | | 0x080617a2 7519 adds r5, r6, r5
| | | 0x080617a4 6d1e subs r5, r5, 1
| | | 0x080617a6 8e68 ldr r6, [r1, 8]
| | | 0x080617a8 b5fbf6f5 udiv r5, r5, r6
| | | 0x080617ac 65f3dc43 bfi r3, r5, 0x13, 0xa
| | | 0x080617b0 cd78 ldrb r5, [r1, 3]
| | | 0x080617b2 012d cmp r5, 1 ; 1
| |,==< 0x080617b4 02d1 bne 0x80617bc
| ||| 0x080617b6 0125 movs r5, 1 ; 1
| ||| 0x080617b8 65f35e73 bfi r3, r5, 0x1d, 2
| ``--> 0x080617bc 0d78 ldrb r5, [r1]
| | 0x080617be 10eb8505 adds.w r5, r0, r5, lsl 2
| | 0x080617c2 ad69 ldr r5, [r5, 0x18]
| | 0x080617c4 2b61 str r3, [r5, 0x10]
| | 0x080617c6 c378 ldrb r3, [r0, 3]
| | 0x080617c8 012b cmp r3, 1 ; 1
| ,==< 0x080617ca 06d1 bne 0x80617da
| || 0x080617cc 0b78 ldrb r3, [r1]
| || 0x080617ce 10eb8303 adds.w r3, r0, r3, lsl 2
| || 0x080617d2 9b69 ldr r3, [r3, 0x18]
| || 0x080617d4 0d69 ldr r5, [r1, 0x10]
| || 0x080617d6 5d61 str r5, [r3, 0x14]
| ,===< 0x080617d8 0fe0 b 0x80617fa
| |`--> 0x080617da cb78 ldrb r3, [r1, 3]
| | | 0x080617dc 012b cmp r3, 1 ; 1
| |,==< 0x080617de 0cd0 beq 0x80617fa
| ||| 0x080617e0 4b69 ldr r3, [r1, 0x14]
| ||| 0x080617e2 002b cmp r3, 0
| ,====< 0x080617e4 09d0 beq 0x80617fa
| |||| 0x080617e6 0123 movs r3, 1 ; 1
| |||| 0x080617e8 91f90050 ldrsb.w r5, [r1]
| |||| 0x080617ec 13fa05f5 lsls.w r5, r3, r5
| |||| 0x080617f0 0369 ldr r3, [r0, 0x10]
| |||| 0x080617f2 5b6b ldr r3, [r3, 0x34]
| |||| 0x080617f4 2b43 orrs r3, r5
| |||| 0x080617f6 0569 ldr r5, [r0, 0x10]
| |||| 0x080617f8 6b63 str r3, [r5, 0x34]
| ```--> 0x080617fa cb78 ldrb r3, [r1, 3]
| | 0x080617fc 012b cmp r3, 1 ; 1
| ,==< 0x080617fe 08d1 bne 0x8061812
| || 0x08061800 0369 ldr r3, [r0, 0x10]
| || 0x08061802 9b68 ldr r3, [r3, 8]
| || 0x08061804 db05 lsls r3, r3, 0x17
| ,===< 0x08061806 02d4 bmi 0x806180e
| ||| 0x08061808 52f00052 orrs r2, r2, 0x20000000
| ,====< 0x0806180c 01e0 b 0x8061812
| |`---> 0x0806180e 52f08052 orrs r2, r2, 0x10000000
| `-`--> 0x08061812 52f08062 orrs r2, r2, 0x4000000
| | 0x08061816 52f00042 orrs r2, r2, 0x80000000
| | 0x0806181a 0b78 ldrb r3, [r1]
| | 0x0806181c 10eb8303 adds.w r3, r0, r3, lsl 2
| | 0x08061820 9b69 ldr r3, [r3, 0x18]
| | 0x08061822 1a60 str r2, [r3]
| | 0x08061824 ca78 ldrb r2, [r1, 3]
| | 0x08061826 012a cmp r2, 1 ; 1
| ,==< 0x08061828 4bd1 bne 0x80618c2
| || 0x0806182a 4b69 ldr r3, [r1, 0x14]
| || 0x0806182c 9bb2 uxth r3, r3
| || 0x0806182e 0a78 ldrb r2, [r1]
| || 0x08061830 c968 ldr r1, [r1, 0xc]
| || 0x08061832 fff7a6fc bl func_61182
| ,===< 0x08061836 44e0 b 0x80618c2
| ||`-> 0x08061838 0a78 ldrb r2, [r1]
| || 0x0806183a 10eb8202 adds.w r2, r0, r2, lsl 2
| || 0x0806183e 526d ldr r2, [r2, 0x54]
| || 0x08061840 1268 ldr r2, [r2]
| || 0x08061842 0b78 ldrb r3, [r1]
| || 0x08061844 10eb8303 adds.w r3, r0, r3, lsl 2
| || 0x08061848 5b6d ldr r3, [r3, 0x54]
| || 0x0806184a 1b69 ldr r3, [r3, 0x10]
| || 0x0806184c 4d69 ldr r5, [r1, 0x14]
| || 0x0806184e 002d cmp r5, 0
| ||,=< 0x08061850 06d1 bne 0x8061860
| ||| 0x08061852 8d68 ldr r5, [r1, 8]
| ||| 0x08061854 65f31203 bfi r3, r5, 0, 0x13
| ||| 0x08061858 0125 movs r5, 1 ; 1
| ||| 0x0806185a 65f3dc43 bfi r3, r5, 0x13, 0xa
| ,====< 0x0806185e 0ee0 b 0x806187e
| |||`-> 0x08061860 4d69 ldr r5, [r1, 0x14]
| ||| 0x08061862 8e68 ldr r6, [r1, 8]
| ||| 0x08061864 7519 adds r5, r6, r5
| ||| 0x08061866 6d1e subs r5, r5, 1
| ||| 0x08061868 8e68 ldr r6, [r1, 8]
| ||| 0x0806186a b5fbf6f5 udiv r5, r5, r6
| ||| 0x0806186e 65f3dc43 bfi r3, r5, 0x13, 0xa
| ||| 0x08061872 c3f3c945 ubfx r5, r3, 0x13, 0xa
| ||| 0x08061876 8e68 ldr r6, [r1, 8]
| ||| 0x08061878 7543 muls r5, r6, r5
| ||| 0x0806187a 65f31203 bfi r3, r5, 0, 0x13
| `----> 0x0806187e 0d78 ldrb r5, [r1]
| || 0x08061880 10eb8505 adds.w r5, r0, r5, lsl 2
| || 0x08061884 6d6d ldr r5, [r5, 0x54]
| || 0x08061886 2b61 str r3, [r5, 0x10]
| || 0x08061888 c378 ldrb r3, [r0, 3]
| || 0x0806188a 012b cmp r3, 1 ; 1
| ||,=< 0x0806188c 05d1 bne 0x806189a
| ||| 0x0806188e 0b78 ldrb r3, [r1]
| ||| 0x08061890 10eb8303 adds.w r3, r0, r3, lsl 2
| ||| 0x08061894 5b6d ldr r3, [r3, 0x54]
| ||| 0x08061896 0d69 ldr r5, [r1, 0x10]
| ||| 0x08061898 5d61 str r5, [r3, 0x14]
| ||`-> 0x0806189a cb78 ldrb r3, [r1, 3]
| || 0x0806189c 012b cmp r3, 1 ; 1
| ||,=< 0x0806189e 07d1 bne 0x80618b0
| ||| 0x080618a0 4b79 ldrb r3, [r1, 5]
| ||| 0x080618a2 002b cmp r3, 0
| ,====< 0x080618a4 02d0 beq 0x80618ac
| |||| 0x080618a6 52f00052 orrs r2, r2, 0x20000000
| ,=====< 0x080618aa 01e0 b 0x80618b0
| |`----> 0x080618ac 52f08052 orrs r2, r2, 0x10000000
| `---`-> 0x080618b0 52f08062 orrs r2, r2, 0x4000000
| || 0x080618b4 52f00042 orrs r2, r2, 0x80000000
| || 0x080618b8 0978 ldrb r1, [r1]
| || 0x080618ba 10eb8100 adds.w r0, r0, r1, lsl 2
| || 0x080618be 406d ldr r0, [r0, 0x54]
| || 0x080618c0 0260 str r2, [r0]
| ``--> 0x080618c2 2000 movs r0, r4
| 0x080618c4 c0b2 uxtb r0, r0
\ 0x080618c6 70bd pop {r4, r5, r6, pc}
/ (fcn) func_618c8 294
| Caller: func_593ac func_59366
| func_618c8 ();
| 0x080618c8 fcb4 push {r2, r3, r4, r5, r6, r7}
| 0x080618ca 0022 movs r2, 0
| 0x080618cc 0024 movs r4, 0
| 0x080618ce 0023 movs r3, 0
| 0x080618d0 0025 movs r5, 0
| 0x080618d2 0095 str r5, [sp]
| 0x080618d4 4d78 ldrb r5, [r1, 1]
| 0x080618d6 012d cmp r5, 1 ; 1
| ,=< 0x080618d8 48d1 bne 0x806196c
| | 0x080618da 8569 ldr r5, [r0, 0x18]
| | 0x080618dc 2b68 ldr r3, [r5]
| | 0x080618de 2e69 ldr r6, [r5, 0x10]
| | 0x080618e0 0096 str r6, [sp]
| | 0x080618e2 4e69 ldr r6, [r1, 0x14]
| | 0x080618e4 002e cmp r6, 0
| ,==< 0x080618e6 09d1 bne 0x80618fc
| || 0x080618e8 009e ldr r6, [sp]
| || 0x080618ea f609 lsrs r6, r6, 7
| || 0x080618ec f601 lsls r6, r6, 7
| || 0x080618ee 0096 str r6, [sp]
| || 0x080618f0 0126 movs r6, 1 ; 1
| || 0x080618f2 009f ldr r7, [sp]
| || 0x080618f4 66f3d447 bfi r7, r6, 0x13, 2
| || 0x080618f8 0097 str r7, [sp]
| ,===< 0x080618fa 15e0 b 0x8061928
| |`--> 0x080618fc 8e68 ldr r6, [r1, 8]
| | | 0x080618fe 4f69 ldr r7, [r1, 0x14]
| | | 0x08061900 be42 cmp r6, r7
| |,==< 0x08061902 07d2 bhs 0x8061914
| ||| 0x08061904 8e68 ldr r6, [r1, 8]
| ||| 0x08061906 4e61 str r6, [r1, 0x14]
| ||| 0x08061908 8e68 ldr r6, [r1, 8]
| ||| 0x0806190a 009f ldr r7, [sp]
| ||| 0x0806190c 66f30607 bfi r7, r6, 0, 7
| ||| 0x08061910 0097 str r7, [sp]
| ,====< 0x08061912 04e0 b 0x806191e
| ||`--> 0x08061914 4e69 ldr r6, [r1, 0x14]
| || | 0x08061916 009f ldr r7, [sp]
| || | 0x08061918 66f30607 bfi r7, r6, 0, 7
| || | 0x0806191c 0097 str r7, [sp]
| `----> 0x0806191e 0126 movs r6, 1 ; 1
| | | 0x08061920 009f ldr r7, [sp]
| | | 0x08061922 66f3d447 bfi r7, r6, 0x13, 2
| | | 0x08061926 0097 str r7, [sp]
| `---> 0x08061928 009e ldr r6, [sp]
| | 0x0806192a 2e61 str r6, [r5, 0x10]
| | 0x0806192c c678 ldrb r6, [r0, 3]
| | 0x0806192e 012e cmp r6, 1 ; 1
| ,==< 0x08061930 05d1 bne 0x806193e
| || 0x08061932 0e78 ldrb r6, [r1]
| || 0x08061934 10eb8606 adds.w r6, r0, r6, lsl 2
| || 0x08061938 b669 ldr r6, [r6, 0x18]
| || 0x0806193a 0f69 ldr r7, [r1, 0x10]
| || 0x0806193c 7761 str r7, [r6, 0x14]
| `--> 0x0806193e 53f08063 orrs r3, r3, 0x4000000
| | 0x08061942 53f00043 orrs r3, r3, 0x80000000
| | 0x08061946 2b60 str r3, [r5]
| | 0x08061948 c378 ldrb r3, [r0, 3]
| | 0x0806194a 002b cmp r3, 0
| ,==< 0x0806194c 4bd1 bne 0x80619e6
| || 0x0806194e 4b69 ldr r3, [r1, 0x14]
| || 0x08061950 002b cmp r3, 0
| ,===< 0x08061952 48d0 beq 0x80619e6
| ||| 0x08061954 0123 movs r3, 1 ; 1
| ||| 0x08061956 91f90010 ldrsb.w r1, [r1]
| ||| 0x0806195a 13fa01f1 lsls.w r1, r3, r1
| ||| 0x0806195e 0c43 orrs r4, r1
| ||| 0x08061960 0169 ldr r1, [r0, 0x10]
| ||| 0x08061962 496b ldr r1, [r1, 0x34]
| ||| 0x08061964 2143 orrs r1, r4
| ||| 0x08061966 0069 ldr r0, [r0, 0x10]
| ||| 0x08061968 4163 str r1, [r0, 0x34]
| ,====< 0x0806196a 3ce0 b 0x80619e6
| |||`-> 0x0806196c 0b78 ldrb r3, [r1]
| ||| 0x0806196e 10eb8303 adds.w r3, r0, r3, lsl 2
| ||| 0x08061972 5b6d ldr r3, [r3, 0x54]
| ||| 0x08061974 1b68 ldr r3, [r3]
| ||| 0x08061976 0c78 ldrb r4, [r1]
| ||| 0x08061978 10eb8404 adds.w r4, r0, r4, lsl 2
| ||| 0x0806197c 646d ldr r4, [r4, 0x54]
| ||| 0x0806197e 2469 ldr r4, [r4, 0x10]
| ||| 0x08061980 0094 str r4, [sp]
| ||| 0x08061982 4c69 ldr r4, [r1, 0x14]
| ||| 0x08061984 002c cmp r4, 0
| |||,=< 0x08061986 0ad1 bne 0x806199e
| |||| 0x08061988 8c68 ldr r4, [r1, 8]
| |||| 0x0806198a 009d ldr r5, [sp]
| |||| 0x0806198c 64f30605 bfi r5, r4, 0, 7
| |||| 0x08061990 0095 str r5, [sp]
| |||| 0x08061992 0124 movs r4, 1 ; 1
| |||| 0x08061994 009d ldr r5, [sp]
| |||| 0x08061996 64f3d445 bfi r5, r4, 0x13, 2
| |||| 0x0806199a 0095 str r5, [sp]
| ,=====< 0x0806199c 0be0 b 0x80619b6
| ||||`-> 0x0806199e 8c68 ldr r4, [r1, 8]
| |||| 0x080619a0 4c61 str r4, [r1, 0x14]
| |||| 0x080619a2 8c68 ldr r4, [r1, 8]
| |||| 0x080619a4 009d ldr r5, [sp]
| |||| 0x080619a6 64f30605 bfi r5, r4, 0, 7
| |||| 0x080619aa 0095 str r5, [sp]
| |||| 0x080619ac 0124 movs r4, 1 ; 1
| |||| 0x080619ae 009d ldr r5, [sp]
| |||| 0x080619b0 64f3d445 bfi r5, r4, 0x13, 2
| |||| 0x080619b4 0095 str r5, [sp]
| `-----> 0x080619b6 0c78 ldrb r4, [r1]
| ||| 0x080619b8 10eb8404 adds.w r4, r0, r4, lsl 2
| ||| 0x080619bc 646d ldr r4, [r4, 0x54]
| ||| 0x080619be 009d ldr r5, [sp]
| ||| 0x080619c0 2561 str r5, [r4, 0x10]
| ||| 0x080619c2 c478 ldrb r4, [r0, 3]
| ||| 0x080619c4 012c cmp r4, 1 ; 1
| |||,=< 0x080619c6 05d1 bne 0x80619d4
| |||| 0x080619c8 0c78 ldrb r4, [r1]
| |||| 0x080619ca 10eb8404 adds.w r4, r0, r4, lsl 2
| |||| 0x080619ce 646d ldr r4, [r4, 0x54]
| |||| 0x080619d0 0d69 ldr r5, [r1, 0x10]
| |||| 0x080619d2 6561 str r5, [r4, 0x14]
| |||`-> 0x080619d4 53f08063 orrs r3, r3, 0x4000000
| ||| 0x080619d8 53f00043 orrs r3, r3, 0x80000000
| ||| 0x080619dc 0978 ldrb r1, [r1]
| ||| 0x080619de 10eb8100 adds.w r0, r0, r1, lsl 2
| ||| 0x080619e2 406d ldr r0, [r0, 0x54]
| ||| 0x080619e4 0360 str r3, [r0]
| ```--> 0x080619e6 1000 movs r0, r2
| 0x080619e8 c0b2 uxtb r0, r0
| 0x080619ea f6bc pop {r1, r2, r4, r5, r6, r7}
\ 0x080619ec 7047 bx lr
/ (fcn) func_619ee 62
| Caller: func_593ea
| func_619ee ();
| 0x080619ee 10b4 push {r4}
| 0x080619f0 0022 movs r2, 0
| 0x080619f2 0023 movs r3, 0
| 0x080619f4 4c78 ldrb r4, [r1, 1]
| 0x080619f6 012c cmp r4, 1 ; 1
| ,=< 0x080619f8 0cd1 bne 0x8061a14
| | 0x080619fa 0978 ldrb r1, [r1]
| | 0x080619fc 10eb8100 adds.w r0, r0, r1, lsl 2
| | 0x08061a00 8069 ldr r0, [r0, 0x18]
| | 0x08061a02 0368 ldr r3, [r0]
| | 0x08061a04 002b cmp r3, 0
| ,==< 0x08061a06 01d5 bpl 0x8061a0c
| || 0x08061a08 53f08043 orrs r3, r3, 0x40000000
| `--> 0x08061a0c 53f40013 orrs r3, r3, 0x200000
| | 0x08061a10 0360 str r3, [r0]
| ,==< 0x08061a12 07e0 b 0x8061a24
| |`-> 0x08061a14 0978 ldrb r1, [r1]
| | 0x08061a16 10eb8100 adds.w r0, r0, r1, lsl 2
| | 0x08061a1a 406d ldr r0, [r0, 0x54]
| | 0x08061a1c 0368 ldr r3, [r0]
| | 0x08061a1e 53f40013 orrs r3, r3, 0x200000
| | 0x08061a22 0360 str r3, [r0]
| `--> 0x08061a24 1000 movs r0, r2
| 0x08061a26 c0b2 uxtb r0, r0
| 0x08061a28 10bc pop {r4}
\ 0x08061a2a 7047 bx lr
/ (fcn) func_61a2c 62
| Caller: func_59430
| func_61a2c ();
| 0x08061a2c 10b4 push {r4}
| 0x08061a2e 0022 movs r2, 0
| 0x08061a30 0023 movs r3, 0
| 0x08061a32 4c78 ldrb r4, [r1, 1]
| 0x08061a34 012c cmp r4, 1 ; 1
| ,=< 0x08061a36 04d1 bne 0x8061a42
| | 0x08061a38 0b78 ldrb r3, [r1]
| | 0x08061a3a 10eb8300 adds.w r0, r0, r3, lsl 2
| | 0x08061a3e 8069 ldr r0, [r0, 0x18]
| ,==< 0x08061a40 03e0 b 0x8061a4a
| |`-> 0x08061a42 0b78 ldrb r3, [r1]
| | 0x08061a44 10eb8300 adds.w r0, r0, r3, lsl 2
| | 0x08061a48 406d ldr r0, [r0, 0x54]
| `--> 0x08061a4a 0368 ldr r3, [r0]
| 0x08061a4c 33f40013 bics r3, r3, 0x200000
| 0x08061a50 cc78 ldrb r4, [r1, 3]
| 0x08061a52 032c cmp r4, 3 ; 3
| ,=< 0x08061a54 02d0 beq 0x8061a5c
| | 0x08061a56 c978 ldrb r1, [r1, 3]
| | 0x08061a58 0229 cmp r1, 2 ; 2
| ,==< 0x08061a5a 01d1 bne 0x8061a60
| |`-> 0x08061a5c 53f08053 orrs r3, r3, 0x10000000
| `--> 0x08061a60 0360 str r3, [r0]
| 0x08061a62 1000 movs r0, r2
| 0x08061a64 c0b2 uxtb r0, r0
| 0x08061a66 10bc pop {r4}
\ 0x08061a68 7047 bx lr
/ (fcn) func_61a6a 14
| Caller: func_93b5e
| func_61a6a ();
| 0x08061a6a 0169 ldr r1, [r0, 0x10]
| 0x08061a6c 8969 ldr r1, [r1, 0x18]
| 0x08061a6e 0069 ldr r0, [r0, 0x10]
| 0x08061a70 c069 ldr r0, [r0, 0x1c]
| 0x08061a72 0140 ands r1, r0
| 0x08061a74 080c lsrs r0, r1, 0x10
\ 0x08061a76 7047 bx lr
/ (fcn) func_61a78 20
| Caller: func_93b5e
| func_61a78 ();
| 0x08061a78 c9b2 uxtb r1, r1
| 0x08061a7a 10eb8101 adds.w r1, r0, r1, lsl 2
| 0x08061a7e 496d ldr r1, [r1, 0x54]
| 0x08061a80 8968 ldr r1, [r1, 8]
| 0x08061a82 0069 ldr r0, [r0, 0x10]
| 0x08061a84 4069 ldr r0, [r0, 0x14]
| 0x08061a86 0140 ands r1, r0
| 0x08061a88 0800 movs r0, r1
\ 0x08061a8a 7047 bx lr
/ (fcn) func_61a8c 14
| Caller: func_93a6a
| func_61a8c ();
| 0x08061a8c 0169 ldr r1, [r0, 0x10]
| 0x08061a8e 8969 ldr r1, [r1, 0x18]
| 0x08061a90 0069 ldr r0, [r0, 0x10]
| 0x08061a92 c069 ldr r0, [r0, 0x1c]
| 0x08061a94 0140 ands r1, r0
| 0x08061a96 88b2 uxth r0, r1
\ 0x08061a98 7047 bx lr
/ (fcn) func_61a9a 80
| Caller: func_59ba2 func_93b5e func_93a6a func_59a8c func_59b7e func_93d6a
| func_61a9a ();
| 0x08061a9a 82b0 sub sp, 8
| 0x08061a9c 0021 movs r1, 0
| 0x08061a9e 0091 str r1, [sp]
| 0x08061aa0 0099 ldr r1, [sp]
| 0x08061aa2 51f04041 orrs r1, r1, 0xc0000000
| 0x08061aa6 0091 str r1, [sp]
| 0x08061aa8 0121 movs r1, 1 ; 1
| 0x08061aaa 009a ldr r2, [sp]
| 0x08061aac 61f3d442 bfi r2, r1, 0x13, 2
| 0x08061ab0 0092 str r2, [sp]
| 0x08061ab2 1821 movs r1, 0x18 ; 24
| 0x08061ab4 009a ldr r2, [sp]
| 0x08061ab6 61f30602 bfi r2, r1, 0, 7
| 0x08061aba 0092 str r2, [sp]
| 0x08061abc 416d ldr r1, [r0, 0x54]
| 0x08061abe 009a ldr r2, [sp]
| 0x08061ac0 0a61 str r2, [r1, 0x10]
| 0x08061ac2 c178 ldrb r1, [r0, 3]
| 0x08061ac4 0129 cmp r1, 1 ; 1
| ,=< 0x08061ac6 0ed1 bne 0x8061ae6
| | 0x08061ac8 0021 movs r1, 0
| | 0x08061aca 426d ldr r2, [r0, 0x54]
| | 0x08061acc 00f2cc53 addw r3, r0, 0x5cc
| | 0x08061ad0 5361 str r3, [r2, 0x14]
| | 0x08061ad2 426d ldr r2, [r0, 0x54]
| | 0x08061ad4 1268 ldr r2, [r2]
| | 0x08061ad6 1100 movs r1, r2
| | 0x08061ad8 51f00041 orrs r1, r1, 0x80000000
| | 0x08061adc 5ff08022 movs.w r2, -0x7fff8000
| | 0x08061ae0 1100 movs r1, r2
| | 0x08061ae2 406d ldr r0, [r0, 0x54]
| | 0x08061ae4 0160 str r1, [r0]
| `-> 0x08061ae6 02b0 add sp, 8
\ 0x08061ae8 7047 bx lr
/ (fcn) func_62054 238
| Caller: func_5c8d4
| func_62054 ();
| 0x08062054 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08062058 1e46 mov r6, r3
| 0x0806205a 3a4b ldr r3, [0x08062146] ; [0x8062144:4]=0x8092758
| 0x0806205c 87b0 sub sp, 0x1c
| 0x0806205e 0592 str r2, [sp, 0x14]
| 0x08062060 b3f90020 ldrsh.w r2, [r3]
| 0x08062064 b3f904b0 ldrsh.w fp, [r3, 4]
| 0x08062068 1204 lsls r2, r2, 0x10
| 0x0806206a b3f906a0 ldrsh.w sl, [r3, 6]
| 0x0806206e 0c46 mov r4, r1
| 0x08062070 0192 str r2, [sp, 4]
| 0x08062072 5988 ldrh r1, [r3, 2]
| 0x08062074 b3f90820 ldrsh.w r2, [r3, 8]
| 0x08062078 b3f90a30 ldrsh.w r3, [r3, 0xa]
| 0x0806207c 1204 lsls r2, r2, 0x10
| 0x0806207e 1b04 lsls r3, r3, 0x10
| 0x08062080 0291 str r1, [sp, 8]
| 0x08062082 4fea0b4b lsl.w fp, fp, 0x10
| 0x08062086 4fea0a4a lsl.w sl, sl, 0x10
| 0x0806208a 0392 str r2, [sp, 0xc]
| 0x0806208c 0493 str r3, [sp, 0x10]
| 0x0806208e 851c adds r5, r0, 2
| 0x08062090 4ff40047 mov.w r7, 0x8000
| .-> 0x08062094 54f8049b ldr sb, [r4], 4
| | 0x08062098 4fea0900 mov.w r0, sb
| | 0x0806209c 0028 cmp r0, 0
| ,==< 0x0806209e b8bf it lt
| `--> 0x080620a0 c043 mvns r0, r0
| ,==< 0x080620a2 1cbf itt ne
| `--> 0x080620a4 b0fa80f0 clz r0, r0
| | 0x080620a8 a0f10108 sub.w r8, r0, 1
| | 0x080620ac 09fa08f9 lsl.w sb, sb, r8
| | 0x080620b0 5fea2949 asrs.w sb, sb, 0x10
| | 0x080620b4 25f8027c strh r7, [r5, -0x2]
| ,==< 0x080620b8 3ad0 beq 0x8062130
| || 0x080620ba 00bf nop
| || 0x080620bc 4fea0949 lsl.w sb, sb, 0x10
| || 0x080620c0 019a ldr r2, [sp, 4]
| || 0x080620c2 0299 ldr r1, [sp, 8]
| || 0x080620c4 c2eb0909 rsb sb, r2, sb
| || 0x080620c8 11fb19f3 smulbt r3, r1, sb
| || 0x080620cc 07eb4303 add.w r3, r7, r3, lsl 1
| || 0x080620d0 03eb0b03 add.w r3, r3, fp
| || 0x080620d4 13fb39f3 smultt r3, r3, sb
| || 0x080620d8 07eb4303 add.w r3, r7, r3, lsl 1
| || 0x080620dc 03eb0a03 add.w r3, r3, sl
| || 0x080620e0 13fb39f3 smultt r3, r3, sb
| || 0x080620e4 07eb4303 add.w r3, r7, r3, lsl 1
| || 0x080620e8 ddf80c20 ldr.w r2, [sp, 0xc]
| || 0x080620ec 02eb6303 add.w r3, r2, r3, asr 1
| || 0x080620f0 13fb39f3 smultt r3, r3, sb
| || 0x080620f4 ddf81420 ldr.w r2, [sp, 0x14]
| || 0x080620f8 07eb4303 add.w r3, r7, r3, lsl 1
| || 0x080620fc ddf81010 ldr.w r1, [sp, 0x10]
| || 0x08062100 c8eb0208 rsb r8, r8, r2
| || 0x08062104 5fea1343 lsrs.w r3, r3, 0x10
| || 0x08062108 01eb8343 add.w r3, r1, r3, lsl 18
| || 0x0806210c 4fea0848 lsl.w r8, r8, 0x10
| || 0x08062110 08ebe333 add.w r3, r8, r3, asr 15
| || 0x08062114 5fea8322 lsls.w r2, r3, 0xa
| || 0x08062118 b3eba22f cmp.w r3, r2, asr 10
| ,===< 0x0806211c 1cbf itt ne
| `---> 0x0806211e 6ff00041 mvn r1, 0x80000000
| || 0x08062122 81eae372 eor.w r2, r1, r3, asr 31
| || 0x08062126 82fa87f2 qadd r2, r7, r2
| || 0x0806212a 1214 asrs r2, r2, 0x10
| || 0x0806212c 25f8022c strh r2, [r5, -0x2]
| `--> 0x08062130 0022 movs r2, 0
| | 0x08062132 013e subs r6, 1
| | 0x08062134 25f8042b strh r2, [r5], 4
| `=< 0x08062138 acd1 bne 0x8062094
| 0x0806213a 0420 movs r0, 4 ; 4
| 0x0806213c 07b0 add sp, 0x1c
\ 0x0806213e bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_62148 184
| Caller: func_5c8d4
| func_62148 ();
| 0x08062148 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0806214c 22eae276 bic.w r6, r2, r2, asr 31
| 0x08062150 b21a subs r2, r6, r2
| ,=< 0x08062152 46b1 cbz r6, 0x8062166
| | 0x08062154 c6f11f04 rsb.w r4, r6, 0x1f
| | 0x08062158 4ff00108 mov.w r8, 1 ; 1
| | 0x0806215c 08fa04f8 lsl.w r8, r8, r4
| | 0x08062160 08f1ff38 add.w r8, r8, -1
| ,==< 0x08062164 01e0 b 0x806216a
| |`-> 0x08062166 6ff00048 mvn r8, 0x80000000
| `--> 0x0806216a 254d ldr r5, [0x08062202] ; [0x8062200:4]=0x8092330
| 0x0806216c 0024 movs r4, 0
| 0x0806216e 4fea2848 asr.w r8, r8, 0x10
| .-> 0x08062172 31f904c0 ldrsh.w ip, [r1, r4]
| | 0x08062176 4cfa02fc asr.w ip, ip, r2
| | 0x0806217a 0cea080c and.w ip, ip, r8
| | 0x0806217e 0cfa06fc lsl.w ip, ip, r6
| | 0x08062182 4fea8c67 lsl.w r7, ip, 0x1a
| | 0x08062186 4feaac1c asr.w ip, ip, 6
| | 0x0806218a 4fea4c0c lsl.w ip, ip, 1
| | 0x0806218e 7f0c lsrs r7, r7, 0x11
| | 0x08062190 35f90c90 ldrsh.w sb, [r5, ip]
| | 0x08062194 09fb07fa mul sl, sb, r7
| | 0x08062198 4fea094b lsl.w fp, sb, 0x10
| | 0x0806219c 0cf10209 add.w sb, ip, 2
| | 0x080621a0 4fea4a0a lsl.w sl, sl, 1
| | 0x080621a4 35f90990 ldrsh.w sb, [r5, sb]
| | 0x080621a8 09fb07f9 mul sb, sb, r7
| | 0x080621ac 0cf5407c add.w ip, ip, 0x300
| | 0x080621b0 caeb0b0a rsb sl, sl, fp
| | 0x080621b4 4fea8c5c lsl.w ip, ip, 0x16
| | 0x080621b8 0aeb4909 add.w sb, sl, sb, lsl 1
| | 0x080621bc 4fea9c5c lsr.w ip, ip, 0x16
| | 0x080621c0 4fea2949 asr.w sb, sb, 0x10
| | 0x080621c4 20f80490 strh.w sb, [r0, r4]
| | 0x080621c8 35f90c90 ldrsh.w sb, [r5, ip]
| | 0x080621cc 0cf1020c add.w ip, ip, 2
| | 0x080621d0 4fea094a lsl.w sl, sb, 0x10
| | 0x080621d4 35f90cc0 ldrsh.w ip, [r5, ip]
| | 0x080621d8 09fb07f9 mul sb, sb, r7
| | 0x080621dc 4fea4909 lsl.w sb, sb, 1
| | 0x080621e0 c9eb0a09 rsb sb, sb, sl
| | 0x080621e4 0cfb07f7 mul r7, ip, r7
| | 0x080621e8 00eb040a add.w sl, r0, r4
| | 0x080621ec 09eb4707 add.w r7, sb, r7, lsl 1
| | 0x080621f0 3f14 asrs r7, r7, 0x10
| | 0x080621f2 0434 adds r4, 4
| | 0x080621f4 013b subs r3, 1
| | 0x080621f6 aaf80270 strh.w r7, [sl, 2]
| `=< 0x080621fa bad1 bne 0x8062172
\ 0x080621fc bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_62204 298
| Caller: func_5c8d4
| func_62204 ();
| 0x08062204 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08062208 0d46 mov r5, r1
| 0x0806220a 4949 ldr r1, [0x08062332] ; [0x8062330:4]=0x8092734
| 0x0806220c 1e46 mov r6, r3
| 0x0806220e b1f90230 ldrsh.w r3, [r1, 2]
| 0x08062212 8bb0 sub sp, 0x2c ; ','
| 0x08062214 1b04 lsls r3, r3, 0x10
| 0x08062216 0493 str r3, [sp, 0x10]
| 0x08062218 b1f90430 ldrsh.w r3, [r1, 4]
| 0x0806221c 02f10309 add.w sb, r2, 3
| 0x08062220 1b04 lsls r3, r3, 0x10
| 0x08062222 0593 str r3, [sp, 0x14]
| 0x08062224 b1f90630 ldrsh.w r3, [r1, 6]
| 0x08062228 1746 mov r7, r2
| 0x0806222a 1b04 lsls r3, r3, 0x10
| 0x0806222c 0693 str r3, [sp, 0x18]
| 0x0806222e b1f90830 ldrsh.w r3, [r1, 8]
| 0x08062232 0a88 ldrh r2, [r1]
| 0x08062234 db03 lsls r3, r3, 0xf
| 0x08062236 4feaa909 asr.w sb, sb, 2
| 0x0806223a 0793 str r3, [sp, 0x1c]
| 0x0806223c b246 mov sl, r6
| 0x0806223e 3346 mov r3, r6
| 0x08062240 cdf82490 str.w sb, [sp, 0x24]
| 0x08062244 0392 str r2, [sp, 0xc]
| 0x08062246 8346 mov fp, r0
| 0x08062248 0646 mov r6, r0
| 0x0806224a 4ff4004c mov.w ip, 0x8000
| 0x0806224e 00bf nop
| .-> 0x08062250 55f8044b ldr r4, [r5], 4
| | 0x08062254 2046 mov r0, r4
| | 0x08062256 002c cmp r4, 0
| ,==< 0x08062258 4bd0 beq 0x80622f2
| || 0x0806225a 0291 str r1, [sp, 8]
| || 0x0806225c 0193 str r3, [sp, 4]
| || 0x0806225e 0028 cmp r0, 0
| ,===< 0x08062260 b8bf it lt
| `---> 0x08062262 c043 mvns r0, r0
| ,===< 0x08062264 1cbf itt ne
| `---> 0x08062266 b0fa80f0 clz r0, r0
| || 0x0806226a 0138 subs r0, 1
| || 0x0806226c 00b2 sxth r0, r0
| || 0x0806226e 8440 lsls r4, r0
| || 0x08062270 c0eb0708 rsb r8, r0, r7
| || 0x08062274 0398 ldr r0, [sp, 0xc]
| || 0x08062276 10fb14f2 smulbt r2, r0, r4
| || 0x0806227a 0ceb4202 add.w r2, ip, r2, lsl 1
| || 0x0806227e 0498 ldr r0, [sp, 0x10]
| || 0x08062280 6ff30f02 bfc r2, 0, 0x10
| || 0x08062284 1218 adds r2, r2, r0
| || 0x08062286 12fb34f2 smultt r2, r2, r4
| || 0x0806228a 0ceb4202 add.w r2, ip, r2, lsl 1
| || 0x0806228e 0598 ldr r0, [sp, 0x14]
| || 0x08062290 6ff30f02 bfc r2, 0, 0x10
| || 0x08062294 1218 adds r2, r2, r0
| || 0x08062296 12fb34f2 smultt r2, r2, r4
| || 0x0806229a 0ceb4202 add.w r2, ip, r2, lsl 1
| || 0x0806229e 0698 ldr r0, [sp, 0x18]
| || 0x080622a0 6ff30f02 bfc r2, 0, 0x10
| || 0x080622a4 1218 adds r2, r2, r0
| || 0x080622a6 12fb34f4 smultt r4, r2, r4
| || 0x080622aa 0ceb4404 add.w r4, ip, r4, lsl 1
| || 0x080622ae 079a ldr r2, [sp, 0x1c]
| || 0x080622b0 6ff30f04 bfc r4, 0, 0x10
| || 0x080622b4 02eb6404 add.w r4, r2, r4, asr 1
| || 0x080622b8 2046 mov r0, r4
| || 0x080622ba 0028 cmp r0, 0
| ,===< 0x080622bc b8bf it lt
| `---> 0x080622be c043 mvns r0, r0
| ,===< 0x080622c0 1cbf itt ne
| `---> 0x080622c2 b0fa80f0 clz r0, r0
| || 0x080622c6 0138 subs r0, 1
| || 0x080622c8 08f10108 add.w r8, r8, 1
| || 0x080622cc 00b2 sxth r0, r0
| || 0x080622ce 8440 lsls r4, r0
| || 0x080622d0 c0eb0800 rsb r0, r0, r8
| || 0x080622d4 10f00302 ands r2, r0, 3
| || 0x080622d8 0299 ldr r1, [sp, 8]
| || 0x080622da 019b ldr r3, [sp, 4]
| ,===< 0x080622dc 09d0 beq 0x80622f2
| ||| 0x080622de 0432 adds r2, 4
| ||| 0x080622e0 31f81220 ldrh.w r2, [r1, r2, lsl 1]
| ||| 0x080622e4 0130 adds r0, 1
| ||| 0x080622e6 14fb22f4 smultb r4, r4, r2
| ||| 0x080622ea 0ceb4404 add.w r4, ip, r4, lsl 1
| ||| 0x080622ee 6ff30f04 bfc r4, 0, 0x10
| ``--> 0x080622f2 0330 adds r0, 3
| | 0x080622f4 8010 asrs r0, r0, 2
| | 0x080622f6 b0eb0902 subs.w r2, r0, sb
| ,==< 0x080622fa 01d4 bmi 0x8062300
| || 0x080622fc 9440 lsls r4, r2
| ,===< 0x080622fe 02e0 b 0x8062306
| |`--> 0x08062300 c0eb0900 rsb r0, r0, sb
| | | 0x08062304 0441 asrs r4, r0
| `---> 0x08062306 04f50044 add.w r4, r4, 0x8000
| | 0x0806230a 2414 asrs r4, r4, 0x10
| | 0x0806230c baf1010a subs.w sl, sl, 1
| | 0x08062310 2bf8024b strh r4, [fp], 2
| `=< 0x08062314 9cd1 bne 0x8062250
| 0x08062316 3446 mov r4, r6
| 0x08062318 2046 mov r0, r4
| 0x0806231a 1a46 mov r2, r3
| 0x0806231c 1e46 mov r6, r3
| 0x0806231e 2146 mov r1, r4
| 0x08062320 09ab add r3, sp, 0x24
| 0x08062322 f8f725f9 bl func_5a570
| 0x08062326 0998 ldr r0, [sp, 0x24]
| 0x08062328 0bb0 add sp, 0x2c
\ 0x0806232a bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_62334 68
| Caller: func_5c8d4
| func_62334 ();
| 0x08062334 f7b5 push {r0, r1, r2, r4, r5, r6, r7, lr}
| 0x08062336 089c ldr r4, [sp, 0x20]
| 0x08062338 099e ldr r6, [sp, 0x24]
| 0x0806233a 1219 adds r2, r2, r4
| 0x0806233c 0192 str r2, [sp, 4]
| 0x0806233e 3546 mov r5, r6
| 0x08062340 0446 mov r4, r0
| 0x08062342 00bf nop
| .-> 0x08062344 51f804eb ldr lr, [r1], 4
| | 0x08062348 33f8027b ldrh r7, [r3], 2
| | 0x0806234c 1efb07f2 smulbb r2, lr, r7
| | 0x08062350 42f3cf32 sbfx r2, r2, 0xf, 0x10
| | 0x08062354 24f8022b strh r2, [r4], 2
| | 0x08062358 1efb27f7 smultb r7, lr, r7
| | 0x0806235c 47f3cf37 sbfx r7, r7, 0xf, 0x10
| | 0x08062360 b5f10105 subs.w r5, r5, 1
| | 0x08062364 24f8027b strh r7, [r4], 2
| `=< 0x08062368 ecd1 bne 0x8062344
| 0x0806236a 0146 mov r1, r0
| 0x0806236c 7200 lsls r2, r6, 1
| 0x0806236e 01ab add r3, sp, 4
| 0x08062370 f8f7fef8 bl func_5a570
| 0x08062374 0198 ldr r0, [sp, 4]
\ 0x08062376 febd pop {r1, r2, r3, r4, r5, r6, r7, pc}
/ (fcn) func_62378 72
| Caller: func_5c8d4
| func_62378 ();
| 0x08062378 2de9f047 push.w {r4, r5, r6, r7, r8, sb, sl, lr}
| 0x0806237c 002b cmp r3, 0
| 0x0806237e 0c46 mov r4, r1
| 0x08062380 1546 mov r5, r2
| 0x08062382 089f ldr r7, [sp, 0x20]
| 0x08062384 4ff40048 mov.w r8, 0x8000
| ,=< 0x08062388 02db blt 0x8062390
| | 0x0806238a 08fa03f8 lsl.w r8, r8, r3
| ,==< 0x0806238e 02e0 b 0x8062396
| |`-> 0x08062390 5a42 rsbs r2, r3, 0
| | 0x08062392 48fa02f8 asr.w r8, r8, r2
| `--> 0x08062396 c3f11009 rsb.w sb, r3, 0x10
| 0x0806239a 0646 mov r6, r0
| 0x0806239c 47f6ff7a movw sl, 0x7fff
| .-> 0x080623a0 34f9021b ldrsh r1, [r4], 2
| | 0x080623a4 26f802ab strh sl, [r6], 2
| ,==< 0x080623a8 21b1 cbz r1, 0x80623b4
| || 0x080623aa 4046 mov r0, r8
| || 0x080623ac f6f768fa bl func_58880
| || 0x080623b0 26f8020c strh r0, [r6, -0x2]
| `--> 0x080623b4 013f subs r7, 1
| `=< 0x080623b6 f3d1 bne 0x80623a0
| 0x080623b8 c5eb0900 rsb r0, r5, sb
\ 0x080623bc bde8f087 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}
/ (fcn) func_623c0 86
| Caller: func_5c8d4
| func_623c0 ();
| 0x080623c0 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x080623c4 81b0 sub sp, 4
| 0x080623c6 0944 add r1, r1
| 0x080623c8 01f10101 add.w r1, r1, 1
| 0x080623cc 0091 str r1, [sp]
| 0x080623ce 4ff08001 mov.w r1, 0x80 ; 128
| 0x080623d2 8146 mov sb, r0
| 0x080623d4 50f8042b ldr r2, [r0], 4
| .-> 0x080623d8 18c8 ldm r0!, {r3, r4}
| | 0x080623da 0239 subs r1, 2
| | 0x080623dc 22fb03f5 smuad r5, r2, r3
| | 0x080623e0 43fb12f6 smusdx r6, r3, r2
| | 0x080623e4 c6ea2545 pkhtb r5, r6, r5, asr 0x10
| | 0x080623e8 23fb04f6 smuad r6, r3, r4
| | 0x080623ec 44fb13f7 smusdx r7, r4, r3
| | 0x080623f0 c7ea2646 pkhtb r6, r7, r6, asr 0x10
| | 0x080623f4 a9e86000 stm.w sb!, {r5, r6}
| | 0x080623f8 2246 mov r2, r4
| `=< 0x080623fa eddc bgt 0x80623d8
| 0x080623fc a9f50071 sub.w r1, sb, 0x200
| 0x08062400 a9f50070 sub.w r0, sb, 0x200
| 0x08062404 4ff48072 mov.w r2, 0x100 ; 256
| 0x08062408 6b46 mov r3, sp
| 0x0806240a f8f7b1f8 bl func_5a570
| 0x0806240e 0098 ldr r0, [sp]
| 0x08062410 01b0 add sp, 4
\ 0x08062412 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_62416 122
| Caller: func_5c8d4
| func_62416 ();
| 0x08062416 2de9f74f push.w {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0806241a 8246 mov sl, r0
| 0x0806241c 0c46 mov r4, r1
| 0x0806241e 1546 mov r5, r2
| 0x08062420 9946 mov sb, r3
| 0x08062422 0827 movs r7, 8 ; 8
| 0x08062424 0d26 movs r6, 0xd ; 13
| 0x08062426 4ff0000b mov.w fp, 0
| 0x0806242a 41f69818 movw r8, 0x1998
| ,=< 0x0806242e 01e0 b 0x8062434
| .--> 0x08062430 b346 mov fp, r6
| || 0x08062432 1e46 mov r6, r3
| |`-> 0x08062434 35f9021b ldrsh r1, [r5], 2
| | 0x08062438 012f cmp r7, 1 ; 1
| |,=< 0x0806243a 08bf it eq
| |`-> 0x0806243c 8026 movs r6, 0x80 ; 128
| | 0x0806243e 0804 lsls r0, r1, 0x10
| | 0x08062440 0190 str r0, [sp, 4]
| | 0x08062442 0028 cmp r0, 0
| |,=< 0x08062444 b8bf it lt
| |`-> 0x08062446 c043 mvns r0, r0
| |,=< 0x08062448 1cbf itt ne
| |`-> 0x0806244a b0fa80f0 clz r0, r0
| | 0x0806244e 0138 subs r0, 1
| | 0x08062450 0199 ldr r1, [sp, 4]
| | 0x08062452 8140 lsls r1, r0
| |,=< 0x08062454 0cd0 beq 0x8062470
| || 0x08062456 c0eb0900 rsb r0, r0, sb
| || 0x0806245a 2a30 adds r0, 0x2a
| ,===< 0x0806245c 07db blt 0x806246e
| ||| 0x0806245e b4f90010 ldrsh.w r1, [r4]
| ||| 0x08062462 4145 cmp r1, r8
| ,====< 0x08062464 ccbf ite gt
| `----> 0x08062466 4ff48041 mov.w r1, 0x4000
| ||| 0x0806246a 0021 movs r1, 0
| ,====< 0x0806246c 00e0 b 0x8062470
| |`---> 0x0806246e 0021 movs r1, 0
| `--`-> 0x08062470 0aeb4b00 add.w r0, sl, fp, lsl 1
| | 0x08062474 cbeb060b rsb fp, fp, r6
| | 0x08062478 09b2 sxth r1, r1
| | 0x0806247a 0ffa8bf2 sxth.w r2, fp
| | 0x0806247e f3f709fb bl ambe_55a94
| | 0x08062482 0234 adds r4, 2
| | 0x08062484 013f subs r7, 1
| | 0x08062486 06f11003 add.w r3, r6, 0x10
| `==< 0x0806248a d1d1 bne 0x8062430
\ 0x0806248c bde8fe8f pop.w {r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_62490 82
| Caller: func_5c8d4
| func_62490 ();
| 0x08062490 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x08062494 81b0 sub sp, 4
| 0x08062496 ddf82090 ldr.w sb, [sp, 0x20]
| 0x0806249a ddf82480 ldr.w r8, [sp, 0x24]
| 0x0806249e 0c68 ldr r4, [r1]
| 0x080624a0 53f8045b ldr r5, [r3], 4
| 0x080624a4 02f10102 add.w r2, r2, 1
| 0x080624a8 4a44 add r2, sb
| 0x080624aa c146 mov sb, r8
| 0x080624ac 0092 str r2, [sp]
| 0x080624ae 00bf nop
| .-> 0x080624b0 44fb05f6 smusd r6, r4, r5
| | 0x080624b4 24fb15f7 smuadx r7, r4, r5
| | 0x080624b8 b8f10108 subs.w r8, r8, 1
| | 0x080624bc c7ea2646 pkhtb r6, r7, r6, asr 0x10
| | 0x080624c0 53f8045b ldr r5, [r3], 4
| | 0x080624c4 40f8046b str r6, [r0], 4
| `=< 0x080624c8 f2dc bgt 0x80624b0
| 0x080624ca a0eb8900 sub.w r0, r0, sb, lsl 2
| 0x080624ce 0146 mov r1, r0
| 0x080624d0 4fea4902 lsl.w r2, sb, 1
| 0x080624d4 6b46 mov r3, sp
| 0x080624d6 f8f74bf8 bl func_5a570
| 0x080624da 0098 ldr r0, [sp]
| 0x080624dc 01b0 add sp, 4
\ 0x080624de bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_624e2 42
| Caller: func_5c8d4
| func_624e2 ();
| 0x080624e2 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x080624e4 0546 mov r5, r0
| 0x080624e6 0c46 mov r4, r1
| 0x080624e8 1046 mov r0, r2
| 0x080624ea 1946 mov r1, r3
| 0x080624ec 1646 mov r6, r2
| 0x080624ee 1f46 mov r7, r3
| 0x080624f0 f7f786fe bl 0x805a200
| .-> 0x080624f4 36f9023b ldrsh r3, [r6], 2
| | 0x080624f8 34f9022b ldrsh r2, [r4], 2
| | 0x080624fc c31a subs r3, r0, r3
| | 0x080624fe 52fa03f3 asrs.w r3, r2, r3
| | 0x08062502 013f subs r7, 1
| | 0x08062504 25f8023b strh r3, [r5], 2
| `=< 0x08062508 f4d1 bne 0x80624f4
\ 0x0806250a f8bd pop {r3, r4, r5, r6, r7, pc}
/ (fcn) func_6250c 42
| Caller: func_5c8d4
| func_6250c ();
| 0x0806250c 2de93040 push.w {r4, r5, lr}
| 0x08062510 4fea430c lsl.w ip, r3, 1
| 0x08062514 81b0 sub sp, 4
| 0x08062516 0546 mov r5, r0
| 0x08062518 1446 mov r4, r2
| 0x0806251a 6846 mov r0, sp
| 0x0806251c 6246 mov r2, ip
| 0x0806251e f7f77bff bl func_5a418
| 0x08062522 bdf80020 ldrh.w r2, [sp]
| 0x08062526 4fea2040 asr.w r0, r0, 0x10
| 0x0806252a 02eb4401 add.w r1, r2, r4, lsl 1
| 0x0806252e 2980 strh r1, [r5]
| 0x08062530 01b0 add sp, 4
\ 0x08062532 bde83080 pop.w {r4, r5, pc}
/ (fcn) func_62536 326
| Caller: func_5c8d4
| func_62536 ();
| 0x08062536 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x0806253a 87b0 sub sp, 0x1c
| 0x0806253c ddf844b0 ldr.w fp, [sp, 0x44]
| 0x08062540 ddf848c0 ldr.w ip, [sp, 0x48]
| 0x08062544 109e ldr r6, [sp, 0x40]
| 0x08062546 0590 str r0, [sp, 0x14]
| 0x08062548 9a46 mov sl, r3
| 0x0806254a 0b46 mov r3, r1
| 0x0806254c 4ff00000 mov.w r0, 0
| 0x08062550 4ff00001 mov.w r1, 0
| 0x08062554 4ff00008 mov.w r8, 0
| 0x08062558 4ff00009 mov.w sb, 0
| .-> 0x0806255c 52f8045b ldr r5, [r2], 4
| | 0x08062560 33f9024b ldrsh r4, [r3], 2
| | 0x08062564 15fb04f7 smulbb r7, r5, r4
| | 0x08062568 15fb24f4 smultb r4, r5, r4
| | 0x0806256c 44f38f35 sbfx r5, r4, 0xe, 0x10
| | 0x08062570 c7f38f34 ubfx r4, r7, 0xe, 0x10
| | 0x08062574 04eb0544 add.w r4, r4, r5, lsl 16
| | 0x08062578 bcf1010c subs.w ip, ip, 1
| | 0x0806257c 56f8045b ldr r5, [r6], 4
| | 0x08062580 d5fbd489 smlsldx r8, sb, r5, r4
| | 0x08062584 c4fbc501 smlald r0, r1, r4, r5
| `=< 0x08062588 e8d1 bne 0x806255c
| 0x0806258a 18eb0806 adds.w r6, r8, r8
| 0x0806258e 49eb0907 adc.w r7, sb, sb
| 0x08062592 0018 adds r0, r0, r0
| 0x08062594 41eb0101 adc.w r1, r1, r1
| 0x08062598 50ea0105 orrs.w r5, r0, r1
| 0x0806259c cde90067 strd r6, r7, [sp]
| ,=< 0x080625a0 02d1 bne 0x80625a8
| | 0x080625a2 0aeb0b05 add.w r5, sl, fp
| ,==< 0x080625a6 24e0 b 0x80625f2
| |`-> 0x080625a8 0028 cmp r0, 0
| | 0x080625aa 71f10002 sbcs r2, r1, 0
| | 0x080625ae 0446 mov r4, r0
| | 0x080625b0 0d46 mov r5, r1
| |,=< 0x080625b2 02da bge 0x80625ba
| || 0x080625b4 4442 rsbs r4, r0, 0
| || 0x080625b6 61eb4105 sbc.w r5, r1, r1, lsl 1
| |`-> 0x080625ba abb2 uxth r3, r5
| | 0x080625bc 0aeb0b05 add.w r5, sl, fp
| |,=< 0x080625c0 43b1 cbz r3, 0x80625d4
| || 0x080625c2 1ab2 sxth r2, r3
| || 0x080625c4 b2fa82f2 clz r2, r2
| || 0x080625c8 c2f12102 rsb.w r2, r2, 0x21
| || 0x080625cc ad18 adds r5, r5, r2
| || 0x080625ce 00f0effe bl func_633b0
| ,===< 0x080625d2 0de0 b 0x80625f0
| ||`-> 0x080625d4 002c cmp r4, 0
| ||,=< 0x080625d6 05da bge 0x80625e4
| ||| 0x080625d8 5fea6109 asrs.w sb, r1, 1
| ||| 0x080625dc 4fea3008 rrx r8, r0
| ||| 0x080625e0 0135 adds r5, 1
| ,====< 0x080625e2 06e0 b 0x80625f2
| |||`-> 0x080625e4 b4fa84f2 clz r2, r4
| ||| 0x080625e8 013a subs r2, 1
| ||| 0x080625ea ad1a subs r5, r5, r2
| ||| 0x080625ec 00f0f2fe bl func_633d4
| |`---> 0x080625f0 8046 mov r8, r0
| `-`--> 0x080625f2 56ea0703 orrs.w r3, r6, r7
| ,=< 0x080625f6 02d1 bne 0x80625fe
| | 0x080625f8 0aeb0b04 add.w r4, sl, fp
| ,==< 0x080625fc 29e0 b 0x8062652
| |`-> 0x080625fe 002e cmp r6, 0
| | 0x08062600 77f10004 sbcs r4, r7, 0
| | 0x08062604 3046 mov r0, r6
| | 0x08062606 3946 mov r1, r7
| |,=< 0x08062608 02da bge 0x8062610
| || 0x0806260a 7042 rsbs r0, r6, 0
| || 0x0806260c 67eb4701 sbc.w r1, r7, r7, lsl 1
| |`-> 0x08062610 8bb2 uxth r3, r1
| | 0x08062612 0aeb0b04 add.w r4, sl, fp
| |,=< 0x08062616 53b1 cbz r3, 0x806262e
| || 0x08062618 1ab2 sxth r2, r3
| || 0x0806261a b2fa82f2 clz r2, r2
| || 0x0806261e c2f12102 rsb.w r2, r2, 0x21
| || 0x08062622 3046 mov r0, r6
| || 0x08062624 3946 mov r1, r7
| || 0x08062626 a418 adds r4, r4, r2
| || 0x08062628 00f0c2fe bl func_633b0
| ,===< 0x0806262c 10e0 b 0x8062650
| ||`-> 0x0806262e 0028 cmp r0, 0
| ||,=< 0x08062630 06da bge 0x8062640
| ||| 0x08062632 7b10 asrs r3, r7, 1
| ||| 0x08062634 4fea3602 rrx r2, r6
| ||| 0x08062638 cde90023 strd r2, r3, [sp]
| ||| 0x0806263c 0134 adds r4, 1
| ,====< 0x0806263e 08e0 b 0x8062652
| |||`-> 0x08062640 b0fa80f2 clz r2, r0
| ||| 0x08062644 013a subs r2, 1
| ||| 0x08062646 3046 mov r0, r6
| ||| 0x08062648 3946 mov r1, r7
| ||| 0x0806264a a41a subs r4, r4, r2
| ||| 0x0806264c 00f0c2fe bl func_633d4
| |`---> 0x08062650 0090 str r0, [sp]
| `-`--> 0x08062652 a542 cmp r5, r4
| 0x08062654 009b ldr r3, [sp]
| ,=< 0x08062656 03dd ble 0x8062660
| | 0x08062658 2c1b subs r4, r5, r4
| | 0x0806265a 2341 asrs r3, r4
| | 0x0806265c 2846 mov r0, r5
| ,==< 0x0806265e 03e0 b 0x8062668
| |`-> 0x08062660 651b subs r5, r4, r5
| | 0x08062662 48fa05f8 asr.w r8, r8, r5
| | 0x08062666 2046 mov r0, r4
| `--> 0x08062668 059c ldr r4, [sp, 0x14]
| 0x0806266a 4fea2848 asr.w r8, r8, 0x10
| 0x0806266e 1b14 asrs r3, r3, 0x10
| 0x08062670 a4f80080 strh.w r8, [r4]
| 0x08062674 6380 strh r3, [r4, 2]
| 0x08062676 07b0 add sp, 0x1c
\ 0x08062678 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
/ (fcn) func_6267c 214
| Caller: func_5c8d4
| func_6267c ();
| 0x0806267c 2de9f047 push.w {r4, r5, r6, r7, r8, sb, sl, lr}
| 0x08062680 bdf920a0 ldrsh.w sl, [sp, 0x20]
| 0x08062684 1646 mov r6, r2
| 0x08062686 9245 cmp sl, r2
| ,=< 0x08062688 04dd ble 0x8062694
| | 0x0806268a 5646 mov r6, sl
| | 0x0806268c 9246 mov sl, r2
| | 0x0806268e 0a46 mov r2, r1
| | 0x08062690 1946 mov r1, r3
| | 0x08062692 1346 mov r3, r2
| `-> 0x08062694 bdf92480 ldrsh.w r8, [sp, 0x24]
| 0x08062698 06f10109 add.w sb, r6, 1
| 0x0806269c 4fea4808 lsl.w r8, r8, 1
| 0x080626a0 caeb090a rsb sl, sl, sb
| 0x080626a4 1ffa88f8 uxth.w r8, r8
| 0x080626a8 0024 movs r4, 0
| 0x080626aa 0025 movs r5, 0
| 0x080626ac 0ffa8afa sxth.w sl, sl
| .-> 0x080626b0 33f902cb ldrsh ip, [r3], 2
| | 0x080626b4 31f9022b ldrsh r2, [r1], 2
| | 0x080626b8 4fea0c4c lsl.w ip, ip, 0x10
| | 0x080626bc 4cfa0afc asr.w ip, ip, sl
| | 0x080626c0 5feac232 lsls.w r2, r2, 0xf
| | 0x080626c4 cceb020c rsb ip, ip, r2
| | 0x080626c8 b8f10108 subs.w r8, r8, 1
| | 0x080626cc ccfbbc45 smlaltt r4, r5, ip, ip
| `=< 0x080626d0 eed1 bne 0x80626b0
| 0x080626d2 2746 mov r7, r4
| 0x080626d4 2a46 mov r2, r5
| 0x080626d6 54ea0503 orrs.w r3, r4, r5
| ,=< 0x080626da 06d1 bne 0x80626ea
| | 0x080626dc 4fea4909 lsl.w sb, sb, 1
| | 0x080626e0 09f10109 add.w sb, sb, 1
| | 0x080626e4 a0f80090 strh.w sb, [r0]
| ,==< 0x080626e8 30e0 b 0x806274c
| |`-> 0x080626ea 002c cmp r4, 0
| | 0x080626ec 75f10003 sbcs r3, r5, 0
| | 0x080626f0 b846 mov r8, r7
| | 0x080626f2 9146 mov sb, r2
| |,=< 0x080626f4 03da bge 0x80626fe
| || 0x080626f6 d4f10008 rsbs.w r8, r4, 0
| || 0x080626fa 65eb4509 sbc.w sb, r5, r5, lsl 1
| |`-> 0x080626fe 1ffa89f3 uxth.w r3, sb
| |,=< 0x08062702 6bb1 cbz r3, 0x8062720
| || 0x08062704 1ab2 sxth r2, r3
| || 0x08062706 b2fa82f2 clz r2, r2
| || 0x0806270a c2f12102 rsb.w r2, r2, 0x21
| || 0x0806270e 02eb4606 add.w r6, r2, r6, lsl 1
| || 0x08062712 0336 adds r6, 3
| || 0x08062714 0680 strh r6, [r0]
| || 0x08062716 2946 mov r1, r5
| || 0x08062718 2046 mov r0, r4
| || 0x0806271a 00f049fe bl func_633b0
| ,===< 0x0806271e 14e0 b 0x806274a
| ||`-> 0x08062720 b8f1000f cmp.w r8, 0
| ||,=< 0x08062724 06da bge 0x8062734
| ||| 0x08062726 0236 adds r6, 2
| ||| 0x08062728 7600 lsls r6, r6, 1
| ||| 0x0806272a 6d10 asrs r5, r5, 1
| ||| 0x0806272c 4fea3404 rrx r4, r4
| ||| 0x08062730 0680 strh r6, [r0]
| ,====< 0x08062732 0be0 b 0x806274c
| |||`-> 0x08062734 b8fa88f2 clz r2, r8
| ||| 0x08062738 7600 lsls r6, r6, 1
| ||| 0x0806273a 013a subs r2, 1
| ||| 0x0806273c 0336 adds r6, 3
| ||| 0x0806273e b61a subs r6, r6, r2
| ||| 0x08062740 0680 strh r6, [r0]
| ||| 0x08062742 2946 mov r1, r5
| ||| 0x08062744 2046 mov r0, r4
| ||| 0x08062746 00f045fe bl func_633d4
| |`---> 0x0806274a 0446 mov r4, r0
| `-`--> 0x0806274c 2014 asrs r0, r4, 0x10
\ 0x0806274e bde8f087 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}
/ (fcn) func_62b28 70
| Caller: func_5c8d4
| func_62b28 ();
| 0x08062b28 f0b5 push {r4, r5, r6, r7, lr}
| 0x08062b2a 002a cmp r2, 0
| ,=< 0x08062b2c b4bf ite lt
| `-> 0x08062b2e 0225 movs r5, 2 ; 2
| 0x08062b30 0025 movs r5, 0
| 0x08062b32 0028 cmp r0, 0
| 0x08062b34 85b0 sub sp, 0x14
| ,=< 0x08062b36 b8bf it lt
| `-> 0x08062b38 45f00105 orr r5, r5, 1
| ,=< 0x08062b3c 62b9 cbnz r2, 0x8062b58
| | 0x08062b3e eb07 lsls r3, r5, 0x1f
| ,==< 0x08062b40 6dd4 bmi 0x8062c1e
| || 0x08062b42 0028 cmp r0, 0
| ,===< 0x08062b44 18bf it ne
| `---> 0x08062b46 0122 movs r2, 1 ; 1
| || 0x08062b48 46f28840 movw r0, 0x6488
| ,===< 0x08062b4c 08bf it eq
| `---> 0x08062b4e 0020 movs r0, 0
| .---> 0x08062b50 0a9b ldr r3, [sp, 0x28]
| ||| 0x08062b52 1a60 str r2, [r3]
| ||| 0x08062b54 05b0 add sp, 0x14
| ||| 0x08062b56 f0bd pop {r4, r5, r6, r7, pc}
| ,==`-> 0x08062b58 48b9 cbnz r0, 0x8062b6e
| ||| 0x08062b5a 15f00202 ands r2, r5, 2
| |`===< 0x08062b5e f7d0 beq 0x8062b50
| | | 0x08062b60 0a9b ldr r3, [sp, 0x28]
| | | 0x08062b62 0222 movs r2, 2 ; 2
| | | 0x08062b64 46f28840 movw r0, 0x6488
| | | 0x08062b68 1a60 str r2, [r3]
| | | 0x08062b6a 05b0 add sp, 0x14
\ | | 0x08062b6c f0bd pop {r4, r5, r6, r7, pc}
/ (fcn) func_62d84 262
| Caller: func_5dcb8
| func_62d84 ();
| 0x08062d84 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08062d88 0c46 mov r4, r1
| 0x08062d8a 9fb0 sub sp, 0x7c ; '|'
| 0x08062d8c 1546 mov r5, r2
| 0x08062d8e 0146 mov r1, r0
| 0x08062d90 22b2 sxth r2, r4
| 0x08062d92 0746 mov r7, r0
| 0x08062d94 02a8 add r0, sp, 8
| 0x08062d96 f2f749fe bl func_55a2c
| 0x08062d9a 3c4b ldr r3, [0x08062e8e] ; [0x8062e8c:4]=0x809700c
| 0x08062d9c a542 cmp r5, r4
| 0x08062d9e 33f81430 ldrh.w r3, [r3, r4, lsl 1]
| 0x08062da2 0193 str r3, [sp, 4]
| 0x08062da4 2a46 mov r2, r5
| ,=< 0x08062da6 a8bf it ge
| `-> 0x08062da8 2246 mov r2, r4
| 0x08062daa 002a cmp r2, 0
| 0x08062dac 0ffa83f8 sxth.w r8, r3
| ,=< 0x08062db0 55dd ble 0x8062e5e
| | 0x08062db2 4fea440c lsl.w ip, r4, 1
| | 0x08062db6 ccf10001 rsb.w r1, ip, 0
| | 0x08062dba 354e ldr r6, [0x08062e92] ; [0x8062e90:4]=0x8092330
| | 0x08062dbc 0091 str r1, [sp]
| | 0x08062dbe 02ab add r3, sp, 8
| | 0x08062dc0 4ff0000e mov.w lr, 0
| .--> 0x08062dc4 0efb08fa mul sl, lr, r8
| || 0x08062dc8 4fea6a01 asr.w r1, sl, 1
| || 0x08062dcc 4031 adds r1, 0x40
| || 0x08062dce 0ffa8afa sxth.w sl, sl
| || 0x08062dd2 03eb0c0b add.w fp, r3, ip
| || 0x08062dd6 0024 movs r4, 0
| || 0x08062dd8 0025 movs r5, 0
| || 0x08062dda 00bf nop
| .---> 0x08062ddc c1f3c819 ubfx sb, r1, 7, 9
| ||| 0x08062de0 33f8020b ldrh r0, [r3], 2
| ||| 0x08062de4 36f81990 ldrh.w sb, [r6, sb, lsl 1]
| ||| 0x08062de8 5b45 cmp r3, fp
| ||| 0x08062dea 5144 add r1, sl
| ||| 0x08062dec c9fb8045 smlalbb r4, r5, sb, r0
| `===< 0x08062df0 f4d1 bne 0x8062ddc
| || 0x08062df2 0099 ldr r1, [sp]
| || 0x08062df4 0b44 add r3, r1
| || 0x08062df6 54ea0501 orrs.w r1, r4, r5
| ,===< 0x08062dfa 33d0 beq 0x8062e64
| ||| 0x08062dfc 0ffa85fa sxth.w sl, r5
| ||| 0x08062e00 baf1000f cmp.w sl, 0
| ,====< 0x08062e04 b5bf itete lt
| `----> 0x08062e06 e143 mvns r1, r4
| ||| 0x08062e08 2146 mov r1, r4
| ||| 0x08062e0a 6fea0a09 mvn.w sb, sl
| ||| 0x08062e0e d146 mov sb, sl
| ||| 0x08062e10 b9fa89f9 clz sb, sb
| ||| 0x08062e14 b9f1200f cmp.w sb, 0x20 ; 32
| ,====< 0x08062e18 04bf itt eq
| `----> 0x08062e1a b1fa81f1 clz r1, r1
| ||| 0x08062e1e 01f12009 add.w sb, r1, 0x20
| ||| 0x08062e22 b9f12101 subs.w r1, sb, 0x21
| ||| 0x08062e26 2046 mov r0, r4
| ,====< 0x08062e28 24d4 bmi 0x8062e74
| |||| 0x08062e2a 8840 lsls r0, r1
| |||| 0x08062e2c c9f12209 rsb.w sb, sb, 0x22
| .-----> 0x08062e30 bdf80440 ldrh.w r4, [sp, 4]
| ||||| 0x08062e34 b9f1000f cmp.w sb, 0
| ||||| 0x08062e38 10fb24f0 smultb r0, r0, r4
| ||||| 0x08062e3c 4fea4000 lsl.w r0, r0, 1
| ,======< 0x08062e40 12da bge 0x8062e68
| |||||| 0x08062e42 c9f10009 rsb.w sb, sb, 0
| |||||| 0x08062e46 40fa09f0 asr.w r0, r0, sb
| |||||| 0x08062e4a 00f50041 add.w r1, r0, 0x8000
| |||||| 0x08062e4e 090c lsrs r1, r1, 0x10
| .-------> 0x08062e50 0ef1010e add.w lr, lr, 1
| ||||||| 0x08062e54 7245 cmp r2, lr
| ||||||| 0x08062e56 3980 strh r1, [r7]
| ||||||| 0x08062e58 07f10207 add.w r7, r7, 2
| |||||`==< 0x08062e5c b2dc bgt 0x8062dc4
| ||||| `-> 0x08062e5e 1fb0 add sp, 0x7c
| ||||| 0x08062e60 bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
| ||||`---> 0x08062e64 0021 movs r1, 0
| ========< 0x08062e66 f3e7 b 0x8062e50
| |`------> 0x08062e68 00fa09f0 lsl.w r0, r0, sb
| | || 0x08062e6c 00f50041 add.w r1, r0, 0x8000
| | || 0x08062e70 090c lsrs r1, r1, 0x10
| `=======< 0x08062e72 ede7 b 0x8062e50
| |`----> 0x08062e74 09f1ff35 add.w r5, sb, -1
| | 0x08062e78 4942 rsbs r1, r1, 0
| | 0x08062e7a cc40 lsrs r4, r1
| | 0x08062e7c 0afa05fa lsl.w sl, sl, r5
| | 0x08062e80 44ea0a00 orr.w r0, r4, sl
| | 0x08062e84 c9f12209 rsb.w sb, sb, 0x22
\ `=====< 0x08062e88 d2e7 b 0x8062e30
/ (fcn) func_62e94 82
| Caller: func_5dfc4
| func_62e94 ();
| 0x08062e94 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x08062e98 0027 movs r7, 0
| 0x08062e9a 1614 asrs r6, r2, 0x10
| 0x08062e9c be46 mov lr, r7
| 0x08062e9e 1c23 movs r3, 0x1c ; 28
| 0x08062ea0 4ff6fc7c movw ip, 0xfffc
| .-> 0x08062ea4 9d1c adds r5, r3, 2
| | 0x08062ea6 02f00308 and r8, r2, 3
| | 0x08062eaa 06f00304 and r4, r6, 3
| | 0x08062eae adb2 uxth r5, r5
| | 0x08062eb0 08fa05f9 lsl.w sb, r8, r5
| | 0x08062eb4 08fa03f8 lsl.w r8, r8, r3
| | 0x08062eb8 04fa05f5 lsl.w r5, r4, r5
| | 0x08062ebc 9c40 lsls r4, r3
| | 0x08062ebe 043b subs r3, 4
| | 0x08062ec0 9bb2 uxth r3, r3
| | 0x08062ec2 48ea0908 orr.w r8, r8, sb
| | 0x08062ec6 2c43 orrs r4, r5
| | 0x08062ec8 6345 cmp r3, ip
| | 0x08062eca 4feaa202 asr.w r2, r2, 2
| | 0x08062ece 4eea080e orr.w lr, lr, r8
| | 0x08062ed2 47ea0407 orr.w r7, r7, r4
| | 0x08062ed6 4feaa606 asr.w r6, r6, 2
| `=< 0x08062eda e3d1 bne 0x8062ea4
| 0x08062edc c0f800e0 str.w lr, [r0]
| 0x08062ee0 0f60 str r7, [r1]
\ 0x08062ee2 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_62ee8 34
| Caller: func_62f2c
| func_62ee8 ();
| 0x08062ee8 10b5 push {r4, lr}
| 0x08062eea 0146 mov r1, r0
| 0x08062eec 0446 mov r4, r0
| 0x08062eee 0e48 ldr r0, [0x08062f2a] ; [0x8062f28:4]=0x3b39c
| 0x08062ef0 f5f726fd bl func_58940
| 0x08062ef4 00b2 sxth r0, r0
| 0x08062ef6 4300 lsls r3, r0, 1
| 0x08062ef8 03fb0443 mla r3, r3, r4, r4
| 0x08062efc b3f5002f cmp.w r3, 0x80000
| ,=< 0x08062f00 07da bge 0x8062f12
| | 0x08062f02 3828 cmp r0, 0x38 ; '8' ; 56
| ,==< 0x08062f04 01dd ble 0x8062f0a
| || 0x08062f06 3820 movs r0, 0x38 ; '8' ; 56
\ || 0x08062f08 10bd pop {r4, pc}
/ (fcn) func_62f2c 136
| Caller: func_5e460
| func_62f2c ();
| 0x08062f2c 12f5805f cmn.w r2, 0x1000
| 0x08062f30 38b5 push {r3, r4, r5, lr}
| 0x08062f32 0d46 mov r5, r1
| 0x08062f34 6ff00301 mvn r1, 3
| ,=< 0x08062f38 08da bge 0x8062f4c
| | 0x08062f3a 00bf nop
| .--> 0x08062f3c 02f58052 add.w r2, r2, 0x1000
| || 0x08062f40 12b2 sxth r2, r2
| || 0x08062f42 12f5805f cmn.w r2, 0x1000
| || 0x08062f46 01f10101 add.w r1, r1, 1
| `==< 0x08062f4a f7db blt 0x8062f3c
| `-> 0x08062f4c 02eb8204 add.w r4, r2, r2, lsl 2
| 0x08062f50 c4eb8414 rsb r4, r4, r4, lsl 6
| 0x08062f54 2413 asrs r4, r4, 0xc
| 0x08062f56 04f21b74 addw r4, r4, 0x71b
| 0x08062f5a a4b2 uxth r4, r4
| 0x08062f5c 04fb02f4 mul r4, r4, r2
| 0x08062f60 2413 asrs r4, r4, 0xc
| 0x08062f62 04f5f654 add.w r4, r4, 0x1ec0
| 0x08062f66 a4b2 uxth r4, r4
| 0x08062f68 12fb04f4 smulbb r4, r2, r4
| 0x08062f6c 2413 asrs r4, r4, 0xc
| 0x08062f6e 04f5b144 add.w r4, r4, 0x5880
| 0x08062f72 3934 adds r4, 0x39
| 0x08062f74 a4b2 uxth r4, r4
| 0x08062f76 12fb04f2 smulbb r2, r2, r4
| 0x08062f7a c2f30f32 ubfx r2, r2, 0xc, 0x10
| 0x08062f7e 82f40042 eor r2, r2, 0x8000
| 0x08062f82 12b2 sxth r2, r2
| 0x08062f84 0a41 asrs r2, r1
| 0x08062f86 92b2 uxth r2, r2
| 0x08062f88 11b2 sxth r1, r2
| 0x08062f8a 41f27804 movw r4, 0x1078
| 0x08062f8e a142 cmp r1, r4
| ,=< 0x08062f90 0cdd ble 0x8062fac
| | 0x08062f92 46f6ca34 movw r4, 0x6bca
| | 0x08062f96 a142 cmp r1, r4
| ,==< 0x08062f98 02dd ble 0x8062fa0
| ,===< 0x08062f9a 0bb9 cbnz r3, 0x8062fa0
| ||| 0x08062f9c 2246 mov r2, r4
| ||| 0x08062f9e 2146 mov r1, r4
| .``--> 0x08062fa0 0280 strh r2, [r0]
| | | 0x08062fa2 0846 mov r0, r1
| | | 0x08062fa4 fff7a0ff bl func_62ee8
| | | 0x08062fa8 2880 strh r0, [r5]
| | | 0x08062faa 38bd pop {r3, r4, r5, pc}
| | `-> 0x08062fac 41f27902 movw r2, 0x1079
| | 0x08062fb0 1146 mov r1, r2
\ `====< 0x08062fb2 f5e7 b 0x8062fa0
/ (fcn) func_62fb4 396
| Caller: func_5e62c func_63274
| func_62fb4 ();
| 0x08062fb4 2de9f04f push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
| 0x08062fb8 85b0 sub sp, 0x14
| 0x08062fba 0446 mov r4, r0
| 0x08062fbc 0e9e ldr r6, [sp, 0x38]
| 0x08062fbe 119f ldr r7, [sp, 0x44]
| 0x08062fc0 9642 cmp r6, r2
| 0x08062fc2 0d46 mov r5, r1
| 0x08062fc4 9b46 mov fp, r3
| ,=< 0x08062fc6 04dd ble 0x8062fd2
| | 0x08062fc8 0f9b ldr r3, [sp, 0x3c]
| | 0x08062fca b61a subs r6, r6, r2
| | 0x08062fcc b340 lsls r3, r6
| | 0x08062fce 0f93 str r3, [sp, 0x3c]
| | 0x08062fd0 1646 mov r6, r2
| ,`-> 0x08062fd2 b7b1 cbz r7, 0x8063002
| | 0x08062fd4 0120 movs r0, 1 ; 1
| | 0x08062fd6 00fa06f3 lsl.w r3, r0, r6
| | 0x08062fda 8542 cmp r5, r0
| | 0x08062fdc 0093 str r3, [sp]
| |,=< 0x08062fde 27d0 beq 0x8063030
| || 0x08062fe0 022d cmp r5, 2 ; 2
| ,===< 0x08062fe2 00f08280 beq.w 0x80630ea
| ||| 0x08062fe6 032d cmp r5, 3 ; 3
| ,====< 0x08062fe8 41d0 beq 0x806306e
| |||| 0x08062fea 042d cmp r5, 4 ; 4
| ,=====< 0x08062fec 00f0a880 beq.w 0x8063140
| ||||| 0x08062ff0 0020 movs r0, 0
| ..------> 0x08062ff2 009b ldr r3, [sp]
| ||||||| 0x08062ff4 1f1a subs r7, r3, r0
| ||||||| 0x08062ff6 3146 mov r1, r6
| ||||||| 0x08062ff8 3a46 mov r2, r7
| ||||||| 0x08062ffa 1098 ldr r0, [sp, 0x40]
| ||||||| 0x08062ffc fbf726fa bl func_5e44c
| ========< 0x08063000 04e0 b 0x806300c
| |||||`--> 0x08063002 3146 mov r1, r6
| ||||| | 0x08063004 1098 ldr r0, [sp, 0x40]
| ||||| | 0x08063006 fcf7d1f8 bl 0x805f1ac
| ||||| | 0x0806300a 0746 mov r7, r0
| --------> 0x0806300c 0f9b ldr r3, [sp, 0x3c]
| ||||| | 0x0806300e 03fb07f3 mul r3, r3, r7
| ||||| | 0x08063012 0beb4303 add.w r3, fp, r3, lsl 1
| ||||| | 0x08063016 03eb4505 add.w r5, r3, r5, lsl 1
| ||||| | 0x0806301a 023c subs r4, 2
| |||||.--> 0x0806301c 33f8022b ldrh r2, [r3], 2
| ||||||| 0x08063020 24f8022f strh r2, [r4, 2]!
| ||||||| 0x08063024 ab42 cmp r3, r5
| |||||`==< 0x08063026 f9d1 bne 0x806301c
| ||||| | 0x08063028 3846 mov r0, r7
| ||||| | 0x0806302a 05b0 add sp, 0x14
| ||||| | 0x0806302c bde8f08f pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}
| ||||| `-> 0x08063030 b4f900e0 ldrsh.w lr, [r4]
| ||||| 0x08063034 0f9b ldr r3, [sp, 0x3c]
| ||||| 0x08063036 009a ldr r2, [sp]
| ||||| 0x08063038 0020 movs r0, 0
| ||||| 0x0806303a 4fea0e4e lsl.w lr, lr, 0x10
| ||||| 0x0806303e 8046 mov r8, r0
| ||||| 0x08063040 4fea430c lsl.w ip, r3, 1
| ||||| 0x08063044 5946 mov r1, fp
| ||||| 0x08063046 6ff00047 mvn r7, 0x80000000
| ||||| 0x0806304a 00bf nop
| ||||| .-> 0x0806304c b1f90030 ldrsh.w r3, [r1]
| ||||| | 0x08063050 1b04 lsls r3, r3, 0x10
| ||||| | 0x08063052 83faaef3 qsub r3, lr, r3
| ||||| | 0x08063056 13fb33f3 smultt r3, r3, r3
| ||||| | 0x0806305a 83fa98f3 qdadd r3, r8, r3
| ||||| | 0x0806305e bb42 cmp r3, r7
| |||||,==< 0x08063060 bcbf itt lt
| |||||`--> 0x08063062 1f46 mov r7, r3
| ||||| | 0x08063064 1046 mov r0, r2
| ||||| | 0x08063066 013a subs r2, 1
| ||||| | 0x08063068 6144 add r1, ip
| ||||| `=< 0x0806306a efd1 bne 0x806304c
| ========< 0x0806306c c1e7 b 0x8062ff2
| |||`----> 0x0806306e 0f9b ldr r3, [sp, 0x3c]
| ||| | 0x08063070 b4f900a0 ldrsh.w sl, [r4]
| ||| | 0x08063074 b4f90290 ldrsh.w sb, [r4, 2]
| ||| | 0x08063078 b4f90480 ldrsh.w r8, [r4, 4]
| ||| | 0x0806307c ddf800e0 ldr.w lr, [sp]
| ||| | 0x08063080 0194 str r4, [sp, 4]
| ||| | 0x08063082 5b00 lsls r3, r3, 1
| ||| | 0x08063084 0020 movs r0, 0
| ||| | 0x08063086 4fea0a4a lsl.w sl, sl, 0x10
| ||| | 0x0806308a 4fea0949 lsl.w sb, sb, 0x10
| ||| | 0x0806308e 4fea0848 lsl.w r8, r8, 0x10
| ||| | 0x08063092 5f46 mov r7, fp
| ||| | 0x08063094 6ff0004c mvn ip, 0x80000000
| ||| | 0x08063098 1c46 mov r4, r3
| ||| | 0x0806309a 0295 str r5, [sp, 8]
| ||| | .-> 0x0806309c b7f90030 ldrsh.w r3, [r7]
| ||| | | 0x080630a0 b7f90210 ldrsh.w r1, [r7, 2]
| ||| | | 0x080630a4 b7f90420 ldrsh.w r2, [r7, 4]
| ||| | | 0x080630a8 1b04 lsls r3, r3, 0x10
| ||| | | 0x080630aa 0904 lsls r1, r1, 0x10
| ||| | | 0x080630ac 83faaaf3 qsub r3, sl, r3
| ||| | | 0x080630b0 81faa9f1 qsub r1, sb, r1
| ||| | | 0x080630b4 13fb33f3 smultt r3, r3, r3
| ||| | | 0x080630b8 11fb31f1 smultt r1, r1, r1
| ||| | | 0x080630bc 0025 movs r5, 0
| ||| | | 0x080630be 1204 lsls r2, r2, 0x10
| ||| | | 0x080630c0 83fa95f3 qdadd r3, r5, r3
| ||| | | 0x080630c4 82faa8f2 qsub r2, r8, r2
| ||| | | 0x080630c8 81fa93f3 qdadd r3, r3, r1
| ||| | | 0x080630cc 12fb32f2 smultt r2, r2, r2
| ||| | | 0x080630d0 82fa93f3 qdadd r3, r3, r2
| ||| | | 0x080630d4 6345 cmp r3, ip
| ||| |,==< 0x080630d6 bcbf itt lt
| ||| |`--> 0x080630d8 9c46 mov ip, r3
| ||| | | 0x080630da 7046 mov r0, lr
| ||| | | 0x080630dc bef1010e subs.w lr, lr, 1
| ||| | | 0x080630e0 2744 add r7, r4
| ||| | `=< 0x080630e2 dbd1 bne 0x806309c
| ||| | 0x080630e4 019c ldr r4, [sp, 4]
| ||| | 0x080630e6 029d ldr r5, [sp, 8]
| `=======< 0x080630e8 83e7 b 0x8062ff2
| || `---> 0x080630ea b4f90080 ldrsh.w r8, [r4]
| || 0x080630ee b4f902c0 ldrsh.w ip, [r4, 2]
| || 0x080630f2 0f9b ldr r3, [sp, 0x3c]
| || 0x080630f4 009f ldr r7, [sp]
| || 0x080630f6 0020 movs r0, 0
| || 0x080630f8 4fea0848 lsl.w r8, r8, 0x10
| || 0x080630fc 4fea0c4c lsl.w ip, ip, 0x10
| || 0x08063100 8246 mov sl, r0
| || 0x08063102 4fea4309 lsl.w sb, r3, 1
| || 0x08063106 5946 mov r1, fp
| || 0x08063108 6ff0004e mvn lr, 0x80000000
| || .-> 0x0806310c b1f90030 ldrsh.w r3, [r1]
| || | 0x08063110 b1f90220 ldrsh.w r2, [r1, 2]
| || | 0x08063114 1b04 lsls r3, r3, 0x10
| || | 0x08063116 1204 lsls r2, r2, 0x10
| || | 0x08063118 83faa8f3 qsub r3, r8, r3
| || | 0x0806311c 82faacf2 qsub r2, ip, r2
| || | 0x08063120 13fb33f3 smultt r3, r3, r3
| || | 0x08063124 12fb32f2 smultt r2, r2, r2
| || | 0x08063128 83fa9af3 qdadd r3, sl, r3
| || | 0x0806312c 82fa93f3 qdadd r3, r3, r2
| || | 0x08063130 7345 cmp r3, lr
| || ,==< 0x08063132 bcbf itt lt
| || `--> 0x08063134 9e46 mov lr, r3
| || | 0x08063136 3846 mov r0, r7
| || | 0x08063138 013f subs r7, 1
| || | 0x0806313a 4944 add r1, sb
| || `=< 0x0806313c e6d1 bne 0x806310c
\ `======< 0x0806313e 58e7 b 0x8062ff2
/ (fcn) func_631e0 140
| Caller: func_5e62c
| func_631e0 ();
| 0x080631e0 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x080631e4 9142 cmp r1, r2
| 0x080631e6 9db0 sub sp, 0x74 ; 't'
| 0x080631e8 0f46 mov r7, r1
| ,=< 0x080631ea a8bf it ge
| `-> 0x080631ec 1746 mov r7, r2
| 0x080631ee 8146 mov sb, r0
| 0x080631f0 012f cmp r7, 1 ; 1
| 0x080631f2 0088 ldrh r0, [r0]
| 0x080631f4 adf80000 strh.w r0, [sp]
| 0x080631f8 0e46 mov r6, r1
| 0x080631fa 0df10205 add.w r5, sp, 2
| 0x080631fe 09f10204 add.w r4, sb, 2
| ,=< 0x08063202 07dd ble 0x8063214
| | 0x08063204 2846 mov r0, r5
| | 0x08063206 2146 mov r1, r4
| | 0x08063208 7a1e subs r2, r7, 1
| | 0x0806320a 0123 movs r3, 1 ; 1
| | 0x0806320c f7f75af9 bl func_5a4c4
| | 0x08063210 bdf80000 ldrh.w r0, [sp]
| `-> 0x08063214 154b ldr r3, [0x0806326c] ; [0x806326c:4]=0x809700c
| 0x08063216 dff858e0 ldr.w lr, [0x08063276] ; [0x8063274:4]=0x43f0e92d
| 0x0806321a 33f91680 ldrsh.w r8, [r3, r6, lsl 1]
| 0x0806321e 09eb460c add.w ip, sb, r6, lsl 1
| 0x08063222 0deb4707 add.w r7, sp, r7, lsl 1
| 0x08063226 4fea6806 asr.w r6, r8, 1
| 0x0806322a 00bf nop
| .-> 0x0806322c 2a46 mov r2, r5
| | 0x0806322e 4023 movs r3, 0x40 ; '@' ; 64
| | 0x08063230 0021 movs r1, 0
| ,==< 0x08063232 01e0 b 0x8063238
| .---> 0x08063234 32f8020b ldrh r0, [r2], 2
| |`--> 0x08063238 c3f3c819 ubfx sb, r3, 7, 9
| | | 0x0806323c ba42 cmp r2, r7
| | | 0x0806323e 3ef81990 ldrh.w sb, [lr, sb, lsl 1]
| | | 0x08063242 3344 add r3, r6
| | | 0x08063244 19fb0011 smlabb r1, sb, r0, r1
| `===< 0x08063248 f4d1 bne 0x8063234
| | 0x0806324a 4900 lsls r1, r1, 1
| | 0x0806324c 01f50041 add.w r1, r1, 0x8000
| | 0x08063250 0914 asrs r1, r1, 0x10
| | 0x08063252 4644 add r6, r8
| | 0x08063254 6445 cmp r4, ip
| | 0x08063256 24f8021c strh r1, [r4, -0x2]
| | 0x0806325a 36b2 sxth r6, r6
| ,==< 0x0806325c 03d0 beq 0x8063266
| || 0x0806325e 0234 adds r4, 2
| || 0x08063260 bdf80000 ldrh.w r0, [sp]
| |`=< 0x08063264 e2e7 b 0x806322c
| `--> 0x08063266 1db0 add sp, 0x74
\ 0x08063268 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_63274 250
| Caller: func_5ea58
| func_63274 ();
| 0x08063274 2de9f043 push.w {r4, r5, r6, r7, r8, sb, lr}
| 0x08063278 85b0 sub sp, 0x14
| 0x0806327a 8846 mov r8, r1
| 0x0806327c 0f9e ldr r6, [sp, 0x3c]
| 0x0806327e 0c9d ldr r5, [sp, 0x30]
| 0x08063280 0d9f ldr r7, [sp, 0x34]
| 0x08063282 0446 mov r4, r0
| 0x08063284 002e cmp r6, 0
| ,=< 0x08063286 46d1 bne 0x8063316
| | 0x08063288 0e9b ldr r3, [sp, 0x38]
| | 0x0806328a 0293 str r3, [sp, 8]
| | 0x0806328c 0121 movs r1, 1 ; 1
| | 0x0806328e 0097 str r7, [sp]
| | 0x08063290 0396 str r6, [sp, 0xc]
| | 0x08063292 3a46 mov r2, r7
| | 0x08063294 0191 str r1, [sp, 4]
| | 0x08063296 364b ldr r3, [0x08063372] ; [0x8063370:4]=0x80982c0
| | 0x08063298 fff78cfe bl func_62fb4
| | 0x0806329c b8f1020f cmp.w r8, 2 ; 2
| ,==< 0x080632a0 24d0 beq 0x80632ec
| .---> 0x080632a2 b5f90030 ldrsh.w r3, [r5]
| ||| 0x080632a6 b4f90020 ldrsh.w r2, [r4]
| ||| 0x080632aa db03 lsls r3, r3, 0xf
| ||| 0x080632ac 03eb0243 add.w r3, r3, r2, lsl 16
| ||| 0x080632b0 1b14 asrs r3, r3, 0x10
| ||| 0x080632b2 b3f5d04f cmp.w r3, 0x6800
| ,====< 0x080632b6 a8bf it ge
| `----> 0x080632b8 4ff4d043 mov.w r3, 0x6800
| ||| 0x080632bc 9bb2 uxth r3, r3
| ||| 0x080632be 2380 strh r3, [r4]
| ||| 0x080632c0 2b80 strh r3, [r5]
| ||| 0x080632c2 05b0 add sp, 0x14
| ||| 0x080632c4 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
| .----> 0x080632c8 4ff08052 mov.w r2, 0x10000000
| |||| 0x080632cc 1b04 lsls r3, r3, 0x10
| |||| 0x080632ce 0121 movs r1, 1 ; 1
| |||| 0x080632d0 83fa82f3 qadd r3, r2, r3
| |||| 0x080632d4 0e9a ldr r2, [sp, 0x38]
| |||| 0x080632d6 0292 str r2, [sp, 8]
| |||| 0x080632d8 1b14 asrs r3, r3, 0x10
| |||| 0x080632da 0097 str r7, [sp]
| |||| 0x080632dc 0396 str r6, [sp, 0xc]
| |||| 0x080632de 3a46 mov r2, r7
| |||| 0x080632e0 2380 strh r3, [r4]
| |||| 0x080632e2 2046 mov r0, r4
| |||| 0x080632e4 0191 str r1, [sp, 4]
| |||| 0x080632e6 224b ldr r3, [0x08063372] ; [0x8063370:4]=0x80982c0
| |||| 0x080632e8 fff764fe bl func_62fb4
| ||`--> 0x080632ec b4f90030 ldrsh.w r3, [r4]
| || | 0x080632f0 a3f58053 sub.w r3, r3, 0x1000
| || | 0x080632f4 9ab2 uxth r2, r3
| || | 0x080632f6 2280 strh r2, [r4]
| || | 0x080632f8 b5f90030 ldrsh.w r3, [r5]
| || | 0x080632fc db03 lsls r3, r3, 0xf
| || | 0x080632fe 03eb0243 add.w r3, r3, r2, lsl 16
| || | 0x08063302 1b14 asrs r3, r3, 0x10
| || | 0x08063304 b3f5d04f cmp.w r3, 0x6800
| ||,==< 0x08063308 a8bf it ge
| ||`--> 0x0806330a 4ff4d043 mov.w r3, 0x6800
| || | 0x0806330e 2380 strh r3, [r4]
| || | 0x08063310 05b0 add sp, 0x14
| || | 0x08063312 bde8f083 pop.w {r4, r5, r6, r7, r8, sb, pc}
| || `-> 0x08063316 1946 mov r1, r3
| || 0x08063318 1046 mov r0, r2
| || 0x0806331a 9946 mov sb, r3
| || 0x0806331c f6f760ff bl 0x805a1e0
| || 0x08063320 0f21 movs r1, 0xf ; 15
| || 0x08063322 2080 strh r0, [r4]
| || 0x08063324 0522 movs r2, 5 ; 5
| || 0x08063326 4846 mov r0, sb
| || 0x08063328 f5f7aafc bl func_58c80
| || 0x0806332c b4f90030 ldrsh.w r3, [r4]
| || 0x08063330 b5f90020 ldrsh.w r2, [r5]
| || 0x08063334 1904 lsls r1, r3, 0x10
| || 0x08063336 0004 lsls r0, r0, 0x10
| || 0x08063338 9303 lsls r3, r2, 0xe
| || 0x0806333a 81fa80f0 qadd r0, r0, r1
| || 0x0806333e 4ff40042 mov.w r2, 0x8000
| || 0x08063342 83fab0f3 qdsub r3, r0, r3
| || 0x08063346 b8f1020f cmp.w r8, 2 ; 2
| || 0x0806334a 83fa82f3 qadd r3, r2, r3
| || 0x0806334e 4fea1343 lsr.w r3, r3, 0x10
| || 0x08063352 2380 strh r3, [r4]
| `====< 0x08063354 b8d0 beq 0x80632c8
| | 0x08063356 0e9b ldr r3, [sp, 0x38]
| | 0x08063358 0293 str r3, [sp, 8]
| | 0x0806335a 0121 movs r1, 1 ; 1
| | 0x0806335c 0097 str r7, [sp]
| | 0x0806335e 0396 str r6, [sp, 0xc]
| | 0x08063360 3a46 mov r2, r7
| | 0x08063362 0191 str r1, [sp, 4]
| | 0x08063364 2046 mov r0, r4
| | 0x08063366 024b ldr r3, [0x08063372] ; [0x8063370:4]=0x80982c0
| | 0x08063368 fff724fe bl func_62fb4
\ `===< 0x0806336c 99e7 b 0x80632a2
/ (fcn) func_633b0 14
| Caller: func_62536 func_6267c
| func_633b0 ();
| 0x080633b0 d2b2 uxtb r2, r2
| 0x080633b2 203a subs r2, 0x20
| ,=< 0x080633b4 22bf ittt hs
| `-> 0x080633b6 41fa02f0 asr.w r0, r1, r2
| 0x080633ba c917 asrs r1, r1, 0x1f
\ 0x080633bc 7047 bx lr
/ (fcn) func_633d4 14
| Caller: func_62536 func_6267c
| func_633d4 ();
| 0x080633d4 d2b2 uxtb r2, r2
| 0x080633d6 203a subs r2, 0x20
| ,=< 0x080633d8 22bf ittt hs
| `-> 0x080633da 00fa02f1 lsl.w r1, r0, r2
| 0x080633de 0020 movs r0, 0
\ 0x080633e0 7047 bx lr
/ (fcn) func_8eab4 4
| Caller: func_901ec usb_dnld_handle
| func_8eab4 ();
\ 0x0808eab4 bff34f8f dsb sy
/ (fcn) func_8f196 132
| Caller: usb_do_setup
| func_8f196 ();
| 0x0808f196 10b5 push {r4, lr}
| 0x0808f198 0400 movs r4, r0
| 0x0808f19a 4348 ldr r0, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| 0x0808f19c 0078 ldrb r0, [r0]
| 0x0808f19e 0228 cmp r0, 2 ; 2
| ,=< 0x0808f1a0 0fd0 beq 0x808f1c2
| | 0x0808f1a2 4148 ldr r0, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| | 0x0808f1a4 0078 ldrb r0, [r0]
| | 0x0808f1a6 0328 cmp r0, 3 ; 3
| ,==< 0x0808f1a8 0bd0 beq 0x808f1c2
| || 0x0808f1aa 3f48 ldr r0, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| || 0x0808f1ac 0078 ldrb r0, [r0]
| || 0x0808f1ae 0528 cmp r0, 5 ; 5
| ,===< 0x0808f1b0 07d0 beq 0x808f1c2
| ||| 0x0808f1b2 3d48 ldr r0, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| ||| 0x0808f1b4 0078 ldrb r0, [r0]
| ||| 0x0808f1b6 0628 cmp r0, 6 ; 6
| ,====< 0x0808f1b8 03d0 beq 0x808f1c2
| |||| 0x0808f1ba 3b48 ldr r0, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| |||| 0x0808f1bc 0078 ldrb r0, [r0]
| |||| 0x0808f1be 0928 cmp r0, 9 ; 9
| ,=====< 0x0808f1c0 1bd1 bne 0x808f1fa
| |````-> 0x0808f1c2 3948 ldr r0, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| | 0x0808f1c4 0222 movs r2, 2 ; 2
| | 0x0808f1c6 0270 strb r2, [r0]
| | 0x0808f1c8 3848 ldr r0, [0x0808f2ac] ; [0x808f2ac:4]=0x2001e584
| | 0x0808f1ca 0022 movs r2, 0
| | 0x0808f1cc 0270 strb r2, [r0]
| | 0x0808f1ce 3748 ldr r0, [0x0808f2ae] ; [0x808f2ac:4]=0x2001e584
| | 0x0808f1d0 0022 movs r2, 0
| | 0x0808f1d2 4270 strb r2, [r0, 1]
| | 0x0808f1d4 3548 ldr r0, [0x0808f2ac] ; [0x808f2ac:4]=0x2001e584
| | 0x0808f1d6 0022 movs r2, 0
| | 0x0808f1d8 8270 strb r2, [r0, 2]
| | 0x0808f1da 3448 ldr r0, [0x0808f2ae] ; [0x808f2ac:4]=0x2001e584
| | 0x0808f1dc 0022 movs r2, 0
| | 0x0808f1de c270 strb r2, [r0, 3]
| | 0x0808f1e0 3248 ldr r0, [0x0808f2ac] ; [0x808f2ac:4]=0x2001e584
| | 0x0808f1e2 314a ldr r2, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| | 0x0808f1e4 1278 ldrb r2, [r2]
| | 0x0808f1e6 0271 strb r2, [r0, 4]
| | 0x0808f1e8 3048 ldr r0, [0x0808f2ac] ; [0x808f2ac:4]=0x2001e584
| | 0x0808f1ea 0022 movs r2, 0
| | 0x0808f1ec 4271 strb r2, [r0, 5]
| | 0x0808f1ee 3048 ldr r0, [0x0808f2b2] ; [0x808f2b0:4]=0x2001e754 md380_blockadr
| | 0x0808f1f0 0022 movs r2, 0
| | 0x0808f1f2 0260 str r2, [r0]
| | 0x0808f1f4 2f48 ldr r0, [0x0808f2b4] ; [0x808f2b4:4]=0x2001e758 md380_packetlen
| | 0x0808f1f6 0022 movs r2, 0
| | 0x0808f1f8 0260 str r2, [r0]
| `-----> 0x0808f1fa dff8e80c ldr.w r0, [0x0808feea] ; [0x808fee8:4]=0x2001e750
| 0x0808f1fe 807f ldrb r0, [r0, 0x1e]
| 0x0808f200 c006 lsls r0, r0, 0x1b
| ,=< 0x0808f202 06d5 bpl 0x808f212
| | 0x0808f204 2000 movs r0, r4
| | 0x0808f206 caf74bf9 bl func_594a0
| | 0x0808f20a 2000 movs r0, r4
| | 0x0808f20c caf73df9 bl func_5948a
| ,==< 0x0808f210 02e0 b 0x808f218
| |`-> 0x0808f212 4888 ldrh r0, [r1, 2]
| | 0x0808f214 caf728f8 bl func_59268
\ `--> 0x0808f218 10bd pop {r4, pc}
/ (fcn) func_8f21a 134
| Caller: usb_do_setup
| func_8f21a ();
| 0x0808f21a 80b5 push {r7, lr}
| 0x0808f21c ca88 ldrh r2, [r1, 6]
| 0x0808f21e 012a cmp r2, 1 ; 1
| ,=< 0x0808f220 1ed3 blo 0x808f260
| | 0x0808f222 214a ldr r2, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| | 0x0808f224 1278 ldrb r2, [r2]
| | 0x0808f226 022a cmp r2, 2 ; 2
| ,==< 0x0808f228 03d0 beq 0x808f232
| || 0x0808f22a 1f4a ldr r2, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| || 0x0808f22c 1278 ldrb r2, [r2]
| || 0x0808f22e 052a cmp r2, 5 ; 5
| ,===< 0x0808f230 13d1 bne 0x808f25a
| |`--> 0x0808f232 4a88 ldrh r2, [r1, 2]
| | | 0x0808f234 1e4b ldr r3, [0x0808f2b0] ; [0x808f2b0:4]=0x2001e754 md380_blockadr
| | | 0x0808f236 1a60 str r2, [r3]
| | | 0x0808f238 c988 ldrh r1, [r1, 6]
| | | 0x0808f23a 1e4a ldr r2, [0x0808f2b6] ; [0x808f2b4:4]=0x2001e758 md380_packetlen
| | | 0x0808f23c 1160 str r1, [r2]
| | | 0x0808f23e 1a49 ldr r1, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| | | 0x0808f240 0322 movs r2, 3 ; 3
| | | 0x0808f242 0a70 strb r2, [r1]
| | | 0x0808f244 1949 ldr r1, [0x0808f2ac] ; [0x808f2ac:4]=0x2001e584
| | | 0x0808f246 184a ldr r2, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| | | 0x0808f248 1278 ldrb r2, [r2]
| | | 0x0808f24a 0a71 strb r2, [r1, 4]
| | | 0x0808f24c 1949 ldr r1, [0x0808f2b4] ; [0x808f2b4:4]=0x2001e758 md380_packetlen
| | | 0x0808f24e 0a68 ldr r2, [r1]
| | | 0x0808f250 92b2 uxth r2, r2
| | | 0x0808f252 1b49 ldr r1, [0x0808f2c2] ; [0x808f2c0:4]=0x2001ae74 md380_packet
| | | 0x0808f254 caf774fc bl func_59b40
| |,==< 0x0808f258 21e0 b 0x808f29e
| `---> 0x0808f25a caf717fc bl func_59a8c
| ,===< 0x0808f25e 1ee0 b 0x808f29e
| ||`-> 0x0808f260 114a ldr r2, [0x0808f2a8] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| || 0x0808f262 1278 ldrb r2, [r2]
| || 0x0808f264 052a cmp r2, 5 ; 5
| ||,=< 0x0808f266 03d0 beq 0x808f270
| ||| 0x0808f268 0f4a ldr r2, [0x0808f2a8] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| ||| 0x0808f26a 1278 ldrb r2, [r2]
| ||| 0x0808f26c 022a cmp r2, 2 ; 2
| ,====< 0x0808f26e 14d1 bne 0x808f29a
| |||`-> 0x0808f270 dff8740c ldr.w r0, [0x0808feec] ; [0x808feec:4]=0x2001e962 md380_dfu_state
| ||| 0x0808f274 0121 movs r1, 1 ; 1
| ||| 0x0808f276 0160 str r1, [r0]
| ||| 0x0808f278 0b48 ldr r0, [0x0808f2a8] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| ||| 0x0808f27a 0621 movs r1, 6 ; 6
| ||| 0x0808f27c 0170 strb r1, [r0]
| ||| 0x0808f27e 0b48 ldr r0, [0x0808f2ae] ; [0x808f2ac:4]=0x2001e584
| ||| 0x0808f280 0021 movs r1, 0
| ||| 0x0808f282 4170 strb r1, [r0, 1]
| ||| 0x0808f284 0948 ldr r0, [0x0808f2ac] ; [0x808f2ac:4]=0x2001e584
| ||| 0x0808f286 0021 movs r1, 0
| ||| 0x0808f288 8170 strb r1, [r0, 2]
| ||| 0x0808f28a 0848 ldr r0, [0x0808f2ae] ; [0x808f2ac:4]=0x2001e584
| ||| 0x0808f28c 0021 movs r1, 0
| ||| 0x0808f28e c170 strb r1, [r0, 3]
| ||| 0x0808f290 0648 ldr r0, [0x0808f2ac] ; [0x808f2ac:4]=0x2001e584
| ||| 0x0808f292 0549 ldr r1, [0x0808f2aa] ; [0x808f2a8:4]=0x2001e962 md380_dfu_state
| ||| 0x0808f294 0978 ldrb r1, [r1]
| ||| 0x0808f296 0171 strb r1, [r0, 4]
| |||,=< 0x0808f298 01e0 b 0x808f29e
| `----> 0x0808f29a caf7f7fb bl func_59a8c
\ ```-> 0x0808f29e 01bd pop {r0, pc}
/ (fcn) func_8ff00 520
| Caller: usb_do_setup
| func_8ff00 ();
| 0x0808ff00 10b5 push {r4, lr}
| 0x0808ff02 0400 movs r4, r0
| 0x0808ff04 dff8a803 ldr.w r0, [0x080902b4] ; [0x80902b4:4]=0x2001e758 md380_packetlen
| 0x0808ff08 0078 ldrb r0, [r0]
| 0x0808ff0a 0328 cmp r0, 3 ; 3
| ,=< 0x0808ff0c 03d0 beq 0x808ff16
| | 0x0808ff0e 0628 cmp r0, 6 ; 6
| ,==< 0x0808ff10 00f0c680 beq.w 0x80900a0
| ,===< 0x0808ff14 f2e0 b 0x80900fc
| ||`-> 0x0808ff16 dff89c03 ldr.w r0, [0x080902ba] ; [0x80902b8:4]=0x2001e754 md380_blockadr
| || 0x0808ff1a 0068 ldr r0, [r0]
| || 0x0808ff1c 0028 cmp r0, 0
| ||,=< 0x0808ff1e 00f0ae80 beq.w 0x809007e
| ||| 0x0808ff22 dff88c03 ldr.w r0, [0x080902b6] ; [0x80902b4:4]=0x2001e758 md380_packetlen
| ||| 0x0808ff26 0421 movs r1, 4 ; 4
| ||| 0x0808ff28 0170 strb r1, [r0]
| ||| 0x0808ff2a 7748 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||| 0x0808ff2c dff88013 ldr.w r1, [0x080902b4] ; [0x80902b4:4]=0x2001e758 md380_packetlen
| ||| 0x0808ff30 0978 ldrb r1, [r1]
| ||| 0x0808ff32 0171 strb r1, [r0, 4]
| ||| 0x0808ff34 dff88003 ldr.w r0, [0x080902bc] ; [0x80902bc:4]=0x2001e750
| ||| 0x0808ff38 0068 ldr r0, [r0]
| ||| 0x0808ff3a 0028 cmp r0, 0
| ,====< 0x0808ff3c 0bd1 bne 0x808ff56
| |||| 0x0808ff3e 8c48 ldr r0, [0x08090172] ; [0x8090170:4]=0x2001ae74 md380_packet
| |||| 0x0808ff40 0078 ldrb r0, [r0]
| |||| 0x0808ff42 4128 cmp r0, 0x41 ; 'A' ; 65
| ,=====< 0x0808ff44 07d1 bne 0x808ff56
| ||||| 0x0808ff46 704a ldr r2, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||||| 0x0808ff48 0121 movs r1, 1 ; 1
| ||||| 0x0808ff4a dff86003 ldr.w r0, [0x080902b2] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| ||||| 0x0808ff4e 0068 ldr r0, [r0]
| ||||| 0x0808ff50 00f051fa bl func_903f6
| ,======< 0x0808ff54 a3e0 b 0x809009e
| |``----> 0x0808ff56 dff86003 ldr.w r0, [0x080902be] ; [0x80902bc:4]=0x2001e750
| | ||| 0x0808ff5a 0068 ldr r0, [r0]
| | ||| 0x0808ff5c 0028 cmp r0, 0
| | ,====< 0x0808ff5e 15d1 bne 0x808ff8c
| | |||| 0x0808ff60 8348 ldr r0, [0x08090170] ; [0x8090170:4]=0x2001ae74 md380_packet
| | |||| 0x0808ff62 0078 ldrb r0, [r0]
| | |||| 0x0808ff64 9128 cmp r0, 0x91 ; 145
| |,=====< 0x0808ff66 11d1 bne 0x808ff8c
| |||||| 0x0808ff68 8148 ldr r0, [0x08090170] ; [0x8090170:4]=0x2001ae74 md380_packet
| |||||| 0x0808ff6a 4078 ldrb r0, [r0, 1]
| |||||| 0x0808ff6c 0328 cmp r0, 3 ; 3
| ,=======< 0x0808ff6e 03d0 beq 0x808ff78
| ||||||| 0x0808ff70 7f48 ldr r0, [0x08090170] ; [0x8090170:4]=0x2001ae74 md380_packet
| ||||||| 0x0808ff72 4078 ldrb r0, [r0, 1]
| ||||||| 0x0808ff74 0128 cmp r0, 1 ; 1
| ========< 0x0808ff76 09d1 bne 0x808ff8c
| `-------> 0x0808ff78 6348 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| |||||| 0x0808ff7a e821 movs r1, 0xe8 ; 232
| |||||| 0x0808ff7c 4170 strb r1, [r0, 1]
| |||||| 0x0808ff7e 6248 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| |||||| 0x0808ff80 0321 movs r1, 3 ; 3
| |||||| 0x0808ff82 8170 strb r1, [r0, 2]
| |||||| 0x0808ff84 6048 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| |||||| 0x0808ff86 0021 movs r1, 0
| |||||| 0x0808ff88 c170 strb r1, [r0, 3]
| ,=======< 0x0808ff8a 88e0 b 0x809009e
| --``----> 0x0808ff8c dff82803 ldr.w r0, [0x080902bc] ; [0x80902bc:4]=0x2001e750
| || ||| 0x0808ff90 0068 ldr r0, [r0]
| || ||| 0x0808ff92 0028 cmp r0, 0
| || ,====< 0x0808ff94 11d1 bne 0x808ffba
| || |||| 0x0808ff96 7648 ldr r0, [0x08090172] ; [0x8090170:4]=0x2001ae74 md380_packet
| || |||| 0x0808ff98 0078 ldrb r0, [r0]
| || |||| 0x0808ff9a 9128 cmp r0, 0x91 ; 145
| ||,=====< 0x0808ff9c 0dd1 bne 0x808ffba
| ||||||| 0x0808ff9e 7448 ldr r0, [0x08090172] ; [0x8090170:4]=0x2001ae74 md380_packet
| ||||||| 0x0808ffa0 4078 ldrb r0, [r0, 1]
| ||||||| 0x0808ffa2 5028 cmp r0, 0x50 ; 'P' ; 80
| ========< 0x0808ffa4 09d1 bne 0x808ffba
| ||||||| 0x0808ffa6 5848 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808ffa8 b821 movs r1, 0xb8 ; 184
| ||||||| 0x0808ffaa 4170 strb r1, [r0, 1]
| ||||||| 0x0808ffac 5648 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808ffae 0b21 movs r1, 0xb ; 11
| ||||||| 0x0808ffb0 8170 strb r1, [r0, 2]
| ||||||| 0x0808ffb2 5548 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808ffb4 0021 movs r1, 0
| ||||||| 0x0808ffb6 c170 strb r1, [r0, 3]
| ========< 0x0808ffb8 71e0 b 0x809009e
| --``----> 0x0808ffba dff8fc02 ldr.w r0, [0x080902be] ; [0x80902bc:4]=0x2001e750
| || ||| 0x0808ffbe 0068 ldr r0, [r0]
| || ||| 0x0808ffc0 0028 cmp r0, 0
| || ,====< 0x0808ffc2 0dd1 bne 0x808ffe0
| || |||| 0x0808ffc4 6a48 ldr r0, [0x08090170] ; [0x8090170:4]=0x2001ae74 md380_packet
| || |||| 0x0808ffc6 0078 ldrb r0, [r0]
| || |||| 0x0808ffc8 d528 cmp r0, 0xd5 ; 213
| ||,=====< 0x0808ffca 09d1 bne 0x808ffe0
| ||||||| 0x0808ffcc 4e48 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808ffce e821 movs r1, 0xe8 ; 232
| ||||||| 0x0808ffd0 4170 strb r1, [r0, 1]
| ||||||| 0x0808ffd2 4d48 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808ffd4 0321 movs r1, 3 ; 3
| ||||||| 0x0808ffd6 8170 strb r1, [r0, 2]
| ||||||| 0x0808ffd8 4b48 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808ffda 0021 movs r1, 0
| ||||||| 0x0808ffdc c170 strb r1, [r0, 3]
| ========< 0x0808ffde 5ee0 b 0x809009e
| ||``----> 0x0808ffe0 b548 ldr r0, [0x080902b8] ; [0x80902b8:4]=0x2001e754 md380_blockadr
| || ||| 0x0808ffe2 0068 ldr r0, [r0]
| || ||| 0x0808ffe4 0028 cmp r0, 0
| || ,====< 0x0808ffe6 0dd1 bne 0x8090004
| || |||| 0x0808ffe8 6148 ldr r0, [0x08090170] ; [0x8090170:4]=0x2001ae74 md380_packet
| || |||| 0x0808ffea 0078 ldrb r0, [r0]
| || |||| 0x0808ffec b328 cmp r0, 0xb3 ; 179
| ||,=====< 0x0808ffee 09d1 bne 0x8090004
| ||||||| 0x0808fff0 4548 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808fff2 f421 movs r1, 0xf4 ; 244
| ||||||| 0x0808fff4 4170 strb r1, [r0, 1]
| ||||||| 0x0808fff6 4448 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808fff8 0121 movs r1, 1 ; 1
| ||||||| 0x0808fffa 8170 strb r1, [r0, 2]
| ||||||| 0x0808fffc 4248 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0808fffe 0021 movs r1, 0
| ||||||| 0x08090000 c170 strb r1, [r0, 3]
| ========< 0x08090002 4ce0 b 0x809009e
| ||``----> 0x08090004 ac48 ldr r0, [0x080902b8] ; [0x80902b8:4]=0x2001e754 md380_blockadr
| || ||| 0x08090006 0068 ldr r0, [r0]
| || ||| 0x08090008 0028 cmp r0, 0
| || ,====< 0x0809000a 0dd1 bne 0x8090028
| || |||| 0x0809000c 5848 ldr r0, [0x08090170] ; [0x8090170:4]=0x2001ae74 md380_packet
| || |||| 0x0809000e 0078 ldrb r0, [r0]
| || |||| 0x08090010 b228 cmp r0, 0xb2 ; 178
| ||,=====< 0x08090012 09d1 bne 0x8090028
| ||||||| 0x08090014 3c48 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x08090016 f421 movs r1, 0xf4 ; 244
| ||||||| 0x08090018 4170 strb r1, [r0, 1]
| ||||||| 0x0809001a 3b48 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0809001c 0121 movs r1, 1 ; 1
| ||||||| 0x0809001e 8170 strb r1, [r0, 2]
| ||||||| 0x08090020 3948 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x08090022 0021 movs r1, 0
| ||||||| 0x08090024 c170 strb r1, [r0, 3]
| ========< 0x08090026 3ae0 b 0x809009e
| ||``----> 0x08090028 a348 ldr r0, [0x080902b8] ; [0x80902b8:4]=0x2001e754 md380_blockadr
| || ||| 0x0809002a 0068 ldr r0, [r0]
| || ||| 0x0809002c 0028 cmp r0, 0
| || ,====< 0x0809002e 0dd1 bne 0x809004c
| || |||| 0x08090030 4f48 ldr r0, [0x08090170] ; [0x8090170:4]=0x2001ae74 md380_packet
| || |||| 0x08090032 0078 ldrb r0, [r0]
| || |||| 0x08090034 b428 cmp r0, 0xb4 ; 180
| ||,=====< 0x08090036 09d1 bne 0x809004c
| ||||||| 0x08090038 3348 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0809003a e821 movs r1, 0xe8 ; 232
| ||||||| 0x0809003c 4170 strb r1, [r0, 1]
| ||||||| 0x0809003e 3248 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||||||| 0x08090040 0321 movs r1, 3 ; 3
| ||||||| 0x08090042 8170 strb r1, [r0, 2]
| ||||||| 0x08090044 3048 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x08090046 0021 movs r1, 0
| ||||||| 0x08090048 c170 strb r1, [r0, 3]
| ========< 0x0809004a 28e0 b 0x809009e
| ||``----> 0x0809004c 9a48 ldr r0, [0x080902b8] ; [0x80902b8:4]=0x2001e754 md380_blockadr
| || ||| 0x0809004e 0068 ldr r0, [r0]
| || ||| 0x08090050 0028 cmp r0, 0
| || ,====< 0x08090052 0dd1 bne 0x8090070
| || |||| 0x08090054 4648 ldr r0, [0x08090170] ; [0x8090170:4]=0x2001ae74 md380_packet
| || |||| 0x08090056 0078 ldrb r0, [r0]
| || |||| 0x08090058 b528 cmp r0, 0xb5 ; 181
| ||,=====< 0x0809005a 09d1 bne 0x8090070
| ||||||| 0x0809005c 2a48 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0809005e f421 movs r1, 0xf4 ; 244
| ||||||| 0x08090060 4170 strb r1, [r0, 1]
| ||||||| 0x08090062 2948 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||||||| 0x08090064 0121 movs r1, 1 ; 1
| ||||||| 0x08090066 8170 strb r1, [r0, 2]
| ||||||| 0x08090068 2748 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||||| 0x0809006a 0021 movs r1, 0
| ||||||| 0x0809006c c170 strb r1, [r0, 3]
| ========< 0x0809006e 16e0 b 0x809009e
| ||``----> 0x08090070 254a ldr r2, [0x08090108] ; [0x8090108:4]=0x2001e584
| || ||| 0x08090072 0021 movs r1, 0
| || ||| 0x08090074 8d48 ldr r0, [0x080902ac] ; [0x80902ac:4]=0x20004a14 md380_dfu_target_adr
| || ||| 0x08090076 0068 ldr r0, [r0]
| || ||| 0x08090078 00f0bdf9 bl func_903f6
| || ,====< 0x0809007c 0fe0 b 0x809009e
| || |||`-> 0x0809007e 8c48 ldr r0, [0x080902b2] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| || ||| 0x08090080 0521 movs r1, 5 ; 5
| || ||| 0x08090082 0170 strb r1, [r0]
| || ||| 0x08090084 2048 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| || ||| 0x08090086 8a49 ldr r1, [0x080902b2] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| || ||| 0x08090088 0978 ldrb r1, [r1]
| || ||| 0x0809008a 0171 strb r1, [r0, 4]
| || ||| 0x0809008c 1e48 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| || ||| 0x0809008e 0021 movs r1, 0
| || ||| 0x08090090 4170 strb r1, [r0, 1]
| || ||| 0x08090092 1d48 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| || ||| 0x08090094 0021 movs r1, 0
| || ||| 0x08090096 8170 strb r1, [r0, 2]
| || ||| 0x08090098 1b48 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| || ||| 0x0809009a 0021 movs r1, 0
| || ||| 0x0809009c c170 strb r1, [r0, 3]
| ``-`--,=< 0x0809009e 2de0 b 0x80900fc
| |`--> 0x080900a0 8648 ldr r0, [0x080902bc] ; [0x80902bc:4]=0x2001e750
| | | 0x080900a2 0068 ldr r0, [r0]
| | | 0x080900a4 0128 cmp r0, 1 ; 1
| |,==< 0x080900a6 10d1 bne 0x80900ca
| ||| 0x080900a8 8148 ldr r0, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| ||| 0x080900aa 0721 movs r1, 7 ; 7
| ||| 0x080900ac 0170 strb r1, [r0]
| ||| 0x080900ae 1648 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||| 0x080900b0 7f49 ldr r1, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| ||| 0x080900b2 0978 ldrb r1, [r1]
| ||| 0x080900b4 0171 strb r1, [r0, 4]
| ||| 0x080900b6 1448 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||| 0x080900b8 0121 movs r1, 1 ; 1
| ||| 0x080900ba 4170 strb r1, [r0, 1]
| ||| 0x080900bc 1248 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||| 0x080900be 0021 movs r1, 0
| ||| 0x080900c0 8170 strb r1, [r0, 2]
| ||| 0x080900c2 1148 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||| 0x080900c4 0021 movs r1, 0
| ||| 0x080900c6 c170 strb r1, [r0, 3]
| ,====< 0x080900c8 17e0 b 0x80900fa
| ||`--> 0x080900ca 7c48 ldr r0, [0x080902be] ; [0x80902bc:4]=0x2001e750
| || | 0x080900cc 0068 ldr r0, [r0]
| || | 0x080900ce 0028 cmp r0, 0
| ||,==< 0x080900d0 13d1 bne 0x80900fa
| |||| 0x080900d2 7b48 ldr r0, [0x080902c2] ; [0x80902c0:4]=0x2000485c
| |||| 0x080900d4 407f ldrb r0, [r0, 0x1d]
| |||| 0x080900d6 4007 lsls r0, r0, 0x1d
| ,=====< 0x080900d8 0fd5 bpl 0x80900fa
| ||||| 0x080900da 7548 ldr r0, [0x080902b2] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| ||||| 0x080900dc 0221 movs r1, 2 ; 2
| ||||| 0x080900de 0170 strb r1, [r0]
| ||||| 0x080900e0 0948 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||| 0x080900e2 7349 ldr r1, [0x080902b2] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| ||||| 0x080900e4 0978 ldrb r1, [r1]
| ||||| 0x080900e6 0171 strb r1, [r0, 4]
| ||||| 0x080900e8 0748 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||| 0x080900ea 0021 movs r1, 0
| ||||| 0x080900ec 4170 strb r1, [r0, 1]
| ||||| 0x080900ee 0648 ldr r0, [0x0809010a] ; [0x8090108:4]=0x2001e584
| ||||| 0x080900f0 0021 movs r1, 0
| ||||| 0x080900f2 8170 strb r1, [r0, 2]
| ||||| 0x080900f4 0448 ldr r0, [0x08090108] ; [0x8090108:4]=0x2001e584
| ||||| 0x080900f6 0021 movs r1, 0
| ||||| 0x080900f8 c170 strb r1, [r0, 3]
| ,``-`--> 0x080900fa ffe7 b 0x80900fc
| `--`-`-> 0x080900fc 0622 movs r2, 6 ; 6
| 0x080900fe 0249 ldr r1, [0x0809010a] ; [0x8090108:4]=0x2001e584
| 0x08090100 2000 movs r0, r4
| 0x08090102 c9f7fefc bl usb_send_packet
\ 0x08090106 10bd pop {r4, pc}
/ (fcn) func_9010c 100
| Caller: usb_do_setup
| func_9010c ();
| 0x0809010c 6848 ldr r0, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| 0x0809010e 0078 ldrb r0, [r0]
| 0x08090110 0a28 cmp r0, 0xa ; 10
| ,=< 0x08090112 16d1 bne 0x8090142
| | 0x08090114 6648 ldr r0, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| | 0x08090116 0221 movs r1, 2 ; 2
| | 0x08090118 0170 strb r1, [r0]
| | 0x0809011a 6a48 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x0809011c 0021 movs r1, 0
| | 0x0809011e 0170 strb r1, [r0]
| | 0x08090120 6848 ldr r0, [0x080902c4] ; [0x80902c4:4]=0x2001e584
| | 0x08090122 0021 movs r1, 0
| | 0x08090124 4170 strb r1, [r0, 1]
| | 0x08090126 6748 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x08090128 0021 movs r1, 0
| | 0x0809012a 8170 strb r1, [r0, 2]
| | 0x0809012c 6548 ldr r0, [0x080902c4] ; [0x80902c4:4]=0x2001e584
| | 0x0809012e 0021 movs r1, 0
| | 0x08090130 c170 strb r1, [r0, 3]
| | 0x08090132 6448 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x08090134 5e49 ldr r1, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| | 0x08090136 0978 ldrb r1, [r1]
| | 0x08090138 0171 strb r1, [r0, 4]
| | 0x0809013a 6248 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x0809013c 0021 movs r1, 0
| | 0x0809013e 4171 strb r1, [r0, 5]
| ,==< 0x08090140 15e0 b 0x809016e
| |`-> 0x08090142 5b48 ldr r0, [0x080902b2] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| | 0x08090144 0a21 movs r1, 0xa ; 10
| | 0x08090146 0170 strb r1, [r0]
| | 0x08090148 5e48 ldr r0, [0x080902c4] ; [0x80902c4:4]=0x2001e584
| | 0x0809014a 0e21 movs r1, 0xe ; 14
| | 0x0809014c 0170 strb r1, [r0]
| | 0x0809014e 5d48 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x08090150 0021 movs r1, 0
| | 0x08090152 4170 strb r1, [r0, 1]
| | 0x08090154 5b48 ldr r0, [0x080902c4] ; [0x80902c4:4]=0x2001e584
| | 0x08090156 0021 movs r1, 0
| | 0x08090158 8170 strb r1, [r0, 2]
| | 0x0809015a 5a48 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x0809015c 0021 movs r1, 0
| | 0x0809015e c170 strb r1, [r0, 3]
| | 0x08090160 5848 ldr r0, [0x080902c4] ; [0x80902c4:4]=0x2001e584
| | 0x08090162 5349 ldr r1, [0x080902b2] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| | 0x08090164 0978 ldrb r1, [r1]
| | 0x08090166 0171 strb r1, [r0, 4]
| | 0x08090168 5648 ldr r0, [0x080902c4] ; [0x80902c4:4]=0x2001e584
| | 0x0809016a 0021 movs r1, 0
| | 0x0809016c 4171 strb r1, [r0, 5]
\ `--> 0x0809016e 7047 bx lr
/ (fcn) func_90174 12
| Caller: usb_do_setup
| func_90174 ();
| 0x08090174 80b5 push {r7, lr}
| 0x08090176 0122 movs r2, 1 ; 1
| 0x08090178 4d49 ldr r1, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| 0x0809017a c9f7c2fc bl usb_send_packet
\ 0x0809017e 01bd pop {r0, pc}
/ (fcn) func_90184 98
| Caller: usb_do_setup
| func_90184 ();
| 0x08090184 4a48 ldr r0, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| 0x08090186 0078 ldrb r0, [r0]
| 0x08090188 0228 cmp r0, 2 ; 2
| ,=< 0x0809018a 0fd0 beq 0x80901ac
| | 0x0809018c 4848 ldr r0, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| | 0x0809018e 0078 ldrb r0, [r0]
| | 0x08090190 0328 cmp r0, 3 ; 3
| ,==< 0x08090192 0bd0 beq 0x80901ac
| || 0x08090194 4648 ldr r0, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| || 0x08090196 0078 ldrb r0, [r0]
| || 0x08090198 0528 cmp r0, 5 ; 5
| ,===< 0x0809019a 07d0 beq 0x80901ac
| ||| 0x0809019c 4448 ldr r0, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| ||| 0x0809019e 0078 ldrb r0, [r0]
| ||| 0x080901a0 0628 cmp r0, 6 ; 6
| ,====< 0x080901a2 03d0 beq 0x80901ac
| |||| 0x080901a4 4248 ldr r0, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| |||| 0x080901a6 0078 ldrb r0, [r0]
| |||| 0x080901a8 0928 cmp r0, 9 ; 9
| ,=====< 0x080901aa 1bd1 bne 0x80901e4
| |````-> 0x080901ac 4048 ldr r0, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| | 0x080901ae 0221 movs r1, 2 ; 2
| | 0x080901b0 0170 strb r1, [r0]
| | 0x080901b2 4448 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x080901b4 0021 movs r1, 0
| | 0x080901b6 0170 strb r1, [r0]
| | 0x080901b8 4248 ldr r0, [0x080902c4] ; [0x80902c4:4]=0x2001e584
| | 0x080901ba 0021 movs r1, 0
| | 0x080901bc 4170 strb r1, [r0, 1]
| | 0x080901be 4148 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x080901c0 0021 movs r1, 0
| | 0x080901c2 8170 strb r1, [r0, 2]
| | 0x080901c4 3f48 ldr r0, [0x080902c4] ; [0x80902c4:4]=0x2001e584
| | 0x080901c6 0021 movs r1, 0
| | 0x080901c8 c170 strb r1, [r0, 3]
| | 0x080901ca 3e48 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x080901cc 3849 ldr r1, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| | 0x080901ce 0978 ldrb r1, [r1]
| | 0x080901d0 0171 strb r1, [r0, 4]
| | 0x080901d2 3c48 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x080901d4 0021 movs r1, 0
| | 0x080901d6 4171 strb r1, [r0, 5]
| | 0x080901d8 3748 ldr r0, [0x080902b8] ; [0x80902b8:4]=0x2001e754 md380_blockadr
| | 0x080901da 0021 movs r1, 0
| | 0x080901dc 0160 str r1, [r0]
| | 0x080901de 3548 ldr r0, [0x080902b6] ; [0x80902b4:4]=0x2001e758 md380_packetlen
| | 0x080901e0 0021 movs r1, 0
| | 0x080901e2 0160 str r1, [r0]
\ `-----> 0x080901e4 7047 bx lr
/ (fcn) func_901ec 96
| Caller: usb_dnld_handle
| func_901ec ();
| 0x080901ec 80b5 push {r7, lr}
| 0x080901ee 3349 ldr r1, [0x080902be] ; [0x80902bc:4]=0x2001e750
| 0x080901f0 0022 movs r2, 0
| 0x080901f2 0a60 str r2, [r1]
| 0x080901f4 3249 ldr r1, [0x080902c0] ; [0x80902c0:4]=0x2000485c
| 0x080901f6 497f ldrb r1, [r1, 0x1d]
| 0x080901f8 4907 lsls r1, r1, 0x1d
| ,=< 0x080901fa 10d5 bpl 0x809021e
| | 0x080901fc 2c48 ldr r0, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| | 0x080901fe 0621 movs r1, 6 ; 6
| | 0x08090200 0170 strb r1, [r0]
| | 0x08090202 3048 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x08090204 2a49 ldr r1, [0x080902b0] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| | 0x08090206 0978 ldrb r1, [r1]
| | 0x08090208 0171 strb r1, [r0, 4]
| | 0x0809020a 2e48 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x0809020c 0021 movs r1, 0
| | 0x0809020e 4170 strb r1, [r0, 1]
| | 0x08090210 2c48 ldr r0, [0x080902c4] ; [0x80902c4:4]=0x2001e584
| | 0x08090212 0021 movs r1, 0
| | 0x08090214 8170 strb r1, [r0, 2]
| | 0x08090216 2b48 ldr r0, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x08090218 0021 movs r1, 0
| | 0x0809021a c170 strb r1, [r0, 3]
| ,==< 0x0809021c 15e0 b 0x809024a
| |`-> 0x0809021e 2449 ldr r1, [0x080902b2] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| | 0x08090220 0822 movs r2, 8 ; 8
| | 0x08090222 0a70 strb r2, [r1]
| | 0x08090224 2749 ldr r1, [0x080902c4] ; [0x80902c4:4]=0x2001e584
| | 0x08090226 224a ldr r2, [0x080902b2] ; [0x80902b0:4]=0x2001e962 md380_dfu_state
| | 0x08090228 1278 ldrb r2, [r2]
| | 0x0809022a 0a71 strb r2, [r1, 4]
| | 0x0809022c 2549 ldr r1, [0x080902c4] ; [0x80902c4:4]=0x2001e584
| | 0x0809022e 0022 movs r2, 0
| | 0x08090230 4a70 strb r2, [r1, 1]
| | 0x08090232 2449 ldr r1, [0x080902c6] ; [0x80902c4:4]=0x2001e584
| | 0x08090234 0022 movs r2, 0
| | 0x08090236 8a70 strb r2, [r1, 2]
| | 0x08090238 2249 ldr r1, [0x080902c4] ; [0x80902c4:4]=0x2001e584
| | 0x0809023a 0022 movs r2, 0
| | 0x0809023c ca70 strb r2, [r1, 3]
| | 0x0809023e c9f72ff9 bl func_594a0
| | 0x08090242 00f05af8 bl func_902fa
| | 0x08090246 fef735fc bl func_8eab4
\ `--> 0x0809024a 01bd pop {r0, pc}
/ (fcn) func_90258 36
| func_90258 ();
| 0x08090258 80b5 push {r7, lr}
| 0x0809025a 0800 movs r0, r1
| 0x0809025c c0b2 uxtb r0, r0
| 0x0809025e 0828 cmp r0, 8 ; 8
| ,=< 0x08090260 0ad2 bhs 0x8090278
| | 0x08090262 1949 ldr r1, [0x080902ca] ; [0x80902c8:4]=0x2001d504 md380_usbstring
| | 0x08090264 c0b2 uxtb r0, r0
| | 0x08090266 194b ldr r3, [0x080902ce] ; [0x80902cc:4]=0x200049cc
| | 0x08090268 13eb8000 adds.w r0, r3, r0, lsl 2
| | 0x0809026c 50f8180c ldr r0, [r0, -0x18]
| | 0x08090270 c9f71afc bl func_59aa8
| | 0x08090274 1448 ldr r0, [0x080902c8] ; [0x80902c8:4]=0x2001d504 md380_usbstring
| ,==< 0x08090276 00e0 b 0x809027a
| |`-> 0x08090278 0020 movs r0, 0
\ `--> 0x0809027a 02bd pop {r1, pc}
/ (fcn) func_902d0 42
| func_902d0 ();
| 0x080902d0 10b5 push {r4, lr}
| 0x080902d2 0024 movs r4, 0
| 0x080902d4 0020 movs r0, 0
| 0x080902d6 0400 movs r4, r0
| ,=< 0x080902d8 0be0 b 0x80902f2
| .--> 0x080902da 6a48 ldr r0, [0x08090486] ; [0x8090484:4]=0x200049c4
| || 0x080902dc 50f82400 ldr.w r0, [r0, r4, lsl 2]
| || 0x080902e0 4068 ldr r0, [r0, 4]
| || 0x080902e2 0028 cmp r0, 0
| ,===< 0x080902e4 04d0 beq 0x80902f0
| ||| 0x080902e6 6748 ldr r0, [0x08090486] ; [0x8090484:4]=0x200049c4
| ||| 0x080902e8 50f82400 ldr.w r0, [r0, r4, lsl 2]
| ||| 0x080902ec 4068 ldr r0, [r0, 4]
| ||| 0x080902ee 8047 blx r0
| `---> 0x080902f0 641c adds r4, r4, 1
| |`-> 0x080902f2 022c cmp r4, 2 ; 2
| `==< 0x080902f4 f1d3 blo 0x80902da
| 0x080902f6 0020 movs r0, 0
\ 0x080902f8 10bd pop {r4, pc}
/ (fcn) func_902fa 42
| Caller: func_901ec
| func_902fa ();
| 0x080902fa 10b5 push {r4, lr}
| 0x080902fc 0024 movs r4, 0
| 0x080902fe 0020 movs r0, 0
| 0x08090300 0400 movs r4, r0
| ,=< 0x08090302 0be0 b 0x809031c
| .--> 0x08090304 5f48 ldr r0, [0x08090484] ; [0x8090484:4]=0x200049c4
| || 0x08090306 50f82400 ldr.w r0, [r0, r4, lsl 2]
| || 0x0809030a 8068 ldr r0, [r0, 8]
| || 0x0809030c 0028 cmp r0, 0
| ,===< 0x0809030e 04d0 beq 0x809031a
| ||| 0x08090310 5c48 ldr r0, [0x08090484] ; [0x8090484:4]=0x200049c4
| ||| 0x08090312 50f82400 ldr.w r0, [r0, r4, lsl 2]
| ||| 0x08090316 8068 ldr r0, [r0, 8]
| ||| 0x08090318 8047 blx r0
| `---> 0x0809031a 641c adds r4, r4, 1
| |`-> 0x0809031c 022c cmp r4, 2 ; 2
| `==< 0x0809031e f1d3 blo 0x8090304
| 0x08090320 0020 movs r0, 0
\ 0x08090322 10bd pop {r4, pc}
/ (fcn) func_90324 76
| Caller: usb_dnld_handle
| func_90324 ();
| 0x08090324 10b5 push {r4, lr}
| 0x08090326 0400 movs r4, r0
| 0x08090328 2000 movs r0, r4
| 0x0809032a 00f094f8 bl func_90456
| 0x0809032e 0100 movs r1, r0
| 0x08090330 5548 ldr r0, [0x08090488] ; [0x8090488:4]=0x800c000 VectorTable
| 0x08090332 201a subs r0, r4, r0
| 0x08090334 b0f5742f cmp.w r0, 0xf4000
| ,=< 0x08090338 01d2 bhs 0x809033e
| | 0x0809033a 0120 movs r0, 1 ; 1
| ,==< 0x0809033c 00e0 b 0x8090340
| |`-> 0x0809033e 0020 movs r0, 0
| `--> 0x08090340 c0b2 uxtb r0, r0
| 0x08090342 0028 cmp r0, 0
| ,=< 0x08090344 01d0 beq 0x809034a
| | 0x08090346 0120 movs r0, 1 ; 1
| ,==< 0x08090348 11e0 b 0x809036e
| |`-> 0x0809034a 0229 cmp r1, 2 ; 2
| |,=< 0x0809034c 0ed2 bhs 0x809036c
| || 0x0809034e 4d48 ldr r0, [0x08090486] ; [0x8090484:4]=0x200049c4
| || 0x08090350 50f82100 ldr.w r0, [r0, r1, lsl 2]
| || 0x08090354 c068 ldr r0, [r0, 0xc]
| || 0x08090356 0028 cmp r0, 0
| ,===< 0x08090358 06d0 beq 0x8090368
| ||| 0x0809035a 2000 movs r0, r4
| ||| 0x0809035c 494a ldr r2, [0x08090484] ; [0x8090484:4]=0x200049c4
| ||| 0x0809035e 52f82110 ldr.w r1, [r2, r1, lsl 2]
| ||| 0x08090362 c968 ldr r1, [r1, 0xc]
| ||| 0x08090364 8847 blx r1
| ,====< 0x08090366 02e0 b 0x809036e
| |`---> 0x08090368 0120 movs r0, 1 ; 1
| |,===< 0x0809036a 00e0 b 0x809036e
| |||`-> 0x0809036c 0120 movs r0, 1 ; 1
\ ```--> 0x0809036e 10bd pop {r4, pc}
/ (fcn) func_903f6 96
| Caller: func_8ff00
| func_903f6 ();
| 0x080903f6 38b5 push {r3, r4, r5, lr}
| 0x080903f8 0d00 movs r5, r1
| 0x080903fa 1400 movs r4, r2
| 0x080903fc 00f02bf8 bl func_90456
| 0x08090400 0228 cmp r0, 2 ; 2
| ,=< 0x08090402 26d2 bhs 0x8090452
| | 0x08090404 e907 lsls r1, r5, 0x1f
| ,==< 0x08090406 11d5 bpl 0x809042c
| || 0x08090408 1e49 ldr r1, [0x08090484] ; [0x8090484:4]=0x200049c4
| || 0x0809040a 51f82010 ldr.w r1, [r1, r0, lsl 2]
| || 0x0809040e c969 ldr r1, [r1, 0x1c]
| || 0x08090410 6170 strb r1, [r4, 1]
| || 0x08090412 1c49 ldr r1, [0x08090486] ; [0x8090484:4]=0x200049c4
| || 0x08090414 51f82010 ldr.w r1, [r1, r0, lsl 2]
| || 0x08090418 c969 ldr r1, [r1, 0x1c]
| || 0x0809041a 090a lsrs r1, r1, 8
| || 0x0809041c a170 strb r1, [r4, 2]
| || 0x0809041e 1949 ldr r1, [0x08090486] ; [0x8090484:4]=0x200049c4
| || 0x08090420 51f82000 ldr.w r0, [r1, r0, lsl 2]
| || 0x08090424 c069 ldr r0, [r0, 0x1c]
| || 0x08090426 000c lsrs r0, r0, 0x10
| || 0x08090428 e070 strb r0, [r4, 3]
| ,===< 0x0809042a 10e0 b 0x809044e
| |`--> 0x0809042c 1549 ldr r1, [0x08090484] ; [0x8090484:4]=0x200049c4
| | | 0x0809042e 51f82010 ldr.w r1, [r1, r0, lsl 2]
| | | 0x08090432 096a ldr r1, [r1, 0x20]
| | | 0x08090434 6170 strb r1, [r4, 1]
| | | 0x08090436 1349 ldr r1, [0x08090486] ; [0x8090484:4]=0x200049c4
| | | 0x08090438 51f82010 ldr.w r1, [r1, r0, lsl 2]
| | | 0x0809043c 096a ldr r1, [r1, 0x20]
| | | 0x0809043e 090a lsrs r1, r1, 8
| | | 0x08090440 a170 strb r1, [r4, 2]
| | | 0x08090442 1049 ldr r1, [0x08090486] ; [0x8090484:4]=0x200049c4
| | | 0x08090444 51f82000 ldr.w r0, [r1, r0, lsl 2]
| | | 0x08090448 006a ldr r0, [r0, 0x20]
| | | 0x0809044a 000c lsrs r0, r0, 0x10
| | | 0x0809044c e070 strb r0, [r4, 3]
| `---> 0x0809044e 0020 movs r0, 0
| ,==< 0x08090450 00e0 b 0x8090454
| |`-> 0x08090452 0120 movs r0, 1 ; 1
\ `--> 0x08090454 32bd pop {r1, r4, r5, pc}
/ (fcn) func_90456 44
| Caller: usb_dfu_write func_903f6 usb_dfu_read func_90324
| func_90456 ();
| 0x08090456 38b5 push {r3, r4, r5, lr}
| 0x08090458 0400 movs r4, r0
| 0x0809045a 0025 movs r5, 0
| 0x0809045c 0020 movs r0, 0
| 0x0809045e 0500 movs r5, r0
| ,=< 0x08090460 00e0 b 0x8090464
| .--> 0x08090462 6d1c adds r5, r5, 1
| |`-> 0x08090464 022d cmp r5, 2 ; 2
| |,=< 0x08090466 0ad2 bhs 0x809047e
| || 0x08090468 2000 movs r0, r4
| || 0x0809046a 0649 ldr r1, [0x08090486] ; [0x8090484:4]=0x200049c4
| || 0x0809046c 51f82510 ldr.w r1, [r1, r5, lsl 2]
| || 0x08090470 8969 ldr r1, [r1, 0x18]
| || 0x08090472 8847 blx r1
| || 0x08090474 0028 cmp r0, 0
| `==< 0x08090476 f4d1 bne 0x8090462
| | 0x08090478 2800 movs r0, r5
| | 0x0809047a c0b2 uxtb r0, r0
| ,==< 0x0809047c 00e0 b 0x8090480
| |`-> 0x0809047e 0220 movs r0, 2 ; 2
\ `--> 0x08090480 32bd pop {r1, r4, r5, pc}
/ (fcn) func_9399a 72
| Caller: CalledFromUSB_IRQ
| func_9399a ();
| 0x0809399a 10b5 push {r4, lr}
| 0x0809399c 0400 movs r4, r0
| 0x0809399e a07a ldrb r0, [r4, 0xa]
| 0x080939a0 0028 cmp r0, 0
| ,=< 0x080939a2 08d0 beq 0x80939b6
| | 0x080939a4 d4f80c01 ldr.w r0, [r4, 0x10c]
| | 0x080939a8 30f00200 bics r0, r0, 2
| | 0x080939ac 4008 lsrs r0, r0, 1
| | 0x080939ae 4000 lsls r0, r0, 1
| | 0x080939b0 d4f80c11 ldr.w r1, [r4, 0x10c]
| | 0x080939b4 0860 str r0, [r1]
| `-> 0x080939b6 0020 movs r0, 0
| 0x080939b8 50f00100 orrs r0, r0, 1
| 0x080939bc 2169 ldr r1, [r4, 0x10]
| 0x080939be 4968 ldr r1, [r1, 4]
| 0x080939c0 31ea0000 bics.w r0, r1, r0
| 0x080939c4 2169 ldr r1, [r4, 0x10]
| 0x080939c6 4860 str r0, [r1, 4]
| 0x080939c8 2000 movs r0, r4
| 0x080939ca dff8dc14 ldr.w r1, [0x08093eae] ; [0x8093eac:4]=0xe000ed10
| 0x080939ce 0968 ldr r1, [r1]
| 0x080939d0 8969 ldr r1, [r1, 0x18]
| 0x080939d2 8847 blx r1
| 0x080939d4 0020 movs r0, 0
| 0x080939d6 50f00040 orrs r0, r0, 0x80000000
| 0x080939da e168 ldr r1, [r4, 0xc]
| 0x080939dc 4861 str r0, [r1, 0x14]
| 0x080939de 0120 movs r0, 1 ; 1
\ 0x080939e0 10bd pop {r4, pc}
/ (fcn) func_939e2 136
| Caller: CalledFromUSB_IRQ
| func_939e2 ();
| 0x080939e2 10b5 push {r4, lr}
| 0x080939e4 82b0 sub sp, 8
| 0x080939e6 0400 movs r4, r0
| 0x080939e8 0020 movs r0, 0
| 0x080939ea 8df80000 strb.w r0, [sp]
| 0x080939ee 94f81201 ldrb.w r0, [r4, 0x112]
| 0x080939f2 8df80000 strb.w r0, [sp]
| 0x080939f6 2000 movs r0, r4
| 0x080939f8 dff8ac14 ldr.w r1, [0x08093eac] ; [0x8093eac:4]=0xe000ed10
| 0x080939fc 0968 ldr r1, [r1]
| 0x080939fe 4969 ldr r1, [r1, 0x14]
| 0x08093a00 8847 blx r1
| 0x08093a02 2069 ldr r0, [r4, 0x10]
| 0x08093a04 8168 ldr r1, [r0, 8]
| 0x08093a06 0020 movs r0, 0
| 0x08093a08 50f40060 orrs r0, r0, 0x800
| 0x08093a0c e268 ldr r2, [r4, 0xc]
| 0x08093a0e 5061 str r0, [r2, 0x14]
| 0x08093a10 a07a ldrb r0, [r4, 0xa]
| 0x08093a12 0028 cmp r0, 0
| ,=< 0x08093a14 27d0 beq 0x8093a66
| | 0x08093a16 11f00100 ands r0, r1, 1
| | 0x08093a1a c0b2 uxtb r0, r0
| | 0x08093a1c 0028 cmp r0, 0
| ,==< 0x08093a1e 22d0 beq 0x8093a66
| || 0x08093a20 94f81501 ldrb.w r0, [r4, 0x115]
| || 0x08093a24 0128 cmp r0, 1 ; 1
| ,===< 0x08093a26 1ed1 bne 0x8093a66
| ||| 0x08093a28 9df80000 ldrb.w r0, [sp]
| ||| 0x08093a2c 0328 cmp r0, 3 ; 3
| ,====< 0x08093a2e 1ad1 bne 0x8093a66
| |||| 0x08093a30 0020 movs r0, 0
| |||| 0x08093a32 50f00100 orrs r0, r0, 1
| |||| 0x08093a36 d4f80c11 ldr.w r1, [r4, 0x10c]
| |||| 0x08093a3a 0968 ldr r1, [r1]
| |||| 0x08093a3c 0143 orrs r1, r0
| |||| 0x08093a3e d4f80c21 ldr.w r2, [r4, 0x10c]
| |||| 0x08093a42 1160 str r1, [r2]
| |||| 0x08093a44 50f00200 orrs r0, r0, 2
| |||| 0x08093a48 d4f80c11 ldr.w r1, [r4, 0x10c]
| |||| 0x08093a4c 0968 ldr r1, [r1]
| |||| 0x08093a4e 0843 orrs r0, r1
| |||| 0x08093a50 d4f80c11 ldr.w r1, [r4, 0x10c]
| |||| 0x08093a54 0860 str r0, [r1]
| |||| 0x08093a56 dff85404 ldr.w r0, [0x08093eb2] ; [0x8093eb0:4]=0x69126902
| |||| 0x08093a5a 0068 ldr r0, [r0]
| |||| 0x08093a5c 50f00600 orrs r0, r0, 6
| |||| 0x08093a60 dff84814 ldr.w r1, [0x08093eb0] ; [0x8093eb0:4]=0x69126902
| |||| 0x08093a64 0860 str r0, [r1]
| ````-> 0x08093a66 0120 movs r0, 1 ; 1
\ 0x08093a68 16bd pop {r1, r2, r4, pc}
/ (fcn) func_93a6a 244
| Caller: CalledFromUSB_IRQ
| func_93a6a ();
| 0x08093a6a f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x08093a6c 0400 movs r4, r0
| 0x08093a6e 0025 movs r5, 0
| 0x08093a70 0027 movs r7, 0
| 0x08093a72 2000 movs r0, r4
| 0x08093a74 cef70af8 bl func_61a8c
| 0x08093a78 0600 movs r6, r0
| ,=< 0x08093a7a 6ce0 b 0x8093b56
| .--> 0x08093a7c f007 lsls r0, r6, 0x1f
| ,===< 0x08093a7e 68d5 bpl 0x8093b52
| ||| 0x08093a80 2900 movs r1, r5
| ||| 0x08093a82 c9b2 uxtb r1, r1
| ||| 0x08093a84 2000 movs r0, r4
| ||| 0x08093a86 00f013fa bl 0x8093eb0
| ||| 0x08093a8a 0700 movs r7, r0
| ||| 0x08093a8c 17f00100 ands r0, r7, 1
| ||| 0x08093a90 c0b2 uxtb r0, r0
| ||| 0x08093a92 0028 cmp r0, 0
| ,====< 0x08093a94 22d0 beq 0x8093adc
| |||| 0x08093a96 0120 movs r0, 1 ; 1
| |||| 0x08093a98 a840 lsls r0, r5
| |||| 0x08093a9a 2169 ldr r1, [r4, 0x10]
| |||| 0x08093a9c 496b ldr r1, [r1, 0x34]
| |||| 0x08093a9e 31ea0000 bics.w r0, r1, r0
| |||| 0x08093aa2 2169 ldr r1, [r4, 0x10]
| |||| 0x08093aa4 4863 str r0, [r1, 0x34]
| |||| 0x08093aa6 0027 movs r7, 0
| |||| 0x08093aa8 57f00107 orrs r7, r7, 1
| |||| 0x08093aac 14eb8500 adds.w r0, r4, r5, lsl 2
| |||| 0x08093ab0 8069 ldr r0, [r0, 0x18]
| |||| 0x08093ab2 8760 str r7, [r0, 8]
| |||| 0x08093ab4 2900 movs r1, r5
| |||| 0x08093ab6 c9b2 uxtb r1, r1
| |||| 0x08093ab8 2000 movs r0, r4
| |||| 0x08093aba dff8ec23 ldr.w r2, [0x08093eae] ; [0x8093eac:4]=0xe000ed10
| |||| 0x08093abe 1268 ldr r2, [r2]
| |||| 0x08093ac0 5268 ldr r2, [r2, 4]
| |||| 0x08093ac2 9047 blx r2
| |||| 0x08093ac4 e078 ldrb r0, [r4, 3]
| |||| 0x08093ac6 0128 cmp r0, 1 ; 1
| ,=====< 0x08093ac8 08d1 bne 0x8093adc
| ||||| 0x08093aca 002d cmp r5, 0
| ,======< 0x08093acc 06d1 bne 0x8093adc
| |||||| 0x08093ace 94f81101 ldrb.w r0, [r4, 0x111]
| |||||| 0x08093ad2 0428 cmp r0, 4 ; 4
| ,=======< 0x08093ad4 02d1 bne 0x8093adc
| ||||||| 0x08093ad6 2000 movs r0, r4
| ||||||| 0x08093ad8 cdf7dfff bl func_61a9a
| ````----> 0x08093adc c7f3c000 ubfx r0, r7, 3, 1
| ||| 0x08093ae0 c007 lsls r0, r0, 0x1f
| ,====< 0x08093ae2 06d5 bpl 0x8093af2
| |||| 0x08093ae4 0027 movs r7, 0
| |||| 0x08093ae6 57f00807 orrs r7, r7, 8
| |||| 0x08093aea 14eb8500 adds.w r0, r4, r5, lsl 2
| |||| 0x08093aee 8069 ldr r0, [r0, 0x18]
| |||| 0x08093af0 8760 str r7, [r0, 8]
| `----> 0x08093af2 c7f30010 ubfx r0, r7, 4, 1
| ||| 0x08093af6 c007 lsls r0, r0, 0x1f
| ,====< 0x08093af8 06d5 bpl 0x8093b08
| |||| 0x08093afa 0027 movs r7, 0
| |||| 0x08093afc 57f01007 orrs r7, r7, 0x10
| |||| 0x08093b00 14eb8500 adds.w r0, r4, r5, lsl 2
| |||| 0x08093b04 8069 ldr r0, [r0, 0x18]
| |||| 0x08093b06 8760 str r7, [r0, 8]
| `----> 0x08093b08 c7f38010 ubfx r0, r7, 6, 1
| ||| 0x08093b0c c007 lsls r0, r0, 0x1f
| ,====< 0x08093b0e 06d5 bpl 0x8093b1e
| |||| 0x08093b10 0027 movs r7, 0
| |||| 0x08093b12 57f04007 orrs r7, r7, 0x40
| |||| 0x08093b16 14eb8500 adds.w r0, r4, r5, lsl 2
| |||| 0x08093b1a 8069 ldr r0, [r0, 0x18]
| |||| 0x08093b1c 8760 str r7, [r0, 8]
| `----> 0x08093b1e c7f34000 ubfx r0, r7, 1, 1
| ||| 0x08093b22 c007 lsls r0, r0, 0x1f
| ,====< 0x08093b24 06d5 bpl 0x8093b34
| |||| 0x08093b26 0027 movs r7, 0
| |||| 0x08093b28 57f00207 orrs r7, r7, 2
| |||| 0x08093b2c 14eb8500 adds.w r0, r4, r5, lsl 2
| |||| 0x08093b30 8069 ldr r0, [r0, 0x18]
| |||| 0x08093b32 8760 str r7, [r0, 8]
| `----> 0x08093b34 c7f3c010 ubfx r0, r7, 7, 1
| ||| 0x08093b38 c007 lsls r0, r0, 0x1f
| ,====< 0x08093b3a 0ad5 bpl 0x8093b52
| |||| 0x08093b3c 2900 movs r1, r5
| |||| 0x08093b3e 2000 movs r0, r4
| |||| 0x08093b40 00f0cff8 bl func_93ce2
| |||| 0x08093b44 0027 movs r7, 0
| |||| 0x08093b46 57f08007 orrs r7, r7, 0x80
| |||| 0x08093b4a 14eb8500 adds.w r0, r4, r5, lsl 2
| |||| 0x08093b4e 8069 ldr r0, [r0, 0x18]
| |||| 0x08093b50 8760 str r7, [r0, 8]
| ``---> 0x08093b52 6d1c adds r5, r5, 1
| || 0x08093b54 7608 lsrs r6, r6, 1
| |`-> 0x08093b56 002e cmp r6, 0
| `==< 0x08093b58 90d1 bne 0x8093a7c
| 0x08093b5a 0120 movs r0, 1 ; 1
\ 0x08093b5c f2bd pop {r1, r4, r5, r6, r7, pc}
/ (fcn) func_93b5e 202
| Caller: CalledFromUSB_IRQ
| func_93b5e ();
| 0x08093b5e f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x08093b60 0400 movs r4, r0
| 0x08093b62 0025 movs r5, 0
| 0x08093b64 0027 movs r7, 0
| 0x08093b66 2000 movs r0, r4
| 0x08093b68 cdf77fff bl func_61a6a
| 0x08093b6c 0600 movs r6, r0
| ,=< 0x08093b6e 57e0 b 0x8093c20
| .--> 0x08093b70 f007 lsls r0, r6, 0x1f
| ,===< 0x08093b72 53d5 bpl 0x8093c1c
| ||| 0x08093b74 2900 movs r1, r5
| ||| 0x08093b76 c9b2 uxtb r1, r1
| ||| 0x08093b78 2000 movs r0, r4
| ||| 0x08093b7a cdf77dff bl func_61a78
| ||| 0x08093b7e 0700 movs r7, r0
| ||| 0x08093b80 17f00100 ands r0, r7, 1
| ||| 0x08093b84 c0b2 uxtb r0, r0
| ||| 0x08093b86 0028 cmp r0, 0
| ,====< 0x08093b88 2dd0 beq 0x8093be6
| |||| 0x08093b8a 0027 movs r7, 0
| |||| 0x08093b8c 57f00107 orrs r7, r7, 1
| |||| 0x08093b90 14eb8500 adds.w r0, r4, r5, lsl 2
| |||| 0x08093b94 406d ldr r0, [r0, 0x54]
| |||| 0x08093b96 8760 str r7, [r0, 8]
| |||| 0x08093b98 e078 ldrb r0, [r4, 3]
| |||| 0x08093b9a 0128 cmp r0, 1 ; 1
| ,=====< 0x08093b9c 10d1 bne 0x8093bc0
| ||||| 0x08093b9e 14eb8500 adds.w r0, r4, r5, lsl 2
| ||||| 0x08093ba2 406d ldr r0, [r0, 0x54]
| ||||| 0x08093ba4 0069 ldr r0, [r0, 0x10]
| ||||| 0x08093ba6 2821 movs r1, 0x28 ; '(' ; 40
| ||||| 0x08093ba8 01fb0541 mla r1, r1, r5, r4
| ||||| 0x08093bac d1f87c13 ldr.w r1, [r1, 0x37c]
| ||||| 0x08093bb0 4003 lsls r0, r0, 0xd
| ||||| 0x08093bb2 400b lsrs r0, r0, 0xd
| ||||| 0x08093bb4 081a subs r0, r1, r0
| ||||| 0x08093bb6 2821 movs r1, 0x28 ; '(' ; 40
| ||||| 0x08093bb8 01fb0541 mla r1, r1, r5, r4
| ||||| 0x08093bbc c1f88c03 str.w r0, [r1, 0x38c]
| `-----> 0x08093bc0 2900 movs r1, r5
| |||| 0x08093bc2 c9b2 uxtb r1, r1
| |||| 0x08093bc4 2000 movs r0, r4
| |||| 0x08093bc6 b84a ldr r2, [0x08093eaa] ; [0x8093ea8:4]=0x20004a0c
| |||| 0x08093bc8 1268 ldr r2, [r2]
| |||| 0x08093bca 1268 ldr r2, [r2]
| |||| 0x08093bcc 9047 blx r2
| |||| 0x08093bce e078 ldrb r0, [r4, 3]
| |||| 0x08093bd0 0128 cmp r0, 1 ; 1
| ,=====< 0x08093bd2 08d1 bne 0x8093be6
| ||||| 0x08093bd4 002d cmp r5, 0
| ,======< 0x08093bd6 06d1 bne 0x8093be6
| |||||| 0x08093bd8 94f81101 ldrb.w r0, [r4, 0x111]
| |||||| 0x08093bdc 0528 cmp r0, 5 ; 5
| ,=======< 0x08093bde 02d1 bne 0x8093be6
| ||||||| 0x08093be0 2000 movs r0, r4
| ||||||| 0x08093be2 cdf75aff bl func_61a9a
| ````----> 0x08093be6 c7f34000 ubfx r0, r7, 1, 1
| ||| 0x08093bea c007 lsls r0, r0, 0x1f
| ,====< 0x08093bec 06d5 bpl 0x8093bfc
| |||| 0x08093bee 0027 movs r7, 0
| |||| 0x08093bf0 57f00207 orrs r7, r7, 2
| |||| 0x08093bf4 14eb8500 adds.w r0, r4, r5, lsl 2
| |||| 0x08093bf8 406d ldr r0, [r0, 0x54]
| |||| 0x08093bfa 8760 str r7, [r0, 8]
| `----> 0x08093bfc c7f3c000 ubfx r0, r7, 3, 1
| ||| 0x08093c00 c007 lsls r0, r0, 0x1f
| ,====< 0x08093c02 0bd5 bpl 0x8093c1c
| |||| 0x08093c04 2000 movs r0, r4
| |||| 0x08093c06 a849 ldr r1, [0x08093eaa] ; [0x8093ea8:4]=0x20004a0c
| |||| 0x08093c08 0968 ldr r1, [r1]
| |||| 0x08093c0a 8968 ldr r1, [r1, 8]
| |||| 0x08093c0c 8847 blx r1
| |||| 0x08093c0e 0027 movs r7, 0
| |||| 0x08093c10 57f00807 orrs r7, r7, 8
| |||| 0x08093c14 14eb8500 adds.w r0, r4, r5, lsl 2
| |||| 0x08093c18 406d ldr r0, [r0, 0x54]
| |||| 0x08093c1a 8760 str r7, [r0, 8]
| ``---> 0x08093c1c 6d1c adds r5, r5, 1
| || 0x08093c1e 7608 lsrs r6, r6, 1
| |`-> 0x08093c20 002e cmp r6, 0
| `==< 0x08093c22 a5d1 bne 0x8093b70
| 0x08093c24 0120 movs r0, 1 ; 1
\ 0x08093c26 f2bd pop {r1, r4, r5, r6, r7, pc}
/ (fcn) func_93c28 28
| Caller: CalledFromUSB_IRQ
| func_93c28 ();
| 0x08093c28 10b5 push {r4, lr}
| 0x08093c2a 0400 movs r4, r0
| 0x08093c2c 2000 movs r0, r4
| 0x08093c2e 9e49 ldr r1, [0x08093eaa] ; [0x8093ea8:4]=0x20004a0c
| 0x08093c30 0968 ldr r1, [r1]
| 0x08093c32 c968 ldr r1, [r1, 0xc]
| 0x08093c34 8847 blx r1
| 0x08093c36 0020 movs r0, 0
| 0x08093c38 50f00800 orrs r0, r0, 8
| 0x08093c3c e168 ldr r1, [r4, 0xc]
| 0x08093c3e 4861 str r0, [r1, 0x14]
| 0x08093c40 0120 movs r0, 1 ; 1
\ 0x08093c42 10bd pop {r4, pc}
/ (fcn) func_93c44 158
| Caller: CalledFromUSB_IRQ
| func_93c44 ();
| 0x08093c44 f8b5 push {r3, r4, r5, r6, r7, lr}
| 0x08093c46 0400 movs r4, r0
| 0x08093c48 0025 movs r5, 0
| 0x08093c4a 55f01005 orrs r5, r5, 0x10
| 0x08093c4e e068 ldr r0, [r4, 0xc]
| 0x08093c50 8069 ldr r0, [r0, 0x18]
| 0x08093c52 a843 bics r0, r5
| 0x08093c54 e168 ldr r1, [r4, 0xc]
| 0x08093c56 8861 str r0, [r1, 0x18]
| 0x08093c58 e068 ldr r0, [r4, 0xc]
| 0x08093c5a 066a ldr r6, [r0, 0x20]
| 0x08093c5c 16f00f00 ands r0, r6, 0xf
| 0x08093c60 2821 movs r1, 0x28 ; '(' ; 40
| 0x08093c62 01fb0040 mla r0, r1, r0, r4
| 0x08093c66 10f55d77 adds.w r7, r0, 0x374
| 0x08093c6a 700c lsrs r0, r6, 0x11
| 0x08093c6c 10f00f00 ands r0, r0, 0xf
| 0x08093c70 0128 cmp r0, 1 ; 1
| ,=< 0x08093c72 08d0 beq 0x8093c86
| | 0x08093c74 0228 cmp r0, 2 ; 2
| ,==< 0x08093c76 07d0 beq 0x8093c88
| || 0x08093c78 0328 cmp r0, 3 ; 3
| ,===< 0x08093c7a 1dd0 beq 0x8093cb8
| ||| 0x08093c7c 0428 cmp r0, 4 ; 4
| ,====< 0x08093c7e 1cd0 beq 0x8093cba
| |||| 0x08093c80 0628 cmp r0, 6 ; 6
| ,=====< 0x08093c82 1bd0 beq 0x8093cbc
| ,======< 0x08093c84 26e0 b 0x8093cd4
| ,=====`-> 0x08093c86 25e0 b 0x8093cd4
| |||||`--> 0x08093c88 3009 lsrs r0, r6, 4
| ||||| 0x08093c8a 4005 lsls r0, r0, 0x15
| ||||| 0x08093c8c 400d lsrs r0, r0, 0x15
| ||||| 0x08093c8e 80b2 uxth r0, r0
| ||||| 0x08093c90 0028 cmp r0, 0
| ||||| ,=< 0x08093c92 10d0 beq 0x8093cb6
| ||||| | 0x08093c94 c6f30a12 ubfx r2, r6, 4, 0xb
| ||||| | 0x08093c98 92b2 uxth r2, r2
| ||||| | 0x08093c9a f968 ldr r1, [r7, 0xc]
| ||||| | 0x08093c9c 2000 movs r0, r4
| ||||| | 0x08093c9e cdf790fa bl func_611c2
| ||||| | 0x08093ca2 c6f30a10 ubfx r0, r6, 4, 0xb
| ||||| | 0x08093ca6 f968 ldr r1, [r7, 0xc]
| ||||| | 0x08093ca8 4018 adds r0, r0, r1
| ||||| | 0x08093caa f860 str r0, [r7, 0xc]
| ||||| | 0x08093cac b869 ldr r0, [r7, 0x18]
| ||||| | 0x08093cae c6f30a11 ubfx r1, r6, 4, 0xb
| ||||| | 0x08093cb2 0818 adds r0, r1, r0
| ||||| | 0x08093cb4 b861 str r0, [r7, 0x18]
| |||||,`-> 0x08093cb6 0de0 b 0x8093cd4
| ||||`-,=< 0x08093cb8 0ce0 b 0x8093cd4
| |||`,===< 0x08093cba 0be0 b 0x8093cd4
| ||`-----> 0x08093cbc 0822 movs r2, 8 ; 8
| || ||| 0x08093cbe 04f2cc51 addw r1, r4, 0x5cc
| || ||| 0x08093cc2 2000 movs r0, r4
| || ||| 0x08093cc4 cdf77dfa bl func_611c2
| || ||| 0x08093cc8 b869 ldr r0, [r7, 0x18]
| || ||| 0x08093cca c6f30a11 ubfx r1, r6, 4, 0xb
| || ||| 0x08093cce 0818 adds r0, r1, r0
| || ||| 0x08093cd0 b861 str r0, [r7, 0x18]
| || ,====< 0x08093cd2 ffe7 b 0x8093cd4
| ``-````-> 0x08093cd4 e068 ldr r0, [r4, 0xc]
| 0x08093cd6 8069 ldr r0, [r0, 0x18]
| 0x08093cd8 2843 orrs r0, r5
| 0x08093cda e168 ldr r1, [r4, 0xc]
| 0x08093cdc 8861 str r0, [r1, 0x18]
| 0x08093cde 0120 movs r0, 1 ; 1
\ 0x08093ce0 f2bd pop {r1, r4, r5, r6, r7, pc}
/ (fcn) func_93ce2 136
| Caller: func_93a6a
| func_93ce2 ();
| 0x08093ce2 2de9f041 push.w {r4, r5, r6, r7, r8, lr}
| 0x08093ce6 0400 movs r4, r0
| 0x08093ce8 0d00 movs r5, r1
| 0x08093cea 0026 movs r6, 0
| 0x08093cec 0020 movs r0, 0
| 0x08093cee 2821 movs r1, 0x28 ; '(' ; 40
| 0x08093cf0 01fb0541 mla r1, r1, r5, r4
| 0x08093cf4 11f58e77 adds.w r7, r1, 0x11c
| 0x08093cf8 7969 ldr r1, [r7, 0x14]
| 0x08093cfa ba69 ldr r2, [r7, 0x18]
| 0x08093cfc 891a subs r1, r1, r2
| 0x08093cfe 0e00 movs r6, r1
| 0x08093d00 b968 ldr r1, [r7, 8]
| 0x08093d02 b142 cmp r1, r6
| ,=< 0x08093d04 00d2 bhs 0x8093d08
| | 0x08093d06 be68 ldr r6, [r7, 8]
| `-> 0x08093d08 f01c adds r0, r6, 3
| 0x08093d0a 5fea9008 lsrs.w r8, r0, 2
| 0x08093d0e 14eb8500 adds.w r0, r4, r5, lsl 2
| 0x08093d12 8069 ldr r0, [r0, 0x18]
| 0x08093d14 8069 ldr r0, [r0, 0x18]
| ,=< 0x08093d16 1be0 b 0x8093d50
| .--> 0x08093d18 7869 ldr r0, [r7, 0x14]
| || 0x08093d1a b969 ldr r1, [r7, 0x18]
| || 0x08093d1c 461a subs r6, r0, r1
| || 0x08093d1e b868 ldr r0, [r7, 8]
| || 0x08093d20 b042 cmp r0, r6
| ,===< 0x08093d22 00d2 bhs 0x8093d26
| ||| 0x08093d24 be68 ldr r6, [r7, 8]
| `---> 0x08093d26 f01c adds r0, r6, 3
| || 0x08093d28 5fea9008 lsrs.w r8, r0, 2
| || 0x08093d2c 3300 movs r3, r6
| || 0x08093d2e 9bb2 uxth r3, r3
| || 0x08093d30 2a00 movs r2, r5
| || 0x08093d32 d2b2 uxtb r2, r2
| || 0x08093d34 f968 ldr r1, [r7, 0xc]
| || 0x08093d36 2000 movs r0, r4
| || 0x08093d38 cdf723fa bl func_61182
| || 0x08093d3c f868 ldr r0, [r7, 0xc]
| || 0x08093d3e 3018 adds r0, r6, r0
| || 0x08093d40 f860 str r0, [r7, 0xc]
| || 0x08093d42 b869 ldr r0, [r7, 0x18]
| || 0x08093d44 3018 adds r0, r6, r0
| || 0x08093d46 b861 str r0, [r7, 0x18]
| || 0x08093d48 14eb8500 adds.w r0, r4, r5, lsl 2
| || 0x08093d4c 8069 ldr r0, [r0, 0x18]
| || 0x08093d4e 8069 ldr r0, [r0, 0x18]
| |`-> 0x08093d50 80b2 uxth r0, r0
| | 0x08093d52 8045 cmp r8, r0
| |,=< 0x08093d54 06d2 bhs 0x8093d64
| || 0x08093d56 b869 ldr r0, [r7, 0x18]
| || 0x08093d58 7969 ldr r1, [r7, 0x14]
| || 0x08093d5a 8842 cmp r0, r1
| ,===< 0x08093d5c 02d2 bhs 0x8093d64
| ||| 0x08093d5e 7869 ldr r0, [r7, 0x14]
| ||| 0x08093d60 0028 cmp r0, 0
| |`==< 0x08093d62 d9d1 bne 0x8093d18
| `-`-> 0x08093d64 0120 movs r0, 1 ; 1
\ 0x08093d66 bde8f081 pop.w {r4, r5, r6, r7, r8, pc}
/ (fcn) func_93d6a 186
| Caller: CalledFromUSB_IRQ
| func_93d6a ();
| 0x08093d6a 2de9f843 push.w {r3, r4, r5, r6, r7, r8, sb, lr}
| 0x08093d6e 0400 movs r4, r0
| 0x08093d70 0020 movs r0, 0
| 0x08093d72 0025 movs r5, 0
| 0x08093d74 0026 movs r6, 0
| 0x08093d76 0027 movs r7, 0
| 0x08093d78 5ff00008 movs.w r8, 0
| 0x08093d7c 5ff00009 movs.w sb, 0
| 0x08093d80 50f00100 orrs r0, r0, 1
| 0x08093d84 2169 ldr r1, [r4, 0x10]
| 0x08093d86 4968 ldr r1, [r1, 4]
| 0x08093d88 31ea0000 bics.w r0, r1, r0
| 0x08093d8c 2169 ldr r1, [r4, 0x10]
| 0x08093d8e 4860 str r0, [r1, 4]
| 0x08093d90 0021 movs r1, 0
| 0x08093d92 2000 movs r0, r4
| 0x08093d94 cdf70bfb bl func_613ae
| 0x08093d98 0020 movs r0, 0
| ,=< 0x08093d9a 0ae0 b 0x8093db2
| .--> 0x08093d9c 14eb8001 adds.w r1, r4, r0, lsl 2
| || 0x08093da0 8969 ldr r1, [r1, 0x18]
| || 0x08093da2 ff22 movs r2, 0xff ; 255
| || 0x08093da4 8a60 str r2, [r1, 8]
| || 0x08093da6 14eb8001 adds.w r1, r4, r0, lsl 2
| || 0x08093daa 496d ldr r1, [r1, 0x54]
| || 0x08093dac ff22 movs r2, 0xff ; 255
| || 0x08093dae 8a60 str r2, [r1, 8]
| || 0x08093db0 401c adds r0, r0, 1
| |`-> 0x08093db2 6178 ldrb r1, [r4, 1]
| | 0x08093db4 8842 cmp r0, r1
| `==< 0x08093db6 f1d3 blo 0x8093d9c
| 0x08093db8 2069 ldr r0, [r4, 0x10]
| 0x08093dba 5ff0ff31 movs.w r1, -1 ; -1
| 0x08093dbe 8161 str r1, [r0, 0x18]
| 0x08093dc0 0120 movs r0, 1 ; 1
| 0x08093dc2 60f30f05 bfi r5, r0, 0, 0x10
| 0x08093dc6 0120 movs r0, 1 ; 1
| 0x08093dc8 60f31f45 bfi r5, r0, 0x10, 0x10
| 0x08093dcc 2069 ldr r0, [r4, 0x10]
| 0x08093dce c561 str r5, [r0, 0x1c]
| 0x08093dd0 56f00806 orrs r6, r6, 8
| 0x08093dd4 56f00106 orrs r6, r6, 1
| 0x08093dd8 56f00206 orrs r6, r6, 2
| 0x08093ddc 2069 ldr r0, [r4, 0x10]
| 0x08093dde 4661 str r6, [r0, 0x14]
| 0x08093de0 57f00107 orrs r7, r7, 1
| 0x08093de4 57f00807 orrs r7, r7, 8
| 0x08093de8 57f00207 orrs r7, r7, 2
| 0x08093dec 2069 ldr r0, [r4, 0x10]
| 0x08093dee 0761 str r7, [r0, 0x10]
| 0x08093df0 2069 ldr r0, [r4, 0x10]
| 0x08093df2 d0f80080 ldr.w r8, [r0]
| 0x08093df6 38f4fe68 bics r8, r8, 0x7f0
| 0x08093dfa 2069 ldr r0, [r4, 0x10]
| 0x08093dfc c0f80080 str.w r8, [r0]
| 0x08093e00 2000 movs r0, r4
| 0x08093e02 cdf74afe bl func_61a9a
| 0x08093e06 5ff00009 movs.w sb, 0
| 0x08093e0a 59f48059 orrs sb, sb, 0x1000
| 0x08093e0e e068 ldr r0, [r4, 0xc]
| 0x08093e10 c0f81490 str.w sb, [r0, 0x14]
| 0x08093e14 2000 movs r0, r4
| 0x08093e16 2449 ldr r1, [0x08093eaa] ; [0x8093ea8:4]=0x20004a0c
| 0x08093e18 0968 ldr r1, [r1]
| 0x08093e1a 0969 ldr r1, [r1, 0x10]
| 0x08093e1c 8847 blx r1
| 0x08093e1e 0120 movs r0, 1 ; 1
\ 0x08093e20 bde8f283 pop.w {r1, r4, r5, r6, r7, r8, sb, pc}
/ (fcn) func_93e24 62
| Caller: CalledFromUSB_IRQ
| func_93e24 ();
| 0x08093e24 38b5 push {r3, r4, r5, lr}
| 0x08093e26 0400 movs r4, r0
| 0x08093e28 2000 movs r0, r4
| 0x08093e2a cdf73cfc bl func_616a6
| 0x08093e2e e068 ldr r0, [r4, 0xc]
| 0x08093e30 c568 ldr r5, [r0, 0xc]
| 0x08093e32 2000 movs r0, r4
| 0x08093e34 cdf721fc bl func_6167a
| 0x08093e38 0328 cmp r0, 3 ; 3
| ,=< 0x08093e3a 08d1 bne 0x8093e4e
| | 0x08093e3c 0020 movs r0, 0
| | 0x08093e3e a070 strb r0, [r4, 2]
| | 0x08093e40 4ff40070 mov.w r0, 0x200 ; 512
| | 0x08093e44 a080 strh r0, [r4, 4]
| | 0x08093e46 0920 movs r0, 9 ; 9
| | 0x08093e48 60f38d25 bfi r5, r0, 0xa, 4
| ,==< 0x08093e4c 06e0 b 0x8093e5c
| |`-> 0x08093e4e 0120 movs r0, 1 ; 1
| | 0x08093e50 a070 strb r0, [r4, 2]
| | 0x08093e52 4020 movs r0, 0x40 ; '@' ; 64
| | 0x08093e54 a080 strh r0, [r4, 4]
| | 0x08093e56 0520 movs r0, 5 ; 5
| | 0x08093e58 60f38d25 bfi r5, r0, 0xa, 4
| `--> 0x08093e5c e068 ldr r0, [r4, 0xc]
| 0x08093e5e c560 str r5, [r0, 0xc]
\ 0x08093e60 0020 movs r0, 0
/ (fcn) func_93e6e 28
| Caller: CalledFromUSB_IRQ
| func_93e6e ();
| 0x08093e6e 38b5 push {r3, r4, r5, lr}
| 0x08093e70 0400 movs r4, r0
| 0x08093e72 0025 movs r5, 0
| 0x08093e74 2000 movs r0, r4
| 0x08093e76 0c49 ldr r1, [0x08093eaa] ; [0x8093ea8:4]=0x20004a0c
| 0x08093e78 0968 ldr r1, [r1]
| 0x08093e7a c969 ldr r1, [r1, 0x1c]
| 0x08093e7c 8847 blx r1
| 0x08093e7e 55f48015 orrs r5, r5, 0x100000
| 0x08093e82 e068 ldr r0, [r4, 0xc]
| 0x08093e84 4561 str r5, [r0, 0x14]
| 0x08093e86 0120 movs r0, 1 ; 1
\ 0x08093e88 32bd pop {r1, r4, r5, pc}
/ (fcn) func_93e8a 28
| Caller: CalledFromUSB_IRQ
| func_93e8a ();
| 0x08093e8a 38b5 push {r3, r4, r5, lr}
| 0x08093e8c 0400 movs r4, r0
| 0x08093e8e 0025 movs r5, 0
| 0x08093e90 2000 movs r0, r4
| 0x08093e92 0549 ldr r1, [0x08093eaa] ; [0x8093ea8:4]=0x20004a0c
| 0x08093e94 0968 ldr r1, [r1]
| 0x08093e96 096a ldr r1, [r1, 0x20]
| 0x08093e98 8847 blx r1
| 0x08093e9a 55f40015 orrs r5, r5, 0x200000
| 0x08093e9e e068 ldr r0, [r4, 0xc]
| 0x08093ea0 4561 str r5, [r0, 0x14]
| 0x08093ea2 0120 movs r0, 1 ; 1
\ 0x08093ea4 32bd pop {r1, r4, r5, pc}
/ (fcn) LED_Process 366
| LED_Process ();
| 0x08095518 0024 movs r4, 0
| 0x0809551a 0025 movs r5, 0
| 0x0809551c 5a48 ldr r0, [0x08095688] ; [0x8095688:4]=0x2001dadc md380_radio_config
| 0x0809551e 0078 ldrb r0, [r0]
| 0x08095520 c0f38000 ubfx r0, r0, 2, 1
| 0x08095524 c007 lsls r0, r0, 0x1f
| ,=< 0x08095526 04d5 bpl 0x8095532
| | 0x08095528 0122 movs r2, 1 ; 1
| | 0x0809552a 0121 movs r1, 1 ; 1
| | 0x0809552c 5748 ldr r0, [0x0809568c] ; [0x809568c:4]=0x40021000 io_GPIOE
| | 0x0809552e 96f770f9 bl GPIO_WriteBit
| `-> 0x08095532 4ff4fa70 mov.w r0, 0x1f4 ; 500
| 0x08095536 9ef7bdfc bl OSTimeDly
| 0x0809553a 0022 movs r2, 0
| 0x0809553c 0121 movs r1, 1 ; 1
| 0x0809553e 5348 ldr r0, [0x0809568e] ; [0x809568c:4]=0x40021000 io_GPIOE
| 0x08095540 96f767f9 bl GPIO_WriteBit
| ,=< 0x08095544 09e0 b 0x809555a
| ....--> 0x08095546 0022 movs r2, 0
| ||||| 0x08095548 0121 movs r1, 1 ; 1
| ||||| 0x0809554a 5048 ldr r0, [0x0809568e] ; [0x809568c:4]=0x40021000 io_GPIOE
| ||||| 0x0809554c 96f761f9 bl GPIO_WriteBit
| ||||| 0x08095550 0022 movs r2, 0
| ||||| 0x08095552 0221 movs r1, 2 ; 2
| ||||| 0x08095554 4d48 ldr r0, [0x0809568c] ; [0x809568c:4]=0x40021000 io_GPIOE
| ||||| 0x08095556 96f75cf9 bl GPIO_WriteBit
| ..----`-> 0x0809555a 0a20 movs r0, 0xa ; 10
| |||||| 0x0809555c 9ef7aafc bl OSTimeDly
| |||||| 0x08095560 4b48 ldr r0, [0x08095690] ; [0x8095690:4]=0x2001e892 gui_opmode3
| |||||| 0x08095562 0078 ldrb r0, [r0]
| |||||| 0x08095564 0828 cmp r0, 8 ; 8
| ||`=====< 0x08095566 eed0 beq 0x8095546
| || ||| 0x08095568 4948 ldr r0, [0x08095690] ; [0x8095690:4]=0x2001e892 gui_opmode3
| || ||| 0x0809556a 0078 ldrb r0, [r0]
| || ||| 0x0809556c 0728 cmp r0, 7 ; 7
| || `====< 0x0809556e ead0 beq 0x8095546
| || || 0x08095570 4748 ldr r0, [0x08095690] ; [0x8095690:4]=0x2001e892 gui_opmode3
| || || 0x08095572 0078 ldrb r0, [r0]
| || || 0x08095574 0128 cmp r0, 1 ; 1
| || ||,=< 0x08095576 03d1 bne 0x8095580
| || ||| 0x08095578 4648 ldr r0, [0x08095694] ; [0x8095694:4]=0x2001e5f4
| || ||| 0x0809557a 4078 ldrb r0, [r0, 1]
| || ||| 0x0809557c c007 lsls r0, r0, 0x1f
| || `===< 0x0809557e e2d4 bmi 0x8095546
| || |`-> 0x08095580 4348 ldr r0, [0x08095690] ; [0x8095690:4]=0x2001e892 gui_opmode3
| || | 0x08095582 0078 ldrb r0, [r0]
| || | 0x08095584 3028 cmp r0, 0x30 ; '0' ; 48
| || |,=< 0x08095586 05d2 bhs 0x8095594
| || || 0x08095588 3f48 ldr r0, [0x08095688] ; [0x8095688:4]=0x2001dadc md380_radio_config
| || || 0x0809558a 0078 ldrb r0, [r0]
| || || 0x0809558c c0f38000 ubfx r0, r0, 2, 1
| || || 0x08095590 c007 lsls r0, r0, 0x1f
| || `==< 0x08095592 d8d5 bpl 0x8095546
| || `-> 0x08095594 4048 ldr r0, [0x08095698] ; [0x8095698:4]=0x2001e893
| || 0x08095596 0078 ldrb r0, [r0]
| || 0x08095598 0628 cmp r0, 6 ; 6
| || ,=< 0x0809559a 0ad1 bne 0x80955b2
| || | 0x0809559c 0022 movs r2, 0
| || | 0x0809559e 0221 movs r1, 2 ; 2
| || | 0x080955a0 3a48 ldr r0, [0x0809568c] ; [0x809568c:4]=0x40021000 io_GPIOE
| || | 0x080955a2 96f736f9 bl GPIO_WriteBit
| || | 0x080955a6 0122 movs r2, 1 ; 1
| || | 0x080955a8 0121 movs r1, 1 ; 1
| || | 0x080955aa 3848 ldr r0, [0x0809568e] ; [0x809568c:4]=0x40021000 io_GPIOE
| || | 0x080955ac 96f731f9 bl GPIO_WriteBit
| ========< 0x080955b0 d3e7 b 0x809555a
| || `-> 0x080955b2 3948 ldr r0, [0x0809569a] ; [0x8095698:4]=0x2001e893
| || 0x080955b4 0078 ldrb r0, [r0]
| || 0x080955b6 0a28 cmp r0, 0xa ; 10
| || ,=< 0x080955b8 03d0 beq 0x80955c2
| || | 0x080955ba 3748 ldr r0, [0x0809569a] ; [0x8095698:4]=0x2001e893
| || | 0x080955bc 0078 ldrb r0, [r0]
| || | 0x080955be 0b28 cmp r0, 0xb ; 11
| || ,==< 0x080955c0 0ad1 bne 0x80955d8
| || |`-> 0x080955c2 0022 movs r2, 0
| || | 0x080955c4 0121 movs r1, 1 ; 1
| || | 0x080955c6 3148 ldr r0, [0x0809568e] ; [0x809568c:4]=0x40021000 io_GPIOE
| || | 0x080955c8 96f723f9 bl GPIO_WriteBit
| || | 0x080955cc 0122 movs r2, 1 ; 1
| || | 0x080955ce 0221 movs r1, 2 ; 2
| || | 0x080955d0 2e48 ldr r0, [0x0809568c] ; [0x809568c:4]=0x40021000 io_GPIOE
| || | 0x080955d2 96f71ef9 bl GPIO_WriteBit
| ========< 0x080955d6 c0e7 b 0x809555a
| || `--> 0x080955d8 2d48 ldr r0, [0x08095690] ; [0x8095690:4]=0x2001e892 gui_opmode3
| || 0x080955da 0078 ldrb r0, [r0]
| || 0x080955dc 0228 cmp r0, 2 ; 2
| || ,=< 0x080955de 47d1 bne 0x8095670
| || | 0x080955e0 2e48 ldr r0, [0x0809569c] ; [0x809569c:4]=0x2001e8b8 some_state_var
| || | 0x080955e2 0078 ldrb r0, [r0]
| || | 0x080955e4 0528 cmp r0, 5 ; 5
| || ,==< 0x080955e6 17d0 beq 0x8095618
| || || 0x080955e8 2c48 ldr r0, [0x0809569c] ; [0x809569c:4]=0x2001e8b8 some_state_var
| || || 0x080955ea 0078 ldrb r0, [r0]
| || || 0x080955ec 0628 cmp r0, 6 ; 6
| || ,===< 0x080955ee 13d0 beq 0x8095618
| || ||| 0x080955f0 2a48 ldr r0, [0x0809569c] ; [0x809569c:4]=0x2001e8b8 some_state_var
| || ||| 0x080955f2 0078 ldrb r0, [r0]
| || ||| 0x080955f4 0828 cmp r0, 8 ; 8
| || ,====< 0x080955f6 0fd0 beq 0x8095618
| || |||| 0x080955f8 2848 ldr r0, [0x0809569c] ; [0x809569c:4]=0x2001e8b8 some_state_var
| || |||| 0x080955fa 0078 ldrb r0, [r0]
| || |||| 0x080955fc 0928 cmp r0, 9 ; 9
| ||,=====< 0x080955fe 0bd0 beq 0x8095618
| ||||||| 0x08095600 2648 ldr r0, [0x0809569c] ; [0x809569c:4]=0x2001e8b8 some_state_var
| ||||||| 0x08095602 0078 ldrb r0, [r0]
| ||||||| 0x08095604 0a28 cmp r0, 0xa ; 10
| ========< 0x08095606 07d0 beq 0x8095618
| ||||||| 0x08095608 2448 ldr r0, [0x0809569c] ; [0x809569c:4]=0x2001e8b8 some_state_var
| ||||||| 0x0809560a 0078 ldrb r0, [r0]
| ||||||| 0x0809560c 0b28 cmp r0, 0xb ; 11
| ========< 0x0809560e 03d0 beq 0x8095618
| ||||||| 0x08095610 2248 ldr r0, [0x0809569c] ; [0x809569c:4]=0x2001e8b8 some_state_var
| ||||||| 0x08095612 0078 ldrb r0, [r0]
| ||||||| 0x08095614 0c28 cmp r0, 0xc ; 12
| ========< 0x08095616 0ad1 bne 0x809562e
| --````--> 0x08095618 0022 movs r2, 0
| || | 0x0809561a 0121 movs r1, 1 ; 1
| || | 0x0809561c 1b48 ldr r0, [0x0809568c] ; [0x809568c:4]=0x40021000 io_GPIOE
| || | 0x0809561e 96f7f8f8 bl GPIO_WriteBit
| || | 0x08095622 0022 movs r2, 0
| || | 0x08095624 0221 movs r1, 2 ; 2
| || | 0x08095626 1948 ldr r0, [0x0809568e] ; [0x809568c:4]=0x40021000 io_GPIOE
| || | 0x08095628 96f7f3f8 bl GPIO_WriteBit
| ========< 0x0809562c 95e7 b 0x809555a
| --------> 0x0809562e 2000 movs r0, r4
| || | 0x08095630 441c adds r4, r0, 1
| || | 0x08095632 c0b2 uxtb r0, r0
| || | 0x08095634 3328 cmp r0, 0x33 ; '3' ; 51
| ========< 0x08095636 90d3 blo 0x809555a
| || | 0x08095638 0024 movs r4, 0
| || | 0x0809563a edb2 uxtb r5, r5
| || | 0x0809563c 002d cmp r5, 0
| || ,==< 0x0809563e 0bd0 beq 0x8095658
| || || 0x08095640 0025 movs r5, 0
| || || 0x08095642 0022 movs r2, 0
| || || 0x08095644 0121 movs r1, 1 ; 1
| || || 0x08095646 1148 ldr r0, [0x0809568e] ; [0x809568c:4]=0x40021000 io_GPIOE
| || || 0x08095648 96f7e3f8 bl GPIO_WriteBit
| || || 0x0809564c 0022 movs r2, 0
| || || 0x0809564e 0221 movs r1, 2 ; 2
| || || 0x08095650 0e48 ldr r0, [0x0809568c] ; [0x809568c:4]=0x40021000 io_GPIOE
| || || 0x08095652 96f7def8 bl GPIO_WriteBit
| ========< 0x08095656 80e7 b 0x809555a
| || `--> 0x08095658 0125 movs r5, 1 ; 1
| || | 0x0809565a 0122 movs r2, 1 ; 1
| || | 0x0809565c 0121 movs r1, 1 ; 1
| || | 0x0809565e 0b48 ldr r0, [0x0809568e] ; [0x809568c:4]=0x40021000 io_GPIOE
| || | 0x08095660 96f7d7f8 bl GPIO_WriteBit
| || | 0x08095664 0122 movs r2, 1 ; 1
| || | 0x08095666 0221 movs r1, 2 ; 2
| || | 0x08095668 0848 ldr r0, [0x0809568c] ; [0x809568c:4]=0x40021000 io_GPIOE
| || | 0x0809566a 96f7d2f8 bl GPIO_WriteBit
| `=======< 0x0809566e 74e7 b 0x809555a
| | `-> 0x08095670 0022 movs r2, 0
| | 0x08095672 0121 movs r1, 1 ; 1
| | 0x08095674 0548 ldr r0, [0x0809568c] ; [0x809568c:4]=0x40021000 io_GPIOE
| | 0x08095676 96f7ccf8 bl GPIO_WriteBit
| | 0x0809567a 0022 movs r2, 0
| | 0x0809567c 0221 movs r1, 2 ; 2
| | 0x0809567e 0348 ldr r0, [0x0809568e] ; [0x809568c:4]=0x40021000 io_GPIOE
| | 0x08095680 96f7c7f8 bl GPIO_WriteBit
\ `======< 0x08095684 69e7 b 0x809555a
0x0800c000 392 VectorTable
0x08094270 98 HandlerForDMA2_Stream3
0x080942d2 1 NextAfterHandlers
0x080f9244 8 Reset_Handler
0x08093ef0 1 NMI_Handler
0x08093ef8 1 HardFault_Handler
0x08093f00 1 MemManage
0x08093f08 1 BusFault_Handler
0x08093f10 1 UsageFault_Handler
0x08093f18 1 SVC_Handler
0x08093f1a 1 DebugMon_Handler
0x08093f1c 1 SysTick_Handler
0x08094238 1 RTC_WKUP_IRQHandler
0x0809403e 1 EXTI0_IRQHandler
0x08094022 1 EXTI1_IRQHandler
0x08093f9c 1 EXTI2_IRQHandler
0x08093f88 1 EXTI3_IRQHandler
0x080fc5f8 1 CAN1_TX_IRQHandler
0x080fc5fc 1 CAN1_RX0_IRQHandler
0x080fc600 1 CAN1_RX1_IRQHandler
0x080fc604 1 CAN1_SCE_IRQHandler
0x08094108 1 TIM3_IRQHandler
0x0809408c 1 TIM4_IRQHandler
0x08093f3e 1 OTG_FS_WKUP_IRQHandler
0x08094228 1 TIM8_UP_TIM13_IRQHandler
0x08094078 1 TIM5_IRQHandler
0x08094138 1 TIM6_DAC_IRQHandler
0x080941e8 1 TIM7_DAC_IRQHandler
0x0800e5a6 0 draw_channel_label
0x0800e682 0 draw_zone_label
0x0800e7a8 0 menu_6_15_1
0x0800e7cc 0 menu_6_1_1
0x0800eba2 0 menu.dispatcher.unkn1
0x0800ed3a 0 menu.dispatch.greenkey
0x0800f2a0 0 menu.dispatch.redkey_maybe
0x08021874 0 gfx_select_font
0x0802189c 1 gfx_drawchar
0x08022714 1 init_radioconfig_2_from_spi
0x08022716 1 read_40_from_2100_spi
0x08022bda 1 load_contact_call
0x08022fe8 1 msg_flash_write
0x08022db0 0 rd_zone_name.loop
0x080249be 1 gfx_rc
0x080331e0 0 gfx_set_fg_color2
0x080331c8 1 gfx_set_bg_color2
0x08036fee 0 drawtext8.loop_for_all_chars
0x08046548 1 create_Sys_Inter
0x080f9f20 1 string_RTC_Timer
0x080f9f2c 1 string_LED_Process
0x080f9f38 1 string_Set_Vocoder
0x080f9f44 1 string_ChAccess_Pr
0x080f9f50 1 string_Tone_fft
0x080f9f5c 1 string_DFU_Config
0x0804657c 1 create_RTC_Timer
0x080467b8 1 create_State_Change
0x0804678a 1 create_ChAccess_Pr
0x080467fa 0 draw_topline_text_maybe
0x08046810 0 draw_botline_text
0x080468e6 0 call_F_4225_2
0x080468ae 0 mainloop_entry
0x080468f6 0 jmp_to_mainloop
0x08093ed0 32 DummyForUnusedIRQs
0x0800fc85 1 menu_entry_back_1
0x08023858 0 menugreen.Messages.8023858
0x08034274 0 menugreen.Call_Log.8034274
0x080134a0 0 menugreen.Utilities.80134a0
0x08017cbc 0 menugreen.Radio_Set.8017cbc
0x080165b8 0 menugreen.Radio_Inf.80165b8
0x0809c3b0 0 menugreen.MD380Tool.809c3b0
0x08016688 0 menugreen.GPS_BeiDo.8016688
0x08013638 0 menugreen.RX_GPSInf.8013638
0x08019170 0 menugreen.Talkaroun.8019170
0x08019798 0 menugreen.Tone_Ale.8019798
0x08019c7c 0 menugreen.Power.8019c7c
0x0801a1e0 0 menugreen.Squelch.801a1e0
0x0801a4c6 0 menugreen.Intro_Scr.801a4c6
0x0801a6c8 0 menugreen.Keypad_Lo.801a6c8
0x0801ab84 0 menugreen.Language.801ab84
0x0801ad56 0 menugreen.LED_Indic.801ad56
0x080185d8 0 menugreen.VOX.80185d8
0x0801ae5c 0 menugreen.SiteRoam1.801ae5c
0x0801af7c 0 menugreen.Passwd_Lo.801af7c
0x0800fc84 0 menugreen.SiteRoam2.800fc84
0x08018f04 0 menugreen.Record.8018f04
0x08018868 0 menugreen.Clock.8018868
0x08018248 0 menugreen.GPS.8018248
0x080136c0 0 menugreen.prog.80136c0
0x080156a4 0 menugreen.prog.rxf.80156a4
0x08015720 0 menugreen.prog.rxf.show.8015720
0x0801587a 0 menugreen.prog.rxf.edit.801587a
0x08015b74 0 menugreen.prog.txf.8015b74
0x08015be8 0 menugreen.prog.txf.show.8015be8
0x08015d58 0 menugreen.prog.txf.edit.8015d58
0x08016024 0 menugreen.prog.Channel_N.8016024
0x08016320 0 menugreen.prog.Time_Out_.8016320
0x0800fc84 0 md380_menu_entry_back
0x08015540 0 menugreen.prog.Color_Cod.8015540
0x080153dc 0 menugreen.prog.Repeater_.80153dc
0x08013e78 0 menugreen.prog.TxContact.8013e78
0x08013fbc 0 menugreen.prog.GroupList.8013fbc
0x08019998 0 menugreen.Talk_Perm.8019998
0x08019b40 0 menugreen.Keypad_To.8019b40
0x080198b0 0 menugreen.All_Tones.80198b0
0x08019290 0 menugreen.All_Tones.TurnOn.8019290
0x080194f4 0 menugreen.All_Tones.TurnOff.80194f4
0x08019290 0 menugreen.talkaround.TurnOn.8019290
0x080194f4 0 menugreen.talkaround.TurnOff.80194f4
0x0801840c 0 menugreen.Mode.801840c
0x080184e8 0 menugreen.CH_Mode.80184e8
0x0801855c 0 menugreen.MR_Mode.801855c
0x08019eb0 0 menugreen.Backlight.8019eb0
0x0801a440 0 menugreen.backlight.Always.801a440
0x0801a03e 0 menugreen.backlight.5S.801a03e
0x0801a0c8 0 menugreen.backlight.10S.801a0c8
0x0801a154 0 menugreen.backlight.15S.801a154
0x080153dc 0 menugreen.Repeater_Slot.80153dc
0x080154a4 0 menugreen.Repeater_Slot_1_2.80154a4
0x080264fc 0 menugreen.msg.Inbox.80264fc
0x08023cfe 0 menugreen.msg.Write.8023cfe
0x080239ec 0 menugreen.msg.Quick_Tex.80239ec
0x08024a80 0 menugreen.msg.Drafts.8024a80
0x08023c34 0 menugreen.msg.unk.8023c34
0x08023de2 0 menugreen.msg.quicktext.8023de2
0x0802409c 0 menugreen.msg.Send.802409c
0x080249a8 0 menugreen.msg.Save.80249a8
0x08023e24 0 menugreen.msg.Clear.8023e24
0x0802417e 0 menugreen.msg.Contacts.802417e
0x08024220 0 menugreen.msg.Manual_Di.8024220
0x0802430c 0 menugreen.msg.enter_id.802430c
0x08024740 0 menugreen.msg.enter_id_ok.8024740
0x0800c278 0 menucall.Contacts
0x0800c2f4 0 menucall.Scan
0x0800c326 0 menucall.Zone
0x0800c358 0 menucall.Messages
0x0800c38a 0 menucall.Call_Log
0x0800c3bc 0 menucall.Utilities
0x08013528 0 menucall.Radio_Set
0x0801355c 0 menucall.Radio_Inf
0x080135a8 0 menucall.Program_R
0x0809d818 0 menucall.Program_R_patched
0x0809d834 0 menucall.MD380Tool
0x080135dc 0 menucall.GPS_BeiDo
0x08013610 0 menucall.RX_GPSInf
0x0801fe5c 0 f_4225
0x0802db42 0 call_F_4225_1
0x0802015e 0 update_scr_16
0x08020236 0 update_scr_17
0x08020376 0 update_scr_18
0x0802046c 0 update_scr_19
0x08020052 0 update_scr_20
0x0801fee0 0 update_scr_21
0x0801ff3e 0 update_scr_22
0x08020612 0 update_scr_27
0x080206b2 0 update_scr_28
0x080206ee 0 update_scr_29
0x0801ff8e 0 update_scr_30
0x08020018 0 update_scr_31
0x080207b4 0 update_scr_32
0x0802080e 0 update_scr_33
0x080201bc 0 update_scr_35
0x0802020e 0 update_scr_36
0x0802082c 0 update_scr_other
0x080213aa 0 after_update_scr
0x0802daf8 0 scr_1
0x0802c83c 0 md380_f_4520
0x080faa48 1 font_small_table_at_offset_0x18
0x080f9284 1 three_font_methods
0x0802b142 1 gfx_drawtext3
0x0802b0d4 0 gfx_drawtext9
0x08020830 0 scr_mode_stable
0x08025ae4 0 F_4315
0x08040cce 1 promisc_audio_frame
0x08040cc4 1 normal_audio_frame
0x08040c7a 1 audio_for_me_or_not
0x08040c02 1 re_create_event_8
0x08041616 1 event_36
0x08041e44 1 event_4
0x0804face 1 keypress_max_time_reached
0x0804ebfc 1 check_for_ptt_switch
0x0802e0b8 1 kb_enter_alpha
0x0804f8e4 1 get_keycode_from_table
0x0804f8ea 1 get_keycode_from_table_2
0x0804fb24 1 store_keycode
0x0802c83c 1 dispatch_keyboard_2
0x0802d1b2 1 gui_control
0x08040690 1 handle_inter_request_deny
0x080406a2 1 handle_inter_sendstart
0x080406b4 1 handle_inter_sendstop
0x080406c6 1 handle_inter_lateentry
0x0804077a 1 handle_inter_recvdata
0x080409ac 1 handle_inter_recvmessage
0x080409be 1 handle_inter_quit
0x080409d0 1 handle_inter_phy
0x080406ce 1 jump_if_b7_0
0x08041da8 1 re_test_for_04
0x0803c7fc 1 re_wait_for_event
0x0803c85c 1 re_handle_1
0x0803ca2c 1 re_handle_2
0x0803c8cc 1 re_handle_3
0x0803c956 1 re_handle_4
0x0803c984 1 re_handle_5
0x0803c9fc 1 re_handle_7
0x0803ca08 1 re_handle_8
0x0803ca14 1 re_handle_9
0x0803ca20 1 re_handle_a
0x0803ca3a 1 re_handle_e
0x0804df0e 1 phone_ringing
0x0803f95c 1 c5000_pll_init
0x0803f982 1 c5000_strange_init
0x0803f9c6 1 c5000_iffreq_init
0x080408a4 1 c5000_handle_0
0x080408ba 1 c5000_handle_1
0x080408d0 1 c5000_handle_2
0x080408e6 1 c5000_handle_3
0x08040912 1 c5000_handle_4
0x08040914 1 c5000_handle_5
0x08040916 1 c5000_handle_6
0x0804092c 1 c5000_handle_7
0x08040944 1 c5000_handle_8
0x0804095c 1 c5000_handle_9
0x0804098a 1 c5000_handle_A
0x080409a2 1 c5000_handle_B_F
0x080408ba 1 c5000_handle_Voice_LC
0x080408d0 1 c5000_handle_Terminator_LC
0x080408e6 1 c5000_handle_CSBK
0x08040916 1 c5000_handle_DataHeader
0x0804092c 1 c5000_handle_DataRate1_2
0x08040944 1 c5000_handle_DataRate3_4
0x0804098a 1 c5000_handle_DataRate1
0x080408a4 1 c5000_handle_PI
0x0804095c 1 c5000_handle_idle
0x0803fed4 1 c5000_init_lowregs
0x08040226 1 c5000_enable_audio
0x0803ff16 1 c5000_wr_60_1
0x08040230 1 c5000_wr_60_2
0x08040382 1 c5000_wr_60_3
0x08046b32 1 c5000_wr_60_4
0x0805055a 1 c5000_wr_60_5
0x0803fffa 1 c5000_spi0_readreg_maybe
0x08040028 1 c5000_maybe_read_packet
0x08040680 1 c5000_read_inter
0x080406ec 1 c5000_read_dll_cc
0x080407a8 1 c5000_read_dll_datatype
0x0804087e 1 c5000_dispatch_dll_datatype
0x08040858 1 c5000_check_for_lcss_continue
0x0804087a 1 c5000_jump_if_vod
0x08040a00 1 dmr_pi_dummy
0x08040b94 1 is_this_the_check_for_group_rx_list
0x08024fb0 1 msg_send_maybe
0x08024dbc 1 msg_send_maybe2
0x08024448 1 msg_create_menu_item_something
0x08024658 1 msg_sms_post_showack
0x08024402 1 msg_bdy_prep_to_editbuf
0x080243d6 1 msg_editbuf_to_hdr_prep
0x080243b0 1 msg_stack_to_hdr_prep_options
0x0803b8f4 1 dispatch_event5_mbox
0x0803b958 1 ev5_1
0x0803b980 1 ev5_2
0x0803b986 1 ev5_3
0x0803b9a4 1 ev5_4_8
0x0803ba14 1 ev5_12
0x0803bf2a 1 ev5_14
0x0803ba5e 1 ev5_15
0x0803bad8 1 ev5_16
0x0803baec 1 ev5_17
0x0803bc86 1 ev5_18
0x0803bd46 1 ev5_19
0x0803be8e 1 ev5_20
0x0803b9c2 1 ev5_21
0x0803b9fa 1 ev5_22
0x0803bf5a 1 ev5_rest
0x0803c330 1 task_state_change
0x0803c39c 1 dispatch_event
0x0803dd8c 1 msg_process_sms2
0x08024ec4 1 msg_f1
0x08024f66 1 msg_f2
0x08041cfc 1 c5000_master_handler
0x0803cae0 1 c5000_set_local_addr
0x0803cb34 1 c5000_set_local_addr2
0x08022e76 1 flash_write_50_at_40000
0x08022e64 1 flash_read_50_at_40000
0x080cfb78 1 unprogrammed_str
0x08053680 1 ambe_decode_wav
0x080531d8 1 ambe_encode_thing
0x0802b50c 1 md380_RTC_GetDate
0x0802dfbc 1 md380_f_4137
0x08030b58 1 bp_tone_off
0x08043dec 1 OS_EXIT_CRITICAL
0x0808ebee 1 usb_dnld_handle
0x08040ce6 1 dmr_before_squelch
0x0808eb30 1 usb_do_setup
0x0802256a 1 aes_startup_check
0x080f8510 1 welcomebmp
0x08049e14 1 Start_2_more_tasks__init_vocoder_tasks
0x0804e64c 1 OSTaskNameSet
0x0803f754 1 OSSemPend
0x0804ec66 1 md380_f_4102
0x08043de4 1 OS_ENTER_CRITICAL
0x0809662e 1 usb_serialnumber
0x0803f708 1 OSSemCreate
0x080cff30 1 md380_wt_programradio
0x08041430 1 dmr_call_end
0x080226c0 1 Get_Welcome_Line1_from_spi_flash
0x0803ffd0 1 c5000_spi0_readreg
0x080cf780 1 gfx_font_norm
0x08033eb4 1 OSTimeDly
0x0808f308 1 usb_upld_handle
0x08040a02 1 dmr_call_start
0x08031476 1 md380_spiflash_read
0x08031546 1 md380_spiflash_disable
0x0802b3f6 1 md380_RTC_GetTime
0x0804b234 1 ambe_unpack
0x080312aa 1 md380_spiflash_block_erase64k
0x0803ff84 1 c5000_spi0_writereg
0x08090370 1 usb_dfu_write
0x0803152a 1 md380_spiflash_enable
0x080314bc 1 md380_spi_sendrecv
0x08055100 1 usb_setcallbacks
0x0809a4c0 1 gfx_font_small
0x080226d2 1 Get_Welcome_Line2_from_spi_flash
0x08031508 1 md380_spiflash_wait
0x08031276 1 md380_spiflash_sektor_erase4k
0x0803f844 1 OSSemPost
0x0803119c 1 md380_OSMboxPost
0x080903c0 1 usb_dfu_read
0x0804dd70 1 dmr_handle_data
0x0803155e 1 md380_spiflash_write
0x080318b0 1 md380_spiflash_security_registers_read
0x080157fc 1 Create_Menu_Entry_RX_QRG_2
0x08018b28 1 md380_itow
0x08094359 2 SystemInit
0x080943aa 1 RCC_Init
0x080fafdd 12 __main
0x0804c888 1 msg_handle_type_21
0x0804eb64 1 md380_f_4098
0x0804eb64 1 biglist_pollsubsys_maybe
0x080fbda8 4 s_uCOS2_Start_Task
0x080f8f54 13 s_uCOS2_Idle_Task
0x080f8f64 12 s_uCOS2_Tmr_Task
0x080f8f74 12 s_Call_Process
0x080f8f84 12 s_FMTx_Process
0x080f8f94 12 s_Beep_Process
0x080f8f84 14 s_TimeSlot_Inter
0x080f8fb4 12 s_State_Change
0x080f8fd4 14 s_DFU_in_HS_mode
0x080f8fe4 12 s_000000000010B
0x080f8ff4 12 s_000000000010C
0x080f9004 13 s_DFU_Interface
0x08095810 16 CalledForever
0x08098280 48 gfx_jmptbl
0x080f81b4 1 Wide_Strings
0x080f86a0 1 ASCII_Strings
0x20001704 1 used by: func_101b8_yet_another_menu menucall.Zone menu_draw_something
|__ func_11108 md380_menu_12670 func_10c08_sms_menu_maybe func_0c7e8 md380_menu_12fcc
|__ menugreen.Contacts.800fcbc DrawSomethingThenBitBangIO menu_func_0fe74 menu_func_0ff62
|__ menucall.Contacts paint_a_lot func_27270 md380_menu_12b78 kb_enter_alpha
|__ menucall.Radio_Inf ev5_19 md380_menu_13082 md380_menu_12e70 menucall.GPS_BeiDo
|__ md380_menu_12d08 menu_using_sms_and_edit_buf_1be2c Create_Menu_Entry_RX_QRG_1 func_10606
|__ update_scr_19 func_213d0 md380_create_main_menu_entry func_16b34 func_170c4
|__ md380_menu_12ada often_called_something_keycode_menu func_215fc update_scr_30
|__ func_215c2 update_scr_32 Create_Menu_Entry_RX_QRG_3 display_idle_screen
|__ func_16fe4 menucall.Call_Log Create_Menu_Entry_RadioSettings func_21646
|__ menucall.Utilities display_unprog_screen md380_menu_12a08 md380_menu_12964_uses_event5_buffer
|__ func_1091c menu.dispatcher.unkn1 menucall.Scan menucall.Program_R func_10844
|__ menucall.Radio_Set md380_f_4520 md380_menu_12c4c md380_menu_zone func_1bf56
|__ dmr_handle_data scr_mode_stable func_1072c md380_menu_entry_programradio
|__ md380_menu_13114 md380_menu_12ddc func_16ca4 Create_Menu_Entry_RX_QRG_shown
|__ menucall.Messages md380_menu_12f30 Volume_Menu menu_6_1_1 F_4154
|__ update_scr_29 handle_keycode_F_4171 Create_Menu_Utilities md380_menu_apply_new_zone_maybe
|__ update_scr_20 menu_cursor_related_1bb9c
0x200049e4 1 address_of_gfx_jumptbl used by: func_4850a func_4851e func_553dc_gfx func_484f0
|__ gfx_before_lcd_init func_484a8 func_484d6 func_48654
0x200049fc 1 mn_editbuffer_poi used by: menu_using_sms_and_edit_buf_1be2c kb_enter_alpha func_27270
|__ func_16b34 menu_cursor_related_1bb9c Create_Menu_Entry_RX_QRG_2 func_16ca4
|__ md380_menu_12900 paint_a_lot often_called_something_keycode_menu func_16c00
|__ Create_Menu_Entry_RX_QRG_1 func_1f0f0_menu_something md380_f_4137
0x20004a14 1 md380_dfu_target_adr used by: func_8ff00 usb_upld_handle usb_dnld_handle
0x20004a48 4 baseaddr_SPI3_for_SPI3_Handler used by: SPI3_Handler func_49058 func_49810 func_4915c
0x20004abc 4 bitmask_GPIOA_for_SPI3_Handler used by: SPI3_Handler func_49060 func_4915c
0x20004a54 4 baseaddr_GPIOA_for_SPI3_Handler used by: SPI3_Handler func_4915c func_49074
0x20004acc 1 used by: keypress_time_related_1 func_27270 func_16b34 func_0dcec
|__ md380_menu_12670 func_0db88 md380_menu_12fcc menugreen.Contacts.800fcbc
|__ more_setting_keypress_lower_button md380_f_4520 md380_menu_12b78 kb_enter_alpha
|__ md380_menu_13082 md380_menu_12e70 menu_func_0fde8 func_10606 menu_func_0f4ac
|__ disp_something menu_6_1_1 md380_menu_12ada Create_Menu_Entry_RX_QRG_shown
|__ func_1bf56 func_35be4 func_16fe4 something_setting_keypress_lower_button
|__ func_109ca func_25790_menu_create_something menu_func_1aa60 func_3955c menucall.Utilities
|__ md380_menu_12a08 md380_menu_12964_uses_event5_buffer paint_a_lot func_10798
|__ func_213d0 something_using_menu_depth menu_using_sms_and_edit_buf_1be2c func_1072c
|__ menu.dispatch.greenkey md380_menu_entry_programradio func_4f4d0 md380_menu_12ddc
|__ func_16ca4 md380_menu_12f30 menu_F_4144 Volume_Menu F_4154 func_11108
|__ func_10a5e
0x20004cba 1 currently_selected_menu_entry
0x20013594 1 ambe_mystery used by: func_340ec ambe_4aa78 func_49810 Start_2_more_tasks__init_vocoder_tasks__Q
|__ ambe_4a9f8 func_4915c
0x20013f28 1 ambe_outbuffer0
0x20013fc8 1 ambe_outbuffer1
0x2001410e 1 ambe_inbuffer used by: ambe_4aa78
0x20014ab4 512 Stack_for_Start_Task used by: Create_Start_Task
0x20018490 1 msg_buff_complete used by: msg_handle_type_11 msg_handle_type_21 msg_handle_type_other
0x20018e70 256 Stack_for_Idle_Task used by: Create_uCOS_Idle_Task
0x2001ae74 1 md380_packet used by: func_8ff00 func_8f21a usb_dfu_read usb_do_setup
|__ usb_dnld_handle
0x2001b246 1 md380_menu_somthing
0x2001b274 1 used by: func_27270 func_16b34 md380_menu_12670 Create_Menu_Entry_RX_QRG_3
|__ md380_menu_12fcc Volume_Menu menu_func_0ff62 menu_func_10120 md380_menu_12b78
|__ menucall.Radio_Inf md380_menu_13114 menucall.GPS_BeiDo md380_menu_12e70
|__ Create_Menu_Entry_RX_QRG_1 md380_menu_12d08 md380_create_main_menu_entry md380_menu_12ada
|__ Create_Menu_Entry_RX_QRG_shown md380_menu_apply_new_zone_maybe md380_menu_13082
|__ func_25790_menu_create_something menu_6_15_1 menucall.Utilities md380_menu_12a08
|__ md380_menu_12964_uses_event5_buffer func_1091c func_0dda8 menucall.Program_R
|__ func_10844 menucall.Radio_Set md380_create_menu_entry md380_menu_12c4c md380_menu_zone
|__ menu_using_sms_and_edit_buf_1be2c func_1072c menu.dispatch.greenkey md380_menu_entry_programradio
|__ md380_menu_12ddc func_16ca4 func_25e8e md380_menu_12f30 func_213d0
|__ menu_6_1_1 func_1bf56 Create_Menu_Utilities func_11108 menu_cursor_related_1bb9c
0x2001cb54 1 msg_sms_hdr_prep used by: func_22f24_spiflash_wr_sms_hdr CalledFromLongDispatcher scr_mode_stable
|__ func_22f04_spiflash_rd_sms_hdr func_22fc8_spiflash_rd_sms_bdy md380_menu_12ddc
|__ func_16ca4 func_10c08_sms_menu_maybe func_229b6 md380_menu_12f30 msg_flash_write
|__ func_10ae0 func_170c4 md380_menu_12c4c menu_using_sms_and_edit_buf_1be2c
|__ func_11108 menu_cursor_related_1bb9c
0x2001cb58 12 selected_contact_name_wstring used by: F_4315 scr_mode_stable func_25790_menu_create_something
|__ md380_menu_12c4c func_22f50_spiflash_rd_13 menu_func_0fde8 func_115ec md380_menu_12670
|__ func_0c7e8 update_scr_19 func_213d0 func_16ca4 func_23018_spiflash_rd_15
|__ func_170c4 md380_menu_12ada update_scr_36 update_scr_16 update_scr_20
|__ md380_menu_12ddc
0x2001cb9a 1 used by: func_22f24_spiflash_wr_sms_hdr menu_using_sms_and_edit_buf_1be2c
|__ func_16fe4 func_22f50_spiflash_rd_13 md380_menu_entry_programradio func_16b34
|__ Create_Menu_Entry_RX_QRG_4 Create_Menu_Entry_RX_QRG_2 md380_menu_12670 func_16ca4
|__ Create_Menu_Entry_RX_QRG_1 md380_menu_numerical_input scr_mode_stable func_16c00
|__ func_22f04_spiflash_rd_sms_hdr func_4c64e func_27270
0x2001ccbc 1 msg_sms_bdy_prep
0x2001cddc 32 zone_name used by: some_init display_idle_screen func_475b8 display_unprog_screen
|__ rd_zone_name.loop md380_menu_zone spiflash_rd_something_zone_depending
0x2001cefc 1 msg_sms_bdy used by: msg_flash_write func_23018_spiflash_rd_15 func_22fc8_spiflash_rd_sms_bdy
|__ msg_process_sms2
0x2001d504 1 md380_usbstring used by: func_90258 usb_serialnumber
0x2001d5cc 1 used by: func_101b8_yet_another_menu func_27270 func_16b34
|__ md380_menu_12fcc menugreen.Contacts.800fcbc menu_func_0fe74 menu_func_0ff62
|__ md380_f_4520 menucall.RX_GPSInf menucall.Radio_Inf func_25790_menu_create_something
|__ md380_menu_13114 menucall.GPS_BeiDo Create_Menu_Entry_RX_QRG_2 md380_menu_12d08
|__ Create_Menu_Entry_RX_QRG_1 func_10606 md380_menu_12e70 func_213d0 md380_create_main_menu_entry
|__ Create_Menu_Entry_RadioSettings func_170c4 md380_menu_12c4c Create_Menu_Entry_RX_QRG_shown
|__ md380_menu_apply_new_zone_maybe md380_menu_13082 menu_func_1aa60 menu_func_0f6a8
|__ menu_using_sms_and_edit_buf_1be2c menu.dispatcher.unkn1 menucall.Program_R menucall.Radio_Set
|__ md380_menu_zone Create_Menu_Entry_LEDIndicator menu.dispatch.greenkey md380_menu_entry_programradio
|__ md380_menu_12ddc func_16ca4 func_25e8e md380_menu_12f30 Volume_Menu
|__ menu_6_1_1 func_1bf56 Create_Menu_Utilities func_11108
0x2001da1c 1 gfx_info used by: gfx_drawtext_sub9 func_486be gfx_drawchar_pos gfx_32ca4
|__ gfx_bmp_sub1 gfx_set_xpos gfx_set_u8_in_GfxInfoPlus0x16 gfx_331bc gfx_set_ypos
|__ gfx_33368 func_4c278 gfx_clear3 gfx_1d784 func_4845c func_3b618
|__ gfx_drawtext_sub8 gfx_linefill2 gfx_get_current_font_height func_48934 menu_draw_sub_3ac46
|__ func_52672 gfx_3b7c4 gfx__GetFontSizeY gfx_1c9d4 gfx_linefill gfx_setcolor_sub1
|__ gfx_33428 gfx_get_xpos gfx_drawtext_sub7 drawtext8.loop_for_all_chars menu_draw_sub_3abce
|__ gfx_drawchar_sub3 gfx_select_font gfx_font_count_something gfx_drawchar_sub4
|__ gfx_3316c font_method_called_via_hdr_offset0 func_488dc gfx_32f50 func_48832
|__ gfx_1d598 gfx_1d296 gfx_33374 gfx_drawchar func_54290 gfx_set_i16_in_GfxInfoPlus0x2C
|__ func_4c220 gfx_get_ypos func_5266c gfx_drawtext8 gfx_set_fg_color2
|__ func_553dc_gfx func_48908 gfx_get_font_height gfx_call_font_method_via_hdr_offset4
|__ gfx_drawbmp gfx_1d6e0 menu_draw_sub_3abe4 gfx_drawtext7 func_4bc9c
|__ func_44846 gfx_set_bg_color2 func_3f6c8 gfx_newline font_method_called_via_hdr_offset4
|__ func_55408_gfx func_48654 gfx_clipped_blockfill_maybe gfx_32eb6 gfx_3add4
|__ func_48990 gfx_init_lcd_and_others gfx_bmp_sub2
0x2001da20 1 gfx_info.off4 used by: func_553dc_gfx func_486be gfx_bmp_sub1 gfx_before_lcd_init
|__ gfx_32ca4 gfx_3316c
0x2001dadc 1 md380_radio_config used by: task_468f8 dmr_CSBK_handler func_0db88 Start
|__ draw_statusline_more bp_sempost audio_for_me_or_not event_36 md380_f_4520
|__ menu_func_1aa60 func_3da68 SomethingWithChannelsRadioConfigAndBeeps dmr_call_end
|__ c5000_wr_60_1 disp_something update_scr_35 msg_handle_type_11 update_scr_17
|__ something_with_radio_config_and_channel_info msg_handle_type_other LED_Process
|__ update_scr_29 ev5_rest c5000_iffreq_init func_2e918 Create_Menu_Entry_LEDIndicator
|__ scr_mode_stable re_create_event_8 SomethingWithLongpressSettingRadioStatus1 func_2de84
|__ update_scr_16 msg_handle_type_21 func_3d57a update_scr_20
0x2001db2c 1 msg_buffer used by: func_22e32_spiflash_rd_9
0x2001de78 1 struct_channel_info2 used by: task_468f8 func_4fe14_monster_accessing_C5000 func_31e8e
|__ SomethingWithTIM7_ChannelInfo2 c5000_some3 func_0db88 func_4cf80 dmr_CSBK_handler
|__ biglist_pollsubsys_maybe md380_f_4520 load_contact_call ev5_19 func_3d2f0
|__ msg_process_sms Create_Menu_Entry_RX_QRG_4 ev5_17 SomethingWithChannelsRadioConfigAndBeeps
|__ func_31fe2 func_47ab6 c5000_wr_60_3 c5000_wr_60_5 SomethingWithGPIOC_and_Backlight_Timer
|__ update_scr_17 something_with_radio_config_and_channel_info Beep_Process msg_handle_type_other
|__ some_init func_51b8c func_475b8 func_2f302 dmr_call_start SomethingWithChannelInfo2
|__ func_4796a ev5_rest c5000_iffreq_init func_2f118 scr_mode_stable
|__ func_2e7bc draw_statusline md380_menu_entry_programradio SomethingWithLongpressSettingRadioStatus1
|__ SomethingWithRadioStatus_4d1b8 TimerIRQ_Sub9 func_479e6_channel_related msg_handle_type_21
|__ menu_6_1_1 call_F_4225_1 func_2ea0c_beeps_and_uses_struct_channel_info2 func_3d53e
0x2001deb8 1 current_channel_info used by: write_current_channel_info_to_spi display_idle_screen
|__ md380_create_menu_entry draw_statusline_more md380_f_4520 ev5_18 Create_Menu_Entry_RX_QRG_4
|__ ev5_17 md380_menu_channel_related_13314 md380_create_main_menu_entry md380_menu_curr_chn_related_133b0
|__ Create_Menu_Entry_RadioSettings write_current_channel_info_to_spi_long Beep_Process
|__ func_22b42 some_init channel_info_read_spi_init func_2f302 ev5_1
|__ md380_menu_zone func_23126_spiflash_rd_curr_chnl func_2dd36_beeps_and_sets_kb_keycode
0x2001ded8 1 ConfigData used by: func_0e6e8 something_with_radio_config_and_channel_info menu_RX_QRG_to_str
0x2001def8 1 used by: menu_draw_something aes_startup_check md380_f_4520
0x2001defa 1 top_side_button_pressed_function
0x2001defb 1 top_side_button_held_function
0x2001defc 1 bottom_side_button_pressed_function
0x2001defd 1 bottom_side_button_held_function
0x2001e0d0 1 print_buffer used by: paint_a_lot draw_channel_label func_1072c func_18aa4_GetDateAndConv2String
|__ func_10606 func_16ad4 func_10674 func_170c4 handle_keycode_F_4171
|__ func_16a96_copy_version_nr_to_print_buffer func_1f0f0_menu_something func_18a40
0x2001e1ac 1 contact used by: func_4fe14_monster_accessing_C5000 re_create_event_8 ev5_19
|__ ev5_17 dmr_call_start is_this_the_check_for_group_rx_list ev5_rest c5000_wr_60_5
|__ audio_for_me_or_not event_36
0x2001e1d0 1 msg_sms_hdr used by: load_contact ev5_17 update_scr_22 func_3dbf0 ev5_rest
0x2001e1f4 1 channel_name used by: draw_zone_channel draw_channel_label
0x2001e218 1 zone_data_64byte used by: rd_zone_name.loop draw_zone_label draw_channel_label
|__ spiflash_rd_something_zone_depending spiflash_rd_zone_name_2__64byte
0x2001e3c0 12 used by: func_26f46 func_27ef0 func_27e3e
0x2001e3fc 1 toplinetext
0x2001e410 1 botlinetext used by: create_State_Change
0x2001e51c 1 adc1_6channel_dma_buffer used by: func_46050 func_45398 SomethingWithChannelsRadioConfigAndBeeps
|__ func_45156 adc1_adc2_and_dma2s3_init
0x2001e534 1 used by: draw_statusline_more scr_mode_stable func_2f118
0x2001e574 1 md380_program_radio_unprohibited used by: paint_a_lot menucall.Scan handle_keycode_F_4171
|__ menucall.Utilities menucall.Contacts menucall.Messages menugreen.Contacts.800fcbc
|__ menucall.Zone Create_Menu_Entry_RadioSettings menucall.Radio_Set menucall.Call_Log
|__ md380_create_main_menu_entry
0x2001e57c 4 zone_number_in_byte_3 used by: spiflash_read_3ff30_288 menucall.RX_GPSInf md380_menu_13114
|__ menu_draw_something func_2e860 func_475b8 spiflash_write_3ff30_288 md380_menu_apply_new_zone_maybe
|__ Create_Menu_Utilities update_scr_22 md380_menu_zone
0x2001e5d0 1 msg_timer_500 used by: WaitForInterruptInIdle Start func_321f8 DrawSomethingThenBitBangIO
|__ func_393dc md380_f_4520 func_2f118 func_3223e func_2e984_beeps_and_uses_msg_timer_500
|__ func_31fe2 func_31e68 func_322d2 update_scr_30 Beep_Process func_384d4
|__ some_init func_320fe func_3955c draw_botline_text func_383b8 func_31f1c
|__ func_32130 ev5_20 scr_mode_stable call_F_4225_1 func_3228e
0x2001e5dc 1 msg_dest_addr used by: CalledFromLongDispatcher scr_mode_stable func_3d2f0 event_36
|__ dmr_call_end dmr_call_start func_25e8e c5000_wr_60_5 dmr_CSBK_handler
|__ msg_process_sms2 SomethingWithGPIOC_and_Backlight_Timer update_scr_22
0x2001e5ec 1 base_for_longpress_struct used by: CallsReadChannelSwitch func_4f4d0 ev5_18 func_4f6de
|__ ev5_17 SomethingWithLongpressSettingRadioStatus1 ev5_12 md380_f_4102 store_keycode
|__ kb_handler md380_f_4520 Something_using_Channel_Number biglist_pollsubsys_maybe
|__ update_scr_32
0x2001e5f0 1 radio_status_1 used by: func_2f378 kb_handler F_858 func_2ea9e func_45d18
|__ menu_F_4144 DrawSomethingThenBitBangIO func_2de84 bp_sempost func_2f268
|__ func_2dd12 dmr_call_end md380_f_4520 CallsReadChannelSwitch kb_enter_alpha
|__ func_2daf8 bp_tone_on func_3da68 func_2e860 SomethingWithChannelsRadioConfigAndBeeps
|__ func_31f1c TIM6_DAC_IRQHandler menu_func_0f4ac func_31e68 func_322d2
|__ func_31fe2 func_4f6de func_2dd36_beeps_and_sets_kb_keycode md380_f_4137
|__ get_keycode_from_table_2 func_2ea0c_beeps_and_uses_struct_channel_info2 menu_func_0f6a8
|__ some_init EXTI2_IRQHandler func_0db88 func_320fe func_2f302 draw_botline_text
|__ keypress_max_time_reached TimerIRQ_Sub1 menu.dispatcher.unkn1 func_3223e
|__ TIM4_IRQHandler store_keycode SomethingWithRadioStatus1 bp_tone_off func_2e984_beeps_and_uses_msg_timer_500
|__ func_2e918 Something2_TIM7_RadioStatus1 SomethingWithGPIOC_TIM7_Status func_32130
|__ SomethingWithTIM7_RadioStatus1 scr_mode_stable func_4f4d0 SomethingWithLongpressSettingRadioStatus1
|__ bp_sempost2 TIM7_DAC_IRQHandler SomethingWithRadioStatus_4d1b8 func_321f8
|__ func_384d4 LongSwitchWithRadioStatus1 update_scr_27 func_3228e TimerIRQ_Sub4
0x2001e5f3 1 keypressed_duringmenu
0x2001e5f8 1 kb_keypressed used by: kb_handler func_4f4d0 keypress_max_time_reached store_keycode
|__ something_polling_kb_keypressed Beep_Process
0x2001e5f9 1 keylocked_flags
0x2001e600 1 q_struct_1 used by: func_4fe14_monster_accessing_C5000 func_31e8e func_321f8
|__ DrawSomethingThenBitBangIO dmr_call_end func_3d2f0 ev5_15 ev5_17
|__ func_45d18 func_31fe2 update_scr_19 func_460a8 SomethingWithGPIOC_and_Backlight_Timer
|__ c5000_wr_60_5 update_scr_17 dmr_before_squelch CalledFromLongDispatcher
|__ func_320fe TIM4_IRQHandler func_44b68 func_32130 draw_zone_channel
|__ scr_mode_stable SomethingWithLongpressSettingRadioStatus1 OTG_FS_IRQHandler SomethingWithRadioStatus_4d1b8
|__ func_44cb4 func_384d4 func_3da68 F_4284 func_3228e
0x2001e604 1 q_status_4 used by: func_2f378 func_32536 ev5_4_8 dmr_CSBK_handler SomethingWithRadioStatus_4d1b8
|__ event_36 md380_f_4520 ev5_18 ev5_12 update_scr_19 update_scr_18
|__ c5000_wr_60_4 dmr_call_end update_scr_17 update_scr_16 update_scr_33
|__ update_scr_32 menu_func_0f6a8 some_init func_2f302 dmr_call_start
|__ menu.dispatcher.unkn1 ev5_rest ev5_3 ev5_1 func_32130 ev5_20
|__ scr_mode_stable update_scr_31 update_scr_30 Beep_Process update_scr_28
|__ update_scr_29 func_2ea0c_beeps_and_uses_struct_channel_info2 update_scr_27 update_scr_20
|__ update_scr_21
0x2001e640 274 idle_control_struct used by: task_468f8 WaitForInterruptInIdle TIM3_IRQHandler
|__ create_many_semas TIM6_DAC_IRQHandler RTC_WKUP_IRQHandler c5000_wr_60_4
|__ TimerIRQ_Sub1 func_3d53e
0x2001e648 1 sema_1e648 used by: bp_sempost create_many_semas func_3da68 bp_sempost2
|__ func_31fe2 func_3dbf0 func_3d5a0
0x2001e64c 1 sema_1e64c used by: EXTI0_IRQHandler create_many_semas
0x2001e650 1 sema1_poi used by: CalledFromLongDispatcher create_many_semas msg_process_sms
|__ func_3da68 func_31fe2 func_3dc90 dmr_call_end dmr_before_squelch
0x2001e658 1 event5_mbox_poi used by: create_many_semas func_3dc90 ev5_4_8 ev5_18
|__ ev5_19 func_2e7bc md380_menu_12f30 msg_process_sms ev5_15 ev5_16
|__ ev5_17 ev5_12 md380_menu_12ada CalledFromLongDispatcher SomeLongDispatcher
|__ md380_menu_12964_uses_event5_buffer ev5_rest ev5_3 ev5_1 md380_menu_12c4c
|__ ev5_21 ev5_20 ev5_22 md380_menu_12ddc ev5_14 func_3da68 func_2dd36_beeps_and_sets_kb_keycode
|__ update_scr_22 func_11108 func_3d53e
0x2001e65c 1 event1_mbox_poi_radio used by: F_858 is_this_the_check_for_group_rx_list create_many_semas
|__ some_init normal_audio_frame re_create_event_8 dmr_call_end dmr_call_start
|__ func_3f8f2_init_PLL_and_C5000 func_43490_wr_C5000 event_36 promisc_audio_frame
0x2001e660 1 event4_mbox_poi used by: CalledFromLongDispatcher func_2daf8 create_many_semas
|__ some_init func_2e860 phone_ringing dmr_CSBK_handler usb_dnld_handle
0x2001e664 1 event3_mbox_poi used by: func_32130 create_many_semas func_3223e func_31fe2
|__ c5000_wr_60_1 c5000_iffreq_init c5000_wr_60_4
0x2001e670 1 sema2_poi used by: some_func_post some_func_pend func_47802 create_many_semas
0x2001e67c 1 event2_mbox_poi_beep used by: task_468f8 SomethingWithChannelsRadioConfigAndBeeps Start
|__ event_36 md380_f_4520 ev5_19 func_2e860 ev5_17 func_2e984_beeps_and_uses_msg_timer_500
|__ dmr_call_end func_322d2 usb_dnld_handle CalledFromLongDispatcher func_25790_menu_create_something
|__ some_init func_2f302 display_unprog_screen ev5_rest func_2e918 ev5_20
|__ dmr_handle_data func_213d0 call_F_4225_1 func_2ea0c_beeps_and_uses_struct_channel_info2
|__ func_2dd36_beeps_and_sets_kb_keycode update_scr_21
0x2001e6c0 1 bp_freq used by: bp_tone_off bp_tone_on Timer8ToneGenerator
0x2001e6c4 1 bp_freq2 used by: bp_glisando bp_set_freq F_293 Timer8ToneGenerator
0x2001e700 1 used by: func_101b8_yet_another_menu func_27270 menu_draw_something
|__ func_0c7e8 menu_F_4144 func_10ae0 menu_func_0ff62 gfx_1dd3c md380_f_4520
|__ menu_func_1aa60 kb_enter_alpha ev5_19 update_scr_19 md380_menu_zone
|__ menu_using_sms_and_edit_buf_1be2c md380_menu_apply_new_zone_maybe func_16fe4 menucall.Utilities
|__ paint_a_lot md380_create_main_menu_entry dmr_handle_data scr_mode_stable
|__ menu.dispatch.greenkey func_213d0 func_1bf56 handle_keycode_F_4171 update_scr_20
|__ menu_cursor_related_1bb9c
0x2001e710 4 OSIdleTaskCtr used by: ClearSomeVariables OS_IdleTask
0x2001e754 1 md380_blockadr used by: usb_upld_handle func_8ff00 func_8f21a func_8f196
|__ func_90184 usb_dnld_handle
0x2001e758 1 md380_packetlen used by: usb_upld_handle func_8ff00 func_8f21a func_8f196
|__ func_90184 usb_dnld_handle
0x2001e7ac 1 keypress_time_some_button used by: keypress_time_related_1 func_4f4d0
0x2001e7b0 1 kb_top_side_key_press_time used by: func_4f68a_polls_EXT_PTT something_setting_keypress_lower_button
|__ more_setting_keypress_lower_button
0x2001e7b2 1 kb_bot_side_key_press_time
0x2001e7b8 1 kb_side_key_max_time used by: keypress_time_related_1 func_4f4d0 kb_handler store_keycode
0x2001e7ba 1 kb_row_col_pressed used by: kb_handler keypress_max_time_reached kb_handler_sub1
0x2001e7bc 1 kb_row_col_pressed_last used by: kb_handler
0x2001e7be 1 kb_key_press_time used by: kb_handler store_keycode
0x2001e7c0 1 kbscan_matrix_temp used by: kb_handler_sub1
0x2001e7f8 1 backlight_timer used by: scr_mode_stable SomethingWithGPIOC_and_Backlight_Timer update_scr_18
|__ disp_something update_scr_29 update_scr_35 update_scr_27 update_scr_17
|__ update_scr_16 update_scr_20 md380_f_4520
0x2001e81c 1 not_the_volume_knob used by: return_to_mode_1_from10 menu_func_0f6a8 display_idle_screen
|__ display_unprog_screen func_0db88 func_0c7e8 update_scr_18 menu_6_1_1
|__ F_4315 md380_f_4520
0x2001e850 1 selected_channel used by: func_383b8 func_3960c ev5_19 some_init func_475b8
|__ func_3955c func_383f8 func_3951c func_382ca func_393dc func_384d4
|__ call_F_4225_1
0x2001e87f 1 menu_flag_something
0x2001e889 1 kb_keydown_debounce used by: kb_handler keypress_max_time_reached store_keycode
0x2001e88a 1 kb_poll_temp used by: kb_handler_sub1
0x2001e890 1 kb_keycode used by: ev5_19 func_16b34 Create_Menu_Entry_RX_QRG_1 store_keycode
|__ func_2dd36_beeps_and_sets_kb_keycode md380_f_4520 md380_f_4137
0x2001e891 1 keycode_old used by: kb_enter_alpha md380_f_4137
0x2001e892 1 gui_opmode3 used by: dmr_CSBK_handler SomethingWithGuiOpmode2 draw_statusline_more
|__ func_2dd12 md380_f_4520 menu_dispatcher func_2e7bc ev5_15 func_2e860
|__ ev5_17 func_2e984_beeps_and_uses_msg_timer_500 func_4cf80 func_47ab6 menu_func_0f4ac
|__ c5000_wr_60_5 Create_Menu_Entry_RadioSettings func_322d2 Create_Start_Task
|__ usb_dnld_handle md380_f_4137 func_2e73c_uses_menu_cursor_pos_1 usb_upld_handle
|__ call_F_4225_1 menu_func_0f6a8 some_init LED_Process func_475b8 func_2f302
|__ display_unprog_screen dmr_call_start SomethingWithChannelInfo2 menu.dispatcher.unkn1
|__ func_383b8 func_3dbf0 func_2ea9e func_2e918 scr_mode_stable adc1_adc2_and_dma2s3_init
|__ menu.dispatch.greenkey func_383f8 menu_F_4144 F_4154 func_384d4
|__ func_3da68 func_2ea0c_beeps_and_uses_struct_channel_info2 func_2dd36_beeps_and_sets_kb_keycode
|__ update_scr_22
0x2001e895 1 msg_sms_flags_shifted used by: dmr_handle_data CallsReadChannelSwitch ev5_19
|__ some_init func_3da68 CalledFromLongDispatcher dmr_call_end draw_botline_text
|__ c5000_wr_60_5 c5000_wr_60_4 dmr_CSBK_handler msg_process_sms2 dmr_call_start
|__ event_36 F_4315 func_3d53e
0x2001e896 1 tim_control_byte used by: TimerIRQ_Sub1 TIM6_DAC_IRQHandler TimerIRQ_Sub4
0x2001e898 1 simplex_or_repeater_flagword used by: func_3f8f2_init_PLL_and_C5000 CalledFromLongDispatcher
|__ func_3d2f0 channel_info_read_spi_init func_4dfbe func_4df68 c5000_wr_60_5
|__ msg_process_sms2 func_2f268 update_scr_17
0x2001e8a1 1 re_last_radio_event used by: func_3d2f0
0x2001e8a7 1 bp_2001e8a7 used by: Beep_Process
0x2001e8a8 1 beep_code_send used by: task_468f8 func_2ea9e func_2e984_beeps_and_uses_msg_timer_500
|__ Start md380_f_4520 kb_enter_alpha func_3d2f0 func_2e860 SomethingWithChannelsRadioConfigAndBeeps
|__ dmr_call_end update_scr_19 update_scr_18 func_322d2 usb_dnld_handle
|__ update_scr_17 update_scr_16 update_scr_33 update_scr_32 CalledFromLongDispatcher
|__ call_F_4225_1 func_25790_menu_create_something some_init func_2f302 display_unprog_screen
|__ func_2dd36_beeps_and_sets_kb_keycode func_2e918 dmr_handle_data scr_mode_stable
|__ func_2de84 task_rtc_timer func_25e8e func_213d0 update_scr_28 update_scr_29
|__ func_2ea0c_beeps_and_uses_struct_channel_info2 update_scr_27 md380_f_4137 update_scr_20
|__ update_scr_21
0x2001e8a9 1 event5_buffer used by: md380_menu_12c4c func_2e7bc func_3d2f0 update_scr_22
|__ ev5_17 md380_menu_12ddc md380_menu_12964_uses_event5_buffer md380_menu_12f30
|__ update_scr_19 ev5_rest func_3d5a0 update_scr_35 func_2dd36_beeps_and_sets_kb_keycode
|__ md380_menu_12ada update_scr_31 update_scr_30 func_11108 update_scr_17
0x2001e8aa 1 event1_buffer used by: c5000_wr_60_1 func_3fda8 func_3d2f0 some_init
|__ display_idle_screen display_unprog_screen func_3f8f2_init_PLL_and_C5000 func_43490_wr_C5000
|__ c5000_iffreq_init dmr_call_end dmr_CSBK_handler event_36
0x2001e8af 1 some_radio_state_prev
0x2001e8b0 1 some_radio_state
0x2001e8b8 1 some_state_var used by: draw_channel_label func_3960c display_idle_screen LED_Process
|__ func_3955c func_383f8 func_3951c func_393dc func_384d4 something_with_radio_config_and_channel_info
0x2001e8c1 1 channel_num used by: some_init display_idle_screen CallsReadChannelSwitch Something_using_Channel_Number
0x2001e8f3 1 msg_0x2001e8f3 used by: ev5_17 dispatch_event5_mbox
0x2001e8f4 1 msg_last_event used by: ev5_rest msg_process_sms2
0x2001e8f5 1 msg_status_flag1 used by: ev5_21 ev5_20 CallsReadChannelSwitch ev5_22
|__ ev5_18 ev5_19 menu.dispatch.greenkey ev5_14 ev5_15 ev5_17
|__ dmr_handle_data ev5_12 SomeLongDispatcher menu.dispatcher.unkn1 ev5_rest
|__ ev5_4_8 func_384d4 msg_process_sms2 ev5_3 ev5_1 func_2daf8
0x2001e903 1 used by: Create_Menu_Entry_LEDIndicator
0x2001e914 1 used by: md380_menu_entry_programradio menu_cursor_related_1bb9c
0x2001e915 1 used by: func_101b8_yet_another_menu func_27270 func_16b34 func_0dcec
|__ func_0db88 Volume_Menu menu_func_0fe74 md380_f_4520 Create_Menu_Entry_RX_QRG_3
|__ menu_using_sms_and_edit_buf_1be2c func_25790_menu_create_something menu_func_0f6a8
|__ menucall.Utilities func_1091c menu.dispatcher.unkn1 menu_func_0fde8 md380_create_main_menu_entry
|__ Create_Menu_Entry_LEDIndicator md380_menu_entry_programradio F_786 func_0dda8
|__ func_213d0 menu_6_1_1 func_1bf56
0x2001e943 1 used by: kb_enter_alpha md380_menu_entry_programradio func_16b34
|__ Create_Menu_Entry_RX_QRG_2 md380_menu_12670 func_16ca4 Create_Menu_Entry_RX_QRG_1
|__ often_called_something_keycode_menu func_16c00 menu_cursor_related_1bb9c md380_f_4520
|__ md380_f_4137
0x2001e944 1 used by: paint_a_lot kb_enter_alpha md380_menu_entry_programradio
|__ func_16b34 Create_Menu_Entry_RX_QRG_2 func_16ca4 Create_Menu_Entry_RX_QRG_1
|__ func_25e8e func_2e73c_uses_menu_cursor_pos_1 F_4154 often_called_something_keycode_menu
|__ func_16c00 menu_cursor_related_1bb9c md380_f_4520 md380_f_4137
0x2001e945 1 used by: gfx_1d988 md380_f_4520 kb_enter_alpha md380_menu_entry_programradio
|__ func_16b34 Create_Menu_Entry_RX_QRG_2 func_16ca4 Create_Menu_Entry_RX_QRG_1
|__ func_25e8e paint_a_lot often_called_something_keycode_menu handle_keycode_F_4171
|__ func_16c00 menu_cursor_related_1bb9c func_1f0f0_menu_something md380_f_4137
0x2001e946 1 used by: func_27270 md380_menu_entry_programradio func_16b34
|__ F_786 Create_Menu_Entry_RX_QRG_2 func_16ca4 Create_Menu_Entry_RX_QRG_1 func_25e8e
|__ func_2c4e0 paint_a_lot handle_keycode_F_4171 func_16c00 often_called_something_keycode_menu
|__ menu_cursor_related_1bb9c
0x2001e947 1 used by: func_27270 md380_menu_entry_programradio func_16b34
|__ Create_Menu_Entry_RX_QRG_4 Create_Menu_Entry_RX_QRG_2 func_16ca4 Create_Menu_Entry_RX_QRG_1
|__ func_25e8e paint_a_lot func_26230 handle_keycode_F_4171 func_16c00
|__ often_called_something_keycode_menu gfx_1dd3c menu_cursor_related_1bb9c
0x2001e94a 1 used by: func_27270 md380_menu_entry_programradio Create_Menu_Entry_RX_QRG_3
|__ Create_Menu_Entry_RX_QRG_1 func_25e8e func_16ad4 menu_cursor_related_1bb9c
0x2001e94b 1 gui_opmode2 used by: CalledFromLongDispatcher kb_enter_alpha func_4520c SomethingWithGuiOpmode2
|__ menu_func_0f6a8 display_idle_screen f_4225 draw_botline_text paint_a_lot
|__ scr_mode_stable dmr_CSBK_handler func_451ce func_214ea usb_dnld_handle
|__ something_with_radio_config_and_channel_info md380_f_4520
0x2001e94c 1 gui_opmode1_prev used by: display_idle_screen
0x2001e94d 1 gui_opmode1 used by: CalledFromLongDispatcher F_858 SomethingWithGuiOpmode2 func_3da68
|__ display_unprog_screen SomethingWithRadioStatus_4d1b8 func_0c7e8 paint_a_lot
|__ DrawSomethingThenBitBangIO dmr_call_end func_384d4 display_idle_screen func_2dd36_beeps_and_sets_kb_keycode
|__ dmr_CSBK_handler event_36 dmr_before_squelch usb_dnld_handle
0x2001e962 1 md380_dfu_state used by: func_901ec usb_upld_handle func_8ff00 func_8f21a
|__ func_9010c func_90174 func_8f196 func_90184 usb_dnld_handle
0x2001e963 1 md380_thingy2 used by: func_59560 func_59848
0x2001e978 1 channel_number_too
0x40000000 1 io_TIM2
0x40000400 1 io_TIM3 used by: func_46f8e func_4cf06_uses_ADC2_and_TIM3 func_43a18 TIM3_IRQHandler
|__ func_4ce88
0x40000800 1 io_TIM4 used by: func_47ab6 func_43a18 TIM4_IRQHandler EXTI2_IRQHandler
0x40000c00 1 io_TIM5 used by: func_43a18 TIM5_IRQHandler
0x40001000 1 io_TIM6 used by: TimerIRQ_Sub1 func_47ab6 func_43a18 TimerIRQ_Sub4 TIM6_DAC_IRQHandler
0x40001400 1 io_TIM7 used by: SomethingWithTIM7_RadioStatus1 SomethingWithGPIOC_TIM7_Status TIM7_DAC_IRQHandler
|__ SomethingWithGPIOC_TIM8_TIM7 func_43a18 Something2_TIM7_RadioStatus1
0x40001800 1 io_TIM12
0x40001c00 1 io_TIM13
0x40002000 1 io_TIM14
0x40002800 1 io_RTC used by: func_48f92 func_48f32_uses_io_RTC
0x40002804 1 io_RTC_DR
0x40002808 1 io_RTC_CR
0x4000280c 1 io_RTC_ISR
0x40002810 1 io_RTC_PRER
0x40002814 1 io_RTC_WUTR
0x40002818 1 io_RTC_CALIBR
0x4000281c 1 io_RTC_ALARMAR
0x40002820 1 io_RTC_ALARMBR
0x40002824 1 io_RTC_WPR
0x40002840 1 io_RTC_TAFCR
0x40002850 1 io_RTC_BKP0R
0x40003000 1 io_IWDG used by: func_4fddc FeedTheWatchdog StartTheWatchdog
0x40003004 1 io_IWDG_PR
0x40003008 1 io_IWDG_RLR
0x40003008 1 io_IWDG_SR
0x40003400 1 io_I2S2ext
0x40003800 1 io_SPI2 used by: func_4e82c_uses_SPI2_3_DMA_and_I2C
0x40003804 1 io_SPI2_CR2
0x40003808 1 io_SPI2_SR
0x4000380c 1 io_SPI2_DR
0x40003810 1 io_SPI2_CRCPR
0x40003814 1 io_SPI2_RXRCR
0x40003818 1 io_SPI2_TXRCR
0x4000381c 1 io_SPI2_I2SCFGR
0x40003820 1 io_SPI2_I2SPR
0x40003c00 1 io_SPI3 used by: func_4e82c_uses_SPI2_3_DMA_and_I2C
0x40003c04 1 io_SPI3_CR2
0x40003c08 1 io_SPI3_SR
0x40003c0c 1 io_SPI3_DR
0x40003c10 1 io_SPI3_CRCPR
0x40003c14 1 io_SPI3_RXRCR
0x40003c18 1 io_SPI3_TXRCR
0x40003c1c 1 io_SPI3_I2SCFGR
0x40003c20 1 io_SPI3_I2SPR
0x40004000 1 io_I2S3ext
0x40004004 1 io_I2S3_CR2
0x40004008 1 io_I2S3_SR
0x4000400c 1 io_I2S3_DR
0x40004010 1 io_I2S3_CRCPR
0x40004014 1 io_I2S3_RXRCR
0x40004018 1 io_I2S3_TXRCR
0x4000401c 1 io_I2S3_I2SCFGR
0x40004020 1 io_I2S3_I2SPR
0x40004800 1 io_USART3
0x40005400 1 io_I2C1 used by: func_4e82c_uses_SPI2_3_DMA_and_I2C
0x40007000 1 io_PWR
0x40007004 1 io_PWR_CSR
0x40007400 1 io_DAC used by: SomethingElseWritingDAC TimerIRQ_Sub7_writes_DAC func_52284 func_522c8
0x40007404 1 io_DAC_SWTRIG
0x40007408 1 io_DAC_DHR12R1
0x4000740c 1 io_DAC_DHR12L1
0x40007410 1 io_DAC_DHR8R1
0x4000741c 1 io_DAC_DHR8R2
0x40007418 1 io_DAC_DHR12L2
0x40007420 1 io_DAC_DHR12RD
0x40007424 1 io_DAC_DHR12LD
0x40007428 1 io_DAC_DHR8RD
0x4000742c 1 io_DAC_DOR1
0x40007430 1 io_DAC_DOR2
0x40007434 1 io_DAC_SR
0x4000f88d 1 io_0x4000f88d
0x40010000 1 io_TIM1
0x40010400 1 io_TIM8 used by: TIM_43ae4 func_43b62 SomethingWithGPIOC_TIM8_TIM7 func_47312
|__ SomethingElseWithTIM1_TIM8 TimerIRQ_Sub9 SomethingTestingTIM1_TIM8 func_43a18
|__ ev5_rest TIM8_UP_TIM13_IRQHandler SomethingWithRadioStatus1 Timer8ToneGenerator
0x40011000 1 io_USART1
0x40011400 1 io_USART6
0x40012000 1 io_ADC1 used by: Start adc1_adc2_and_dma2s3_init
0x4001204c 1 io_ADC1_DATA
0x40012100 1 io_ADC2 used by: func_4cf06_uses_ADC2_and_TIM3 func_4ce88 func_4cf80
0x4001214c 1 io_ADC2_DATA
0x40012200 1 io_ADC3 used by: func_47312 adc3_init
0x40012300 1 io_ADC_COMMON_SR
0x40012304 1 io_ADC_COMMON_CR
0x40012308 1 io_ADC_COMMON_DR
0x40013000 1 io_SPI1 used by: md380_spiflash_enable md380_spiflash_disable
0x40013800 1 io_SYSCFG
0x40013804 1 io_SYSCFG_PMC
0x40013808 1 io_SYSCFG_EXTICR1
0x4001380c 1 io_SYSCFG_EXTICR2
0x40013810 1 io_SYSCFG_EXTICR3
0x40013814 1 io_SYSCFG_EXTICR4
0x40013820 1 io_SYSCFG_CMPCR
0x40013c00 1 io_EXTI used by: CalledFromPinChangeIRQ func_51da8_uses_EXTI_RTSR
0x40013c04 1 io_EXTI_EMR
0x40013c08 1 io_EXTI_RTSR
0x40013c0c 1 io_EXTI_FTSR
0x40013c10 1 io_EXTI_SWIER
0x40013c14 1 io_EXTI_PR
0x40014000 1 io_TIM9
0x40014400 1 io_TIM10
0x40014800 1 io_TIM11
0x40020000 1 io_GPIOA used by: func_4fe14_monster_accessing_C5000 func_591bc func_31e8e func_474a0_heavy_bitbanging
|__ kbscan_cfg_K1K2K3_as_inputs_with_pull_up kb_handler_sub1 kb_scan_matrix_4 draw_botline_text
|__ DrawSomethingThenBitBangIO c5000_wr_60_5 func_4e82c_uses_SPI2_3_DMA_and_I2C
0x40020400 1 io_GPIOB used by: func_31e8e func_474a0_heavy_bitbanging Read_Channel_Switch_maybe
|__ func_31fe2 c5000_wr_60_3 c5000_wr_60_4 func_4e82c_uses_SPI2_3_DMA_and_I2C
0x40020800 1 io_GPIOC used by: func_31e8e func_474a0_heavy_bitbanging SomethingWithGPIOC_TIM8_TIM7
|__ md380_f_4520 F_293 SomethingWithGPIOC_TIM7_Status func_3223e update_scr_19
|__ func_31fe2 WaitAndDoSomethingWithGPIOC c5000_wr_60_5 func_46f8e update_scr_30
|__ update_scr_32 EXTI2_IRQHandler some_bitband_io SomethingWithGPIOC_and_Backlight_Timer
|__ func_4dc0c_more_bitbang_io init_more_and_start_watchdog func_32130 scr_mode_stable
|__ Start TimerIRQ_Sub8 func_213d0 update_scr_29 TimerIRQ_Sub1 update_scr_20
|__ func_4e82c_uses_SPI2_3_DMA_and_I2C
0x40020c00 1 io_GPIOD used by: gfx_write_pixel_2 draw_zone_label DeAssertLCDReset func_474a0_heavy_bitbanging
|__ gfx_put_pixel func_4f6de kb_handler_sub1 kb_scan_matrix_4 gfx_1d44e
|__ kbscan_cfg_K1K2K3_as_inputs_with_pull_up kbscan_set_LCD_data_LOW gfx_1d378 ConfigureLCDPort
|__ kb_scan_matrix_3 func_46f8e
0x40021000 1 io_GPIOE used by: func_477a4 some_func_pend func_3fda8 Read_Channel_Switch_maybe
|__ func_4f6de func_474a0_heavy_bitbanging some_bitband_io func_4f68a_polls_EXT_PTT
|__ func_47802 func_3f8f2_init_PLL_and_C5000 func_46f8e kbscan_set_LCD_data_LOW
|__ func_4dc0c_more_bitbang_io ConfigureLCDPort kb_scan_matrix_3 some_func_post
|__ LED_Process biglist_pollsubsys_maybe
0x40023000 1 io_CRC used by: func_36c1c
0x40023008 1 io_CRC_CTRL
0x40023800 1 io_RCC
0x40023804 1 io_RCC_PLLCFG
0x40023808 1 io_RCC_CFGR
0x4002380c 1 io_RCC_CIR
0x40023830 1 io_RCC_AHB1
0x40023834 1 io_RCC_AHB2
0x40023838 1 io_RCC_AHB3
0x40023870 1 io_RCC_APB1
0x40023844 1 io_RCC_APB2
0x40023874 1 io_RCC_CSR
0x40023884 1 io_RCC_PLL_I2S
0x40023c00 1 io_FLASH
0x40023c04 1 io_FLASH_KEY
0x40023c08 1 io_FLASH_OPT_KEY
0x40023c0c 1 io_FLASH_STATUS
0x40023c10 1 io_FLASH_CTRL
0x40026000 1 io_DMA1
0x40026004 1 io_DMA1_HISR
0x40026008 1 io_DMA1_LIFCR
0x4002600c 1 io_DMA1_HIFCR
0x40026010 1 io_DMA1_S0CR
0x40026014 1 io_DMA1_S0NDTR
0x40026018 1 io_DMA1_S0PAR
0x4002601c 1 io_DMA1_S0M0AR
0x40026020 1 io_DMA1_S0M1AR
0x40026024 1 io_DMA1_S0FCR
0x40026028 1 io_DMA1_S1CR
0x4002602c 1 io_DMA1_S1NDTR
0x40026030 1 io_DMA1_S1PAR
0x40026034 1 io_DMA1_S1M0AR
0x40026038 1 io_DMA1_S1M1AR
0x4002603c 1 io_DMA1_S1FCR
0x40026040 1 io_DMA1_S2CR
0x40026044 1 io_DMA1_S2NDTR
0x40026048 1 io_DMA1_S2PAR
0x4002604c 1 io_DMA1_S2M0AR
0x40026050 1 io_DMA1_S2M1AR
0x40026054 1 io_DMA1_S2FCR
0x40026088 1 io_DMA1_S5CR
0x4002608c 1 io_DMA1_S5NDTR
0x40026090 1 io_DMA1_S5PAR
0x40026094 1 io_DMA1_S5M0AR
0x40026098 1 io_DMA1_S5M1AR
0x4002609c 1 io_DMA1_S5FCR
0x40026400 1 io_DMA2
0x40026404 1 io_DMA2_HISR
0x40026408 1 io_DMA2_LIFCR
0x4002640c 1 io_DMA2_HIFCR
0x40026410 1 io_DMA2_S0CR
0x40026414 1 io_DMA2_S0NDTR
0x40026418 1 io_DMA2_S0PAR
0x4002641c 1 io_DMA2_S0M0AR
0x40026420 1 io_DMA2_S0M1AR
0x40026424 1 io_DMA2_S0FCR
0x40026428 1 io_DMA2_S1CR
0x4002642c 1 io_DMA2_S1NDTR
0x40026430 1 io_DMA2_S1PAR
0x40026434 1 io_DMA2_S1M0AR
0x40026438 1 io_DMA2_S1M1AR
0x4002643c 1 io_DMA2_S1FCR
0x40026440 1 io_DMA2_S2CR
0x40026444 1 io_DMA2_S2NDTR
0x40026448 1 io_DMA2_S2PAR
0x4002644c 1 io_DMA2_S2M0AR
0x40026450 1 io_DMA2_S2M1AR
0x40026454 1 io_DMA2_S2FCR
0x40026458 1 io_DMA2_S3CR
0x4002645c 1 io_DMA2_S3NDTR
0x40026460 1 io_DMA2_S3PAR
0x40026464 1 io_DMA2_S3M0AR
0x40026468 1 io_DMA2_S3M1AR
0x4002646c 1 io_DMA2_S3FCR
0x40026488 1 io_DMA2_S5CR
0x4002648c 1 io_DMA2_S5NDTR
0x40026490 1 io_DMA2_S5PAR
0x40026494 1 io_DMA2_S5M0AR
0x40026498 1 io_DMA2_S5M1AR
0x4002649c 1 io_DMA2_S5FCR
0x40040000 1 io_USB_OTG_HS
0x40040004 1 io_USB_OTG_HS_GOTGINT
0x400a6666 1 io_0x400a6666
0xffffffffe000e008 1 scb_ACTLR
0xffffffffe000e010 1 SysTick_CTRL
0xffffffffe000e014 1 SysTick_LOAD
0xffffffffe000e018 1 SysTick_VAL
0xffffffffe000e01c 1 SysTick_CAL
0xffffffffe000e100 1 nvic_ISER0
0xffffffffe000e104 1 nvic_ISER1
0xffffffffe000e108 1 nvic_ISER2
0xffffffffe000e180 1 nvic_ICER0
0xffffffffe000e184 1 nvic_ICER1
0xffffffffe000e188 1 nvic_ICER2
0xffffffffe000e200 1 nvic_ISPR0
0xffffffffe000ef00 1 nvic_STIR
0xffffffffe000ed90 1 mpu_TYPER
0xffffffffe000ed90 1 mpu_CTRL
0xffffffffe000ed00 1 scb_CPUID
0xffffffffe000ed04 1 scb_ICSR
0xffffffffe000ed08 1 scb_VTOR
0xffffffffe000ed0c 1 scb_AIRCR
0xffffffffe000ed10 1 scb_SCR
0xffffffffe000ed14 1 scb_CCR
0xffffffffe000ed18 1 scb_SHPR1
0xffffffffe000ed1c 1 scb_SHPR2
0xffffffffe000ed20 1 scb_SHPR3
0xffffffffe000ed24 1 scb_SHCRS
0xffffffffe000ed28 1 scb_CFSR
0xffffffffe000ed88 1 fpu_CPACR
0xffffffffe000ef34 1 fpu_FPCCR
0xffffffffe000ef38 1 fpu_FPCAR
0xffffffffe000ef38 1 fpu_FPDSC