stm32启动过程(汇编代码)及汇编到main函数的转换过程的实现

时间:2021-04-25 09:23:11
0x08000000 0210      LSLS     r0,r2,#8
0x08000002 2000      MOVS     r0,#0x00
0x08000004 1905      ADDS     r5,r0,r4
0x08000006 0800      LSRS     r0,r0,#0
0x08000008 1909      ADDS     r1,r1,r4
0x0800000A 0800      LSRS     r0,r0,#0
0x0800000C 190B      ADDS     r3,r1,r4
0x0800000E 0800      LSRS     r0,r0,#0
0x08000010 190D      ADDS     r5,r1,r4
0x08000012 0800      LSRS     r0,r0,#0
0x08000014 190F      ADDS     r7,r1,r4
0x08000016 0800      LSRS     r0,r0,#0
0x08000018 1911      ADDS     r1,r2,r4
0x0800001A 0800      LSRS     r0,r0,#0
0x0800001C 0000      MOVS     r0,r0
0x0800001E 0000      MOVS     r0,r0
0x08000020 0000      MOVS     r0,r0
0x08000022 0000      MOVS     r0,r0
0x08000024 0000      MOVS     r0,r0
0x08000026 0000      MOVS     r0,r0
0x08000028 0000      MOVS     r0,r0
0x0800002A 0000      MOVS     r0,r0
0x0800002C 1913      ADDS     r3,r2,r4
0x0800002E 0800      LSRS     r0,r0,#0
0x08000030 1915      ADDS     r5,r2,r4
0x08000032 0800      LSRS     r0,r0,#0
0x08000034 0000      MOVS     r0,r0
0x08000036 0000      MOVS     r0,r0
0x08000038 1917      ADDS     r7,r2,r4
0x0800003A 0800      LSRS     r0,r0,#0
0x0800003C 0101      LSLS     r1,r0,#4
0x0800003E 0800      LSRS     r0,r0,#0
0x08000040 191B      ADDS     r3,r3,r4
0x08000042 0800      LSRS     r0,r0,#0
0x08000044 191B      ADDS     r3,r3,r4
0x08000046 0800      LSRS     r0,r0,#0
0x08000048 191B      ADDS     r3,r3,r4
0x0800004A 0800      LSRS     r0,r0,#0
0x0800004C 191B      ADDS     r3,r3,r4
0x0800004E 0800      LSRS     r0,r0,#0
0x08000050 191B      ADDS     r3,r3,r4
0x08000052 0800      LSRS     r0,r0,#0
0x08000054 191B      ADDS     r3,r3,r4
0x08000056 0800      LSRS     r0,r0,#0
0x08000058 191B      ADDS     r3,r3,r4
0x0800005A 0800      LSRS     r0,r0,#0
0x0800005C 191B      ADDS     r3,r3,r4
0x0800005E 0800      LSRS     r0,r0,#0
0x08000060 191B      ADDS     r3,r3,r4
0x08000062 0800      LSRS     r0,r0,#0
0x08000064 191B      ADDS     r3,r3,r4
0x08000066 0800      LSRS     r0,r0,#0
0x08000068 191B      ADDS     r3,r3,r4
0x0800006A 0800      LSRS     r0,r0,#0
0x0800006C 191B      ADDS     r3,r3,r4
0x0800006E 0800      LSRS     r0,r0,#0
0x08000070 191B      ADDS     r3,r3,r4
0x08000072 0800      LSRS     r0,r0,#0
0x08000074 191B      ADDS     r3,r3,r4
0x08000076 0800      LSRS     r0,r0,#0
0x08000078 191B      ADDS     r3,r3,r4
0x0800007A 0800      LSRS     r0,r0,#0
0x0800007C 191B      ADDS     r3,r3,r4
0x0800007E 0800      LSRS     r0,r0,#0
0x08000080 191B      ADDS     r3,r3,r4
0x08000082 0800      LSRS     r0,r0,#0
0x08000084 191B      ADDS     r3,r3,r4
0x08000086 0800      LSRS     r0,r0,#0
0x08000088 191B      ADDS     r3,r3,r4
0x0800008A 0800      LSRS     r0,r0,#0
0x0800008C 191B      ADDS     r3,r3,r4
0x0800008E 0800      LSRS     r0,r0,#0
0x08000090 191B      ADDS     r3,r3,r4
0x08000092 0800      LSRS     r0,r0,#0
0x08000094 191B      ADDS     r3,r3,r4
0x08000096 0800      LSRS     r0,r0,#0
0x08000098 191B      ADDS     r3,r3,r4
0x0800009A 0800      LSRS     r0,r0,#0
0x0800009C 191B      ADDS     r3,r3,r4
0x0800009E 0800      LSRS     r0,r0,#0
0x080000A0 191B      ADDS     r3,r3,r4
0x080000A2 0800      LSRS     r0,r0,#0
0x080000A4 191B      ADDS     r3,r3,r4
0x080000A6 0800      LSRS     r0,r0,#0
0x080000A8 191B      ADDS     r3,r3,r4
0x080000AA 0800      LSRS     r0,r0,#0
0x080000AC 191B      ADDS     r3,r3,r4
0x080000AE 0800      LSRS     r0,r0,#0
0x080000B0 191B      ADDS     r3,r3,r4
0x080000B2 0800      LSRS     r0,r0,#0
0x080000B4 191B      ADDS     r3,r3,r4
0x080000B6 0800      LSRS     r0,r0,#0
0x080000B8 191B      ADDS     r3,r3,r4
0x080000BA 0800      LSRS     r0,r0,#0
0x080000BC 191B      ADDS     r3,r3,r4
0x080000BE 0800      LSRS     r0,r0,#0
0x080000C0 191B      ADDS     r3,r3,r4
0x080000C2 0800      LSRS     r0,r0,#0
0x080000C4 191B      ADDS     r3,r3,r4
0x080000C6 0800      LSRS     r0,r0,#0
0x080000C8 191B      ADDS     r3,r3,r4
0x080000CA 0800      LSRS     r0,r0,#0
0x080000CC 191B      ADDS     r3,r3,r4
0x080000CE 0800      LSRS     r0,r0,#0
0x080000D0 191B      ADDS     r3,r3,r4
0x080000D2 0800      LSRS     r0,r0,#0
0x080000D4 191B      ADDS     r3,r3,r4
0x080000D6 0800      LSRS     r0,r0,#0
0x080000D8 191B      ADDS     r3,r3,r4
0x080000DA 0800      LSRS     r0,r0,#0
0x080000DC 191B      ADDS     r3,r3,r4
0x080000DE 0800      LSRS     r0,r0,#0
0x080000E0 191B      ADDS     r3,r3,r4
0x080000E2 0800      LSRS     r0,r0,#0
0x080000E4 191B      ADDS     r3,r3,r4
0x080000E6 0800      LSRS     r0,r0,#0
0x080000E8 191B      ADDS     r3,r3,r4
0x080000EA 0800      LSRS     r0,r0,#0
                 _main_stk:
0x080000EC F8DFD00C  LDR.W    sp,[pc,#12]  ; @0x080000FC
                 _main_scatterload:
0x080000F0 F001FC62  BL.W     __scatterload_rt2 (0x080019B8)
                 _main_init:
0x080000F4 4800      LDR      r0,[pc,#0]  ; @0x080000F8;r0=0x08000119
0x080000F6 4700      BX       r0
0x080000F8 0119      LSLS     r1,r3,#4
0x080000FA 0800      LSRS     r0,r0,#0
0x080000FC 0210      LSLS     r0,r2,#8
0x080000FE 2000      MOVS     r0,#0x00
    31:   TimeTick++;
0x08000100 488D      LDR      r0,[pc,#564]  ; @0x08000338
0x08000102 6801      LDR      r1,[r0,#0x00]
0x08000104 1C49      ADDS     r1,r1,#1
0x08000106 6001      STR      r1,[r0,#0x00]
    32: }
    33: 
    34: void Delay (unsigned long tick) {
    35:   unsigned long timetick;
    36: 
0x08000108 4770      BX       lr
    37:   timetick = TimeTick;
0x0800010A 498B      LDR      r1,[pc,#556]  ; @0x08000338
0x0800010C 680A      LDR      r2,[r1,#0x00]
    38:   while ((TimeTick - timetick) < tick);
0x0800010E 680B      LDR      r3,[r1,#0x00]
0x08000110 1A9B      SUBS     r3,r3,r2
0x08000112 4283      CMP      r3,r0
0x08000114 D3FB      BCC      0x0800010E
    39: }
    40: 
    41: 
0x08000116 4770      BX       lr
    42: int main (void) {
    43:   unsigned long cnt;
    44:   unsigned char buf[6];
    45: 
0x08000118 B51C      PUSH     {r2-r4,lr}
    46:   SetupClock();
0x0800011A F000F945  BL.W     SetupClock (0x080003A8)
    47:   SetupLED  ();
0x0800011E F000F983  BL.W     SetupLED (0x08000428)
    48:   SetupKBD  ();
    49: 
0x08000122 F000F994  BL.W     SetupKBD (0x0800044E)
    50:   SPI_FLASH_Init();                     /* Initialize the SPI FLASH driver */
0x08000126 F000F9D5  BL.W     SPI_FLASH_Init (0x080004D4)
    51:   LCD_Init();                           /* Initialize the LCD */
0x0800012A F000FF5A  BL.W     LCD_Init (0x08000FE2)
    52:   LCD_Clear(White);                     /* Clear the LCD */
    53: 
    54:   /* Display ST Logo (if exists on SPI Flash) */
0x0800012E F64F74FF  MOVW     r4,#0xFFFF
0x08000132 4620      MOV      r0,r4
0x08000134 F001F837  BL.W     LCD_Clear (0x080011A6)
    55:   SPI_FLASH_BufferRead(buf, 0x0064FD00, 6);
0x08000138 4D80      LDR      r5,[pc,#512]  ; @0x0800033C
0x0800013A 2206      MOVS     r2,#0x06
0x0800013C 4629      MOV      r1,r5
0x0800013E 4668      MOV      r0,sp
0x08000140 F000FB06  BL.W     SPI_FLASH_BufferRead (0x08000750)
    56:   if (strncmp((const char *)buf, "BM\x42\x58\x02\x00", 6) == 0) {
0x08000144 2206      MOVS     r2,#0x06
0x08000146 A17E      ADR      r1,{pc}+2  ; @0x08000340
0x08000148 4668      MOV      r0,sp
0x0800014A F001FC26  BL.W     strncmp (0x0800199A)
    57:     LCD_SetDisplayWindow(239, 319, 240, 320);
0x0800014E F44F77A0  MOV      r7,#0x140
0x08000152 1E7E      SUBS     r6,r7,#1
0x08000154 B958      CBNZ     r0,0x0800016E
0x08000156 463B      MOV      r3,r7
0x08000158 22F0      MOVS     r2,#0xF0
0x0800015A 4631      MOV      r1,r6
0x0800015C 20EF      MOVS     r0,#0xEF
0x0800015E F001F846  BL.W     LCD_SetDisplayWindow (0x080011EE)
    58:     LCD_DrawBMP(0x0064FD00);
0x08000162 4628      MOV      r0,r5
0x08000164 F001FA91  BL.W     LCD_DrawBMP (0x0800168A)
    59:     Delay(100);
    60:   }
    61:   
    62:   /* Display STM32 Slide (if exists on SPI Flash) */
0x08000168 2064      MOVS     r0,#0x64
0x0800016A F7FFFFCE  BL.W     Delay (0x0800010A)
    63:   SPI_FLASH_BufferRead(buf, 0x00414400, 6);
0x0800016E 4D76      LDR      r5,[pc,#472]  ; @0x08000348
0x08000170 2206      MOVS     r2,#0x06
0x08000172 4629      MOV      r1,r5
0x08000174 4668      MOV      r0,sp
0x08000176 F000FAEB  BL.W     SPI_FLASH_BufferRead (0x08000750)
    64:   if (strncmp((const char *)buf, "BM\x42\x58\x02\x00", 6) == 0) {
0x0800017A 2206      MOVS     r2,#0x06
0x0800017C A170      ADR      r1,{pc}+4  ; @0x08000340
0x0800017E 4668      MOV      r0,sp
0x08000180 F001FC0B  BL.W     strncmp (0x0800199A)
0x08000184 B958      CBNZ     r0,0x0800019E
    65:     LCD_SetDisplayWindow(239, 319, 240, 320);
0x08000186 463B      MOV      r3,r7
0x08000188 22F0      MOVS     r2,#0xF0
0x0800018A 4631      MOV      r1,r6
0x0800018C 20EF      MOVS     r0,#0xEF
0x0800018E F001F82E  BL.W     LCD_SetDisplayWindow (0x080011EE)
    66:     LCD_DrawBMP(0x00414400);
0x08000192 4628      MOV      r0,r5
0x08000194 F001FA79  BL.W     LCD_DrawBMP (0x0800168A)
    67:     Delay(200);  
    68:   }
    69: 
    70:   /* Display Keil Logo */
0x08000198 20C8      MOVS     r0,#0xC8
0x0800019A F7FFFFB6  BL.W     Delay (0x0800010A)
    71:   LCD_Clear(White);                     /* Clear the LCD */
0x0800019E F64F74FF  MOVW     r4,#0xFFFF
0x080001A2 4620      MOV      r0,r4
0x080001A4 F000FFFF  BL.W     LCD_Clear (0x080011A6)
    72:   LCD_SetBackColor(White);              /* Set the Back Color */
0x080001A8 4620      MOV      r0,r4
0x080001AA F000FF30  BL.W     LCD_SetBackColor (0x0800100E)
    73:   LCD_SetTextColor(0x0238);             /* Set the Text Color */
    74: 
0x080001AE F44F700E  MOV      r0,#0x238
0x080001B2 F000FF29  BL.W     LCD_SetTextColor (0x08001008)
    75:   LCD_SetDisplayWindow(144, 240, 48, 160);
0x080001B6 23A0      MOVS     r3,#0xA0
0x080001B8 2230      MOVS     r2,#0x30
0x080001BA 21F0      MOVS     r1,#0xF0
0x080001BC 2090      MOVS     r0,#0x90
0x080001BE F001F816  BL.W     LCD_SetDisplayWindow (0x080011EE)
    76:   LCD_DrawMonoBMP((u32)Keil_Logo);
0x080001C2 4862      LDR      r0,[pc,#392]  ; @0x0800034C
0x080001C4 F001FA27  BL.W     LCD_DrawMonoBMP (0x08001616)
    77:   Delay(200);
    78: 
0x080001C8 20C8      MOVS     r0,#0xC8
0x080001CA F7FFFF9E  BL.W     Delay (0x0800010A)
    79:   LCD_SetDisplayWindow(239, 319, 240, 320);
0x080001CE 463B      MOV      r3,r7
0x080001D0 22F0      MOVS     r2,#0xF0
0x080001D2 4631      MOV      r1,r6
0x080001D4 20EF      MOVS     r0,#0xEF
0x080001D6 F001F80A  BL.W     LCD_SetDisplayWindow (0x080011EE)
    80:   LCD_Clear(White);                     /* Clear the LCD */
    81: 
0x080001DA 4620      MOV      r0,r4
0x080001DC F000FFE3  BL.W     LCD_Clear (0x080011A6)
    82:   LCD_SetBackColor(Blue);               /* Set the Back Color */
0x080001E0 201F      MOVS     r0,#0x1F
0x080001E2 F000FF14  BL.W     LCD_SetBackColor (0x0800100E)
    83:   LCD_SetTextColor(White);              /* Set the Text Color */
0x080001E6 4620      MOV      r0,r4
0x080001E8 F000FF0E  BL.W     LCD_SetTextColor (0x08001008)
    84:   LCD_DisplayStringLine(Line0, "STM32 Demonstration ");
0x080001EC A158      ADR      r1,{pc}+4  ; @0x08000350
0x080001EE 2000      MOVS     r0,#0x00
0x080001F0 F000FFC0  BL.W     LCD_DisplayStringLine (0x08001174)
    85:   LCD_SetBackColor(White);              /* Set the Back Color */
0x080001F4 4620      MOV      r0,r4
0x080001F6 F000FF0A  BL.W     LCD_SetBackColor (0x0800100E)
    86:   LCD_SetTextColor(Blue);               /* Set the Text Color */
0x080001FA 201F      MOVS     r0,#0x1F
0x080001FC F000FF04  BL.W     LCD_SetTextColor (0x08001008)
    87:   LCD_DisplayStringLine(Line2, "Designed with RV-MDK");
    88: 
0x08000200 A159      ADR      r1,{pc}+4  ; @0x08000368
0x08000202 2030      MOVS     r0,#0x30
0x08000204 F000FFB6  BL.W     LCD_DisplayStringLine (0x08001174)
    89:   LCD_SetBackColor(White);              /* Set the Back Color */
0x08000208 4620      MOV      r0,r4
0x0800020A F000FF00  BL.W     LCD_SetBackColor (0x0800100E)
    90:   LCD_SetTextColor(Green);              /* Set the Text Color */
    91: 
0x0800020E F44F60FC  MOV      r0,#0x7E0
0x08000212 F000FEF9  BL.W     LCD_SetTextColor (0x08001008)
    92:   LCD_DisplayStringLine(Line6, "   Keyboard Test:   ");
    93: 
    94:   cnt = 0;
    95: 
    96:   for (;;) {
    97: 
0x08000216 A15A      ADR      r1,{pc}+2  ; @0x08000380
0x08000218 2090      MOVS     r0,#0x90
0x0800021A F000FFAB  BL.W     LCD_DisplayStringLine (0x08001174)
    98:     LED_Off(0x0F);                      /* Turn Off all LEDs */
    99:     LED_On (1 << (cnt/40));             /* Turn On one LED */
   100: 
   101:     if ((cnt & 0x07) == 0) {
   102:       LCD_SetBackColor(Cyan);
   103:       LCD_DisplayChar(Line4, 319-2*cnt, ' ');
   104:       LCD_SetBackColor(White);
   105:     }
   106:     if (++cnt == 160) {
   107:       cnt = 0;
   108:       LCD_ClearLine(Line4);
   109:     }
   110: 
   111:     LCD_SetTextColor(Red);
   112: 
   113:     /* Read "Left" Key */
0x0800021E 4D5E      LDR      r5,[pc,#376]  ; @0x08000398
   114:     if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_1)) {
   115:       LCD_DisplayChar(Line8, 319-136, 0x80+9);
   116:     } else {
   117:       LCD_DisplayChar(Line8, 319-136, 0x80+8);
   118:     }
   119: 
   120:     /* Read "Right" Key */
   121:     if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_0)) {
   122:       LCD_DisplayChar(Line8, 319-168, 0x80+11);
   123:     } else {
   124:       LCD_DisplayChar(Line8, 319-168, 0x80+10);
   125:     }
   126: 
   127:     /* Read "Up" Key */
0x08000220 F8DFB178  LDR.W    r11,[pc,#376]  ; @0x0800039C
   128:     if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_8)) {
   129:       LCD_DisplayChar(Line7, 319-152, 0x80+5);
   130:     } else {
0x08000224 F8DF8178  LDR.W    r8,[pc,#376]  ; @0x080003A0
    94:   cnt = 0;
    95: 
    96:   for (;;) {
    97: 
    98:     LED_Off(0x0F);                      /* Turn Off all LEDs */
0x08000228 2400      MOVS     r4,#0x00
    99:     LED_On (1 << (cnt/40));             /* Turn On one LED */
   100: 
0x0800022A F04F0928  MOV      r9,#0x28
0x0800022E F04F0A01  MOV      r10,#0x01
    98:     LED_Off(0x0F);                      /* Turn Off all LEDs */
    99:     LED_On (1 << (cnt/40));             /* Turn On one LED */
   100: 
0x08000232 68E8      LDR      r0,[r5,#0x0C]
0x08000234 F4207070  BIC      r0,r0,#0x3C0
0x08000238 60E8      STR      r0,[r5,#0x0C]
0x0800023A FBB4F1F9  UDIV     r1,r4,r9
0x0800023E FA0AF001  LSL      r0,r10,r1
0x08000242 68E9      LDR      r1,[r5,#0x0C]
0x08000244 EA411080  ORR      r0,r1,r0,LSL #6
0x08000248 60E8      STR      r0,[r5,#0x0C]
   101:     if ((cnt & 0x07) == 0) {
0x0800024A 0760      LSLS     r0,r4,#29
0x0800024C D10F      BNE      0x0800026E
   102:       LCD_SetBackColor(Cyan);
0x0800024E F64770FF  MOVW     r0,#0x7FFF
0x08000252 F000FEDC  BL.W     LCD_SetBackColor (0x0800100E)
   103:       LCD_DisplayChar(Line4, 319-2*cnt, ' ');
0x08000256 4260      RSBS     r0,r4,#0
0x08000258 EB060040  ADD      r0,r6,r0,LSL #1
0x0800025C B281      UXTH     r1,r0
0x0800025E 2220      MOVS     r2,#0x20
0x08000260 2060      MOVS     r0,#0x60
0x08000262 F000FF7F  BL.W     LCD_DisplayChar (0x08001164)
   104:       LCD_SetBackColor(White);
   105:     }
0x08000266 F64F70FF  MOVW     r0,#0xFFFF
0x0800026A F000FED0  BL.W     LCD_SetBackColor (0x0800100E)
   106:     if (++cnt == 160) {
0x0800026E 1C64      ADDS     r4,r4,#1
0x08000270 2CA0      CMP      r4,#0xA0
0x08000272 D103      BNE      0x0800027C
   107:       cnt = 0;
0x08000274 2400      MOVS     r4,#0x00
   108:       LCD_ClearLine(Line4);
   109:     }
   110: 
0x08000276 2060      MOVS     r0,#0x60
0x08000278 F000FF93  BL.W     LCD_ClearLine (0x080011A2)
   111:     LCD_SetTextColor(Red);
   112: 
   113:     /* Read "Left" Key */
0x0800027C F44F4078  MOV      r0,#0xF800
0x08000280 F000FEC2  BL.W     LCD_SetTextColor (0x08001008)
   114:     if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_1)) {
   115:       LCD_DisplayChar(Line8, 319-136, 0x80+9);
   116:     } else {
0x08000284 2102      MOVS     r1,#0x02
0x08000286 465F      MOV      r7,r11
0x08000288 4658      MOV      r0,r11
0x0800028A F001FC23  BL.W     GPIO_ReadInputDataBit (0x08001AD4)
0x0800028E B3F0      CBZ      r0,0x0800030E
   117:       LCD_DisplayChar(Line8, 319-136, 0x80+8);
   118:     }
   119: 
   120:     /* Read "Right" Key */
0x08000290 2288      MOVS     r2,#0x88
0x08000292 21B7      MOVS     r1,#0xB7
0x08000294 20C0      MOVS     r0,#0xC0
0x08000296 F000FF65  BL.W     LCD_DisplayChar (0x08001164)
   121:     if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_0)) {
   122:       LCD_DisplayChar(Line8, 319-168, 0x80+11);
   123:     } else {
0x0800029A 2101      MOVS     r1,#0x01
0x0800029C 4638      MOV      r0,r7
0x0800029E F001FC19  BL.W     GPIO_ReadInputDataBit (0x08001AD4)
0x080002A2 B3A8      CBZ      r0,0x08000310
   124:       LCD_DisplayChar(Line8, 319-168, 0x80+10);
   125:     }
   126: 
   127:     /* Read "Up" Key */
0x080002A4 228A      MOVS     r2,#0x8A
0x080002A6 2197      MOVS     r1,#0x97
0x080002A8 20C0      MOVS     r0,#0xC0
0x080002AA F000FF5B  BL.W     LCD_DisplayChar (0x08001164)
   128:     if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_8)) {
   129:       LCD_DisplayChar(Line7, 319-152, 0x80+5);
   130:     } else {
0x080002AE F44F7180  MOV      r1,#0x100
0x080002B2 4647      MOV      r7,r8
0x080002B4 4640      MOV      r0,r8
0x080002B6 F001FC0D  BL.W     GPIO_ReadInputDataBit (0x08001AD4)
0x080002BA B350      CBZ      r0,0x08000312
   131:       LCD_DisplayChar(Line7, 319-152, 0x80+4);
   132:     }
   133: 
   134:     /* Read "Down" Key */
0x080002BC 2284      MOVS     r2,#0x84
0x080002BE 21A7      MOVS     r1,#0xA7
0x080002C0 20A8      MOVS     r0,#0xA8
0x080002C2 F000FF4F  BL.W     LCD_DisplayChar (0x08001164)
   135:     if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_14)) {
   136:       LCD_DisplayChar(Line9, 319-152, 0x80+7);
   137:     } else {
0x080002C6 F44F4180  MOV      r1,#0x4000
0x080002CA 4638      MOV      r0,r7
0x080002CC F001FC02  BL.W     GPIO_ReadInputDataBit (0x08001AD4)
0x080002D0 B360      CBZ      r0,0x0800032C
   138:       LCD_DisplayChar(Line9, 319-152, 0x80+6);
   139:     }
   140: 
   141:     /* Read "Sel" Key */
0x080002D2 2286      MOVS     r2,#0x86
0x080002D4 21A7      MOVS     r1,#0xA7
0x080002D6 20D8      MOVS     r0,#0xD8
0x080002D8 F000FF44  BL.W     LCD_DisplayChar (0x08001164)
   142:     if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_12)) {
   143:       LCD_DisplayChar(Line8, 319-152, 0x80+1);
   144:     } else {
0x080002DC F44F5180  MOV      r1,#0x1000
0x080002E0 4638      MOV      r0,r7
0x080002E2 F001FBF7  BL.W     GPIO_ReadInputDataBit (0x08001AD4)
0x080002E6 B318      CBZ      r0,0x08000330
   145:       LCD_DisplayChar(Line8, 319-152, 0x80+0);
   146:     }
   147: 
0x080002E8 2280      MOVS     r2,#0x80
0x080002EA 21A7      MOVS     r1,#0xA7
0x080002EC 20C0      MOVS     r0,#0xC0
0x080002EE F000FF39  BL.W     LCD_DisplayChar (0x08001164)
   148:     LCD_SetTextColor(Magenta);
   149: 
   150:     /* Read "Key" Key */
0x080002F2 F64F001F  MOVW     r0,#0xF81F
0x080002F6 F000FE87  BL.W     LCD_SetTextColor (0x08001008)
   151:     if(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9)) {
   152:       LCD_DisplayChar(Line8, 319-206, 0x80+3);
   153:     } else {
0x080002FA F44F7100  MOV      r1,#0x200
0x080002FE 4829      LDR      r0,[pc,#164]  ; @0x080003A4
0x08000300 F001FBE8  BL.W     GPIO_ReadInputDataBit (0x08001AD4)
0x08000304 B1B0      CBZ      r0,0x08000334
   154:       LCD_DisplayChar(Line8, 319-206, 0x80+2);
   155:     }
   156: 
0x08000306 2282      MOVS     r2,#0x82
0x08000308 2171      MOVS     r1,#0x71
0x0800030A 20C0      MOVS     r0,#0xC0
0x0800030C E002      B        0x08000314
0x0800030E E007      B        0x08000320
0x08000310 E008      B        0x08000324
0x08000312 E009      B        0x08000328
0x08000314 F000FF26  BL.W     LCD_DisplayChar (0x08001164)
   157:     Delay(5);
0x08000318 2005      MOVS     r0,#0x05
0x0800031A F7FFFEF6  BL.W     Delay (0x0800010A)
0x0800031E E788      B        0x08000232
   115:       LCD_DisplayChar(Line8, 319-136, 0x80+9);
   116:     } else {
   117:       LCD_DisplayChar(Line8, 319-136, 0x80+8);
   118:     }
   119: 
   120:     /* Read "Right" Key */
   121:     if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_0)) {
0x08000320 2289      MOVS     r2,#0x89
0x08000322 E7B6      B        0x08000292
   122:       LCD_DisplayChar(Line8, 319-168, 0x80+11);
   123:     } else {
   124:       LCD_DisplayChar(Line8, 319-168, 0x80+10);
   125:     }
   126: 
   127:     /* Read "Up" Key */
   128:     if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_8)) {
0x08000324 228B      MOVS     r2,#0x8B
0x08000326 E7BE      B        0x080002A6
   129:       LCD_DisplayChar(Line7, 319-152, 0x80+5);
   130:     } else {
   131:       LCD_DisplayChar(Line7, 319-152, 0x80+4);
   132:     }
   133: 
   134:     /* Read "Down" Key */
   135:     if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_14)) {
0x08000328 2285      MOVS     r2,#0x85
0x0800032A E7C8      B        0x080002BE
   136:       LCD_DisplayChar(Line9, 319-152, 0x80+7);
   137:     } else {
   138:       LCD_DisplayChar(Line9, 319-152, 0x80+6);
   139:     }
   140: 
   141:     /* Read "Sel" Key */
   142:     if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_12)) {
0x0800032C 2287      MOVS     r2,#0x87
0x0800032E E7D1      B        0x080002D4
   143:       LCD_DisplayChar(Line8, 319-152, 0x80+1);
   144:     } else {
   145:       LCD_DisplayChar(Line8, 319-152, 0x80+0);
   146:     }
   147: 
   148:     LCD_SetTextColor(Magenta);
   149: 
   150:     /* Read "Key" Key */
   151:     if(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9)) {
0x08000330 2281      MOVS     r2,#0x81
0x08000332 E7DA      B        0x080002EA
   152:       LCD_DisplayChar(Line8, 319-206, 0x80+3);
0x08000334 2283      MOVS     r2,#0x83
0x08000336 E7E7      B        0x08000308
0x08000338 0000      MOVS     r0,r0
0x0800033A 2000      MOVS     r0,#0x00
0x0800033C FD000064  DCD      0xFD000064   ; ? Undefined
0x08000340 4D42      LDR      r5,[pc,#264]  ; @0x0800044C
0x08000342 5842      LDR      r2,[r0,r1]
0x08000344 0002      MOVS     r2,r0
0x08000346 0000      MOVS     r0,r0
0x08000348 4400      ADD      r0,r0,r0
0x0800034A 0041      LSLS     r1,r0,#1
0x0800034C 31E8      ADDS     r1,r1,#0xE8
0x0800034E 0800      LSRS     r0,r0,#0
0x08000350 5453      STRB     r3,[r2,r1]
0x08000352 334D      ADDS     r3,r3,#0x4D
0x08000354 2032      MOVS     r0,#0x32
0x08000356 6544      STR      r4,[r0,#0x54]
0x08000358 6F6D      LDR      r5,[r5,#0x74]
0x0800035A 736E      STRB     r6,[r5,#0x0D]
0x0800035C 7274      STRB     r4,[r6,#0x09]
0x0800035E 7461      STRB     r1,[r4,#0x11]
0x08000360 6F69      LDR      r1,[r5,#0x74]
0x08000362 206E      MOVS     r0,#0x6E
0x08000364 0000      MOVS     r0,r0
0x08000366 0000      MOVS     r0,r0
0x08000368 6544      STR      r4,[r0,#0x54]
0x0800036A 6973      LDR      r3,[r6,#0x14]
0x0800036C 6E67      LDR      r7,[r4,#0x64]
0x0800036E 6465      STR      r5,[r4,#0x44]
0x08000370 7720      STRB     r0,[r4,#0x1C]
0x08000372 7469      STRB     r1,[r5,#0x11]
0x08000374 2068      MOVS     r0,#0x68
0x08000376 5652      LDRSB    r2,[r2,r1]
0x08000378 4D2D      LDR      r5,[pc,#180]  ; @0x08000430
0x0800037A 4B44      LDR      r3,[pc,#272]  ; @0x0800048C
0x0800037C 0000      MOVS     r0,r0
0x0800037E 0000      MOVS     r0,r0
0x08000380 2020      MOVS     r0,#0x20
0x08000382 4B20      LDR      r3,[pc,#128]  ; @0x08000404
0x08000384 7965      LDRB     r5,[r4,#0x05]
0x08000386 6F62      LDR      r2,[r4,#0x74]
0x08000388 7261      STRB     r1,[r4,#0x09]
0x0800038A 2064      MOVS     r0,#0x64
0x0800038C 6554      STR      r4,[r2,#0x54]
0x0800038E 7473      STRB     r3,[r6,#0x11]
0x08000390 203A      MOVS     r0,#0x3A
0x08000392 2020      MOVS     r0,#0x20
0x08000394 0000      MOVS     r0,r0
0x08000396 0000      MOVS     r0,r0
0x08000398 1000      ASRS     r0,r0,#0
0x0800039A 4001      ANDS     r1,r1,r0
0x0800039C 1800      ADDS     r0,r0,r0
0x0800039E 4001      ANDS     r1,r1,r0
0x080003A0 1400      ASRS     r0,r0,#16
0x080003A2 4001      ANDS     r1,r1,r0
0x080003A4 0C00      LSRS     r0,r0,#16
0x080003A6 4001      ANDS     r1,r1,r0
    15: {
0x080003A8 B510      PUSH     {r4,lr}
    16:   RCC_DeInit ();                        /* RCC system reset(for debug purpose)*/
0x080003AA F001FBDD  BL.W     RCC_DeInit (0x08001B68)
    17:   RCC_HSEConfig (RCC_HSE_ON);           /* Enable HSE */
    18: 
    19:   /* Wait till HSE is ready */
0x080003AE F44F3480  MOV      r4,#0x10000
0x080003B2 4620      MOV      r0,r4
0x080003B4 F001FC20  BL.W     RCC_HSEConfig (0x08001BF8)
    20:   while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);
    21: 
0x080003B8 2031      MOVS     r0,#0x31
0x080003BA F001FBF3  BL.W     RCC_GetFlagStatus (0x08001BA4)
0x080003BE 2800      CMP      r0,#0x00
0x080003C0 D0FA      BEQ      0x080003B8
    22:   RCC_HCLKConfig   (RCC_SYSCLK_Div1);   /* HCLK   = SYSCLK  */
0x080003C2 2000      MOVS     r0,#0x00
0x080003C4 F001FC0E  BL.W     RCC_HCLKConfig (0x08001BE4)
    23:   RCC_PCLK2Config  (RCC_HCLK_Div1);     /* PCLK2  = HCLK    */
0x080003C8 2000      MOVS     r0,#0x00
0x080003CA F001FC39  BL.W     RCC_PCLK2Config (0x08001C40)
    24:   RCC_PCLK1Config  (RCC_HCLK_Div2);     /* PCLK1  = HCLK/2  */
0x080003CE F44F6080  MOV      r0,#0x400
0x080003D2 F001FC2B  BL.W     RCC_PCLK1Config (0x08001C2C)
    25:   RCC_ADCCLKConfig (RCC_PCLK2_Div6);    /* ADCCLK = PCLK2/6 */
    26: 
0x080003D6 F44F4000  MOV      r0,#0x8000
0x080003DA F001FB8B  BL.W     RCC_ADCCLKConfig (0x08001AF4)
    27:   FLASH_SetLatency(FLASH_Latency_2);    /* Flash 2 wait state */
0x080003DE 2002      MOVS     r0,#0x02
0x080003E0 F001FB08  BL.W     FLASH_SetLatency (0x080019F4)
    28:   FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
    29: 
    30:   /* PLLCLK = 8MHz * 9 = 72 MHz */
0x080003E4 2010      MOVS     r0,#0x10
0x080003E6 F001FAF9  BL.W     FLASH_PrefetchBufferCmd (0x080019DC)
    31:   RCC_PLLConfig (RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
    32: 
0x080003EA F44F11E0  MOV      r1,#0x1C0000
0x080003EE 4620      MOV      r0,r4
0x080003F0 F001FC36  BL.W     RCC_PLLConfig (0x08001C60)
    33:   RCC_PLLCmd (ENABLE);                  /* Enable PLL */
    34: 
    35:   /* Wait till PLL is ready */
0x080003F4 2001      MOVS     r0,#0x01
0x080003F6 F001FC2D  BL.W     RCC_PLLCmd (0x08001C54)
    36:   while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
    37: 
    38:   /* Select PLL as system clock source */
0x080003FA 2039      MOVS     r0,#0x39
0x080003FC F001FBD2  BL.W     RCC_GetFlagStatus (0x08001BA4)
0x08000400 2800      CMP      r0,#0x00
0x08000402 D0FA      BEQ      0x080003FA
    39:   RCC_SYSCLKConfig (RCC_SYSCLKSource_PLLCLK);
    40: 
    41:   /* Wait till PLL is used as system clock source */
0x08000404 2002      MOVS     r0,#0x02
0x08000406 F001FC35  BL.W     RCC_SYSCLKConfig (0x08001C74)
    42:   while (RCC_GetSYSCLKSource() != 0x08);
    43: 
    44:   /* SysTick event each 10 ms with input clock equal to 9MHz (HCLK/8) */
0x0800040A F001FBE3  BL.W     RCC_GetSYSCLKSource (0x08001BD4)
0x0800040E 2808      CMP      r0,#0x08
0x08000410 D1FB      BNE      0x0800040A
    45:   SysTick_SetReload(90000);
    46: 
    47:   /* Enable the SysTick Counter */
0x08000412 482A      LDR      r0,[pc,#168]  ; @0x080004BC
0x08000414 F001FCB5  BL.W     SysTick_SetReload (0x08001D82)
    48:   SysTick_CounterCmd(SysTick_Counter_Enable);
    49: 
    50:   /* Enable SysTick interrupt */
0x08000418 2001      MOVS     r0,#0x01
0x0800041A F001FC94  BL.W     SysTick_CounterCmd (0x08001D46)
    51:   SysTick_ITConfig(ENABLE);
    52: }
    53: 
    54: 
    55: GPIO_InitTypeDef  GPIO_InitStructure;
    56: 
0x0800041E E8BD4010  POP      {r4,lr}
0x08000422 2001      MOVS     r0,#0x01
0x08000424 F001BCA1  B.W      SysTick_ITConfig (0x08001D6A)
    57: void SetupLED (void) {
    58: 
    59:   /* Enable GPIOC clock */
0x08000428 B510      PUSH     {r4,lr}
    60:   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    61: 
    62:   /* Configure PC6..PC9 as outputs push-pull, max speed 50 MHz */
0x0800042A 2101      MOVS     r1,#0x01
0x0800042C 2010      MOVS     r0,#0x10
0x0800042E F001FB83  BL.W     RCC_APB2PeriphClockCmd (0x08001B38)
    63:   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7  | 
    64:                                  GPIO_Pin_8 | GPIO_Pin_9;
0x08000432 4823      LDR      r0,[pc,#140]  ; @0x080004C0
0x08000434 F44F7170  MOV      r1,#0x3C0
0x08000438 8001      STRH     r1,[r0,#0x00]
    65:   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
0x0800043A 2110      MOVS     r1,#0x10
0x0800043C 70C1      STRB     r1,[r0,#0x03]
    66:   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x0800043E 2103      MOVS     r1,#0x03
0x08000440 7081      STRB     r1,[r0,#0x02]
    67:   GPIO_Init(GPIOC, &GPIO_InitStructure);
    68: }
    69: 
0x08000442 4601      MOV      r1,r0
0x08000444 E8BD4010  POP      {r4,lr}
0x08000448 481E      LDR      r0,[pc,#120]  ; @0x080004C4
0x0800044A F001BAF3  B.W      GPIO_Init (0x08001A34)
    70: void SetupKBD (void) {
    71: 
    72:   /* Enable GPIOB, GPIOD, and GPIOE clocks */
0x0800044E B570      PUSH     {r4-r6,lr}
    73:   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | 
    74:                          RCC_APB2Periph_GPIOD | 
    75:                          RCC_APB2Periph_GPIOE, ENABLE);
    76:   
    77:   /* Configure PD.08, PD.12 and PD.14 as input floating */
0x08000450 2101      MOVS     r1,#0x01
0x08000452 2068      MOVS     r0,#0x68
0x08000454 F001FB70  BL.W     RCC_APB2PeriphClockCmd (0x08001B38)
    78:   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_12 | GPIO_Pin_14;
0x08000458 4C19      LDR      r4,[pc,#100]  ; @0x080004C0
0x0800045A F44F40A2  MOV      r0,#0x5100
    79:   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
0x0800045E 2504      MOVS     r5,#0x04
0x08000460 8020      STRH     r0,[r4,#0x00]
0x08000462 70E5      STRB     r5,[r4,#0x03]
    80:   GPIO_Init(GPIOD, &GPIO_InitStructure);
    81: 
    82:   /* Configure PE.00 and PE.01 as input floating */
0x08000464 4621      MOV      r1,r4
0x08000466 4818      LDR      r0,[pc,#96]  ; @0x080004C8
0x08000468 F001FAE4  BL.W     GPIO_Init (0x08001A34)
    83:   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
0x0800046C 2003      MOVS     r0,#0x03
0x0800046E 8020      STRH     r0,[r4,#0x00]
    84:   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
0x08000470 70E5      STRB     r5,[r4,#0x03]
    85:   GPIO_Init(GPIOE, &GPIO_InitStructure);
    86: 
    87:   /* Configure PB.09 as input floating */
0x08000472 4621      MOV      r1,r4
0x08000474 4815      LDR      r0,[pc,#84]  ; @0x080004CC
0x08000476 F001FADD  BL.W     GPIO_Init (0x08001A34)
    88:   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
0x0800047A 01E8      LSLS     r0,r5,#7
0x0800047C 8020      STRH     r0,[r4,#0x00]
    89:   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
0x0800047E 70E5      STRB     r5,[r4,#0x03]
    90:   GPIO_Init(GPIOB, &GPIO_InitStructure);
    91: 
    92:   /* RIGHT Button */
0x08000480 4621      MOV      r1,r4
0x08000482 4813      LDR      r0,[pc,#76]  ; @0x080004D0
0x08000484 F001FAD6  BL.W     GPIO_Init (0x08001A34)
    93:   GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource0);
    94: 
    95:   /* LEFT Button */
0x08000488 2100      MOVS     r1,#0x00
0x0800048A 2004      MOVS     r0,#0x04
0x0800048C F001FABE  BL.W     GPIO_EXTILineConfig (0x08001A0C)
    96:   GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource1);
    97: 
    98:   /* DOWN Button */
0x08000490 2101      MOVS     r1,#0x01
0x08000492 2004      MOVS     r0,#0x04
0x08000494 F001FABA  BL.W     GPIO_EXTILineConfig (0x08001A0C)
    99:   GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource14);
   100: 
   101:   /* UP Button */
0x08000498 210E      MOVS     r1,#0x0E
0x0800049A 2003      MOVS     r0,#0x03
0x0800049C F001FAB6  BL.W     GPIO_EXTILineConfig (0x08001A0C)
   102:   GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource8);
   103: 
   104:   /* SEL Button */
0x080004A0 2108      MOVS     r1,#0x08
0x080004A2 2003      MOVS     r0,#0x03
0x080004A4 F001FAB2  BL.W     GPIO_EXTILineConfig (0x08001A0C)
   105:   GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource12);
   106: 
   107:   /* KEY Button */
0x080004A8 210C      MOVS     r1,#0x0C
0x080004AA 2003      MOVS     r0,#0x03
0x080004AC F001FAAE  BL.W     GPIO_EXTILineConfig (0x08001A0C)
   108:   GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource9);
0x080004B0 E8BD4070  POP      {r4-r6,lr}
0x080004B4 2109      MOVS     r1,#0x09
0x080004B6 2001      MOVS     r0,#0x01
0x080004B8 F001BAA8  B.W      GPIO_EXTILineConfig (0x08001A0C)
0x080004BC 5F90      LDRSH    r0,[r2,r6]
0x080004BE 0001      MOVS     r1,r0
0x080004C0 0004      MOVS     r4,r0
0x080004C2 2000      MOVS     r0,#0x00
0x080004C4 1000      ASRS     r0,r0,#0
0x080004C6 4001      ANDS     r1,r1,r0
0x080004C8 1400      ASRS     r0,r0,#16
0x080004CA 4001      ANDS     r1,r1,r0
0x080004CC 1800      ADDS     r0,r0,r0
0x080004CE 4001      ANDS     r1,r1,r0
0x080004D0 0C00      LSRS     r0,r0,#16
0x080004D2 4001      ANDS     r1,r1,r0
    55: {
    56:   SPI_InitTypeDef  SPI_InitStructure;
    57:   GPIO_InitTypeDef GPIO_InitStructure;
    58:    
    59:   /* Enable SPI1 and GPIOA clocks */
0x080004D4 B530      PUSH     {r4-r5,lr}
0x080004D6 B087      SUB      sp,sp,#0x1C
    60:   RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 | RCC_APB2Periph_GPIOA, ENABLE);
    61:   
    62:   /* Configure SPI1 pins: NSS, SCK, MISO and MOSI */
0x080004D8 2101      MOVS     r1,#0x01
0x080004DA F2410004  MOVW     r0,#0x1004
0x080004DE F001FB2B  BL.W     RCC_APB2PeriphClockCmd (0x08001B38)
    63:   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
0x080004E2 20E0      MOVS     r0,#0xE0
0x080004E4 F8AD0014  STRH     r0,[sp,#0x14]
    64:   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x080004E8 2403      MOVS     r4,#0x03
0x080004EA F88D4016  STRB     r4,[sp,#0x16]
    65:   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
0x080004EE 2018      MOVS     r0,#0x18
    66:   GPIO_Init(GPIOA, &GPIO_InitStructure);
    67: 
    68:   /* Configure PA.4 as Output push-pull, used as Flash Chip select */
0x080004F0 4DD3      LDR      r5,[pc,#844]  ; @0x08000840
0x080004F2 F88D0017  STRB     r0,[sp,#0x17]
0x080004F6 A905      ADD      r1,sp,#0x14
0x080004F8 4628      MOV      r0,r5
0x080004FA F001FA9B  BL.W     GPIO_Init (0x08001A34)
    69:   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
0x080004FE 2110      MOVS     r1,#0x10
0x08000500 F8AD1014  STRH     r1,[sp,#0x14]
    70:   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x08000504 F88D4016  STRB     r4,[sp,#0x16]
    71:   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
0x08000508 F88D1017  STRB     r1,[sp,#0x17]
    72:   GPIO_Init(GPIOA, &GPIO_InitStructure);
    73: 
    74:   /* Deselect the FLASH: Chip Select high */
0x0800050C A905      ADD      r1,sp,#0x14
0x0800050E 4628      MOV      r0,r5
0x08000510 F001FA90  BL.W     GPIO_Init (0x08001A34)
    75:   SPI_FLASH_CS_HIGH();
    76: 
    77:   /* SPI1 configuration */ 
0x08000514 2110      MOVS     r1,#0x10
0x08000516 4628      MOV      r0,r5
0x08000518 F001FAE5  BL.W     GPIO_SetBits (0x08001AE6)
    78:   SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
0x0800051C 2000      MOVS     r0,#0x00
0x0800051E F8AD0000  STRH     r0,[sp,#0x00]
    79:   SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
0x08000522 F44F7182  MOV      r1,#0x104
0x08000526 F8AD1002  STRH     r1,[sp,#0x02]
    80:   SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
0x0800052A F8AD0004  STRH     r0,[sp,#0x04]
    81:   SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
0x0800052E 2102      MOVS     r1,#0x02
0x08000530 F8AD1006  STRH     r1,[sp,#0x06]
    82:   SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
0x08000534 2101      MOVS     r1,#0x01
0x08000536 F8AD1008  STRH     r1,[sp,#0x08]
    83:   SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
0x0800053A 0249      LSLS     r1,r1,#9
0x0800053C F8AD100A  STRH     r1,[sp,#0x0A]
    84:   SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;
0x08000540 2108      MOVS     r1,#0x08
0x08000542 F8AD100C  STRH     r1,[sp,#0x0C]
    85:   SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
0x08000546 F8AD000E  STRH     r0,[sp,#0x0E]
    86:   SPI_InitStructure.SPI_CRCPolynomial = 7;
0x0800054A 2007      MOVS     r0,#0x07
    87:   SPI_Init(SPI1, &SPI_InitStructure);
    88:   
    89:   /* Enable SPI1  */
0x0800054C 4CBD      LDR      r4,[pc,#756]  ; @0x08000844
0x0800054E F8AD0010  STRH     r0,[sp,#0x10]
0x08000552 4669      MOV      r1,sp
0x08000554 4620      MOV      r0,r4
0x08000556 F001FBDA  BL.W     SPI_Init (0x08001D0E)
    90:   SPI_Cmd(SPI1, ENABLE);   
0x0800055A 2101      MOVS     r1,#0x01
0x0800055C 4620      MOV      r0,r4
0x0800055E F001FB93  BL.W     SPI_Cmd (0x08001C88)
    91: }
0x08000562 B007      ADD      sp,sp,#0x1C
0x08000564 BD30      POP      {r4-r5,pc}
   397: {
   398:   /* Loop while DR register in not emplty */
0x08000566 B570      PUSH     {r4-r6,lr}
   399:   while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
   400: 
   401:   /* Send byte through the SPI1 peripheral */
0x08000568 4CB6      LDR      r4,[pc,#728]  ; @0x08000844
0x0800056A 4605      MOV      r5,r0
0x0800056C 2102      MOVS     r1,#0x02
0x0800056E 4620      MOV      r0,r4
0x08000570 F001FBC2  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000574 2800      CMP      r0,#0x00
0x08000576 D0F9      BEQ      0x0800056C
   402:   SPI_I2S_SendData(SPI1, byte);
   403: 
   404:   /* Wait to receive a byte */
0x08000578 4629      MOV      r1,r5
0x0800057A 4620      MOV      r0,r4
0x0800057C F001FBC5  BL.W     SPI_I2S_SendData (0x08001D0A)
   405:   while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
   406: 
   407:   /* Return the byte read from the SPI bus */
0x08000580 2101      MOVS     r1,#0x01
0x08000582 4620      MOV      r0,r4
0x08000584 F001FBB8  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000588 2800      CMP      r0,#0x00
0x0800058A D0F9      BEQ      0x08000580
   408:   return SPI_I2S_ReceiveData(SPI1);
0x0800058C 4620      MOV      r0,r4
0x0800058E F001FBBA  BL.W     SPI_I2S_ReceiveData (0x08001D06)
0x08000592 B2C0      UXTB     r0,r0
   409: }
0x08000594 BD70      POP      {r4-r6,pc}
   463: {
   464:   u8 FLASH_Status = 0;
   465:   
   466:   /* Select the FLASH: Chip Select low */
0x08000596 B510      PUSH     {r4,lr}
   467:   SPI_FLASH_CS_LOW();
   468:   
   469:   /* Send "Read Status Register" instruction */
0x08000598 4CA9      LDR      r4,[pc,#676]  ; @0x08000840
0x0800059A 2110      MOVS     r1,#0x10
0x0800059C 4620      MOV      r0,r4
0x0800059E F001FAA0  BL.W     GPIO_ResetBits (0x08001AE2)
   470:   SPI_FLASH_SendByte(RDSR);
   471:   
   472:   /* Loop as long as the memory is busy with a write cycle */
   473:   do
   474:   {
   475:     /* Send a dummy byte to generate the clock needed by the FLASH 
   476:     and put the value of the status register in FLASH_Status variable */
0x080005A2 2005      MOVS     r0,#0x05
0x080005A4 F7FFFFDF  BL.W     SPI_FLASH_SendByte (0x08000566)
   477:     FLASH_Status = SPI_FLASH_SendByte(Dummy_Byte);
   478: 
0x080005A8 20A5      MOVS     r0,#0xA5
0x080005AA F7FFFFDC  BL.W     SPI_FLASH_SendByte (0x08000566)
   479:   } while((FLASH_Status & WIP_Flag) == SET); /* Write in progress */
   480: 
   481:   /* Deselect the FLASH: Chip Select high */
0x080005AE 07C0      LSLS     r0,r0,#31
0x080005B0 D1FA      BNE      0x080005A8
   482:   SPI_FLASH_CS_HIGH();
0x080005B2 4620      MOV      r0,r4
0x080005B4 E8BD4010  POP      {r4,lr}
0x080005B8 2110      MOVS     r1,#0x10
0x080005BA F001BA94  B.W      GPIO_SetBits (0x08001AE6)
   442: {
   443:   /* Select the FLASH: Chip Select low */
0x080005BE B510      PUSH     {r4,lr}
   444:   SPI_FLASH_CS_LOW();
   445:   
   446:   /* Send "Write Enable" instruction */
0x080005C0 4C9F      LDR      r4,[pc,#636]  ; @0x08000840
0x080005C2 2110      MOVS     r1,#0x10
0x080005C4 4620      MOV      r0,r4
0x080005C6 F001FA8C  BL.W     GPIO_ResetBits (0x08001AE2)
   447:   SPI_FLASH_SendByte(WREN);
   448:   
   449:   /* Deselect the FLASH: Chip Select high */
0x080005CA 2006      MOVS     r0,#0x06
0x080005CC F7FFFFCB  BL.W     SPI_FLASH_SendByte (0x08000566)
   450:   SPI_FLASH_CS_HIGH();
0x080005D0 4620      MOV      r0,r4
0x080005D2 E8BD4010  POP      {r4,lr}
0x080005D6 2110      MOVS     r1,#0x10
0x080005D8 F001BA85  B.W      GPIO_SetBits (0x08001AE6)
   101: {
   102:   /* Send write enable instruction */
0x080005DC B570      PUSH     {r4-r6,lr}
0x080005DE 4604      MOV      r4,r0
   103:   SPI_FLASH_WriteEnable();
   104: 
   105:   /* Sector Erase */ 
   106:   /* Select the FLASH: Chip Select low */
0x080005E0 F7FFFFED  BL.W     SPI_FLASH_WriteEnable (0x080005BE)
   107:   SPI_FLASH_CS_LOW();
   108:   /* Send Sector Erase instruction */
0x080005E4 4D96      LDR      r5,[pc,#600]  ; @0x08000840
0x080005E6 2110      MOVS     r1,#0x10
0x080005E8 4628      MOV      r0,r5
0x080005EA F001FA7A  BL.W     GPIO_ResetBits (0x08001AE2)
   109:   SPI_FLASH_SendByte(SE);
   110:   /* Send SectorAddr high nibble address byte */
0x080005EE 20D8      MOVS     r0,#0xD8
0x080005F0 F7FFFFB9  BL.W     SPI_FLASH_SendByte (0x08000566)
   111:   SPI_FLASH_SendByte((SectorAddr & 0xFF0000) >> 16);
   112:   /* Send SectorAddr medium nibble address byte */
0x080005F4 F3C44007  UBFX     r0,r4,#16,#8
0x080005F8 F7FFFFB5  BL.W     SPI_FLASH_SendByte (0x08000566)
   113:   SPI_FLASH_SendByte((SectorAddr & 0xFF00) >> 8);
   114:   /* Send SectorAddr low nibble address byte */
0x080005FC F3C42007  UBFX     r0,r4,#8,#8
0x08000600 F7FFFFB1  BL.W     SPI_FLASH_SendByte (0x08000566)
   115:   SPI_FLASH_SendByte(SectorAddr & 0xFF);
   116:   /* Deselect the FLASH: Chip Select high */
0x08000604 B2E0      UXTB     r0,r4
0x08000606 F7FFFFAE  BL.W     SPI_FLASH_SendByte (0x08000566)
   117:   SPI_FLASH_CS_HIGH();
   118: 
   119:   /* Wait the end of Flash writing */
0x0800060A 2110      MOVS     r1,#0x10
0x0800060C 4628      MOV      r0,r5
0x0800060E F001FA6A  BL.W     GPIO_SetBits (0x08001AE6)
   120:   SPI_FLASH_WaitForWriteEnd();
   121: }
   122: 
   123: /*******************************************************************************
   124: * Function Name  : SPI_FLASH_BulkErase
   125: * Description    : Erases the entire FLASH.
   126: * Input          : None
   127: * Output         : None
   128: * Return         : None
   129: *******************************************************************************/
   130: void SPI_FLASH_BulkErase(void)
0x08000612 E8BD4070  POP      {r4-r6,lr}
0x08000616 E7BE      B        SPI_FLASH_WaitForWriteEnd (0x08000596)
   131: {
   132:   /* Send write enable instruction */
0x08000618 B510      PUSH     {r4,lr}
   133:   SPI_FLASH_WriteEnable();
   134: 
   135:   /* Bulk Erase */ 
   136:   /* Select the FLASH: Chip Select low */
0x0800061A F7FFFFD0  BL.W     SPI_FLASH_WriteEnable (0x080005BE)
   137:   SPI_FLASH_CS_LOW();
   138:   /* Send Bulk Erase instruction  */
0x0800061E 4C88      LDR      r4,[pc,#544]  ; @0x08000840
0x08000620 2110      MOVS     r1,#0x10
0x08000622 4620      MOV      r0,r4
0x08000624 F001FA5D  BL.W     GPIO_ResetBits (0x08001AE2)
   139:   SPI_FLASH_SendByte(BE);
   140:   /* Deselect the FLASH: Chip Select high */
0x08000628 20C7      MOVS     r0,#0xC7
0x0800062A F7FFFF9C  BL.W     SPI_FLASH_SendByte (0x08000566)
   141:   SPI_FLASH_CS_HIGH();
   142: 
   143:   /* Wait the end of Flash writing */
0x0800062E 2110      MOVS     r1,#0x10
0x08000630 4620      MOV      r0,r4
0x08000632 F001FA58  BL.W     GPIO_SetBits (0x08001AE6)
   144:   SPI_FLASH_WaitForWriteEnd();
   145: }
   146: 
   147: /*******************************************************************************
   148: * Function Name  : SPI_FLASH_PageWrite
   149: * Description    : Writes more than one byte to the FLASH with a single WRITE
   150: *                  cycle(Page WRITE sequence). The number of byte can't exceed
   151: *                  the FLASH page size.
   152: * Input          : - pBuffer : pointer to the buffer  containing the data to be 
   153: *                    written to the FLASH.
   154: *                  - WriteAddr : FLASH's internal address to write to.
   155: *                  - NumByteToWrite : number of bytes to write to the FLASH,
   156: *                    must be equal or less than "SPI_FLASH_PageSize" value. 
   157: * Output         : None
   158: * Return         : None
   159: *******************************************************************************/
   160: void SPI_FLASH_PageWrite(u8* pBuffer, u32 WriteAddr, u16 NumByteToWrite)
0x08000636 E8BD4010  POP      {r4,lr}
0x0800063A E7AC      B        SPI_FLASH_WaitForWriteEnd (0x08000596)
   161: {
   162:   /* Enable the write access to the FLASH */
0x0800063C E92D41F0  PUSH     {r4-r8,lr}
0x08000640 4605      MOV      r5,r0
0x08000642 460F      MOV      r7,r1
0x08000644 4614      MOV      r4,r2
   163:   SPI_FLASH_WriteEnable();
   164:   
   165:   /* Select the FLASH: Chip Select low */
0x08000646 F7FFFFBA  BL.W     SPI_FLASH_WriteEnable (0x080005BE)
   166:   SPI_FLASH_CS_LOW();
   167:   /* Send "Write to Memory " instruction */
0x0800064A 4E7D      LDR      r6,[pc,#500]  ; @0x08000840
0x0800064C 2110      MOVS     r1,#0x10
0x0800064E 4630      MOV      r0,r6
0x08000650 F001FA47  BL.W     GPIO_ResetBits (0x08001AE2)
   168:   SPI_FLASH_SendByte(WRITE);
   169:   /* Send WriteAddr high nibble address byte to write to */
0x08000654 2002      MOVS     r0,#0x02
0x08000656 F7FFFF86  BL.W     SPI_FLASH_SendByte (0x08000566)
   170:   SPI_FLASH_SendByte((WriteAddr & 0xFF0000) >> 16);
   171:   /* Send WriteAddr medium nibble address byte to write to */
0x0800065A F3C74007  UBFX     r0,r7,#16,#8
0x0800065E F7FFFF82  BL.W     SPI_FLASH_SendByte (0x08000566)
   172:   SPI_FLASH_SendByte((WriteAddr & 0xFF00) >> 8);  
   173:   /* Send WriteAddr low nibble address byte to write to */
0x08000662 F3C72007  UBFX     r0,r7,#8,#8
0x08000666 F7FFFF7E  BL.W     SPI_FLASH_SendByte (0x08000566)
   174:   SPI_FLASH_SendByte(WriteAddr & 0xFF);
   175:   
   176:   /* while there is data to be written on the FLASH */
0x0800066A B2F8      UXTB     r0,r7
0x0800066C F7FFFF7B  BL.W     SPI_FLASH_SendByte (0x08000566)
   177:   while(NumByteToWrite--) 
   178:   {
   179:     /* Send the current byte */
0x08000670 E003      B        0x0800067A
   180:     SPI_FLASH_SendByte(*pBuffer);
   181:     /* Point on the next byte to be written */
0x08000672 7828      LDRB     r0,[r5,#0x00]
0x08000674 F7FFFF77  BL.W     SPI_FLASH_SendByte (0x08000566)
   182:     pBuffer++; 
   183:   }
   184:   
   185:   /* Deselect the FLASH: Chip Select high */
0x08000678 1C6D      ADDS     r5,r5,#1
0x0800067A 0020      MOVS     r0,r4
0x0800067C F1A40401  SUB      r4,r4,#0x01
0x08000680 B2A4      UXTH     r4,r4
0x08000682 D1F6      BNE      0x08000672
   186:   SPI_FLASH_CS_HIGH();
   187:   
   188:   /* Wait the end of Flash writing */
0x08000684 2110      MOVS     r1,#0x10
0x08000686 4630      MOV      r0,r6
0x08000688 F001FA2D  BL.W     GPIO_SetBits (0x08001AE6)
   189:   SPI_FLASH_WaitForWriteEnd();
   190: }
   191: 
   192: /*******************************************************************************
   193: * Function Name  : SPI_FLASH_BufferWrite
   194: * Description    : Writes block of data to the FLASH. In this function, the
195: * number of WRITE cycles are reduced, using Page WRITE sequence.
   196: * Input          : - pBuffer : pointer to the buffer  containing the data to be 
   197: *                    written to the FLASH.
   198: *                  - WriteAddr : FLASH's internal address to write to.
   199: *                  - NumByteToWrite : number of bytes to write to the FLASH.
   200: * Output         : None
   201: * Return         : None
   202: *******************************************************************************/
   203: void SPI_FLASH_BufferWrite(u8* pBuffer, u32 WriteAddr, u16 NumByteToWrite)
0x0800068C E8BD41F0  POP      {r4-r8,lr}
0x08000690 E781      B        SPI_FLASH_WaitForWriteEnd (0x08000596)
   204: {
   205:   u8 NumOfPage = 0, NumOfSingle = 0, Addr = 0, count = 0, temp = 0;
   206: 
0x08000692 E92D47F0  PUSH     {r4-r10,lr}
0x08000696 4606      MOV      r6,r0
0x08000698 460D      MOV      r5,r1
   207:   Addr = WriteAddr % SPI_FLASH_PageSize;
0x0800069A F01100FF  ANDS     r0,r1,#0xFF
   208:   count = SPI_FLASH_PageSize - Addr;
   209:   NumOfPage =  NumByteToWrite / SPI_FLASH_PageSize;
0x0800069E F1C00100  RSB      r1,r0,#0x00
0x080006A2 B2CF      UXTB     r7,r1
   210:   NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;
   211:   
   212:   if(Addr == 0) /* WriteAddr is SPI_FLASH_PageSize aligned  */
   213:   {
   214:     if(NumOfPage == 0) /* NumByteToWrite < SPI_FLASH_PageSize */
   215:     {
   216:       SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
   217:     }
   218:     else /* NumByteToWrite > SPI_FLASH_PageSize */ 
   219:     {
   220:       while(NumOfPage--)
   221:       {
0x080006A4 B2D1      UXTB     r1,r2
   209:   NumOfPage =  NumByteToWrite / SPI_FLASH_PageSize;
   210:   NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;
   211:   
   212:   if(Addr == 0) /* WriteAddr is SPI_FLASH_PageSize aligned  */
   213:   {
   214:     if(NumOfPage == 0) /* NumByteToWrite < SPI_FLASH_PageSize */
   215:     {
   216:       SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
   217:     }
   218:     else /* NumByteToWrite > SPI_FLASH_PageSize */ 
   219:     {
   220:       while(NumOfPage--)
   221:       {
0x080006A6 EA4F2412  LSR      r4,r2,#8
0x080006AA 4689      MOV      r9,r1
   222:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
   223:         WriteAddr +=  SPI_FLASH_PageSize;
   224:         pBuffer += SPI_FLASH_PageSize;  
   225:       }    
   226:      
   227:       SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumOfSingle);
   228:    }
   229:   }
   230:   else /* WriteAddr is not SPI_FLASH_PageSize aligned  */
   231:   {
   232:     if(NumOfPage== 0) /* NumByteToWrite < SPI_FLASH_PageSize */
   233:     {
   234:       if(NumOfSingle > count) /* (NumByteToWrite + WriteAddr) > SPI_FLASH_PageSize */
   235:       {
   236:         temp = NumOfSingle - count;
   237:       
   238:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
0x080006AC F44F7A80  MOV      r10,#0x100
   212:   if(Addr == 0) /* WriteAddr is SPI_FLASH_PageSize aligned  */
0x080006B0 D013      BEQ      0x080006DA
   207:   Addr = WriteAddr % SPI_FLASH_PageSize;
0x080006B2 B2E8      UXTB     r0,r5
   208:   count = SPI_FLASH_PageSize - Addr;
0x080006B4 4240      RSBS     r0,r0,#0
0x080006B6 B2C0      UXTB     r0,r0
   239:         WriteAddr +=  count;
   240:         pBuffer += count; 
   241:         
   242:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, temp);
   243:       }
   244:       else
   245:       {
   246:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
   247:       }
   248:     }
   249:     else /* NumByteToWrite > SPI_FLASH_PageSize */
   250:     {
0x080006B8 4428      ADD      r0,r0,r5
0x080006BA 4680      MOV      r8,r0
   232:     if(NumOfPage== 0) /* NumByteToWrite < SPI_FLASH_PageSize */
   233:     {
   234:       if(NumOfSingle > count) /* (NumByteToWrite + WriteAddr) > SPI_FLASH_PageSize */
   235:       {
   236:         temp = NumOfSingle - count;
   237:       
   238:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
   239:         WriteAddr +=  count;
   240:         pBuffer += count; 
   241:         
   242:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, temp);
   243:       }
   244:       else
   245:       {
   246:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
   247:       }
   248:     }
   249:     else /* NumByteToWrite > SPI_FLASH_PageSize */
   250:     {
0x080006BC B31C      CBZ      r4,0x08000706
   251:       NumByteToWrite -= count;
0x080006BE 1BD0      SUBS     r0,r2,r7
0x080006C0 B280      UXTH     r0,r0
   252:       NumOfPage =  NumByteToWrite / SPI_FLASH_PageSize;
0x080006C2 0A04      LSRS     r4,r0,#8
   253:       NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;
   254:       
0x080006C4 B2C0      UXTB     r0,r0
0x080006C6 4681      MOV      r9,r0
   255:       SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
   256:       WriteAddr +=  count;
0x080006C8 463A      MOV      r2,r7
0x080006CA 4629      MOV      r1,r5
0x080006CC 4630      MOV      r0,r6
0x080006CE F7FFFFB5  BL.W     SPI_FLASH_PageWrite (0x0800063C)
   257:       pBuffer += count;  
   258:      
   259:       while(NumOfPage--)
   260:       {
   261:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
   262:         WriteAddr +=  SPI_FLASH_PageSize;
0x080006D2 443E      ADD      r6,r6,r7
0x080006D4 4645      MOV      r5,r8
0x080006D6 4657      MOV      r7,r10
   263:         pBuffer += SPI_FLASH_PageSize;
   264:       }
   265:       
0x080006D8 E02E      B        0x08000738
   214:     if(NumOfPage == 0) /* NumByteToWrite < SPI_FLASH_PageSize */
   215:     {
   216:       SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
   217:     }
   218:     else /* NumByteToWrite > SPI_FLASH_PageSize */ 
   219:     {
   220:       while(NumOfPage--)
   221:       {
0x080006DA B17C      CBZ      r4,0x080006FC
   222:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
0x080006DC 4657      MOV      r7,r10
   220:       while(NumOfPage--)
   221:       {
   222:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
0x080006DE 0020      MOVS     r0,r4
0x080006E0 F1A40401  SUB      r4,r4,#0x01
0x080006E4 B2E4      UXTB     r4,r4
0x080006E6 D00C      BEQ      0x08000702
0x080006E8 463A      MOV      r2,r7
0x080006EA 4629      MOV      r1,r5
0x080006EC 4630      MOV      r0,r6
0x080006EE F7FFFFA5  BL.W     SPI_FLASH_PageWrite (0x0800063C)
   223:         WriteAddr +=  SPI_FLASH_PageSize;
0x080006F2 F5057580  ADD      r5,r5,#0x100
   224:         pBuffer += SPI_FLASH_PageSize;  
   225:       }    
   226:      
0x080006F6 F5067680  ADD      r6,r6,#0x100
0x080006FA E7F0      B        0x080006DE
   216:       SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
   217:     }
   218:     else /* NumByteToWrite > SPI_FLASH_PageSize */ 
   219:     {
   220:       while(NumOfPage--)
   221:       {
   222:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
   223:         WriteAddr +=  SPI_FLASH_PageSize;
   224:         pBuffer += SPI_FLASH_PageSize;  
   225:       }    
   226:      
0x080006FC 4629      MOV      r1,r5
0x080006FE 4630      MOV      r0,r6
0x08000700 E00E      B        0x08000720
   227:       SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumOfSingle);
   228:    }
   229:   }
   230:   else /* WriteAddr is not SPI_FLASH_PageSize aligned  */
   231:   {
   232:     if(NumOfPage== 0) /* NumByteToWrite < SPI_FLASH_PageSize */
   233:     {
0x08000702 464A      MOV      r2,r9
0x08000704 E7FA      B        0x080006FC
   234:       if(NumOfSingle > count) /* (NumByteToWrite + WriteAddr) > SPI_FLASH_PageSize */
   235:       {
0x08000706 42B9      CMP      r1,r7
0x08000708 D9F8      BLS      0x080006FC
   236:         temp = NumOfSingle - count;
   237:       
0x0800070A EBA90007  SUB      r0,r9,r7
0x0800070E B2C4      UXTB     r4,r0
   238:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
   239:         WriteAddr +=  count;
0x08000710 463A      MOV      r2,r7
0x08000712 4629      MOV      r1,r5
0x08000714 4630      MOV      r0,r6
0x08000716 F7FFFF91  BL.W     SPI_FLASH_PageWrite (0x0800063C)
0x0800071A 4641      MOV      r1,r8
   240:         pBuffer += count; 
   241:         
0x0800071C 19F0      ADDS     r0,r6,r7
   242:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, temp);
   243:       }
   244:       else
   245:       {
0x0800071E 4622      MOV      r2,r4
   246:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
   247:       }
   248:     }
   249:     else /* NumByteToWrite > SPI_FLASH_PageSize */
   250:     {
   251:       NumByteToWrite -= count;
   252:       NumOfPage =  NumByteToWrite / SPI_FLASH_PageSize;
   253:       NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;
   254:       
   255:       SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
   256:       WriteAddr +=  count;
   257:       pBuffer += count;  
   258:      
   259:       while(NumOfPage--)
   260:       {
0x08000720 E8BD47F0  POP      {r4-r10,lr}
0x08000724 E78A      B        SPI_FLASH_PageWrite (0x0800063C)
   261:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
0x08000726 463A      MOV      r2,r7
0x08000728 4629      MOV      r1,r5
0x0800072A 4630      MOV      r0,r6
0x0800072C F7FFFF86  BL.W     SPI_FLASH_PageWrite (0x0800063C)
   262:         WriteAddr +=  SPI_FLASH_PageSize;
0x08000730 F5057580  ADD      r5,r5,#0x100
   263:         pBuffer += SPI_FLASH_PageSize;
   264:       }
   265:       
0x08000734 F5067680  ADD      r6,r6,#0x100
   259:       while(NumOfPage--)
   260:       {
   261:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
   262:         WriteAddr +=  SPI_FLASH_PageSize;
   263:         pBuffer += SPI_FLASH_PageSize;
   264:       }
   265:       
0x08000738 0020      MOVS     r0,r4
0x0800073A F1A40401  SUB      r4,r4,#0x01
0x0800073E B2E4      UXTB     r4,r4
0x08000740 D1F1      BNE      0x08000726
   266:       if(NumOfSingle != 0)
   267:       {
0x08000742 EA5F0009  MOVS     r0,r9
0x08000746 D001      BEQ      0x0800074C
   268:         SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumOfSingle);
   269:       }
   270:     }
   271:   }
0x08000748 4602      MOV      r2,r0
0x0800074A E7D7      B        0x080006FC
   272: }
   273: 
   274: /*******************************************************************************
   275: * Function Name  : SPI_FLASH_BufferRead
   276: * Description    : Reads a block of data from the FLASH.
   277: * Input          : - pBuffer : pointer to the buffer that receives the data read 
   278: *                    from the FLASH.
   279: *                  - ReadAddr : FLASH's internal address to read from.
   280: *                  - NumByteToRead : number of bytes to read from the FLASH.
   281: * Output         : None
   282: * Return         : None
   283: *******************************************************************************/
   284: void SPI_FLASH_BufferRead(u8* pBuffer, u32 ReadAddr, u16 NumByteToRead)
0x0800074C E8BD87F0  POP      {r4-r10,pc}
   285: {
   286:   /* Select the FLASH: Chip Select low */
0x08000750 E92D41F0  PUSH     {r4-r8,lr}
   287:   SPI_FLASH_CS_LOW();
   288:   
   289:   /* Send "Read from Memory " instruction */
0x08000754 4E3A      LDR      r6,[pc,#232]  ; @0x08000840
0x08000756 4604      MOV      r4,r0
0x08000758 460F      MOV      r7,r1
0x0800075A 4615      MOV      r5,r2
0x0800075C 2110      MOVS     r1,#0x10
0x0800075E 4630      MOV      r0,r6
0x08000760 F001F9BF  BL.W     GPIO_ResetBits (0x08001AE2)
   290:   SPI_FLASH_SendByte(READ);
   291:   
   292:   /* Send ReadAddr high nibble address byte to read from */
0x08000764 2003      MOVS     r0,#0x03
0x08000766 F7FFFEFE  BL.W     SPI_FLASH_SendByte (0x08000566)
   293:   SPI_FLASH_SendByte((ReadAddr & 0xFF0000) >> 16);
   294:   /* Send ReadAddr medium nibble address byte to read from */
0x0800076A F3C74007  UBFX     r0,r7,#16,#8
0x0800076E F7FFFEFA  BL.W     SPI_FLASH_SendByte (0x08000566)
   295:   SPI_FLASH_SendByte((ReadAddr& 0xFF00) >> 8);
   296:   /* Send ReadAddr low nibble address byte to read from */
0x08000772 F3C72007  UBFX     r0,r7,#8,#8
0x08000776 F7FFFEF6  BL.W     SPI_FLASH_SendByte (0x08000566)
   297:   SPI_FLASH_SendByte(ReadAddr & 0xFF);
   298: 
0x0800077A B2F8      UXTB     r0,r7
0x0800077C F7FFFEF3  BL.W     SPI_FLASH_SendByte (0x08000566)
   299:   while(NumByteToRead--) /* while there is data to be read */
   300:   {
   301:     /* Read a byte from the FLASH */
0x08000780 E004      B        0x0800078C
   302:     *pBuffer = SPI_FLASH_SendByte(Dummy_Byte);
   303:     /* Point to the next location where the byte read will be saved */
   304:     pBuffer++;
   305:   }
   306:   
   307:   /* Deselect the FLASH: Chip Select high */
0x08000782 20A5      MOVS     r0,#0xA5
0x08000784 F7FFFEEF  BL.W     SPI_FLASH_SendByte (0x08000566)
0x08000788 F8040B01  STRB     r0,[r4],#0x01
0x0800078C 0028      MOVS     r0,r5
0x0800078E F1A50501  SUB      r5,r5,#0x01
0x08000792 B2AD      UXTH     r5,r5
0x08000794 D1F5      BNE      0x08000782
   308:   SPI_FLASH_CS_HIGH();
   309: }
   310: 
   311: /*******************************************************************************
   312: * Function Name  : SPI_FLASH_ReadID
   313: * Description    : Reads FLASH identification.
   314: * Input          : None
   315: * Output         : None
   316: * Return         : FLASH identification
   317: *******************************************************************************/
   318: u32 SPI_FLASH_ReadID(void)
0x08000796 4630      MOV      r0,r6
0x08000798 E8BD41F0  POP      {r4-r8,lr}
0x0800079C 2110      MOVS     r1,#0x10
0x0800079E F001B9A2  B.W      GPIO_SetBits (0x08001AE6)
   319: {
   320:   u32 Temp = 0, Temp0 = 0, Temp1 = 0, Temp2 = 0;
   321: 
   322:   /* Select the FLASH: Chip Select low */
0x080007A2 E92D41F0  PUSH     {r4-r8,lr}
   323:   SPI_FLASH_CS_LOW();
   324:   
   325:   /* Send "RDID " instruction */
0x080007A6 4C26      LDR      r4,[pc,#152]  ; @0x08000840
0x080007A8 2110      MOVS     r1,#0x10
0x080007AA 4620      MOV      r0,r4
0x080007AC F001F999  BL.W     GPIO_ResetBits (0x08001AE2)
   326:   SPI_FLASH_SendByte(0x9F);
   327: 
   328:   /* Read a byte from the FLASH */
0x080007B0 209F      MOVS     r0,#0x9F
0x080007B2 F7FFFED8  BL.W     SPI_FLASH_SendByte (0x08000566)
   329:   Temp0 = SPI_FLASH_SendByte(Dummy_Byte);
   330: 
   331:   /* Read a byte from the FLASH */
0x080007B6 20A5      MOVS     r0,#0xA5
0x080007B8 F7FFFED5  BL.W     SPI_FLASH_SendByte (0x08000566)
0x080007BC 4606      MOV      r6,r0
   332:   Temp1 = SPI_FLASH_SendByte(Dummy_Byte);
   333: 
   334:   /* Read a byte from the FLASH */
0x080007BE 20A5      MOVS     r0,#0xA5
0x080007C0 F7FFFED1  BL.W     SPI_FLASH_SendByte (0x08000566)
0x080007C4 4607      MOV      r7,r0
   335:   Temp2 = SPI_FLASH_SendByte(Dummy_Byte);
   336: 
   337:   /* Deselect the FLASH: Chip Select high */
0x080007C6 20A5      MOVS     r0,#0xA5
0x080007C8 F7FFFECD  BL.W     SPI_FLASH_SendByte (0x08000566)
0x080007CC 4605      MOV      r5,r0
   338:   SPI_FLASH_CS_HIGH();
   339:          
0x080007CE 2110      MOVS     r1,#0x10
0x080007D0 4620      MOV      r0,r4
0x080007D2 F001F988  BL.W     GPIO_SetBits (0x08001AE6)
   340:   Temp = (Temp0 << 16) | (Temp1 << 8) | Temp2;
   341: 
   342:   return Temp;
0x080007D6 0430      LSLS     r0,r6,#16
0x080007D8 EA402007  ORR      r0,r0,r7,LSL #8
0x080007DC 4328      ORRS     r0,r0,r5
   343: }
   344: 
   345: /*******************************************************************************
   346: * Function Name  : SPI_FLASH_StartReadSequence
   347: * Description    : Initiates a read data byte (READ) sequence from the Flash.
   348: *                  This is done by driving the /CS line low to select the device,
   349: *                  then the READ instruction is transmitted followed by 3 bytes
   350: *                  address. This function exit and keep the /CS line low, so the
   351: *                  Flash still being selected. With this technique the whole
   352: *                  content of the Flash is read with a single READ instruction.
   353: * Input          : - ReadAddr : FLASH's internal address to read from.
   354: * Output         : None
   355: * Return         : None
   356: *******************************************************************************/
   357: void SPI_FLASH_StartReadSequence(u32 ReadAddr)
0x080007DE E8BD81F0  POP      {r4-r8,pc}
   358: {
   359:   /* Select the FLASH: Chip Select low */
0x080007E2 B510      PUSH     {r4,lr}
0x080007E4 4604      MOV      r4,r0
   360:   SPI_FLASH_CS_LOW();
   361:   
   362:   /* Send "Read from Memory " instruction */
0x080007E6 2110      MOVS     r1,#0x10
0x080007E8 4815      LDR      r0,[pc,#84]  ; @0x08000840
0x080007EA F001F97A  BL.W     GPIO_ResetBits (0x08001AE2)
   363:   SPI_FLASH_SendByte(READ);
   364: 
   365: /* Send the 24-bit address of the address to read from -----------------------*/  
   366:   /* Send ReadAddr high nibble address byte */
0x080007EE 2003      MOVS     r0,#0x03
0x080007F0 F7FFFEB9  BL.W     SPI_FLASH_SendByte (0x08000566)
   367:   SPI_FLASH_SendByte((ReadAddr & 0xFF0000) >> 16);
   368:   /* Send ReadAddr medium nibble address byte */
0x080007F4 F3C44007  UBFX     r0,r4,#16,#8
0x080007F8 F7FFFEB5  BL.W     SPI_FLASH_SendByte (0x08000566)
   369:   SPI_FLASH_SendByte((ReadAddr& 0xFF00) >> 8);
   370:   /* Send ReadAddr low nibble address byte */
0x080007FC F3C42007  UBFX     r0,r4,#8,#8
0x08000800 F7FFFEB1  BL.W     SPI_FLASH_SendByte (0x08000566)
   371:   SPI_FLASH_SendByte(ReadAddr & 0xFF);
   372: }
   373: 
   374: /*******************************************************************************
   375: * Function Name  : SPI_FLASH_ReadByte
   376: * Description    : Reads a byte from the SPI Flash.
   377: *                  This function must be used only if the Start_Read_Sequence
   378: *                  function has been previously called.
   379: * Input          : None
   380: * Output         : None
   381: * Return         : Byte Read from the SPI Flash.
   382: *******************************************************************************/
   383: u8 SPI_FLASH_ReadByte(void)
   384: {
0x08000804 B2E0      UXTB     r0,r4
0x08000806 E8BD4010  POP      {r4,lr}
0x0800080A E6AC      B        SPI_FLASH_SendByte (0x08000566)
   385:   return (SPI_FLASH_SendByte(Dummy_Byte));
0x0800080C 20A5      MOVS     r0,#0xA5
0x0800080E E6AA      B        SPI_FLASH_SendByte (0x08000566)
   420: {
   421:   /* Loop while DR register in not emplty */
0x08000810 B570      PUSH     {r4-r6,lr}
   422:   while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
   423: 
   424:   /* Send Half Word through the SPI1 peripheral */
0x08000812 4C0C      LDR      r4,[pc,#48]  ; @0x08000844
0x08000814 4605      MOV      r5,r0
0x08000816 2102      MOVS     r1,#0x02
0x08000818 4620      MOV      r0,r4
0x0800081A F001FA6D  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x0800081E 2800      CMP      r0,#0x00
0x08000820 D0F9      BEQ      0x08000816
   425:   SPI_I2S_SendData(SPI1, HalfWord);
   426: 
   427:   /* Wait to receive a Half Word */
0x08000822 4629      MOV      r1,r5
0x08000824 4620      MOV      r0,r4
0x08000826 F001FA70  BL.W     SPI_I2S_SendData (0x08001D0A)
   428:   while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
   429: 
   430:   /* Return the Half Word read from the SPI bus */
0x0800082A 2101      MOVS     r1,#0x01
0x0800082C 4620      MOV      r0,r4
0x0800082E F001FA63  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000832 2800      CMP      r0,#0x00
0x08000834 D0F9      BEQ      0x0800082A
   431:   return SPI_I2S_ReceiveData(SPI1);
0x08000836 4620      MOV      r0,r4
0x08000838 E8BD4070  POP      {r4-r6,lr}
0x0800083C F001BA63  B.W      SPI_I2S_ReceiveData (0x08001D06)
0x08000840 0800      LSRS     r0,r0,#0
0x08000842 4001      ANDS     r1,r1,r0
0x08000844 3000      ADDS     r0,r0,#0x00
0x08000846 4001      ANDS     r1,r1,r0
  1270:   GPIO_WriteBit(GPIOx, CtrlPins, BitVal);
  1271: }
  1272: 
  1273: /*******************************************************************************
  1274: * Function Name  : LCD_SPIConfig
  1275: * Description    : Configures the SPI2 interface.
  1276: * Input          : None
  1277: * Output         : None
  1278: * Return         : None
  1279: *******************************************************************************/
  1280: void LCD_SPIConfig(void)
0x08000848 F001B94F  B.W      GPIO_WriteBit (0x08001AEA)
   885: {
0x0800084C B510      PUSH     {r4,lr}
0x0800084E 4604      MOV      r4,r0
   886:   LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_RESET);
   887: 
0x08000850 2200      MOVS     r2,#0x00
0x08000852 2104      MOVS     r1,#0x04
0x08000854 48FD      LDR      r0,[pc,#1012]  ; @0x08000C4C
0x08000856 F7FFFFF7  BL.W     LCD_CtrlLinesWrite (0x08000848)
   888:   SPI_I2S_SendData(SPI2, Start_Byte);
0x0800085A 4621      MOV      r1,r4
0x0800085C 4CFC      LDR      r4,[pc,#1008]  ; @0x08000C50
0x0800085E 4620      MOV      r0,r4
0x08000860 F001FA53  BL.W     SPI_I2S_SendData (0x08001D0A)
   889:   while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
   890:   {
   891:   }
0x08000864 2180      MOVS     r1,#0x80
0x08000866 4620      MOV      r0,r4
0x08000868 F001FA46  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x0800086C 2800      CMP      r0,#0x00
0x0800086E D1F9      BNE      0x08000864
   892: }
   893: 
   894: /*******************************************************************************
   895: * Function Name  : LCD_WriteRegIndex
   896: * Description    : Writes index to select the LCD register.
   897: * Input          : - LCD_Reg: address of the selected register.
   898: * Output         : None
   899: * Return         : None
   900: *******************************************************************************/
   901: void LCD_WriteRegIndex(u8 LCD_Reg)
0x08000870 BD10      POP      {r4,pc}
   902: {
   903:   /* Reset LCD control line(/CS) and Send Start-Byte */
0x08000872 B570      PUSH     {r4-r6,lr}
0x08000874 4605      MOV      r5,r0
   904:   LCD_nCS_StartByte(START_BYTE | SET_INDEX);
   905: 
   906:   /* Write 16-bit Reg Index (High Byte is 0) */
0x08000876 2070      MOVS     r0,#0x70
0x08000878 F7FFFFE8  BL.W     LCD_nCS_StartByte (0x0800084C)
   907:   SPI_I2S_SendData(SPI2, 0x00);
0x0800087C 4CF4      LDR      r4,[pc,#976]  ; @0x08000C50
0x0800087E 2100      MOVS     r1,#0x00
0x08000880 4620      MOV      r0,r4
0x08000882 F001FA42  BL.W     SPI_I2S_SendData (0x08001D0A)
   908:   while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
   909:   {
   910:   }
0x08000886 2180      MOVS     r1,#0x80
0x08000888 4620      MOV      r0,r4
0x0800088A F001FA35  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x0800088E 2800      CMP      r0,#0x00
0x08000890 D1F9      BNE      0x08000886
   911:   SPI_I2S_SendData(SPI2, LCD_Reg);
0x08000892 4629      MOV      r1,r5
0x08000894 4620      MOV      r0,r4
0x08000896 F001FA38  BL.W     SPI_I2S_SendData (0x08001D0A)
   912:   while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
   913:   {
   914:   }
   915: 
0x0800089A 2180      MOVS     r1,#0x80
0x0800089C 4620      MOV      r0,r4
0x0800089E F001FA2B  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x080008A2 2800      CMP      r0,#0x00
0x080008A4 D1F9      BNE      0x0800089A
   916:   LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
0x080008A6 E8BD4070  POP      {r4-r6,lr}
0x080008AA 2201      MOVS     r2,#0x01
0x080008AC 2104      MOVS     r1,#0x04
0x080008AE 48E7      LDR      r0,[pc,#924]  ; @0x08000C4C
0x080008B0 E7CA      B        LCD_CtrlLinesWrite (0x08000848)
  1081: {
0x080008B2 E92D41F0  PUSH     {r4-r8,lr}
  1082:   if(LCDType == LCD_ILI9320)
  1083:   {
0x080008B6 4AE7      LDR      r2,[pc,#924]  ; @0x08000C54
0x080008B8 6853      LDR      r3,[r2,#0x04]
   945:   LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
0x080008BA 4DE4      LDR      r5,[pc,#912]  ; @0x08000C4C
   936:   SPI_I2S_SendData(SPI2, LCD_RegValue>>8);
0x080008BC 4FE4      LDR      r7,[pc,#912]  ; @0x08000C50
0x080008BE F5A34413  SUB      r4,r3,#0x9300
0x080008C2 3C20      SUBS     r4,r4,#0x20
0x080008C4 D11A      BNE      0x080008FC
  1084:     LCD_WriteRegILI9320(LCD_Reg, LCD_RegValue);
  1085:   }
0x080008C6 460C      MOV      r4,r1
   930:   LCD_WriteRegIndex(LCD_Reg);
   931: 
   932:   /* Write 16-bit Reg */
   933:   /* Reset LCD control line(/CS) and Send Start-Byte */
0x080008C8 F7FFFFD3  BL.W     LCD_WriteRegIndex (0x08000872)
   934:   LCD_nCS_StartByte(START_BYTE | WRITE_REG);
   935: 
0x080008CC 2072      MOVS     r0,#0x72
0x080008CE F7FFFFBD  BL.W     LCD_nCS_StartByte (0x0800084C)
   936:   SPI_I2S_SendData(SPI2, LCD_RegValue>>8);
0x080008D2 0A21      LSRS     r1,r4,#8
0x080008D4 4638      MOV      r0,r7
0x080008D6 F001FA18  BL.W     SPI_I2S_SendData (0x08001D0A)
   937:   while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
   938:   {
   939:   }
0x080008DA 2180      MOVS     r1,#0x80
0x080008DC 4638      MOV      r0,r7
0x080008DE F001FA0B  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x080008E2 2800      CMP      r0,#0x00
0x080008E4 D1F9      BNE      0x080008DA
   940:   SPI_I2S_SendData(SPI2, (LCD_RegValue & 0xFF));
0x080008E6 B2E1      UXTB     r1,r4
0x080008E8 4638      MOV      r0,r7
0x080008EA F001FA0E  BL.W     SPI_I2S_SendData (0x08001D0A)
   941:   while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
0x080008EE 2180      MOVS     r1,#0x80
0x080008F0 4638      MOV      r0,r7
0x080008F2 F001FA01  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x080008F6 2800      CMP      r0,#0x00
0x080008F8 D1F9      BNE      0x080008EE
0x080008FA E023      B        0x08000944
  1086:   else if(LCDType == LCD_HX8312)
  1087:   {
0x080008FC 6852      LDR      r2,[r2,#0x04]
0x080008FE F5A24303  SUB      r3,r2,#0x8300
0x08000902 3B12      SUBS     r3,r3,#0x12
0x08000904 D124      BNE      0x08000950
  1057:   LCD_CtrlLinesWrite(GPIOD, CtrlPin_NWR, Bit_RESET);
0x08000906 F8DF8350  LDR.W    r8,[pc,#848]  ; @0x08000C5A
  1088:     LCD_WriteRegHX8312(LCD_Reg, ((u8)LCD_RegValue));
  1089:   }
0x0800090A 4606      MOV      r6,r0
0x0800090C B2CC      UXTB     r4,r1
0x0800090E 2200      MOVS     r2,#0x00
0x08000910 F44F4100  MOV      r1,#0x8000
0x08000914 4640      MOV      r0,r8
0x08000916 F7FFFF97  BL.W     LCD_CtrlLinesWrite (0x08000848)
  1058:   LCD_CtrlLinesWrite(GPIOD, CtrlPin_RS, Bit_RESET);
0x0800091A 2200      MOVS     r2,#0x00
0x0800091C 2180      MOVS     r1,#0x80
0x0800091E 4640      MOV      r0,r8
0x08000920 F7FFFF92  BL.W     LCD_CtrlLinesWrite (0x08000848)
  1059:   LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_RESET);
  1060:   
  1061:   tmp = LCD_Reg << 8;
0x08000924 2200      MOVS     r2,#0x00
0x08000926 2104      MOVS     r1,#0x04
0x08000928 4628      MOV      r0,r5
0x0800092A F7FFFF8D  BL.W     LCD_CtrlLinesWrite (0x08000848)
  1062:   tmp |= LCD_RegValue;
  1063: 
0x0800092E EA442106  ORR      r1,r4,r6,LSL #8
  1064:   SPI_I2S_SendData(SPI2, tmp);
0x08000932 4638      MOV      r0,r7
0x08000934 F001F9E9  BL.W     SPI_I2S_SendData (0x08001D0A)
  1065:   while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
  1066:   {
  1067:   }
  1068:   
0x08000938 2180      MOVS     r1,#0x80
0x0800093A 4638      MOV      r0,r7
0x0800093C F001F9DC  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000940 2800      CMP      r0,#0x00
0x08000942 D1F9      BNE      0x08000938
  1069:   LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
  1070: }
  1071: 
  1072: /*******************************************************************************
  1073: * Function Name  : LCD_WriteReg
  1074: * Description    : Writes to the selected LCD register.
  1075: * Input          : - LCD_Reg: address of the selected register.
  1076: *                  - LCD_RegValue: value to write to the selected register.
  1077: * Output         : None
  1078: * Return         : None
  1079: *******************************************************************************/
  1080: void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
  1081: {
  1082:   if(LCDType == LCD_ILI9320)
  1083:   {
  1084:     LCD_WriteRegILI9320(LCD_Reg, LCD_RegValue);
  1085:   }
  1086:   else if(LCDType == LCD_HX8312)
  1087:   {
  1088:     LCD_WriteRegHX8312(LCD_Reg, ((u8)LCD_RegValue));
  1089:   }
0x08000944 4628      MOV      r0,r5
0x08000946 E8BD41F0  POP      {r4-r8,lr}
0x0800094A 2201      MOVS     r2,#0x01
0x0800094C 2104      MOVS     r1,#0x04
0x0800094E E77B      B        LCD_CtrlLinesWrite (0x08000848)
  1090: }
0x08000950 E8BD81F0  POP      {r4-r8,pc}
  1281: {
  1282:   SPI_InitTypeDef    SPI_InitStructure;
  1283:   GPIO_InitTypeDef   GPIO_InitStructure;
  1284: 
  1285:   /* Enable GPIOB clock */
0x08000954 B510      PUSH     {r4,lr}
0x08000956 B086      SUB      sp,sp,#0x18
  1286:   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  1287: 
  1288:   /* Enable SPI2 clock  */
0x08000958 2101      MOVS     r1,#0x01
0x0800095A 2008      MOVS     r0,#0x08
0x0800095C F001F8EC  BL.W     RCC_APB2PeriphClockCmd (0x08001B38)
  1289:   RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
  1290: 
  1291:   /* Configure SPI2 pins: NSS, SCK, MISO and MOSI */
0x08000960 2101      MOVS     r1,#0x01
0x08000962 0388      LSLS     r0,r1,#14
0x08000964 F001F8D0  BL.W     RCC_APB1PeriphClockCmd (0x08001B08)
1292: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
0x08000968 F44F4070  MOV      r0,#0xF000
0x0800096C F8AD0014  STRH     r0,[sp,#0x14]
  1293:   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x08000970 2003      MOVS     r0,#0x03
0x08000972 F88D0016  STRB     r0,[sp,#0x16]
  1294:   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
0x08000976 2018      MOVS     r0,#0x18
0x08000978 F88D0017  STRB     r0,[sp,#0x17]
  1295:   GPIO_Init(GPIOB, &GPIO_InitStructure);
  1296: 
0x0800097C A905      ADD      r1,sp,#0x14
0x0800097E 48B3      LDR      r0,[pc,#716]  ; @0x08000C4C
0x08000980 F001F858  BL.W     GPIO_Init (0x08001A34)
  1297:   SPI_I2S_DeInit(SPI2);
  1298:   
  1299:   /* SPI2 Config */
0x08000984 4CB2      LDR      r4,[pc,#712]  ; @0x08000C50
0x08000986 4620      MOV      r0,r4
0x08000988 F001F990  BL.W     SPI_I2S_DeInit (0x08001CAC)
  1300:   SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
0x0800098C 2100      MOVS     r1,#0x00
0x0800098E F8AD1000  STRH     r1,[sp,#0x00]
  1301:   SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
0x08000992 F44F7082  MOV      r0,#0x104
0x08000996 F8AD0002  STRH     r0,[sp,#0x02]
  1302:   if(LCDType == LCD_ILI9320)
  1303:   {
0x0800099A 48AE      LDR      r0,[pc,#696]  ; @0x08000C54
0x0800099C 6842      LDR      r2,[r0,#0x04]
0x0800099E F5A24313  SUB      r3,r2,#0x9300
0x080009A2 3B20      SUBS     r3,r3,#0x20
0x080009A4 D108      BNE      0x080009B8
  1304:     SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
0x080009A6 F8AD1004  STRH     r1,[sp,#0x04]
  1305:     SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
0x080009AA 2002      MOVS     r0,#0x02
0x080009AC F8AD0006  STRH     r0,[sp,#0x06]
  1306:     SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
  1307:   }
0x080009B0 2001      MOVS     r0,#0x01
0x080009B2 F8AD0008  STRH     r0,[sp,#0x08]
0x080009B6 E00C      B        0x080009D2
  1308:   else if(LCDType == LCD_HX8312)
  1309:   {
0x080009B8 6840      LDR      r0,[r0,#0x04]
0x080009BA F5A04203  SUB      r2,r0,#0x8300
0x080009BE 3A12      SUBS     r2,r2,#0x12
0x080009C0 D107      BNE      0x080009D2
  1310:     SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
0x080009C2 F44F6000  MOV      r0,#0x800
0x080009C6 F8AD0004  STRH     r0,[sp,#0x04]
  1311:     SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
0x080009CA F8AD1006  STRH     r1,[sp,#0x06]
  1312:     SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
  1313:   }
0x080009CE F8AD1008  STRH     r1,[sp,#0x08]
  1314:   SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
0x080009D2 F44F7000  MOV      r0,#0x200
  1315:   SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
0x080009D6 F8AD100C  STRH     r1,[sp,#0x0C]
0x080009DA F8AD000A  STRH     r0,[sp,#0x0A]
  1316:   SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
0x080009DE F8AD100E  STRH     r1,[sp,#0x0E]
  1317:   SPI_Init(SPI2, &SPI_InitStructure);
  1318: 
  1319:   /* SPI2 enable */
0x080009E2 4669      MOV      r1,sp
0x080009E4 4620      MOV      r0,r4
0x080009E6 F001F992  BL.W     SPI_Init (0x08001D0E)
  1320:   SPI_Cmd(SPI2, ENABLE);
0x080009EA 2101      MOVS     r1,#0x01
0x080009EC 4620      MOV      r0,r4
0x080009EE F001F94B  BL.W     SPI_Cmd (0x08001C88)
  1321: }
0x080009F2 B006      ADD      sp,sp,#0x18
0x080009F4 BD10      POP      {r4,pc}
  1235: {
  1236:   GPIO_InitTypeDef GPIO_InitStructure;
  1237: 
  1238:   /* Configure NCS (PB.02) in Output Push-Pull mode */
0x080009F6 B538      PUSH     {r3-r5,lr}
  1239:   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
0x080009F8 2004      MOVS     r0,#0x04
0x080009FA F8AD0000  STRH     r0,[sp,#0x00]
  1240:   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x080009FE 2003      MOVS     r0,#0x03
0x08000A00 F88D0002  STRB     r0,[sp,#0x02]
  1241:   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
0x08000A04 2010      MOVS     r0,#0x10
0x08000A06 F88D0003  STRB     r0,[sp,#0x03]
  1242:   GPIO_Init(GPIOB, &GPIO_InitStructure);
  1243:   
  1244:   /* Configure NWR(RNW), RS (PD.15, PD.07) in Output Push-Pull mode */
0x08000A0A 4669      MOV      r1,sp
0x08000A0C 488F      LDR      r0,[pc,#572]  ; @0x08000C4C
0x08000A0E F001F811  BL.W     GPIO_Init (0x08001A34)
  1245:   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_15;
0x08000A12 F2480080  MOVW     r0,#0x8080
  1246:   GPIO_Init(GPIOD, &GPIO_InitStructure);
  1247:   
0x08000A16 4C90      LDR      r4,[pc,#576]  ; @0x08000C58
0x08000A18 F8AD0000  STRH     r0,[sp,#0x00]
0x08000A1C 4669      MOV      r1,sp
0x08000A1E 4620      MOV      r0,r4
0x08000A20 F001F808  BL.W     GPIO_Init (0x08001A34)
  1248:   LCD_CtrlLinesWrite(GPIOD, CtrlPin_NWR, Bit_SET);
0x08000A24 2201      MOVS     r2,#0x01
0x08000A26 03D1      LSLS     r1,r2,#15
0x08000A28 4620      MOV      r0,r4
0x08000A2A F7FFFF0D  BL.W     LCD_CtrlLinesWrite (0x08000848)
  1249:   LCD_CtrlLinesWrite(GPIOD, CtrlPin_RS, Bit_SET);
0x08000A2E 2201      MOVS     r2,#0x01
0x08000A30 2180      MOVS     r1,#0x80
0x08000A32 4620      MOV      r0,r4
0x08000A34 F7FFFF08  BL.W     LCD_CtrlLinesWrite (0x08000848)
  1250: }
0x08000A38 BD38      POP      {r3-r5,pc}
    59: { 
    60: /* Configure the LCD Control pins --------------------------------------------*/
0x08000A3A B510      PUSH     {r4,lr}
    61:   LCD_CtrlLinesConfig();
    62:   
    63: /* Configure the SPI2 interface ----------------------------------------------*/
0x08000A3C F7FFFFDB  BL.W     LCD_CtrlLinesConfig (0x080009F6)
    64:   LCD_SPIConfig();
    65: 
0x08000A40 F7FFFF88  BL.W     LCD_SPIConfig (0x08000954)
    66:   if(LCDType == LCD_ILI9320)
    67:   {
0x08000A44 4883      LDR      r0,[pc,#524]  ; @0x08000C54
0x08000A46 6841      LDR      r1,[r0,#0x04]
0x08000A48 F5A14213  SUB      r2,r1,#0x9300
0x08000A4C 3A20      SUBS     r2,r2,#0x20
0x08000A4E D17E      BNE      0x08000B4E
    68:     Delay(5); /* Delay 50 ms */
    69:     /* Start Initial Sequence ------------------------------------------------*/
0x08000A50 2005      MOVS     r0,#0x05
0x08000A52 F7FFFB5A  BL.W     Delay (0x0800010A)
    70:     LCD_WriteReg(R229, 0x8000); /* Set the internal vcore voltage */
0x08000A56 F44F4100  MOV      r1,#0x8000
0x08000A5A 20E5      MOVS     r0,#0xE5
0x08000A5C F7FFFF29  BL.W     LCD_WriteReg (0x080008B2)
    71:     LCD_WriteReg(R0,  0x0001); /* Start internal OSC. */
0x08000A60 2101      MOVS     r1,#0x01
0x08000A62 2000      MOVS     r0,#0x00
0x08000A64 F7FFFF25  BL.W     LCD_WriteReg (0x080008B2)
    72:     LCD_WriteReg(R1,  0x0100); /* set SS and SM bit */
0x08000A68 F44F7180  MOV      r1,#0x100
0x08000A6C 2001      MOVS     r0,#0x01
0x08000A6E F7FFFF20  BL.W     LCD_WriteReg (0x080008B2)
    73:     LCD_WriteReg(R2,  0x0700); /* set 1 line inversion */
0x08000A72 F44F61E0  MOV      r1,#0x700
0x08000A76 2002      MOVS     r0,#0x02
0x08000A78 F7FFFF1B  BL.W     LCD_WriteReg (0x080008B2)
    74:     LCD_WriteReg(R3,  0x1030); /* set GRAM write direction and BGR=1. */
0x08000A7C F2410130  MOVW     r1,#0x1030
0x08000A80 2003      MOVS     r0,#0x03
0x08000A82 F7FFFF16  BL.W     LCD_WriteReg (0x080008B2)
    75:     LCD_WriteReg(R4,  0x0000); /* Resize register */
0x08000A86 2100      MOVS     r1,#0x00
0x08000A88 2004      MOVS     r0,#0x04
0x08000A8A F7FFFF12  BL.W     LCD_WriteReg (0x080008B2)
    76:     LCD_WriteReg(R8,  0x0202); /* set the back porch and front porch */
0x08000A8E F2402102  MOVW     r1,#0x202
0x08000A92 2008      MOVS     r0,#0x08
0x08000A94 F7FFFF0D  BL.W     LCD_WriteReg (0x080008B2)
    77:     LCD_WriteReg(R9,  0x0000); /* set non-display area refresh cycle ISC[3:0] */
0x08000A98 2100      MOVS     r1,#0x00
0x08000A9A 2009      MOVS     r0,#0x09
0x08000A9C F7FFFF09  BL.W     LCD_WriteReg (0x080008B2)
    78:     LCD_WriteReg(R10, 0x0000); /* FMARK function */
0x08000AA0 2100      MOVS     r1,#0x00
0x08000AA2 200A      MOVS     r0,#0x0A
0x08000AA4 F7FFFF05  BL.W     LCD_WriteReg (0x080008B2)
    79:     LCD_WriteReg(R12, 0x0000); /* RGB interface setting */
0x08000AA8 2100      MOVS     r1,#0x00
0x08000AAA 200C      MOVS     r0,#0x0C
0x08000AAC F7FFFF01  BL.W     LCD_WriteReg (0x080008B2)
    80:     LCD_WriteReg(R13, 0x0000); /* Frame marker Position */
0x08000AB0 2100      MOVS     r1,#0x00
0x08000AB2 200D      MOVS     r0,#0x0D
0x08000AB4 F7FFFEFD  BL.W     LCD_WriteReg (0x080008B2)
    81:     LCD_WriteReg(R15, 0x0000); /* RGB interface polarity */
    82: 
    83:     /* Power On sequence -----------------------------------------------------*/
0x08000AB8 2100      MOVS     r1,#0x00
0x08000ABA 200F      MOVS     r0,#0x0F
0x08000ABC F7FFFEF9  BL.W     LCD_WriteReg (0x080008B2)
    84:     LCD_WriteReg(R16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
0x08000AC0 2100      MOVS     r1,#0x00
0x08000AC2 2010      MOVS     r0,#0x10
0x08000AC4 F7FFFEF5  BL.W     LCD_WriteReg (0x080008B2)
    85:     LCD_WriteReg(R17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
0x08000AC8 2100      MOVS     r1,#0x00
0x08000ACA 2011      MOVS     r0,#0x11
0x08000ACC F7FFFEF1  BL.W     LCD_WriteReg (0x080008B2)
    86:     LCD_WriteReg(R18, 0x0000); /* VREG1OUT voltage */
0x08000AD0 2100      MOVS     r1,#0x00
0x08000AD2 2012      MOVS     r0,#0x12
0x08000AD4 F7FFFEED  BL.W     LCD_WriteReg (0x080008B2)
    87:     LCD_WriteReg(R19, 0x0000); /* VDV[4:0] for VCOM amplitude */
0x08000AD8 2100      MOVS     r1,#0x00
0x08000ADA 2013      MOVS     r0,#0x13
0x08000ADC F7FFFEE9  BL.W     LCD_WriteReg (0x080008B2)
    88:     Delay(20);                 /* Dis-charge capacitor power voltage (200ms) */
0x08000AE0 2014      MOVS     r0,#0x14
0x08000AE2 F7FFFB12  BL.W     Delay (0x0800010A)
    89:     LCD_WriteReg(R16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
0x08000AE6 F24171B0  MOVW     r1,#0x17B0
0x08000AEA 2010      MOVS     r0,#0x10
0x08000AEC F7FFFEE1  BL.W     LCD_WriteReg (0x080008B2)
    90:     LCD_WriteReg(R17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
0x08000AF0 F2401137  MOVW     r1,#0x137
0x08000AF4 2011      MOVS     r0,#0x11
0x08000AF6 F7FFFEDC  BL.W     LCD_WriteReg (0x080008B2)
    91:     Delay(5);                  /* Delay 50 ms */
0x08000AFA 2005      MOVS     r0,#0x05
0x08000AFC F7FFFB05  BL.W     Delay (0x0800010A)
    92:     LCD_WriteReg(R18, 0x0139); /* VREG1OUT voltage */
0x08000B00 F2401139  MOVW     r1,#0x139
0x08000B04 2012      MOVS     r0,#0x12
0x08000B06 F7FFFED4  BL.W     LCD_WriteReg (0x080008B2)
    93:     Delay(5);                  /* Delay 50 ms */
0x08000B0A 2005      MOVS     r0,#0x05
0x08000B0C F7FFFAFD  BL.W     Delay (0x0800010A)
    94:     LCD_WriteReg(R19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
0x08000B10 F44F51E8  MOV      r1,#0x1D00
0x08000B14 2013      MOVS     r0,#0x13
0x08000B16 F7FFFECC  BL.W     LCD_WriteReg (0x080008B2)
    95:     LCD_WriteReg(R41, 0x0013); /* VCM[4:0] for VCOMH */
0x08000B1A 2113      MOVS     r1,#0x13
0x08000B1C 2029      MOVS     r0,#0x29
0x08000B1E F7FFFEC8  BL.W     LCD_WriteReg (0x080008B2)
    96:     Delay(5);                  /* Delay 50 ms */
0x08000B22 2005      MOVS     r0,#0x05
0x08000B24 F7FFFAF1  BL.W     Delay (0x0800010A)
    97:     LCD_WriteReg(R32, 0x0000); /* GRAM horizontal Address */
0x08000B28 2100      MOVS     r1,#0x00
0x08000B2A 2020      MOVS     r0,#0x20
0x08000B2C F7FFFEC1  BL.W     LCD_WriteReg (0x080008B2)
    98:     LCD_WriteReg(R33, 0x0000); /* GRAM Vertical Address */
    99: 
   100:     /* Adjust the Gamma Curve ------------------------------------------------*/
0x08000B30 2100      MOVS     r1,#0x00
0x08000B32 2021      MOVS     r0,#0x21
0x08000B34 F7FFFEBD  BL.W     LCD_WriteReg (0x080008B2)
   101:     LCD_WriteReg(R48, 0x0006);
0x08000B38 2106      MOVS     r1,#0x06
0x08000B3A 2030      MOVS     r0,#0x30
0x08000B3C F7FFFEB9  BL.W     LCD_WriteReg (0x080008B2)
   102:     LCD_WriteReg(R49, 0x0101);
0x08000B40 F2401101  MOVW     r1,#0x101
0x08000B44 2031      MOVS     r0,#0x31
0x08000B46 F7FFFEB4  BL.W     LCD_WriteReg (0x080008B2)
   103:     LCD_WriteReg(R50, 0x0003);
0x08000B4A 2103      MOVS     r1,#0x03
0x08000B4C E000      B        0x08000B50
0x08000B4E E085      B        0x08000C5C
0x08000B50 2032      MOVS     r0,#0x32
0x08000B52 F7FFFEAE  BL.W     LCD_WriteReg (0x080008B2)
   104:     LCD_WriteReg(R53, 0x0106);
0x08000B56 F44F7183  MOV      r1,#0x106
0x08000B5A 2035      MOVS     r0,#0x35
0x08000B5C F7FFFEA9  BL.W     LCD_WriteReg (0x080008B2)
   105:     LCD_WriteReg(R54, 0x0b02);
0x08000B60 F6403102  MOVW     r1,#0xB02
0x08000B64 2036      MOVS     r0,#0x36
0x08000B66 F7FFFEA4  BL.W     LCD_WriteReg (0x080008B2)
   106:     LCD_WriteReg(R55, 0x0302);
0x08000B6A F2403102  MOVW     r1,#0x302
0x08000B6E 2037      MOVS     r0,#0x37
0x08000B70 F7FFFE9F  BL.W     LCD_WriteReg (0x080008B2)
   107:     LCD_WriteReg(R56, 0x0707);
0x08000B74 F2407107  MOVW     r1,#0x707
0x08000B78 2038      MOVS     r0,#0x38
0x08000B7A F7FFFE9A  BL.W     LCD_WriteReg (0x080008B2)
   108:     LCD_WriteReg(R57, 0x0007);
0x08000B7E 2107      MOVS     r1,#0x07
0x08000B80 2039      MOVS     r0,#0x39
0x08000B82 F7FFFE96  BL.W     LCD_WriteReg (0x080008B2)
   109:     LCD_WriteReg(R60, 0x0600);
0x08000B86 F44F61C0  MOV      r1,#0x600
0x08000B8A 203C      MOVS     r0,#0x3C
0x08000B8C F7FFFE91  BL.W     LCD_WriteReg (0x080008B2)
   110:     LCD_WriteReg(R61, 0x020b);
   111:   
   112:     /* Set GRAM area ---------------------------------------------------------*/
0x08000B90 F240210B  MOVW     r1,#0x20B
0x08000B94 203D      MOVS     r0,#0x3D
0x08000B96 F7FFFE8C  BL.W     LCD_WriteReg (0x080008B2)
   113:     LCD_WriteReg(R80, 0x0000); /* Horizontal GRAM Start Address */
0x08000B9A 2100      MOVS     r1,#0x00
0x08000B9C 2050      MOVS     r0,#0x50
0x08000B9E F7FFFE88  BL.W     LCD_WriteReg (0x080008B2)
   114:     LCD_WriteReg(R81, 0x00EF); /* Horizontal GRAM End Address */
0x08000BA2 21EF      MOVS     r1,#0xEF
0x08000BA4 2051      MOVS     r0,#0x51
0x08000BA6 F7FFFE84  BL.W     LCD_WriteReg (0x080008B2)
   115:     LCD_WriteReg(R82, 0x0000); /* Vertical GRAM Start Address */
0x08000BAA 2100      MOVS     r1,#0x00
0x08000BAC 2052      MOVS     r0,#0x52
0x08000BAE F7FFFE80  BL.W     LCD_WriteReg (0x080008B2)
   116:     LCD_WriteReg(R83, 0x013F); /* Vertical GRAM End Address */
   117: 
0x08000BB2 F240113F  MOVW     r1,#0x13F
0x08000BB6 2053      MOVS     r0,#0x53
0x08000BB8 F7FFFE7B  BL.W     LCD_WriteReg (0x080008B2)
   118:     LCD_WriteReg(R96,  0x2700); /* Gate Scan Line */
0x08000BBC F44F511C  MOV      r1,#0x2700
0x08000BC0 2060      MOVS     r0,#0x60
0x08000BC2 F7FFFE76  BL.W     LCD_WriteReg (0x080008B2)
   119:     LCD_WriteReg(R97,  0x0001); /* NDL,VLE, REV */
0x08000BC6 2101      MOVS     r1,#0x01
0x08000BC8 2061      MOVS     r0,#0x61
0x08000BCA F7FFFE72  BL.W     LCD_WriteReg (0x080008B2)
   120:     LCD_WriteReg(R106, 0x0000); /* set scrolling line */
   121: 
   122:     /* Partial Display Control -----------------------------------------------*/
0x08000BCE 2100      MOVS     r1,#0x00
0x08000BD0 206A      MOVS     r0,#0x6A
0x08000BD2 F7FFFE6E  BL.W     LCD_WriteReg (0x080008B2)
   123:     LCD_WriteReg(R128, 0x0000);
0x08000BD6 2100      MOVS     r1,#0x00
0x08000BD8 2080      MOVS     r0,#0x80
0x08000BDA F7FFFE6A  BL.W     LCD_WriteReg (0x080008B2)
   124:     LCD_WriteReg(R129, 0x0000);
0x08000BDE 2100      MOVS     r1,#0x00
0x08000BE0 2081      MOVS     r0,#0x81
0x08000BE2 F7FFFE66  BL.W     LCD_WriteReg (0x080008B2)
   125:     LCD_WriteReg(R130, 0x0000);
0x08000BE6 2100      MOVS     r1,#0x00
0x08000BE8 2082      MOVS     r0,#0x82
0x08000BEA F7FFFE62  BL.W     LCD_WriteReg (0x080008B2)
   126:     LCD_WriteReg(R131, 0x0000);
0x08000BEE 2100      MOVS     r1,#0x00
0x08000BF0 2083      MOVS     r0,#0x83
0x08000BF2 F7FFFE5E  BL.W     LCD_WriteReg (0x080008B2)
   127:     LCD_WriteReg(R132, 0x0000);
0x08000BF6 2100      MOVS     r1,#0x00
0x08000BF8 2084      MOVS     r0,#0x84
0x08000BFA F7FFFE5A  BL.W     LCD_WriteReg (0x080008B2)
   128:     LCD_WriteReg(R133, 0x0000);
   129: 
   130:     /* Panel Control ---------------------------------------------------------*/
0x08000BFE 2100      MOVS     r1,#0x00
0x08000C00 2085      MOVS     r0,#0x85
0x08000C02 F7FFFE56  BL.W     LCD_WriteReg (0x080008B2)
   131:     LCD_WriteReg(R144, 0x0010);
0x08000C06 2110      MOVS     r1,#0x10
0x08000C08 2090      MOVS     r0,#0x90
0x08000C0A F7FFFE52  BL.W     LCD_WriteReg (0x080008B2)
   132:     LCD_WriteReg(R146, 0x0000);
0x08000C0E 2100      MOVS     r1,#0x00
0x08000C10 2092      MOVS     r0,#0x92
0x08000C12 F7FFFE4E  BL.W     LCD_WriteReg (0x080008B2)
   133:     LCD_WriteReg(R147, 0x0003);
0x08000C16 2103      MOVS     r1,#0x03
0x08000C18 2093      MOVS     r0,#0x93
0x08000C1A F7FFFE4A  BL.W     LCD_WriteReg (0x080008B2)
   134:     LCD_WriteReg(R149, 0x0110);
0x08000C1E F44F7188  MOV      r1,#0x110
0x08000C22 2095      MOVS     r0,#0x95
0x08000C24 F7FFFE45  BL.W     LCD_WriteReg (0x080008B2)
   135:     LCD_WriteReg(R151, 0x0000);
0x08000C28 2100      MOVS     r1,#0x00
0x08000C2A 2097      MOVS     r0,#0x97
0x08000C2C F7FFFE41  BL.W     LCD_WriteReg (0x080008B2)
   136:     LCD_WriteReg(R152, 0x0000);
   137: 
   138:     /* Set GRAM write direction and BGR = 1 */
   139:     /* I/D=01 (Horizontal : increment, Vertical : decrement) */
   140:     /* AM=1 (address is updated in vertical writing direction) */
0x08000C30 2100      MOVS     r1,#0x00
0x08000C32 2098      MOVS     r0,#0x98
0x08000C34 F7FFFE3D  BL.W     LCD_WriteReg (0x080008B2)
   141:     LCD_WriteReg(R3, 0x1018);
   142: 
0x08000C38 F2410118  MOVW     r1,#0x1018
0x08000C3C 2003      MOVS     r0,#0x03
0x08000C3E F7FFFE38  BL.W     LCD_WriteReg (0x080008B2)
   143:     LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
   144:   }
0x08000C42 F2401173  MOVW     r1,#0x173
0x08000C46 2007      MOVS     r0,#0x07
0x08000C48 E166      B        0x08000F18
0x08000C4A 0000      MOVS     r0,r0
0x08000C4C 0C00      LSRS     r0,r0,#16
0x08000C4E 4001      ANDS     r1,r1,r0
0x08000C50 3800      SUBS     r0,r0,#0x00
0x08000C52 4000      ANDS     r0,r0,r0
0x08000C54 0008      MOVS     r0,r1
0x08000C56 2000      MOVS     r0,#0x00
0x08000C58 1400      ASRS     r0,r0,#16
0x08000C5A 4001      ANDS     r1,r1,r0
   145:   else if(LCDType == LCD_HX8312)
   146:   {
   147:     /* Enable the LCD Oscillator ---------------------------------------------*/
0x08000C5C 6840      LDR      r0,[r0,#0x04]
0x08000C5E F5A04103  SUB      r1,r0,#0x8300
0x08000C62 3912      SUBS     r1,r1,#0x12
0x08000C64 D17E      BNE      0x08000D64
   148:     LCD_WriteReg(R1, 0x10);
0x08000C66 2110      MOVS     r1,#0x10
0x08000C68 2001      MOVS     r0,#0x01
0x08000C6A F7FFFE22  BL.W     LCD_WriteReg (0x080008B2)
   149:     LCD_WriteReg(R0, 0xA0);
0x08000C6E 21A0      MOVS     r1,#0xA0
0x08000C70 2000      MOVS     r0,#0x00
0x08000C72 F7FFFE1E  BL.W     LCD_WriteReg (0x080008B2)
   150:     LCD_WriteReg(R3, 0x01);
0x08000C76 2101      MOVS     r1,#0x01
0x08000C78 2003      MOVS     r0,#0x03
0x08000C7A F7FFFE1A  BL.W     LCD_WriteReg (0x080008B2)
   151:     Delay(1); /* Delay 10 ms */
0x08000C7E 2001      MOVS     r0,#0x01
0x08000C80 F7FFFA43  BL.W     Delay (0x0800010A)
   152:     LCD_WriteReg(R3, 0x00);
0x08000C84 2100      MOVS     r1,#0x00
0x08000C86 2003      MOVS     r0,#0x03
0x08000C88 F7FFFE13  BL.W     LCD_WriteReg (0x080008B2)
   153:     LCD_WriteReg(R43, 0x04);
   154:   
0x08000C8C 2104      MOVS     r1,#0x04
0x08000C8E 202B      MOVS     r0,#0x2B
0x08000C90 F7FFFE0F  BL.W     LCD_WriteReg (0x080008B2)
   155:     LCD_WriteReg(R40, 0x18);
0x08000C94 2118      MOVS     r1,#0x18
0x08000C96 2028      MOVS     r0,#0x28
0x08000C98 F7FFFE0B  BL.W     LCD_WriteReg (0x080008B2)
   156:     LCD_WriteReg(R26, 0x05);
0x08000C9C 2105      MOVS     r1,#0x05
0x08000C9E 201A      MOVS     r0,#0x1A
0x08000CA0 F7FFFE07  BL.W     LCD_WriteReg (0x080008B2)
   157:     LCD_WriteReg(R37, 0x05);
0x08000CA4 2105      MOVS     r1,#0x05
0x08000CA6 2025      MOVS     r0,#0x25
0x08000CA8 F7FFFE03  BL.W     LCD_WriteReg (0x080008B2)
   158:     LCD_WriteReg(R25, 0x00);
   159:     
   160:     /* LCD Power On ----------------------------------------------------------*/
0x08000CAC 2100      MOVS     r1,#0x00
0x08000CAE 2019      MOVS     r0,#0x19
0x08000CB0 F7FFFDFF  BL.W     LCD_WriteReg (0x080008B2)
   161:     LCD_WriteReg(R28, 0x73);
0x08000CB4 2173      MOVS     r1,#0x73
0x08000CB6 201C      MOVS     r0,#0x1C
0x08000CB8 F7FFFDFB  BL.W     LCD_WriteReg (0x080008B2)
   162:     LCD_WriteReg(R36, 0x74);
0x08000CBC 2174      MOVS     r1,#0x74
0x08000CBE 2024      MOVS     r0,#0x24
0x08000CC0 F7FFFDF7  BL.W     LCD_WriteReg (0x080008B2)
   163:     LCD_WriteReg(R30, 0x01);
0x08000CC4 2101      MOVS     r1,#0x01
0x08000CC6 201E      MOVS     r0,#0x1E
0x08000CC8 F7FFFDF3  BL.W     LCD_WriteReg (0x080008B2)
   164:     LCD_WriteReg(R24, 0xC1);
0x08000CCC 21C1      MOVS     r1,#0xC1
0x08000CCE 2018      MOVS     r0,#0x18
0x08000CD0 F7FFFDEF  BL.W     LCD_WriteReg (0x080008B2)
   165:     Delay(1); /* Delay 10 ms */
0x08000CD4 2001      MOVS     r0,#0x01
0x08000CD6 F7FFFA18  BL.W     Delay (0x0800010A)
   166:     LCD_WriteReg(R24, 0xE1);
0x08000CDA 21E1      MOVS     r1,#0xE1
0x08000CDC 2018      MOVS     r0,#0x18
0x08000CDE F7FFFDE8  BL.W     LCD_WriteReg (0x080008B2)
   167:     LCD_WriteReg(R24, 0xF1);
0x08000CE2 21F1      MOVS     r1,#0xF1
0x08000CE4 2018      MOVS     r0,#0x18
0x08000CE6 F7FFFDE4  BL.W     LCD_WriteReg (0x080008B2)
   168:     Delay(6); /* Delay 60 ms */
0x08000CEA 2006      MOVS     r0,#0x06
0x08000CEC F7FFFA0D  BL.W     Delay (0x0800010A)
   169:     LCD_WriteReg(R24, 0xF5);
0x08000CF0 21F5      MOVS     r1,#0xF5
0x08000CF2 2018      MOVS     r0,#0x18
0x08000CF4 F7FFFDDD  BL.W     LCD_WriteReg (0x080008B2)
   170:     Delay(6); /* Delay 60 ms */
0x08000CF8 2006      MOVS     r0,#0x06
0x08000CFA F7FFFA06  BL.W     Delay (0x0800010A)
   171:     LCD_WriteReg(R27, 0x09);
0x08000CFE 2109      MOVS     r1,#0x09
0x08000D00 201B      MOVS     r0,#0x1B
0x08000D02 F7FFFDD6  BL.W     LCD_WriteReg (0x080008B2)
   172:     Delay(1); /* Delay 10 ms */
0x08000D06 2001      MOVS     r0,#0x01
0x08000D08 F7FFF9FF  BL.W     Delay (0x0800010A)
   173:     LCD_WriteReg(R31, 0x11);
0x08000D0C 2111      MOVS     r1,#0x11
0x08000D0E 201F      MOVS     r0,#0x1F
0x08000D10 F7FFFDCF  BL.W     LCD_WriteReg (0x080008B2)
   174:     LCD_WriteReg(R32, 0x0E);
0x08000D14 210E      MOVS     r1,#0x0E
0x08000D16 2020      MOVS     r0,#0x20
0x08000D18 F7FFFDCB  BL.W     LCD_WriteReg (0x080008B2)
   175:     LCD_WriteReg(R30, 0x81);
0x08000D1C 2181      MOVS     r1,#0x81
0x08000D1E 201E      MOVS     r0,#0x1E
0x08000D20 F7FFFDC7  BL.W     LCD_WriteReg (0x080008B2)
   176:     Delay(1); /* Delay 10 ms */
   177:     
   178:     /* Chip Set --------------------------------------------------------------*/
0x08000D24 2001      MOVS     r0,#0x01
0x08000D26 F7FFF9F0  BL.W     Delay (0x0800010A)
   179:     LCD_WriteReg(R157, 0x00);
0x08000D2A 2100      MOVS     r1,#0x00
0x08000D2C 209D      MOVS     r0,#0x9D
0x08000D2E F7FFFDC0  BL.W     LCD_WriteReg (0x080008B2)
   180:     LCD_WriteReg(R192, 0x00);
   181:    
0x08000D32 2100      MOVS     r1,#0x00
0x08000D34 20C0      MOVS     r0,#0xC0
0x08000D36 F7FFFDBC  BL.W     LCD_WriteReg (0x080008B2)
   182:     LCD_WriteReg(R14, 0x00);
0x08000D3A 2100      MOVS     r1,#0x00
0x08000D3C 200E      MOVS     r0,#0x0E
0x08000D3E F7FFFDB8  BL.W     LCD_WriteReg (0x080008B2)
   183:     LCD_WriteReg(R15, 0x00);
0x08000D42 2100      MOVS     r1,#0x00
0x08000D44 200F      MOVS     r0,#0x0F
0x08000D46 F7FFFDB4  BL.W     LCD_WriteReg (0x080008B2)
   184:     LCD_WriteReg(R16, 0x00);
0x08000D4A 2100      MOVS     r1,#0x00
0x08000D4C 2010      MOVS     r0,#0x10
0x08000D4E F7FFFDB0  BL.W     LCD_WriteReg (0x080008B2)
   185:     LCD_WriteReg(R17, 0x00);
0x08000D52 2100      MOVS     r1,#0x00
0x08000D54 2011      MOVS     r0,#0x11
0x08000D56 F7FFFDAC  BL.W     LCD_WriteReg (0x080008B2)
   186:     LCD_WriteReg(R18, 0x00);
0x08000D5A 2100      MOVS     r1,#0x00
0x08000D5C 2012      MOVS     r0,#0x12
0x08000D5E F7FFFDA8  BL.W     LCD_WriteReg (0x080008B2)
   187:     LCD_WriteReg(R19, 0x00);
0x08000D62 E000      B        0x08000D66
0x08000D64 E0DB      B        0x08000F1E
0x08000D66 2100      MOVS     r1,#0x00
0x08000D68 2013      MOVS     r0,#0x13
0x08000D6A F7FFFDA2  BL.W     LCD_WriteReg (0x080008B2)
   188:     LCD_WriteReg(R20, 0x00);
0x08000D6E 2100      MOVS     r1,#0x00
0x08000D70 2014      MOVS     r0,#0x14
0x08000D72 F7FFFD9E  BL.W     LCD_WriteReg (0x080008B2)
   189:     LCD_WriteReg(R21, 0x00);
0x08000D76 2100      MOVS     r1,#0x00
0x08000D78 2015      MOVS     r0,#0x15
0x08000D7A F7FFFD9A  BL.W     LCD_WriteReg (0x080008B2)
   190:     LCD_WriteReg(R22, 0x00);
0x08000D7E 2100      MOVS     r1,#0x00
0x08000D80 2016      MOVS     r0,#0x16
0x08000D82 F7FFFD96  BL.W     LCD_WriteReg (0x080008B2)
   191:     LCD_WriteReg(R23, 0x00);
   192:    
0x08000D86 2100      MOVS     r1,#0x00
0x08000D88 2017      MOVS     r0,#0x17
0x08000D8A F7FFFD92  BL.W     LCD_WriteReg (0x080008B2)
   193:     LCD_WriteReg(R52, 0x01);
0x08000D8E 2101      MOVS     r1,#0x01
0x08000D90 2034      MOVS     r0,#0x34
0x08000D92 F7FFFD8E  BL.W     LCD_WriteReg (0x080008B2)
   194:     LCD_WriteReg(R53, 0x00);
   195: 
0x08000D96 2100      MOVS     r1,#0x00
0x08000D98 2035      MOVS     r0,#0x35
0x08000D9A F7FFFD8A  BL.W     LCD_WriteReg (0x080008B2)
   196:     LCD_WriteReg(R75, 0x00);
0x08000D9E 2100      MOVS     r1,#0x00
0x08000DA0 204B      MOVS     r0,#0x4B
0x08000DA2 F7FFFD86  BL.W     LCD_WriteReg (0x080008B2)
   197:     LCD_WriteReg(R76, 0x00);
0x08000DA6 2100      MOVS     r1,#0x00
0x08000DA8 204C      MOVS     r0,#0x4C
0x08000DAA F7FFFD82  BL.W     LCD_WriteReg (0x080008B2)
   198:     LCD_WriteReg(R78, 0x00);
0x08000DAE 2100      MOVS     r1,#0x00
0x08000DB0 204E      MOVS     r0,#0x4E
0x08000DB2 F7FFFD7E  BL.W     LCD_WriteReg (0x080008B2)
   199:     LCD_WriteReg(R79, 0x00);
0x08000DB6 2100      MOVS     r1,#0x00
0x08000DB8 204F      MOVS     r0,#0x4F
0x08000DBA F7FFFD7A  BL.W     LCD_WriteReg (0x080008B2)
   200:     LCD_WriteReg(R80, 0x00);
   201:   
0x08000DBE 2100      MOVS     r1,#0x00
0x08000DC0 2050      MOVS     r0,#0x50
0x08000DC2 F7FFFD76  BL.W     LCD_WriteReg (0x080008B2)
   202:     LCD_WriteReg(R60, 0x00);
0x08000DC6 2100      MOVS     r1,#0x00
0x08000DC8 203C      MOVS     r0,#0x3C
0x08000DCA F7FFFD72  BL.W     LCD_WriteReg (0x080008B2)
   203:     LCD_WriteReg(R61, 0x00);
0x08000DCE 2100      MOVS     r1,#0x00
0x08000DD0 203D      MOVS     r0,#0x3D
0x08000DD2 F7FFFD6E  BL.W     LCD_WriteReg (0x080008B2)
   204:     LCD_WriteReg(R62, 0x01);
0x08000DD6 2101      MOVS     r1,#0x01
0x08000DD8 203E      MOVS     r0,#0x3E
0x08000DDA F7FFFD6A  BL.W     LCD_WriteReg (0x080008B2)
   205:     LCD_WriteReg(R63, 0x3F);
0x08000DDE 213F      MOVS     r1,#0x3F
0x08000DE0 4608      MOV      r0,r1
0x08000DE2 F7FFFD66  BL.W     LCD_WriteReg (0x080008B2)
   206:     LCD_WriteReg(R64, 0x02);
0x08000DE6 2102      MOVS     r1,#0x02
0x08000DE8 2040      MOVS     r0,#0x40
0x08000DEA F7FFFD62  BL.W     LCD_WriteReg (0x080008B2)
   207:     LCD_WriteReg(R65, 0x02);
0x08000DEE 2102      MOVS     r1,#0x02
0x08000DF0 2041      MOVS     r0,#0x41
0x08000DF2 F7FFFD5E  BL.W     LCD_WriteReg (0x080008B2)
   208:     LCD_WriteReg(R66, 0x00);
0x08000DF6 2100      MOVS     r1,#0x00
0x08000DF8 2042      MOVS     r0,#0x42
0x08000DFA F7FFFD5A  BL.W     LCD_WriteReg (0x080008B2)
   209:     LCD_WriteReg(R67, 0x00);
0x08000DFE 2100      MOVS     r1,#0x00
0x08000E00 2043      MOVS     r0,#0x43
0x08000E02 F7FFFD56  BL.W     LCD_WriteReg (0x080008B2)
   210:     LCD_WriteReg(R68, 0x00);
0x08000E06 2100      MOVS     r1,#0x00
0x08000E08 2044      MOVS     r0,#0x44
0x08000E0A F7FFFD52  BL.W     LCD_WriteReg (0x080008B2)
   211:     LCD_WriteReg(R69, 0x00);
0x08000E0E 2100      MOVS     r1,#0x00
0x08000E10 2045      MOVS     r0,#0x45
0x08000E12 F7FFFD4E  BL.W     LCD_WriteReg (0x080008B2)
   212:     LCD_WriteReg(R70, 0xEF);
0x08000E16 21EF      MOVS     r1,#0xEF
0x08000E18 2046      MOVS     r0,#0x46
0x08000E1A F7FFFD4A  BL.W     LCD_WriteReg (0x080008B2)
   213:     LCD_WriteReg(R71, 0x00);
0x08000E1E 2100      MOVS     r1,#0x00
0x08000E20 2047      MOVS     r0,#0x47
0x08000E22 F7FFFD46  BL.W     LCD_WriteReg (0x080008B2)
   214:     LCD_WriteReg(R72, 0x00);
0x08000E26 2100      MOVS     r1,#0x00
0x08000E28 2048      MOVS     r0,#0x48
0x08000E2A F7FFFD42  BL.W     LCD_WriteReg (0x080008B2)
   215:     LCD_WriteReg(R73, 0x01);
0x08000E2E 2101      MOVS     r1,#0x01
0x08000E30 2049      MOVS     r0,#0x49
0x08000E32 F7FFFD3E  BL.W     LCD_WriteReg (0x080008B2)
   216:     LCD_WriteReg(R74, 0x3F);
   217:   
0x08000E36 213F      MOVS     r1,#0x3F
0x08000E38 204A      MOVS     r0,#0x4A
0x08000E3A F7FFFD3A  BL.W     LCD_WriteReg (0x080008B2)
   218:     LCD_WriteReg(R29, 0x08);  /* R29:Gate scan direction setting */
   219:   
0x08000E3E 2108      MOVS     r1,#0x08
0x08000E40 201D      MOVS     r0,#0x1D
0x08000E42 F7FFFD36  BL.W     LCD_WriteReg (0x080008B2)
   220:     LCD_WriteReg(R134, 0x00);
0x08000E46 2100      MOVS     r1,#0x00
0x08000E48 2086      MOVS     r0,#0x86
0x08000E4A F7FFFD32  BL.W     LCD_WriteReg (0x080008B2)
   221:     LCD_WriteReg(R135, 0x30);
0x08000E4E 2130      MOVS     r1,#0x30
0x08000E50 2087      MOVS     r0,#0x87
0x08000E52 F7FFFD2E  BL.W     LCD_WriteReg (0x080008B2)
   222:     LCD_WriteReg(R136, 0x02);
0x08000E56 2102      MOVS     r1,#0x02
0x08000E58 2088      MOVS     r0,#0x88
0x08000E5A F7FFFD2A  BL.W     LCD_WriteReg (0x080008B2)
   223:     LCD_WriteReg(R137, 0x05);
   224:   
0x08000E5E 2105      MOVS     r1,#0x05
0x08000E60 2089      MOVS     r0,#0x89
0x08000E62 F7FFFD26  BL.W     LCD_WriteReg (0x080008B2)
   225:     LCD_WriteReg(R141, 0x01);  /* R141:Register set-up mode for one line clock */
0x08000E66 2101      MOVS     r1,#0x01
0x08000E68 208D      MOVS     r0,#0x8D
0x08000E6A F7FFFD22  BL.W     LCD_WriteReg (0x080008B2)
   226:     LCD_WriteReg(R139, 0x20);  /* R139:One line SYSCLK number in one-line */
0x08000E6E 2120      MOVS     r1,#0x20
0x08000E70 208B      MOVS     r0,#0x8B
0x08000E72 F7FFFD1E  BL.W     LCD_WriteReg (0x080008B2)
   227:     LCD_WriteReg(R51, 0x01);  /* R51:N line inversion setting */
0x08000E76 2101      MOVS     r1,#0x01
0x08000E78 2033      MOVS     r0,#0x33
0x08000E7A F7FFFD1A  BL.W     LCD_WriteReg (0x080008B2)
   228:     LCD_WriteReg(R55, 0x01);  /* R55:Scanning method setting */
0x08000E7E 2101      MOVS     r1,#0x01
0x08000E80 2037      MOVS     r0,#0x37
0x08000E82 F7FFFD16  BL.W     LCD_WriteReg (0x080008B2)
   229:     LCD_WriteReg(R118, 0x00);
   230:    
   231:     /* Gamma Set -------------------------------------------------------------*/
0x08000E86 2100      MOVS     r1,#0x00
0x08000E88 2076      MOVS     r0,#0x76
0x08000E8A F7FFFD12  BL.W     LCD_WriteReg (0x080008B2)
   232:     LCD_WriteReg(R143, 0x10);
0x08000E8E 2110      MOVS     r1,#0x10
0x08000E90 208F      MOVS     r0,#0x8F
0x08000E92 F7FFFD0E  BL.W     LCD_WriteReg (0x080008B2)
   233:     LCD_WriteReg(R144, 0x67);
0x08000E96 2167      MOVS     r1,#0x67
0x08000E98 2090      MOVS     r0,#0x90
0x08000E9A F7FFFD0A  BL.W     LCD_WriteReg (0x080008B2)
   234:     LCD_WriteReg(R145, 0x07);
0x08000E9E 2107      MOVS     r1,#0x07
0x08000EA0 2091      MOVS     r0,#0x91
0x08000EA2 F7FFFD06  BL.W     LCD_WriteReg (0x080008B2)
   235:     LCD_WriteReg(R146, 0x65);
0x08000EA6 2165      MOVS     r1,#0x65
0x08000EA8 2092      MOVS     r0,#0x92
0x08000EAA F7FFFD02  BL.W     LCD_WriteReg (0x080008B2)
   236:     LCD_WriteReg(R147, 0x07);
0x08000EAE 2107      MOVS     r1,#0x07
0x08000EB0 2093      MOVS     r0,#0x93
0x08000EB2 F7FFFCFE  BL.W     LCD_WriteReg (0x080008B2)
   237:     LCD_WriteReg(R148, 0x01);
0x08000EB6 2101      MOVS     r1,#0x01
0x08000EB8 2094      MOVS     r0,#0x94
0x08000EBA F7FFFCFA  BL.W     LCD_WriteReg (0x080008B2)
   238:     LCD_WriteReg(R149, 0x76);
0x08000EBE 2176      MOVS     r1,#0x76
0x08000EC0 2095      MOVS     r0,#0x95
0x08000EC2 F7FFFCF6  BL.W     LCD_WriteReg (0x080008B2)
   239:     LCD_WriteReg(R150, 0x56);
0x08000EC6 2156      MOVS     r1,#0x56
0x08000EC8 2096      MOVS     r0,#0x96
0x08000ECA F7FFFCF2  BL.W     LCD_WriteReg (0x080008B2)
   240:     LCD_WriteReg(R151, 0x00);
0x08000ECE 2100      MOVS     r1,#0x00
0x08000ED0 2097      MOVS     r0,#0x97
0x08000ED2 F7FFFCEE  BL.W     LCD_WriteReg (0x080008B2)
   241:     LCD_WriteReg(R152, 0x06);
0x08000ED6 2106      MOVS     r1,#0x06
0x08000ED8 2098      MOVS     r0,#0x98
0x08000EDA F7FFFCEA  BL.W     LCD_WriteReg (0x080008B2)
   242:     LCD_WriteReg(R153, 0x03);
0x08000EDE 2103      MOVS     r1,#0x03
0x08000EE0 2099      MOVS     r0,#0x99
0x08000EE2 F7FFFCE6  BL.W     LCD_WriteReg (0x080008B2)
   243:     LCD_WriteReg(R154, 0x00);
   244:   
   245:     /* Display On ------------------------------------------------------------*/
0x08000EE6 2100      MOVS     r1,#0x00
0x08000EE8 209A      MOVS     r0,#0x9A
0x08000EEA F7FFFCE2  BL.W     LCD_WriteReg (0x080008B2)
   246:     LCD_WriteReg(R1, 0x50);
0x08000EEE 2150      MOVS     r1,#0x50
0x08000EF0 2001      MOVS     r0,#0x01
0x08000EF2 F7FFFCDE  BL.W     LCD_WriteReg (0x080008B2)
   247:     LCD_WriteReg(R5, 0x04);
   248: 
0x08000EF6 2104      MOVS     r1,#0x04
0x08000EF8 2005      MOVS     r0,#0x05
0x08000EFA F7FFFCDA  BL.W     LCD_WriteReg (0x080008B2)
   249:     LCD_WriteReg(R0, 0x80);
0x08000EFE 2180      MOVS     r1,#0x80
0x08000F00 2000      MOVS     r0,#0x00
0x08000F02 F7FFFCD6  BL.W     LCD_WriteReg (0x080008B2)
   250:     LCD_WriteReg(R59, 0x01);
0x08000F06 2101      MOVS     r1,#0x01
0x08000F08 203B      MOVS     r0,#0x3B
0x08000F0A F7FFFCD2  BL.W     LCD_WriteReg (0x080008B2)
   251:     Delay(4);  /* Delay 40 ms */
0x08000F0E 2004      MOVS     r0,#0x04
0x08000F10 F7FFF8FB  BL.W     Delay (0x0800010A)
   252:     LCD_WriteReg(R0, 0x20);
   253:   }  
0x08000F14 2120      MOVS     r1,#0x20
0x08000F16 2000      MOVS     r0,#0x00
0x08000F18 E8BD4010  POP      {r4,lr}
0x08000F1C E4C9      B        LCD_WriteReg (0x080008B2)
   254: }
0x08000F1E BD10      POP      {r4,pc}
   956: {
   957:   u16 tmp = 0;
0x08000F20 B570      PUSH     {r4-r6,lr}
   958:   u8 i = 0;
   959:   
   960:   /* SPI2 prescaler: 4 */
0x08000F22 4EFD      LDR      r6,[pc,#1012]  ; @0x08001318
0x08000F24 2400      MOVS     r4,#0x00
   961:   SPI2->CR1 &= 0xFFC7;
0x08000F26 8831      LDRH     r1,[r6,#0x00]
0x08000F28 F0210138  BIC      r1,r1,#0x38
0x08000F2C 8031      STRH     r1,[r6,#0x00]
   962:   SPI2->CR1 |= 0x0008;
   963: 
   964:   /* Write 16-bit Index (then Read Reg) */
0x08000F2E 8831      LDRH     r1,[r6,#0x00]
0x08000F30 F0410108  ORR      r1,r1,#0x08
0x08000F34 8031      STRH     r1,[r6,#0x00]
0x08000F36 F5A66600  SUB      r6,r6,#0x800
   965:   LCD_WriteRegIndex(LCD_Reg);
   966: 
   967:   /* Read 16-bit Reg */
   968:   /* Reset LCD control line(/CS) and Send Start-Byte */
0x08000F3A F7FFFC9A  BL.W     LCD_WriteRegIndex (0x08000872)
   969:   LCD_nCS_StartByte(START_BYTE | READ_REG);
   970:   
   971:   for(i = 0; i < 5; i++)
   972:   {
0x08000F3E 2073      MOVS     r0,#0x73
0x08000F40 F7FFFC84  BL.W     LCD_nCS_StartByte (0x0800084C)
   973:     SPI_I2S_SendData(SPI2, 0xFF);
0x08000F44 4DF4      LDR      r5,[pc,#976]  ; @0x08001318
0x08000F46 21FF      MOVS     r1,#0xFF
0x08000F48 4628      MOV      r0,r5
0x08000F4A F000FEDE  BL.W     SPI_I2S_SendData (0x08001D0A)
   974:     while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
   975:     {
   976:     }
   977:     /* One byte of invalid dummy data read after the start byte */
0x08000F4E 2180      MOVS     r1,#0x80
0x08000F50 4628      MOV      r0,r5
0x08000F52 F000FED1  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000F56 2800      CMP      r0,#0x00
0x08000F58 D1F9      BNE      0x08000F4E
   978:     while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
   979:     {    
   980:     }
0x08000F5A 2101      MOVS     r1,#0x01
0x08000F5C 4628      MOV      r0,r5
0x08000F5E F000FECB  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000F62 2800      CMP      r0,#0x00
0x08000F64 D0F9      BEQ      0x08000F5A
   981:     SPI_I2S_ReceiveData(SPI2); 
   982:   }
   983: 
0x08000F66 4628      MOV      r0,r5
0x08000F68 F000FECD  BL.W     SPI_I2S_ReceiveData (0x08001D06)
   971:   for(i = 0; i < 5; i++)
   972:   {
   973:     SPI_I2S_SendData(SPI2, 0xFF);
   974:     while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
   975:     {
   976:     }
   977:     /* One byte of invalid dummy data read after the start byte */
   978:     while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
   979:     {    
   980:     }
   981:     SPI_I2S_ReceiveData(SPI2); 
   982:   }
   983: 
0x08000F6C 1C64      ADDS     r4,r4,#1
0x08000F6E B2E4      UXTB     r4,r4
0x08000F70 2C05      CMP      r4,#0x05
0x08000F72 D3E8      BCC      0x08000F46
   984:   SPI_I2S_SendData(SPI2, 0xFF);
   985:   /* Read upper byte */
0x08000F74 21FF      MOVS     r1,#0xFF
0x08000F76 4628      MOV      r0,r5
0x08000F78 F000FEC7  BL.W     SPI_I2S_SendData (0x08001D0A)
   986:   while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
   987:   {
   988:   }
   989:   /* Read lower byte */
0x08000F7C 2180      MOVS     r1,#0x80
0x08000F7E 4628      MOV      r0,r5
0x08000F80 F000FEBA  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000F84 2800      CMP      r0,#0x00
0x08000F86 D1F9      BNE      0x08000F7C
   990:   while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
   991:   {
   992:   }
0x08000F88 2101      MOVS     r1,#0x01
0x08000F8A 4628      MOV      r0,r5
0x08000F8C F000FEB4  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000F90 2800      CMP      r0,#0x00
0x08000F92 D0F9      BEQ      0x08000F88
   993:   tmp = SPI_I2S_ReceiveData(SPI2);
   994:   
   995:   
0x08000F94 4628      MOV      r0,r5
0x08000F96 F000FEB6  BL.W     SPI_I2S_ReceiveData (0x08001D06)
0x08000F9A 4604      MOV      r4,r0
   996:   SPI_I2S_SendData(SPI2, 0xFF);
0x08000F9C 21FF      MOVS     r1,#0xFF
0x08000F9E 4628      MOV      r0,r5
0x08000FA0 F000FEB3  BL.W     SPI_I2S_SendData (0x08001D0A)
   997:   while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
   998:   {
   999:   }
  1000:   /* Read lower byte */
0x08000FA4 2180      MOVS     r1,#0x80
0x08000FA6 4628      MOV      r0,r5
0x08000FA8 F000FEA6  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000FAC 2800      CMP      r0,#0x00
0x08000FAE D1F9      BNE      0x08000FA4
  1001:   while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
  1002:   {
  1003:   }
0x08000FB0 2101      MOVS     r1,#0x01
0x08000FB2 4628      MOV      r0,r5
0x08000FB4 F000FEA0  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000FB8 2800      CMP      r0,#0x00
0x08000FBA D0F9      BEQ      0x08000FB0
  1004:   tmp = ((tmp & 0xFF) << 8) | SPI_I2S_ReceiveData(SPI2);
  1005: 
0x08000FBC 4628      MOV      r0,r5
0x08000FBE F000FEA2  BL.W     SPI_I2S_ReceiveData (0x08001D06)
0x08000FC2 B2E1      UXTB     r1,r4
0x08000FC4 EA402401  ORR      r4,r0,r1,LSL #8
  1006:   LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
  1007: 
  1008:   /* SPI2 prescaler: 2 */
0x08000FC8 2201      MOVS     r2,#0x01
0x08000FCA 2104      MOVS     r1,#0x04
0x08000FCC 48D3      LDR      r0,[pc,#844]  ; @0x0800131C
0x08000FCE F7FFFC3B  BL.W     LCD_CtrlLinesWrite (0x08000848)
  1009:   SPI2->CR1 &= 0xFFC7;
  1010: 
0x08000FD2 F8B60800  LDRH     r0,[r6,#0x800]
0x08000FD6 F0200038  BIC      r0,r0,#0x38
0x08000FDA F8A60800  STRH     r0,[r6,#0x800]
  1011:   return tmp;
0x08000FDE 4620      MOV      r0,r4
  1012: }
0x08000FE0 BD70      POP      {r4-r6,pc}
   264: {
   265:   /* Setups the LCD */
0x08000FE2 B510      PUSH     {r4,lr}
   266:   LCD_Setup();
   267: 
   268:   /* Try to read new LCD controller ID 0x9320 */
0x08000FE4 F7FFFD29  BL.W     LCD_Setup (0x08000A3A)
   269:   if (LCD_ReadReg(R0) == LCD_ILI9320)
   270:   {
0x08000FE8 2000      MOVS     r0,#0x00
0x08000FEA F7FFFF99  BL.W     LCD_ReadReg (0x08000F20)
0x08000FEE F2493120  MOVW     r1,#0x9320
   271:     LCDType = LCD_ILI9320;
   272:   }
   273:   else
   274:   {
   275:     LCDType = LCD_HX8312;
   276:     /* Setups the LCD */
   277:     LCD_Setup();
   278:   } 
0x08000FF2 4ACB      LDR      r2,[pc,#812]  ; @0x08001320
0x08000FF4 4288      CMP      r0,r1
0x08000FF6 D101      BNE      0x08000FFC
0x08000FF8 6051      STR      r1,[r2,#0x04]
   279: }
   280: 
   281: /*******************************************************************************
   282: * Function Name  : LCD_SetTextColor
   283: * Description    : Sets the Text color.
   284: * Input          : - Color: specifies the Text color code RGB(5-6-5).
   285: * Output         : - TextColor: Text color global variable used by LCD_DrawChar
   286: *                  and LCD_DrawPicture functions.
   287: * Return         : None
   288: *******************************************************************************/
   289: void LCD_SetTextColor(vu16 Color)
   290: {
0x08000FFA BD10      POP      {r4,pc}
   275:     LCDType = LCD_HX8312;
   276:     /* Setups the LCD */
0x08000FFC F2483012  MOVW     r0,#0x8312
0x08001000 6050      STR      r0,[r2,#0x04]
   277:     LCD_Setup();
   278:   } 
   279: }
   280: 
   281: /*******************************************************************************
   282: * Function Name  : LCD_SetTextColor
   283: * Description    : Sets the Text color.
   284: * Input          : - Color: specifies the Text color code RGB(5-6-5).
   285: * Output         : - TextColor: Text color global variable used by LCD_DrawChar
   286: *                  and LCD_DrawPicture functions.
   287: * Return         : None
   288: *******************************************************************************/
   289: void LCD_SetTextColor(vu16 Color)
   290: {
0x08001002 E8BD4010  POP      {r4,lr}
0x08001006 E518      B        LCD_Setup (0x08000A3A)
   291:   TextColor = Color;
0x08001008 49C5      LDR      r1,[pc,#788]  ; @0x08001320
0x0800100A 8008      STRH     r0,[r1,#0x00]
   292: }
   293: 
   294: /*******************************************************************************
   295: * Function Name  : LCD_SetBackColor
   296: * Description    : Sets the Background color.
   297: * Input          : - Color: specifies the Background color code RGB(5-6-5).
   298: * Output         : - BackColor: Background color global variable used by 
   299: *                  LCD_DrawChar and LCD_DrawPicture functions.
   300: * Return         : None
   301: *******************************************************************************/
   302: void LCD_SetBackColor(vu16 Color)
   303: {
0x0800100C 4770      BX       lr
   304:   BackColor = Color;
0x0800100E 49C4      LDR      r1,[pc,#784]  ; @0x08001320
0x08001010 8048      STRH     r0,[r1,#0x02]
   305: }
0x08001012 4770      BX       lr
   359: {
0x08001014 B510      PUSH     {r4,lr}
0x08001016 460C      MOV      r4,r1
   360:   if(LCDType == LCD_ILI9320)
   361:   {
0x08001018 49C1      LDR      r1,[pc,#772]  ; @0x08001320
0x0800101A 684A      LDR      r2,[r1,#0x04]
0x0800101C F5A24313  SUB      r3,r2,#0x9300
0x08001020 3B20      SUBS     r3,r3,#0x20
0x08001022 D106      BNE      0x08001032
   362:     LCD_WriteReg(R32, Xpos);
0x08001024 4601      MOV      r1,r0
0x08001026 2020      MOVS     r0,#0x20
0x08001028 F7FFFC43  BL.W     LCD_WriteReg (0x080008B2)
   363:     LCD_WriteReg(R33, Ypos);
   364:   }
0x0800102C 4621      MOV      r1,r4
0x0800102E 2021      MOVS     r0,#0x21
0x08001030 E00F      B        0x08001052
   365:   else if(LCDType == LCD_HX8312)
   366:   {
0x08001032 6849      LDR      r1,[r1,#0x04]
0x08001034 F5A14203  SUB      r2,r1,#0x8300
0x08001038 3A12      SUBS     r2,r2,#0x12
0x0800103A D10D      BNE      0x08001058
   367:     LCD_WriteReg(R66, Xpos);
0x0800103C 4601      MOV      r1,r0
0x0800103E 2042      MOVS     r0,#0x42
0x08001040 F7FFFC37  BL.W     LCD_WriteReg (0x080008B2)
   368:     LCD_WriteReg(R67, ((Ypos & 0x100)>> 8));
0x08001044 F3C42100  UBFX     r1,r4,#8,#1
0x08001048 2043      MOVS     r0,#0x43
0x0800104A F7FFFC32  BL.W     LCD_WriteReg (0x080008B2)
   369:     LCD_WriteReg(R68, (Ypos & 0xFF));
   370:   }
0x0800104E B2E1      UXTB     r1,r4
0x08001050 2044      MOVS     r0,#0x44
0x08001052 E8BD4010  POP      {r4,lr}
0x08001056 E42C      B        LCD_WriteReg (0x080008B2)
   371: }
0x08001058 BD10      POP      {r4,pc}
  1101: {
0x0800105A B570      PUSH     {r4-r6,lr}
  1102:   if(LCDType == LCD_ILI9320)
  1103:   {
0x0800105C 4EB0      LDR      r6,[pc,#704]  ; @0x08001320
0x0800105E 4604      MOV      r4,r0
0x08001060 6870      LDR      r0,[r6,#0x04]
  1104:     SPI_I2S_SendData(SPI2, RGB_Code >> 8);
0x08001062 4DAD      LDR      r5,[pc,#692]  ; @0x08001318
0x08001064 F5A04113  SUB      r1,r0,#0x9300
0x08001068 3920      SUBS     r1,r1,#0x20
0x0800106A D113      BNE      0x08001094
0x0800106C 0A21      LSRS     r1,r4,#8
0x0800106E 4628      MOV      r0,r5
0x08001070 F000FE4B  BL.W     SPI_I2S_SendData (0x08001D0A)
  1105:     while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
  1106:     {
  1107:     }
0x08001074 2180      MOVS     r1,#0x80
0x08001076 4628      MOV      r0,r5
0x08001078 F000FE3E  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x0800107C 2800      CMP      r0,#0x00
0x0800107E D1F9      BNE      0x08001074
  1108:     SPI_I2S_SendData(SPI2, RGB_Code & 0xFF);
0x08001080 B2E1      UXTB     r1,r4
0x08001082 4628      MOV      r0,r5
0x08001084 F000FE41  BL.W     SPI_I2S_SendData (0x08001D0A)
  1109:     while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
  1110:     {
  1111:     }
  1112:   }
0x08001088 2180      MOVS     r1,#0x80
0x0800108A 4628      MOV      r0,r5
0x0800108C F000FE34  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x08001090 2800      CMP      r0,#0x00
0x08001092 D1F9      BNE      0x08001088
  1113:   if(LCDType == LCD_HX8312)
  1114:   {
0x08001094 6870      LDR      r0,[r6,#0x04]
0x08001096 F5A04103  SUB      r1,r0,#0x8300
0x0800109A 3912      SUBS     r1,r1,#0x12
0x0800109C D122      BNE      0x080010E4
  1115:     LCD_CtrlLinesWrite(GPIOD, CtrlPin_NWR, Bit_RESET);
0x0800109E 4EA1      LDR      r6,[pc,#644]  ; @0x08001324
0x080010A0 2200      MOVS     r2,#0x00
0x080010A2 F44F4100  MOV      r1,#0x8000
0x080010A6 4630      MOV      r0,r6
0x080010A8 F7FFFBCE  BL.W     LCD_CtrlLinesWrite (0x08000848)
  1116:     LCD_CtrlLinesWrite(GPIOD, CtrlPin_RS, Bit_SET);
0x080010AC 2201      MOVS     r2,#0x01
0x080010AE 2180      MOVS     r1,#0x80
0x080010B0 4630      MOV      r0,r6
0x080010B2 F7FFFBC9  BL.W     LCD_CtrlLinesWrite (0x08000848)
  1117:     LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_RESET);
  1118: 
0x080010B6 4E99      LDR      r6,[pc,#612]  ; @0x0800131C
0x080010B8 2200      MOVS     r2,#0x00
0x080010BA 2104      MOVS     r1,#0x04
0x080010BC 4630      MOV      r0,r6
0x080010BE F7FFFBC3  BL.W     LCD_CtrlLinesWrite (0x08000848)
  1119:     SPI_I2S_SendData(SPI2, RGB_Code);
0x080010C2 4621      MOV      r1,r4
0x080010C4 4628      MOV      r0,r5
0x080010C6 F000FE20  BL.W     SPI_I2S_SendData (0x08001D0A)
  1120:     while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
  1121:     {
  1122:     }
  1123:   
0x080010CA 2180      MOVS     r1,#0x80
0x080010CC 4628      MOV      r0,r5
0x080010CE F000FE13  BL.W     SPI_I2S_GetFlagStatus (0x08001CF8)
0x080010D2 2800      CMP      r0,#0x00
0x080010D4 D1F9      BNE      0x080010CA
  1124:     LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
  1125:   }
0x080010D6 4630      MOV      r0,r6
0x080010D8 E8BD4070  POP      {r4-r6,lr}
0x080010DC 2201      MOVS     r2,#0x01
0x080010DE 2104      MOVS     r1,#0x04
0x080010E0 F7FFBBB2  B.W      LCD_CtrlLinesWrite (0x08000848)
  1126: }
  1127: 
  1128: /*******************************************************************************
  1129: * Function Name  : LCD_PowerOn
  1130: * Description    : Power on the LCD.
  1131: * Input          : None
  1132: * Output         : None
  1133: * Return         : None
  1134: *******************************************************************************/
  1135: void LCD_PowerOn(void)
  1136: {
0x080010E4 BD70      POP      {r4-r6,pc}
  1022: {
0x080010E6 B510      PUSH     {r4,lr}
  1023:   LCD_WriteRegIndex(R34); /* Select GRAM Reg */
  1024: 
  1025:   /* Reset LCD control line(/CS) and Send Start-Byte */
0x080010E8 2022      MOVS     r0,#0x22
0x080010EA F7FFFBC2  BL.W     LCD_WriteRegIndex (0x08000872)
  1026:   LCD_nCS_StartByte(START_BYTE | WRITE_REG);
  1027: }
  1028: 
  1029: /*******************************************************************************
  1030: * Function Name  : LCD_WriteRAMWord
  1031: * Description    : Writes 1 word to the LCD RAM.
  1032: * Input          : - RGB_Code: the pixel color in RGB mode (5-6-5).
  1033: * Output         : None
  1034: * Return         : None
  1035: *******************************************************************************/
  1036: void LCD_WriteRAMWord(u16 RGB_Code)
0x080010EE E8BD4010  POP      {r4,lr}
0x080010F2 2072      MOVS     r0,#0x72
0x080010F4 F7FFBBAA  B.W      LCD_nCS_StartByte (0x0800084C)
   385: {
0x080010F8 E92D4FF7  PUSH     {r0-r2,r4-r11,lr}
0x080010FC 4607      MOV      r7,r0
0x080010FE 4692      MOV      r10,r2
   386:   u32 index = 0, i = 0;
   387:   u8 Xaddress = 0;
   388:    
   389:   Xaddress = Xpos;
   390:   
0x08001100 2500      MOVS     r5,#0x00
   391:   LCD_SetCursor(Xaddress, Ypos);
   392:   
   393:   for(index = 0; index < 24; index++)
   394:   {
0x08001102 9901      LDR      r1,[sp,#0x04]
0x08001104 F7FFFF86  BL.W     LCD_SetCursor (0x08001014)
   395:     if(LCDType == LCD_ILI9320)
   396:     {
   397:       LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
   398:     }
   399:     for(i = 0; i < 16; i++)
   400:     {
   401:       if((c[index] & (1 << i)) == 0x00)
   402:       {
   403:         LCD_WriteRAM(BackColor);
   404:       }
   405:       else
   406:       {
   407:         LCD_WriteRAM(TextColor);
   408:       }
   409:     }
   410:     if(LCDType == LCD_ILI9320)
   411:     {
0x08001108 4E85      LDR      r6,[pc,#532]  ; @0x08001320
   412:       LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
   413:     }  
0x0800110A F8DFB210  LDR.W    r11,[pc,#528]  ; @0x0800131E
   401:       if((c[index] & (1 << i)) == 0x00)
   402:       {
   403:         LCD_WriteRAM(BackColor);
   404:       }
   405:       else
   406:       {
0x0800110E F04F0901  MOV      r9,#0x01
0x08001112 F2493820  MOVW     r8,#0x9320
0x08001116 6871      LDR      r1,[r6,#0x04]
0x08001118 4541      CMP      r1,r8
0x0800111A D101      BNE      0x08001120
   397:       LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
   398:     }
0x0800111C F7FFFFE3  BL.W     LCD_WriteRAM_Prepare (0x080010E6)
   399:     for(i = 0; i < 16; i++)
   400:     {
   401:       if((c[index] & (1 << i)) == 0x00)
   402:       {
   403:         LCD_WriteRAM(BackColor);
   404:       }
   405:       else
   406:       {
0x08001120 2400      MOVS     r4,#0x00
0x08001122 F83A1015  LDRH     r1,[r10,r5,LSL #1]
0x08001126 FA09F004  LSL      r0,r9,r4
0x0800112A 4201      TST      r1,r0
0x0800112C D018      BEQ      0x08001160
   407:         LCD_WriteRAM(TextColor);
   408:       }
   409:     }
0x0800112E 8830      LDRH     r0,[r6,#0x00]
0x08001130 F7FFFF93  BL.W     LCD_WriteRAM (0x0800105A)
0x08001134 1C64      ADDS     r4,r4,#1
0x08001136 2C10      CMP      r4,#0x10
0x08001138 D3F3      BCC      0x08001122
   410:     if(LCDType == LCD_ILI9320)
   411:     {
0x0800113A 6871      LDR      r1,[r6,#0x04]
0x0800113C 4541      CMP      r1,r8
0x0800113E D104      BNE      0x0800114A
   412:       LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
   413:     }  
0x08001140 2201      MOVS     r2,#0x01
0x08001142 2104      MOVS     r1,#0x04
0x08001144 4658      MOV      r0,r11
0x08001146 F7FFFB7F  BL.W     LCD_CtrlLinesWrite (0x08000848)
   414:     Xaddress++;
0x0800114A 1C7F      ADDS     r7,r7,#1
0x0800114C B2FF      UXTB     r7,r7
   415:     LCD_SetCursor(Xaddress, Ypos);
   416:   }
0x0800114E 4638      MOV      r0,r7
0x08001150 9901      LDR      r1,[sp,#0x04]
0x08001152 F7FFFF5F  BL.W     LCD_SetCursor (0x08001014)
   393:   for(index = 0; index < 24; index++)
   394:   {
   395:     if(LCDType == LCD_ILI9320)
   396:     {
   397:       LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
   398:     }
   399:     for(i = 0; i < 16; i++)
   400:     {
   401:       if((c[index] & (1 << i)) == 0x00)
   402:       {
   403:         LCD_WriteRAM(BackColor);
   404:       }
   405:       else
   406:       {
   407:         LCD_WriteRAM(TextColor);
   408:       }
   409:     }
   410:     if(LCDType == LCD_ILI9320)
   411:     {
   412:       LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
   413:     }  
   414:     Xaddress++;
   415:     LCD_SetCursor(Xaddress, Ypos);
   416:   }
0x08001156 1C6D      ADDS     r5,r5,#1
0x08001158 2D18      CMP      r5,#0x18
0x0800115A D3DC      BCC      0x08001116
   417: }
   418: 
   419: /*******************************************************************************
   420: * Function Name  : LCD_DisplayChar
   421: * Description    : Displays one character (16dots width, 24dots height).
   422: * Input          : - Line: the Line where to display the character shape .
   423: *                    This parameter can be one of the following values:
   424: *                       - Linex: where x can be 0..9
   425: *                  - Column: start column address.
   426: *                  - Ascii: character ascii code, must be between 0x20 and 0x7E.
   427: * Output         : None
   428: * Return         : None
   429: *******************************************************************************/
   430: void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii)
   431: {
0x0800115C E8BD8FFE  POP      {r1-r11,pc}
   403:         LCD_WriteRAM(BackColor);
0x08001160 8870      LDRH     r0,[r6,#0x02]
0x08001162 E7E5      B        0x08001130
   432:   Ascii -= 32;
0x08001164 3A20      SUBS     r2,r2,#0x20
0x08001166 B2D2      UXTB     r2,r2
   433:   LCD_DrawChar(Line, Column, &ASCII_Table[Ascii * 24]);
   434: }
   435: 
   436: /*******************************************************************************
   437: * Function Name  : LCD_DisplayStringLine
   438: * Description    : Displays a maximum of 20 char on the LCD.
   439: * Input          : - Line: the Line where to display the character shape .
   440: *                    This parameter can be one of the following values:
   441: *                       - Linex: where x can be 0..9
   442: *                  - *ptr: pointer to string to display on LCD.
   443: * Output         : None
   444: * Return         : None
   445: *******************************************************************************/
   446: void LCD_DisplayStringLine(u8 Line, u8 *ptr)
0x08001168 4B6F      LDR      r3,[pc,#444]  ; @0x08001328
0x0800116A EB020242  ADD      r2,r2,r2,LSL #1
0x0800116E EB031202  ADD      r2,r3,r2,LSL #4
0x08001172 E7C1      B        LCD_DrawChar (0x080010F8)
   447: {
0x08001174 E92D41F0  PUSH     {r4-r8,lr}
0x08001178 4607      MOV      r7,r0
0x0800117A 460D      MOV      r5,r1
   448:   u32 i = 0;
0x0800117C 2400      MOVS     r4,#0x00
   449:   u16 refcolumn = 319;
   450: 
   451:   /* Send the string character by character on lCD */
0x0800117E F240163F  MOVW     r6,#0x13F
   452:   while ((*ptr != 0) & (i < 20))
   453:   {
   454:     /* Display one character on LCD */
0x08001182 E007      B        0x08001194
   455:     LCD_DisplayChar(Line, refcolumn, *ptr);
   456:     /* Decrement the column position by 16 */
0x08001184 4631      MOV      r1,r6
0x08001186 4638      MOV      r0,r7
0x08001188 F7FFFFEC  BL.W     LCD_DisplayChar (0x08001164)
   457:     refcolumn -= 16;
   458:     /* Point on the next character */
0x0800118C 3E10      SUBS     r6,r6,#0x10
   459:     ptr++;
   460:     /* Increment the character counter */
0x0800118E 1C6D      ADDS     r5,r5,#1
0x08001190 B2B6      UXTH     r6,r6
   461:     i++;
   462:   }
0x08001192 1C64      ADDS     r4,r4,#1
0x08001194 782A      LDRB     r2,[r5,#0x00]
0x08001196 2A00      CMP      r2,#0x00
0x08001198 D001      BEQ      0x0800119E
0x0800119A 2C14      CMP      r4,#0x14
0x0800119C D3F2      BCC      0x08001184
   463: }
   464: 
   465: /*******************************************************************************
   466: * Function Name  : LCD_SetDisplayWindow
   467: * Description    : Sets a display window
   468: * Input          : - Xpos: specifies the X buttom left position.
   469: *                  - Ypos: specifies the Y buttom left position.
   470: *                  - Height: display window height.
   471: *                  - Width: display window width.
   472: * Output         : None
   473: * Return         : None
   474: *******************************************************************************/
   475: void LCD_SetDisplayWindow(u8 Xpos, u16 Ypos, u8 Height, u16 Width)
0x0800119E E8BD81F0  POP      {r4-r8,pc}
   318:   LCD_DisplayStringLine(Line, "                    ");
   319: }
   320: 
   321: /*******************************************************************************
   322: * Function Name  : LCD_Clear
   323: * Description    : Clears the hole LCD.
   324: * Input          : Color: the color of the background.
   325: * Output         : None
   326: * Return         : None
   327: *******************************************************************************/
   328: void LCD_Clear(u16 Color)
0x080011A2 A162      ADR      r1,{pc}+2  ; @0x0800132C
0x080011A4 E7E6      B        LCD_DisplayStringLine (0x08001174)
   329: {
0x080011A6 E92D41F0  PUSH     {r4-r8,lr}
0x080011AA 4680      MOV      r8,r0
   330:   u32 index = 0;
   331:   
0x080011AC 2400      MOVS     r4,#0x00
   332:   LCD_SetCursor(0x00, 0x013F); 
   333: 
0x080011AE F240113F  MOVW     r1,#0x13F
0x080011B2 4620      MOV      r0,r4
0x080011B4 F7FFFF2E  BL.W     LCD_SetCursor (0x08001014)
   334:   if(LCDType == LCD_ILI9320)
   335:   {
0x080011B8 4D59      LDR      r5,[pc,#356]  ; @0x08001320
0x080011BA 6868      LDR      r0,[r5,#0x04]
0x080011BC F2493620  MOVW     r6,#0x9320
0x080011C0 42B0      CMP      r0,r6
0x080011C2 D101      BNE      0x080011C8
   336:     LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
   337:   }
   338: 
0x080011C4 F7FFFF8F  BL.W     LCD_WriteRAM_Prepare (0x080010E6)
   339:   for(index = 0; index < 76800; index++)
   340:   {
0x080011C8 F44F3796  MOV      r7,#0x12C00
   341:     LCD_WriteRAM(Color);
   342:   }
   343: 
0x080011CC 4640      MOV      r0,r8
0x080011CE F7FFFF44  BL.W     LCD_WriteRAM (0x0800105A)
0x080011D2 1C64      ADDS     r4,r4,#1
0x080011D4 42BC      CMP      r4,r7
0x080011D6 D3F9      BCC      0x080011CC
   344:   if(LCDType == LCD_ILI9320)
   345:   {
0x080011D8 6868      LDR      r0,[r5,#0x04]
0x080011DA 42B0      CMP      r0,r6
0x080011DC D1DF      BNE      0x0800119E
   346:     LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET); 
   347:   }  
0x080011DE E8BD41F0  POP      {r4-r8,lr}
0x080011E2 2201      MOVS     r2,#0x01
0x080011E4 2104      MOVS     r1,#0x04
0x080011E6 484D      LDR      r0,[pc,#308]  ; @0x0800131C
0x080011E8 F7FFBB2E  B.W      LCD_CtrlLinesWrite (0x08000848)
   348: }
0x080011EC E7D7      B        0x0800119E
   476: {
0x080011EE E92D41F0  PUSH     {r4-r8,lr}
0x080011F2 4698      MOV      r8,r3
   477:   if(LCDType == LCD_ILI9320)
   478:   {
   479:     /* Horizontal GRAM Start Address */
   480:     if(Xpos >= Height)
   481:     {
0x080011F4 4B4A      LDR      r3,[pc,#296]  ; @0x08001320
0x080011F6 4607      MOV      r7,r0
0x080011F8 460C      MOV      r4,r1
0x080011FA 6858      LDR      r0,[r3,#0x04]
   482:       LCD_WriteReg(R80, (Xpos - Height + 1));
   483:     }
   484:     else
   485:     {
   486:       LCD_WriteReg(R80, 0);
   487:     }
   488:     /* Horizontal GRAM End Address */
   489:     LCD_WriteReg(R81, Xpos);
   490:     /* Vertical GRAM Start Address */
   491:     if(Ypos >= Width)
   492:     {
0x080011FC 1ABE      SUBS     r6,r7,r2
   493:       LCD_WriteReg(R82, (Ypos - Width + 1));
   494:     }  
   495:     else
   496:     {
0x080011FE EBA40508  SUB      r5,r4,r8
0x08001202 1C76      ADDS     r6,r6,#1
0x08001204 1C6D      ADDS     r5,r5,#1
0x08001206 F5A04113  SUB      r1,r0,#0x9300
0x0800120A 3920      SUBS     r1,r1,#0x20
0x0800120C D116      BNE      0x0800123C
   480:     if(Xpos >= Height)
   481:     {
   482:       LCD_WriteReg(R80, (Xpos - Height + 1));
   483:     }
   484:     else
   485:     {
0x0800120E 4297      CMP      r7,r2
0x08001210 D301      BCC      0x08001216
0x08001212 B2B1      UXTH     r1,r6
0x08001214 E000      B        0x08001218
   486:       LCD_WriteReg(R80, 0);
   487:     }
   488:     /* Horizontal GRAM End Address */
0x08001216 2100      MOVS     r1,#0x00
0x08001218 2050      MOVS     r0,#0x50
0x0800121A F7FFFB4A  BL.W     LCD_WriteReg (0x080008B2)
   489:     LCD_WriteReg(R81, Xpos);
   490:     /* Vertical GRAM Start Address */
0x0800121E 4639      MOV      r1,r7
0x08001220 2051      MOVS     r0,#0x51
0x08001222 F7FFFB46  BL.W     LCD_WriteReg (0x080008B2)
   491:     if(Ypos >= Width)
   492:     {
0x08001226 4544      CMP      r4,r8
0x08001228 D301      BCC      0x0800122E
   493:       LCD_WriteReg(R82, (Ypos - Width + 1));
   494:     }  
   495:     else
   496:     {
0x0800122A B2A9      UXTH     r1,r5
0x0800122C E000      B        0x08001230
   497:       LCD_WriteReg(R82, 0);
   498:     }
   499:     /* Vertical GRAM End Address */
0x0800122E 2100      MOVS     r1,#0x00
0x08001230 2052      MOVS     r0,#0x52
0x08001232 F7FFFB3E  BL.W     LCD_WriteReg (0x080008B2)
   500:     LCD_WriteReg(R83, Ypos);
   501:   }
0x08001236 4621      MOV      r1,r4
0x08001238 2053      MOVS     r0,#0x53
0x0800123A E024      B        0x08001286
   502:   else if(LCDType == LCD_HX8312)
   503:   {  
0x0800123C 6858      LDR      r0,[r3,#0x04]
0x0800123E F5A04103  SUB      r1,r0,#0x8300
0x08001242 3912      SUBS     r1,r1,#0x12
0x08001244 D121      BNE      0x0800128A
   504:     LCD_WriteReg(R1, 0xD0);
0x08001246 21D0      MOVS     r1,#0xD0
0x08001248 2001      MOVS     r0,#0x01
0x0800124A F7FFFB32  BL.W     LCD_WriteReg (0x080008B2)
   505:     LCD_WriteReg(R5, 0x14);
   506:   
0x0800124E 2114      MOVS     r1,#0x14
0x08001250 2005      MOVS     r0,#0x05
0x08001252 F7FFFB2E  BL.W     LCD_WriteReg (0x080008B2)
   507:     LCD_WriteReg(R69, (Xpos - Height + 1));
0x08001256 B2B1      UXTH     r1,r6
0x08001258 2045      MOVS     r0,#0x45
0x0800125A F7FFFB2A  BL.W     LCD_WriteReg (0x080008B2)
   508:     LCD_WriteReg(R70, Xpos);
   509:  
0x0800125E 4639      MOV      r1,r7
0x08001260 2046      MOVS     r0,#0x46
0x08001262 F7FFFB26  BL.W     LCD_WriteReg (0x080008B2)
   510:     LCD_WriteReg(R71, (((Ypos - Width + 1) & 0x100)>> 8));
0x08001266 F3C52100  UBFX     r1,r5,#8,#1
0x0800126A 2047      MOVS     r0,#0x47
0x0800126C F7FFFB21  BL.W     LCD_WriteReg (0x080008B2)
   511:     LCD_WriteReg(R72, ((Ypos - Width + 1) & 0xFF));
   512: 
0x08001270 B2E9      UXTB     r1,r5
0x08001272 2048      MOVS     r0,#0x48
0x08001274 F7FFFB1D  BL.W     LCD_WriteReg (0x080008B2)
   513:     LCD_WriteReg(R73, ((Ypos & 0x100)>> 8));
0x08001278 F3C42100  UBFX     r1,r4,#8,#1
0x0800127C 2049      MOVS     r0,#0x49
0x0800127E F7FFFB18  BL.W     LCD_WriteReg (0x080008B2)
   514:     LCD_WriteReg(R74, (Ypos & 0xFF));
   515:   }
   516: 
0x08001282 B2E1      UXTB     r1,r4
0x08001284 204A      MOVS     r0,#0x4A
0x08001286 F7FFFB14  BL.W     LCD_WriteReg (0x080008B2)
   517:   LCD_SetCursor(Xpos, Ypos);
   518: }
   519: 
   520: /*******************************************************************************
   521: * Function Name  : LCD_WindowModeDisable
   522: * Description    : Disables LCD Window mode.
   523: * Input          : None
   524: * Output         : None
   525: * Return         : None
   526: *******************************************************************************/
   527: void LCD_WindowModeDisable(void)
   528: {
0x0800128A 4621      MOV      r1,r4
0x0800128C 4638      MOV      r0,r7
0x0800128E E8BD41F0  POP      {r4-r8,lr}
0x08001292 E6BF      B        LCD_SetCursor (0x08001014)
   529:   if(LCDType == LCD_ILI9320)
   530:   {
0x08001294 4822      LDR      r0,[pc,#136]  ; @0x08001320
   528: {
   529:   if(LCDType == LCD_ILI9320)
   530:   {
0x08001296 B510      PUSH     {r4,lr}
0x08001298 6841      LDR      r1,[r0,#0x04]
0x0800129A F5A14213  SUB      r2,r1,#0x9300
0x0800129E 3A20      SUBS     r2,r2,#0x20
0x080012A0 D10A      BNE      0x080012B8
   531:     LCD_SetDisplayWindow(239, 319, 240, 320);
0x080012A2 F44F73A0  MOV      r3,#0x140
0x080012A6 22F0      MOVS     r2,#0xF0
0x080012A8 1E59      SUBS     r1,r3,#1
0x080012AA 20EF      MOVS     r0,#0xEF
0x080012AC F7FFFF9F  BL.W     LCD_SetDisplayWindow (0x080011EE)
   532:     LCD_WriteReg(R3, 0x1018);
   533:   }
0x080012B0 F2410118  MOVW     r1,#0x1018
0x080012B4 2003      MOVS     r0,#0x03
0x080012B6 E00A      B        0x080012CE
   534:   else if(LCDType == LCD_HX8312)
   535:   {
0x080012B8 6840      LDR      r0,[r0,#0x04]
0x080012BA F5A04103  SUB      r1,r0,#0x8300
0x080012BE 3912      SUBS     r1,r1,#0x12
0x080012C0 D109      BNE      0x080012D6
   536:     LCD_WriteReg(R1, 0x50);
0x080012C2 2150      MOVS     r1,#0x50
0x080012C4 2001      MOVS     r0,#0x01
0x080012C6 F7FFFAF4  BL.W     LCD_WriteReg (0x080008B2)
   537:     LCD_WriteReg(R5, 0x04); 
   538:   }
   539:     
0x080012CA 2104      MOVS     r1,#0x04
0x080012CC 2005      MOVS     r0,#0x05
0x080012CE E8BD4010  POP      {r4,lr}
0x080012D2 F7FFBAEE  B.W      LCD_WriteReg (0x080008B2)
   540: }
0x080012D6 BD10      POP      {r4,pc}
  1037: {
0x080012D8 B510      PUSH     {r4,lr}
0x080012DA 4604      MOV      r4,r0
  1038:   LCD_WriteRAM_Prepare();
  1039: 
0x080012DC F7FFFF03  BL.W     LCD_WriteRAM_Prepare (0x080010E6)
  1040:   LCD_WriteRAM(RGB_Code);
  1041: 
0x080012E0 4620      MOV      r0,r4
0x080012E2 F7FFFEBA  BL.W     LCD_WriteRAM (0x0800105A)
  1042:   LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
0x080012E6 2201      MOVS     r2,#0x01
0x080012E8 E8BD4010  POP      {r4,lr}
0x080012EC 2104      MOVS     r1,#0x04
0x080012EE 480B      LDR      r0,[pc,#44]  ; @0x0800131C
0x080012F0 F7FFBAAA  B.W      LCD_CtrlLinesWrite (0x08000848)
   554: {
0x080012F4 E92D47F0  PUSH     {r4-r10,lr}
0x080012F8 4616      MOV      r6,r2
0x080012FA 461F      MOV      r7,r3
0x080012FC 4605      MOV      r5,r0
0x080012FE 468A      MOV      r10,r1
   555:   u32 i = 0;
   556:   
0x08001300 2400      MOVS     r4,#0x00
   557:   LCD_SetCursor(Xpos, Ypos);
   558: 
   559:   if(Direction == Horizontal)
   560:   { 
0x08001302 F7FFFE87  BL.W     LCD_SetCursor (0x08001014)
   561:     if(LCDType == LCD_ILI9320)
   562:     {
   563:       LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
   564:     }
   565:     for(i = 0; i < Length; i++)
   566:     {
   567:       LCD_WriteRAM(TextColor);
   568:     }
   569:     if(LCDType == LCD_ILI9320)
   570:     {
   571:       LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
   572:     }
   573:   }
   574:   else
   575:   {
   576:    for(i = 0; i < Length; i++)
   577:     {
   578:       if(LCDType == LCD_ILI9320)
   579:       {
   580:         LCD_WriteRAMWord(TextColor);
   581:       }
0x08001306 F8DF8018  LDR.W    r8,[pc,#24]  ; @0x08001322
0x0800130A F2493920  MOVW     r9,#0x9320
   559:   if(Direction == Horizontal)
   560:   { 
   561:     if(LCDType == LCD_ILI9320)
   562:     {
   563:       LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
   564:     }
   565:     for(i = 0; i < Length; i++)
   566:     {
   567:       LCD_WriteRAM(TextColor);
   568:     }
   569:     if(LCDType == LCD_ILI9320)
   570:     {
   571:       LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
   572:     }
   573:   }
   574:   else
   575:   {
   576:    for(i = 0; i < Length; i++)
   577:     {
   578:       if(LCDType == LCD_ILI9320)
   579:       {
   580:         LCD_WriteRAMWord(TextColor);
   581:       }
0x0800130E B1CF      CBZ      r7,0x08001344
   582:       else  if(LCDType == LCD_HX8312)
   583:       {
0x08001310 F2483712  MOVW     r7,#0x8312
   576:    for(i = 0; i < Length; i++)
   577:     {
0x08001314 E047      B        0x080013A6
0x08001316 0000      MOVS     r0,r0
0x08001318 3800      SUBS     r0,r0,#0x00
0x0800131A 4000      ANDS     r0,r0,r0
0x0800131C 0C00      LSRS     r0,r0,#16
0x0800131E 4001      ANDS     r1,r1,r0
0x08001320 0008      MOVS     r0,r1
0x08001322 2000      MOVS     r0,#0x00
0x08001324 1400      ASRS     r0,r0,#16
0x08001326 4001      ANDS     r1,r1,r0
0x08001328 1DA8      ADDS     r0,r5,#6
0x0800132A 0800      LSRS     r0,r0,#0
0x0800132C 2020      MOVS     r0,#0x20
0x0800132E 2020      MOVS     r0,#0x20
0x08001330 2020      MOVS     r0,#0x20
0x08001332 2020      MOVS     r0,#0x20
0x08001334 2020      MOVS     r0,#0x20
0x08001336 2020      MOVS     r0,#0x20
0x08001338 2020      MOVS     r0,#0x20
0x0800133A 2020      MOVS     r0,#0x20
0x0800133C 2020      MOVS     r0,#0x20
0x0800133E 2020      MOVS     r0,#0x20
0x08001340 0000      MOVS     r0,r0
0x08001342 0000      MOVS     r0,r0
   561:     if(LCDType == LCD_ILI9320)
   562:     {
0x08001344 F8D80004  LDR      r0,[r8,#0x04]
0x08001348 4548      CMP      r0,r9
0x0800134A D107      BNE      0x0800135C
   563:       LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
   564:     }
   565:     for(i = 0; i < Length; i++)
   566:     {
0x0800134C F7FFFECB  BL.W     LCD_WriteRAM_Prepare (0x080010E6)
0x08001350 E004      B        0x0800135C
   567:       LCD_WriteRAM(TextColor);
   568:     }
0x08001352 F8B80000  LDRH     r0,[r8,#0x00]
0x08001356 F7FFFE80  BL.W     LCD_WriteRAM (0x0800105A)
   565:     for(i = 0; i < Length; i++)
   566:     {
   567:       LCD_WriteRAM(TextColor);
   568:     }
0x0800135A 1C64      ADDS     r4,r4,#1
0x0800135C 42B4      CMP      r4,r6
0x0800135E D3F8      BCC      0x08001352
   569:     if(LCDType == LCD_ILI9320)
   570:     {
0x08001360 F8D80004  LDR      r0,[r8,#0x04]
0x08001364 4548      CMP      r0,r9
0x08001366 D120      BNE      0x080013AA
   571:       LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
   572:     }
   573:   }
   574:   else
   575:   {
   576:    for(i = 0; i < Length; i++)
   577:     {
0x08001368 E8BD47F0  POP      {r4-r10,lr}
0x0800136C 2201      MOVS     r2,#0x01
0x0800136E 2104      MOVS     r1,#0x04
0x08001370 48F9      LDR      r0,[pc,#996]  ; @0x08001758
0x08001372 F7FFBA69  B.W      LCD_CtrlLinesWrite (0x08000848)
   578:       if(LCDType == LCD_ILI9320)
   579:       {
0x08001376 F8D81004  LDR      r1,[r8,#0x04]
0x0800137A 4549      CMP      r1,r9
0x0800137C D104      BNE      0x08001388
   580:         LCD_WriteRAMWord(TextColor);
   581:       }
0x0800137E F8B80000  LDRH     r0,[r8,#0x00]
0x08001382 F7FFFFA9  BL.W     LCD_WriteRAMWord (0x080012D8)
0x08001386 E007      B        0x08001398
   582:       else  if(LCDType == LCD_HX8312)
   583:       {
0x08001388 F8D81004  LDR      r1,[r8,#0x04]
0x0800138C 42B9      CMP      r1,r7
0x0800138E D103      BNE      0x08001398
   584:         LCD_WriteRAM(TextColor);
   585:       }
0x08001390 F8B80000  LDRH     r0,[r8,#0x00]
0x08001394 F7FFFE61  BL.W     LCD_WriteRAM (0x0800105A)
   586:       Xpos++;
0x08001398 1C6D      ADDS     r5,r5,#1
0x0800139A B2ED      UXTB     r5,r5
   587:       LCD_SetCursor(Xpos, Ypos);
   588:     }
   589:   }
0x0800139C 4651      MOV      r1,r10
0x0800139E 4628      MOV      r0,r5
0x080013A0 F7FFFE38  BL.W     LCD_SetCursor (0x08001014)
   576:    for(i = 0; i < Length; i++)
   577:     {
   578:       if(LCDType == LCD_ILI9320)
   579:       {
   580:         LCD_WriteRAMWord(TextColor);
   581:       }
   582:       else  if(LCDType == LCD_HX8312)
   583:       {
   584:         LCD_WriteRAM(TextColor);
   585:       }
   586:       Xpos++;
   587:       LCD_SetCursor(Xpos, Ypos);
   588:     }
   589:   }
0x080013A4 1C64      ADDS     r4,r4,#1
0x080013A6 42B4      CMP      r4,r6
0x080013A8 D3E5      BCC      0x08001376
   590: }
   591: 
   592: /*******************************************************************************
   593: * Function Name  : LCD_DrawRect
   594: * Description    : Displays a rectangle.
   595: * Input          : - Xpos: specifies the X position.
   596: *                  - Ypos: specifies the Y position.
   597: *                  - Height: display rectangle height.
   598: *                  - Width: display rectangle width.
   599: * Output         : None
   600: * Return         : None
   601: *******************************************************************************/
   602: void LCD_DrawRect(u8 Xpos, u16 Ypos, u8 Height, u16 Width)
0x080013AA E8BD87F0  POP      {r4-r10,pc}
   603: {
0x080013AE E92D41F0  PUSH     {r4-r8,lr}
0x080013B2 461E      MOV      r6,r3
0x080013B4 4615      MOV      r5,r2
0x080013B6 4604      MOV      r4,r0
0x080013B8 460F      MOV      r7,r1
   604:   LCD_DrawLine(Xpos, Ypos, Width, Horizontal);
0x080013BA 2300      MOVS     r3,#0x00
0x080013BC 4632      MOV      r2,r6
0x080013BE F7FFFF99  BL.W     LCD_DrawLine (0x080012F4)
   605:   LCD_DrawLine((Xpos + Height), Ypos, Width, Horizontal);
   606:   
0x080013C2 1960      ADDS     r0,r4,r5
0x080013C4 B2C0      UXTB     r0,r0
0x080013C6 2300      MOVS     r3,#0x00
0x080013C8 4632      MOV      r2,r6
0x080013CA 4639      MOV      r1,r7
0x080013CC F7FFFF92  BL.W     LCD_DrawLine (0x080012F4)
   607:   LCD_DrawLine(Xpos, Ypos, Height, Vertical);
0x080013D0 2301      MOVS     r3,#0x01
0x080013D2 462A      MOV      r2,r5
0x080013D4 4639      MOV      r1,r7
0x080013D6 4620      MOV      r0,r4
0x080013D8 F7FFFF8C  BL.W     LCD_DrawLine (0x080012F4)
   608:   LCD_DrawLine(Xpos, (Ypos - Width + 1), Height, Vertical);
   609: }
   610: 
   611: /*******************************************************************************
   612: * Function Name  : LCD_DrawCircle
   613: * Description    : Displays a circle.
   614: * Input          : - Xpos: specifies the X position.
   615: *                  - Ypos: specifies the Y position.
   616: *                  - Height: display rectangle height.
   617: *                  - Width: display rectangle width.
   618: * Output         : None
   619: * Return         : None
   620: *******************************************************************************/
   621: void LCD_DrawCircle(u8 Xpos, u16 Ypos, u16 Radius)
0x080013DC 1BB8      SUBS     r0,r7,r6
0x080013DE 1C40      ADDS     r0,r0,#1
0x080013E0 B281      UXTH     r1,r0
0x080013E2 462A      MOV      r2,r5
0x080013E4 4620      MOV      r0,r4
0x080013E6 E8BD41F0  POP      {r4-r8,lr}
0x080013EA 2301      MOVS     r3,#0x01
0x080013EC E782      B        LCD_DrawLine (0x080012F4)
   622: {
   623:   s32  D;/* Decision Variable */ 
   624:   u32  CurX;/* Current X Value */
   625:   u32  CurY;/* Current Y Value */ 
   626:   
0x080013EE E92D5FFC  PUSH     {r2-r12,lr}
0x080013F2 4607      MOV      r7,r0
   627:   D = 3 - (Radius << 1);
0x080013F4 2003      MOVS     r0,#0x03
0x080013F6 4688      MOV      r8,r1
0x080013F8 EBA00642  SUB      r6,r0,r2,LSL #1
   628:   CurX = 0;
0x080013FC 2400      MOVS     r4,#0x00
   629:   CurY = Radius;
   630:   
   631:   while (CurX <= CurY)
   632:   {
   633:     LCD_SetCursor(Xpos + CurX, Ypos + CurY);
   634:     if(LCDType == LCD_ILI9320)
   635:     {
   636:       LCD_WriteRAMWord(TextColor);
   637:     }
0x080013FE 4615      MOV      r5,r2
   638:     else if(LCDType == LCD_HX8312)
   639:     {
0x08001400 F2483912  MOVW     r9,#0x8312
   634:     if(LCDType == LCD_ILI9320)
   635:     {
   636:       LCD_WriteRAMWord(TextColor);
   637:     }
0x08001404 F8DFA354  LDR.W    r10,[pc,#852]  ; @0x0800175C
   631:   while (CurX <= CurY)
   632:   {
0x08001408 E0CF      B        0x080015AA
   633:     LCD_SetCursor(Xpos + CurX, Ypos + CurY);
0x0800140A EB080005  ADD      r0,r8,r5
0x0800140E B281      UXTH     r1,r0
0x08001410 9000      STR      r0,[sp,#0x00]
0x08001412 1938      ADDS     r0,r7,r4
0x08001414 4683      MOV      r11,r0
0x08001416 B2C0      UXTB     r0,r0
0x08001418 F7FFFDFC  BL.W     LCD_SetCursor (0x08001014)
   634:     if(LCDType == LCD_ILI9320)
   635:     {
   636:       LCD_WriteRAMWord(TextColor);
   637:     }
0x0800141C F8DA1004  LDR      r1,[r10,#0x04]
0x08001420 F5A14013  SUB      r0,r1,#0x9300
0x08001424 3820      SUBS     r0,r0,#0x20
   638:     else if(LCDType == LCD_HX8312)
   639:     {
0x08001426 4650      MOV      r0,r10
0x08001428 D103      BNE      0x08001432
   636:       LCD_WriteRAMWord(TextColor);
   637:     }
   638:     else if(LCDType == LCD_HX8312)
   639:     {
0x0800142A 8800      LDRH     r0,[r0,#0x00]
0x0800142C F7FFFF54  BL.W     LCD_WriteRAMWord (0x080012D8)
0x08001430 E005      B        0x0800143E
0x08001432 6842      LDR      r2,[r0,#0x04]
0x08001434 454A      CMP      r2,r9
0x08001436 D102      BNE      0x0800143E
   640:       LCD_WriteRAM(TextColor);
   641:     }
0x08001438 8800      LDRH     r0,[r0,#0x00]
0x0800143A F7FFFE0E  BL.W     LCD_WriteRAM (0x0800105A)
   642:     LCD_SetCursor(Xpos + CurX, Ypos - CurY);
0x0800143E EBA80005  SUB      r0,r8,r5
0x08001442 B281      UXTH     r1,r0
0x08001444 9001      STR      r0,[sp,#0x04]
0x08001446 F00B00FF  AND      r0,r11,#0xFF
0x0800144A F7FFFDE3  BL.W     LCD_SetCursor (0x08001014)
   643:     if(LCDType == LCD_ILI9320)
   644:     {
   645:       LCD_WriteRAMWord(TextColor);
   646:     }
0x0800144E F8DA1004  LDR      r1,[r10,#0x04]
0x08001452 F5A14013  SUB      r0,r1,#0x9300
0x08001456 3820      SUBS     r0,r0,#0x20
   647:     else if(LCDType == LCD_HX8312)
   648:     {
0x08001458 4650      MOV      r0,r10
0x0800145A D103      BNE      0x08001464
   645:       LCD_WriteRAMWord(TextColor);
   646:     }
   647:     else if(LCDType == LCD_HX8312)
   648:     {
0x0800145C 8800      LDRH     r0,[r0,#0x00]
0x0800145E F7FFFF3B  BL.W     LCD_WriteRAMWord (0x080012D8)
0x08001462 E005      B        0x08001470
0x08001464 6842      LDR      r2,[r0,#0x04]
0x08001466 454A      CMP      r2,r9
0x08001468 D102      BNE      0x08001470
   649:       LCD_WriteRAM(TextColor);
   650:     }
0x0800146A 8800      LDRH     r0,[r0,#0x00]
0x0800146C F7FFFDF5  BL.W     LCD_WriteRAM (0x0800105A)
   651:     LCD_SetCursor(Xpos - CurX, Ypos + CurY);
0x08001470 9800      LDR      r0,[sp,#0x00]
0x08001472 B281      UXTH     r1,r0
0x08001474 1B38      SUBS     r0,r7,r4
0x08001476 4683      MOV      r11,r0
0x08001478 B2C0      UXTB     r0,r0
0x0800147A F7FFFDCB  BL.W     LCD_SetCursor (0x08001014)
   652:     if(LCDType == LCD_ILI9320)
   653:     {
   654:       LCD_WriteRAMWord(TextColor);
   655:     }
0x0800147E F8DA1004  LDR      r1,[r10,#0x04]
0x08001482 F5A14013  SUB      r0,r1,#0x9300
0x08001486 3820      SUBS     r0,r0,#0x20
   656:     else if(LCDType == LCD_HX8312)
   657:     {
0x08001488 4650      MOV      r0,r10
0x0800148A D103      BNE      0x08001494
   654:       LCD_WriteRAMWord(TextColor);
   655:     }
   656:     else if(LCDType == LCD_HX8312)
   657:     {
0x0800148C 8800      LDRH     r0,[r0,#0x00]
0x0800148E F7FFFF23  BL.W     LCD_WriteRAMWord (0x080012D8)
0x08001492 E005      B        0x080014A0
0x08001494 6842      LDR      r2,[r0,#0x04]
0x08001496 454A      CMP      r2,r9
0x08001498 D102      BNE      0x080014A0
   658:       LCD_WriteRAM(TextColor);
   659:     }
0x0800149A 8800      LDRH     r0,[r0,#0x00]
0x0800149C F7FFFDDD  BL.W     LCD_WriteRAM (0x0800105A)
   660:     LCD_SetCursor(Xpos - CurX, Ypos - CurY);
0x080014A0 9801      LDR      r0,[sp,#0x04]
0x080014A2 B281      UXTH     r1,r0
0x080014A4 F00B00FF  AND      r0,r11,#0xFF
0x080014A8 F7FFFDB4  BL.W     LCD_SetCursor (0x08001014)
   661:     if(LCDType == LCD_ILI9320)
   662:     {
   663:       LCD_WriteRAMWord(TextColor);
   664:     }
0x080014AC F8DA1004  LDR      r1,[r10,#0x04]
0x080014B0 F5A14013  SUB      r0,r1,#0x9300
0x080014B4 3820      SUBS     r0,r0,#0x20
   665:     else if(LCDType == LCD_HX8312)
   666:     {
0x080014B6 4650      MOV      r0,r10
0x080014B8 D103      BNE      0x080014C2
   663:       LCD_WriteRAMWord(TextColor);
   664:     }
   665:     else if(LCDType == LCD_HX8312)
   666:     {
0x080014BA 8800      LDRH     r0,[r0,#0x00]
0x080014BC F7FFFF0C  BL.W     LCD_WriteRAMWord (0x080012D8)
0x080014C0 E005      B        0x080014CE
0x080014C2 6842      LDR      r2,[r0,#0x04]
0x080014C4 454A      CMP      r2,r9
0x080014C6 D102      BNE      0x080014CE
   667:       LCD_WriteRAM(TextColor);
   668:     }
0x080014C8 8800      LDRH     r0,[r0,#0x00]
0x080014CA F7FFFDC6  BL.W     LCD_WriteRAM (0x0800105A)
   669:     LCD_SetCursor(Xpos + CurY, Ypos + CurX);
0x080014CE EB080004  ADD      r0,r8,r4
0x080014D2 B281      UXTH     r1,r0
0x080014D4 9000      STR      r0,[sp,#0x00]
0x080014D6 1978      ADDS     r0,r7,r5
0x080014D8 4683      MOV      r11,r0
0x080014DA B2C0      UXTB     r0,r0
0x080014DC F7FFFD9A  BL.W     LCD_SetCursor (0x08001014)
   670:     if(LCDType == LCD_ILI9320)
   671:     {
   672:       LCD_WriteRAMWord(TextColor);
   673:     }
0x080014E0 F8DA1004  LDR      r1,[r10,#0x04]
0x080014E4 F5A14013  SUB      r0,r1,#0x9300
0x080014E8 3820      SUBS     r0,r0,#0x20
   674:     else if(LCDType == LCD_HX8312)
   675:     {
0x080014EA 4650      MOV      r0,r10
0x080014EC D103      BNE      0x080014F6
   672:       LCD_WriteRAMWord(TextColor);
   673:     }
   674:     else if(LCDType == LCD_HX8312)
   675:     {
0x080014EE 8800      LDRH     r0,[r0,#0x00]
0x080014F0 F7FFFEF2  BL.W     LCD_WriteRAMWord (0x080012D8)
0x080014F4 E005      B        0x08001502
0x080014F6 6842      LDR      r2,[r0,#0x04]
0x080014F8 454A      CMP      r2,r9
0x080014FA D102      BNE      0x08001502
   676:       LCD_WriteRAM(TextColor);
   677:     }
0x080014FC 8800      LDRH     r0,[r0,#0x00]
0x080014FE F7FFFDAC  BL.W     LCD_WriteRAM (0x0800105A)
   678:     LCD_SetCursor(Xpos + CurY, Ypos - CurX);
0x08001502 EBA80004  SUB      r0,r8,r4
0x08001506 B281      UXTH     r1,r0
0x08001508 9001      STR      r0,[sp,#0x04]
0x0800150A F00B00FF  AND      r0,r11,#0xFF
0x0800150E F7FFFD81  BL.W     LCD_SetCursor (0x08001014)
   679:     if(LCDType == LCD_ILI9320)
   680:     {
   681:       LCD_WriteRAMWord(TextColor);
   682:     }
0x08001512 F8DA1004  LDR      r1,[r10,#0x04]
0x08001516 F5A14013  SUB      r0,r1,#0x9300
0x0800151A 3820      SUBS     r0,r0,#0x20
   683:     else if(LCDType == LCD_HX8312)
   684:     {
0x0800151C 4650      MOV      r0,r10
0x0800151E D103      BNE      0x08001528
   681:       LCD_WriteRAMWord(TextColor);
   682:     }
   683:     else if(LCDType == LCD_HX8312)
   684:     {
0x08001520 8800      LDRH     r0,[r0,#0x00]
0x08001522 F7FFFED9  BL.W     LCD_WriteRAMWord (0x080012D8)
0x08001526 E005      B        0x08001534
0x08001528 6842      LDR      r2,[r0,#0x04]
0x0800152A 454A      CMP      r2,r9
0x0800152C D102      BNE      0x08001534
   685:       LCD_WriteRAM(TextColor);
   686:     }
0x0800152E 8800      LDRH     r0,[r0,#0x00]
0x08001530 F7FFFD93  BL.W     LCD_WriteRAM (0x0800105A)
   687:     LCD_SetCursor(Xpos - CurY, Ypos + CurX);
0x08001534 9800      LDR      r0,[sp,#0x00]
0x08001536 B281      UXTH     r1,r0
0x08001538 1B78      SUBS     r0,r7,r5
0x0800153A 4683      MOV      r11,r0
0x0800153C B2C0      UXTB     r0,r0
0x0800153E F7FFFD69  BL.W     LCD_SetCursor (0x08001014)
   688:     if(LCDType == LCD_ILI9320)
   689:     {
   690:       LCD_WriteRAMWord(TextColor);
   691:     }
0x08001542 F8DA1004  LDR      r1,[r10,#0x04]
0x08001546 F5A14013  SUB      r0,r1,#0x9300
0x0800154A 3820      SUBS     r0,r0,#0x20
   692:     else if(LCDType == LCD_HX8312)
   693:     {
0x0800154C 4650      MOV      r0,r10
0x0800154E D103      BNE      0x08001558
   690:       LCD_WriteRAMWord(TextColor);
   691:     }
   692:     else if(LCDType == LCD_HX8312)
   693:     {
0x08001550 8800      LDRH     r0,[r0,#0x00]
0x08001552 F7FFFEC1  BL.W     LCD_WriteRAMWord (0x080012D8)
0x08001556 E005      B        0x08001564
0x08001558 6842      LDR      r2,[r0,#0x04]
0x0800155A 454A      CMP      r2,r9
0x0800155C D102      BNE      0x08001564
   694:       LCD_WriteRAM(TextColor);
   695:     }
0x0800155E 8800      LDRH     r0,[r0,#0x00]
0x08001560 F7FFFD7B  BL.W     LCD_WriteRAM (0x0800105A)
   696:     LCD_SetCursor(Xpos - CurY, Ypos - CurX);
0x08001564 9801      LDR      r0,[sp,#0x04]
0x08001566 B281      UXTH     r1,r0
0x08001568 F00B00FF  AND      r0,r11,#0xFF
0x0800156C F7FFFD52  BL.W     LCD_SetCursor (0x08001014)
   697:     if(LCDType == LCD_ILI9320)
   698:     {
0x08001570 F8DA2004  LDR      r2,[r10,#0x04]
0x08001574 4650      MOV      r0,r10
0x08001576 F5A24113  SUB      r1,r2,#0x9300
0x0800157A 3920      SUBS     r1,r1,#0x20
0x0800157C D103      BNE      0x08001586
   699:       LCD_WriteRAMWord(TextColor);
   700:     }
0x0800157E 8800      LDRH     r0,[r0,#0x00]
0x08001580 F7FFFEAA  BL.W     LCD_WriteRAMWord (0x080012D8)
0x08001584 E005      B        0x08001592
   701:     else if(LCDType == LCD_HX8312)
   702:     {
0x08001586 6842      LDR      r2,[r0,#0x04]
0x08001588 454A      CMP      r2,r9
0x0800158A D102      BNE      0x08001592
   703:       LCD_WriteRAM(TextColor);
   704:     }
   705: 
0x0800158C 8800      LDRH     r0,[r0,#0x00]
0x0800158E F7FFFD64  BL.W     LCD_WriteRAM (0x0800105A)
   706:     if (D < 0)
   707:     { 
0x08001592 2E00      CMP      r6,#0x00
0x08001594 DA03      BGE      0x0800159E
   708:       D += (CurX << 2) + 6;
   709:     }
   710:     else
   711:     {
0x08001596 EB060684  ADD      r6,r6,r4,LSL #2
0x0800159A 1DB6      ADDS     r6,r6,#6
0x0800159C E004      B        0x080015A8
   712:       D += ((CurX - CurY) << 2) + 10;
0x0800159E 1B60      SUBS     r0,r4,r5
0x080015A0 EB060680  ADD      r6,r6,r0,LSL #2
0x080015A4 360A      ADDS     r6,r6,#0x0A
   713:       CurY--;
   714:     }
0x080015A6 1E6D      SUBS     r5,r5,#1
   715:     CurX++;
   716:   }
0x080015A8 1C64      ADDS     r4,r4,#1
   631:   while (CurX <= CurY)
0x080015AA 42AC      CMP      r4,r5
0x080015AC F67FAF2D  BLS.W    0x0800140A
   717: }
   718: 
   719: /*******************************************************************************
   720: * Function Name  : LCD_DrawMonoPict
   721: * Description    : Displays a monocolor picture.
   722: * Input          : - Pict: pointer to the picture array.
   723: * Output         : None
   724: * Return         : None
   725: *******************************************************************************/
   726: void LCD_DrawMonoPict(uc32 *Pict)
0x080015B0 E8BD9FFC  POP      {r2-r12,pc}
   727: {
0x080015B4 E92D47F0  PUSH     {r4-r10,lr}
0x080015B8 4680      MOV      r8,r0
   728:   u32 index = 0, i = 0;
   729: 
0x080015BA 2500      MOVS     r5,#0x00
   730:   LCD_SetCursor(0, 319); 
0x080015BC F240113F  MOVW     r1,#0x13F
0x080015C0 4628      MOV      r0,r5
0x080015C2 F7FFFD27  BL.W     LCD_SetCursor (0x08001014)
   731:   if(LCDType == LCD_ILI9320)
   732:   {
0x080015C6 4E65      LDR      r6,[pc,#404]  ; @0x0800175C
0x080015C8 6871      LDR      r1,[r6,#0x04]
0x080015CA F2493920  MOVW     r9,#0x9320
0x080015CE 4549      CMP      r1,r9
0x080015D0 D101      BNE      0x080015D6
   733:     LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
   734:   }
   735:   for(index = 0; index < 2400; index++)
   736:   {
   737:     for(i = 0; i < 32; i++)
   738:     {
0x080015D2 F7FFFD88  BL.W     LCD_WriteRAM_Prepare (0x080010E6)
   739:       if((Pict[index] & (1 << i)) == 0x00)
   740:       {
   741:         LCD_WriteRAM(BackColor);
   742:       }
   743:       else
   744:       {
0x080015D6 2701      MOVS     r7,#0x01
   735:   for(index = 0; index < 2400; index++)
   736:   {
0x080015D8 F44F6A16  MOV      r10,#0x960
   737:     for(i = 0; i < 32; i++)
   738:     {
0x080015DC 2400      MOVS     r4,#0x00
   739:       if((Pict[index] & (1 << i)) == 0x00)
   740:       {
   741:         LCD_WriteRAM(BackColor);
   742:       }
   743:       else
   744:       {
0x080015DE F8580025  LDR      r0,[r8,r5,LSL #2]
0x080015E2 FA07F104  LSL      r1,r7,r4
0x080015E6 4208      TST      r0,r1
0x080015E8 D012      BEQ      0x08001610
   745:         LCD_WriteRAM(TextColor);
   746:       }
   747:     }
   748:   }
0x080015EA 8830      LDRH     r0,[r6,#0x00]
0x080015EC F7FFFD35  BL.W     LCD_WriteRAM (0x0800105A)
   737:     for(i = 0; i < 32; i++)
   738:     {
   739:       if((Pict[index] & (1 << i)) == 0x00)
   740:       {
   741:         LCD_WriteRAM(BackColor);
   742:       }
   743:       else
   744:       {
   745:         LCD_WriteRAM(TextColor);
   746:       }
   747:     }
   748:   }
0x080015F0 1C64      ADDS     r4,r4,#1
0x080015F2 2C20      CMP      r4,#0x20
0x080015F4 D3F3      BCC      0x080015DE
   735:   for(index = 0; index < 2400; index++)
   736:   {
   737:     for(i = 0; i < 32; i++)
   738:     {
   739:       if((Pict[index] & (1 << i)) == 0x00)
   740:       {
   741:         LCD_WriteRAM(BackColor);
   742:       }
   743:       else
   744:       {
   745:         LCD_WriteRAM(TextColor);
   746:       }
   747:     }
   748:   }
0x080015F6 1C6D      ADDS     r5,r5,#1
0x080015F8 4555      CMP      r5,r10
0x080015FA D3EF      BCC      0x080015DC
   749:   if(LCDType == LCD_ILI9320)
   750:   {
0x080015FC 6871      LDR      r1,[r6,#0x04]
0x080015FE 4549      CMP      r1,r9
0x08001600 D108      BNE      0x08001614
   751:     LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
   752:   }
0x08001602 E8BD47F0  POP      {r4-r10,lr}
0x08001606 2201      MOVS     r2,#0x01
0x08001608 2104      MOVS     r1,#0x04
0x0800160A 4853      LDR      r0,[pc,#332]  ; @0x08001758
0x0800160C F7FFB91C  B.W      LCD_CtrlLinesWrite (0x08000848)
   741:         LCD_WriteRAM(BackColor);
   742:       }
   743:       else
   744:       {
   745:         LCD_WriteRAM(TextColor);
   746:       }
   747:     }
   748:   }
   749:   if(LCDType == LCD_ILI9320)
   750:   {
   751:     LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
   752:   }
0x08001610 8870      LDRH     r0,[r6,#0x02]
0x08001612 E7EB      B        0x080015EC
   753: }
   754: 
   755: /*******************************************************************************
   756: * Function Name  : LCD_DrawMonoBMP
   757: * Description    : Displays a monochrome bitmap.
   758: * Input          : - BmpAddress: Bmp picture address.
   759: * Output         : None
   760: * Return         : None
   761: *******************************************************************************/
   762: void LCD_DrawMonoBMP(u32 BmpAddress)
0x08001614 E6C9      B        0x080013AA
   763: {
   764:   u32 i, ofs, size, mask;
   765:   u8  b;
   766: 
   767:   /* Read bitmap size */
0x08001616 E92D47F0  PUSH     {r4-r10,lr}
   768:   size = *((u32 *)(BmpAddress + 2));
   769: 
   770:   /* get bitmap data address offset */
0x0800161A F8D02002  LDR      r2,[r0,#0x02]
   771:   ofs  = *((u32 *)(BmpAddress + 10));
   772: 
   773:   size = size - ofs;
   774:   BmpAddress += ofs;
   775: 
0x0800161E F8D0100A  LDR      r1,[r0,#0x0A]
   776:   if(LCDType == LCD_ILI9320)
   777:   {
   778:     /* Set GRAM write direction and BGR = 1 */
   779:     /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
   780:     /* AM=1 (address is updated in vertical writing direction) */
0x08001622 4C4E      LDR      r4,[pc,#312]  ; @0x0800175C
   773:   size = size - ofs;
0x08001624 1A52      SUBS     r2,r2,r1
   774:   BmpAddress += ofs;
   775: 
0x08001626 1846      ADDS     r6,r0,r1
   776:   if(LCDType == LCD_ILI9320)
   777:   {
   778:     /* Set GRAM write direction and BGR = 1 */
   779:     /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
   780:     /* AM=1 (address is updated in vertical writing direction) */
0x08001628 6861      LDR      r1,[r4,#0x04]
   773:   size = size - ofs;
   774:   BmpAddress += ofs;
   775: 
   776:   if(LCDType == LCD_ILI9320)
   777:   {
   778:     /* Set GRAM write direction and BGR = 1 */
   779:     /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
   780:     /* AM=1 (address is updated in vertical writing direction) */
0x0800162A 4691      MOV      r9,r2
0x0800162C F2493A20  MOVW     r10,#0x9320
0x08001630 4551      CMP      r1,r10
0x08001632 D106      BNE      0x08001642
   781:     LCD_WriteReg(R3, 0x1008);
   782: 
0x08001634 F2410108  MOVW     r1,#0x1008
0x08001638 2003      MOVS     r0,#0x03
0x0800163A F7FFF93A  BL.W     LCD_WriteReg (0x080008B2)
   783:     LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
   784:   }
0x0800163E F7FFFD52  BL.W     LCD_WriteRAM_Prepare (0x080010E6)
   785:   for(i = 0; i < size; i++)
   786:   {
0x08001642 2500      MOVS     r5,#0x00
0x08001644 46A0      MOV      r8,r4
0x08001646 E00D      B        0x08001664
   787:     b = *((u8 *)BmpAddress++);
0x08001648 F8167B01  LDRB     r7,[r6],#0x01
   788:     for (mask = 0x80; mask; mask >>= 1)
   789:     {
0x0800164C 2480      MOVS     r4,#0x80
   790:       if (b & mask)
   791:       {
   792:         LCD_WriteRAM(TextColor);
   793:       }
   794:       else
   795:       {
0x0800164E 4227      TST      r7,r4
   796:         LCD_WriteRAM(BackColor);
   797:       }
   798:     }
   799:   }
0x08001650 4640      MOV      r0,r8
0x08001652 D001      BEQ      0x08001658
   792:         LCD_WriteRAM(TextColor);
   793:       }
   794:       else
   795:       {
   796:         LCD_WriteRAM(BackColor);
   797:       }
   798:     }
   799:   }
0x08001654 8800      LDRH     r0,[r0,#0x00]
0x08001656 E000      B        0x0800165A
0x08001658 8840      LDRH     r0,[r0,#0x02]
0x0800165A F7FFFCFE  BL.W     LCD_WriteRAM (0x0800105A)
0x0800165E 0864      LSRS     r4,r4,#1
0x08001660 D1F5      BNE      0x0800164E
   785:   for(i = 0; i < size; i++)
   786:   {
   787:     b = *((u8 *)BmpAddress++);
   788:     for (mask = 0x80; mask; mask >>= 1)
   789:     {
   790:       if (b & mask)
   791:       {
   792:         LCD_WriteRAM(TextColor);
   793:       }
   794:       else
   795:       {
   796:         LCD_WriteRAM(BackColor);
   797:       }
   798:     }
   799:   }
0x08001662 1C6D      ADDS     r5,r5,#1
0x08001664 454D      CMP      r5,r9
0x08001666 D3EF      BCC      0x08001648
   800:   if(LCDType == LCD_ILI9320)
   801:   {
0x08001668 F8D81004  LDR      r1,[r8,#0x04]
0x0800166C 4551      CMP      r1,r10
0x0800166E D10B      BNE      0x08001688
   802:     LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
   803:     /* Set GRAM write direction and BGR = 1 */
   804:     /* I/D = 01 (Horizontal : increment, Vertical : decrement) */
   805:     /* AM = 1 (address is updated in vertical writing direction) */
0x08001670 2201      MOVS     r2,#0x01
0x08001672 2104      MOVS     r1,#0x04
0x08001674 4838      LDR      r0,[pc,#224]  ; @0x08001758
0x08001676 F7FFF8E7  BL.W     LCD_CtrlLinesWrite (0x08000848)
   806:     LCD_WriteReg(R3, 0x1018);
   807:   }
0x0800167A E8BD47F0  POP      {r4-r10,lr}
0x0800167E F2410118  MOVW     r1,#0x1018
0x08001682 2003      MOVS     r0,#0x03
0x08001684 F7FFB915  B.W      LCD_WriteReg (0x080008B2)
   808: }
   809: 
   810: /*******************************************************************************
   811: * Function Name  : LCD_DrawBMP
   812: * Description    : Displays a bitmap picture loaded in the SPI Flash.
   813: * Input          : - BmpAddress: Bmp picture address in the SPI Flash.
   814: * Output         : None
   815: * Return         : None
   816: *******************************************************************************/
   817: void LCD_DrawBMP(u32 BmpAddress)
0x08001688 E68F      B        0x080013AA
   818: {
0x0800168A E92D41FC  PUSH     {r2-r8,lr}
   819:   u32 i = 0, size = 0;
   820: 
   821:   /* Read bitmap size */
0x0800168E 2700      MOVS     r7,#0x00
0x08001690 4604      MOV      r4,r0
   822:   SPI_FLASH_BufferRead((u8*)&size, BmpAddress + 2, 4);
   823: 
   824:   /* get bitmap data address offset */
0x08001692 1C81      ADDS     r1,r0,#2
0x08001694 9701      STR      r7,[sp,#0x04]
0x08001696 2204      MOVS     r2,#0x04
0x08001698 4668      MOV      r0,sp
0x0800169A 9700      STR      r7,[sp,#0x00]
0x0800169C F7FFF858  BL.W     SPI_FLASH_BufferRead (0x08000750)
   825:   SPI_FLASH_BufferRead((u8*)&i, BmpAddress + 10, 4);
   826:   
0x080016A0 2204      MOVS     r2,#0x04
0x080016A2 F104010A  ADD      r1,r4,#0x0A
0x080016A6 A801      ADD      r0,sp,#0x04
0x080016A8 F7FFF852  BL.W     SPI_FLASH_BufferRead (0x08000750)
0x080016AC E9DD1000  LDRD     r1,r0,[sp,#0]
   827:   size = (size - i)/2;
   828: 
0x080016B0 1A09      SUBS     r1,r1,r0
0x080016B2 0849      LSRS     r1,r1,#1
   829:   SPI_FLASH_StartReadSequence(BmpAddress + i);
   830: 
   831:   /* Disable SPI1  */
0x080016B4 4420      ADD      r0,r0,r4
0x080016B6 9100      STR      r1,[sp,#0x00]
0x080016B8 F7FFF893  BL.W     SPI_FLASH_StartReadSequence (0x080007E2)
   832:   SPI_Cmd(SPI1, DISABLE);
   833:   /* SPI in 16-bit mode */
0x080016BC 4E28      LDR      r6,[pc,#160]  ; @0x08001760
0x080016BE 2100      MOVS     r1,#0x00
0x080016C0 4630      MOV      r0,r6
0x080016C2 F000FAE1  BL.W     SPI_Cmd (0x08001C88)
   834:   SPI_DataSizeConfig(SPI1, SPI_DataSize_16b);
   835: 
   836:   /* Enable SPI1  */
0x080016C6 14F1      ASRS     r1,r6,#19
0x080016C8 4630      MOV      r0,r6
0x080016CA F000FAE7  BL.W     SPI_DataSizeConfig (0x08001C9C)
   837:   SPI_Cmd(SPI1, ENABLE);
   838:   
0x080016CE 2101      MOVS     r1,#0x01
0x080016D0 4630      MOV      r0,r6
0x080016D2 F000FAD9  BL.W     SPI_Cmd (0x08001C88)
   839:   if(LCDType == LCD_ILI9320)
   840:   {
   841:     /* Set GRAM write direction and BGR = 1 */
   842:     /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
   843:     /* AM=1 (address is updated in vertical writing direction) */
0x080016D6 4C21      LDR      r4,[pc,#132]  ; @0x0800175C
0x080016D8 6860      LDR      r0,[r4,#0x04]
0x080016DA F2493520  MOVW     r5,#0x9320
0x080016DE 42A8      CMP      r0,r5
0x080016E0 D106      BNE      0x080016F0
   844:     LCD_WriteReg(R3, 0x1008);
   845: 
0x080016E2 F2410108  MOVW     r1,#0x1008
0x080016E6 2003      MOVS     r0,#0x03
0x080016E8 F7FFF8E3  BL.W     LCD_WriteReg (0x080008B2)
   846:     LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
   847:   }
   848:   /* Read bitmap data from SPI Flash and send them to LCD */
   849:   for(i = 0; i < size; i++)
   850:   {
0x080016EC F7FFFCFB  BL.W     LCD_WriteRAM_Prepare (0x080010E6)
   851:     LCD_WriteRAM(__REV_HalfWord(SPI_FLASH_SendHalfWord(0xA5A5)));
   852:   }
0x080016F0 9701      STR      r7,[sp,#0x04]
0x080016F2 F24A57A5  MOVW     r7,#0xA5A5
   849:   for(i = 0; i < size; i++)
   850:   {
   851:     LCD_WriteRAM(__REV_HalfWord(SPI_FLASH_SendHalfWord(0xA5A5)));
   852:   }
0x080016F6 9801      LDR      r0,[sp,#0x04]
0x080016F8 E009      B        0x0800170E
0x080016FA 4638      MOV      r0,r7
0x080016FC F7FFF888  BL.W     SPI_FLASH_SendHalfWord (0x08000810)
0x08001700 F000F947  BL.W     __REV_HalfWord (0x08001992)
0x08001704 F7FFFCA9  BL.W     LCD_WriteRAM (0x0800105A)
0x08001708 9801      LDR      r0,[sp,#0x04]
0x0800170A 1C40      ADDS     r0,r0,#1
0x0800170C 9001      STR      r0,[sp,#0x04]
0x0800170E 9900      LDR      r1,[sp,#0x00]
0x08001710 4288      CMP      r0,r1
0x08001712 D3F2      BCC      0x080016FA
   853:   if(LCDType == LCD_ILI9320)
   854:   {
0x08001714 6860      LDR      r0,[r4,#0x04]
0x08001716 42A8      CMP      r0,r5
0x08001718 D104      BNE      0x08001724
   855:     LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
   856:   }
   857: 
   858:   /* Deselect the FLASH: Chip Select high */
0x0800171A 2201      MOVS     r2,#0x01
0x0800171C 2104      MOVS     r1,#0x04
0x0800171E 480E      LDR      r0,[pc,#56]  ; @0x08001758
0x08001720 F7FFF892  BL.W     LCD_CtrlLinesWrite (0x08000848)
   859:   SPI_FLASH_CS_HIGH();
   860: 
   861:   /* Disable SPI1  */
0x08001724 2110      MOVS     r1,#0x10
0x08001726 480F      LDR      r0,[pc,#60]  ; @0x08001764
0x08001728 F000F9DD  BL.W     GPIO_SetBits (0x08001AE6)
   862:   SPI_Cmd(SPI1, DISABLE);
   863:   /* SPI in 8-bit mode */
0x0800172C 2100      MOVS     r1,#0x00
0x0800172E 4630      MOV      r0,r6
0x08001730 F000FAAA  BL.W     SPI_Cmd (0x08001C88)
   864:   SPI_DataSizeConfig(SPI1, SPI_DataSize_8b);
   865: 
   866:   /* Enable SPI1  */
0x08001734 2100      MOVS     r1,#0x00
0x08001736 4630      MOV      r0,r6
0x08001738 F000FAB0  BL.W     SPI_DataSizeConfig (0x08001C9C)
   867:   SPI_Cmd(SPI1, ENABLE);
0x0800173C 2101      MOVS     r1,#0x01
0x0800173E 4630      MOV      r0,r6
0x08001740 F000FAA2  BL.W     SPI_Cmd (0x08001C88)
   868:   if(LCDType == LCD_ILI9320)
   869:   {
   870:     /* Set GRAM write direction and BGR = 1 */
   871:     /* I/D = 01 (Horizontal : increment, Vertical : decrement) */
   872:     /* AM = 1 (address is updated in vertical writing direction) */
0x08001744 6860      LDR      r0,[r4,#0x04]
0x08001746 42A8      CMP      r0,r5
0x08001748 D104      BNE      0x08001754
   873:     LCD_WriteReg(R3, 0x1018);
   874:   }
0x0800174A F2410118  MOVW     r1,#0x1018
0x0800174E 2003      MOVS     r0,#0x03
0x08001750 F7FFF8AF  BL.W     LCD_WriteReg (0x080008B2)
   875: }
0x08001754 E8BD81FC  POP      {r2-r8,pc}
0x08001758 0C00      LSRS     r0,r0,#16
0x0800175A 4001      ANDS     r1,r1,r0
0x0800175C 0008      MOVS     r0,r1
0x0800175E 2000      MOVS     r0,#0x00
0x08001760 3000      ADDS     r0,r0,#0x00
0x08001762 4001      ANDS     r1,r1,r0
0x08001764 0800      LSRS     r0,r0,#0
0x08001766 4001      ANDS     r1,r1,r0
  1137:   if(LCDType == LCD_ILI9320)
  1138:   {
  1139:     /* Power On sequence ---------------------------------------------------------*/
0x08001768 4865      LDR      r0,[pc,#404]  ; @0x08001900
  1136: {
  1137:   if(LCDType == LCD_ILI9320)
  1138:   {
  1139:     /* Power On sequence ---------------------------------------------------------*/
0x0800176A B510      PUSH     {r4,lr}
0x0800176C 6841      LDR      r1,[r0,#0x04]
0x0800176E F5A14213  SUB      r2,r1,#0x9300
0x08001772 3A20      SUBS     r2,r2,#0x20
0x08001774 D13A      BNE      0x080017EC
  1140:     LCD_WriteReg(R16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
0x08001776 2100      MOVS     r1,#0x00
0x08001778 2010      MOVS     r0,#0x10
0x0800177A F7FFF89A  BL.W     LCD_WriteReg (0x080008B2)
  1141:     LCD_WriteReg(R17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
0x0800177E 2100      MOVS     r1,#0x00
0x08001780 2011      MOVS     r0,#0x11
0x08001782 F7FFF896  BL.W     LCD_WriteReg (0x080008B2)
  1142:     LCD_WriteReg(R18, 0x0000); /* VREG1OUT voltage */
0x08001786 2100      MOVS     r1,#0x00
0x08001788 2012      MOVS     r0,#0x12
0x0800178A F7FFF892  BL.W     LCD_WriteReg (0x080008B2)
  1143:     LCD_WriteReg(R19, 0x0000); /* VDV[4:0] for VCOM amplitude */
0x0800178E 2100      MOVS     r1,#0x00
0x08001790 2013      MOVS     r0,#0x13
0x08001792 F7FFF88E  BL.W     LCD_WriteReg (0x080008B2)
  1144:     Delay(20);                 /* Dis-charge capacitor power voltage (200ms) */
0x08001796 2014      MOVS     r0,#0x14
0x08001798 F7FEFCB7  BL.W     Delay (0x0800010A)
  1145:     LCD_WriteReg(R16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
0x0800179C F24171B0  MOVW     r1,#0x17B0
0x080017A0 2010      MOVS     r0,#0x10
0x080017A2 F7FFF886  BL.W     LCD_WriteReg (0x080008B2)
  1146:     LCD_WriteReg(R17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
0x080017A6 F2401137  MOVW     r1,#0x137
0x080017AA 2011      MOVS     r0,#0x11
0x080017AC F7FFF881  BL.W     LCD_WriteReg (0x080008B2)
  1147:     Delay(5);                  /* Delay 50 ms */
0x080017B0 2005      MOVS     r0,#0x05
0x080017B2 F7FEFCAA  BL.W     Delay (0x0800010A)
  1148:     LCD_WriteReg(R18, 0x0139); /* VREG1OUT voltage */
0x080017B6 F2401139  MOVW     r1,#0x139
0x080017BA 2012      MOVS     r0,#0x12
0x080017BC F7FFF879  BL.W     LCD_WriteReg (0x080008B2)
  1149:     Delay(5);                  /* delay 50 ms */
0x080017C0 2005      MOVS     r0,#0x05
0x080017C2 F7FEFCA2  BL.W     Delay (0x0800010A)
  1150:     LCD_WriteReg(R19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
0x080017C6 F44F51E8  MOV      r1,#0x1D00
0x080017CA 2013      MOVS     r0,#0x13
0x080017CC F7FFF871  BL.W     LCD_WriteReg (0x080008B2)
  1151:     LCD_WriteReg(R41, 0x0013); /* VCM[4:0] for VCOMH */
0x080017D0 2113      MOVS     r1,#0x13
0x080017D2 2029      MOVS     r0,#0x29
0x080017D4 F7FFF86D  BL.W     LCD_WriteReg (0x080008B2)
  1152:     Delay(5);                  /* delay 50 ms */
0x080017D8 2005      MOVS     r0,#0x05
0x080017DA F7FEFC96  BL.W     Delay (0x0800010A)
  1153:     LCD_WriteReg(R7, 0x0173);  /* 262K color and display ON */
  1154:   }
0x080017DE E8BD4010  POP      {r4,lr}
0x080017E2 F2401173  MOVW     r1,#0x173
0x080017E6 2007      MOVS     r0,#0x07
0x080017E8 F7FFB863  B.W      LCD_WriteReg (0x080008B2)
  1155:   else if(LCDType == LCD_HX8312)
  1156:   {  
  1157:     /* Power On Set */
0x080017EC 6840      LDR      r0,[r0,#0x04]
0x080017EE F5A04103  SUB      r1,r0,#0x8300
0x080017F2 3912      SUBS     r1,r1,#0x12
0x080017F4 D13C      BNE      0x08001870
  1158:     LCD_WriteReg(R28, 0x73);
0x080017F6 2173      MOVS     r1,#0x73
0x080017F8 201C      MOVS     r0,#0x1C
0x080017FA F7FFF85A  BL.W     LCD_WriteReg (0x080008B2)
  1159:     LCD_WriteReg(R36, 0x74);
0x080017FE 2174      MOVS     r1,#0x74
0x08001800 2024      MOVS     r0,#0x24
0x08001802 F7FFF856  BL.W     LCD_WriteReg (0x080008B2)
  1160:     LCD_WriteReg(R30, 0x01);
0x08001806 2101      MOVS     r1,#0x01
0x08001808 201E      MOVS     r0,#0x1E
0x0800180A F7FFF852  BL.W     LCD_WriteReg (0x080008B2)
  1161:     LCD_WriteReg(R24, 0xC1);
0x0800180E 21C1      MOVS     r1,#0xC1
0x08001810 2018      MOVS     r0,#0x18
0x08001812 F7FFF84E  BL.W     LCD_WriteReg (0x080008B2)
  1162:     Delay(1); /* Delay 10 ms */
0x08001816 2001      MOVS     r0,#0x01
0x08001818 F7FEFC77  BL.W     Delay (0x0800010A)
  1163:     LCD_WriteReg(R24, 0xE1);
0x0800181C 21E1      MOVS     r1,#0xE1
0x0800181E 2018      MOVS     r0,#0x18
0x08001820 F7FFF847  BL.W     LCD_WriteReg (0x080008B2)
  1164:     LCD_WriteReg(R24, 0xF1);
0x08001824 21F1      MOVS     r1,#0xF1
0x08001826 2018      MOVS     r0,#0x18
0x08001828 F7FFF843  BL.W     LCD_WriteReg (0x080008B2)
  1165:     Delay(6); /* Delay 60 ms */
0x0800182C 2006      MOVS     r0,#0x06
0x0800182E F7FEFC6C  BL.W     Delay (0x0800010A)
  1166:     LCD_WriteReg(R24, 0xF5);
0x08001832 21F5      MOVS     r1,#0xF5
0x08001834 2018      MOVS     r0,#0x18
0x08001836 F7FFF83C  BL.W     LCD_WriteReg (0x080008B2)
  1167:     Delay(6); /* Delay 60 ms */
0x0800183A 2006      MOVS     r0,#0x06
0x0800183C F7FEFC65  BL.W     Delay (0x0800010A)
  1168:     LCD_WriteReg(R27, 0x09);
0x08001840 2109      MOVS     r1,#0x09
0x08001842 201B      MOVS     r0,#0x1B
0x08001844 F7FFF835  BL.W     LCD_WriteReg (0x080008B2)
  1169:     Delay(1); /* Delay 10 ms */
0x08001848 2001      MOVS     r0,#0x01
0x0800184A F7FEFC5E  BL.W     Delay (0x0800010A)
  1170:     LCD_WriteReg(R31, 0x11);
0x0800184E 2111      MOVS     r1,#0x11
0x08001850 201F      MOVS     r0,#0x1F
0x08001852 F7FFF82E  BL.W     LCD_WriteReg (0x080008B2)
  1171:     LCD_WriteReg(R32, 0x0E);
0x08001856 210E      MOVS     r1,#0x0E
0x08001858 2020      MOVS     r0,#0x20
0x0800185A F7FFF82A  BL.W     LCD_WriteReg (0x080008B2)
  1172:     LCD_WriteReg(R30, 0x81);
0x0800185E 2181      MOVS     r1,#0x81
0x08001860 201E      MOVS     r0,#0x1E
0x08001862 F7FFF826  BL.W     LCD_WriteReg (0x080008B2)
  1173:     Delay(1); /* Delay 10 ms */
  1174:   }
0x08001866 E8BD4010  POP      {r4,lr}
0x0800186A 2001      MOVS     r0,#0x01
0x0800186C F7FEBC4D  B.W      Delay (0x0800010A)
  1175: }
  1176: 
  1177: /*******************************************************************************
  1178: * Function Name  : LCD_DisplayOn
  1179: * Description    : Enables the Display.
  1180: * Input          : None
  1181: * Output         : None
  1182: * Return         : None
  1183: *******************************************************************************/
  1184: void LCD_DisplayOn(void)
  1185: {
0x08001870 BD10      POP      {r4,pc}
  1186:   if(LCDType == LCD_ILI9320)
  1187:   {
  1188:     /* Display On */
0x08001872 4823      LDR      r0,[pc,#140]  ; @0x08001900
  1185: {
  1186:   if(LCDType == LCD_ILI9320)
  1187:   {
  1188:     /* Display On */
0x08001874 B510      PUSH     {r4,lr}
0x08001876 6841      LDR      r1,[r0,#0x04]
0x08001878 F5A14213  SUB      r2,r1,#0x9300
0x0800187C 3A20      SUBS     r2,r2,#0x20
0x0800187E D103      BNE      0x08001888
  1189:     LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
  1190:   }
0x08001880 F2401173  MOVW     r1,#0x173
0x08001884 2007      MOVS     r0,#0x07
0x08001886 E019      B        0x080018BC
  1191:   else if(LCDType == LCD_HX8312)
  1192:   {  
0x08001888 6840      LDR      r0,[r0,#0x04]
0x0800188A F5A04103  SUB      r1,r0,#0x8300
0x0800188E 3912      SUBS     r1,r1,#0x12
0x08001890 D118      BNE      0x080018C4
  1193:     LCD_WriteReg(R1, 0x50);
0x08001892 2150      MOVS     r1,#0x50
0x08001894 2001      MOVS     r0,#0x01
0x08001896 F7FFF80C  BL.W     LCD_WriteReg (0x080008B2)
  1194:     LCD_WriteReg(R5, 0x04);
  1195: 
  1196:     /* Display On */
0x0800189A 2104      MOVS     r1,#0x04
0x0800189C 2005      MOVS     r0,#0x05
0x0800189E F7FFF808  BL.W     LCD_WriteReg (0x080008B2)
  1197:     LCD_WriteReg(R0, 0x80);
0x080018A2 2180      MOVS     r1,#0x80
0x080018A4 2000      MOVS     r0,#0x00
0x080018A6 F7FFF804  BL.W     LCD_WriteReg (0x080008B2)
  1198:     LCD_WriteReg(R59, 0x01);
0x080018AA 2101      MOVS     r1,#0x01
0x080018AC 203B      MOVS     r0,#0x3B
0x080018AE F7FFF800  BL.W     LCD_WriteReg (0x080008B2)
  1199:     Delay(4);                 /* Delay 40 ms */
0x080018B2 2004      MOVS     r0,#0x04
0x080018B4 F7FEFC29  BL.W     Delay (0x0800010A)
  1200:     LCD_WriteReg(R0, 0x20);
  1201:   }  
0x080018B8 2120      MOVS     r1,#0x20
0x080018BA 2000      MOVS     r0,#0x00
0x080018BC E8BD4010  POP      {r4,lr}
0x080018C0 F7FEBFF7  B.W      LCD_WriteReg (0x080008B2)
  1202: }
  1203: 
  1204: /*******************************************************************************
  1205: * Function Name  : LCD_DisplayOff
  1206: * Description    : Disables the Display.
  1207: * Input          : None
  1208: * Output         : None
  1209: * Return         : None
  1210: *******************************************************************************/
  1211: void LCD_DisplayOff(void)
  1212: {
0x080018C4 BD10      POP      {r4,pc}
  1213:   if(LCDType == LCD_ILI9320)
  1214:   {
  1215:     /* Display Off */
0x080018C6 480E      LDRAL    r0,[pc,#56]  ; @0x08001900
  1212: {
  1213:   if(LCDType == LCD_ILI9320)
  1214:   {
  1215:     /* Display Off */
0x080018C8 B510      PUSH     {r4,lr}
0x080018CA 6841      LDR      r1,[r0,#0x04]
0x080018CC F5A14213  SUB      r2,r1,#0x9300
0x080018D0 3A20      SUBS     r2,r2,#0x20
0x080018D2 D102      BNE      0x080018DA
  1216:     LCD_WriteReg(R7, 0x0);
  1217:   }
0x080018D4 2100      MOVS     r1,#0x00
0x080018D6 2007      MOVS     r0,#0x07
0x080018D8 E00D      B        0x080018F6
  1218:   else if(LCDType == LCD_HX8312)
  1219:   { 
  1220:     /* Display Off */
0x080018DA 6840      LDR      r0,[r0,#0x04]
0x080018DC F5A04103  SUB      r1,r0,#0x8300
0x080018E0 3912      SUBS     r1,r1,#0x12
0x080018E2 D10C      BNE      0x080018FE
  1221:     LCD_WriteReg(R0, 0xA0);
0x080018E4 21A0      MOVS     r1,#0xA0
0x080018E6 2000      MOVS     r0,#0x00
0x080018E8 F7FEFFE3  BL.W     LCD_WriteReg (0x080008B2)
  1222:     Delay(4);                 /* Delay 40 ms */
0x080018EC 2004      MOVS     r0,#0x04
0x080018EE F7FEFC0C  BL.W     Delay (0x0800010A)
  1223:     LCD_WriteReg(R59, 0x00);
  1224:   } 
0x080018F2 2100      MOVS     r1,#0x00
0x080018F4 203B      MOVS     r0,#0x3B
0x080018F6 E8BD4010  POP      {r4,lr}
0x080018FA F7FEBFDA  B.W      LCD_WriteReg (0x080008B2)
  1225: }
0x080018FE BD10      POPLE    {r4,pc}
0x08001900 0008      MOVLE    r0,r1
0x08001902 2000      MOVGT    r0,#0x00
   120:                 LDR     R0, =__main
0x08001904 4805      LDR      r0,[pc,#20]  ; @0x0800191C
   121:                 BX      R0      ;R0=0x080000EC/D
   122:                 ENDP
   123: 
   124: 
   125: ; Dummy Exception Handlers (infinite loops which can be modified)                
   126: 
   127: NMI_Handler     PROC
   128:                 EXPORT  NMI_Handler               [WEAK]
0x08001906 4700      BX       r0
   129:                 B       .
   130:                 ENDP
   131: HardFault_Handler\
   132:                 PROC
   133:                 EXPORT  HardFault_Handler         [WEAK]
0x08001908 E7FE      B        NMI_Handler (0x08001908)
   134:                 B       .
   135:                 ENDP
   136: MemManage_Handler\
   137:                 PROC
   138:                 EXPORT  MemManage_Handler         [WEAK]
0x0800190A E7FE      B        HardFault_Handler (0x0800190A)
   139:                 B       .
   140:                 ENDP
   141: BusFault_Handler\
   142:                 PROC
   143:                 EXPORT  BusFault_Handler          [WEAK]
0x0800190C E7FE      B        MemManage_Handler (0x0800190C)
   144:                 B       .
   145:                 ENDP
   146: UsageFault_Handler\
   147:                 PROC
   148:                 EXPORT  UsageFault_Handler        [WEAK]
0x0800190E E7FE      B        BusFault_Handler (0x0800190E)
   149:                 B       .
   150:                 ENDP
   151: SVC_Handler     PROC
   152:                 EXPORT  SVC_Handler               [WEAK]
0x08001910 E7FE      B        UsageFault_Handler (0x08001910)
   153:                 B       .
   154:                 ENDP
   155: DebugMon_Handler\
   156:                 PROC
   157:                 EXPORT  DebugMon_Handler          [WEAK]
0x08001912 E7FE      B        SVC_Handler (0x08001912)
   158:                 B       .
   159:                 ENDP
   160: PendSV_Handler  PROC
   161:                 EXPORT  PendSV_Handler            [WEAK]
0x08001914 E7FE      B        DebugMon_Handler (0x08001914)
   162:                 B       .
   163:                 ENDP
   164: SysTick_Handler PROC
   165:                 EXPORT  SysTick_Handler           [WEAK]
0x08001916 E7FE      B        PendSV_Handler (0x08001916)
   166:                 B       .
0x08001918 E7FE      B        SysTick_Handler (0x08001918)
   259:                 B       .
0x0800191A E7FE      B        Default_Handler (0x0800191A)
0x0800191C 00ED      LSLS     r5,r5,#3
0x0800191E 0800      LSRS     r0,r0,#0
                 __WFI:
0x08001920 BF30      WFI     
0x08001922 4770      BX       lr
                 __WFE:
0x08001924 BF20      WFE     
0x08001926 4770      BX       lr
                 __SEV:
0x08001928 BF40      SEV     
0x0800192A 4770      BX       lr
                 __ISB:
0x0800192C F3BF8F6F  ISB.W   
0x08001930 4770      BX       lr
                 __DSB:
0x08001932 F3BF8F4F  DSB.W   
0x08001936 4770      BX       lr
                 __DMB:
0x08001938 F3BF8F5F  DMB.W   
0x0800193C 4770      BX       lr
                 __SVC:
0x0800193E DF01      SVC      0x01
0x08001940 4770      BX       lr
                 __MRS_CONTROL:
0x08001942 F3EF8014  MRS      r0,CONTROL
0x08001946 4770      BX       lr
                 __MSR_CONTROL:
0x08001948 F3808814  MSR      CONTROL,r0
0x0800194C F3BF8F6F  ISB.W   
0x08001950 4770      BX       lr
                 __MRS_PSP:
0x08001952 F3EF8009  MRS      r0,PSP
0x08001956 4770      BX       lr
                 __MSR_PSP:
0x08001958 F3808809  MSR      PSP,r0
0x0800195C 4770      BX       lr
                 __MRS_MSP:
0x0800195E F3EF8008  MRS      r0,MSP
0x08001962 4770      BX       lr
                 __MSR_MSP:
0x08001964 F3808808  MSR      MSP,r0
0x08001968 4770      BX       lr
                 __RESETPRIMASK:
0x0800196A B662      CPSIE    I
0x0800196C 4770      BX       lr
                 __SETPRIMASK:
0x0800196E B672      CPSID    I
0x08001970 4770      BX       lr
                 __READ_PRIMASK:
0x08001972 F3EF8010  MRS      r0,PRIMASK
0x08001976 4770      BX       lr
                 __SETFAULTMASK:
0x08001978 B671      CPSID    F
0x0800197A 4770      BX       lr
                 __RESETFAULTMASK:
0x0800197C B661      CPSIE    F
0x0800197E 4770      BX       lr
                 __READ_FAULTMASK:
0x08001980 F3EF8013  MRS      r0,FAULTMASK
0x08001984 4770      BX       lr
                 __BASEPRICONFIG:
0x08001986 F3808811  MSR      BASEPRI,r0
0x0800198A 4770      BX       lr
                 __GetBASEPRI:
0x0800198C F3EF8012  MRS      r0,BASEPRI_MAX
0x08001990 4770      BX       lr
                 __REV_HalfWord:
0x08001992 BA40      REV16    r0,r0
0x08001994 4770      BX       lr
                 __REV_Word:
0x08001996 BA00      REV      r0,r0
0x08001998 4770      BX       lr
                 strncmp:
0x0800199A B530      PUSH     {r4-r5,lr}
0x0800199C 4605      MOV      r5,r0
0x0800199E 2000      MOVS     r0,#0x00
0x080019A0 4603      MOV      r3,r0
0x080019A2 E000      B        0x080019A6
0x080019A4 1C5B      ADDS     r3,r3,#1
0x080019A6 4293      CMP      r3,r2
0x080019A8 D205      BCS      0x080019B6
0x080019AA 5CEC      LDRB     r4,[r5,r3]
0x080019AC 5CC8      LDRB     r0,[r1,r3]
0x080019AE 1A20      SUBS     r0,r4,r0
0x080019B0 D101      BNE      0x080019B6
0x080019B2 2C00      CMP      r4,#0x00
0x080019B4 D1F6      BNE      0x080019A4
0x080019B6 BD30      POP      {r4-r5,pc}
                 __scatterload_rt2:
0x080019B8 4C06      LDR      r4,[pc,#24]  ; @0x080019D4;r4=0x080035E8
0x080019BA 4D07      LDR      r5,[pc,#28]  ; @0x080019D8;r5=0x08003608
0x080019BC E006      B        0x080019CC
0x080019BE 68E0      LDR      r0,[r4,#0x0C];r0=0x08001D8A r0=0x08001D9A
0x080019C0 F0400301  ORR      r3,r0,#0x01 ;r3=0x08001D8B r0=0x08001D9B
0x080019C4 E8940007  LDM      r4,{r0-r2};r0=0x08003608 r1=0x20000000 r2=0x00000010
          ;r0=0x08003618 r1=0x20000010 r2=0x00000200
0x080019C8 4798      BLX      r3
0x080019CA 3410      ADDS     r4,r4,#0x10;R4=0x080035F8
0x080019CC 42AC      CMP      r4,r5
0x080019CE D3F6      BCC      0x080019BE
0x080019D0 F7FEFB90  BL.W     _main_init (0x080000F4)
0x080019D4 35E8      ADDS     r5,r5,#0xE8
0x080019D6 0800      LSRS     r0,r0,#0
0x080019D8 3608      ADDS     r6,r6,#0x08
0x080019DA 0800      LSRS     r0,r0,#0
                 FLASH_PrefetchBufferCmd:
0x080019DC 4904      LDR      r1,[pc,#16]  ; @0x080019F0
0x080019DE 680A      LDR      r2,[r1,#0x00]
0x080019E0 F0220210  BIC      r2,r2,#0x10
0x080019E4 600A      STR      r2,[r1,#0x00]
0x080019E6 680A      LDR      r2,[r1,#0x00]
0x080019E8 4302      ORRS     r2,r2,r0
0x080019EA 600A      STR      r2,[r1,#0x00]
0x080019EC 4770      BX       lr
0x080019EE 0000      MOVS     r0,r0
0x080019F0 2000      MOVS     r0,#0x00
0x080019F2 4002      ANDS     r2,r2,r0
                 FLASH_SetLatency:
0x080019F4 4904      LDR      r1,[pc,#16]  ; @0x08001A08
0x080019F6 680A      LDR      r2,[r1,#0x00]
0x080019F8 F0020238  AND      r2,r2,#0x38
0x080019FC 600A      STR      r2,[r1,#0x00]
0x080019FE 680A      LDR      r2,[r1,#0x00]
0x08001A00 4302      ORRS     r2,r2,r0
0x08001A02 600A      STR      r2,[r1,#0x00]
0x08001A04 4770      BX       lr
0x08001A06 0000      MOVS     r0,r0
0x08001A08 2000      MOVS     r0,#0x00
0x08001A0A 4002      ANDS     r2,r2,r0
                 GPIO_EXTILineConfig:
0x08001A0C B510      PUSH     {r4,lr}
0x08001A0E 078A      LSLS     r2,r1,#30
0x08001A10 F0210403  BIC      r4,r1,#0x03
0x08001A14 4906      LDR      r1,[pc,#24]  ; @0x08001A30
0x08001A16 0F12      LSRS     r2,r2,#28
0x08001A18 4421      ADD      r1,r1,r4
0x08001A1A 230F      MOVS     r3,#0x0F
0x08001A1C 688C      LDR      r4,[r1,#0x08]
0x08001A1E 4093      LSLS     r3,r3,r2
0x08001A20 439C      BICS     r4,r4,r3
0x08001A22 608C      STR      r4,[r1,#0x08]
0x08001A24 688B      LDR      r3,[r1,#0x08]
0x08001A26 4090      LSLS     r0,r0,r2
0x08001A28 4303      ORRS     r3,r3,r0
0x08001A2A 608B      STR      r3,[r1,#0x08]
0x08001A2C BD10      POP      {r4,pc}
0x08001A2E 0000      MOVS     r0,r0
0x08001A30 0000      MOVS     r0,r0
0x08001A32 4001      ANDS     r1,r1,r0
                 GPIO_Init:
0x08001A34 B5F0      PUSH     {r4-r7,lr}
0x08001A36 78CB      LDRB     r3,[r1,#0x03]
0x08001A38 2200      MOVS     r2,#0x00
0x08001A3A 06DC      LSLS     r4,r3,#27
0x08001A3C F003030F  AND      r3,r3,#0x0F
0x08001A40 D501      BPL      0x08001A46
0x08001A42 788C      LDRB     r4,[r1,#0x02]
0x08001A44 4323      ORRS     r3,r3,r4
0x08001A46 880C      LDRH     r4,[r1,#0x00]
0x08001A48 270F      MOVS     r7,#0x0F
0x08001A4A F0140FFF  TST      r4,#0xFF
0x08001A4E F04F0C01  MOV      r12,#0x01
0x08001A52 D01C      BEQ      0x08001A8E
0x08001A54 F8D05000  LDR      r5,[r0,#0x00]
0x08001A58 880E      LDRH     r6,[r1,#0x00]
0x08001A5A FA0CF402  LSL      r4,r12,r2
0x08001A5E 4026      ANDS     r6,r6,r4
0x08001A60 42A6      CMP      r6,r4
0x08001A62 D110      BNE      0x08001A86
0x08001A64 0096      LSLS     r6,r2,#2
0x08001A66 FA07FE06  LSL      lr,r7,r6
0x08001A6A EA250E0E  BIC      lr,r5,lr
0x08001A6E FA03F506  LSL      r5,r3,r6
0x08001A72 78CE      LDRB     r6,[r1,#0x03]
0x08001A74 EA45050E  ORR      r5,r5,lr
0x08001A78 2E28      CMP      r6,#0x28
0x08001A7A D100      BNE      0x08001A7E
0x08001A7C 6144      STR      r4,[r0,#0x14]
0x08001A7E 78CE      LDRB     r6,[r1,#0x03]
0x08001A80 2E48      CMP      r6,#0x48
0x08001A82 D100      BNE      0x08001A86
0x08001A84 6104      STR      r4,[r0,#0x10]
0x08001A86 1C52      ADDS     r2,r2,#1
0x08001A88 2A08      CMP      r2,#0x08
0x08001A8A D3E5      BCC      0x08001A58
0x08001A8C 6005      STR      r5,[r0,#0x00]
0x08001A8E 880A      LDRH     r2,[r1,#0x00]
0x08001A90 2AFF      CMP      r2,#0xFF
0x08001A92 D91E      BLS      0x08001AD2
0x08001A94 6845      LDR      r5,[r0,#0x04]
0x08001A96 2200      MOVS     r2,#0x00
0x08001A98 F1020608  ADD      r6,r2,#0x08
0x08001A9C FA0CF406  LSL      r4,r12,r6
0x08001AA0 880E      LDRH     r6,[r1,#0x00]
0x08001AA2 4026      ANDS     r6,r6,r4
0x08001AA4 42A6      CMP      r6,r4
0x08001AA6 D110      BNE      0x08001ACA
0x08001AA8 0096      LSLS     r6,r2,#2
0x08001AAA FA07FE06  LSL      lr,r7,r6
0x08001AAE EA250E0E  BIC      lr,r5,lr
0x08001AB2 FA03F506  LSL      r5,r3,r6
0x08001AB6 78CE      LDRB     r6,[r1,#0x03]
0x08001AB8 EA45050E  ORR      r5,r5,lr
0x08001ABC 2E28      CMP      r6,#0x28
0x08001ABE D100      BNE      0x08001AC2
0x08001AC0 6144      STR      r4,[r0,#0x14]
0x08001AC2 78CE      LDRB     r6,[r1,#0x03]
0x08001AC4 2E48      CMP      r6,#0x48
0x08001AC6 D100      BNE      0x08001ACA
0x08001AC8 6104      STR      r4,[r0,#0x10]
0x08001ACA 1C52      ADDS     r2,r2,#1
0x08001ACC 2A08      CMP      r2,#0x08
0x08001ACE D3E3      BCC      0x08001A98
0x08001AD0 6045      STR      r5,[r0,#0x04]
0x08001AD2 BDF0      POP      {r4-r7,pc}
                 GPIO_ReadInputDataBit:
0x08001AD4 4602      MOV      r2,r0
0x08001AD6 6892      LDR      r2,[r2,#0x08]
0x08001AD8 2000      MOVS     r0,#0x00
0x08001ADA 420A      TST      r2,r1
0x08001ADC D000      BEQ      0x08001AE0
0x08001ADE 2001      MOVS     r0,#0x01
0x08001AE0 4770      BX       lr
                 GPIO_ResetBits:
0x08001AE2 6141      STR      r1,[r0,#0x14]
0x08001AE4 4770      BX       lr
                 GPIO_SetBits:
0x08001AE6 6101      STR      r1,[r0,#0x10]
0x08001AE8 4770      BX       lr
                 GPIO_WriteBit:
0x08001AEA B10A      CBZ      r2,0x08001AF0
0x08001AEC 6101      STR      r1,[r0,#0x10]
0x08001AEE 4770      BX       lr
0x08001AF0 6141      STR      r1,[r0,#0x14]
0x08001AF2 4770      BX       lr
                 RCC_ADCCLKConfig:
0x08001AF4 4A03      LDR      r2,[pc,#12]  ; @0x08001B04
0x08001AF6 6851      LDR      r1,[r2,#0x04]
0x08001AF8 F4214140  BIC      r1,r1,#0xC000
0x08001AFC 4301      ORRS     r1,r1,r0
0x08001AFE 6051      STR      r1,[r2,#0x04]
0x08001B00 4770      BX       lr
0x08001B02 0000      MOVS     r0,r0
0x08001B04 1000      ASRS     r0,r0,#0
0x08001B06 4002      ANDS     r2,r2,r0
                 RCC_APB1PeriphClockCmd:
0x08001B08 4A04      LDR      r2,[pc,#16]  ; @0x08001B1C
0x08001B0A 2900      CMP      r1,#0x00
0x08001B0C 69D1      LDR      r1,[r2,#0x1C]
0x08001B0E D001      BEQ      0x08001B14
0x08001B10 4301      ORRS     r1,r1,r0
0x08001B12 E000      B        0x08001B16
0x08001B14 4381      BICS     r1,r1,r0
0x08001B16 61D1      STR      r1,[r2,#0x1C]
0x08001B18 4770      BX       lr
0x08001B1A 0000      MOVS     r0,r0
0x08001B1C 1000      ASRS     r0,r0,#0
0x08001B1E 4002      ANDS     r2,r2,r0
                 RCC_APB1PeriphResetCmd:
0x08001B20 4A04      LDR      r2,[pc,#16]  ; @0x08001B34
0x08001B22 2900      CMP      r1,#0x00
0x08001B24 6911      LDR      r1,[r2,#0x10]
0x08001B26 D001      BEQ      0x08001B2C
0x08001B28 4301      ORRS     r1,r1,r0
0x08001B2A E000      B        0x08001B2E
0x08001B2C 4381      BICS     r1,r1,r0
0x08001B2E 6111      STR      r1,[r2,#0x10]
0x08001B30 4770      BX       lr
0x08001B32 0000      MOVS     r0,r0
0x08001B34 1000      ASRS     r0,r0,#0
0x08001B36 4002      ANDS     r2,r2,r0
                 RCC_APB2PeriphClockCmd:
0x08001B38 4A04      LDR      r2,[pc,#16]  ; @0x08001B4C
0x08001B3A 2900      CMP      r1,#0x00
0x08001B3C 6991      LDR      r1,[r2,#0x18]
0x08001B3E D001      BEQ      0x08001B44
0x08001B40 4301      ORRS     r1,r1,r0
0x08001B42 E000      B        0x08001B46
0x08001B44 4381      BICS     r1,r1,r0
0x08001B46 6191      STR      r1,[r2,#0x18]
0x08001B48 4770      BX       lr
0x08001B4A 0000      MOVS     r0,r0
0x08001B4C 1000      ASRS     r0,r0,#0
0x08001B4E 4002      ANDS     r2,r2,r0
                 RCC_APB2PeriphResetCmd:
0x08001B50 4A04      LDR      r2,[pc,#16]  ; @0x08001B64
0x08001B52 2900      CMP      r1,#0x00
0x08001B54 68D1      LDR      r1,[r2,#0x0C]
0x08001B56 D001      BEQ      0x08001B5C
0x08001B58 4301      ORRS     r1,r1,r0
0x08001B5A E000      B        0x08001B5E
0x08001B5C 4381      BICS     r1,r1,r0
0x08001B5E 60D1      STR      r1,[r2,#0x0C]
0x08001B60 4770      BX       lr
0x08001B62 0000      MOVS     r0,r0
0x08001B64 1000      ASRS     r0,r0,#0
0x08001B66 4002      ANDS     r2,r2,r0
                 RCC_DeInit:
0x08001B68 480B      LDR      r0,[pc,#44]  ; @0x08001B98
0x08001B6A 6801      LDR      r1,[r0,#0x00]
0x08001B6C F0410101  ORR      r1,r1,#0x01
0x08001B70 6001      STR      r1,[r0,#0x00]
0x08001B72 6841      LDR      r1,[r0,#0x04]
0x08001B74 4A09      LDR      r2,[pc,#36]  ; @0x08001B9C
0x08001B76 4011      ANDS     r1,r1,r2
0x08001B78 6041      STR      r1,[r0,#0x04]
0x08001B7A 6801      LDR      r1,[r0,#0x00]
0x08001B7C 4A08      LDR      r2,[pc,#32]  ; @0x08001BA0
0x08001B7E 4011      ANDS     r1,r1,r2
0x08001B80 6001      STR      r1,[r0,#0x00]
0x08001B82 6801      LDR      r1,[r0,#0x00]
0x08001B84 F4212180  BIC      r1,r1,#0x40000
0x08001B88 6001      STR      r1,[r0,#0x00]
0x08001B8A 6842      LDR      r2,[r0,#0x04]
0x08001B8C 2100      MOVS     r1,#0x00
0x08001B8E F42202FE  BIC      r2,r2,#0x7F0000
0x08001B92 6042      STR      r2,[r0,#0x04]
0x08001B94 6081      STR      r1,[r0,#0x08]
0x08001B96 4770      BX       lr
0x08001B98 1000      ASRS     r0,r0,#0
0x08001B9A 4002      ANDS     r2,r2,r0
0x08001B9C 0000      MOVS     r0,r0
0x08001B9E F8FFFFFF  LDR      pc,[pc,#4095]  ; @0x08002BA1
0x08001BA2 FEF64603  MRC2     P6,0x07,r4,C6,C3
0x08001BA6 2000      MOVS     r0,#0x00
0x08001BA8 0959      LSRS     r1,r3,#5
0x08001BAA 4A09      LDR      r2,[pc,#36]  ; @0x08001BD0
0x08001BAC 2901      CMP      r1,#0x01
0x08001BAE D101      BNE      0x08001BB4
0x08001BB0 6811      LDR      r1,[r2,#0x00]
0x08001BB2 E004      B        0x08001BBE
0x08001BB4 2902      CMP      r1,#0x02
0x08001BB6 D101      BNE      0x08001BBC
0x08001BB8 6A11      LDR      r1,[r2,#0x20]
0x08001BBA E000      B        0x08001BBE
0x08001BBC 6A51      LDR      r1,[r2,#0x24]
0x08001BBE F003021F  AND      r2,r3,#0x1F
0x08001BC2 2301      MOVS     r3,#0x01
0x08001BC4 4093      LSLS     r3,r3,r2
0x08001BC6 420B      TST      r3,r1
0x08001BC8 D000      BEQ      0x08001BCC
0x08001BCA 2001      MOVS     r0,#0x01
0x08001BCC 4770      BX       lr
0x08001BCE 0000      MOVS     r0,r0
0x08001BD0 1000      ASRS     r0,r0,#0
0x08001BD2 4002      ANDS     r2,r2,r0
                 RCC_GetSYSCLKSource:
0x08001BD4 4802      LDR      r0,[pc,#8]  ; @0x08001BE0
0x08001BD6 6840      LDR      r0,[r0,#0x04]
0x08001BD8 F000000C  AND      r0,r0,#0x0C
0x08001BDC 4770      BX       lr
0x08001BDE 0000      MOVS     r0,r0
0x08001BE0 1000      ASRS     r0,r0,#0
0x08001BE2 4002      ANDS     r2,r2,r0
                 RCC_HCLKConfig:
0x08001BE4 4A03      LDR      r2,[pc,#12]  ; @0x08001BF4
0x08001BE6 6851      LDR      r1,[r2,#0x04]
0x08001BE8 F02101F0  BIC      r1,r1,#0xF0
0x08001BEC 4301      ORRS     r1,r1,r0
0x08001BEE 6051      STR      r1,[r2,#0x04]
0x08001BF0 4770      BX       lr
0x08001BF2 0000      MOVS     r0,r0
0x08001BF4 1000      ASRS     r0,r0,#0
0x08001BF6 4002      ANDS     r2,r2,r0
                 RCC_HSEConfig:
0x08001BF8 490B      LDR      r1,[pc,#44]  ; @0x08001C28
0x08001BFA 680A      LDR      r2,[r1,#0x00]
0x08001BFC F4223280  BIC      r2,r2,#0x10000
0x08001C00 600A      STR      r2,[r1,#0x00]
0x08001C02 680A      LDR      r2,[r1,#0x00]
0x08001C04 F5B03F80  CMP      r0,#0x10000
0x08001C08 F4222280  BIC      r2,r2,#0x40000
0x08001C0C 600A      STR      r2,[r1,#0x00]
0x08001C0E D007      BEQ      0x08001C20
0x08001C10 F5B02F80  CMP      r0,#0x40000
0x08001C14 D103      BNE      0x08001C1E
0x08001C16 6808      LDR      r0,[r1,#0x00]
0x08001C18 F44020A0  ORR      r0,r0,#0x50000
0x08001C1C 6008      STR      r0,[r1,#0x00]
0x08001C1E 4770      BX       lr
0x08001C20 6808      LDR      r0,[r1,#0x00]
0x08001C22 F4403080  ORR      r0,r0,#0x10000
0x08001C26 E7F9      B        0x08001C1C
0x08001C28 1000      ASRS     r0,r0,#0
0x08001C2A 4002      ANDS     r2,r2,r0
                 RCC_PCLK1Config:
0x08001C2C 4A03      LDR      r2,[pc,#12]  ; @0x08001C3C
0x08001C2E 6851      LDR      r1,[r2,#0x04]
0x08001C30 F42161E0  BIC      r1,r1,#0x700
0x08001C34 4301      ORRS     r1,r1,r0
0x08001C36 6051      STR      r1,[r2,#0x04]
0x08001C38 4770      BX       lr
0x08001C3A 0000      MOVS     r0,r0
0x08001C3C 1000      ASRS     r0,r0,#0
0x08001C3E 4002      ANDS     r2,r2,r0
                 RCC_PCLK2Config:
0x08001C40 4A03      LDR      r2,[pc,#12]  ; @0x08001C50
0x08001C42 6851      LDR      r1,[r2,#0x04]
0x08001C44 F4215160  BIC      r1,r1,#0x3800
0x08001C48 EA4100C0  ORR      r0,r1,r0,LSL #3
0x08001C4C 6050      STR      r0,[r2,#0x04]
0x08001C4E 4770      BX       lr
0x08001C50 1000      ASRS     r0,r0,#0
0x08001C52 4002      ANDS     r2,r2,r0
                 RCC_PLLCmd:
0x08001C54 4901      LDR      r1,[pc,#4]  ; @0x08001C5C
0x08001C56 6608      STR      r0,[r1,#0x60]
0x08001C58 4770      BX       lr
0x08001C5A 0000      MOVS     r0,r0
0x08001C5C 0000      MOVS     r0,r0
0x08001C5E 4242      RSBS     r2,r0,#0
                 RCC_PLLConfig:
0x08001C60 4B03      LDR      r3,[pc,#12]  ; @0x08001C70
0x08001C62 685A      LDR      r2,[r3,#0x04]
0x08001C64 4308      ORRS     r0,r0,r1
0x08001C66 F422127C  BIC      r2,r2,#0x3F0000
0x08001C6A 4310      ORRS     r0,r0,r2
0x08001C6C 6058      STR      r0,[r3,#0x04]
0x08001C6E 4770      BX       lr
0x08001C70 1000      ASRS     r0,r0,#0
0x08001C72 4002      ANDS     r2,r2,r0
                 RCC_SYSCLKConfig:
0x08001C74 4A03      LDR      r2,[pc,#12]  ; @0x08001C84
0x08001C76 6851      LDR      r1,[r2,#0x04]
0x08001C78 F0210103  BIC      r1,r1,#0x03
0x08001C7C 4301      ORRS     r1,r1,r0
0x08001C7E 6051      STR      r1,[r2,#0x04]
0x08001C80 4770      BX       lr
0x08001C82 0000      MOVS     r0,r0
0x08001C84 1000      ASRS     r0,r0,#0
0x08001C86 4002      ANDS     r2,r2,r0
                 SPI_Cmd:
0x08001C88 2900      CMP      r1,#0x00
0x08001C8A 8801      LDRH     r1,[r0,#0x00]
0x08001C8C D002      BEQ      0x08001C94
0x08001C8E F0410140  ORR      r1,r1,#0x40
0x08001C92 E001      B        0x08001C98
0x08001C94 F0210140  BIC      r1,r1,#0x40
0x08001C98 8001      STRH     r1,[r0,#0x00]
0x08001C9A 4770      BX       lr
                 SPI_DataSizeConfig:
0x08001C9C 8802      LDRH     r2,[r0,#0x00]
0x08001C9E F4226200  BIC      r2,r2,#0x800
0x08001CA2 8002      STRH     r2,[r0,#0x00]
0x08001CA4 8802      LDRH     r2,[r0,#0x00]
0x08001CA6 430A      ORRS     r2,r2,r1
0x08001CA8 8002      STRH     r2,[r0,#0x00]
0x08001CAA 4770      BX       lr
                 SPI_I2S_DeInit:
0x08001CAC 4911      LDR      r1,[pc,#68]  ; @0x08001CF4
0x08001CAE B510      PUSH     {r4,lr}
0x08001CB0 1840      ADDS     r0,r0,r1
0x08001CB2 D010      BEQ      0x08001CD6
0x08001CB4 F5B06F80  CMP      r0,#0x400
0x08001CB8 D010      BEQ      0x08001CDC
0x08001CBA F5B04F78  CMP      r0,#0xF800
0x08001CBE D118      BNE      0x08001CF2
0x08001CC0 2101      MOVS     r1,#0x01
0x08001CC2 030C      LSLS     r4,r1,#12
0x08001CC4 4620      MOV      r0,r4
0x08001CC6 F7FFFF43  BL.W     RCC_APB2PeriphResetCmd (0x08001B50)
0x08001CCA 4620      MOV      r0,r4
0x08001CCC E8BD4010  POP      {r4,lr}
0x08001CD0 2100      MOVS     r1,#0x00
0x08001CD2 F7FFBF3D  B.W      RCC_APB2PeriphResetCmd (0x08001B50)
0x08001CD6 2101      MOVS     r1,#0x01
0x08001CD8 038C      LSLS     r4,r1,#14
0x08001CDA E001      B        0x08001CE0
0x08001CDC 2101      MOVS     r1,#0x01
0x08001CDE 03CC      LSLS     r4,r1,#15
0x08001CE0 4620      MOV      r0,r4
0x08001CE2 F7FFFF1D  BL.W     RCC_APB1PeriphResetCmd (0x08001B20)
0x08001CE6 4620      MOV      r0,r4
0x08001CE8 E8BD4010  POP      {r4,lr}
0x08001CEC 2100      MOVS     r1,#0x00
0x08001CEE F7FFBF17  B.W      RCC_APB1PeriphResetCmd (0x08001B20)
0x08001CF2 BD10      POP      {r4,pc}
0x08001CF4 C800      LDM      r0!,{}
0x08001CF6 BFFF      ITTTT   
                 SPI_I2S_GetFlagStatus:
0x08001CF8 4602      MOV      r2,r0
0x08001CFA 8912      LDRH     r2,[r2,#0x08]
0x08001CFC 2000      MOV      r0,#0x00
0x08001CFE 420A      TST      r2,r1
0x08001D00 D000      BEQ      0x08001D04
0x08001D02 2001      MOVS     r0,#0x01
0x08001D04 4770      BX       lr
                 SPI_I2S_ReceiveData:
0x08001D06 8980      LDRH     r0,[r0,#0x0C]
0x08001D08 4770      BX       lr
                 SPI_I2S_SendData:
0x08001D0A 8181      STRH     r1,[r0,#0x0C]
0x08001D0C 4770      BX       lr
                 SPI_Init:
0x08001D0E B570      PUSH     {r4-r6,lr}
0x08001D10 8802      LDRH     r2,[r0,#0x00]
0x08001D12 880B      LDRH     r3,[r1,#0x00]
0x08001D14 884E      LDRH     r6,[r1,#0x02]
0x08001D16 888C      LDRH     r4,[r1,#0x04]
0x08001D18 88CD      LDRH     r5,[r1,#0x06]
0x08001D1A 4333      ORRS     r3,r3,r6
0x08001D1C 432C      ORRS     r4,r4,r5
0x08001D1E 890E      LDRH     r6,[r1,#0x08]
0x08001D20 4323      ORRS     r3,r3,r4
0x08001D22 894C      LDRH     r4,[r1,#0x0A]
0x08001D24 4333      ORRS     r3,r3,r6
0x08001D26 898D      LDRH     r5,[r1,#0x0C]
0x08001D28 4323      ORRS     r3,r3,r4
0x08001D2A 89CC      LDRH     r4,[r1,#0x0E]
0x08001D2C 432B      ORRS     r3,r3,r5
0x08001D2E F4025241  AND      r2,r2,#0x3040
0x08001D32 4323      ORRS     r3,r3,r4
0x08001D34 4313      ORRS     r3,r3,r2
0x08001D36 8003      STRH     r3,[r0,#0x00]
0x08001D38 8B82      LDRH     r2,[r0,#0x1C]
0x08001D3A F4226200  BIC      r2,r2,#0x800
0x08001D3E 8382      STRH     r2,[r0,#0x1C]
0x08001D40 8A09      LDRH     r1,[r1,#0x10]
0x08001D42 8201      STRH     r1,[r0,#0x10]
0x08001D44 BD70      POP      {r4-r6,pc}
                 SysTick_CounterCmd:
0x08001D46 F04F21E0  MOV      r1,#0xE000E000
0x08001D4A 2801      CMP      r0,#0x01
0x08001D4C D103      BNE      0x08001D56
0x08001D4E 6908      LDR      r0,[r1,#0x10]
0x08001D50 F0400001  ORR      r0,r0,#0x01
0x08001D54 E004      B        0x08001D60
0x08001D56 1C80      ADDS     r0,r0,#2
0x08001D58 D104      BNE      0x08001D64
0x08001D5A 6908      LDR      r0,[r1,#0x10]
0x08001D5C F0200001  BIC      r0,r0,#0x01
0x08001D60 6108      STR      r0,[r1,#0x10]
0x08001D62 4770      BX       lr
0x08001D64 2000      MOVS     r0,#0x00
0x08001D66 6188      STR      r0,[r1,#0x18]
0x08001D68 4770      BX       lr
                 SysTick_ITConfig:
0x08001D6A F04F21E0  MOV      r1,#0xE000E000
0x08001D6E 2800      CMP      r0,#0x00
0x08001D70 6908      LDR      r0,[r1,#0x10]
0x08001D72 D002      BEQ      0x08001D7A
0x08001D74 F0400002  ORR      r0,r0,#0x02
0x08001D78 E001      B        0x08001D7E
0x08001D7A F0200002  BIC      r0,r0,#0x02
0x08001D7E 6108      STR      r0,[r1,#0x10]
0x08001D80 4770      BX       lr
                 SysTick_SetReload:
0x08001D82 F04F21E0  MOV      r1,#0xE000E000
0x08001D86 6148      STR      r0,[r1,#0x14]
0x08001D88 4770      BX       lr
                 __scatterload_copy:
0x08001D8A E002      B        0x08001D92
0x08001D8C C808      LDM      r0!,{r3}
0x08001D8E 1F12      SUBS     r2,r2,#4
0x08001D90 C108      STM      r1!,{r3}
0x08001D92 2A00      CMP      r2,#0x00
0x08001D94 D1FA      BNE      0x08001D8C
0x08001D96 4770      BX       lr
                 __scatterload_null:
0x08001D98 4770      BX       lr
                 __scatterload_zeroinit:
0x08001D9A 2000      MOVS     r0,#0x00
0x08001D9C E001      B        0x08001DA2
0x08001D9E C101      STM      r1!,{r0}
0x08001DA0 1F12      SUBS     r2,r2,#4
0x08001DA2 2A00      CMP      r2,#0x00
0x08001DA4 D1FB      BNE      0x08001D9E
0x08001DA6 4770      BX       lr
0x08001DA8 0000      MOVS     r0,r0
0x08001DAA 0000      MOVS     r0,r0
0x08001DAC 0000      MOVS     r0,r0
0x08001DAE 0000      MOVS     r0,r0
0x08001DB0 0000      MOVS     r0,r0
0x08001DB2 0000      MOVS     r0,r0
0x08001DB4 0000      MOVS     r0,r0
0x08001DB6 0000      MOVS     r0,r0
0x08001DB8 0000      MOVS     r0,r0
0x08001DBA 0000      MOVS     r0,r0
0x08001DBC 0000      MOVS     r0,r0
0x08001DBE 0000      MOVS     r0,r0
0x08001DC0 0000      MOVS     r0,r0
0x08001DC2 0000      MOVS     r0,r0
0x08001DC4 0000      MOVS     r0,r0
0x08001DC6 0000      MOVS     r0,r0
0x08001DC8 0000      MOVS     r0,r0
0x08001DCA 0000      MOVS     r0,r0
0x08001DCC 0000      MOVS     r0,r0
0x08001DCE 0000      MOVS     r0,r0
0x08001DD0 0000      MOVS     r0,r0
0x08001DD2 0000      MOVS     r0,r0
0x08001DD4 0000      MOVS     r0,r0
0x08001DD6 0000      MOVS     r0,r0
0x08001DD8 0000      MOVS     r0,r0
0x08001DDA 0180      LSLS     r0,r0,#6
0x08001DDC 0180      LSLS     r0,r0,#6
0x08001DDE 0180      LSLS     r0,r0,#6
0x08001DE0 0180      LSLS     r0,r0,#6
0x08001DE2 0180      LSLS     r0,r0,#6
0x08001DE4 0180      LSLS     r0,r0,#6
0x08001DE6 0180      LSLS     r0,r0,#6
0x08001DE8 0180      LSLS     r0,r0,#6
0x08001DEA 0180      LSLS     r0,r0,#6
0x08001DEC 0180      LSLS     r0,r0,#6
0x08001DEE 0180      LSLS     r0,r0,#6
0x08001DF0 0180      LSLS     r0,r0,#6
0x08001DF2 0180      LSLS     r0,r0,#6
0x08001DF4 0000      MOVS     r0,r0
0x08001DF6 0000      MOVS     r0,r0
0x08001DF8 0180      LSLS     r0,r0,#6
0x08001DFA 0180      LSLS     r0,r0,#6
0x08001DFC 0000      MOVS     r0,r0
0x08001DFE 0000      MOVS     r0,r0
0x08001E00 0000      MOVS     r0,r0
0x08001E02 0000      MOVS     r0,r0
0x08001E04 0000      MOVS     r0,r0
0x08001E06 0000      MOVS     r0,r0
0x08001E08 0000      MOVS     r0,r0
0x08001E0A 0000      MOVS     r0,r0
0x08001E0C 00CC      LSLS     r4,r1,#3
0x08001E0E 00CC      LSLS     r4,r1,#3
0x08001E10 00CC      LSLS     r4,r1,#3
0x08001E12 00CC      LSLS     r4,r1,#3
0x08001E14 00CC      LSLS     r4,r1,#3
0x08001E16 00CC      LSLS     r4,r1,#3
0x08001E18 0000      MOVS     r0,r0
0x08001E1A 0000      MOVS     r0,r0
0x08001E1C 0000      MOVS     r0,r0
0x08001E1E 0000      MOVS     r0,r0
0x08001E20 0000      MOVS     r0,r0
0x08001E22 0000      MOVS     r0,r0
0x08001E24 0000      MOVS     r0,r0
0x08001E26 0000      MOVS     r0,r0
0x08001E28 0000      MOVS     r0,r0
0x08001E2A 0000      MOVS     r0,r0
0x08001E2C 0000      MOVS     r0,r0
0x08001E2E 0000      MOVS     r0,r0
0x08001E30 0000      MOVS     r0,r0
0x08001E32 0000      MOVS     r0,r0
0x08001E34 0000      MOVS     r0,r0
0x08001E36 0000      MOVS     r0,r0
0x08001E38 0000      MOVS     r0,r0
0x08001E3A 0000      MOVS     r0,r0
0x08001E3C 0000      MOVS     r0,r0
0x08001E3E 0000      MOVS     r0,r0
0x08001E40 0000      MOVS     r0,r0
0x08001E42 0000      MOVS     r0,r0
0x08001E44 0C60      LSRS     r0,r4,#17
0x08001E46 0C60      LSRS     r0,r4,#17
0x08001E48 0C60      LSRS     r0,r4,#17
0x08001E4A 0630      LSLS     r0,r6,#24
0x08001E4C 0630      LSLS     r0,r6,#24
0x08001E4E 1FFE      SUBS     r6,r7,#7
0x08001E50 1FFE      SUBS     r6,r7,#7
0x08001E52 0630      LSLS     r0,r6,#24
0x08001E54 0738      LSLS     r0,r7,#28
0x08001E56 0318      LSLS     r0,r3,#12
0x08001E58 1FFE      SUBS     r6,r7,#7
0x08001E5A 1FFE      SUBS     r6,r7,#7
0x08001E5C 0318      LSLS     r0,r3,#12
0x08001E5E 0318      LSLS     r0,r3,#12
0x08001E60 018C      LSLS     r4,r1,#6
0x08001E62 018C      LSLS     r4,r1,#6
0x08001E64 018C      LSLS     r4,r1,#6
0x08001E66 0000      MOVS     r0,r0
0x08001E68 0000      MOVS     r0,r0
0x08001E6A 0080      LSLS     r0,r0,#2
0x08001E6C 03E0      LSLS     r0,r4,#15
0x08001E6E 0FF8      LSRS     r0,r7,#31
0x08001E70 0E9C      LSRS     r4,r3,#26
0x08001E72 1C8C      ADDS     r4,r1,#2
0x08001E74 188C      ADDS     r4,r1,r2
0x08001E76 008C      LSLS     r4,r1,#2
0x08001E78 0098      LSLS     r0,r3,#2
0x08001E7A 01F8      LSLS     r0,r7,#7
0x08001E7C 07E0      LSLS     r0,r4,#31
0x08001E7E 0E80      LSRS     r0,r0,#26
0x08001E80 1C80      ADDS     r0,r0,#2
0x08001E82 188C      ADDS     r4,r1,r2
0x08001E84 188C      ADDS     r4,r1,r2
0x08001E86 189C      ADDS     r4,r3,r2
0x08001E88 0CB8      LSRS     r0,r7,#18
0x08001E8A 0FF0      LSRS     r0,r6,#31
0x08001E8C 03E0      LSLS     r0,r4,#15
0x08001E8E 0080      LSLS     r0,r0,#2
0x08001E90 0080      LSLS     r0,r0,#2
0x08001E92 0000      MOVS     r0,r0
0x08001E94 0000      MOVS     r0,r0
0x08001E96 0000      MOVS     r0,r0
0x08001E98 0000      MOVS     r0,r0
0x08001E9A 0000      MOVS     r0,r0
0x08001E9C 0000      MOVS     r0,r0
0x08001E9E 180E      ADDS     r6,r1,r0
0x08001EA0 0C1B      LSRS     r3,r3,#16
0x08001EA2 0C11      LSRS     r1,r2,#16
0x08001EA4 0611      LSLS     r1,r2,#24
0x08001EA6 0611      LSLS     r1,r2,#24
0x08001EA8 0311      LSLS     r1,r2,#12
0x08001EAA 0311      LSLS     r1,r2,#12
0x08001EAC 019B      LSLS     r3,r3,#6
0x08001EAE 018E      LSLS     r6,r1,#6
0x08001EB0 38C0      SUBS     r0,r0,#0xC0
0x08001EB2 6CC0      LDR      r0,[r0,#0x4C]
0x08001EB4 4460      ADD      r0,r0,r12
0x08001EB6 4460      ADD      r0,r0,r12
0x08001EB8 4430      ADD      r0,r0,r6
0x08001EBA 4430      ADD      r0,r0,r6
0x08001EBC 4418      ADD      r0,r0,r3
0x08001EBE 6C18      LDR      r0,[r3,#0x40]
0x08001EC0 380C      SUBS     r0,r0,#0x0C
0x08001EC2 0000      MOVS     r0,r0
0x08001EC4 0000      MOVS     r0,r0
0x08001EC6 0000      MOVS     r0,r0
0x08001EC8 0000      MOVS     r0,r0
0x08001ECA 01E0      LSLS     r0,r4,#7
0x08001ECC 03F0      LSLS     r0,r6,#15
0x08001ECE 0738      LSLS     r0,r7,#28
0x08001ED0 0618      LSLS     r0,r3,#24
0x08001ED2 0618      LSLS     r0,r3,#24
0x08001ED4 0330      LSLS     r0,r6,#12
0x08001ED6 01F0      LSLS     r0,r6,#7
0x08001ED8 00F0      LSLS     r0,r6,#3
0x08001EDA 00F8      LSLS     r0,r7,#3
0x08001EDC 319C      ADDS     r1,r1,#0x9C
0x08001EDE 330E      ADDS     r3,r3,#0x0E
0x08001EE0 1E06      SUBS     r6,r0,#0
0x08001EE2 1C06      ADDS     r6,r0,#0
0x08001EE4 1C06      ADDS     r6,r0,#0
0x08001EE6 3F06      SUBS     r7,r7,#0x06
0x08001EE8 73FC      STRB     r4,[r7,#0x0F]
0x08001EEA 21F0      MOVS     r1,#0xF0
0x08001EEC 0000      MOVS     r0,r0
0x08001EEE 0000      MOVS     r0,r0
0x08001EF0 0000      MOVS     r0,r0
0x08001EF2 0000      MOVS     r0,r0
0x08001EF4 0000      MOVS     r0,r0
0x08001EF6 0000      MOVS     r0,r0
0x08001EF8 0000      MOVS     r0,r0
0x08001EFA 0000      MOVS     r0,r0
0x08001EFC 000C      MOVS     r4,r1
0x08001EFE 000C      MOVS     r4,r1
0x08001F00 000C      MOVS     r4,r1
0x08001F02 000C      MOVS     r4,r1
0x08001F04 000C      MOVS     r4,r1
0x08001F06 000C      MOVS     r4,r1
0x08001F08 0000      MOVS     r0,r0
0x08001F0A 0000      MOVS     r0,r0
0x08001F0C 0000      MOVS     r0,r0
0x08001F0E 0000      MOVS     r0,r0
0x08001F10 0000      MOVS     r0,r0
0x08001F12 0000      MOVS     r0,r0
0x08001F14 0000      MOVS     r0,r0
0x08001F16 0000      MOVS     r0,r0
0x08001F18 0000      MOVS     r0,r0
0x08001F1A 0000      MOVS     r0,r0
0x08001F1C 0000      MOVS     r0,r0
0x08001F1E 0000      MOVS     r0,r0
0x08001F20 0000      MOVS     r0,r0
0x08001F22 0000      MOVS     r0,r0
0x08001F24 0000      MOVS     r0,r0
0x08001F26 0000      MOVS     r0,r0
0x08001F28 0000      MOVS     r0,r0
0x08001F2A 0200      LSLS     r0,r0,#8
0x08001F2C 0300      LSLS     r0,r0,#12
0x08001F2E 0180      LSLS     r0,r0,#6
0x08001F30 00C0      LSLS     r0,r0,#3
0x08001F32 00C0      LSLS     r0,r0,#3
0x08001F34 0060      LSLS     r0,r4,#1
0x08001F36 0060      LSLS     r0,r4,#1
0x08001F38 0030      MOVS     r0,r6
0x08001F3A 0030      MOVS     r0,r6
0x08001F3C 0030      MOVS     r0,r6
0x08001F3E 0030      MOVS     r0,r6
0x08001F40 0030      MOVS     r0,r6
0x08001F42 0030      MOVS     r0,r6
0x08001F44 0030      MOVS     r0,r6
0x08001F46 0030      MOVS     r0,r6
0x08001F48 0060      LSLS     r0,r4,#1
0x08001F4A 0060      LSLS     r0,r4,#1
0x08001F4C 00C0      LSLS     r0,r0,#3
0x08001F4E 00C0      LSLS     r0,r0,#3
0x08001F50 0180      LSLS     r0,r0,#6
0x08001F52 0300      LSLS     r0,r0,#12
0x08001F54 0200      LSLS     r0,r0,#8
0x08001F56 0000      MOVS     r0,r0
0x08001F58 0000      MOVS     r0,r0
0x08001F5A 0020      MOVS     r0,r4
0x08001F5C 0060      LSLS     r0,r4,#1
0x08001F5E 00C0      LSLS     r0,r0,#3
0x08001F60 0180      LSLS     r0,r0,#6
0x08001F62 0180      LSLS     r0,r0,#6
0x08001F64 0300      LSLS     r0,r0,#12
0x08001F66 0300      LSLS     r0,r0,#12
0x08001F68 0600      LSLS     r0,r0,#24
0x08001F6A 0600      LSLS     r0,r0,#24
0x08001F6C 0600      LSLS     r0,r0,#24
0x08001F6E 0600      LSLS     r0,r0,#24
0x08001F70 0600      LSLS     r0,r0,#24
0x08001F72 0600      LSLS     r0,r0,#24
0x08001F74 0600      LSLS     r0,r0,#24
0x08001F76 0600      LSLS     r0,r0,#24
0x08001F78 0300      LSLS     r0,r0,#12
0x08001F7A 0300      LSLS     r0,r0,#12
0x08001F7C 0180      LSLS     r0,r0,#6
0x08001F7E 0180      LSLS     r0,r0,#6
0x08001F80 00C0      LSLS     r0,r0,#3
0x08001F82 0060      LSLS     r0,r4,#1
0x08001F84 0020      MOVS     r0,r4
0x08001F86 0000      MOVS     r0,r0
0x08001F88 0000      MOVS     r0,r0
0x08001F8A 0000      MOVS     r0,r0
0x08001F8C 0000      MOVS     r0,r0
0x08001F8E 0000      MOVS     r0,r0
0x08001F90 0000      MOVS     r0,r0
0x08001F92 0000      MOVS     r0,r0
0x08001F94 00C0      LSLS     r0,r0,#3
0x08001F96 00C0      LSLS     r0,r0,#3
0x08001F98 06D8      LSLS     r0,r3,#27
0x08001F9A 07F8      LSLS     r0,r7,#31
0x08001F9C 01E0      LSLS     r0,r4,#7
0x08001F9E 0330      LSLS     r0,r6,#12
0x08001FA0 0738      LSLS     r0,r7,#28
0x08001FA2 0000      MOVS     r0,r0
0x08001FA4 0000      MOVS     r0,r0
0x08001FA6 0000      MOVS     r0,r0
0x08001FA8 0000      MOVS     r0,r0
0x08001FAA 0000      MOVS     r0,r0
0x08001FAC 0000      MOVS     r0,r0
0x08001FAE 0000      MOVS     r0,r0
0x08001FB0 0000      MOVS     r0,r0
0x08001FB2 0000      MOVS     r0,r0
0x08001FB4 0000      MOVS     r0,r0
0x08001FB6 0000      MOVS     r0,r0
0x08001FB8 0000      MOVS     r0,r0
0x08001FBA 0000      MOVS     r0,r0
0x08001FBC 0000      MOVS     r0,r0
0x08001FBE 0000      MOVS     r0,r0
0x08001FC0 0000      MOVS     r0,r0
0x08001FC2 0000      MOVS     r0,r0
0x08001FC4 0180      LSLS     r0,r0,#6
0x08001FC6 0180      LSLS     r0,r0,#6
0x08001FC8 0180      LSLS     r0,r0,#6
0x08001FCA 0180      LSLS     r0,r0,#6
0x08001FCC 0180      LSLS     r0,r0,#6
0x08001FCE 3FFC      SUBS     r7,r7,#0xFC
0x08001FD0 3FFC      SUBS     r7,r7,#0xFC
0x08001FD2 0180      LSLS     r0,r0,#6
0x08001FD4 0180      LSLS     r0,r0,#6
0x08001FD6 0180      LSLS     r0,r0,#6
0x08001FD8 0180      LSLS     r0,r0,#6
0x08001FDA 0180      LSLS     r0,r0,#6
0x08001FDC 0000      MOVS     r0,r0
0x08001FDE 0000      MOVS     r0,r0
0x08001FE0 0000      MOVS     r0,r0
0x08001FE2 0000      MOVS     r0,r0
0x08001FE4 0000      MOVS     r0,r0
0x08001FE6 0000      MOVS     r0,r0
0x08001FE8 0000      MOVS     r0,r0
0x08001FEA 0000      MOVS     r0,r0
0x08001FEC 0000      MOVS     r0,r0
0x08001FEE 0000      MOVS     r0,r0
0x08001FF0 0000      MOVS     r0,r0
0x08001FF2 0000      MOVS     r0,r0
0x08001FF4 0000      MOVS     r0,r0
0x08001FF6 0000      MOVS     r0,r0
0x08001FF8 0000      MOVS     r0,r0
0x08001FFA 0000      MOVS     r0,r0
0x08001FFC 0000      MOVS     r0,r0
0x08001FFE 0000      MOVS     r0,r0
0x08002000 0000      MOVS     r0,r0
0x08002002 0000      MOVS     r0,r0
0x08002004 0000      MOVS     r0,r0
0x08002006 0000      MOVS     r0,r0
0x08002008 0000      MOVS     r0,r0
0x0800200A 0180      LSLS     r0,r0,#6
0x0800200C 0180      LSLS     r0,r0,#6
0x0800200E 0100      LSLS     r0,r0,#4
0x08002010 0100      LSLS     r0,r0,#4
0x08002012 0080      LSLS     r0,r0,#2
0x08002014 0000      MOVS     r0,r0
0x08002016 0000      MOVS     r0,r0
0x08002018 0000      MOVS     r0,r0
0x0800201A 0000      MOVS     r0,r0
0x0800201C 0000      MOVS     r0,r0
0x0800201E 0000      MOVS     r0,r0
0x08002020 0000      MOVS     r0,r0
0x08002022 0000      MOVS     r0,r0
0x08002024 0000      MOVS     r0,r0
0x08002026 0000      MOVS     r0,r0
0x08002028 0000      MOVS     r0,r0
0x0800202A 0000      MOVS     r0,r0
0x0800202C 0000      MOVS     r0,r0
0x0800202E 0000      MOVS     r0,r0
0x08002030 07E0      LSLS     r0,r4,#31
0x08002032 07E0      LSLS     r0,r4,#31
0x08002034 0000      MOVS     r0,r0
0x08002036 0000      MOVS     r0,r0
0x08002038 0000      MOVS     r0,r0
0x0800203A 0000      MOVS     r0,r0
0x0800203C 0000      MOVS     r0,r0
0x0800203E 0000      MOVS     r0,r0
0x08002040 0000      MOVS     r0,r0
0x08002042 0000      MOVS     r0,r0
0x08002044 0000      MOVS     r0,r0
0x08002046 0000      MOVS     r0,r0
0x08002048 0000      MOVS     r0,r0
0x0800204A 0000      MOVS     r0,r0
0x0800204C 0000      MOVS     r0,r0
0x0800204E 0000      MOVS     r0,r0
0x08002050 0000      MOVS     r0,r0
0x08002052 0000      MOVS     r0,r0
0x08002054 0000      MOVS     r0,r0
0x08002056 0000      MOVS     r0,r0
0x08002058 0000      MOVS     r0,r0
0x0800205A 0000      MOVS     r0,r0
0x0800205C 0000      MOVS     r0,r0
0x0800205E 0000      MOVS     r0,r0
0x08002060 0000      MOVS     r0,r0
0x08002062 0000      MOVS     r0,r0
0x08002064 0000      MOVS     r0,r0
0x08002066 0000      MOVS     r0,r0
0x08002068 0000      MOVS     r0,r0
0x0800206A 00C0      LSLS     r0,r0,#3
0x0800206C 00C0      LSLS     r0,r0,#3
0x0800206E 0000      MOVS     r0,r0
0x08002070 0000      MOVS     r0,r0
0x08002072 0000      MOVS     r0,r0
0x08002074 0000      MOVS     r0,r0
0x08002076 0000      MOVS     r0,r0
0x08002078 0000      MOVS     r0,r0
0x0800207A 0C00      LSRS     r0,r0,#16
0x0800207C 0C00      LSRS     r0,r0,#16
0x0800207E 0600      LSLS     r0,r0,#24
0x08002080 0600      LSLS     r0,r0,#24
0x08002082 0600      LSLS     r0,r0,#24
0x08002084 0300      LSLS     r0,r0,#12
0x08002086 0300      LSLS     r0,r0,#12
0x08002088 0300      LSLS     r0,r0,#12
0x0800208A 0380      LSLS     r0,r0,#14
0x0800208C 0180      LSLS     r0,r0,#6
0x0800208E 0180      LSLS     r0,r0,#6
0x08002090 0180      LSLS     r0,r0,#6
0x08002092 00C0      LSLS     r0,r0,#3
0x08002094 00C0      LSLS     r0,r0,#3
0x08002096 00C0      LSLS     r0,r0,#3
0x08002098 0060      LSLS     r0,r4,#1
0x0800209A 0060      LSLS     r0,r4,#1
0x0800209C 0000      MOVS     r0,r0
0x0800209E 0000      MOVS     r0,r0
0x080020A0 0000      MOVS     r0,r0
0x080020A2 0000      MOVS     r0,r0
0x080020A4 0000      MOVS     r0,r0
0x080020A6 0000      MOVS     r0,r0
0x080020A8 0000      MOVS     r0,r0
0x080020AA 03E0      LSLS     r0,r4,#15
0x080020AC 07F0      LSLS     r0,r6,#31
0x080020AE 0E38      LSRS     r0,r7,#24
0x080020B0 0C18      LSRS     r0,r3,#16
0x080020B2 180C      ADDS     r4,r1,r0
0x080020B4 180C      ADDS     r4,r1,r0
0x080020B6 180C      ADDS     r4,r1,r0
0x080020B8 180C      ADDS     r4,r1,r0
0x080020BA 180C      ADDS     r4,r1,r0
0x080020BC 180C      ADDS     r4,r1,r0
0x080020BE 180C      ADDS     r4,r1,r0
0x080020C0 180C      ADDS     r4,r1,r0
0x080020C2 180C      ADDS     r4,r1,r0
0x080020C4 0C18      LSRS     r0,r3,#16
0x080020C6 0E38      LSRS     r0,r7,#24
0x080020C8 07F0      LSLS     r0,r6,#31
0x080020CA 03E0      LSLS     r0,r4,#15
0x080020CC 0000      MOVS     r0,r0
0x080020CE 0000      MOVS     r0,r0
0x080020D0 0000      MOVS     r0,r0
0x080020D2 0000      MOVS     r0,r0
0x080020D4 0000      MOVS     r0,r0
0x080020D6 0000      MOVS     r0,r0
0x080020D8 0000      MOVS     r0,r0
0x080020DA 0100      LSLS     r0,r0,#4
0x080020DC 0180      LSLS     r0,r0,#6
0x080020DE 01C0      LSLS     r0,r0,#7
0x080020E0 01F0      LSLS     r0,r6,#7
0x080020E2 0198      LSLS     r0,r3,#6
0x080020E4 0188      LSLS     r0,r1,#6
0x080020E6 0180      LSLS     r0,r0,#6
0x080020E8 0180      LSLS     r0,r0,#6
0x080020EA 0180      LSLS     r0,r0,#6
0x080020EC 0180      LSLS     r0,r0,#6
0x080020EE 0180      LSLS     r0,r0,#6
0x080020F0 0180      LSLS     r0,r0,#6
0x080020F2 0180      LSLS     r0,r0,#6
0x080020F4 0180      LSLS     r0,r0,#6
0x080020F6 0180      LSLS     r0,r0,#6
0x080020F8 0180      LSLS     r0,r0,#6
0x080020FA 0180      LSLS     r0,r0,#6
0x080020FC 0000      MOVS     r0,r0
0x080020FE 0000      MOVS     r0,r0
0x08002100 0000      MOVS     r0,r0
0x08002102 0000      MOVS     r0,r0
0x08002104 0000      MOVS     r0,r0
0x08002106 0000      MOVS     r0,r0
0x08002108 0000      MOVS     r0,r0
0x0800210A 03E0      LSLS     r0,r4,#15
0x0800210C 0FF8      LSRS     r0,r7,#31
0x0800210E 0C18      LSRS     r0,r3,#16
0x08002110 180C      ADDS     r4,r1,r0
0x08002112 180C      ADDS     r4,r1,r0
0x08002114 1800      ADDS     r0,r0,r0
0x08002116 1800      ADDS     r0,r0,r0
0x08002118 0C00      LSRS     r0,r0,#16
0x0800211A 0600      LSLS     r0,r0,#24
0x0800211C 0300      LSLS     r0,r0,#12
0x0800211E 0180      LSLS     r0,r0,#6
0x08002120 00C0      LSLS     r0,r0,#3
0x08002122 0060      LSLS     r0,r4,#1
0x08002124 0030      MOVS     r0,r6
0x08002126 0018      MOVS     r0,r3
0x08002128 1FFC      SUBS     r4,r7,#7
0x0800212A 1FFC      SUBS     r4,r7,#7
0x0800212C 0000      MOVS     r0,r0
0x0800212E 0000      MOVS     r0,r0
0x08002130 0000      MOVS     r0,r0
0x08002132 0000      MOVS     r0,r0
0x08002134 0000      MOVS     r0,r0
0x08002136 0000      MOVS     r0,r0
0x08002138 0000      MOVS     r0,r0
0x0800213A 01E0      LSLS     r0,r4,#7
0x0800213C 07F8      LSLS     r0,r7,#31
0x0800213E 0E18      LSRS     r0,r3,#24
0x08002140 0C0C      LSRS     r4,r1,#16
0x08002142 0C0C      LSRS     r4,r1,#16
0x08002144 0C00      LSRS     r0,r0,#16
0x08002146 0600      LSLS     r0,r0,#24
0x08002148 03C0      LSLS     r0,r0,#15
0x0800214A 07C0      LSLS     r0,r0,#31
0x0800214C 0C00      LSRS     r0,r0,#16
0x0800214E 1800      ADDS     r0,r0,r0
0x08002150 1800      ADDS     r0,r0,r0
0x08002152 180C      ADDS     r4,r1,r0
0x08002154 180C      ADDS     r4,r1,r0
0x08002156 0C18      LSRS     r0,r3,#16
0x08002158 07F8      LSLS     r0,r7,#31
0x0800215A 03E0      LSLS     r0,r4,#15
0x0800215C 0000      MOVS     r0,r0
0x0800215E 0000      MOVS     r0,r0
0x08002160 0000      MOVS     r0,r0
0x08002162 0000      MOVS     r0,r0
0x08002164 0000      MOVS     r0,r0
0x08002166 0000      MOVS     r0,r0
0x08002168 0000      MOVS     r0,r0
0x0800216A 0C00      LSRS     r0,r0,#16
0x0800216C 0E00      LSRS     r0,r0,#24
0x0800216E 0F00      LSRS     r0,r0,#28
0x08002170 0F00      LSRS     r0,r0,#28
0x08002172 0D80      LSRS     r0,r0,#22
0x08002174 0CC0      LSRS     r0,r0,#19
0x08002176 0C60      LSRS     r0,r4,#17
0x08002178 0C60      LSRS     r0,r4,#17
0x0800217A 0C30      LSRS     r0,r6,#16
0x0800217C 0C18      LSRS     r0,r3,#16
0x0800217E 0C0C      LSRS     r4,r1,#16
0x08002180 3FFC      SUBS     r7,r7,#0xFC
0x08002182 3FFC      SUBS     r7,r7,#0xFC
0x08002184 0C00      LSRS     r0,r0,#16
0x08002186 0C00      LSRS     r0,r0,#16
0x08002188 0C00      LSRS     r0,r0,#16
0x0800218A 0C00      LSRS     r0,r0,#16
0x0800218C 0000      MOVS     r0,r0
0x0800218E 0000      MOVS     r0,r0
0x08002190 0000      MOVS     r0,r0
0x08002192 0000      MOVS     r0,r0
0x08002194 0000      MOVS     r0,r0
0x08002196 0000      MOVS     r0,r0
0x08002198 0000      MOVS     r0,r0
0x0800219A 0FF8      LSRS     r0,r7,#31
0x0800219C 0FF8      LSRS     r0,r7,#31
0x0800219E 0018      MOVS     r0,r3
0x080021A0 0018      MOVS     r0,r3
0x080021A2 000C      MOVS     r4,r1
0x080021A4 03EC      LSLS     r4,r5,#15
0x080021A6 07FC      LSLS     r4,r7,#31
0x080021A8 0E1C      LSRS     r4,r3,#24
0x080021AA 1C00      ADDS     r0,r0,#0
0x080021AC 1800      ADDS     r0,r0,r0
0x080021AE 1800      ADDS     r0,r0,r0
0x080021B0 1800      ADDS     r0,r0,r0
0x080021B2 180C      ADDS     r4,r1,r0
0x080021B4 0C1C      LSRS     r4,r3,#16
0x080021B6 0E18      LSRS     r0,r3,#24
0x080021B8 07F8      LSLS     r0,r7,#31
0x080021BA 03E0      LSLS     r0,r4,#15
0x080021BC 0000      MOVS     r0,r0
0x080021BE 0000      MOVS     r0,r0
0x080021C0 0000      MOVS     r0,r0
0x080021C2 0000      MOVS     r0,r0
0x080021C4 0000      MOVS     r0,r0
0x080021C6 0000      MOVS     r0,r0
0x080021C8 0000      MOVS     r0,r0
0x080021CA 07C0      LSLS     r0,r0,#31
0x080021CC 0FF0      LSRS     r0,r6,#31
0x080021CE 1C38      ADDS     r0,r7,#0
0x080021D0 1818      ADDS     r0,r3,r0
0x080021D2 0018      MOVS     r0,r3
0x080021D4 000C      MOVS     r4,r1
0x080021D6 03CC      LSLS     r4,r1,#15
0x080021D8 0FEC      LSRS     r4,r5,#31
0x080021DA 0E3C      LSRS     r4,r7,#24
0x080021DC 1C1C      ADDS     r4,r3,#0
0x080021DE 180C      ADDS     r4,r1,r0
0x080021E0 180C      ADDS     r4,r1,r0
0x080021E2 180C      ADDS     r4,r1,r0
0x080021E4 1C18      ADDS     r0,r3,#0
0x080021E6 0E38      LSRS     r0,r7,#24
0x080021E8 07F0      LSLS     r0,r6,#31
0x080021EA 03E0      LSLS     r0,r4,#15
0x080021EC 0000      MOVS     r0,r0
0x080021EE 0000      MOVS     r0,r0
0x080021F0 0000      MOVS     r0,r0
0x080021F2 0000      MOVS     r0,r0
0x080021F4 0000      MOVS     r0,r0
0x080021F6 0000      MOVS     r0,r0
0x080021F8 0000      MOVS     r0,r0
0x080021FA 1FFC      SUBS     r4,r7,#7
0x080021FC 1FFC      SUBS     r4,r7,#7
0x080021FE 0C00      LSRS     r0,r0,#16
0x08002200 0600      LSLS     r0,r0,#24
0x08002202 0600      LSLS     r0,r0,#24
0x08002204 0300      LSLS     r0,r0,#12
0x08002206 0380      LSLS     r0,r0,#14
0x08002208 0180      LSLS     r0,r0,#6
0x0800220A 01C0      LSLS     r0,r0,#7
0x0800220C 00C0      LSLS     r0,r0,#3
0x0800220E 00E0      LSLS     r0,r4,#3
0x08002210 0060      LSLS     r0,r4,#1
0x08002212 0060      LSLS     r0,r4,#1
0x08002214 0070      LSLS     r0,r6,#1
0x08002216 0030      MOVS     r0,r6
0x08002218 0030      MOVS     r0,r6
0x0800221A 0030      MOVS     r0,r6
0x0800221C 0000      MOVS     r0,r0
0x0800221E 0000      MOVS     r0,r0
0x08002220 0000      MOVS     r0,r0
0x08002222 0000      MOVS     r0,r0
0x08002224 0000      MOVS     r0,r0
0x08002226 0000      MOVS     r0,r0
0x08002228 0000      MOVS     r0,r0
0x0800222A 03E0      LSLS     r0,r4,#15
0x0800222C 07F0      LSLS     r0,r6,#31
0x0800222E 0E38      LSRS     r0,r7,#24
0x08002230 0C18      LSRS     r0,r3,#16
0x08002232 0C18      LSRS     r0,r3,#16
0x08002234 0C18      LSRS     r0,r3,#16
0x08002236 0638      LSLS     r0,r7,#24
0x08002238 07F0      LSLS     r0,r6,#31
0x0800223A 07F0      LSLS     r0,r6,#31
0x0800223C 0C18      LSRS     r0,r3,#16
0x0800223E 180C      ADDS     r4,r1,r0
0x08002240 180C      ADDS     r4,r1,r0
0x08002242 180C      ADDS     r4,r1,r0
0x08002244 180C      ADDS     r4,r1,r0
0x08002246 0C38      LSRS     r0,r7,#16
0x08002248 0FF8      LSRS     r0,r7,#31
0x0800224A 03E0      LSLS     r0,r4,#15
0x0800224C 0000      MOVS     r0,r0
0x0800224E 0000      MOVS     r0,r0
0x08002250 0000      MOVS     r0,r0
0x08002252 0000      MOVS     r0,r0
0x08002254 0000      MOVS     r0,r0
0x08002256 0000      MOVS     r0,r0
0x08002258 0000      MOVS     r0,r0
0x0800225A 03E0      LSLS     r0,r4,#15
0x0800225C 07F0      LSLS     r0,r6,#31
0x0800225E 0E38      LSRS     r0,r7,#24
0x08002260 0C1C      LSRS     r4,r3,#16
0x08002262 180C      ADDS     r4,r1,r0
0x08002264 180C      ADDS     r4,r1,r0
0x08002266 180C      ADDS     r4,r1,r0
0x08002268 1C1C      ADDS     r4,r3,#0
0x0800226A 1E38      SUBS     r0,r7,#0
0x0800226C 1BF8      SUBS     r0,r7,r7
0x0800226E 19E0      ADDS     r0,r4,r7
0x08002270 1800      ADDS     r0,r0,r0
0x08002272 0C00      LSRS     r0,r0,#16
0x08002274 0C00      LSRS     r0,r0,#16
0x08002276 0E1C      LSRS     r4,r3,#24
0x08002278 07F8      LSLS     r0,r7,#31
0x0800227A 01F0      LSLS     r0,r6,#7
0x0800227C 0000      MOVS     r0,r0
0x0800227E 0000      MOVS     r0,r0
0x08002280 0000      MOVS     r0,r0
0x08002282 0000      MOVS     r0,r0
0x08002284 0000      MOVS     r0,r0
0x08002286 0000      MOVS     r0,r0
0x08002288 0000      MOVS     r0,r0
0x0800228A 0000      MOVS     r0,r0
0x0800228C 0000      MOVS     r0,r0
0x0800228E 0000      MOVS     r0,r0
0x08002290 0000      MOVS     r0,r0
0x08002292 0000      MOVS     r0,r0
0x08002294 0180      LSLS     r0,r0,#6
0x08002296 0180      LSLS     r0,r0,#6
0x08002298 0000      MOVS     r0,r0
0x0800229A 0000      MOVS     r0,r0
0x0800229C 0000      MOVS     r0,r0
0x0800229E 0000      MOVS     r0,r0
0x080022A0 0000      MOVS     r0,r0
0x080022A2 0000      MOVS     r0,r0
0x080022A4 0000      MOVS     r0,r0
0x080022A6 0000      MOVS     r0,r0
0x080022A8 0180      LSLS     r0,r0,#6
0x080022AA 0180      LSLS     r0,r0,#6
0x080022AC 0000      MOVS     r0,r0
0x080022AE 0000      MOVS     r0,r0
0x080022B0 0000      MOVS     r0,r0
0x080022B2 0000      MOVS     r0,r0
0x080022B4 0000      MOVS     r0,r0
0x080022B6 0000      MOVS     r0,r0
0x080022B8 0000      MOVS     r0,r0
0x080022BA 0000      MOVS     r0,r0
0x080022BC 0000      MOVS     r0,r0
0x080022BE 0000      MOVS     r0,r0
0x080022C0 0000      MOVS     r0,r0
0x080022C2 0000      MOVS     r0,r0
0x080022C4 0180      LSLS     r0,r0,#6
0x080022C6 0180      LSLS     r0,r0,#6
0x080022C8 0000      MOVS     r0,r0
0x080022CA 0000      MOVS     r0,r0
0x080022CC 0000      MOVS     r0,r0
0x080022CE 0000      MOVS     r0,r0
0x080022D0 0000      MOVS     r0,r0
0x080022D2 0000      MOVS     r0,r0
0x080022D4 0000      MOVS     r0,r0
0x080022D6 0000      MOVS     r0,r0
0x080022D8 0180      LSLS     r0,r0,#6
0x080022DA 0180      LSLS     r0,r0,#6
0x080022DC 0100      LSLS     r0,r0,#4
0x080022DE 0100      LSLS     r0,r0,#4
0x080022E0 0080      LSLS     r0,r0,#2
0x080022E2 0000      MOVS     r0,r0
0x080022E4 0000      MOVS     r0,r0
0x080022E6 0000      MOVS     r0,r0
0x080022E8 0000      MOVS     r0,r0
0x080022EA 0000      MOVS     r0,r0
0x080022EC 0000      MOVS     r0,r0
0x080022EE 0000      MOVS     r0,r0
0x080022F0 0000      MOVS     r0,r0
0x080022F2 0000      MOVS     r0,r0
0x080022F4 0000      MOVS     r0,r0
0x080022F6 0000      MOVS     r0,r0
0x080022F8 1000      ASRS     r0,r0,#0
0x080022FA 1C00      ADDS     r0,r0,#0
0x080022FC 0F80      LSRS     r0,r0,#30
0x080022FE 03E0      LSLS     r0,r4,#15
0x08002300 00F8      LSLS     r0,r7,#3
0x08002302 0018      MOVS     r0,r3
0x08002304 00F8      LSLS     r0,r7,#3
0x08002306 03E0      LSLS     r0,r4,#15
0x08002308 0F80      LSRS     r0,r0,#30
0x0800230A 1C00      ADDS     r0,r0,#0
0x0800230C 1000      ASRS     r0,r0,#0
0x0800230E 0000      MOVS     r0,r0
0x08002310 0000      MOVS     r0,r0
0x08002312 0000      MOVS     r0,r0
0x08002314 0000      MOVS     r0,r0
0x08002316 0000      MOVS     r0,r0
0x08002318 0000      MOVS     r0,r0
0x0800231A 0000      MOVS     r0,r0
0x0800231C 0000      MOVS     r0,r0
0x0800231E 0000      MOVS     r0,r0
0x08002320 0000      MOVS     r0,r0
0x08002322 0000      MOVS     r0,r0
0x08002324 0000      MOVS     r0,r0
0x08002326 0000      MOVS     r0,r0
0x08002328 1FF8      SUBS     r0,r7,#7
0x0800232A 0000      MOVS     r0,r0
0x0800232C 0000      MOVS     r0,r0
0x0800232E 0000      MOVS     r0,r0
0x08002330 1FF8      SUBS     r0,r7,#7
0x08002332 0000      MOVS     r0,r0
0x08002334 0000      MOVS     r0,r0
0x08002336 0000      MOVS     r0,r0
0x08002338 0000      MOVS     r0,r0
0x0800233A 0000      MOVS     r0,r0
0x0800233C 0000      MOVS     r0,r0
0x0800233E 0000      MOVS     r0,r0
0x08002340 0000      MOVS     r0,r0
0x08002342 0000      MOVS     r0,r0
0x08002344 0000      MOVS     r0,r0
0x08002346 0000      MOVS     r0,r0
0x08002348 0000      MOVS     r0,r0
0x0800234A 0000      MOVS     r0,r0
0x0800234C 0000      MOVS     r0,r0
0x0800234E 0000      MOVS     r0,r0
0x08002350 0000      MOVS     r0,r0
0x08002352 0000      MOVS     r0,r0
0x08002354 0000      MOVS     r0,r0
0x08002356 0000      MOVS     r0,r0
0x08002358 0008      MOVS     r0,r1
0x0800235A 0038      MOVS     r0,r7
0x0800235C 01F0      LSLS     r0,r6,#7
0x0800235E 07C0      LSLS     r0,r0,#31
0x08002360 1F00      SUBS     r0,r0,#4
0x08002362 1800      ADDS     r0,r0,r0
0x08002364 1F00      SUBS     r0,r0,#4
0x08002366 07C0      LSLS     r0,r0,#31
0x08002368 01F0      LSLS     r0,r6,#7
0x0800236A 0038      MOVS     r0,r7
0x0800236C 0008      MOVS     r0,r1
0x0800236E 0000      MOVS     r0,r0
0x08002370 0000      MOVS     r0,r0
0x08002372 0000      MOVS     r0,r0
0x08002374 0000      MOVS     r0,r0
0x08002376 0000      MOVS     r0,r0
0x08002378 0000      MOVS     r0,r0
0x0800237A 03E0      LSLS     r0,r4,#15
0x0800237C 0FF8      LSRS     r0,r7,#31
0x0800237E 0C18      LSRS     r0,r3,#16
0x08002380 180C      ADDS     r4,r1,r0
0x08002382 180C      ADDS     r4,r1,r0
0x08002384 1800      ADDS     r0,r0,r0
0x08002386 0C00      LSRS     r0,r0,#16
0x08002388 0600      LSLS     r0,r0,#24
0x0800238A 0300      LSLS     r0,r0,#12
0x0800238C 0180      LSLS     r0,r0,#6
0x0800238E 00C0      LSLS     r0,r0,#3
0x08002390 00C0      LSLS     r0,r0,#3
0x08002392 00C0      LSLS     r0,r0,#3
0x08002394 0000      MOVS     r0,r0
0x08002396 0000      MOVS     r0,r0
0x08002398 00C0      LSLS     r0,r0,#3
0x0800239A 00C0      LSLS     r0,r0,#3
0x0800239C 0000      MOVS     r0,r0
0x0800239E 0000      MOVS     r0,r0
0x080023A0 0000      MOVS     r0,r0
0x080023A2 0000      MOVS     r0,r0
0x080023A4 0000      MOVS     r0,r0
0x080023A6 0000      MOVS     r0,r0
0x080023A8 0000      MOVS     r0,r0
0x080023AA 0000      MOVS     r0,r0
0x080023AC 07E0      LSLS     r0,r4,#31
0x080023AE 1818      ADDS     r0,r3,r0
0x080023B0 2004      MOVS     r0,#0x04
0x080023B2 29C2      CMP      r1,#0xC2
0x080023B4 4A22      LDR      r2,[pc,#136]  ; @0x08002440
0x080023B6 4411      ADD      r1,r1,r2
0x080023B8 4409      ADD      r1,r1,r1
0x080023BA 4409      ADD      r1,r1,r1
0x080023BC 4409      ADD      r1,r1,r1
0x080023BE 2209      MOVS     r2,#0x09
0x080023C0 1311      ASRS     r1,r2,#12
0x080023C2 0CE2      LSRS     r2,r4,#19
0x080023C4 4002      ANDS     r2,r2,r0
0x080023C6 2004      MOVS     r0,#0x04
0x080023C8 1818      ADDS     r0,r3,r0
0x080023CA 07E0      LSLS     r0,r4,#31
0x080023CC 0000      MOVS     r0,r0
0x080023CE 0000      MOVS     r0,r0
0x080023D0 0000      MOVS     r0,r0
0x080023D2 0000      MOVS     r0,r0
0x080023D4 0000      MOVS     r0,r0
0x080023D6 0000      MOVS     r0,r0
0x080023D8 0000      MOVS     r0,r0
0x080023DA 0380      LSLS     r0,r0,#14
0x080023DC 0380      LSLS     r0,r0,#14
0x080023DE 06C0      LSLS     r0,r0,#27
0x080023E0 06C0      LSLS     r0,r0,#27
0x080023E2 06C0      LSLS     r0,r0,#27
0x080023E4 0C60      LSRS     r0,r4,#17
0x080023E6 0C60      LSRS     r0,r4,#17
0x080023E8 1830      ADDS     r0,r6,r0
0x080023EA 1830      ADDS     r0,r6,r0
0x080023EC 1830      ADDS     r0,r6,r0
0x080023EE 3FF8      SUBS     r7,r7,#0xF8
0x080023F0 3FF8      SUBS     r7,r7,#0xF8
0x080023F2 701C      STRB     r4,[r3,#0x00]
0x080023F4 600C      STR      r4,[r1,#0x00]
0x080023F6 600C      STR      r4,[r1,#0x00]
0x080023F8 C006      STM      r0!,{r1-r2}
0x080023FA C006      STM      r0!,{r1-r2}
0x080023FC 0000      MOVS     r0,r0
0x080023FE 0000      MOVS     r0,r0
0x08002400 0000      MOVS     r0,r0
0x08002402 0000      MOVS     r0,r0
0x08002404 0000      MOVS     r0,r0
0x08002406 0000      MOVS     r0,r0
0x08002408 0000      MOVS     r0,r0
0x0800240A 03FC      LSLS     r4,r7,#15
0x0800240C 0FFC      LSRS     r4,r7,#31
0x0800240E 0C0C      LSRS     r4,r1,#16
0x08002410 180C      ADDS     r4,r1,r0
0x08002412 180C      ADDS     r4,r1,r0
0x08002414 180C      ADDS     r4,r1,r0
0x08002416 0C0C      LSRS     r4,r1,#16
0x08002418 07FC      LSLS     r4,r7,#31
0x0800241A 0FFC      LSRS     r4,r7,#31
0x0800241C 180C      ADDS     r4,r1,r0
0x0800241E 300C      ADDS     r0,r0,#0x0C
0x08002420 300C      ADDS     r0,r0,#0x0C
0x08002422 300C      ADDS     r0,r0,#0x0C
0x08002424 300C      ADDS     r0,r0,#0x0C
0x08002426 180C      ADDS     r4,r1,r0
0x08002428 1FFC      SUBS     r4,r7,#7
0x0800242A 07FC      LSLS     r4,r7,#31
0x0800242C 0000      MOVS     r0,r0
0x0800242E 0000      MOVS     r0,r0
0x08002430 0000      MOVS     r0,r0
0x08002432 0000      MOVS     r0,r0
0x08002434 0000      MOVS     r0,r0
0x08002436 0000      MOVS     r0,r0
0x08002438 0000      MOVS     r0,r0
0x0800243A 07C0      LSLS     r0,r0,#31
0x0800243C 1FF0      SUBS     r0,r6,#7
0x0800243E 3838      SUBS     r0,r0,#0x38
0x08002440 301C      ADDS     r0,r0,#0x1C
0x08002442 700C      STRB     r4,[r1,#0x00]
0x08002444 6006      STR      r6,[r0,#0x00]
0x08002446 0006      MOVS     r6,r0
0x08002448 0006      MOVS     r6,r0
0x0800244A 0006      MOVS     r6,r0
0x0800244C 0006      MOVS     r6,r0
0x0800244E 0006      MOVS     r6,r0
0x08002450 0006      MOVS     r6,r0
0x08002452 6006      STR      r6,[r0,#0x00]
0x08002454 700C      STRB     r4,[r1,#0x00]
0x08002456 301C      ADDS     r0,r0,#0x1C
0x08002458 1FF0      SUBS     r0,r6,#7
0x0800245A 07E0      LSLS     r0,r4,#31
0x0800245C 0000      MOVS     r0,r0
0x0800245E 0000      MOVS     r0,r0
0x08002460 0000      MOVS     r0,r0
0x08002462 0000      MOVS     r0,r0
0x08002464 0000      MOVS     r0,r0
0x08002466 0000      MOVS     r0,r0
0x08002468 0000      MOVS     r0,r0
0x0800246A 03FE      LSLS     r6,r7,#15
0x0800246C 0FFE      LSRS     r6,r7,#31
0x0800246E 0E06      LSRS     r6,r0,#24
0x08002470 1806      ADDS     r6,r0,r0
0x08002472 1806      ADDS     r6,r0,r0
0x08002474 3006      ADDS     r0,r0,#0x06
0x08002476 3006      ADDS     r0,r0,#0x06
0x08002478 3006      ADDS     r0,r0,#0x06
0x0800247A 3006      ADDS     r0,r0,#0x06
0x0800247C 3006      ADDS     r0,r0,#0x06
0x0800247E 3006      ADDS     r0,r0,#0x06
0x08002480 3006      ADDS     r0,r0,#0x06
0x08002482 1806      ADDS     r6,r0,r0
0x08002484 1806      ADDS     r6,r0,r0
0x08002486 0E06      LSRS     r6,r0,#24
0x08002488 0FFE      LSRS     r6,r7,#31
0x0800248A 03FE      LSLS     r6,r7,#15
0x0800248C 0000      MOVS     r0,r0
0x0800248E 0000      MOVS     r0,r0
0x08002490 0000      MOVS     r0,r0
0x08002492 0000      MOVS     r0,r0
0x08002494 0000      MOVS     r0,r0
0x08002496 0000      MOVS     r0,r0
0x08002498 0000      MOVS     r0,r0
0x0800249A 3FFC      SUBS     r7,r7,#0xFC
0x0800249C 3FFC      SUBS     r7,r7,#0xFC
0x0800249E 000C      MOVS     r4,r1
0x080024A0 000C      MOVS     r4,r1
0x080024A2 000C      MOVS     r4,r1
0x080024A4 000C      MOVS     r4,r1
0x080024A6 000C      MOVS     r4,r1
0x080024A8 1FFC      SUBS     r4,r7,#7
0x080024AA 1FFC      SUBS     r4,r7,#7
0x080024AC 000C      MOVS     r4,r1
0x080024AE 000C      MOVS     r4,r1
0x080024B0 000C      MOVS     r4,r1
0x080024B2 000C      MOVS     r4,r1
0x080024B4 000C      MOVS     r4,r1
0x080024B6 000C      MOVS     r4,r1
0x080024B8 3FFC      SUBS     r7,r7,#0xFC
0x080024BA 3FFC      SUBS     r7,r7,#0xFC
0x080024BC 0000      MOVS     r0,r0
0x080024BE 0000      MOVS     r0,r0
0x080024C0 0000      MOVS     r0,r0
0x080024C2 0000      MOVS     r0,r0
0x080024C4 0000      MOVS     r0,r0
0x080024C6 0000      MOVS     r0,r0
0x080024C8 0000      MOVS     r0,r0
0x080024CA 3FF8      SUBS     r7,r7,#0xF8
0x080024CC 3FF8      SUBS     r7,r7,#0xF8
0x080024CE 0018      MOVS     r0,r3
0x080024D0 0018      MOVS     r0,r3
0x080024D2 0018      MOVS     r0,r3
0x080024D4 0018      MOVS     r0,r3
0x080024D6 0018      MOVS     r0,r3
0x080024D8 1FF8      SUBS     r0,r7,#7
0x080024DA 1FF8      SUBS     r0,r7,#7
0x080024DC 0018      MOVS     r0,r3
0x080024DE 0018      MOVS     r0,r3
0x080024E0 0018      MOVS     r0,r3
0x080024E2 0018      MOVS     r0,r3
0x080024E4 0018      MOVS     r0,r3
0x080024E6 0018      MOVS     r0,r3
0x080024E8 0018      MOVS     r0,r3
0x080024EA 0018      MOVS     r0,r3
0x080024EC 0000      MOVS     r0,r0
0x080024EE 0000      MOVS     r0,r0
0x080024F0 0000      MOVS     r0,r0
0x080024F2 0000      MOVS     r0,r0
0x080024F4 0000      MOVS     r0,r0
0x080024F6 0000      MOVS     r0,r0
0x080024F8 0000      MOVS     r0,r0
0x080024FA 0FE0      LSRS     r0,r4,#31
0x080024FC 3FF8      SUBS     r7,r7,#0xF8
0x080024FE 783C      LDRB     r4,[r7,#0x00]
0x08002500 600E      STR      r6,[r1,#0x00]
0x08002502 E006      B        0x08002512
0x08002504 C007      STM      r0!,{r0-r2}
0x08002506 0003      MOVS     r3,r0
0x08002508 0003      MOVS     r3,r0
0x0800250A FE03FE03  CDP2     P14,0x00,pc,C3,C3
0x0800250E C003      STM      r0!,{r0-r1}
0x08002510 C007      STM      r0!,{r0-r2}
0x08002512 C006      STM      r0!,{r1-r2}
0x08002514 C00E      STM      r0!,{r1-r3}
0x08002516 F03C3FF8  BICS     pc,r12,#0xF8F8F8F8
0x0800251A 0FE0      LSRS     r0,r4,#31
0x0800251C 0000      MOVS     r0,r0
0x0800251E 0000      MOVS     r0,r0
0x08002520 0000      MOVS     r0,r0
0x08002522 0000      MOVS     r0,r0
0x08002524 0000      MOVS     r0,r0
0x08002526 0000      MOVS     r0,r0
0x08002528 0000      MOVS     r0,r0
0x0800252A 300C      ADDS     r0,r0,#0x0C
0x0800252C 300C      ADDS     r0,r0,#0x0C
0x0800252E 300C      ADDS     r0,r0,#0x0C
0x08002530 300C      ADDS     r0,r0,#0x0C
0x08002532 300C      ADDS     r0,r0,#0x0C
0x08002534 300C      ADDS     r0,r0,#0x0C
0x08002536 300C      ADDS     r0,r0,#0x0C
0x08002538 3FFC      SUBS     r7,r7,#0xFC
0x0800253A 3FFC      SUBS     r7,r7,#0xFC
0x0800253C 300C      ADDS     r0,r0,#0x0C
0x0800253E 300C      ADDS     r0,r0,#0x0C
0x08002540 300C      ADDS     r0,r0,#0x0C
0x08002542 300C      ADDS     r0,r0,#0x0C
0x08002544 300C      ADDS     r0,r0,#0x0C
0x08002546 300C      ADDS     r0,r0,#0x0C
0x08002548 300C      ADDS     r0,r0,#0x0C
0x0800254A 300C      ADDS     r0,r0,#0x0C
0x0800254C 0000      MOVS     r0,r0
0x0800254E 0000      MOVS     r0,r0
0x08002550 0000      MOVS     r0,r0
0x08002552 0000      MOVS     r0,r0
0x08002554 0000      MOVS     r0,r0
0x08002556 0000      MOVS     r0,r0
0x08002558 0000      MOVS     r0,r0
0x0800255A 0180      LSLS     r0,r0,#6
0x0800255C 0180      LSLS     r0,r0,#6
0x0800255E 0180      LSLS     r0,r0,#6
0x08002560 0180      LSLS     r0,r0,#6
0x08002562 0180      LSLS     r0,r0,#6
0x08002564 0180      LSLS     r0,r0,#6
0x08002566 0180      LSLS     r0,r0,#6
0x08002568 0180      LSLS     r0,r0,#6
0x0800256A 0180      LSLS     r0,r0,#6
0x0800256C 0180      LSLS     r0,r0,#6
0x0800256E 0180      LSLS     r0,r0,#6
0x08002570 0180      LSLS     r0,r0,#6
0x08002572 0180      LSLS     r0,r0,#6
0x08002574 0180      LSLS     r0,r0,#6
0x08002576 0180      LSLS     r0,r0,#6
0x08002578 0180      LSLS     r0,r0,#6
0x0800257A 0180      LSLS     r0,r0,#6
0x0800257C 0000      MOVS     r0,r0
0x0800257E 0000      MOVS     r0,r0
0x08002580 0000      MOVS     r0,r0
0x08002582 0000      MOVS     r0,r0
0x08002584 0000      MOVS     r0,r0
0x08002586 0000      MOVS     r0,r0
0x08002588 0000      MOVS     r0,r0
0x0800258A 0600      LSLS     r0,r0,#24
0x0800258C 0600      LSLS     r0,r0,#24
0x0800258E 0600      LSLS     r0,r0,#24
0x08002590 0600      LSLS     r0,r0,#24
0x08002592 0600      LSLS     r0,r0,#24
0x08002594 0600      LSLS     r0,r0,#24
0x08002596 0600      LSLS     r0,r0,#24
0x08002598 0600      LSLS     r0,r0,#24
0x0800259A 0600      LSLS     r0,r0,#24
0x0800259C 0600      LSLS     r0,r0,#24
0x0800259E 0600      LSLS     r0,r0,#24
0x080025A0 0600      LSLS     r0,r0,#24
0x080025A2 0618      LSLS     r0,r3,#24
0x080025A4 0618      LSLS     r0,r3,#24
0x080025A6 0738      LSLS     r0,r7,#28
0x080025A8 03F0      LSLS     r0,r6,#15
0x080025AA 01E0      LSLS     r0,r4,#7
0x080025AC 0000      MOVS     r0,r0
0x080025AE 0000      MOVS     r0,r0
0x080025B0 0000      MOVS     r0,r0
0x080025B2 0000      MOVS     r0,r0
0x080025B4 0000      MOVS     r0,r0
0x080025B6 0000      MOVS     r0,r0
0x080025B8 0000      MOVS     r0,r0
0x080025BA 3006      ADDS     r0,r0,#0x06
0x080025BC 1806      ADDS     r6,r0,r0
0x080025BE 0C06      LSRS     r6,r0,#16
0x080025C0 0606      LSLS     r6,r0,#24
0x080025C2 0306      LSLS     r6,r0,#12
0x080025C4 0186      LSLS     r6,r0,#6
0x080025C6 00C6      LSLS     r6,r0,#3
0x080025C8 0066      LSLS     r6,r4,#1
0x080025CA 0076      LSLS     r6,r6,#1
0x080025CC 00DE      LSLS     r6,r3,#3
0x080025CE 018E      LSLS     r6,r1,#6
0x080025D0 0306      LSLS     r6,r0,#12
0x080025D2 0606      LSLS     r6,r0,#24
0x080025D4 0C06      LSRS     r6,r0,#16
0x080025D6 1806      ADDS     r6,r0,r0
0x080025D8 3006      ADDS     r0,r0,#0x06
0x080025DA 6006      STR      r6,[r0,#0x00]
0x080025DC 0000      MOVS     r0,r0
0x080025DE 0000      MOVS     r0,r0
0x080025E0 0000      MOVS     r0,r0
0x080025E2 0000      MOVS     r0,r0
0x080025E4 0000      MOVS     r0,r0
0x080025E6 0000      MOVS     r0,r0
0x080025E8 0000      MOVS     r0,r0
0x080025EA 0018      MOVS     r0,r3
0x080025EC 0018      MOVS     r0,r3
0x080025EE 0018      MOVS     r0,r3
0x080025F0 0018      MOVS     r0,r3
0x080025F2 0018      MOVS     r0,r3
0x080025F4 0018      MOVS     r0,r3
0x080025F6 0018      MOVS     r0,r3
0x080025F8 0018      MOVS     r0,r3
0x080025FA 0018      MOVS     r0,r3
0x080025FC 0018      MOVS     r0,r3
0x080025FE 0018      MOVS     r0,r3
0x08002600 0018      MOVS     r0,r3
0x08002602 0018      MOVS     r0,r3
0x08002604 0018      MOVS     r0,r3
0x08002606 0018      MOVS     r0,r3
0x08002608 1FF8      SUBS     r0,r7,#7
0x0800260A 1FF8      SUBS     r0,r7,#7
0x0800260C 0000      MOVS     r0,r0
0x0800260E 0000      MOVS     r0,r0
0x08002610 0000      MOVS     r0,r0
0x08002612 0000      MOVS     r0,r0
0x08002614 0000      MOVS     r0,r0
0x08002616 0000      MOVS     r0,r0
0x08002618 0000      MOVS     r0,r0
0x0800261A E00E      B        0x0800263A
0x0800261C F01EF01E  BL.W     0x0842065C
0x08002620 F01ED836  BL.W     0x08820690
0x08002624 D836      BHI      0x08002694
0x08002626 D836      BHI      0x08002696
0x08002628 D836      BHI      0x08002698
0x0800262A CC66      LDM      r4!,{r1-r2,r5-r6}
0x0800262C CC66      LDM      r4!,{r1-r2,r5-r6}
0x0800262E CC66      LDM      r4!,{r1-r2,r5-r6}
0x08002630 C6C6      STM      r6!,{r1-r2,r6-r7}
0x08002632 C6C6      STM      r6!,{r1-r2,r6-r7}
0x08002634 C6C6      STM      r6!,{r1-r2,r6-r7}
0x08002636 C6C6      STM      r6!,{r1-r2,r6-r7}
0x08002638 C386      STM      r3!,{r1-r2,r7}
0x0800263A C386      STM      r3!,{r1-r2,r7}
0x0800263C 0000      MOVS     r0,r0
0x0800263E 0000      MOVS     r0,r0
0x08002640 0000      MOVS     r0,r0
0x08002642 0000      MOVS     r0,r0
0x08002644 0000      MOVS     r0,r0
0x08002646 0000      MOVS     r0,r0
0x08002648 0000      MOVS     r0,r0
0x0800264A 300C      ADDS     r0,r0,#0x0C
0x0800264C 301C      ADDS     r0,r0,#0x1C
0x0800264E 303C      ADDS     r0,r0,#0x3C
0x08002650 303C      ADDS     r0,r0,#0x3C
0x08002652 306C      ADDS     r0,r0,#0x6C
0x08002654 306C      ADDS     r0,r0,#0x6C
0x08002656 30CC      ADDS     r0,r0,#0xCC
0x08002658 30CC      ADDS     r0,r0,#0xCC
0x0800265A 318C      ADDS     r1,r1,#0x8C
0x0800265C 330C      ADDS     r3,r3,#0x0C
0x0800265E 330C      ADDS     r3,r3,#0x0C
0x08002660 360C      ADDS     r6,r6,#0x0C
0x08002662 360C      ADDS     r6,r6,#0x0C
0x08002664 3C0C      SUBS     r4,r4,#0x0C
0x08002666 3C0C      SUBS     r4,r4,#0x0C
0x08002668 380C      SUBS     r0,r0,#0x0C
0x0800266A 300C      ADDS     r0,r0,#0x0C
0x0800266C 0000      MOVS     r0,r0
0x0800266E 0000      MOVS     r0,r0
0x08002670 0000      MOVS     r0,r0
0x08002672 0000      MOVS     r0,r0
0x08002674 0000      MOVS     r0,r0
0x08002676 0000      MOVS     r0,r0
0x08002678 0000      MOVS     r0,r0
0x0800267A 07E0      LSLS     r0,r4,#31
0x0800267C 1FF8      SUBS     r0,r7,#7
0x0800267E 381C      SUBS     r0,r0,#0x1C
0x08002680 700E      STRB     r6,[r1,#0x00]
0x08002682 6006      STR      r6,[r0,#0x00]
0x08002684 C003      STM      r0!,{r0-r1}
0x08002686 C003      STM      r0!,{r0-r1}
0x08002688 C003      STM      r0!,{r0-r1}
0x0800268A C003      STM      r0!,{r0-r1}
0x0800268C C003      STM      r0!,{r0-r1}
0x0800268E C003      STM      r0!,{r0-r1}
0x08002690 C003      STM      r0!,{r0-r1}
0x08002692 6006      STR      r6,[r0,#0x00]
0x08002694 700E      STRB     r6,[r1,#0x00]
0x08002696 381C      SUBS     r0,r0,#0x1C
0x08002698 1FF8      SUBS     r0,r7,#7
0x0800269A 07E0      LSLS     r0,r4,#31
0x0800269C 0000      MOVS     r0,r0
0x0800269E 0000      MOVS     r0,r0
0x080026A0 0000      MOVS     r0,r0
0x080026A2 0000      MOVS     r0,r0
0x080026A4 0000      MOVS     r0,r0
0x080026A6 0000      MOVS     r0,r0
0x080026A8 0000      MOVS     r0,r0
0x080026AA 0FFC      LSRS     r4,r7,#31
0x080026AC 1FFC      SUBS     r4,r7,#7
0x080026AE 380C      SUBS     r0,r0,#0x0C
0x080026B0 300C      ADDS     r0,r0,#0x0C
0x080026B2 300C      ADDS     r0,r0,#0x0C
0x080026B4 300C      ADDS     r0,r0,#0x0C
0x080026B6 300C      ADDS     r0,r0,#0x0C
0x080026B8 180C      ADDS     r4,r1,r0
0x080026BA 1FFC      SUBS     r4,r7,#7
0x080026BC 07FC      LSLS     r4,r7,#31
0x080026BE 000C      MOVS     r4,r1
0x080026C0 000C      MOVS     r4,r1
0x080026C2 000C      MOVS     r4,r1
0x080026C4 000C      MOVS     r4,r1
0x080026C6 000C      MOVS     r4,r1
0x080026C8 000C      MOVS     r4,r1
0x080026CA 000C      MOVS     r4,r1
0x080026CC 0000      MOVS     r0,r0
0x080026CE 0000      MOVS     r0,r0
0x080026D0 0000      MOVS     r0,r0
0x080026D2 0000      MOVS     r0,r0
0x080026D4 0000      MOVS     r0,r0
0x080026D6 0000      MOVS     r0,r0
0x080026D8 0000      MOVS     r0,r0
0x080026DA 07E0      LSLS     r0,r4,#31
0x080026DC 1FF8      SUBS     r0,r7,#7
0x080026DE 381C      SUBS     r0,r0,#0x1C
0x080026E0 700E      STRB     r6,[r1,#0x00]
0x080026E2 6006      STR      r6,[r0,#0x00]
0x080026E4 E003      B        0x080026EE
0x080026E6 C003      STM      r0!,{r0-r1}
0x080026E8 C003      STM      r0!,{r0-r1}
0x080026EA C003      STM      r0!,{r0-r1}
0x080026EC C003      STM      r0!,{r0-r1}
0x080026EE C003      STM      r0!,{r0-r1}
0x080026F0 E007      B        0x08002702
0x080026F2 6306      STR      r6,[r0,#0x30]
0x080026F4 3F0E      SUBS     r7,r7,#0x0E
0x080026F6 3C1C      SUBS     r4,r4,#0x1C
0x080026F8 3FF8      SUBS     r7,r7,#0xF8
0x080026FA F7E0C000  DCD      0xF7E0C000   ; ? Undefined
0x080026FE 0000      MOVS     r0,r0
0x08002700 0000      MOVS     r0,r0
0x08002702 0000      MOVS     r0,r0
0x08002704 0000      MOVS     r0,r0
0x08002706 0000      MOVS     r0,r0
0x08002708 0000      MOVS     r0,r0
0x0800270A 0FFE      LSRS     r6,r7,#31
0x0800270C 1FFE      SUBS     r6,r7,#7
0x0800270E 3806      SUBS     r0,r0,#0x06
0x08002710 3006      ADDS     r0,r0,#0x06
0x08002712 3006      ADDS     r0,r0,#0x06
0x08002714 3006      ADDS     r0,r0,#0x06
0x08002716 3806      SUBS     r0,r0,#0x06
0x08002718 1FFE      SUBS     r6,r7,#7
0x0800271A 07FE      LSLS     r6,r7,#31
0x0800271C 0306      LSLS     r6,r0,#12
0x0800271E 0606      LSLS     r6,r0,#24
0x08002720 0C06      LSRS     r6,r0,#16
0x08002722 1806      ADDS     r6,r0,r0
0x08002724 1806      ADDS     r6,r0,r0
0x08002726 3006      ADDS     r0,r0,#0x06
0x08002728 3006      ADDS     r0,r0,#0x06
0x0800272A 6006      STR      r6,[r0,#0x00]
0x0800272C 0000      MOVS     r0,r0
0x0800272E 0000      MOVS     r0,r0
0x08002730 0000      MOVS     r0,r0
0x08002732 0000      MOVS     r0,r0
0x08002734 0000      MOVS     r0,r0
0x08002736 0000      MOVS     r0,r0
0x08002738 0000      MOVS     r0,r0
0x0800273A 03E0      LSLS     r0,r4,#15
0x0800273C 0FF8      LSRS     r0,r7,#31
0x0800273E 0C1C      LSRS     r4,r3,#16
0x08002740 180C      ADDS     r4,r1,r0
0x08002742 180C      ADDS     r4,r1,r0
0x08002744 000C      MOVS     r4,r1
0x08002746 001C      MOVS     r4,r3
0x08002748 03F8      LSLS     r0,r7,#15
0x0800274A 0FE0      LSRS     r0,r4,#31
0x0800274C 1E00      SUBS     r0,r0,#0
0x0800274E 3800      SUBS     r0,r0,#0x00
0x08002750 3006      ADDS     r0,r0,#0x06
0x08002752 3006      ADDS     r0,r0,#0x06
0x08002754 300E      ADDS     r0,r0,#0x0E
0x08002756 1C1C      ADDS     r4,r3,#0
0x08002758 0FF8      LSRS     r0,r7,#31
0x0800275A 07E0      LSLS     r0,r4,#31
0x0800275C 0000      MOVS     r0,r0
0x0800275E 0000      MOVS     r0,r0
0x08002760 0000      MOVS     r0,r0
0x08002762 0000      MOVS     r0,r0
0x08002764 0000      MOVS     r0,r0
0x08002766 0000      MOVS     r0,r0
0x08002768 0000      MOVS     r0,r0
0x0800276A 7FFE      LDRB     r6,[r7,#0x1F]
0x0800276C 7FFE      LDRB     r6,[r7,#0x1F]
0x0800276E 0180      LSLS     r0,r0,#6
0x08002770 0180      LSLS     r0,r0,#6
0x08002772 0180      LSLS     r0,r0,#6
0x08002774 0180      LSLS     r0,r0,#6
0x08002776 0180      LSLS     r0,r0,#6
0x08002778 0180      LSLS     r0,r0,#6
0x0800277A 0180      LSLS     r0,r0,#6
0x0800277C 0180      LSLS     r0,r0,#6
0x0800277E 0180      LSLS     r0,r0,#6
0x08002780 0180      LSLS     r0,r0,#6
0x08002782 0180      LSLS     r0,r0,#6
0x08002784 0180      LSLS     r0,r0,#6
0x08002786 0180      LSLS     r0,r0,#6
0x08002788 0180      LSLS     r0,r0,#6
0x0800278A 0180      LSLS     r0,r0,#6
0x0800278C 0000      MOVS     r0,r0
0x0800278E 0000      MOVS     r0,r0
0x08002790 0000      MOVS     r0,r0
0x08002792 0000      MOVS     r0,r0
0x08002794 0000      MOVS     r0,r0
0x08002796 0000      MOVS     r0,r0
0x08002798 0000      MOVS     r0,r0
0x0800279A 300C      ADDS     r0,r0,#0x0C
0x0800279C 300C      ADDS     r0,r0,#0x0C
0x0800279E 300C      ADDS     r0,r0,#0x0C
0x080027A0 300C      ADDS     r0,r0,#0x0C
0x080027A2 300C      ADDS     r0,r0,#0x0C
0x080027A4 300C      ADDS     r0,r0,#0x0C
0x080027A6 300C      ADDS     r0,r0,#0x0C
0x080027A8 300C      ADDS     r0,r0,#0x0C
0x080027AA 300C      ADDS     r0,r0,#0x0C
0x080027AC 300C      ADDS     r0,r0,#0x0C
0x080027AE 300C      ADDS     r0,r0,#0x0C
0x080027B0 300C      ADDS     r0,r0,#0x0C
0x080027B2 300C      ADDS     r0,r0,#0x0C
0x080027B4 300C      ADDS     r0,r0,#0x0C
0x080027B6 1818      ADDS     r0,r3,r0
0x080027B8 1FF8      SUBS     r0,r7,#7
0x080027BA 07E0      LSLS     r0,r4,#31
0x080027BC 0000      MOVS     r0,r0
0x080027BE 0000      MOVS     r0,r0
0x080027C0 0000      MOVS     r0,r0
0x080027C2 0000      MOVS     r0,r0
0x080027C4 0000      MOVS     r0,r0
0x080027C6 0000      MOVS     r0,r0
0x080027C8 0000      MOVS     r0,r0
0x080027CA 6003      STR      r3,[r0,#0x00]
0x080027CC 3006      ADDS     r0,r0,#0x06
0x080027CE 3006      ADDS     r0,r0,#0x06
0x080027D0 3006      ADDS     r0,r0,#0x06
0x080027D2 180C      ADDS     r4,r1,r0
0x080027D4 180C      ADDS     r4,r1,r0
0x080027D6 180C      ADDS     r4,r1,r0
0x080027D8 0C18      LSRS     r0,r3,#16
0x080027DA 0C18      LSRS     r0,r3,#16
0x080027DC 0E38      LSRS     r0,r7,#24
0x080027DE 0630      LSLS     r0,r6,#24
0x080027E0 0630      LSLS     r0,r6,#24
0x080027E2 0770      LSLS     r0,r6,#29
0x080027E4 0360      LSLS     r0,r4,#13
0x080027E6 0360      LSLS     r0,r4,#13
0x080027E8 01C0      LSLS     r0,r0,#7
0x080027EA 01C0      LSLS     r0,r0,#7
0x080027EC 0000      MOVS     r0,r0
0x080027EE 0000      MOVS     r0,r0
0x080027F0 0000      MOVS     r0,r0
0x080027F2 0000      MOVS     r0,r0
0x080027F4 0000      MOVS     r0,r0
0x080027F6 0000      MOVS     r0,r0
0x080027F8 0000      MOVS     r0,r0
0x080027FA 6003      STR      r3,[r0,#0x00]
0x080027FC 61C3      STR      r3,[r0,#0x1C]
0x080027FE 61C3      STR      r3,[r0,#0x1C]
0x08002800 61C3      STR      r3,[r0,#0x1C]
0x08002802 3366      ADDS     r3,r3,#0x66
0x08002804 3366      ADDS     r3,r3,#0x66
0x08002806 3366      ADDS     r3,r3,#0x66
0x08002808 3366      ADDS     r3,r3,#0x66
0x0800280A 3366      ADDS     r3,r3,#0x66
0x0800280C 3366      ADDS     r3,r3,#0x66
0x0800280E 1B6C      SUBS     r4,r5,r5
0x08002810 1B6C      SUBS     r4,r5,r5
0x08002812 1B6C      SUBS     r4,r5,r5
0x08002814 1A2C      SUBS     r4,r5,r0
0x08002816 1E3C      SUBS     r4,r7,#0
0x08002818 0E38      LSRS     r0,r7,#24
0x0800281A 0E38      LSRS     r0,r7,#24
0x0800281C 0000      MOVS     r0,r0
0x0800281E 0000      MOVS     r0,r0
0x08002820 0000      MOVS     r0,r0
0x08002822 0000      MOVS     r0,r0
0x08002824 0000      MOVS     r0,r0
0x08002826 0000      MOVS     r0,r0
0x08002828 0000      MOVS     r0,r0
0x0800282A E00F      B        0x0800284C
0x0800282C 700C      STRB     r4,[r1,#0x00]
0x0800282E 3018      ADDS     r0,r0,#0x18
0x08002830 1830      ADDS     r0,r6,r0
0x08002832 0C70      LSRS     r0,r6,#17
0x08002834 0E60      LSRS     r0,r4,#25
0x08002836 07C0      LSLS     r0,r0,#31
0x08002838 0380      LSLS     r0,r0,#14
0x0800283A 0380      LSLS     r0,r0,#14
0x0800283C 03C0      LSLS     r0,r0,#15
0x0800283E 06E0      LSLS     r0,r4,#27
0x08002840 0C70      LSRS     r0,r6,#17
0x08002842 1C30      ADDS     r0,r6,#0
0x08002844 1818      ADDS     r0,r3,r0
0x08002846 300C      ADDS     r0,r0,#0x0C
0x08002848 600E      STR      r6,[r1,#0x00]
0x0800284A E007      B        0x0800285C
0x0800284C 0000      MOVS     r0,r0
0x0800284E 0000      MOVS     r0,r0
0x08002850 0000      MOVS     r0,r0
0x08002852 0000      MOVS     r0,r0
0x08002854 0000      MOVS     r0,r0
0x08002856 0000      MOVS     r0,r0
0x08002858 0000      MOVS     r0,r0
0x0800285A C003      STM      r0!,{r0-r1}
0x0800285C 6006      STR      r6,[r0,#0x00]
0x0800285E 300C      ADDS     r0,r0,#0x0C
0x08002860 381C      SUBS     r0,r0,#0x1C
0x08002862 1838      ADDS     r0,r7,r0
0x08002864 0C30      LSRS     r0,r6,#16
0x08002866 0660      LSLS     r0,r4,#25
0x08002868 07E0      LSLS     r0,r4,#31
0x0800286A 03C0      LSLS     r0,r0,#15
0x0800286C 0180      LSLS     r0,r0,#6
0x0800286E 0180      LSLS     r0,r0,#6
0x08002870 0180      LSLS     r0,r0,#6
0x08002872 0180      LSLS     r0,r0,#6
0x08002874 0180      LSLS     r0,r0,#6
0x08002876 0180      LSLS     r0,r0,#6
0x08002878 0180      LSLS     r0,r0,#6
0x0800287A 0180      LSLS     r0,r0,#6
0x0800287C 0000      MOVS     r0,r0
0x0800287E 0000      MOVS     r0,r0
0x08002880 0000      MOVS     r0,r0
0x08002882 0000      MOVS     r0,r0
0x08002884 0000      MOVS     r0,r0
0x08002886 0000      MOVS     r0,r0
0x08002888 0000      MOVS     r0,r0
0x0800288A 7FFC      LDRB     r4,[r7,#0x1F]
0x0800288C 7FFC      LDRB     r4,[r7,#0x1F]
0x0800288E 6000      STR      r0,[r0,#0x00]
0x08002890 3000      ADDS     r0,r0,#0x00
0x08002892 1800      ADDS     r0,r0,r0
0x08002894 0C00      LSRS     r0,r0,#16
0x08002896 0600      LSLS     r0,r0,#24
0x08002898 0300      LSLS     r0,r0,#12
0x0800289A 0180      LSLS     r0,r0,#6
0x0800289C 00C0      LSLS     r0,r0,#3
0x0800289E 0060      LSLS     r0,r4,#1
0x080028A0 0030      MOVS     r0,r6
0x080028A2 0018      MOVS     r0,r3
0x080028A4 000C      MOVS     r4,r1
0x080028A6 0006      MOVS     r6,r0
0x080028A8 7FFE      LDRB     r6,[r7,#0x1F]
0x080028AA 7FFE      LDRB     r6,[r7,#0x1F]
0x080028AC 0000      MOVS     r0,r0
0x080028AE 0000      MOVS     r0,r0
0x080028B0 0000      MOVS     r0,r0
0x080028B2 0000      MOVS     r0,r0
0x080028B4 0000      MOVS     r0,r0
0x080028B6 0000      MOVS     r0,r0
0x080028B8 0000      MOVS     r0,r0
0x080028BA 03E0      LSLS     r0,r4,#15
0x080028BC 03E0      LSLS     r0,r4,#15
0x080028BE 0060      LSLS     r0,r4,#1
0x080028C0 0060      LSLS     r0,r4,#1
0x080028C2 0060      LSLS     r0,r4,#1
0x080028C4 0060      LSLS     r0,r4,#1
0x080028C6 0060      LSLS     r0,r4,#1
0x080028C8 0060      LSLS     r0,r4,#1
0x080028CA 0060      LSLS     r0,r4,#1
0x080028CC 0060      LSLS     r0,r4,#1
0x080028CE 0060      LSLS     r0,r4,#1
0x080028D0 0060      LSLS     r0,r4,#1
0x080028D2 0060      LSLS     r0,r4,#1
0x080028D4 0060      LSLS     r0,r4,#1
0x080028D6 0060      LSLS     r0,r4,#1
0x080028D8 0060      LSLS     r0,r4,#1
0x080028DA 0060      LSLS     r0,r4,#1
0x080028DC 0060      LSLS     r0,r4,#1
0x080028DE 0060      LSLS     r0,r4,#1
0x080028E0 0060      LSLS     r0,r4,#1
0x080028E2 03E0      LSLS     r0,r4,#15
0x080028E4 03E0      LSLS     r0,r4,#15
0x080028E6 0000      MOVS     r0,r0
0x080028E8 0000      MOVS     r0,r0
0x080028EA 0030      MOVS     r0,r6
0x080028EC 0030      MOVS     r0,r6
0x080028EE 0060      LSLS     r0,r4,#1
0x080028F0 0060      LSLS     r0,r4,#1
0x080028F2 0060      LSLS     r0,r4,#1
0x080028F4 00C0      LSLS     r0,r0,#3
0x080028F6 00C0      LSLS     r0,r0,#3
0x080028F8 00C0      LSLS     r0,r0,#3
0x080028FA 01C0      LSLS     r0,r0,#7
0x080028FC 0180      LSLS     r0,r0,#6
0x080028FE 0180      LSLS     r0,r0,#6
0x08002900 0180      LSLS     r0,r0,#6
0x08002902 0300      LSLS     r0,r0,#12
0x08002904 0300      LSLS     r0,r0,#12
0x08002906 0300      LSLS     r0,r0,#12
0x08002908 0600      LSLS     r0,r0,#24
0x0800290A 0600      LSLS     r0,r0,#24
0x0800290C 0000      MOVS     r0,r0
0x0800290E 0000      MOVS     r0,r0
0x08002910 0000      MOVS     r0,r0
0x08002912 0000      MOVS     r0,r0
0x08002914 0000      MOVS     r0,r0
0x08002916 0000      MOVS     r0,r0
0x08002918 0000      MOVS     r0,r0
0x0800291A 03E0      LSLS     r0,r4,#15
0x0800291C 03E0      LSLS     r0,r4,#15
0x0800291E 0300      LSLS     r0,r0,#12
0x08002920 0300      LSLS     r0,r0,#12
0x08002922 0300      LSLS     r0,r0,#12
0x08002924 0300      LSLS     r0,r0,#12
0x08002926 0300      LSLS     r0,r0,#12
0x08002928 0300      LSLS     r0,r0,#12
0x0800292A 0300      LSLS     r0,r0,#12
0x0800292C 0300      LSLS     r0,r0,#12
0x0800292E 0300      LSLS     r0,r0,#12
0x08002930 0300      LSLS     r0,r0,#12
0x08002932 0300      LSLS     r0,r0,#12
0x08002934 0300      LSLS     r0,r0,#12
0x08002936 0300      LSLS     r0,r0,#12
0x08002938 0300      LSLS     r0,r0,#12
0x0800293A 0300      LSLS     r0,r0,#12
0x0800293C 0300      LSLS     r0,r0,#12
0x0800293E 0300      LSLS     r0,r0,#12
0x08002940 0300      LSLS     r0,r0,#12
0x08002942 03E0      LSLS     r0,r4,#15
0x08002944 03E0      LSLS     r0,r4,#15
0x08002946 0000      MOVS     r0,r0
0x08002948 0000      MOVS     r0,r0
0x0800294A 0000      MOVS     r0,r0
0x0800294C 01C0      LSLS     r0,r0,#7
0x0800294E 01C0      LSLS     r0,r0,#7
0x08002950 0360      LSLS     r0,r4,#13
0x08002952 0360      LSLS     r0,r4,#13
0x08002954 0360      LSLS     r0,r4,#13
0x08002956 0630      LSLS     r0,r6,#24
0x08002958 0630      LSLS     r0,r6,#24
0x0800295A 0C18      LSRS     r0,r3,#16
0x0800295C 0C18      LSRS     r0,r3,#16
0x0800295E 0000      MOVS     r0,r0
0x08002960 0000      MOVS     r0,r0
0x08002962 0000      MOVS     r0,r0
0x08002964 0000      MOVS     r0,r0
0x08002966 0000      MOVS     r0,r0
0x08002968 0000      MOVS     r0,r0
0x0800296A 0000      MOVS     r0,r0
0x0800296C 0000      MOVS     r0,r0
0x0800296E 0000      MOVS     r0,r0
0x08002970 0000      MOVS     r0,r0
0x08002972 0000      MOVS     r0,r0
0x08002974 0000      MOVS     r0,r0
0x08002976 0000      MOVS     r0,r0
0x08002978 0000      MOVS     r0,r0
0x0800297A 0000      MOVS     r0,r0
0x0800297C 0000      MOVS     r0,r0
0x0800297E 0000      MOVS     r0,r0
0x08002980 0000      MOVS     r0,r0
0x08002982 0000      MOVS     r0,r0
0x08002984 0000      MOVS     r0,r0
0x08002986 0000      MOVS     r0,r0
0x08002988 0000      MOVS     r0,r0
0x0800298A 0000      MOVS     r0,r0
0x0800298C 0000      MOVS     r0,r0
0x0800298E 0000      MOVS     r0,r0
0x08002990 0000      MOVS     r0,r0
0x08002992 0000      MOVS     r0,r0
0x08002994 0000      MOVS     r0,r0
0x08002996 0000      MOVS     r0,r0
0x08002998 0000      MOVS     r0,r0
0x0800299A FFFFFFFF  DCD      0xFFFFFFFF   ; ? Undefined
0x0800299E 0000      MOVS     r0,r0
0x080029A0 0000      MOVS     r0,r0
0x080029A2 0000      MOVS     r0,r0
0x080029A4 0000      MOVS     r0,r0
0x080029A6 0000      MOVS     r0,r0
0x080029A8 0000      MOVS     r0,r0
0x080029AA 000C      MOVS     r4,r1
0x080029AC 000C      MOVS     r4,r1
0x080029AE 000C      MOVS     r4,r1
0x080029B0 000C      MOVS     r4,r1
0x080029B2 000C      MOVS     r4,r1
0x080029B4 000C      MOVS     r4,r1
0x080029B6 0000      MOVS     r0,r0
0x080029B8 0000      MOVS     r0,r0
0x080029BA 0000      MOVS     r0,r0
0x080029BC 0000      MOVS     r0,r0
0x080029BE 0000      MOVS     r0,r0
0x080029C0 0000      MOVS     r0,r0
0x080029C2 0000      MOVS     r0,r0
0x080029C4 0000      MOVS     r0,r0
0x080029C6 0000      MOVS     r0,r0
0x080029C8 0000      MOVS     r0,r0
0x080029CA 0000      MOVS     r0,r0
0x080029CC 0000      MOVS     r0,r0
0x080029CE 0000      MOVS     r0,r0
0x080029D0 0000      MOVS     r0,r0
0x080029D2 0000      MOVS     r0,r0
0x080029D4 0000      MOVS     r0,r0
0x080029D6 0000      MOVS     r0,r0
0x080029D8 0000      MOVS     r0,r0
0x080029DA 0000      MOVS     r0,r0
0x080029DC 0000      MOVS     r0,r0
0x080029DE 0000      MOVS     r0,r0
0x080029E0 0000      MOVS     r0,r0
0x080029E2 0000      MOVS     r0,r0
0x080029E4 03F0      LSLS     r0,r6,#15
0x080029E6 07F8      LSLS     r0,r7,#31
0x080029E8 0C1C      LSRS     r4,r3,#16
0x080029EA 0C0C      LSRS     r4,r1,#16
0x080029EC 0F00      LSRS     r0,r0,#28
0x080029EE 0FF0      LSRS     r0,r6,#31
0x080029F0 0CF8      LSRS     r0,r7,#19
0x080029F2 0C0C      LSRS     r4,r1,#16
0x080029F4 0C0C      LSRS     r4,r1,#16
0x080029F6 0F1C      LSRS     r4,r3,#28
0x080029F8 0FF8      LSRS     r0,r7,#31
0x080029FA 18F0      ADDS     r0,r6,r3
0x080029FC 0000      MOVS     r0,r0
0x080029FE 0000      MOVS     r0,r0
0x08002A00 0000      MOVS     r0,r0
0x08002A02 0000      MOVS     r0,r0
0x08002A04 0000      MOVS     r0,r0
0x08002A06 0000      MOVS     r0,r0
0x08002A08 0000      MOVS     r0,r0
0x08002A0A 0018      MOVS     r0,r3
0x08002A0C 0018      MOVS     r0,r3
0x08002A0E 0018      MOVS     r0,r3
0x08002A10 0018      MOVS     r0,r3
0x08002A12 0018      MOVS     r0,r3
0x08002A14 03D8      LSLS     r0,r3,#15
0x08002A16 0FF8      LSRS     r0,r7,#31
0x08002A18 0C38      LSRS     r0,r7,#16
0x08002A1A 1818      ADDS     r0,r3,r0
0x08002A1C 1818      ADDS     r0,r3,r0
0x08002A1E 1818      ADDS     r0,r3,r0
0x08002A20 1818      ADDS     r0,r3,r0
0x08002A22 1818      ADDS     r0,r3,r0
0x08002A24 1818      ADDS     r0,r3,r0
0x08002A26 0C38      LSRS     r0,r7,#16
0x08002A28 0FF8      LSRS     r0,r7,#31
0x08002A2A 03D8      LSLS     r0,r3,#15
0x08002A2C 0000      MOVS     r0,r0
0x08002A2E 0000      MOVS     r0,r0
0x08002A30 0000      MOVS     r0,r0
0x08002A32 0000      MOVS     r0,r0
0x08002A34 0000      MOVS     r0,r0
0x08002A36 0000      MOVS     r0,r0
0x08002A38 0000      MOVS     r0,r0
0x08002A3A 0000      MOVS     r0,r0
0x08002A3C 0000      MOVS     r0,r0
0x08002A3E 0000      MOVS     r0,r0
0x08002A40 0000      MOVS     r0,r0
0x08002A42 0000      MOVS     r0,r0
0x08002A44 03C0      LSLS     r0,r0,#15
0x08002A46 07F0      LSLS     r0,r6,#31
0x08002A48 0E30      LSRS     r0,r6,#24
0x08002A4A 0C18      LSRS     r0,r3,#16
0x08002A4C 0018      MOVS     r0,r3
0x08002A4E 0018      MOVS     r0,r3
0x08002A50 0018      MOVS     r0,r3
0x08002A52 0018      MOVS     r0,r3
0x08002A54 0C18      LSRS     r0,r3,#16
0x08002A56 0E30      LSRS     r0,r6,#24
0x08002A58 07F0      LSLS     r0,r6,#31
0x08002A5A 03C0      LSLS     r0,r0,#15
0x08002A5C 0000      MOVS     r0,r0
0x08002A5E 0000      MOVS     r0,r0
0x08002A60 0000      MOVS     r0,r0
0x08002A62 0000      MOVS     r0,r0
0x08002A64 0000      MOVS     r0,r0
0x08002A66 0000      MOVS     r0,r0
0x08002A68 0000      MOVS     r0,r0
0x08002A6A 1800      ADDS     r0,r0,r0
0x08002A6C 1800      ADDS     r0,r0,r0
0x08002A6E 1800      ADDS     r0,r0,r0
0x08002A70 1800      ADDS     r0,r0,r0
0x08002A72 1800      ADDS     r0,r0,r0
0x08002A74 1BC0      SUBS     r0,r0,r7
0x08002A76 1FF0      SUBS     r0,r6,#7
0x08002A78 1C30      ADDS     r0,r6,#0
0x08002A7A 1818      ADDS     r0,r3,r0
0x08002A7C 1818      ADDS     r0,r3,r0
0x08002A7E 1818      ADDS     r0,r3,r0
0x08002A80 1818      ADDS     r0,r3,r0
0x08002A82 1818      ADDS     r0,r3,r0
0x08002A84 1818      ADDS     r0,r3,r0
0x08002A86 1C30      ADDS     r0,r6,#0
0x08002A88 1FF0      SUBS     r0,r6,#7
0x08002A8A 1BC0      SUBS     r0,r0,r7
0x08002A8C 0000      MOVS     r0,r0
0x08002A8E 0000      MOVS     r0,r0
0x08002A90 0000      MOVS     r0,r0
0x08002A92 0000      MOVS     r0,r0
0x08002A94 0000      MOVS     r0,r0
0x08002A96 0000      MOVS     r0,r0
0x08002A98 0000      MOVS     r0,r0
0x08002A9A 0000      MOVS     r0,r0
0x08002A9C 0000      MOVS     r0,r0
0x08002A9E 0000      MOVS     r0,r0
0x08002AA0 0000      MOVS     r0,r0
0x08002AA2 0000      MOVS     r0,r0
0x08002AA4 03C0      LSLS     r0,r0,#15
0x08002AA6 0FF0      LSRS     r0,r6,#31
0x08002AA8 0C30      LSRS     r0,r6,#16
0x08002AAA 1818      ADDS     r0,r3,r0
0x08002AAC 1FF8      SUBS     r0,r7,#7
0x08002AAE 1FF8      SUBS     r0,r7,#7
0x08002AB0 0018      MOVS     r0,r3
0x08002AB2 0018      MOVS     r0,r3
0x08002AB4 1838      ADDS     r0,r7,r0
0x08002AB6 1C30      ADDS     r0,r6,#0
0x08002AB8 0FF0      LSRS     r0,r6,#31
0x08002ABA 07C0      LSLS     r0,r0,#31
0x08002ABC 0000      MOVS     r0,r0
0x08002ABE 0000      MOVS     r0,r0
0x08002AC0 0000      MOVS     r0,r0
0x08002AC2 0000      MOVS     r0,r0
0x08002AC4 0000      MOVS     r0,r0
0x08002AC6 0000      MOVS     r0,r0
0x08002AC8 0000      MOVS     r0,r0
0x08002ACA 0F80      LSRS     r0,r0,#30
0x08002ACC 0FC0      LSRS     r0,r0,#31
0x08002ACE 00C0      LSLS     r0,r0,#3
0x08002AD0 00C0      LSLS     r0,r0,#3
0x08002AD2 00C0      LSLS     r0,r0,#3
0x08002AD4 07F0      LSLS     r0,r6,#31
0x08002AD6 07F0      LSLS     r0,r6,#31
0x08002AD8 00C0      LSLS     r0,r0,#3
0x08002ADA 00C0      LSLS     r0,r0,#3
0x08002ADC 00C0      LSLS     r0,r0,#3
0x08002ADE 00C0      LSLS     r0,r0,#3
0x08002AE0 00C0      LSLS     r0,r0,#3
0x08002AE2 00C0      LSLS     r0,r0,#3
0x08002AE4 00C0      LSLS     r0,r0,#3
0x08002AE6 00C0      LSLS     r0,r0,#3
0x08002AE8 00C0      LSLS     r0,r0,#3
0x08002AEA 00C0      LSLS     r0,r0,#3
0x08002AEC 0000      MOVS     r0,r0
0x08002AEE 0000      MOVS     r0,r0
0x08002AF0 0000      MOVS     r0,r0
0x08002AF2 0000      MOVS     r0,r0
0x08002AF4 0000      MOVS     r0,r0
0x08002AF6 0000      MOVS     r0,r0
0x08002AF8 0000      MOVS     r0,r0
0x08002AFA 0000      MOVS     r0,r0
0x08002AFC 0000      MOVS     r0,r0
0x08002AFE 0000      MOVS     r0,r0
0x08002B00 0000      MOVS     r0,r0
0x08002B02 0000      MOVS     r0,r0
0x08002B04 0DE0      LSRS     r0,r4,#23
0x08002B06 0FF8      LSRS     r0,r7,#31
0x08002B08 0E18      LSRS     r0,r3,#24
0x08002B0A 0C0C      LSRS     r4,r1,#16
0x08002B0C 0C0C      LSRS     r4,r1,#16
0x08002B0E 0C0C      LSRS     r4,r1,#16
0x08002B10 0C0C      LSRS     r4,r1,#16
0x08002B12 0C0C      LSRS     r4,r1,#16
0x08002B14 0C0C      LSRS     r4,r1,#16
0x08002B16 0E18      LSRS     r0,r3,#24
0x08002B18 0FF8      LSRS     r0,r7,#31
0x08002B1A 0DE0      LSRS     r0,r4,#23
0x08002B1C 0C00      LSRS     r0,r0,#16
0x08002B1E 0C0C      LSRS     r4,r1,#16
0x08002B20 061C      LSLS     r4,r3,#24
0x08002B22 07F8      LSLS     r0,r7,#31
0x08002B24 01F0      LSLS     r0,r6,#7
0x08002B26 0000      MOVS     r0,r0
0x08002B28 0000      MOVS     r0,r0
0x08002B2A 0018      MOVS     r0,r3
0x08002B2C 0018      MOVS     r0,r3
0x08002B2E 0018      MOVS     r0,r3
0x08002B30 0018      MOVS     r0,r3
0x08002B32 0018      MOVS     r0,r3
0x08002B34 07D8      LSLS     r0,r3,#31
0x08002B36 0FF8      LSRS     r0,r7,#31
0x08002B38 1C38      ADDS     r0,r7,#0
0x08002B3A 1818      ADDS     r0,r3,r0
0x08002B3C 1818      ADDS     r0,r3,r0
0x08002B3E 1818      ADDS     r0,r3,r0
0x08002B40 1818      ADDS     r0,r3,r0
0x08002B42 1818      ADDS     r0,r3,r0
0x08002B44 1818      ADDS     r0,r3,r0
0x08002B46 1818      ADDS     r0,r3,r0
0x08002B48 1818      ADDS     r0,r3,r0
0x08002B4A 1818      ADDS     r0,r3,r0
0x08002B4C 0000      MOVS     r0,r0
0x08002B4E 0000      MOVS     r0,r0
0x08002B50 0000      MOVS     r0,r0
0x08002B52 0000      MOVS     r0,r0
0x08002B54 0000      MOVS     r0,r0
0x08002B56 0000      MOVS     r0,r0
0x08002B58 0000      MOVS     r0,r0
0x08002B5A 00C0      LSLS     r0,r0,#3
0x08002B5C 00C0      LSLS     r0,r0,#3
0x08002B5E 0000      MOVS     r0,r0
0x08002B60 0000      MOVS     r0,r0
0x08002B62 0000      MOVS     r0,r0
0x08002B64 00C0      LSLS     r0,r0,#3
0x08002B66 00C0      LSLS     r0,r0,#3
0x08002B68 00C0      LSLS     r0,r0,#3
0x08002B6A 00C0      LSLS     r0,r0,#3
0x08002B6C 00C0      LSLS     r0,r0,#3
0x08002B6E 00C0      LSLS     r0,r0,#3
0x08002B70 00C0      LSLS     r0,r0,#3
0x08002B72 00C0      LSLS     r0,r0,#3
0x08002B74 00C0      LSLS     r0,r0,#3
0x08002B76 00C0      LSLS     r0,r0,#3
0x08002B78 00C0      LSLS     r0,r0,#3
0x08002B7A 00C0      LSLS     r0,r0,#3
0x08002B7C 0000      MOVS     r0,r0
0x08002B7E 0000      MOVS     r0,r0
0x08002B80 0000      MOVS     r0,r0
0x08002B82 0000      MOVS     r0,r0
0x08002B84 0000      MOVS     r0,r0
0x08002B86 0000      MOVS     r0,r0
0x08002B88 0000      MOVS     r0,r0
0x08002B8A 00C0      LSLS     r0,r0,#3
0x08002B8C 00C0      LSLS     r0,r0,#3
0x08002B8E 0000      MOVS     r0,r0
0x08002B90 0000      MOVS     r0,r0
0x08002B92 0000      MOVS     r0,r0
0x08002B94 00C0      LSLS     r0,r0,#3
0x08002B96 00C0      LSLS     r0,r0,#3
0x08002B98 00C0      LSLS     r0,r0,#3
0x08002B9A 00C0      LSLS     r0,r0,#3
0x08002B9C 00C0      LSLS     r0,r0,#3
0x08002B9E 00C0      LSLS     r0,r0,#3
0x08002BA0 00C0      LSLS     r0,r0,#3
0x08002BA2 00C0      LSLS     r0,r0,#3
0x08002BA4 00C0      LSLS     r0,r0,#3
0x08002BA6 00C0      LSLS     r0,r0,#3
0x08002BA8 00C0      LSLS     r0,r0,#3
0x08002BAA 00C0      LSLS     r0,r0,#3
0x08002BAC 00C0      LSLS     r0,r0,#3
0x08002BAE 00C0      LSLS     r0,r0,#3
0x08002BB0 00C0      LSLS     r0,r0,#3
0x08002BB2 00F8      LSLS     r0,r7,#3
0x08002BB4 0078      LSLS     r0,r7,#1
0x08002BB6 0000      MOVS     r0,r0
0x08002BB8 0000      MOVS     r0,r0
0x08002BBA 000C      MOVS     r4,r1
0x08002BBC 000C      MOVS     r4,r1
0x08002BBE 000C      MOVS     r4,r1
0x08002BC0 000C      MOVS     r4,r1
0x08002BC2 000C      MOVS     r4,r1
0x08002BC4 0C0C      LSRS     r4,r1,#16
0x08002BC6 060C      LSLS     r4,r1,#24
0x08002BC8 030C      LSLS     r4,r1,#12
0x08002BCA 018C      LSLS     r4,r1,#6
0x08002BCC 00CC      LSLS     r4,r1,#3
0x08002BCE 006C      LSLS     r4,r5,#1
0x08002BD0 00FC      LSLS     r4,r7,#3
0x08002BD2 019C      LSLS     r4,r3,#6
0x08002BD4 038C      LSLS     r4,r1,#14
0x08002BD6 030C      LSLS     r4,r1,#12
0x08002BD8 060C      LSLS     r4,r1,#24
0x08002BDA 0C0C      LSRS     r4,r1,#16
0x08002BDC 0000      MOVS     r0,r0
0x08002BDE 0000      MOVS     r0,r0
0x08002BE0 0000      MOVS     r0,r0
0x08002BE2 0000      MOVS     r0,r0
0x08002BE4 0000      MOVS     r0,r0
0x08002BE6 0000      MOVS     r0,r0
0x08002BE8 0000      MOVS     r0,r0
0x08002BEA 00C0      LSLS     r0,r0,#3
0x08002BEC 00C0      LSLS     r0,r0,#3
0x08002BEE 00C0      LSLS     r0,r0,#3
0x08002BF0 00C0      LSLS     r0,r0,#3
0x08002BF2 00C0      LSLS     r0,r0,#3
0x08002BF4 00C0      LSLS     r0,r0,#3
0x08002BF6 00C0      LSLS     r0,r0,#3
0x08002BF8 00C0      LSLS     r0,r0,#3
0x08002BFA 00C0      LSLS     r0,r0,#3
0x08002BFC 00C0      LSLS     r0,r0,#3
0x08002BFE 00C0      LSLS     r0,r0,#3
0x08002C00 00C0      LSLS     r0,r0,#3
0x08002C02 00C0      LSLS     r0,r0,#3
0x08002C04 00C0      LSLS     r0,r0,#3
0x08002C06 00C0      LSLS     r0,r0,#3
0x08002C08 00C0      LSLS     r0,r0,#3
0x08002C0A 00C0      LSLS     r0,r0,#3
0x08002C0C 0000      MOVS     r0,r0
0x08002C0E 0000      MOVS     r0,r0
0x08002C10 0000      MOVS     r0,r0
0x08002C12 0000      MOVS     r0,r0
0x08002C14 0000      MOVS     r0,r0
0x08002C16 0000      MOVS     r0,r0
0x08002C18 0000      MOVS     r0,r0
0x08002C1A 0000      MOVS     r0,r0
0x08002C1C 0000      MOVS     r0,r0
0x08002C1E 0000      MOVS     r0,r0
0x08002C20 0000      MOVS     r0,r0
0x08002C22 0000      MOVS     r0,r0
0x08002C24 3C7C      SUBS     r4,r4,#0x7C
0x08002C26 7EFF      LDRB     r7,[r7,#0x1B]
0x08002C28 E3C7      B        0x080033BA
0x08002C2A C183      STM      r1!,{r0-r1,r7}
0x08002C2C C183      STM      r1!,{r0-r1,r7}
0x08002C2E C183      STM      r1!,{r0-r1,r7}
0x08002C30 C183      STM      r1!,{r0-r1,r7}
0x08002C32 C183      STM      r1!,{r0-r1,r7}
0x08002C34 C183      STM      r1!,{r0-r1,r7}
0x08002C36 C183      STM      r1!,{r0-r1,r7}
0x08002C38 C183      STM      r1!,{r0-r1,r7}
0x08002C3A C183      STM      r1!,{r0-r1,r7}
0x08002C3C 0000      MOVS     r0,r0
0x08002C3E 0000      MOVS     r0,r0
0x08002C40 0000      MOVS     r0,r0
0x08002C42 0000      MOVS     r0,r0
0x08002C44 0000      MOVS     r0,r0
0x08002C46 0000      MOVS     r0,r0
0x08002C48 0000      MOVS     r0,r0
0x08002C4A 0000      MOVS     r0,r0
0x08002C4C 0000      MOVS     r0,r0
0x08002C4E 0000      MOVS     r0,r0
0x08002C50 0000      MOVS     r0,r0
0x08002C52 0000      MOVS     r0,r0
0x08002C54 0798      LSLS     r0,r3,#30
0x08002C56 0FF8      LSRS     r0,r7,#31
0x08002C58 1C38      ADDS     r0,r7,#0
0x08002C5A 1818      ADDS     r0,r3,r0
0x08002C5C 1818      ADDS     r0,r3,r0
0x08002C5E 1818      ADDS     r0,r3,r0
0x08002C60 1818      ADDS     r0,r3,r0
0x08002C62 1818      ADDS     r0,r3,r0
0x08002C64 1818      ADDS     r0,r3,r0
0x08002C66 1818      ADDS     r0,r3,r0
0x08002C68 1818      ADDS     r0,r3,r0
0x08002C6A 1818      ADDS     r0,r3,r0
0x08002C6C 0000      MOVS     r0,r0
0x08002C6E 0000      MOVS     r0,r0
0x08002C70 0000      MOVS     r0,r0
0x08002C72 0000      MOVS     r0,r0
0x08002C74 0000      MOVS     r0,r0
0x08002C76 0000      MOVS     r0,r0
0x08002C78 0000      MOVS     r0,r0
0x08002C7A 0000      MOVS     r0,r0
0x08002C7C 0000      MOVS     r0,r0
0x08002C7E 0000      MOVS     r0,r0
0x08002C80 0000      MOVS     r0,r0
0x08002C82 0000      MOVS     r0,r0
0x08002C84 03C0      LSLS     r0,r0,#15
0x08002C86 0FF0      LSRS     r0,r6,#31
0x08002C88 0C30      LSRS     r0,r6,#16
0x08002C8A 1818      ADDS     r0,r3,r0
0x08002C8C 1818      ADDS     r0,r3,r0
0x08002C8E 1818      ADDS     r0,r3,r0
0x08002C90 1818      ADDS     r0,r3,r0
0x08002C92 1818      ADDS     r0,r3,r0
0x08002C94 1818      ADDS     r0,r3,r0
0x08002C96 0C30      LSRS     r0,r6,#16
0x08002C98 0FF0      LSRS     r0,r6,#31
0x08002C9A 03C0      LSLS     r0,r0,#15
0x08002C9C 0000      MOVS     r0,r0
0x08002C9E 0000      MOVS     r0,r0
0x08002CA0 0000      MOVS     r0,r0
0x08002CA2 0000      MOVS     r0,r0
0x08002CA4 0000      MOVS     r0,r0
0x08002CA6 0000      MOVS     r0,r0
0x08002CA8 0000      MOVS     r0,r0
0x08002CAA 0000      MOVS     r0,r0
0x08002CAC 0000      MOVS     r0,r0
0x08002CAE 0000      MOVS     r0,r0
0x08002CB0 0000      MOVS     r0,r0
0x08002CB2 0000      MOVS     r0,r0
0x08002CB4 03D8      LSLS     r0,r3,#15
0x08002CB6 0FF8      LSRS     r0,r7,#31
0x08002CB8 0C38      LSRS     r0,r7,#16
0x08002CBA 1818      ADDS     r0,r3,r0
0x08002CBC 1818      ADDS     r0,r3,r0
0x08002CBE 1818      ADDS     r0,r3,r0
0x08002CC0 1818      ADDS     r0,r3,r0
0x08002CC2 1818      ADDS     r0,r3,r0
0x08002CC4 1818      ADDS     r0,r3,r0
0x08002CC6 0C38      LSRS     r0,r7,#16
0x08002CC8 0FF8      LSRS     r0,r7,#31
0x08002CCA 03D8      LSLS     r0,r3,#15
0x08002CCC 0018      MOVS     r0,r3
0x08002CCE 0018      MOVS     r0,r3
0x08002CD0 0018      MOVS     r0,r3
0x08002CD2 0018      MOVS     r0,r3
0x08002CD4 0018      MOVS     r0,r3
0x08002CD6 0000      MOVS     r0,r0
0x08002CD8 0000      MOVS     r0,r0
0x08002CDA 0000      MOVS     r0,r0
0x08002CDC 0000      MOVS     r0,r0
0x08002CDE 0000      MOVS     r0,r0
0x08002CE0 0000      MOVS     r0,r0
0x08002CE2 0000      MOVS     r0,r0
0x08002CE4 1BC0      SUBS     r0,r0,r7
0x08002CE6 1FF0      SUBS     r0,r6,#7
0x08002CE8 1C30      ADDS     r0,r6,#0
0x08002CEA 1818      ADDS     r0,r3,r0
0x08002CEC 1818      ADDS     r0,r3,r0
0x08002CEE 1818      ADDS     r0,r3,r0
0x08002CF0 1818      ADDS     r0,r3,r0
0x08002CF2 1818      ADDS     r0,r3,r0
0x08002CF4 1818      ADDS     r0,r3,r0
0x08002CF6 1C30      ADDS     r0,r6,#0
0x08002CF8 1FF0      SUBS     r0,r6,#7
0x08002CFA 1BC0      SUBS     r0,r0,r7
0x08002CFC 1800      ADDS     r0,r0,r0
0x08002CFE 1800      ADDS     r0,r0,r0
0x08002D00 1800      ADDS     r0,r0,r0
0x08002D02 1800      ADDS     r0,r0,r0
0x08002D04 1800      ADDS     r0,r0,r0
0x08002D06 0000      MOVS     r0,r0
0x08002D08 0000      MOVS     r0,r0
0x08002D0A 0000      MOVS     r0,r0
0x08002D0C 0000      MOVS     r0,r0
0x08002D0E 0000      MOVS     r0,r0
0x08002D10 0000      MOVS     r0,r0
0x08002D12 0000      MOVS     r0,r0
0x08002D14 07B0      LSLS     r0,r6,#30
0x08002D16 03F0      LSLS     r0,r6,#15
0x08002D18 0070      LSLS     r0,r6,#1
0x08002D1A 0030      MOVS     r0,r6
0x08002D1C 0030      MOVS     r0,r6
0x08002D1E 0030      MOVS     r0,r6
0x08002D20 0030      MOVS     r0,r6
0x08002D22 0030      MOVS     r0,r6
0x08002D24 0030      MOVS     r0,r6
0x08002D26 0030      MOVS     r0,r6
0x08002D28 0030      MOVS     r0,r6
0x08002D2A 0030      MOVS     r0,r6
0x08002D2C 0000      MOVS     r0,r0
0x08002D2E 0000      MOVS     r0,r0
0x08002D30 0000      MOVS     r0,r0
0x08002D32 0000      MOVS     r0,r0
0x08002D34 0000      MOVS     r0,r0
0x08002D36 0000      MOVS     r0,r0
0x08002D38 0000      MOVS     r0,r0
0x08002D3A 0000      MOVS     r0,r0
0x08002D3C 0000      MOVS     r0,r0
0x08002D3E 0000      MOVS     r0,r0
0x08002D40 0000      MOVS     r0,r0
0x08002D42 0000      MOVS     r0,r0
0x08002D44 03E0      LSLS     r0,r4,#15
0x08002D46 03F0      LSLS     r0,r6,#15
0x08002D48 0E38      LSRS     r0,r7,#24
0x08002D4A 0C18      LSRS     r0,r3,#16
0x08002D4C 0038      MOVS     r0,r7
0x08002D4E 03F0      LSLS     r0,r6,#15
0x08002D50 07C0      LSLS     r0,r0,#31
0x08002D52 0C00      LSRS     r0,r0,#16
0x08002D54 0C18      LSRS     r0,r3,#16
0x08002D56 0E38      LSRS     r0,r7,#24
0x08002D58 07F0      LSLS     r0,r6,#31
0x08002D5A 03E0      LSLS     r0,r4,#15
0x08002D5C 0000      MOVS     r0,r0
0x08002D5E 0000      MOVS     r0,r0
0x08002D60 0000      MOVS     r0,r0
0x08002D62 0000      MOVS     r0,r0
0x08002D64 0000      MOVS     r0,r0
0x08002D66 0000      MOVS     r0,r0
0x08002D68 0000      MOVS     r0,r0
0x08002D6A 0000      MOVS     r0,r0
0x08002D6C 0080      LSLS     r0,r0,#2
0x08002D6E 00C0      LSLS     r0,r0,#3
0x08002D70 00C0      LSLS     r0,r0,#3
0x08002D72 00C0      LSLS     r0,r0,#3
0x08002D74 07F0      LSLS     r0,r6,#31
0x08002D76 07F0      LSLS     r0,r6,#31
0x08002D78 00C0      LSLS     r0,r0,#3
0x08002D7A 00C0      LSLS     r0,r0,#3
0x08002D7C 00C0      LSLS     r0,r0,#3
0x08002D7E 00C0      LSLS     r0,r0,#3
0x08002D80 00C0      LSLS     r0,r0,#3
0x08002D82 00C0      LSLS     r0,r0,#3
0x08002D84 00C0      LSLS     r0,r0,#3
0x08002D86 00C0      LSLS     r0,r0,#3
0x08002D88 07C0      LSLS     r0,r0,#31
0x08002D8A 0780      LSLS     r0,r0,#30
0x08002D8C 0000      MOVS     r0,r0
0x08002D8E 0000      MOVS     r0,r0
0x08002D90 0000      MOVS     r0,r0
0x08002D92 0000      MOVS     r0,r0
0x08002D94 0000      MOVS     r0,r0
0x08002D96 0000      MOVS     r0,r0
0x08002D98 0000      MOVS     r0,r0
0x08002D9A 0000      MOVS     r0,r0
0x08002D9C 0000      MOVS     r0,r0
0x08002D9E 0000      MOVS     r0,r0
0x08002DA0 0000      MOVS     r0,r0
0x08002DA2 0000      MOVS     r0,r0
0x08002DA4 1818      ADDS     r0,r3,r0
0x08002DA6 1818      ADDS     r0,r3,r0
0x08002DA8 1818      ADDS     r0,r3,r0
0x08002DAA 1818      ADDS     r0,r3,r0
0x08002DAC 1818      ADDS     r0,r3,r0
0x08002DAE 1818      ADDS     r0,r3,r0
0x08002DB0 1818      ADDS     r0,r3,r0
0x08002DB2 1818      ADDS     r0,r3,r0
0x08002DB4 1818      ADDS     r0,r3,r0
0x08002DB6 1C38      ADDS     r0,r7,#0
0x08002DB8 1FF0      SUBS     r0,r6,#7
0x08002DBA 19E0      ADDS     r0,r4,r7
0x08002DBC 0000      MOVS     r0,r0
0x08002DBE 0000      MOVS     r0,r0
0x08002DC0 0000      MOVS     r0,r0
0x08002DC2 0000      MOVS     r0,r0
0x08002DC4 0000      MOVS     r0,r0
0x08002DC6 0000      MOVS     r0,r0
0x08002DC8 0000      MOVS     r0,r0
0x08002DCA 0000      MOVS     r0,r0
0x08002DCC 0000      MOVS     r0,r0
0x08002DCE 0000      MOVS     r0,r0
0x08002DD0 0000      MOVS     r0,r0
0x08002DD2 0000      MOVS     r0,r0
0x08002DD4 180C      ADDS     r4,r1,r0
0x08002DD6 0C18      LSRS     r0,r3,#16
0x08002DD8 0C18      LSRS     r0,r3,#16
0x08002DDA 0C18      LSRS     r0,r3,#16
0x08002DDC 0630      LSLS     r0,r6,#24
0x08002DDE 0630      LSLS     r0,r6,#24
0x08002DE0 0630      LSLS     r0,r6,#24
0x08002DE2 0360      LSLS     r0,r4,#13
0x08002DE4 0360      LSLS     r0,r4,#13
0x08002DE6 0360      LSLS     r0,r4,#13
0x08002DE8 01C0      LSLS     r0,r0,#7
0x08002DEA 01C0      LSLS     r0,r0,#7
0x08002DEC 0000      MOVS     r0,r0
0x08002DEE 0000      MOVS     r0,r0
0x08002DF0 0000      MOVS     r0,r0
0x08002DF2 0000      MOVS     r0,r0
0x08002DF4 0000      MOVS     r0,r0
0x08002DF6 0000      MOVS     r0,r0
0x08002DF8 0000      MOVS     r0,r0
0x08002DFA 0000      MOVS     r0,r0
0x08002DFC 0000      MOVS     r0,r0
0x08002DFE 0000      MOVS     r0,r0
0x08002E00 0000      MOVS     r0,r0
0x08002E02 0000      MOVS     r0,r0
0x08002E04 41C1      RORS     r1,r1,r0
0x08002E06 41C1      RORS     r1,r1,r0
0x08002E08 61C3      STR      r3,[r0,#0x1C]
0x08002E0A 6363      STR      r3,[r4,#0x34]
0x08002E0C 6363      STR      r3,[r4,#0x34]
0x08002E0E 6363      STR      r3,[r4,#0x34]
0x08002E10 3636      ADDS     r6,r6,#0x36
0x08002E12 3636      ADDS     r6,r6,#0x36
0x08002E14 3636      ADDS     r6,r6,#0x36
0x08002E16 1C1C      ADDS     r4,r3,#0
0x08002E18 1C1C      ADDS     r4,r3,#0
0x08002E1A 1C1C      ADDS     r4,r3,#0
0x08002E1C 0000      MOVS     r0,r0
0x08002E1E 0000      MOVS     r0,r0
0x08002E20 0000      MOVS     r0,r0
0x08002E22 0000      MOVS     r0,r0
0x08002E24 0000      MOVS     r0,r0
0x08002E26 0000      MOVS     r0,r0
0x08002E28 0000      MOVS     r0,r0
0x08002E2A 0000      MOVS     r0,r0
0x08002E2C 0000      MOVS     r0,r0
0x08002E2E 0000      MOVS     r0,r0
0x08002E30 0000      MOVS     r0,r0
0x08002E32 0000      MOVS     r0,r0
0x08002E34 381C      SUBS     r0,r0,#0x1C
0x08002E36 1C38      ADDS     r0,r7,#0
0x08002E38 0C30      LSRS     r0,r6,#16
0x08002E3A 0660      LSLS     r0,r4,#25
0x08002E3C 0360      LSLS     r0,r4,#13
0x08002E3E 0360      LSLS     r0,r4,#13
0x08002E40 0360      LSLS     r0,r4,#13
0x08002E42 0360      LSLS     r0,r4,#13
0x08002E44 0660      LSLS     r0,r4,#25
0x08002E46 0C30      LSRS     r0,r6,#16
0x08002E48 1C38      ADDS     r0,r7,#0
0x08002E4A 381C      SUBS     r0,r0,#0x1C
0x08002E4C 0000      MOVS     r0,r0
0x08002E4E 0000      MOVS     r0,r0
0x08002E50 0000      MOVS     r0,r0
0x08002E52 0000      MOVS     r0,r0
0x08002E54 0000      MOVS     r0,r0
0x08002E56 0000      MOVS     r0,r0
0x08002E58 0000      MOVS     r0,r0
0x08002E5A 0000      MOVS     r0,r0
0x08002E5C 0000      MOVS     r0,r0
0x08002E5E 0000      MOVS     r0,r0
0x08002E60 0000      MOVS     r0,r0
0x08002E62 0000      MOVS     r0,r0
0x08002E64 3018      ADDS     r0,r0,#0x18
0x08002E66 1830      ADDS     r0,r6,r0
0x08002E68 1830      ADDS     r0,r6,r0
0x08002E6A 1870      ADDS     r0,r6,r1
0x08002E6C 0C60      LSRS     r0,r4,#17
0x08002E6E 0C60      LSRS     r0,r4,#17
0x08002E70 0CE0      LSRS     r0,r4,#19
0x08002E72 06C0      LSLS     r0,r0,#27
0x08002E74 06C0      LSLS     r0,r0,#27
0x08002E76 0380      LSLS     r0,r0,#14
0x08002E78 0380      LSLS     r0,r0,#14
0x08002E7A 0380      LSLS     r0,r0,#14
0x08002E7C 0180      LSLS     r0,r0,#6
0x08002E7E 0180      LSLS     r0,r0,#6
0x08002E80 01C0      LSLS     r0,r0,#7
0x08002E82 00F0      LSLS     r0,r6,#3
0x08002E84 0070      LSLS     r0,r6,#1
0x08002E86 0000      MOVS     r0,r0
0x08002E88 0000      MOVS     r0,r0
0x08002E8A 0000      MOVS     r0,r0
0x08002E8C 0000      MOVS     r0,r0
0x08002E8E 0000      MOVS     r0,r0
0x08002E90 0000      MOVS     r0,r0
0x08002E92 0000      MOVS     r0,r0
0x08002E94 1FFC      SUBS     r4,r7,#7
0x08002E96 1FFC      SUBS     r4,r7,#7
0x08002E98 0C00      LSRS     r0,r0,#16
0x08002E9A 0600      LSLS     r0,r0,#24
0x08002E9C 0300      LSLS     r0,r0,#12
0x08002E9E 0180      LSLS     r0,r0,#6
0x08002EA0 00C0      LSLS     r0,r0,#3
0x08002EA2 0060      LSLS     r0,r4,#1
0x08002EA4 0030      MOVS     r0,r6
0x08002EA6 0018      MOVS     r0,r3
0x08002EA8 1FFC      SUBS     r4,r7,#7
0x08002EAA 1FFC      SUBS     r4,r7,#7
0x08002EAC 0000      MOVS     r0,r0
0x08002EAE 0000      MOVS     r0,r0
0x08002EB0 0000      MOVS     r0,r0
0x08002EB2 0000      MOVS     r0,r0
0x08002EB4 0000      MOVS     r0,r0
0x08002EB6 0000      MOVS     r0,r0
0x08002EB8 0000      MOVS     r0,r0
0x08002EBA 0300      LSLS     r0,r0,#12
0x08002EBC 0180      LSLS     r0,r0,#6
0x08002EBE 00C0      LSLS     r0,r0,#3
0x08002EC0 00C0      LSLS     r0,r0,#3
0x08002EC2 00C0      LSLS     r0,r0,#3
0x08002EC4 00C0      LSLS     r0,r0,#3
0x08002EC6 00C0      LSLS     r0,r0,#3
0x08002EC8 00C0      LSLS     r0,r0,#3
0x08002ECA 0060      LSLS     r0,r4,#1
0x08002ECC 0060      LSLS     r0,r4,#1
0x08002ECE 0030      MOVS     r0,r6
0x08002ED0 0060      LSLS     r0,r4,#1
0x08002ED2 0040      LSLS     r0,r0,#1
0x08002ED4 00C0      LSLS     r0,r0,#3
0x08002ED6 00C0      LSLS     r0,r0,#3
0x08002ED8 00C0      LSLS     r0,r0,#3
0x08002EDA 00C0      LSLS     r0,r0,#3
0x08002EDC 00C0      LSLS     r0,r0,#3
0x08002EDE 00C0      LSLS     r0,r0,#3
0x08002EE0 0180      LSLS     r0,r0,#6
0x08002EE2 0300      LSLS     r0,r0,#12
0x08002EE4 0000      MOVS     r0,r0
0x08002EE6 0000      MOVS     r0,r0
0x08002EE8 0000      MOVS     r0,r0
0x08002EEA 0180      LSLS     r0,r0,#6
0x08002EEC 0180      LSLS     r0,r0,#6
0x08002EEE 0180      LSLS     r0,r0,#6
0x08002EF0 0180      LSLS     r0,r0,#6
0x08002EF2 0180      LSLS     r0,r0,#6
0x08002EF4 0180      LSLS     r0,r0,#6
0x08002EF6 0180      LSLS     r0,r0,#6
0x08002EF8 0180      LSLS     r0,r0,#6
0x08002EFA 0180      LSLS     r0,r0,#6
0x08002EFC 0180      LSLS     r0,r0,#6
0x08002EFE 0180      LSLS     r0,r0,#6
0x08002F00 0180      LSLS     r0,r0,#6
0x08002F02 0180      LSLS     r0,r0,#6
0x08002F04 0180      LSLS     r0,r0,#6
0x08002F06 0180      LSLS     r0,r0,#6
0x08002F08 0180      LSLS     r0,r0,#6
0x08002F0A 0180      LSLS     r0,r0,#6
0x08002F0C 0180      LSLS     r0,r0,#6
0x08002F0E 0180      LSLS     r0,r0,#6
0x08002F10 0180      LSLS     r0,r0,#6
0x08002F12 0180      LSLS     r0,r0,#6
0x08002F14 0180      LSLS     r0,r0,#6
0x08002F16 0000      MOVS     r0,r0
0x08002F18 0000      MOVS     r0,r0
0x08002F1A 0060      LSLS     r0,r4,#1
0x08002F1C 00C0      LSLS     r0,r0,#3
0x08002F1E 01C0      LSLS     r0,r0,#7
0x08002F20 0180      LSLS     r0,r0,#6
0x08002F22 0180      LSLS     r0,r0,#6
0x08002F24 0180      LSLS     r0,r0,#6
0x08002F26 0180      LSLS     r0,r0,#6
0x08002F28 0180      LSLS     r0,r0,#6
0x08002F2A 0300      LSLS     r0,r0,#12
0x08002F2C 0300      LSLS     r0,r0,#12
0x08002F2E 0600      LSLS     r0,r0,#24
0x08002F30 0300      LSLS     r0,r0,#12
0x08002F32 0100      LSLS     r0,r0,#4
0x08002F34 0180      LSLS     r0,r0,#6
0x08002F36 0180      LSLS     r0,r0,#6
0x08002F38 0180      LSLS     r0,r0,#6
0x08002F3A 0180      LSLS     r0,r0,#6
0x08002F3C 0180      LSLS     r0,r0,#6
0x08002F3E 0180      LSLS     r0,r0,#6
0x08002F40 00C0      LSLS     r0,r0,#3
0x08002F42 0060      LSLS     r0,r4,#1
0x08002F44 0000      MOVS     r0,r0
0x08002F46 0000      MOVS     r0,r0
0x08002F48 0000      MOVS     r0,r0
0x08002F4A 0000      MOVS     r0,r0
0x08002F4C 0000      MOVS     r0,r0
0x08002F4E 0000      MOVS     r0,r0
0x08002F50 0000      MOVS     r0,r0
0x08002F52 0000      MOVS     r0,r0
0x08002F54 0000      MOVS     r0,r0
0x08002F56 0000      MOVS     r0,r0
0x08002F58 10F0      ASRS     r0,r6,#3
0x08002F5A 1FF8      SUBS     r0,r7,#7
0x08002F5C 0F08      LSRS     r0,r1,#28
0x08002F5E 0000      MOVS     r0,r0
0x08002F60 0000      MOVS     r0,r0
0x08002F62 0000      MOVS     r0,r0
0x08002F64 0000      MOVS     r0,r0
0x08002F66 0000      MOVS     r0,r0
0x08002F68 0000      MOVS     r0,r0
0x08002F6A 0000      MOVS     r0,r0
0x08002F6C 0000      MOVS     r0,r0
0x08002F6E 0000      MOVS     r0,r0
0x08002F70 0000      MOVS     r0,r0
0x08002F72 0000      MOVS     r0,r0
0x08002F74 0000      MOVS     r0,r0
0x08002F76 0000      MOVS     r0,r0
0x08002F78 0000      MOVS     r0,r0
0x08002F7A 0000      MOVS     r0,r0
0x08002F7C 0000      MOVS     r0,r0
0x08002F7E 0000      MOVS     r0,r0
0x08002F80 0000      MOVS     r0,r0
0x08002F82 0000      MOVS     r0,r0
0x08002F84 0000      MOVS     r0,r0
0x08002F86 0000      MOVS     r0,r0
0x08002F88 0000      MOVS     r0,r0
0x08002F8A 0000      MOVS     r0,r0
0x08002F8C 0000      MOVS     r0,r0
0x08002F8E 0000      MOVS     r0,r0
0x08002F90 0000      MOVS     r0,r0
0x08002F92 0000      MOVS     r0,r0
0x08002F94 0000      MOVS     r0,r0
0x08002F96 0000      MOVS     r0,r0
0x08002F98 0000      MOVS     r0,r0
0x08002F9A 0000      MOVS     r0,r0
0x08002F9C 0000      MOVS     r0,r0
0x08002F9E 0000      MOVS     r0,r0
0x08002FA0 0000      MOVS     r0,r0
0x08002FA2 0000      MOVS     r0,r0
0x08002FA4 0000      MOVS     r0,r0
0x08002FA6 0000      MOVS     r0,r0
0x08002FA8 0000      MOVS     r0,r0
0x08002FAA 0000      MOVS     r0,r0
0x08002FAC 0000      MOVS     r0,r0
0x08002FAE 0000      MOVS     r0,r0
0x08002FB0 0000      MOVS     r0,r0
0x08002FB2 0000      MOVS     r0,r0
0x08002FB4 0000      MOVS     r0,r0
0x08002FB6 03C0      LSLS     r0,r0,#15
0x08002FB8 0FF0      LSRS     r0,r6,#31
0x08002FBA 0C30      LSRS     r0,r6,#16
0x08002FBC 1818      ADDS     r0,r3,r0
0x08002FBE 1818      ADDS     r0,r3,r0
0x08002FC0 1818      ADDS     r0,r3,r0
0x08002FC2 1818      ADDS     r0,r3,r0
0x08002FC4 0C30      LSRS     r0,r6,#16
0x08002FC6 0FF0      LSRS     r0,r6,#31
0x08002FC8 03C0      LSLS     r0,r0,#15
0x08002FCA 0000      MOVS     r0,r0
0x08002FCC 0000      MOVS     r0,r0
0x08002FCE 0000      MOVS     r0,r0
0x08002FD0 0000      MOVS     r0,r0
0x08002FD2 0000      MOVS     r0,r0
0x08002FD4 0000      MOVS     r0,r0
0x08002FD6 0000      MOVS     r0,r0
0x08002FD8 0000      MOVS     r0,r0
0x08002FDA 0000      MOVS     r0,r0
0x08002FDC 0000      MOVS     r0,r0
0x08002FDE 0000      MOVS     r0,r0
0x08002FE0 0000      MOVS     r0,r0
0x08002FE2 0000      MOVS     r0,r0
0x08002FE4 0000      MOVS     r0,r0
0x08002FE6 03C0      LSLS     r0,r0,#15
0x08002FE8 0FF0      LSRS     r0,r6,#31
0x08002FEA 0FF0      LSRS     r0,r6,#31
0x08002FEC 1FF8      SUBS     r0,r7,#7
0x08002FEE 1FF8      SUBS     r0,r7,#7
0x08002FF0 1FF8      SUBS     r0,r7,#7
0x08002FF2 1FF8      SUBS     r0,r7,#7
0x08002FF4 0FF0      LSRS     r0,r6,#31
0x08002FF6 0FF0      LSRS     r0,r6,#31
0x08002FF8 03C0      LSLS     r0,r0,#15
0x08002FFA 0000      MOVS     r0,r0
0x08002FFC 0000      MOVS     r0,r0
0x08002FFE 0000      MOVS     r0,r0
0x08003000 0000      MOVS     r0,r0
0x08003002 0000      MOVS     r0,r0
0x08003004 0000      MOVS     r0,r0
0x08003006 0000      MOVS     r0,r0
0x08003008 0000      MOVS     r0,r0
0x0800300A 0000      MOVS     r0,r0
0x0800300C 0000      MOVS     r0,r0
0x0800300E 0000      MOVS     r0,r0
0x08003010 0000      MOVS     r0,r0
0x08003012 0000      MOVS     r0,r0
0x08003014 0000      MOVS     r0,r0
0x08003016 07E0      LSLS     r0,r4,#31
0x08003018 0FF0      LSRS     r0,r6,#31
0x0800301A 1818      ADDS     r0,r3,r0
0x0800301C 1818      ADDS     r0,r3,r0
0x0800301E 1818      ADDS     r0,r3,r0
0x08003020 1818      ADDS     r0,r3,r0
0x08003022 1818      ADDS     r0,r3,r0
0x08003024 1818      ADDS     r0,r3,r0
0x08003026 0FF0      LSRS     r0,r6,#31
0x08003028 07E0      LSLS     r0,r4,#31
0x0800302A 0000      MOVS     r0,r0
0x0800302C 0000      MOVS     r0,r0
0x0800302E 0000      MOVS     r0,r0
0x08003030 0000      MOVS     r0,r0
0x08003032 0000      MOVS     r0,r0
0x08003034 0000      MOVS     r0,r0
0x08003036 0000      MOVS     r0,r0
0x08003038 0000      MOVS     r0,r0
0x0800303A 0000      MOVS     r0,r0
0x0800303C 0000      MOVS     r0,r0
0x0800303E 0000      MOVS     r0,r0
0x08003040 0000      MOVS     r0,r0
0x08003042 0000      MOVS     r0,r0
0x08003044 0000      MOVS     r0,r0
0x08003046 07E0      LSLS     r0,r4,#31
0x08003048 0FF0      LSRS     r0,r6,#31
0x0800304A 1FF8      SUBS     r0,r7,#7
0x0800304C 1FF8      SUBS     r0,r7,#7
0x0800304E 1FF8      SUBS     r0,r7,#7
0x08003050 1FF8      SUBS     r0,r7,#7
0x08003052 1FF8      SUBS     r0,r7,#7
0x08003054 1FF8      SUBS     r0,r7,#7
0x08003056 0FF0      LSRS     r0,r6,#31
0x08003058 07E0      LSLS     r0,r4,#31
0x0800305A 0000      MOVS     r0,r0
0x0800305C 0000      MOVS     r0,r0
0x0800305E 0000      MOVS     r0,r0
0x08003060 0000      MOVS     r0,r0
0x08003062 0000      MOVS     r0,r0
0x08003064 0000      MOVS     r0,r0
0x08003066 0000      MOVS     r0,r0
0x08003068 0000      MOVS     r0,r0
0x0800306A 0000      MOVS     r0,r0
0x0800306C 0000      MOVS     r0,r0
0x0800306E 0000      MOVS     r0,r0
0x08003070 0000      MOVS     r0,r0
0x08003072 0000      MOVS     r0,r0
0x08003074 0000      MOVS     r0,r0
0x08003076 0000      MOVS     r0,r0
0x08003078 0000      MOVS     r0,r0
0x0800307A 0000      MOVS     r0,r0
0x0800307C 0000      MOVS     r0,r0
0x0800307E 0000      MOVS     r0,r0
0x08003080 0180      LSLS     r0,r0,#6
0x08003082 03C0      LSLS     r0,r0,#15
0x08003084 0660      LSLS     r0,r4,#25
0x08003086 0C30      LSRS     r0,r6,#16
0x08003088 1818      ADDS     r0,r3,r0
0x0800308A 1818      ADDS     r0,r3,r0
0x0800308C 1FF8      SUBS     r0,r7,#7
0x0800308E 1FF8      SUBS     r0,r7,#7
0x08003090 0000      MOVS     r0,r0
0x08003092 0000      MOVS     r0,r0
0x08003094 0000      MOVS     r0,r0
0x08003096 0000      MOVS     r0,r0
0x08003098 0000      MOVS     r0,r0
0x0800309A 0000      MOVS     r0,r0
0x0800309C 0000      MOVS     r0,r0
0x0800309E 0000      MOVS     r0,r0
0x080030A0 0000      MOVS     r0,r0
0x080030A2 0000      MOVS     r0,r0
0x080030A4 0000      MOVS     r0,r0
0x080030A6 0000      MOVS     r0,r0
0x080030A8 0000      MOVS     r0,r0
0x080030AA 0000      MOVS     r0,r0
0x080030AC 0000      MOVS     r0,r0
0x080030AE 0000      MOVS     r0,r0
0x080030B0 0180      LSLS     r0,r0,#6
0x080030B2 03C0      LSLS     r0,r0,#15
0x080030B4 07E0      LSLS     r0,r4,#31
0x080030B6 0FF0      LSRS     r0,r6,#31
0x080030B8 1FF8      SUBS     r0,r7,#7
0x080030BA 1FF8      SUBS     r0,r7,#7
0x080030BC 1FF8      SUBS     r0,r7,#7
0x080030BE 1FF8      SUBS     r0,r7,#7
0x080030C0 0000      MOVS     r0,r0
0x080030C2 0000      MOVS     r0,r0
0x080030C4 0000      MOVS     r0,r0
0x080030C6 0000      MOVS     r0,r0
0x080030C8 0000      MOVS     r0,r0
0x080030CA 0000      MOVS     r0,r0
0x080030CC 0000      MOVS     r0,r0
0x080030CE 0000      MOVS     r0,r0
0x080030D0 1FF8      SUBS     r0,r7,#7
0x080030D2 1FF8      SUBS     r0,r7,#7
0x080030D4 1818      ADDS     r0,r3,r0
0x080030D6 1818      ADDS     r0,r3,r0
0x080030D8 0C30      LSRS     r0,r6,#16
0x080030DA 0660      LSLS     r0,r4,#25
0x080030DC 03C0      LSLS     r0,r0,#15
0x080030DE 0180      LSLS     r0,r0,#6
0x080030E0 0000      MOVS     r0,r0
0x080030E2 0000      MOVS     r0,r0
0x080030E4 0000      MOVS     r0,r0
0x080030E6 0000      MOVS     r0,r0
0x080030E8 0000      MOVS     r0,r0
0x080030EA 0000      MOVS     r0,r0
0x080030EC 0000      MOVS     r0,r0
0x080030EE 0000      MOVS     r0,r0
0x080030F0 0000      MOVS     r0,r0
0x080030F2 0000      MOVS     r0,r0
0x080030F4 0000      MOVS     r0,r0
0x080030F6 0000      MOVS     r0,r0
0x080030F8 0000      MOVS     r0,r0
0x080030FA 0000      MOVS     r0,r0
0x080030FC 0000      MOVS     r0,r0
0x080030FE 0000      MOVS     r0,r0
0x08003100 1FF8      SUBS     r0,r7,#7
0x08003102 1FF8      SUBS     r0,r7,#7
0x08003104 1FF8      SUBS     r0,r7,#7
0x08003106 1FF8      SUBS     r0,r7,#7
0x08003108 0FF0      LSRS     r0,r6,#31
0x0800310A 07E0      LSLS     r0,r4,#31
0x0800310C 03C0      LSLS     r0,r0,#15
0x0800310E 0180      LSLS     r0,r0,#6
0x08003110 0000      MOVS     r0,r0
0x08003112 0000      MOVS     r0,r0
0x08003114 0000      MOVS     r0,r0
0x08003116 0000      MOVS     r0,r0
0x08003118 0000      MOVS     r0,r0
0x0800311A 0000      MOVS     r0,r0
0x0800311C 0000      MOVS     r0,r0
0x0800311E 0000      MOVS     r0,r0
0x08003120 0000      MOVS     r0,r0
0x08003122 0000      MOVS     r0,r0
0x08003124 0000      MOVS     r0,r0
0x08003126 0000      MOVS     r0,r0
0x08003128 0000      MOVS     r0,r0
0x0800312A 0000      MOVS     r0,r0
0x0800312C 0000      MOVS     r0,r0
0x0800312E 0000      MOVS     r0,r0
0x08003130 0000      MOVS     r0,r0
0x08003132 0000      MOVS     r0,r0
0x08003134 0000      MOVS     r0,r0
0x08003136 01E0      LSLS     r0,r4,#7
0x08003138 01F0      LSLS     r0,r6,#7
0x0800313A 0198      LSLS     r0,r3,#6
0x0800313C 018C      LSLS     r4,r1,#6
0x0800313E 0186      LSLS     r6,r0,#6
0x08003140 0186      LSLS     r6,r0,#6
0x08003142 018C      LSLS     r4,r1,#6
0x08003144 0198      LSLS     r0,r3,#6
0x08003146 01F0      LSLS     r0,r6,#7
0x08003148 01E0      LSLS     r0,r4,#7
0x0800314A 0000      MOVS     r0,r0
0x0800314C 0000      MOVS     r0,r0
0x0800314E 0000      MOVS     r0,r0
0x08003150 0000      MOVS     r0,r0
0x08003152 0000      MOVS     r0,r0
0x08003154 0000      MOVS     r0,r0
0x08003156 0000      MOVS     r0,r0
0x08003158 0000      MOVS     r0,r0
0x0800315A 0000      MOVS     r0,r0
0x0800315C 0000      MOVS     r0,r0
0x0800315E 0000      MOVS     r0,r0
0x08003160 0000      MOVS     r0,r0
0x08003162 0000      MOVS     r0,r0
0x08003164 0000      MOVS     r0,r0
0x08003166 01E0      LSLS     r0,r4,#7
0x08003168 01F0      LSLS     r0,r6,#7
0x0800316A 01F8      LSLS     r0,r7,#7
0x0800316C 01FC      LSLS     r4,r7,#7
0x0800316E 01FE      LSLS     r6,r7,#7
0x08003170 01FE      LSLS     r6,r7,#7
0x08003172 01FC      LSLS     r4,r7,#7
0x08003174 01F8      LSLS     r0,r7,#7
0x08003176 01F0      LSLS     r0,r6,#7
0x08003178 01E0      LSLS     r0,r4,#7
0x0800317A 0000      MOVS     r0,r0
0x0800317C 0000      MOVS     r0,r0
0x0800317E 0000      MOVS     r0,r0
0x08003180 0000      MOVS     r0,r0
0x08003182 0000      MOVS     r0,r0
0x08003184 0000      MOVS     r0,r0
0x08003186 0000      MOVS     r0,r0
0x08003188 0000      MOVS     r0,r0
0x0800318A 0000      MOVS     r0,r0
0x0800318C 0000      MOVS     r0,r0
0x0800318E 0000      MOVS     r0,r0
0x08003190 0000      MOVS     r0,r0
0x08003192 0000      MOVS     r0,r0
0x08003194 0000      MOVS     r0,r0
0x08003196 0780      LSLS     r0,r0,#30
0x08003198 0F80      LSRS     r0,r0,#30
0x0800319A 1980      ADDS     r0,r0,r6
0x0800319C 3180      ADDS     r1,r1,#0x80
0x0800319E 6180      STR      r0,[r0,#0x18]
0x080031A0 6180      STR      r0,[r0,#0x18]
0x080031A2 3180      ADDS     r1,r1,#0x80
0x080031A4 1980      ADDS     r0,r0,r6
0x080031A6 0F80      LSRS     r0,r0,#30
0x080031A8 0780      LSLS     r0,r0,#30
0x080031AA 0000      MOVS     r0,r0
0x080031AC 0000      MOVS     r0,r0
0x080031AE 0000      MOVS     r0,r0
0x080031B0 0000      MOVS     r0,r0
0x080031B2 0000      MOVS     r0,r0
0x080031B4 0000      MOVS     r0,r0
0x080031B6 0000      MOVS     r0,r0
0x080031B8 0000      MOVS     r0,r0
0x080031BA 0000      MOVS     r0,r0
0x080031BC 0000      MOVS     r0,r0
0x080031BE 0000      MOVS     r0,r0
0x080031C0 0000      MOVS     r0,r0
0x080031C2 0000      MOVS     r0,r0
0x080031C4 0000      MOVS     r0,r0
0x080031C6 0780      LSLS     r0,r0,#30
0x080031C8 0F80      LSRS     r0,r0,#30
0x080031CA 1F80      SUBS     r0,r0,#6
0x080031CC 3F80      SUBS     r7,r7,#0x80
0x080031CE 7F80      LDRB     r0,[r0,#0x1E]
0x080031D0 7F80      LDRB     r0,[r0,#0x1E]
0x080031D2 3F80      SUBS     r7,r7,#0x80
0x080031D4 1F80      SUBS     r0,r0,#6
0x080031D6 0F80      LSRS     r0,r0,#30
0x080031D8 0780      LSLS     r0,r0,#30
0x080031DA 0000      MOVS     r0,r0
0x080031DC 0000      MOVS     r0,r0
0x080031DE 0000      MOVS     r0,r0
0x080031E0 0000      MOVS     r0,r0
0x080031E2 0000      MOVS     r0,r0
0x080031E4 0000      MOVS     r0,r0
0x080031E6 0000      MOVS     r0,r0
0x080031E8 4D42      LDR      r5,[pc,#264]  ; @0x080032F4
0x080031EA 03FE      LSLS     r6,r7,#15
0x080031EC 0000      MOVS     r0,r0
0x080031EE 0000      MOVS     r0,r0
0x080031F0 0000      MOVS     r0,r0
0x080031F2 003E      MOVS     r6,r7
0x080031F4 0000      MOVS     r0,r0
0x080031F6 0028      MOVS     r0,r5
0x080031F8 0000      MOVS     r0,r0
0x080031FA 00A0      LSLS     r0,r4,#2
0x080031FC 0000      MOVS     r0,r0
0x080031FE 0030      MOVS     r0,r6
0x08003200 0000      MOVS     r0,r0
0x08003202 0001      MOVS     r1,r0
0x08003204 0001      MOVS     r1,r0
0x08003206 0000      MOVS     r0,r0
0x08003208 0000      MOVS     r0,r0
0x0800320A 03C0      LSLS     r0,r0,#15
0x0800320C 0000      MOVS     r0,r0
0x0800320E 0EC4      LSRS     r4,r0,#27
0x08003210 0000      MOVS     r0,r0
0x08003212 0EC4      LSRS     r4,r0,#27
0x08003214 0000      MOVS     r0,r0
0x08003216 0000      MOVS     r0,r0
0x08003218 0000      MOVS     r0,r0
0x0800321A 0000      MOVS     r0,r0
0x0800321C 0000      MOVS     r0,r0
0x0800321E 0000      MOVS     r0,r0
0x08003220 0000      MOVS     r0,r0
0x08003222 FFFF00FF  DCD      0xFFFF00FF   ; ? Undefined
0x08003226 0000      MOVS     r0,r0
0x08003228 0000      MOVS     r0,r0
0x0800322A 0000      MOVS     r0,r0
0x0800322C 0000      MOVS     r0,r0
0x0800322E 0000      MOVS     r0,r0
0x08003230 0000      MOVS     r0,r0
0x08003232 0000      MOVS     r0,r0
0x08003234 0000      MOVS     r0,r0
0x08003236 0002      MOVS     r2,r0
0x08003238 0000      MOVS     r0,r0
0x0800323A 0000      MOVS     r0,r0
0x0800323C 0000      MOVS     r0,r0
0x0800323E 0000      MOVS     r0,r0
0x08003240 0000      MOVS     r0,r0
0x08003242 0000      MOVS     r0,r0
0x08003244 0000      MOVS     r0,r0
0x08003246 0000      MOVS     r0,r0
0x08003248 0000      MOVS     r0,r0
0x0800324A 0002      MOVS     r2,r0
0x0800324C 0002      MOVS     r2,r0
0x0800324E 0000      MOVS     r0,r0
0x08003250 0000      MOVS     r0,r0
0x08003252 0000      MOVS     r0,r0
0x08003254 0000      MOVS     r0,r0
0x08003256 0000      MOVS     r0,r0
0x08003258 0000      MOVS     r0,r0
0x0800325A 0000      MOVS     r0,r0
0x0800325C 0000      MOVS     r0,r0
0x0800325E 0002      MOVS     r2,r0
0x08003260 0001      MOVS     r1,r0
0x08003262 7F08      LDRB     r0,[r1,#0x1C]
0x08003264 FFFFFFFF  DCD      0xFFFFFFFF   ; ? Undefined
0x08003268 82C0      STRH     r0,[r0,#0x16]
0x0800326A 4148      ADCS     r0,r0,r1
0x0800326C 4122      ASRS     r2,r2,r4
0x0800326E 0100      LSLS     r0,r0,#4
0x08003270 C4E1      STM      r4!,{r0,r5-r7}
0x08003272 8F93      LDRH     r3,[r2,#0x3C]
0x08003274 8048      STRH     r0,[r1,#0x02]
0x08003276 3F0C      SUBS     r7,r7,#0x0C
0x08003278 FFFFFFFF  DCD      0xFFFFFFFF   ; ? Undefined
0x0800327C 82C0      STRH     r0,[r0,#0x16]
0x0800327E 4148      ADCS     r0,r0,r1
0x08003280 4124      ASRS     r4,r4,r4
0x08003282 0200      LSLS     r0,r0,#8
0x08003284 2412      MOVS     r4,#0x12
0x08003286 4A92      LDR      r2,[pc,#584]  ; @0x080034D0
0x08003288 8048      STRH     r0,[r1,#0x02]
0x0800328A 1F0E      SUBS     r6,r1,#4
0x0800328C FFFFFFFF  DCD      0xFFFFFFFF   ; ? Undefined
0x08003290 7CC0      LDRB     r0,[r0,#0x13]
0x08003292 3E48      SUBS     r6,r6,#0x48
0x08003294 4128      ASRS     r0,r0,r5
0x08003296 0400      LSLS     r0,r0,#16
0x08003298 2402      MOVS     r4,#0x02
0x0800329A 4A92      LDR      r2,[pc,#584]  ; @0x080034E4
0x0800329C 8048      STRH     r0,[r1,#0x02]
0x0800329E 0F0F      LSRS     r7,r1,#28
0x080032A0 0000      MOVS     r0,r0
0x080032A2 0100      LSLS     r0,r0,#4
0x080032A4 44C0      ADD      r8,r8,r8
0x080032A6 2248      MOVS     r2,#0x48
0x080032A8 413C      ASRS     r4,r4,r7
0x080032AA 041E      LSLS     r6,r3,#16
0x080032AC 2402      MOVS     r4,#0x02
0x080032AE 4692      MOV      r10,r2
0x080032B0 4049      EORS     r1,r1,r1
0x080032B2 870F      STRH     r7,[r1,#0x38]
0x080032B4 0080      LSLS     r0,r0,#2
0x080032B6 0100      LSLS     r0,r0,#4
0x080032B8 28C0      CMP      r0,#0xC0
0x080032BA 1468      ASRS     r0,r5,#17
0x080032BC 4922      LDR      r1,[pc,#136]  ; @0x08003348
0x080032BE 0421      LSLS     r1,r4,#16
0x080032C0 2602      MOVS     r6,#0x02
0x080032C2 42D2      CMN      r2,r2
0x080032C4 4069      EORS     r1,r1,r5
0x080032C6 C30F      STM      r3!,{r0-r3}
0x080032C8 00C0      LSLS     r0,r0,#3
0x080032CA 0100      LSLS     r0,r0,#4
0x080032CC 28C0      CMP      r0,#0xC0
0x080032CE 1450      ASRS     r0,r2,#17
0x080032D0 5522      STRB     r2,[r4,r4]
0x080032D2 8452      STRH     r2,[r2,#0x22]
0x080032D4 C501      STM      r5!,{r0}
0x080032D6 8EA3      LDRH     r3,[r4,#0x34]
0x080032D8 2052      MOVS     r0,#0x52
0x080032DA E10F      B        0x080034FC
0x080032DC 00E0      LSLS     r0,r4,#3
0x080032DE 0100      LSLS     r0,r0,#4
0x080032E0 10C0      ASRS     r0,r0,#3
0x080032E2 0800      LSRS     r0,r0,#0
0x080032E4 6322      STR      r2,[r4,#0x30]
0x080032E6 825C      STRH     r4,[r3,#0x12]
0x080032E8 0010      MOVS     r0,r2
0x080032EA 0000      MOVS     r0,r0
0x080032EC 0000      MOVS     r0,r0
0x080032EE F00E00F0  AND      r0,lr,#0xF0
0x080032F2 0100      LSLS     r0,r0,#4
0x080032F4 10C0      ASRS     r0,r0,#3
0x080032F6 0800      LSRS     r0,r0,#0
0x080032F8 413C      ASRS     r4,r4,r7
0x080032FA 8152      STRH     r2,[r2,#0x0A]
0x080032FC 00E0      LSLS     r0,r4,#3
0x080032FE 0000      MOVS     r0,r0
0x08003300 0000      MOVS     r0,r0
0x08003302 780E      LDRB     r6,[r1,#0x00]
0x08003304 0078      LSLS     r0,r7,#1
0x08003306 0100      LSLS     r0,r0,#4
0x08003308 00C0      LSLS     r0,r0,#3
0x0800330A 0000      MOVS     r0,r0
0x0800330C 0000      MOVS     r0,r0
0x0800330E 805C      STRH     r4,[r3,#0x02]
0x08003310 0000      MOVS     r0,r0
0x08003312 0000      MOVS     r0,r0
0x08003314 0000      MOVS     r0,r0
0x08003316 3C0E      SUBS     r4,r4,#0x0E
0x08003318 003C      MOVS     r4,r7
0x0800331A 0100      LSLS     r0,r0,#4
0x0800331C 00C0      LSLS     r0,r0,#3
0x0800331E 0000      MOVS     r0,r0
0x08003320 0000      MOVS     r0,r0
0x08003322 0021      MOVS     r1,r4
0x08003324 0000      MOVS     r0,r0
0x08003326 0000      MOVS     r0,r0
0x08003328 0000      MOVS     r0,r0
0x0800332A 1E0E      SUBS     r6,r1,#0
0x0800332C 001E      MOVS     r6,r3
0x0800332E 0100      LSLS     r0,r0,#4
0x08003330 00C0      LSLS     r0,r0,#3
0x08003332 0000      MOVS     r0,r0
0x08003334 0000      MOVS     r0,r0
0x08003336 001E      MOVS     r6,r3
0x08003338 0000      MOVS     r0,r0
0x0800333A 0000      MOVS     r0,r0
0x0800333C 0000      MOVS     r0,r0
0x0800333E 0F0E      LSRS     r6,r1,#28
0x08003340 000F      MOVS     r7,r1
0x08003342 0100      LSLS     r0,r0,#4
0x08003344 00C0      LSLS     r0,r0,#3
0x08003346 0000      MOVS     r0,r0
0x08003348 0000      MOVS     r0,r0
0x0800334A 0000      MOVS     r0,r0
0x0800334C 0000      MOVS     r0,r0
0x0800334E 0000      MOVS     r0,r0
0x08003350 0000      MOVS     r0,r0
0x08003352 070E      LSLS     r6,r1,#28
0x08003354 8087      STRH     r7,[r0,#0x04]
0x08003356 0100      LSLS     r0,r0,#4
0x08003358 00C0      LSLS     r0,r0,#3
0x0800335A 0000      MOVS     r0,r0
0x0800335C 0000      MOVS     r0,r0
0x0800335E 0000      MOVS     r0,r0
0x08003360 0000      MOVS     r0,r0
0x08003362 0000      MOVS     r0,r0
0x08003364 0000      MOVS     r0,r0
0x08003366 030E      LSLS     r6,r1,#12
0x08003368 C0C3      STM      r0!,{r0-r1,r6-r7}
0x0800336A 0100      LSLS     r0,r0,#4
0x0800336C 00C0      LSLS     r0,r0,#3
0x0800336E 0000      MOVS     r0,r0
0x08003370 0000      MOVS     r0,r0
0x08003372 0000      MOVS     r0,r0
0x08003374 0000      MOVS     r0,r0
0x08003376 0000      MOVS     r0,r0
0x08003378 0000      MOVS     r0,r0
0x0800337A 010E      LSLS     r6,r1,#4
0x0800337C E0E1      B        0x08003542
0x0800337E 0100      LSLS     r0,r0,#4
0x08003380 00C0      LSLS     r0,r0,#3
0x08003382 0000      MOVS     r0,r0
0x08003384 0000      MOVS     r0,r0
0x08003386 0000      MOVS     r0,r0
0x08003388 0000      MOVS     r0,r0
0x0800338A 0000      MOVS     r0,r0
0x0800338C 0000      MOVS     r0,r0
0x0800338E 000E      MOVS     r6,r1
0x08003390 F0F00100 
0x08003394 FFC00380  DCD      0xFFC00380   ; ? Undefined
0x08003398 3FFF      SUBS     r7,r7,#0xFF
0x0800339A FFFFFE03  DCD      0xFFFFFE03   ; ? Undefined
0x0800339E FF07E0FF  DCD      0xFF07E0FF   ; ? Undefined
0x080033A2 000E      MOVS     r6,r1
0x080033A4 7878      LDRB     r0,[r7,#0x01]
0x080033A6 0100      LSLS     r0,r0,#4
0x080033A8 FFC00780  DCD      0xFFC00780   ; ? Undefined
0x080033AC 3FFE      SUBS     r7,r7,#0xFE
0x080033AE FFFFFE03  DCD      0xFFFFFE03   ; ? Undefined
0x080033B2 FF07E0FF  DCD      0xFF07E0FF   ; ? Undefined
0x080033B6 000E      MOVS     r6,r1
0x080033B8 3C3C      SUBS     r4,r4,#0x3C
0x080033BA 0100      LSLS     r0,r0,#4
0x080033BC FFC00F80  DCD      0xFFC00F80   ; ? Undefined
0x080033C0 3FFC      SUBS     r7,r7,#0xFC
0x080033C2 FFFFFE03  DCD      0xFFFFFE03   ; ? Undefined
0x080033C6 FF07E0FF  DCD      0xFF07E0FF   ; ? Undefined
0x080033CA 000E      MOVS     r6,r1
0x080033CC 1E1E      SUBS     r6,r3,#0
0x080033CE 0100      LSLS     r0,r0,#4
0x080033D0 FFC01F80  DCD      0xFFC01F80   ; ? Undefined
0x080033D4 3FF8      SUBS     r7,r7,#0xF8
0x080033D6 FFFFFE03  DCD      0xFFFFFE03   ; ? Undefined
0x080033DA FF07E0FF  DCD      0xFF07E0FF   ; ? Undefined
0x080033DE 000E      MOVS     r6,r1
0x080033E0 0F0F      LSRS     r7,r1,#28
0x080033E2 0100      LSLS     r0,r0,#4
0x080033E4 FFC03F80  DCD      0xFFC03F80   ; ? Undefined
0x080033E8 3FF0      SUBS     r7,r7,#0xF0
0x080033EA FFFFFE03  DCD      0xFFFFFE03   ; ? Undefined
0x080033EE FF07E0FF  DCD      0xFF07E0FF   ; ? Undefined
0x080033F2 000E      MOVS     r6,r1
0x080033F4 8707      STRH     r7,[r0,#0x38]
0x080033F6 0180      LSLS     r0,r0,#6
0x080033F8 FFC07F80  DCD      0xFFC07F80   ; ? Undefined
0x080033FC 3FE0      SUBS     r7,r7,#0xE0
0x080033FE FFFFFE03  DCD      0xFFFFFE03   ; ? Undefined
0x08003402 FF07E0FF  DCD      0xFF07E0FF   ; ? Undefined
0x08003406 000E      MOVS     r6,r1
0x08003408 C303      STM      r3!,{r0-r1}
0x0800340A 01C0      LSLS     r0,r0,#7
0x0800340C FFC0FF80  DCD      0xFFC0FF80   ; ? Undefined
0x08003410 3FC0      SUBS     r7,r7,#0xC0
0x08003412 00E0      LSLS     r0,r4,#3
0x08003414 FE03FF07  CDP2     P15,0x00,pc,C3,C7
0x08003418 E0FF      B        0x0800361A
0x0800341A 000E      MOVS     r6,r1
0x0800341C C303      STM      r3!,{r0-r1}
0x0800341E 01C0      LSLS     r0,r0,#7
0x08003420 FFC0FF81  DCD      0xFFC0FF81   ; ? Undefined
0x08003424 3F80      SUBS     r7,r7,#0x80
0x08003426 00E0      LSLS     r0,r4,#3
0x08003428 FE03FC07  CDP2     P12,0x00,pc,C3,C7
0x0800342C 0000      MOVS     r0,r0
0x0800342E 000E      MOVS     r6,r1
0x08003430 8707      STRH     r7,[r0,#0x38]
0x08003432 0180      LSLS     r0,r0,#6
0x08003434 FFC0FF83  DCD      0xFFC0FF83   ; ? Undefined
0x08003438 3F00      SUBS     r7,r7,#0x00
0x0800343A 00E0      LSLS     r0,r4,#3
0x0800343C FE03FC07  CDP2     P12,0x00,pc,C3,C7
0x08003440 0000      MOVS     r0,r0
0x08003442 000E      MOVS     r6,r1
0x08003444 0F0F      LSRS     r7,r1,#28
0x08003446 0100      LSLS     r0,r0,#4
0x08003448 FFC0FE87  DCD      0xFFC0FE87   ; ? Undefined
0x0800344C 3F00      SUBS     r7,r7,#0x00
0x0800344E 00E0      LSLS     r0,r4,#3
0x08003450 FE03FC07  CDP2     P12,0x00,pc,C3,C7
0x08003454 0000      MOVS     r0,r0
0x08003456 000E      MOVS     r6,r1
0x08003458 1E1E      SUBS     r6,r3,#0
0x0800345A 0100      LSLS     r0,r0,#4
0x0800345C FFC0FC8F  DCD      0xFFC0FC8F   ; ? Undefined
0x08003460 3F00      SUBS     r7,r7,#0x00
0x08003462 00E0      LSLS     r0,r4,#3
0x08003464 FE03FC07  CDP2     P12,0x00,pc,C3,C7
0x08003468 0000      MOVS     r0,r0
0x0800346A 000E      MOVS     r6,r1
0x0800346C 3C3C      SUBS     r4,r4,#0x3C
0x0800346E 0100      LSLS     r0,r0,#4
0x08003470 FFC0F89F  DCD      0xFFC0F89F   ; ? Undefined
0x08003474 3F00      SUBS     r7,r7,#0x00
0x08003476 00E0      LSLS     r0,r4,#3
0x08003478 FE03FC07  CDP2     P12,0x00,pc,C3,C7
0x0800347C 0000      MOVS     r0,r0
0x0800347E 000E      MOVS     r6,r1
0x08003480 7878      LDRB     r0,[r7,#0x01]
0x08003482 0100      LSLS     r0,r0,#4
0x08003484 FFC0F0BF  DCD      0xFFC0F0BF   ; ? Undefined
0x08003488 3F00      SUBS     r7,r7,#0x00
0x0800348A FEFFFE03  MRC2     P14,0x07,pc,C15,C3
0x0800348E FC070000  STC      P0,C0,[r7,#0x00]
0x08003492 000E      MOVS     r6,r1
0x08003494 F0F00100 
0x08003498 FFC0E0FF  DCD      0xFFC0E0FF   ; ? Undefined
0x0800349C 3F00      SUBS     r7,r7,#0x00
0x0800349E FEFFFE03  MRC2     P14,0x07,pc,C15,C3
0x080034A2 FC070000  STC      P0,C0,[r7,#0x00]
0x080034A6 010E      LSLS     r6,r1,#4
0x080034A8 E0E1      B        0x0800366E
0x080034AA 0100      LSLS     r0,r0,#4
0x080034AC FFC0C0FF  DCD      0xFFC0C0FF   ; ? Undefined
0x080034B0 3F00      SUBS     r7,r7,#0x00
0x080034B2 FEFFFE03  MRC2     P14,0x07,pc,C15,C3
0x080034B6 FC070000  STC      P0,C0,[r7,#0x00]
0x080034BA 030E      LSLS     r6,r1,#12
0x080034BC C0C3      STM      r0!,{r0-r1,r6-r7}
0x080034BE 0100      LSLS     r0,r0,#4
0x080034C0 FFC080FF  DCD      0xFFC080FF   ; ? Undefined
0x080034C4 3F00      SUBS     r7,r7,#0x00
0x080034C6 FEFFFE03  MRC2     P14,0x07,pc,C15,C3
0x080034CA FC070000  STC      P0,C0,[r7,#0x00]
0x080034CE 070E      LSLS     r6,r1,#28
0x080034D0 8087      STRH     r7,[r0,#0x04]
0x080034D2 0100      LSLS     r0,r0,#4
0x080034D4 FFC0C0FF  DCD      0xFFC0C0FF   ; ? Undefined
0x080034D8 3F00      SUBS     r7,r7,#0x00
0x080034DA FEFFFE03  MRC2     P14,0x07,pc,C15,C3
0x080034DE FC070000  STC      P0,C0,[r7,#0x00]
0x080034E2 0F0E      LSRS     r6,r1,#28
0x080034E4 000F      MOVS     r7,r1
0x080034E6 0100      LSLS     r0,r0,#4
0x080034E8 FFC0E0BF  DCD      0xFFC0E0BF   ; ? Undefined
0x080034EC 3F00      SUBS     r7,r7,#0x00
0x080034EE FEFFFE03  MRC2     P14,0x07,pc,C15,C3
0x080034F2 FC070000  STC      P0,C0,[r7,#0x00]
0x080034F6 1E0E      SUBS     r6,r1,#0
0x080034F8 001E      MOVS     r6,r3
0x080034FA 0100      LSLS     r0,r0,#4
0x080034FC FFC0F09F  DCD      0xFFC0F09F   ; ? Undefined
0x08003500 3F00      SUBS     r7,r7,#0x00
0x08003502 00E0      LSLS     r0,r4,#3
0x08003504 FE03FC07  CDP2     P12,0x00,pc,C3,C7
0x08003508 0000      MOVS     r0,r0
0x0800350A 3C0E      SUBS     r4,r4,#0x0E
0x0800350C 003C      MOVS     r4,r7
0x0800350E 0100      LSLS     r0,r0,#4
0x08003510 FFC0F88F  DCD      0xFFC0F88F   ; ? Undefined
0x08003514 3F00      SUBS     r7,r7,#0x00
0x08003516 00E0      LSLS     r0,r4,#3
0x08003518 FE03FC07  CDP2     P12,0x00,pc,C3,C7
0x0800351C 0000      MOVS     r0,r0
0x0800351E 780E      LDRB     r6,[r1,#0x00]
0x08003520 0078      LSLS     r0,r7,#1
0x08003522 0100      LSLS     r0,r0,#4
0x08003524 FFC0FC87  DCD      0xFFC0FC87   ; ? Undefined
0x08003528 3F00      SUBS     r7,r7,#0x00
0x0800352A 00E0      LSLS     r0,r4,#3
0x0800352C FE03FC07  CDP2     P12,0x00,pc,C3,C7
0x08003530 0000      MOVS     r0,r0
0x08003532 F00E00F0  AND      r0,lr,#0xF0
0x08003536 0100      LSLS     r0,r0,#4
0x08003538 FFC0FE83  DCD      0xFFC0FE83   ; ? Undefined
0x0800353C 3F00      SUBS     r7,r7,#0x00
0x0800353E 00E0      LSLS     r0,r4,#3
0x08003540 FE03FC07  CDP2     P12,0x00,pc,C3,C7
0x08003544 0000      MOVS     r0,r0
0x08003546 E10F      B        0x08003768
0x08003548 00E0      LSLS     r0,r4,#3
0x0800354A 0100      LSLS     r0,r0,#4
0x0800354C FFC0FF81  DCD      0xFFC0FF81   ; ? Undefined
0x08003550 3F00      SUBS     r7,r7,#0x00
0x08003552 00E0      LSLS     r0,r4,#3
0x08003554 FE03FC07  CDP2     P12,0x00,pc,C3,C7
0x08003558 0000      MOVS     r0,r0
0x0800355A C30F      STM      r3!,{r0-r3}
0x0800355C 00C0      LSLS     r0,r0,#3
0x0800355E 0100      LSLS     r0,r0,#4
0x08003560 FFC0FF80  DCD      0xFFC0FF80   ; ? Undefined
0x08003564 3F80      SUBS     r7,r7,#0x80
0x08003566 FFFFFE03  DCD      0xFFFFFE03   ; ? Undefined
0x0800356A FC070000  STC      P0,C0,[r7,#0x00]
0x0800356E 870F      STRH     r7,[r1,#0x38]
0x08003570 0080      LSLS     r0,r0,#2
0x08003572 0100      LSLS     r0,r0,#4
0x08003574 FFC07F80  DCD      0xFFC07F80   ; ? Undefined
0x08003578 3FC0      SUBS     r7,r7,#0xC0
0x0800357A FFFFFE03  DCD      0xFFFFFE03   ; ? Undefined
0x0800357E FC072012  STC      P0,C2,[r7,#-0x48]
0x08003582 0F0F      LSRS     r7,r1,#28
0x08003584 0000      MOVS     r0,r0
0x08003586 0100      LSLS     r0,r0,#4
0x08003588 FFC03F80  DCD      0xFFC03F80   ; ? Undefined
0x0800358C 3FE0      SUBS     r7,r7,#0xE0
0x0800358E FFFFFE03  DCD      0xFFFFFE03   ; ? Undefined
0x08003592 FC07A012  STC      P0,C10,[r7,#-0x48]
0x08003596 1F0E      SUBS     r6,r1,#4
0x08003598 FFFFFFFF  DCD      0xFFFFFFFF   ; ? Undefined
0x0800359C FFC01F80  DCD      0xFFC01F80   ; ? Undefined
0x080035A0 3FF0      SUBS     r7,r7,#0xF0
0x080035A2 FFFFFE03  DCD      0xFFFFFE03   ; ? Undefined
0x080035A6 FC07A012  STC      P0,C10,[r7,#-0x48]
0x080035AA 3F0C      SUBS     r7,r7,#0x0C
0x080035AC FFFFFFFF  DCD      0xFFFFFFFF   ; ? Undefined
0x080035B0 FFC00F80  DCD      0xFFC00F80   ; ? Undefined
0x080035B4 3FF8      SUBS     r7,r7,#0xF8
0x080035B6 FFFFFE03  DCD      0xFFFFFE03   ; ? Undefined
0x080035BA FC076013  STC      P0,C6,[r7,#-0x4C]
0x080035BE 7F08      LDRB     r0,[r1,#0x1C]
0x080035C0 FFFFFFFF  DCD      0xFFFFFFFF   ; ? Undefined
0x080035C4 FFC00780  DCD      0xFFC00780   ; ? Undefined
0x080035C8 3FFC      SUBS     r7,r7,#0xFC
0x080035CA FFFFFE03  DCD      0xFFFFFE03   ; ? Undefined
0x080035CE FC07203A  STC      P0,C2,[r7,#-0xE8]
0x080035D2 0000      MOVS     r0,r0
0x080035D4 0000      MOVS     r0,r0
0x080035D6 0000      MOVS     r0,r0
0x080035D8 0000      MOVS     r0,r0
0x080035DA 0000      MOVS     r0,r0
0x080035DC 0000      MOVS     r0,r0
0x080035DE 0000      MOVS     r0,r0
0x080035E0 0000      MOVS     r0,r0
0x080035E2 0000      MOVS     r0,r0
0x080035E4 0000      MOVS     r0,r0
0x080035E6 0000      MOVS     r0,r0
0x080035E8 3608      ADDS     r6,r6,#0x08
0x080035EA 0800      LSRS     r0,r0,#0
0x080035EC 0000      MOVS     r0,r0
0x080035EE 2000      MOVS     r0,#0x00
0x080035F0 0010      MOVS     r0,r2
0x080035F2 0000      MOVS     r0,r0
0x080035F4 1D8A      ADDS     r2,r1,#6
0x080035F6 0800      LSRS     r0,r0,#0
0x080035F8 3618      ADDS     r6,r6,#0x18
0x080035FA 0800      LSRS     r0,r0,#0
0x080035FC 0010      MOVS     r0,r2
0x080035FE 2000      MOVS     r0,#0x00
0x08003600 0200      LSLS     r0,r0,#8
0x08003602 0000      MOVS     r0,r0
0x08003604 1D9A      ADDS     r2,r3,#6
0x08003606 0800      LSRS     r0,r0,#0
0x08003608 0000      MOVS     r0,r0
0x0800360A 0000      MOVS     r0,r0
0x0800360C 0000      MOVS     r0,r0
0x0800360E 0000      MOVS     r0,r0
0x08003610 0000      MOVS     r0,r0
0x08003612 FFFF9320  DCD      0xFFFF9320   ; ? Undefined
0x08003616 0000      MOVS     r0,r0
0x08003618 0000      MOVS     r0,r0
0x0800361A 0000      MOVS     r0,r0
0x0800361C 0000      MOVS     r0,r0
0x0800361E 0000      MOVS     r0,r0
0x08003620 0000      MOVS     r0,r0
0x08003622 0000      MOVS     r0,r0