Disassembled Function Overview

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.
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) menu_RX_QRG_to_str 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) Volume_Menu 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
|     |||   ;-- menu_6_15_1:
|     |||   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
|    |`---> ;-- menu_6_1_1:
|    |`---> 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) menu_dispatcher 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]
|           ;-- menu.dispatcher.unkn1:
|           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]
|  ||||||   ;-- menu.dispatch.greenkey:
|  ||||||   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]
| ||||||    ;-- menu.dispatch.redkey_maybe:
| ||||||    0x0800f2a0      8047           blx r0
| ||||||    0x0800f2a2      fdf7a1fa       bl func_0c7e8
| ``````--> 0x0800f2a6      05b0           add sp, 0x14
\           0x0800f2a8      30bd           pop {r4, r5, pc}
/ (fcn) menu_F_4144 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) menu_func_0f4ac 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) menu_func_0f6a8 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) menu_add_number_of_menuentries_counts 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
|           ;-- menu_entry_back_1:
/ (fcn) md380_menu_entry_back 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) menugreen.Contacts.800fcbc 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) menu_func_0fde8 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) menu_func_0fe74 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) menu_func_0ff62 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) menu_func_0ff62 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) menu_func_10120 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) func_101b8_yet_another_menu 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) func_10c08_sms_menu_maybe 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}
            ;-- menugreen.Radio_Set.8017cbc:
/ (fcn) Create_Menu_Entry_RadioSettings 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) func_1f0f0_menu_something 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) md380_menu_12670 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) md380_menu_12900 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) md380_menu_12964_uses_event5_buffer 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) md380_menu_12a08 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) md380_menu_12ada 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) md380_menu_12b78 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) md380_menu_12c4c 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) md380_menu_12d08 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) md380_menu_12ddc 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) md380_menu_12e70 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) md380_menu_12f30 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) md380_menu_12fcc 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) md380_menu_13082 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) md380_menu_13114 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) md380_menu_zone 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) md380_menu_13270 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) md380_menu_channel_related_13314 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) md380_menu_curr_chn_related_133b0 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) md380_menu_apply_new_zone_maybe 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}
            ;-- menugreen.Utilities.80134a0:
/ (fcn) Create_Menu_Utilities 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]
|           ;-- menucall.Radio_Set:
|           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
|           ;-- menucall.Radio_Inf:
|           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
|           ;-- menucall.Program_R:
|           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
|           ;-- menucall.GPS_BeiDo:
|           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
|           ;-- menucall.RX_GPSInf:
|           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}
            ;-- menugreen.prog.80136c0:
/ (fcn) md380_menu_entry_programradio 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}
            ;-- menugreen.prog.rxf.80156a4:
/ (fcn) Create_Menu_Entry_RX_QRG_shown 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}
            ;-- menugreen.prog.rxf.show.8015720:
/ (fcn) Create_Menu_Entry_RX_QRG_1 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) Create_Menu_Entry_RX_QRG_2 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}
            ;-- menugreen.prog.rxf.edit.801587a:
/ (fcn) Create_Menu_Entry_RX_QRG_3 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) Create_Menu_Entry_RX_QRG_4 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
            ;-- menugreen.LED_Indic.801ad56:
/ (fcn) Create_Menu_Entry_LEDIndicator 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) md380_menu_numerical_input 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]
|       |   ;-- menucall.Contacts:
|       |   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
|      ||   ;-- menucall.Scan:
|      ||   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
|       |   ;-- menucall.Zone:
|       |   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
|       |   ;-- menucall.Messages:
|       |   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
|       |   ;-- menucall.Call_Log:
|       |   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
|       |   ;-- menucall.Utilities:
|       |   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) md380_create_menu_entry 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
|           ;-- menu_entry_back_1:
/ (fcn) md380_menu_entry_back 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) menu_draw_something 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) menu_draw_something2 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) menu_set_something 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) menu_draw_something3 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) menu_draw_something4 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) menu_draw_something5 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) menu_328ec 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) menu_32a7c 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) menu_draw_sub_27ff0 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) menu_draw_sub_27ffa 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) menu_cursor_related_1bb9c 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) menu_func_1aa60 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) menu_draw_sub_37d02 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) menu_draw_sub_37d2a 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) menu_37d44 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) menu_37e0a 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) menu_39de2 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) menu_39e3e 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) menu_draw_sub_3aba8 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) menu_draw_sub_3abbc 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) menu_draw_sub_3abce 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) menu_draw_sub_3abce 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) menu_draw_sub_3abe4 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) menu_draw_sub_3abf8 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) menu_draw_sub_3ac46 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) menu_draw_sub_4bae8 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) menu_28010 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) func_25790_menu_create_something 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) func_2e73c_uses_menu_cursor_pos_1 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) something_using_menu_depth 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) often_called_something_keycode_menu 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 md380_menu_ptr_to_80d032c 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 md380_menu_depth 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 md380_menu_mem_base 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 md380_menu_edit_buf 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 md380_menu_memory 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 menu_pointer_maybe_channel_data 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 menu_title_cstring 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 smeter_rssi 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 menu_memory_poi 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 md380_menu_entry_selected used by:  Create_Menu_Entry_LEDIndicator
0x2001e914 1 md380_menu_0x2001d3c1 used by:  md380_menu_entry_programradio menu_cursor_related_1bb9c
0x2001e915 1 md380_menu_id 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 md380_menu_max_chars 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 md380_menu_cursor_pos_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 md380_menu_cursor_pos_2 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 md380_menu_field_type 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 md380_menu_0x2001d3f1 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 md380_menu_0x2001d3f4 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

Variables and RAM/SFR locations not annotated yet

(to annotate them, extend the Radare2 script with 'f symbol @ address')
0x20002438 used by: draw_statusline_more scr_mode_stable draw_statusline 0x20002c88 used by: func_36e08 0x200036e8 used by: func_52860 0x20003774 used by: menu_draw_something 0x20004184 used by: menu_draw_something func_0c7e8 0x20004198 used by: menu_draw_something 0x20004400 used by: func_4e82c_uses_SPI2_3_DMA_and_I2C 0x20004414 used by: menu_draw_something 0x20004668 used by: func_4e808 0x200046c4 used by: func_4c148 0x2000473c used by: func_434e4_wr_C5000 0x20004760 used by: func_434e4_wr_C5000 0x2000485c used by: func_8ff00 func_901ec 0x20004877 used by: usb_dnld_handle 0x20004908 used by: c5000_wr_60_5 0x20004924 used by: func_4e808 0x20004940 used by: func_4e808 0x2000495c used by: menu_draw_something 0x20004984 used by: func_369c6 0x2000499c used by: func_3b42a 0x200049a4 used by: func_3b42a 0x200049bc used by: menucall.Utilities md380_create_main_menu_entry menucall.Contacts 0x200049c4 used by: func_903f6 func_902d0 func_902fa usb_dfu_read func_90456 |__ usb_dfu_write func_90324 0x200049cc used by: func_90258 0x200049dc used by: func_4bccc 0x200049e0 used by: func_2354c func_2f418 0x200049f0 used by: func_37bb8 0x200049f4 used by: func_37886 func_37a6a 0x200049f8 used by: dmr_handle_data F_858 0x20004a00 used by: func_48e40 func_49ca8 0x20004a04 used by: func_4cf80 0x20004a08 used by: func_4cf80 0x20004a0c used by: func_93c28 func_93b5e func_93e8a func_93d6a func_93e6e 0x20004a18 used by: func_49b82 func_49970 func_49810 func_499e2 0x20004a1c used by: func_49970 func_499e2 0x20004a20 used by: func_49b40 func_49b30 func_4997a func_499e2 0x20004a24 used by: func_4997a func_499e2 0x20004a28 used by: func_499e2 func_49988 0x20004a2c used by: func_49810 func_499e2 func_49988 0x20004a30 used by: func_499a4 func_499e2 0x20004a34 used by: func_499a4 func_49810 func_499e2 0x20004a38 used by: func_499e2 func_499c0 0x20004a3c used by: func_499e2 func_499c0 0x20004a44 used by: func_49048 func_4915c 0x20004a4c used by: SPI3_Handler func_497d2 func_49060 func_4915c 0x20004a50 used by: func_49060 func_4915c 0x20004a58 used by: func_4915c func_49074 0x20004a5c used by: func_4909a func_4915c 0x20004a60 used by: func_4909a func_4915c 0x20004a64 used by: func_4915c func_490c0 0x20004a68 used by: func_4915c func_490c0 0x20004a6c used by: func_4915c func_490e6 0x20004a70 used by: func_4915c func_490e6 0x20004a74 used by: func_4915c func_490e6 0x20004a78 used by: func_4910c func_4915c 0x20004a7c used by: func_4915c func_49810 DMA1_Stream2_Sub func_49122 0x20004a80 used by: DMA1_Stream5_Sub func_497d2 func_49114 func_4915c 0x20004a84 used by: DMA1_Stream5_Sub func_49140 DMA1_Stream2_Sub 0x20004a88 used by: DMA1_Stream2_Sub func_4914e 0x20004a8c used by: func_49138 func_4915c 0x20004a90 used by: DMA1_Stream5_Sub func_49140 0x20004a94 used by: func_48b98 func_48ade func_48cca 0x20004a98 used by: func_48a84 func_48ade 0x20004a9c used by: func_48a92 func_48ade 0x20004aa0 used by: func_48a92 func_48ade 0x20004aa4 used by: func_48ab8 func_48ade 0x20004aa8 used by: func_48ab8 func_48ade 0x20004aae used by: func_3b42a 0x20004ab0 used by: func_4c446 0x20004ab2 used by: menu_func_1aa60 update_scr_19 scr_mode_stable 0x20004ab4 used by: func_49b40 func_49b30 func_4997a func_499e2 0x20004ab6 used by: func_49810 func_499e2 func_49988 0x20004ab8 used by: func_499a4 func_499e2 0x20004aba used by: func_499e2 func_499c0 0x20004abe used by: func_4915c func_49074 0x20004ac0 used by: func_4909a func_4915c 0x20004ac2 used by: func_4915c func_490c0 0x20004ac4 used by: func_48a84 func_48ade 0x20004ac6 used by: func_48a92 func_48ade 0x20004ac8 used by: c5000_wr_60_5 0x20004ac9 used by: gfx_1d988 kb_enter_alpha func_2c7a6 func_0c7e8 paint_a_lot |__ often_called_something_keycode_menu func_2c6fc 0x20004aca used by: func_2c7a6 func_2c6fc 0x20004acb used by: func_2c7a6 0x20004acd used by: func_11938 0x20004ace used by: func_499e2 func_49988 0x20004acf used by: func_499e2 func_49988 0x20004ad0 used by: func_499a4 func_499e2 0x20004ad1 used by: func_499a4 func_49810 func_499e2 0x20004ad2 used by: func_499e2 func_499c0 0x20004ad3 used by: func_499e2 func_49810 func_499c0 0x20004ad4 used by: func_499dc func_499e2 0x20004ad5 used by: Start_2_more_tasks__init_vocoder_tasks__Q func_4e82c_uses_SPI2_3_DMA_and_I2C 0x20004ad6 used by: Start_2_more_tasks__init_vocoder_tasks__Q func_4e82c_uses_SPI2_3_DMA_and_I2C 0x20004ad7 used by: func_49050 func_4915c 0x20004ad8 used by: func_4915c func_49074 0x20004ad9 used by: func_4915c func_49074 0x20004ada used by: func_4909a func_4915c 0x20004adb used by: func_4909a func_4915c 0x20004adc used by: func_4915c func_490c0 0x20004add used by: func_4915c func_490c0 0x20004ade used by: func_4915c func_490e6 0x20004adf used by: func_4915c func_490e6 0x20004ae0 used by: func_49130 func_4915c 0x20004ae1 used by: func_4915c func_49122 0x20004ae2 used by: func_48a92 func_48ade 0x20004ae3 used by: func_48a92 func_48ade 0x20004ae4 used by: func_48ab8 func_48ade 0x20004ae5 used by: func_48ab8 func_48ade 0x20004ae8 used by: gfx_draw_sub_32a64 0x20008800 used by: func_4e82c_uses_SPI2_3_DMA_and_I2C 0x2000aa9c used by: func_4cf80 0x2000b430 used by: func_44cb4 LongSwitchWithRadioStatus1 0x2000b580 used by: CalledFromLongDispatcher func_3d2f0 func_2f706 func_2f58e |__ func_3d5a0 Start_2_more_tasks__init_vocoder_tasks__Q 0x2000b5e0 used by: func_16fe4 func_1072c func_170c4 md380_menu_12670 func_16ca4 |__ func_10c08_sms_menu_maybe md380_menu_12964_uses_event5_buffer func_1091c func_10844 |__ func_16c00 0x2000ea98 used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x2000ea9c used by: ambe_4a88e_calls_encode DMA1_Stream2_Sub Start_2_more_tasks__init_vocoder_tasks__Q 0x20010180 used by: ambe_4a88e_calls_encode Start_2_more_tasks__init_vocoder_tasks__Q 0x200101c8 used by: ambe_4a9f8 Start_2_more_tasks__init_vocoder_tasks__Q TIM2_IRQHandler 0x200101c9 used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x200101ca used by: ambe_4a9f8 Start_2_more_tasks__init_vocoder_tasks__Q TIM2_IRQHandler 0x200101d2 used by: ambe_4a9f8 Start_2_more_tasks__init_vocoder_tasks__Q TIM2_IRQHandler 0x200101d4 used by: ambe_4a88e_calls_encode ambe_4a9f8 Start_2_more_tasks__init_vocoder_tasks__Q |__ TIM2_IRQHandler 0x200101d6 used by: ambe_4a88e_calls_encode Start_2_more_tasks__init_vocoder_tasks__Q 0x200101d8 used by: ambe_4a88e_calls_encode Start_2_more_tasks__init_vocoder_tasks__Q 0x200101dc used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x200101de used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x200101e0 used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x200101e2 used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x200101e4 used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x200101e6 used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x200101e8 used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x200101ea used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x200101ec used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x200101ee used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x200101f0 used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x20010332 used by: DMA1_Stream5_Sub DMA1_Stream2_Sub ambe_4a9f8 Start_2_more_tasks__init_vocoder_tasks__Q 0x20010334 used by: ambe_4a88e_calls_encode ambe_4a9f8 Start_2_more_tasks__init_vocoder_tasks__Q 0x20010336 used by: ambe_4a88e_calls_encode Start_2_more_tasks__init_vocoder_tasks__Q 0x20010456 used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x200104b8 used by: ambe_4a88e_calls_encode 0x200104d3 used by: ambe_4a88e_calls_encode ambe_4a9f8 0x200104d4 used by: ambe_4a88e_calls_encode Start_2_more_tasks__init_vocoder_tasks__Q 0x200104d5 used by: ambe_4a88e_calls_encode Start_2_more_tasks__init_vocoder_tasks__Q 0x200104d6 used by: ambe_4a88e_calls_encode Start_2_more_tasks__init_vocoder_tasks__Q 0x200104d8 used by: Func4_of_10 0x20011594 used by: func_4cf80 0x2001165c used by: func_4cf80 0x2001174c used by: func_4cf80 0x20013590 used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x20013d8c used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x20013f12 used by: ambe_4aa78 0x20013f18 used by: ambe_4aa78 0x20014068 used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x2001422e used by: Start_2_more_tasks__init_vocoder_tasks__Q 0x20014ab8 used by: create_Sys_Inter 0x200152b4 used by: create_Sys_Inter 0x200152b8 used by: create_many_semas 0x20015ab4 used by: create_RTC_Timer 0x20015ab8 used by: create_RTC_Timer 0x200162b4 used by: create_RTC_Timer 0x200162b8 used by: create_RTC_Timer 0x20016ab4 used by: create_RTC_Timer 0x20016ab8 used by: init_Tone_fft_task func_4cf80 0x200172b4 used by: init_Tone_fft_task 0x200172b8 used by: Func5_of_10 func_4411c 0x200178b8 used by: func_322d2 func_4e808 WaitForInterruptInIdle SysTick_Handler 0x20017eac used by: ev5_20 dmr_handle_data F_858 0x20018a74 used by: Create_uCOS_Idle_Task 0x20018e74 used by: Create_uCOS_Timer_Task 0x20019270 used by: Create_uCOS_Timer_Task 0x20019274 used by: create_RTC_Timer 0x20019670 used by: create_RTC_Timer 0x20019674 used by: create_RTC_Timer 0x20019a70 used by: create_RTC_Timer 0x20019a74 used by: create_RTC_Timer 0x20019e70 used by: create_RTC_Timer 0x20019e74 used by: create_RTC_Timer 0x2001a270 used by: create_RTC_Timer 0x2001a670 used by: create_RTC_Timer 0x2001a674 used by: create_RTC_Timer 0x2001aa70 used by: create_RTC_Timer 0x2001aa74 used by: create_ChAccess_Pr 0x2001b5f8 used by: func_49810 func_4914e 0x2001b87c used by: DMA1_Stream5_Sub DMA1_Stream2_Sub func_4915c 0x2001bb00 used by: ManyStrangeSimpleMoves CreateTwoSemasAndTimerTask 0x2001bd80 used by: func_36f4c 0x2001bf80 used by: DMA2_Stream3_IRQHandler adc1_adc2_and_dma2s3_init 0x2001c180 used by: DMA2_Stream3_IRQHandler func_4cf80 SomethingWithRadioStatus_4d1b8 0x2001c380 used by: func_47a84 func_3fda8 func_45398 func_21958_spiflash_something |__ SomethingWithLongpressSettingRadioStatus1 func_47a52 func_45414 func_4796a |__ c5000_iffreq_init func_22502_spiflash_security c5000_wr_60_5 func_51b8c |__ usb_dnld_handle 0x2001c390 used by: func_47ab6 0x2001c3a0 used by: func_47ab6 0x2001c3b0 used by: SomethingWithChannelInfo2 0x2001c3c0 used by: func_44cb4 LongSwitchWithRadioStatus1 0x2001c3d0 used by: func_44cb4 0x2001c3e0 used by: func_44cb4 0x2001c3f0 used by: func_44cb4 LongSwitchWithRadioStatus1 0x2001c480 used by: func_21958_spiflash_something func_22502_spiflash_security 0x2001c580 used by: func_25e8e 0x2001c774 used by: func_2f478 func_2f520 0x2001c964 used by: func_2f418 func_2f8a0_erases_and_writes_flash 0x2001d01c used by: OSTaskNameSet func_44478 Func4_of_10 SysTick_Sub3 func_443d8 |__ func_44024 0x2001d11c used by: func_23358_spiflash_rd_d11c func_2336a 0x2001d1e4 used by: func_2339c func_233b4 0x2001d2ac used by: func_36736 func_36672 func_234d4 func_234e6 0x2001d374 used by: menu_draw_something func_22ee0_spiflash_rd_12 func_26230 func_25e8e |__ func_22ef2_spiflash_wr_12 0x2001d43c used by: menu_draw_something func_22fa4_spiflash_rd_14 func_22fb6_spiflash_wr_14 0x2001d730 used by: func_482c4 0x2001d7d0 used by: func_4d97a 0x2001d850 used by: func_397d0 0x2001d8d0 used by: func_22f24_spiflash_wr_sms_hdr func_229da dmr_call_start is_this_the_check_for_group_rx_list |__ dmr_CSBK_handler event_36 0x2001d950 used by: call_F_4225_1 menu_draw_something func_3955c func_229fe |__ func_382ca func_384d4 func_383f8 0x2001da6a used by: func_486be 0x2001da7c used by: is_this_the_check_for_group_rx_list dmr_CSBK_handler 0x2001db0c used by: func_0c7e8 func_16ca4 0x2001db7c used by: func_434e4_wr_C5000 0x2001dbc4 used by: func_434e4_wr_C5000 0x2001dc0c used by: func_434e4_wr_C5000 0x2001dc54 used by: func_434e4_wr_C5000 0x2001dc9c used by: func_434e4_wr_C5000 0x2001dce4 used by: func_434e4_wr_C5000 0x2001dd2c used by: func_434e4_wr_C5000 0x2001dd74 used by: func_23380 update_scr_19 func_231c2_spiflash_rd_22 func_232e4 0x2001dd78 used by: func_23414 func_23464 func_23294 func_233cc func_23380 |__ func_231c2_spiflash_rd_22 func_233e8 func_234f8 func_232e4 func_23220 0x2001ddb8 used by: disp_something 0x2001ddf8 used by: func_4b810 ManyStrangeSimpleMoves CreateTwoSemasAndTimerTask func_4b8c8 |__ func_4b87e 0x2001de38 used by: usb_upld_handle InitLCDisplay usb_dnld_handle 0x2001de98 used by: func_22cc6_spiflash_rd_6 draw_channel_label func_215fc func_22d5e_spiflash_wr_3 0x2001df38 used by: func_230e8_spiflash_rd_19 0x2001df78 used by: func_10844 0x2001df84 used by: func_10798 func_101b8_yet_another_menu menu_func_10120 func_10674 0x2001dfb8 used by: CalledFromLongpressThing func_45830 0x2001dff4 used by: ambe_4a9f8 Start_2_more_tasks__init_vocoder_tasks__Q 0x2001e00f used by: ambe_4a9f8 Start_2_more_tasks__init_vocoder_tasks__Q 0x2001e02c used by: ambe_4aa78 Start_2_more_tasks__init_vocoder_tasks__Q 0x2001e047 used by: ambe_4aa78 Start_2_more_tasks__init_vocoder_tasks__Q 0x2001e064 used by: ambe_4aa78 Start_2_more_tasks__init_vocoder_tasks__Q 0x2001e07f used by: ambe_4aa78 Start_2_more_tasks__init_vocoder_tasks__Q 0x2001e09c used by: gfx_1d988 0x2001e0d4 used by: func_1f0f0_menu_something 0x2001e0d6 used by: func_1f0f0_menu_something 0x2001e100 used by: mainloop_entry Beep_Process 0x2001e111 used by: task_468f8 0x2001e130 used by: func_230b0_spiflash_rd_17 func_23096_spiflash_rd_16 SomethingWithRadioStatus_4d1b8 0x2001e160 used by: ev5_21 func_22950_spiflash_rd_4 CalledFromLongDispatcher ev5_18 |__ func_2e7bc dmr_call_start ev5_rest func_3d5a0 0x2001e1d4 used by: func_214fe func_21596_draw_something func_0c7e8 update_scr_29 |__ F_4315 update_scr_32 0x2001e23c used by: func_2f418 func_2f8a0_erases_and_writes_flash func_2f58e 0x2001e27c used by: func_4d97a 0x2001e29c used by: func_4d97a 0x2001e2bc used by: md380_menu_13270 0x2001e2dc used by: func_170c4 func_16b34 func_16ca4 Create_Menu_Entry_RX_QRG_1 0x2001e2fc used by: menu_func_0ff62 0x2001e30a used by: menu_func_0fe74 0x2001e31c used by: func_52d5e func_52aa0 func_52c94 func_52dfe func_52940 0x2001e337 used by: adc1_adc2_and_dma2s3_init 0x2001e350 used by: dmr_CSBK_handler 0x2001e368 used by: gfx_1caa4 0x2001e370 used by: gfx_bmp_s1_1 gfx_bmp_sub3 0x2001e380 used by: func_230e8_spiflash_rd_19 SomethingWithRadioStatus_4d1b8 0x2001e398 used by: func_10606 menugreen.Contacts.800fcbc menu_func_0fde8 menu_func_0fe74 0x2001e3d4 used by: func_4e014 0x2001e3e8 used by: func_0c7e8 dmr_handle_data disp_something func_31e10 0x2001e424 used by: func_44cb4 func_44b68 0x2001e434 used by: func_4520c func_45156 func_451ce 0x2001e444 used by: func_45414 func_45398 0x2001e454 used by: CalledFromLongpressThing func_45d18 0x2001e464 used by: func_46050 func_460a8 0x2001e474 used by: func_4d97a func_3e372 0x2001e484 used by: menu_6_15_1 0x2001e494 used by: func_22e1a_spiflash_rd_8 0x2001e4a4 used by: aes_startup_check usb_upld_handle usb_dnld_handle 0x2001e4b4 used by: task_468f8 kb_enter_alpha func_23096_spiflash_rd_16 c5000_wr_60_4 0x2001e4b5 used by: task_468f8 0x2001e4c4 used by: init_Tone_fft_task scr_mode_stable SomethingWithGuiOpmode2 SomethingWithRadioStatus_4d1b8 0x2001e4d4 used by: scr_mode_stable SomethingWithGuiOpmode2 SomethingWithRadioStatus_4d1b8 0x2001e4e4 used by: func_23690 func_2f118 0x2001e4f4 used by: func_52dfe func_52c94 func_52940 0x2001e504 used by: func_2c7a6 often_called_something_keycode_menu func_2c6fc 0x2001e510 used by: func_46f8e draw_botline_text init_more_and_start_watchdog 0x2001e528 used by: usb_upld_handle usb_dnld_handle 0x2001e540 used by: func_51c6a 0x2001e54c used by: gfx_33396 0x2001e554 used by: gfx_1d296 0x2001e55c used by: gfx_1d296 0x2001e564 used by: menu_draw_something 0x2001e56c used by: OSTimeDly func_48312 ClearSomeBlocksInRAM func_47eb4 func_44478 |__ SysTick_Sub1 func_44434 func_4411c func_4823a func_44196 0x2001e584 used by: func_901ec usb_upld_handle func_8ff00 func_8f21a func_9010c |__ func_8f196 func_90184 usb_dnld_handle 0x2001e58c used by: TimerIRQ_Sub9 SomethingWithTIM7_RadioStatus1 0x2001e590 used by: TimerIRQ_Sub9 SomethingWithRadioStatus1 SomethingWithTIM7_ChannelInfo2 0x2001e594 used by: SomethingWithRadioStatus1 0x2001e598 used by: func_1044e 0x2001e59c used by: func_1044e 0x2001e5a0 used by: func_2f478 0x2001e5a4 used by: func_2f8a0_erases_and_writes_flash 0x2001e5a8 used by: func_1d174 0x2001e5ac used by: gfx_drawchar_sub3 func_3b618 0x2001e5b0 used by: gfx_setcolor_sub4 gfx_setcolor_sub3 gfx_32e5c gfx_32eb6 |__ gfx_setcolor_sub2 gfx_32e24 gfx_32f50 gfx_drawtext_sub8 0x2001e5b4 used by: gfx_33396 0x2001e5b8 used by: func_33388 0x2001e5c0 used by: func_2c7a6 func_2c6fc 0x2001e5cc used by: func_37bb8 0x2001e5d4 used by: func_4d908 SomethingWithRadioStatus1 func_3f32e func_4d96a |__ func_3f314 0x2001e5d8 used by: msg_handle_type_11 msg_handle_type_21 msg_handle_type_other 0x2001e5e0 used by: func_214fe func_25e60 dmr_call_end dmr_call_start is_this_the_check_for_group_rx_list |__ func_213d0 dmr_CSBK_handler audio_for_me_or_not event_36 F_4315 0x2001e5e4 used by: dmr_CSBK_handler func_214fe 0x2001e5e8 used by: func_383b8 func_393dc func_384d4 0x2001e5f4 used by: func_10ae0 menucall.Zone menucall.Call_Log kb_enter_alpha |__ func_2e860 ev5_17 SomethingWithChannelsRadioConfigAndBeeps func_4cf80 menucall.Contacts |__ update_scr_17 md380_f_4137 func_16fe4 func_22b42 LED_Process func_2f302 |__ menucall.Utilities FuncWithAwfulLongSwitch dmr_call_start func_458f8 menucall.Scan |__ md380_create_main_menu_entry func_32130 func_2de84 SomethingWithRadioStatus_4d1b8 |__ menucall.Messages func_45414 ev5_rest call_F_4225_1 0x2001e5fc used by: task_468f8 0x2001e608 used by: kb_handler 0x2001e60c used by: func_2e73c_uses_menu_cursor_pos_1 kb_enter_alpha func_2de84 md380_f_4137 0x2001e610 used by: func_4d908 TimerIRQ_Sub11 func_4d6f4 func_3e372 0x2001e614 used by: CalledFromLongDispatcher func_3e372 TIM7_DAC_IRQHandler func_4d908 |__ SomethingWithGPIOC_and_Backlight_Timer func_4d6f4 0x2001e618 used by: func_4d97a 0x2001e61c used by: func_4d97a 0x2001e620 used by: func_4d97a 0x2001e624 used by: func_4d97a 0x2001e628 used by: func_4d97a func_4d6f4 0x2001e62c used by: func_4d97a 0x2001e630 used by: func_4d97a 0x2001e634 used by: func_4d97a 0x2001e638 used by: some_init ev5_17 ev5_rest 0x2001e63c used by: audio_for_me_or_not update_scr_19 re_create_event_8 0x2001e644 used by: EXTI1_IRQHandler c5000_wr_60_1 c5000_iffreq_init create_many_semas 0x2001e654 used by: task_468f8 mainloop_entry create_many_semas 0x2001e668 used by: create_many_semas 0x2001e66c used by: md380_spi_sendrecv create_many_semas 0x2001e674 used by: usb_dnld_handle c5000_wr_60_4 create_many_semas 0x2001e678 used by: create_many_semas 0x2001e680 used by: create_many_semas 0x2001e688 used by: Start 0x2001e68c used by: func_4cf06_uses_ADC2_and_TIM3 init_Tone_fft_task DMA2_Stream3_IRQHandler |__ func_4ce88 func_4cf80 0x2001e690 used by: TIM5_IRQHandler 0x2001e698 used by: usb_upld_handle c5000_wr_60_5 0x2001e69c used by: usb_upld_handle c5000_wr_60_5 0x2001e6a0 used by: c5000_wr_60_5 0x2001e6a4 used by: gfx_3351c 0x2001e6a8 used by: gfx_1d296 0x2001e6ac used by: func_1d174 0x2001e6b0 used by: gfx_1c9d4 gfx_1c86c func_1cff2 0x2001e6b8 used by: CalledFromLongDispatcher 0x2001e6bc used by: dmr_handle_data 0x2001e6c8 used by: Timer8ToneGenerator 0x2001e6cc used by: Timer8ToneGenerator 0x2001e6d0 used by: func_0c7e8 0x2001e6d4 used by: func_4c64e 0x2001e6d8 used by: func_4c64e 0x2001e6dc used by: func_2f8f8 0x2001e6e0 used by: func_322d2 0x2001e6ec used by: func_101b8_yet_another_menu md380_menu_entry_back func_27270 menu_draw_something |__ display_idle_screen md380_menu_12670 func_10c08_sms_menu_maybe func_0c7e8 |__ md380_menu_12fcc menugreen.Contacts.800fcbc DrawSomethingThenBitBangIO menucall.Utilities |__ md380_f_4520 md380_menu_12b78 kb_enter_alpha ev5_19 md380_menu_13082 |__ md380_menu_13114 Create_Menu_Entry_RX_QRG_2 md380_menu_12e70 Create_Menu_Entry_RX_QRG_1 |__ func_10606 md380_menu_12d08 disp_something md380_create_main_menu_entry |__ func_170c4 md380_menu_12ada often_called_something_keycode_menu func_215fc |__ update_scr_30 func_215c2 func_1bf56 Create_Menu_Entry_RX_QRG_3 func_16fe4 |__ func_25790_menu_create_something menu_func_1aa60 func_475b8 func_21646 Create_Menu_Entry_LEDIndicator |__ display_unprog_screen md380_menu_12a08 md380_menu_12964_uses_event5_buffer func_1091c |__ paint_a_lot func_10844 md380_menu_12c4c md380_menu_zone func_213d0 |__ dmr_handle_data menu_39e3e func_1072c menu.dispatch.greenkey md380_menu_entry_programradio |__ md380_menu_12ddc func_16ca4 Create_Menu_Entry_RX_QRG_shown md380_menu_12f30 |__ Volume_Menu menu_6_1_1 F_4154 handle_keycode_F_4171 Create_Menu_Utilities |__ md380_menu_apply_new_zone_maybe func_11108 menu_cursor_related_1bb9c 0x2001e6f4 used by: draw_datetime_row usb_dnld_handle 0x2001e6f8 used by: func_18a40 usb_dnld_handle 0x2001e6fc used by: func_27270 menu_draw_something func_0db88 func_0c7e8 menu_F_4144 |__ func_382ca menu_func_0ff62 menucall.Call_Log menu_func_10120 md380_f_4520 |__ gfx_1d988 kb_enter_alpha ev5_19 func_2e860 func_2e984_beeps_and_uses_msg_timer_500 |__ update_scr_35 often_called_something_keycode_menu update_scr_17 update_scr_16 |__ func_25790_menu_create_something menucall.Utilities func_1091c menu.dispatcher.unkn1 |__ scr_mode_stable menu.dispatch.greenkey func_213d0 menu_6_1_1 func_1bf56 |__ update_scr_29 func_2ea0c_beeps_and_uses_struct_channel_info2 update_scr_20 menu_cursor_related_1bb9c 0x2001e704 used by: ClearSomeVariables SysTick_Sub3 func_443d8 func_44024 0x2001e708 used by: OSSemCreate func_31038 Func5_of_10 0x2001e70c used by: func_47e54 func_482c4 func_47eb4 0x2001e714 used by: OSTimeDly ClearSomeBlocksInRAM OSTaskNameSet func_47eb4 |__ OSSemPend SysTick_Sub3 func_4823a md380_OSMboxPend OSTaskCreateExt |__ func_4e4cc 0x2001e718 used by: func_44478 Func4_of_10 0x2001e71c used by: ClearSomeBlocksInRAM SysTick_Sub3 func_4411c func_443d8 |__ func_44024 0x2001e720 used by: SysTick_Sub1 func_44478 Func4_of_10 0x2001e724 used by: ClearSomeVariables func_44196 func_44024 0x2001e728 used by: func_4b62e func_4b8c8 CreateTwoSemasAndTimerTask func_4b534 |__ func_4b810 func_4b5ac 0x2001e72c used by: CreateTwoSemasAndTimerTask 0x2001e730 used by: func_4b6e6_posts_something CreateTwoSemasAndTimerTask func_4b8c8 0x2001e734 used by: func_4b6f4 CreateTwoSemasAndTimerTask 0x2001e73c used by: CalledFromLongDispatcher write_current_channel_info_to_spi dmr_CSBK_handler |__ func_3d2f0 channel_info_read_spi_init 0x2001e744 used by: func_4cf80 0x2001e748 used by: SomethingWithRadioStatus_4d1b8 0x2001e74c used by: func_59976 func_552fa 0x2001e750 used by: func_8ff00 func_8f196 func_901ec 0x2001e75c used by: usb_do_setup 0x2001e764 used by: func_59908 0x2001e768 used by: func_59940 0x2001e76c used by: func_49c04_Uses_Sema func_49ba8_Creates_Sema func_49810 func_49bbe_Uses_Sema 0x2001e770 used by: DMA1_Stream2_Sub Start_2_more_tasks__init_vocoder_tasks__Q TIM2_IRQHandler 0x2001e774 used by: DMA1_Stream5_Sub Start_2_more_tasks__init_vocoder_tasks__Q 0x2001e778 used by: DMA1_Stream5_Sub func_49810 func_4915c 0x2001e77c used by: DMA1_Stream5_Sub func_49114 func_4915c 0x2001e780 used by: func_49e00 0x2001e784 used by: func_48f32_uses_io_RTC 0x2001e788 used by: func_55706 0x2001e790 used by: LongSwitchWithRadioStatus1 func_44b68 0x2001e792 used by: func_45156 func_451ce 0x2001e794 used by: func_4520c 0x2001e796 used by: usb_upld_handle CalledFromLongpressThing SomethingWithLongpressSettingRadioStatus1 |__ func_45d18 0x2001e798 used by: CalledFromLongpressThing SomethingWithLongpressSettingRadioStatus1 func_45d18 0x2001e79a used by: func_46050 DrawSomethingThenBitBangIO func_460a8 0x2001e79c used by: SomethingWithRadioStatus1 0x2001e79e used by: re_create_event_8 ev5_18 F_858 func_214fe ev5_17 |__ dmr_call_start is_this_the_check_for_group_rx_list ev5_rest dmr_CSBK_handler |__ audio_for_me_or_not func_2dd36_beeps_and_sets_kb_keycode F_4315 0x2001e7a4 used by: func_2f8f8 func_2f8a0_erases_and_writes_flash scr_mode_stable DrawSomethingThenBitBangIO |__ update_scr_28 0x2001e7aa used by: md380_f_4520 0x2001e7ae used by: md380_f_4102 0x2001e7b4 used by: something_using_menu_depth 0x2001e7b6 used by: read_40_from_2100_spi something_polling_kb_keypressed 0x2001e7c2 used by: usb_upld_handle usb_dnld_handle 0x2001e7c4 used by: func_44cb4 LongSwitchWithRadioStatus1 SomethingWithChannelInfo2 |__ func_47ab6 0x2001e7c6 used by: func_44cb4 func_3fda8 c5000_some3 func_478d0 Create_Menu_Entry_RX_QRG_4 |__ SomethingWithChannelInfo2 func_4d908 func_47ab6 c5000_iffreq_init 0x2001e7c8 used by: Start draw_botline_text 0x2001e7ca used by: func_4d97a 0x2001e7cc used by: func_4d97a 0x2001e7ce used by: func_4d97a func_4d6f4 0x2001e7d0 used by: func_4d97a func_4d6f4 0x2001e7d2 used by: func_4d97a func_4d6f4 0x2001e7d4 used by: func_4d97a func_4d6f4 0x2001e7d6 used by: func_4d97a func_4d6f4 0x2001e7d8 used by: func_4d97a func_4d6f4 0x2001e7da used by: func_4d97a func_4d6f4 0x2001e7dc used by: func_4d97a func_4d6f4 0x2001e7de used by: func_4d97a 0x2001e7e0 used by: func_4d97a 0x2001e7e2 used by: func_4d97a func_4d6f4 0x2001e7e4 used by: func_4d97a func_4d6f4 0x2001e7e6 used by: func_4d97a func_4d6f4 0x2001e7e8 used by: func_4d97a func_4d6f4 0x2001e7ea used by: func_4d97a func_4d6f4 0x2001e7ec used by: func_4d97a func_4d6f4 0x2001e7ee used by: func_4d97a func_4d6f4 0x2001e7f0 used by: func_4d97a 0x2001e7f2 used by: func_4d97a 0x2001e7f4 used by: func_44cb4 func_322d2 func_44b68 0x2001e7f6 used by: usb_upld_handle 0x2001e7fc used by: gfx_1c86c gfx_1d296 0x2001e7fe used by: func_1d174 func_1d074 gfx_1d296 gfx_1c86c gfx_1c1e6 0x2001e800 used by: gfx_1c9d4 func_1d118 gfx_1d296 0x2001e802 used by: gfx_48a28 gfx_1c1c8 gfx_1d296 0x2001e804 used by: func_4e7f4 0x2001e806 used by: gfx_1c9d4 func_4b9a0 0x2001e808 used by: func_489c8 gfx_1c86c gfx_1c9d4 0x2001e80a used by: func_4bc9c gfx_1c274 gfx_bmp_sub1 0x2001e80c used by: gfx_1d296 gfx_1c9d4 func_1d118 gfx_1c1fe 0x2001e80e used by: CalledFromLongDispatcher msg_process_sms2 0x2001e810 used by: ev5_20 dmr_handle_data F_858 0x2001e812 used by: Beep_Process 0x2001e814 used by: msg_handle_type_11 msg_handle_type_21 ev5_18 msg_handle_type_other 0x2001e816 used by: ev5_20 msg_handle_type_other func_4c64e 0x2001e818 used by: ev5_20 msg_handle_type_11 msg_handle_type_21 0x2001e81a used by: msg_handle_types msg_handle_type_21 msg_handle_type_11 msg_handle_type_other 0x2001e81e used by: func_0de64 menu_func_0f6a8 func_0dcec menu.dispatcher.unkn1 |__ func_0db88 func_0dda8 update_scr_18 menu_F_4144 menu_func_0f4ac |__ F_4284 update_scr_36 0x2001e820 used by: func_25e8e 0x2001e822 used by: F_786 func_0c7e8 menu_6_1_1 update_scr_20 F_4315 |__ md380_f_4520 0x2001e824 used by: func_0c7e8 F_4284 F_786 menu_6_1_1 md380_f_4520 0x2001e826 used by: md380_menu_13270 0x2001e828 used by: F_4284 F_786 0x2001e82a used by: func_16fe4 F_786 func_16ca4 func_170c4 func_16c00 |__ F_4315 0x2001e82c used by: func_0c7e8 func_10ba0 func_10ae0 func_10c08_sms_menu_maybe 0x2001e82e used by: ev5_19 menu_draw_something menu_func_0fe74 func_213d0 func_0c7e8 |__ ev5_rest func_10ae0 menu_func_0ff62 0x2001e830 used by: menu_func_0fe74 menu_func_0fde8 func_115ec func_16ca4 func_10ae0 |__ func_116f4 func_11790 0x2001e832 used by: func_116f4 func_115ec 0x2001e834 used by: func_115ec func_11790 0x2001e836 used by: func_115ec 0x2001e838 used by: func_23294 func_23220 func_233cc 0x2001e83a used by: menu_func_0ff62 func_2f706 func_2f58e 0x2001e83c used by: menu_func_0ff62 func_2f478 func_101b8_yet_another_menu func_2f520 |__ menu_func_0fe74 0x2001e840 used by: func_384d4 0x2001e842 used by: func_384d4 0x2001e844 used by: scr_mode_stable display_idle_screen SomethingWithRadioStatus_4d1b8 |__ update_scr_19 paint_a_lot call_F_4225_1 update_scr_35 func_214ea |__ update_scr_17 update_scr_21 0x2001e846 used by: scr_mode_stable 0x2001e848 used by: often_called_something_keycode_menu 0x2001e84a used by: func_4b6f4 CreateTwoSemasAndTimerTask 0x2001e84c used by: func_4b6f4 CreateTwoSemasAndTimerTask 0x2001e84e used by: ClearSomeHalfWordInRAM SysTick_Sub2 0x2001e852 used by: func_2f118 call_F_4225_1 func_384d4 func_383f8 0x2001e854 used by: func_3960c func_3955c func_3951c func_382ca func_393dc |__ func_384d4 0x2001e856 used by: func_3960c func_3955c func_383f8 func_3951c func_384d4 |__ func_2f118 0x2001e858 used by: rd_zone_name.loop c5000_iffreq_init 0x2001e85a used by: SomethingWithRadioStatus_4d1b8 0x2001e85d used by: SomethingWithGuiOpmode2 0x2001e85e used by: func_4520c 0x2001e861 used by: FuncWithAwfulLongSwitch 0x2001e862 used by: FuncWithAwfulLongSwitch 0x2001e863 used by: func_46050 func_460a8 0x2001e864 used by: DrawSomethingThenBitBangIO func_460a8 0x2001e865 used by: DrawSomethingThenBitBangIO func_460a8 0x2001e866 used by: func_458f8 func_45830 0x2001e867 used by: CallsReadChannelSwitch 0x2001e868 used by: CallsReadChannelSwitch 0x2001e869 used by: SomethingWithRadioStatus1 Something2_TIM7_RadioStatus1 0x2001e86a used by: SomethingWithRadioStatus1 Something2_TIM7_RadioStatus1 0x2001e86b used by: SomethingWithRadioStatus1 func_3f32e 0x2001e86c used by: msg_handle_type_other ev5_rest ev5_19 msg_handle_type_21 0x2001e86e used by: ev5_20 ev5_19 func_2e7bc func_2e860 ev5_17 ev5_rest 0x2001e86f used by: audio_for_me_or_not re_create_event_8 F_858 dmr_call_start 0x2001e875 used by: func_1044e 0x2001e876 used by: menu_328ec 0x2001e877 used by: gfx_init_lcd_and_others 0x2001e878 used by: gfx_1d988 drawtext8.loop_for_all_chars 0x2001e879 used by: gfx_1d988 often_called_something_keycode_menu 0x2001e87a used by: gfx_1d988 draw_zone_channel func_27270 draw_datetime_row 0x2001e87b used by: func_2c7a6 often_called_something_keycode_menu func_2c6fc 0x2001e87c used by: func_2c7a6 0x2001e87d used by: func_2c7a6 0x2001e87e used by: func_2c7a6 often_called_something_keycode_menu func_2c6fc 0x2001e880 used by: func_2aac0 0x2001e881 used by: md380_f_4520 0x2001e882 used by: display_idle_screen draw_statusline_more 0x2001e884 used by: check_for_ptt_switch md380_f_4102 something_polling_kb_keypressed 0x2001e887 used by: func_4f4d0 0x2001e888 used by: func_4f4d0 0x2001e88b used by: kb_handler something_setting_keypress_lower_button 0x2001e88c used by: kb_handler more_setting_keypress_lower_button 0x2001e88d used by: something_using_menu_depth func_4f4d0 kb_handler 0x2001e88e used by: kb_handler 0x2001e88f used by: kb_handler 0x2001e893 used by: func_45830 DrawSomethingThenBitBangIO func_393dc md380_f_4520 |__ func_44cb4 kb_enter_alpha c5000_wr_60_1 func_31e68 func_322d2 update_scr_31 |__ update_scr_30 func_3960c func_384d4 some_init LED_Process draw_botline_text |__ FuncWithAwfulLongSwitch func_458f8 c5000_iffreq_init func_2f268 func_2f118 |__ func_383b8 func_383f8 func_3951c call_F_4225_1 0x2001e894 used by: c5000_set_local_addr some_init func_3da68 event_36 display_unprog_screen |__ Start draw_statusline_more dmr_call_end dmr_CSBK_handler func_3d57a |__ func_322d2 func_2dd36_beeps_and_sets_kb_keycode func_2f118 c5000_set_local_addr2 |__ dmr_before_squelch F_4315 func_3d53e 0x2001e897 used by: func_4fe14_monster_accessing_C5000 EXTI2_IRQHandler c5000_wr_60_5 |__ TIM4_IRQHandler 0x2001e899 used by: Create_Menu_Entry_RadioSettings func_22a8c func_2f268 func_2ea0c_beeps_and_uses_struct_channel_info2 |__ func_23102 func_2f118 0x2001e89a used by: c5000_wr_60_3 c5000_some2 0x2001e89b used by: SomethingWithRadioStatus1 0x2001e89c used by: func_47ab6 WaitAndDoSomethingWithGPIOC TIM6_DAC_IRQHandler 0x2001e89d used by: func_4fe14_monster_accessing_C5000 c5000_wr_60_5 0x2001e89e used by: SomethingWithChannelInfo2 func_47ab6 c5000_wr_60_5 usb_upld_handle 0x2001e89f used by: func_4fe14_monster_accessing_C5000 0x2001e8a0 used by: func_4fe14_monster_accessing_C5000 c5000_wr_60_5 0x2001e8a2 used by: func_3da68 func_3dbf0 0x2001e8a3 used by: msg_process_sms func_3dc90 func_3dbf0 0x2001e8a5 used by: func_2f118 func_383f8 0x2001e8a6 used by: func_322d2 OTG_FS_WKUP_IRQHandler 0x2001e8ab used by: CalledFromLongDispatcher func_2daf8 F_858 re_create_event_8 |__ dmr_handle_data phone_ringing dmr_CSBK_handler SomethingWithGPIOC_and_Backlight_Timer |__ promisc_audio_frame usb_dnld_handle 0x2001e8ac used by: msg_handle_type_11 ev5_rest msg_handle_type_other msg_handle_type_21 0x2001e8ad used by: msg_handle_type_11 ev5_rest msg_handle_type_other msg_handle_type_21 0x2001e8ae used by: msg_handle_type_11 msg_handle_type_21 msg_handle_type_other 0x2001e8b1 used by: msg_handle_type_11 msg_handle_type_21 msg_handle_type_other 0x2001e8b2 used by: msg_handle_type_11 msg_handle_type_21 msg_handle_type_other 0x2001e8b3 used by: msg_handle_type_11 msg_handle_type_21 msg_handle_type_other 0x2001e8b4 used by: msg_handle_type_11 msg_handle_type_21 msg_handle_type_other 0x2001e8b5 used by: msg_handle_type_11 msg_handle_type_21 msg_handle_type_other 0x2001e8b6 used by: msg_handle_type_11 msg_handle_type_21 msg_handle_type_other 0x2001e8b7 used by: CalledFromLongDispatcher dmr_CSBK_handler update_scr_21 0x2001e8b9 used by: func_393dc func_384d4 func_383f8 0x2001e8ba used by: func_3951c func_3960c func_3955c func_393dc func_384d4 0x2001e8bb used by: func_39000 func_384d4 0x2001e8bc used by: c5000_set_local_addr func_4e014 msg_handle_type_21 dmr_CSBK_handler |__ c5000_set_local_addr2 msg_handle_type_11 msg_handle_type_other 0x2001e8bd used by: func_32130 c5000_set_local_addr func_3223e func_31fe2 dmr_CSBK_handler |__ c5000_set_local_addr2 0x2001e8be used by: func_32130 c5000_set_local_addr c5000_set_local_addr2 dmr_CSBK_handler 0x2001e8bf used by: EXTI0_IRQHandler 0x2001e8c0 used by: EXTI0_IRQHandler 0x2001e8c2 used by: func_4d97a 0x2001e8c3 used by: func_4d97a 0x2001e8c4 used by: func_4d97a 0x2001e8c5 used by: func_4d97a 0x2001e8c6 used by: func_4d97a 0x2001e8c7 used by: func_4d97a 0x2001e8c8 used by: func_4d97a 0x2001e8c9 used by: func_4d97a 0x2001e8ca used by: func_4d97a 0x2001e8cb used by: func_4d97a 0x2001e8cc used by: func_4d97a 0x2001e8cd used by: func_4d97a 0x2001e8ce used by: func_4d97a 0x2001e8cf used by: func_4d97a TimerIRQ_Sub11 0x2001e8d0 used by: func_4d97a 0x2001e8d1 used by: func_4d97a 0x2001e8d2 used by: func_4d97a func_4d6f4 0x2001e8d3 used by: func_4d97a func_4d6f4 0x2001e8d4 used by: func_4d97a func_4d6f4 0x2001e8d5 used by: func_4d97a 0x2001e8d6 used by: func_4d97a 0x2001e8d7 used by: func_4d97a 0x2001e8d8 used by: func_4d97a 0x2001e8d9 used by: func_4d97a 0x2001e8da used by: func_4d97a 0x2001e8db used by: func_4cf06_uses_ADC2_and_TIM3 func_4ce88 SomethingWithRadioStatus_4d1b8 0x2001e8dc used by: func_4ce88 0x2001e8dd used by: func_44cb4 func_322d2 0x2001e8de used by: func_44cb4 0x2001e8df used by: usb_upld_handle func_44b68 0x2001e8e0 used by: display_unprog_screen LongSwitchWithRadioStatus1 draw_statusline_more |__ call_F_4225_1 SomethingWithGPIOC_and_Backlight_Timer md380_f_4520 0x2001e8e1 used by: func_45830 usb_upld_handle 0x2001e8e2 used by: SomethingWithLongpressSettingRadioStatus1 func_45d18 0x2001e8e3 used by: task_468f8 CalledFromLongDispatcher ev5_15 ev5_17 func_2f302 |__ ev5_rest c5000_wr_60_5 md380_f_4520 0x2001e8e4 used by: md380_f_4102 md380_f_4520 0x2001e8e5 used by: dmr_call_end msg_process_sms func_3da68 func_31fe2 func_3dc90 |__ func_3dbf0 audio_for_me_or_not 0x2001e8e6 used by: func_3f8f2_init_PLL_and_C5000 md380_f_4520 0x2001e8e7 used by: func_22532_spiflash_security_2 0x2001e8e9 used by: func_3fda8 c5000_iffreq_init func_31fe2 0x2001e8ea used by: c5000_wr_60_5 0x2001e8eb used by: c5000_wr_60_5 0x2001e8ec used by: update_scr_18 update_scr_17 0x2001e8ed used by: task_468f8 kb_enter_alpha SomethingWithGuiOpmode2 display_idle_screen |__ func_0c7e8 func_2e73c_uses_menu_cursor_pos_1 c5000_wr_60_4 update_scr_29 |__ md380_f_4520 F_4154 md380_f_4137 0x2001e8ee used by: func_1d174 gfx_1caf2 gfx_bmp_sub1 gfx_1c2a0 gfx_1d21c |__ gfx_1c27e gfx_bmp_s1_1 gfx_1d224 0x2001e8f0 used by: gfx_1caf2 gfx_bmp_sub3 gfx_bmp_sub1 0x2001e8f1 used by: gfx_1d296 0x2001e8f2 used by: c5000_set_local_addr2 c5000_set_local_addr 0x2001e8f6 used by: dmr_handle_data F_858 0x2001e8f7 used by: dmr_handle_data 0x2001e8f8 used by: dmr_handle_data 0x2001e8f9 used by: ev5_19 0x2001e8ff used by: dmr_handle_data update_scr_17 func_11108 0x2001e900 used by: func_2f268 0x2001e901 used by: msg_handle_type_11 ev5_rest msg_handle_type_other ev5_19 |__ msg_handle_type_21 0x2001e902 used by: msg_handle_type_other msg_handle_types msg_handle_type_21 ev5_rest |__ msg_handle_type_11 ev5_19 0x2001e904 used by: Create_Menu_Entry_RadioSettings menu.dispatch.greenkey 0x2001e905 used by: CallsReadChannelSwitch SomethingWithGuiOpmode2 display_idle_screen |__ display_unprog_screen update_scr_19 update_scr_18 func_451ce F_4315 0x2001e906 used by: menu_6_1_1 md380_create_main_menu_entry 0x2001e907 used by: menu_6_1_1 md380_create_main_menu_entry menu.dispatch.greenkey 0x2001e908 used by: kb_enter_alpha display_idle_screen func_0dda8 display_unprog_screen |__ func_0db88 func_0c7e8 update_scr_19 scr_mode_stable Volume_Menu |__ update_scr_35 md380_f_4520 0x2001e90b used by: display_idle_screen kb_enter_alpha md380_f_4520 0x2001e90c used by: paint_a_lot often_called_something_keycode_menu 0x2001e90d used by: menu_func_0f6a8 display_idle_screen func_0dda8 display_unprog_screen |__ func_0db88 func_0c7e8 menu_func_0f4ac F_4154 0x2001e90e used by: menu_func_1aa60 menu_using_sms_and_edit_buf_1be2c func_101b8_yet_another_menu |__ func_25e8e func_25790_menu_create_something md380_menu_13270 func_0c7e8 |__ msg_flash_write func_1bf56 md380_menu_apply_new_zone_maybe menu_cursor_related_1bb9c 0x2001e910 used by: menu_draw_something 0x2001e911 used by: menu_draw_something 0x2001e91a used by: func_25e8e draw_statusline_more 0x2001e925 used by: func_36672 0x2001e926 used by: func_36672 0x2001e927 used by: menu_39de2 func_39f50 menu_39e3e 0x2001e928 used by: menu_39de2 0x2001e92e used by: Create_Menu_Entry_LEDIndicator 0x2001e92f used by: menu.dispatcher.unkn1 0x2001e930 used by: scr_mode_stable md380_f_4520 0x2001e931 used by: some_init display_idle_screen func_2daf8 0x2001e932 used by: func_16c00 func_16fe4 Create_Menu_Entry_RX_QRG_2 0x2001e933 used by: func_16c00 Create_Menu_Entry_RX_QRG_2 func_16ca4 0x2001e935 used by: Create_Menu_Entry_LEDIndicator func_23526 menu.dispatch.greenkey |__ func_475b8 menu.dispatcher.unkn1 menu_6_1_1 Create_Menu_Entry_RadioSettings |__ func_23514 0x2001e936 used by: update_scr_27 update_scr_19 scr_mode_stable md380_create_main_menu_entry 0x2001e937 used by: menucall.Utilities 0x2001e93a used by: func_397d0 0x2001e93b used by: scr_mode_stable md380_create_main_menu_entry 0x2001e93c used by: scr_mode_stable md380_create_main_menu_entry 0x2001e93d used by: draw_channel_label 0x2001e93e used by: draw_zone_channel 0x2001e940 used by: func_25ff4 func_25790_menu_create_something 0x2001e941 used by: ev5_19 0x2001e948 used by: paint_a_lot disp_something 0x2001e949 used by: paint_a_lot 0x2001e94e used by: often_called_something_keycode_menu 0x2001e94f used by: paint_a_lot 0x2001e950 used by: paint_a_lot 0x2001e951 used by: OSTimeDly func_31038 OSTaskNameSet DummyForUnusedIRQs OSSemPend |__ ClearSomeVariables RTC_WKUP_IRQHandler OSSemCreate func_443d8 md380_OSMboxPend |__ OSTaskCreateExt func_4e4cc 0x2001e952 used by: ClearSomeVariables func_47e54 OSTimeDly OSSemPend func_43fca |__ SysTick_Sub1 SysTick_Sub3 func_443d8 func_44024 md380_OSMboxPend |__ func_43f90 0x2001e953 used by: ClearSomeBlocksInRAM SysTick_Sub3 func_443d8 func_44024 0x2001e954 used by: ClearSomeBlocksInRAM func_43fca SysTick_Sub3 func_44434 |__ func_443d8 func_43f90 0x2001e955 used by: OSTimeDly func_48312 ClearSomeBlocksInRAM func_44478 SysTick_Sub1 |__ func_44434 func_4823a 0x2001e956 used by: func_43df2 func_43fca ClearSomeVariables SysTick_Sub3 func_43f90 |__ func_43e98 0x2001e957 used by: ClearSomeVariables func_44478 Func5_of_10 0x2001e958 used by: some_init func_475b8 update_scr_31 update_scr_30 0x2001e959 used by: func_22cc6_spiflash_rd_6 draw_zone_label 0x2001e95a used by: draw_channel_label display_idle_screen draw_zone_label scr_mode_stable 0x2001e95b used by: draw_channel_label 0x2001e95c used by: func_22cc6_spiflash_rd_6 draw_channel_label 0x2001e95d used by: draw_channel_label display_idle_screen draw_zone_channel scr_mode_stable 0x2001e95e used by: func_22cc6_spiflash_rd_6 load_contact_call draw_zone_channel write_current_channel_info_to_spi_long |__ func_22b42 0x2001e95f used by: func_478d0 0x2001e960 used by: task_468f8 Start create_many_semas 0x2001e961 used by: func_4cf06_uses_ADC2_and_TIM3 func_4ce88 0x2001e965 used by: ambe_4a9f8 Start_2_more_tasks__init_vocoder_tasks__Q 0x2001e966 used by: ambe_4aa78 Start_2_more_tasks__init_vocoder_tasks__Q 0x2001e967 used by: ambe_4aa78 Start_2_more_tasks__init_vocoder_tasks__Q 0x2001e968 used by: func_48f92