; generated by Component: ARM Compiler 5.06 update 6 (build 750) Tool: ArmCC [4d3637]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\inv_mpu_dmp_motion_driver.o --asm_dir=.\list\ --list_dir=.\list\ --depend=.\obj\inv_mpu_dmp_motion_driver.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931 -I.\FWlib\inc -I.\user -I.\CM3 -I.\dmp -I.\RTE\_STM32-FD -If:\Users\Administrator\AppData\Local\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -If:\Users\Administrator\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=530 -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD --omf_browse=.\obj\inv_mpu_dmp_motion_driver.crf dmp\inv_mpu_dmp_motion_driver.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  dmp_load_motion_driver_firmware PROC
;;;512     */
;;;513    int dmp_load_motion_driver_firmware(void)
000000  b510              PUSH     {r4,lr}
;;;514    {
;;;515        return mpu_load_firmware(DMP_CODE_SIZE, dmp_memory, sStartAddress,
000002  23c8              MOVS     r3,#0xc8
000004  f44f6280          MOV      r2,#0x400
000008  49f7              LDR      r1,|L1.1000|
00000a  f64030f6          MOV      r0,#0xbf6
00000e  f7fffffe          BL       mpu_load_firmware
;;;516            DMP_SAMPLE_RATE);
;;;517    }
000012  bd10              POP      {r4,pc}
;;;518    
                          ENDP

                  dmp_set_orientation PROC
;;;525     */
;;;526    int dmp_set_orientation(unsigned short orient)
000014  b510              PUSH     {r4,lr}
;;;527    {
000016  b086              SUB      sp,sp,#0x18
000018  4604              MOV      r4,r0
;;;528        unsigned char gyro_regs[3], accel_regs[3];
;;;529        const unsigned char gyro_axes[3] = {DINA4C, DINACD, DINA6C};
00001a  a0f4              ADR      r0,|L1.1004|
00001c  6800              LDR      r0,[r0,#0]
00001e  9003              STR      r0,[sp,#0xc]
;;;530        const unsigned char accel_axes[3] = {DINA0C, DINAC9, DINA2C};
000020  a0f3              ADR      r0,|L1.1008|
000022  6800              LDR      r0,[r0,#0]
000024  9002              STR      r0,[sp,#8]
;;;531        const unsigned char gyro_sign[3] = {DINA36, DINA56, DINA76};
000026  a0f3              ADR      r0,|L1.1012|
000028  6800              LDR      r0,[r0,#0]
00002a  9001              STR      r0,[sp,#4]
;;;532        const unsigned char accel_sign[3] = {DINA26, DINA46, DINA66};
00002c  a0f2              ADR      r0,|L1.1016|
00002e  6800              LDR      r0,[r0,#0]
000030  9000              STR      r0,[sp,#0]
;;;533    
;;;534        gyro_regs[0] = gyro_axes[orient & 3];
000032  f0040003          AND      r0,r4,#3
000036  a903              ADD      r1,sp,#0xc
000038  5c08              LDRB     r0,[r1,r0]
00003a  f88d0014          STRB     r0,[sp,#0x14]
;;;535        gyro_regs[1] = gyro_axes[(orient >> 3) & 3];
00003e  a803              ADD      r0,sp,#0xc
000040  f3c401c1          UBFX     r1,r4,#3,#2
000044  5c40              LDRB     r0,[r0,r1]
000046  f88d0015          STRB     r0,[sp,#0x15]
;;;536        gyro_regs[2] = gyro_axes[(orient >> 6) & 3];
00004a  a803              ADD      r0,sp,#0xc
00004c  f3c41181          UBFX     r1,r4,#6,#2
000050  5c40              LDRB     r0,[r0,r1]
000052  f88d0016          STRB     r0,[sp,#0x16]
;;;537        accel_regs[0] = accel_axes[orient & 3];
000056  f0040003          AND      r0,r4,#3
00005a  a902              ADD      r1,sp,#8
00005c  5c08              LDRB     r0,[r1,r0]
00005e  f88d0010          STRB     r0,[sp,#0x10]
;;;538        accel_regs[1] = accel_axes[(orient >> 3) & 3];
000062  a802              ADD      r0,sp,#8
000064  f3c401c1          UBFX     r1,r4,#3,#2
000068  5c40              LDRB     r0,[r0,r1]
00006a  f88d0011          STRB     r0,[sp,#0x11]
;;;539        accel_regs[2] = accel_axes[(orient >> 6) & 3];
00006e  a802              ADD      r0,sp,#8
000070  f3c41181          UBFX     r1,r4,#6,#2
000074  5c40              LDRB     r0,[r0,r1]
000076  f88d0012          STRB     r0,[sp,#0x12]
;;;540    
;;;541        /* Chip-to-body, axes only. */
;;;542        if (mpu_write_mem(FCFG_1, 3, gyro_regs))
00007a  aa05              ADD      r2,sp,#0x14
00007c  2103              MOVS     r1,#3
00007e  f2404026          MOV      r0,#0x426
000082  f7fffffe          BL       mpu_write_mem
000086  b118              CBZ      r0,|L1.144|
;;;543            return -1;
000088  f04f30ff          MOV      r0,#0xffffffff
                  |L1.140|
;;;544        if (mpu_write_mem(FCFG_2, 3, accel_regs))
;;;545            return -1;
;;;546    
;;;547        memcpy(gyro_regs, gyro_sign, 3);
;;;548        memcpy(accel_regs, accel_sign, 3);
;;;549        if (orient & 4) {
;;;550            gyro_regs[0] |= 1;
;;;551            accel_regs[0] |= 1;
;;;552        }
;;;553        if (orient & 0x20) {
;;;554            gyro_regs[1] |= 1;
;;;555            accel_regs[1] |= 1;
;;;556        }
;;;557        if (orient & 0x100) {
;;;558            gyro_regs[2] |= 1;
;;;559            accel_regs[2] |= 1;
;;;560        }
;;;561    
;;;562        /* Chip-to-body, sign only. */
;;;563        if (mpu_write_mem(FCFG_3, 3, gyro_regs))
;;;564            return -1;
;;;565        if (mpu_write_mem(FCFG_7, 3, accel_regs))
;;;566            return -1;
;;;567        dmp.orient = orient;
;;;568        return 0;
;;;569    }
00008c  b006              ADD      sp,sp,#0x18
00008e  bd10              POP      {r4,pc}
                  |L1.144|
000090  aa04              ADD      r2,sp,#0x10           ;544
000092  2103              MOVS     r1,#3                 ;544
000094  f240402a          MOV      r0,#0x42a             ;544
000098  f7fffffe          BL       mpu_write_mem
00009c  b110              CBZ      r0,|L1.164|
00009e  f04f30ff          MOV      r0,#0xffffffff        ;545
0000a2  e7f3              B        |L1.140|
                  |L1.164|
0000a4  9801              LDR      r0,[sp,#4]            ;547
0000a6  9005              STR      r0,[sp,#0x14]         ;547
0000a8  9800              LDR      r0,[sp,#0]            ;548
0000aa  9004              STR      r0,[sp,#0x10]         ;548
0000ac  f0040004          AND      r0,r4,#4              ;549
0000b0  b158              CBZ      r0,|L1.202|
0000b2  f89d0014          LDRB     r0,[sp,#0x14]         ;550
0000b6  f0400001          ORR      r0,r0,#1              ;550
0000ba  f88d0014          STRB     r0,[sp,#0x14]         ;550
0000be  f89d0010          LDRB     r0,[sp,#0x10]         ;551
0000c2  f0400001          ORR      r0,r0,#1              ;551
0000c6  f88d0010          STRB     r0,[sp,#0x10]         ;551
                  |L1.202|
0000ca  f0040020          AND      r0,r4,#0x20           ;553
0000ce  b158              CBZ      r0,|L1.232|
0000d0  f89d0015          LDRB     r0,[sp,#0x15]         ;554
0000d4  f0400001          ORR      r0,r0,#1              ;554
0000d8  f88d0015          STRB     r0,[sp,#0x15]         ;554
0000dc  f89d0011          LDRB     r0,[sp,#0x11]         ;555
0000e0  f0400001          ORR      r0,r0,#1              ;555
0000e4  f88d0011          STRB     r0,[sp,#0x11]         ;555
                  |L1.232|
0000e8  f4047080          AND      r0,r4,#0x100          ;557
0000ec  b158              CBZ      r0,|L1.262|
0000ee  f89d0016          LDRB     r0,[sp,#0x16]         ;558
0000f2  f0400001          ORR      r0,r0,#1              ;558
0000f6  f88d0016          STRB     r0,[sp,#0x16]         ;558
0000fa  f89d0012          LDRB     r0,[sp,#0x12]         ;559
0000fe  f0400001          ORR      r0,r0,#1              ;559
000102  f88d0012          STRB     r0,[sp,#0x12]         ;559
                  |L1.262|
000106  aa05              ADD      r2,sp,#0x14           ;563
000108  2103              MOVS     r1,#3                 ;563
00010a  f44f6088          MOV      r0,#0x440             ;563
00010e  f7fffffe          BL       mpu_write_mem
000112  b110              CBZ      r0,|L1.282|
000114  f04f30ff          MOV      r0,#0xffffffff        ;564
000118  e7b8              B        |L1.140|
                  |L1.282|
00011a  aa04              ADD      r2,sp,#0x10           ;565
00011c  2103              MOVS     r1,#3                 ;565
00011e  f2404031          MOV      r0,#0x431             ;565
000122  f7fffffe          BL       mpu_write_mem
000126  b110              CBZ      r0,|L1.302|
000128  f04f30ff          MOV      r0,#0xffffffff        ;566
00012c  e7ae              B        |L1.140|
                  |L1.302|
00012e  48b3              LDR      r0,|L1.1020|
000130  8104              STRH     r4,[r0,#8]            ;567
000132  2000              MOVS     r0,#0                 ;568
000134  e7aa              B        |L1.140|
;;;570    
                          ENDP

                  dmp_set_gyro_bias PROC
;;;580     */
;;;581    int dmp_set_gyro_bias(long *bias)
000136  b51f              PUSH     {r0-r4,lr}
;;;582    {
000138  4604              MOV      r4,r0
;;;583        long gyro_bias_body[3];
;;;584        unsigned char regs[4];
;;;585    
;;;586        gyro_bias_body[0] = bias[dmp.orient & 3];
00013a  48b0              LDR      r0,|L1.1020|
00013c  7a00              LDRB     r0,[r0,#8]  ; dmp
00013e  f0000003          AND      r0,r0,#3
000142  f8540020          LDR      r0,[r4,r0,LSL #2]
000146  9001              STR      r0,[sp,#4]
;;;587        if (dmp.orient & 4)
000148  48ac              LDR      r0,|L1.1020|
00014a  7a00              LDRB     r0,[r0,#8]  ; dmp
00014c  f0000004          AND      r0,r0,#4
000150  b110              CBZ      r0,|L1.344|
;;;588            gyro_bias_body[0] *= -1;
000152  9801              LDR      r0,[sp,#4]
000154  4240              RSBS     r0,r0,#0
000156  9001              STR      r0,[sp,#4]
                  |L1.344|
;;;589        gyro_bias_body[1] = bias[(dmp.orient >> 3) & 3];
000158  48a8              LDR      r0,|L1.1020|
00015a  7a00              LDRB     r0,[r0,#8]  ; dmp
00015c  f3c000c1          UBFX     r0,r0,#3,#2
000160  f8540020          LDR      r0,[r4,r0,LSL #2]
000164  9002              STR      r0,[sp,#8]
;;;590        if (dmp.orient & 0x20)
000166  48a5              LDR      r0,|L1.1020|
000168  7a00              LDRB     r0,[r0,#8]  ; dmp
00016a  f0000020          AND      r0,r0,#0x20
00016e  b110              CBZ      r0,|L1.374|
;;;591            gyro_bias_body[1] *= -1;
000170  9802              LDR      r0,[sp,#8]
000172  4240              RSBS     r0,r0,#0
000174  9002              STR      r0,[sp,#8]
                  |L1.374|
;;;592        gyro_bias_body[2] = bias[(dmp.orient >> 6) & 3];
000176  48a1              LDR      r0,|L1.1020|
000178  7a00              LDRB     r0,[r0,#8]  ; dmp
00017a  f3c01081          UBFX     r0,r0,#6,#2
00017e  f8540020          LDR      r0,[r4,r0,LSL #2]
000182  9003              STR      r0,[sp,#0xc]
;;;593        if (dmp.orient & 0x100)
000184  489d              LDR      r0,|L1.1020|
000186  8900              LDRH     r0,[r0,#8]  ; dmp
000188  f4007080          AND      r0,r0,#0x100
00018c  b110              CBZ      r0,|L1.404|
;;;594            gyro_bias_body[2] *= -1;
00018e  9803              LDR      r0,[sp,#0xc]
000190  4240              RSBS     r0,r0,#0
000192  9003              STR      r0,[sp,#0xc]
                  |L1.404|
;;;595    
;;;596    #ifdef EMPL_NO_64BIT
;;;597        gyro_bias_body[0] = (long)(((float)gyro_bias_body[0] * GYRO_SF) / 1073741824.f);
;;;598        gyro_bias_body[1] = (long)(((float)gyro_bias_body[1] * GYRO_SF) / 1073741824.f);
;;;599        gyro_bias_body[2] = (long)(((float)gyro_bias_body[2] * GYRO_SF) / 1073741824.f);
;;;600    #else
;;;601        gyro_bias_body[0] = (long)(((long long)gyro_bias_body[0] * GYRO_SF) >> 30);
000194  499a              LDR      r1,|L1.1024|
000196  9801              LDR      r0,[sp,#4]
000198  fb800101          SMULL    r0,r1,r0,r1
00019c  0f80              LSRS     r0,r0,#30
00019e  ea400081          ORR      r0,r0,r1,LSL #2
0001a2  9001              STR      r0,[sp,#4]
;;;602        gyro_bias_body[1] = (long)(((long long)gyro_bias_body[1] * GYRO_SF) >> 30);
0001a4  4996              LDR      r1,|L1.1024|
0001a6  9802              LDR      r0,[sp,#8]
0001a8  fb801001          SMULL    r1,r0,r0,r1
0001ac  0082              LSLS     r2,r0,#2
0001ae  ea427091          ORR      r0,r2,r1,LSR #30
0001b2  9002              STR      r0,[sp,#8]
;;;603        gyro_bias_body[2] = (long)(((long long)gyro_bias_body[2] * GYRO_SF) >> 30);
0001b4  4992              LDR      r1,|L1.1024|
0001b6  9803              LDR      r0,[sp,#0xc]
0001b8  fb801001          SMULL    r1,r0,r0,r1
0001bc  0082              LSLS     r2,r0,#2
0001be  ea427091          ORR      r0,r2,r1,LSR #30
0001c2  9003              STR      r0,[sp,#0xc]
;;;604    #endif
;;;605    
;;;606        regs[0] = (unsigned char)((gyro_bias_body[0] >> 24) & 0xFF);
0001c4  9801              LDR      r0,[sp,#4]
0001c6  0e00              LSRS     r0,r0,#24
0001c8  f88d0000          STRB     r0,[sp,#0]
;;;607        regs[1] = (unsigned char)((gyro_bias_body[0] >> 16) & 0xFF);
0001cc  9801              LDR      r0,[sp,#4]
0001ce  0c00              LSRS     r0,r0,#16
0001d0  f88d0001          STRB     r0,[sp,#1]
;;;608        regs[2] = (unsigned char)((gyro_bias_body[0] >> 8) & 0xFF);
0001d4  9801              LDR      r0,[sp,#4]
0001d6  0a00              LSRS     r0,r0,#8
0001d8  f88d0002          STRB     r0,[sp,#2]
;;;609        regs[3] = (unsigned char)(gyro_bias_body[0] & 0xFF);
0001dc  9801              LDR      r0,[sp,#4]
0001de  b2c0              UXTB     r0,r0
0001e0  f88d0003          STRB     r0,[sp,#3]
;;;610        if (mpu_write_mem(D_EXT_GYRO_BIAS_X, 4, regs))
0001e4  466a              MOV      r2,sp
0001e6  2104              MOVS     r1,#4
0001e8  f44f7074          MOV      r0,#0x3d0
0001ec  f7fffffe          BL       mpu_write_mem
0001f0  b118              CBZ      r0,|L1.506|
;;;611            return -1;
0001f2  f04f30ff          MOV      r0,#0xffffffff
                  |L1.502|
;;;612    
;;;613        regs[0] = (unsigned char)((gyro_bias_body[1] >> 24) & 0xFF);
;;;614        regs[1] = (unsigned char)((gyro_bias_body[1] >> 16) & 0xFF);
;;;615        regs[2] = (unsigned char)((gyro_bias_body[1] >> 8) & 0xFF);
;;;616        regs[3] = (unsigned char)(gyro_bias_body[1] & 0xFF);
;;;617        if (mpu_write_mem(D_EXT_GYRO_BIAS_Y, 4, regs))
;;;618            return -1;
;;;619    
;;;620        regs[0] = (unsigned char)((gyro_bias_body[2] >> 24) & 0xFF);
;;;621        regs[1] = (unsigned char)((gyro_bias_body[2] >> 16) & 0xFF);
;;;622        regs[2] = (unsigned char)((gyro_bias_body[2] >> 8) & 0xFF);
;;;623        regs[3] = (unsigned char)(gyro_bias_body[2] & 0xFF);
;;;624        return mpu_write_mem(D_EXT_GYRO_BIAS_Z, 4, regs);
;;;625    }
0001f6  b004              ADD      sp,sp,#0x10
0001f8  bd10              POP      {r4,pc}
                  |L1.506|
0001fa  9802              LDR      r0,[sp,#8]            ;613
0001fc  0e00              LSRS     r0,r0,#24             ;613
0001fe  f88d0000          STRB     r0,[sp,#0]            ;613
000202  9802              LDR      r0,[sp,#8]            ;614
000204  0c00              LSRS     r0,r0,#16             ;614
000206  f88d0001          STRB     r0,[sp,#1]            ;614
00020a  9802              LDR      r0,[sp,#8]            ;615
00020c  0a00              LSRS     r0,r0,#8              ;615
00020e  f88d0002          STRB     r0,[sp,#2]            ;615
000212  9802              LDR      r0,[sp,#8]            ;616
000214  b2c0              UXTB     r0,r0                 ;616
000216  f88d0003          STRB     r0,[sp,#3]            ;616
00021a  466a              MOV      r2,sp                 ;617
00021c  2104              MOVS     r1,#4                 ;617
00021e  f44f7075          MOV      r0,#0x3d4             ;617
000222  f7fffffe          BL       mpu_write_mem
000226  b110              CBZ      r0,|L1.558|
000228  f04f30ff          MOV      r0,#0xffffffff        ;618
00022c  e7e3              B        |L1.502|
                  |L1.558|
00022e  9803              LDR      r0,[sp,#0xc]          ;620
000230  0e00              LSRS     r0,r0,#24             ;620
000232  f88d0000          STRB     r0,[sp,#0]            ;620
000236  9803              LDR      r0,[sp,#0xc]          ;621
000238  0c00              LSRS     r0,r0,#16             ;621
00023a  f88d0001          STRB     r0,[sp,#1]            ;621
00023e  9803              LDR      r0,[sp,#0xc]          ;622
000240  0a00              LSRS     r0,r0,#8              ;622
000242  f88d0002          STRB     r0,[sp,#2]            ;622
000246  9803              LDR      r0,[sp,#0xc]          ;623
000248  b2c0              UXTB     r0,r0                 ;623
00024a  f88d0003          STRB     r0,[sp,#3]            ;623
00024e  466a              MOV      r2,sp                 ;624
000250  2104              MOVS     r1,#4                 ;624
000252  f44f7076          MOV      r0,#0x3d8             ;624
000256  f7fffffe          BL       mpu_write_mem
00025a  e7cc              B        |L1.502|
;;;626    
                          ENDP

                  dmp_set_accel_bias PROC
;;;632     */
;;;633    int dmp_set_accel_bias(long *bias)
00025c  b570              PUSH     {r4-r6,lr}
;;;634    {
00025e  b088              SUB      sp,sp,#0x20
000260  4606              MOV      r6,r0
;;;635        long accel_bias_body[3];
;;;636        unsigned char regs[12];
;;;637        long long accel_sf;
;;;638        unsigned short accel_sens;
;;;639    
;;;640        mpu_get_accel_sens(&accel_sens);
000262  a801              ADD      r0,sp,#4
000264  f7fffffe          BL       mpu_get_accel_sens
;;;641        accel_sf = (long long)accel_sens << 15;
000268  f8bd0004          LDRH     r0,[sp,#4]
00026c  2100              MOVS     r1,#0
00026e  03c9              LSLS     r1,r1,#15
000270  ea414550          ORR      r5,r1,r0,LSR #17
000274  03c4              LSLS     r4,r0,#15
;;;642        //__no_operation();
;;;643    
;;;644        accel_bias_body[0] = bias[dmp.orient & 3];
000276  4861              LDR      r0,|L1.1020|
000278  7a00              LDRB     r0,[r0,#8]  ; dmp
00027a  f0000003          AND      r0,r0,#3
00027e  f8560020          LDR      r0,[r6,r0,LSL #2]
000282  9005              STR      r0,[sp,#0x14]
;;;645        if (dmp.orient & 4)
000284  485d              LDR      r0,|L1.1020|
000286  7a00              LDRB     r0,[r0,#8]  ; dmp
000288  f0000004          AND      r0,r0,#4
00028c  b110              CBZ      r0,|L1.660|
;;;646            accel_bias_body[0] *= -1;
00028e  9805              LDR      r0,[sp,#0x14]
000290  4240              RSBS     r0,r0,#0
000292  9005              STR      r0,[sp,#0x14]
                  |L1.660|
;;;647        accel_bias_body[1] = bias[(dmp.orient >> 3) & 3];
000294  4859              LDR      r0,|L1.1020|
000296  7a00              LDRB     r0,[r0,#8]  ; dmp
000298  f3c000c1          UBFX     r0,r0,#3,#2
00029c  f8560020          LDR      r0,[r6,r0,LSL #2]
0002a0  9006              STR      r0,[sp,#0x18]
;;;648        if (dmp.orient & 0x20)
0002a2  4856              LDR      r0,|L1.1020|
0002a4  7a00              LDRB     r0,[r0,#8]  ; dmp
0002a6  f0000020          AND      r0,r0,#0x20
0002aa  b110              CBZ      r0,|L1.690|
;;;649            accel_bias_body[1] *= -1;
0002ac  9806              LDR      r0,[sp,#0x18]
0002ae  4240              RSBS     r0,r0,#0
0002b0  9006              STR      r0,[sp,#0x18]
                  |L1.690|
;;;650        accel_bias_body[2] = bias[(dmp.orient >> 6) & 3];
0002b2  4852              LDR      r0,|L1.1020|
0002b4  7a00              LDRB     r0,[r0,#8]  ; dmp
0002b6  f3c01081          UBFX     r0,r0,#6,#2
0002ba  f8560020          LDR      r0,[r6,r0,LSL #2]
0002be  9007              STR      r0,[sp,#0x1c]
;;;651        if (dmp.orient & 0x100)
0002c0  484e              LDR      r0,|L1.1020|
0002c2  8900              LDRH     r0,[r0,#8]  ; dmp
0002c4  f4007080          AND      r0,r0,#0x100
0002c8  b110              CBZ      r0,|L1.720|
;;;652            accel_bias_body[2] *= -1;
0002ca  9807              LDR      r0,[sp,#0x1c]
0002cc  4240              RSBS     r0,r0,#0
0002ce  9007              STR      r0,[sp,#0x1c]
                  |L1.720|
;;;653    
;;;654    #ifdef EMPL_NO_64BIT
;;;655        accel_bias_body[0] = (long)(((float)accel_bias_body[0] * accel_sf) / 1073741824.f);
;;;656        accel_bias_body[1] = (long)(((float)accel_bias_body[1] * accel_sf) / 1073741824.f);
;;;657        accel_bias_body[2] = (long)(((float)accel_bias_body[2] * accel_sf) / 1073741824.f);
;;;658    #else
;;;659        accel_bias_body[0] = (long)(((long long)accel_bias_body[0] * accel_sf) >> 30);
0002d0  9805              LDR      r0,[sp,#0x14]
0002d2  17c1              ASRS     r1,r0,#31
0002d4  fba02304          UMULL    r2,r3,r0,r4
0002d8  fb013104          MLA      r1,r1,r4,r3
0002dc  fb001005          MLA      r0,r0,r5,r1
0002e0  0081              LSLS     r1,r0,#2
0002e2  ea417092          ORR      r0,r1,r2,LSR #30
0002e6  9005              STR      r0,[sp,#0x14]
;;;660        accel_bias_body[1] = (long)(((long long)accel_bias_body[1] * accel_sf) >> 30);
0002e8  9806              LDR      r0,[sp,#0x18]
0002ea  17c1              ASRS     r1,r0,#31
0002ec  fba02304          UMULL    r2,r3,r0,r4
0002f0  fb013104          MLA      r1,r1,r4,r3
0002f4  fb001005          MLA      r0,r0,r5,r1
0002f8  0081              LSLS     r1,r0,#2
0002fa  ea417092          ORR      r0,r1,r2,LSR #30
0002fe  9006              STR      r0,[sp,#0x18]
;;;661        accel_bias_body[2] = (long)(((long long)accel_bias_body[2] * accel_sf) >> 30);
000300  9807              LDR      r0,[sp,#0x1c]
000302  17c1              ASRS     r1,r0,#31
000304  fba02304          UMULL    r2,r3,r0,r4
000308  fb013104          MLA      r1,r1,r4,r3
00030c  fb001005          MLA      r0,r0,r5,r1
000310  0081              LSLS     r1,r0,#2
000312  ea417092          ORR      r0,r1,r2,LSR #30
000316  9007              STR      r0,[sp,#0x1c]
;;;662    #endif
;;;663    
;;;664        regs[0] = (unsigned char)((accel_bias_body[0] >> 24) & 0xFF);
000318  9805              LDR      r0,[sp,#0x14]
00031a  0e00              LSRS     r0,r0,#24
00031c  f88d0008          STRB     r0,[sp,#8]
;;;665        regs[1] = (unsigned char)((accel_bias_body[0] >> 16) & 0xFF);
000320  9805              LDR      r0,[sp,#0x14]
000322  0c00              LSRS     r0,r0,#16
000324  f88d0009          STRB     r0,[sp,#9]
;;;666        regs[2] = (unsigned char)((accel_bias_body[0] >> 8) & 0xFF);
000328  9805              LDR      r0,[sp,#0x14]
00032a  0a00              LSRS     r0,r0,#8
00032c  f88d000a          STRB     r0,[sp,#0xa]
;;;667        regs[3] = (unsigned char)(accel_bias_body[0] & 0xFF);
000330  9805              LDR      r0,[sp,#0x14]
000332  b2c0              UXTB     r0,r0
000334  f88d000b          STRB     r0,[sp,#0xb]
;;;668        regs[4] = (unsigned char)((accel_bias_body[1] >> 24) & 0xFF);
000338  9806              LDR      r0,[sp,#0x18]
00033a  0e00              LSRS     r0,r0,#24
00033c  f88d000c          STRB     r0,[sp,#0xc]
;;;669        regs[5] = (unsigned char)((accel_bias_body[1] >> 16) & 0xFF);
000340  9806              LDR      r0,[sp,#0x18]
000342  0c00              LSRS     r0,r0,#16
000344  f88d000d          STRB     r0,[sp,#0xd]
;;;670        regs[6] = (unsigned char)((accel_bias_body[1] >> 8) & 0xFF);
000348  9806              LDR      r0,[sp,#0x18]
00034a  0a00              LSRS     r0,r0,#8
00034c  f88d000e          STRB     r0,[sp,#0xe]
;;;671        regs[7] = (unsigned char)(accel_bias_body[1] & 0xFF);
000350  9806              LDR      r0,[sp,#0x18]
000352  b2c0              UXTB     r0,r0
000354  f88d000f          STRB     r0,[sp,#0xf]
;;;672        regs[8] = (unsigned char)((accel_bias_body[2] >> 24) & 0xFF);
000358  9807              LDR      r0,[sp,#0x1c]
00035a  0e00              LSRS     r0,r0,#24
00035c  f88d0010          STRB     r0,[sp,#0x10]
;;;673        regs[9] = (unsigned char)((accel_bias_body[2] >> 16) & 0xFF);
000360  9807              LDR      r0,[sp,#0x1c]
000362  0c00              LSRS     r0,r0,#16
000364  f88d0011          STRB     r0,[sp,#0x11]
;;;674        regs[10] = (unsigned char)((accel_bias_body[2] >> 8) & 0xFF);
000368  9807              LDR      r0,[sp,#0x1c]
00036a  0a00              LSRS     r0,r0,#8
00036c  f88d0012          STRB     r0,[sp,#0x12]
;;;675        regs[11] = (unsigned char)(accel_bias_body[2] & 0xFF);
000370  9807              LDR      r0,[sp,#0x1c]
000372  b2c0              UXTB     r0,r0
000374  f88d0013          STRB     r0,[sp,#0x13]
;;;676        return mpu_write_mem(D_ACCEL_BIAS, 12, regs);
000378  aa02              ADD      r2,sp,#8
00037a  210c              MOVS     r1,#0xc
00037c  f44f7025          MOV      r0,#0x294
000380  f7fffffe          BL       mpu_write_mem
;;;677    }
000384  b008              ADD      sp,sp,#0x20
000386  bd70              POP      {r4-r6,pc}
;;;678    
                          ENDP

                  dmp_set_fifo_rate PROC
;;;684     */
;;;685    int dmp_set_fifo_rate(unsigned short rate)
000388  b530              PUSH     {r4,r5,lr}
;;;686    {
00038a  b085              SUB      sp,sp,#0x14
00038c  4604              MOV      r4,r0
;;;687        const unsigned char regs_end[12] = {DINAFE, DINAF2, DINAAB,
00038e  a21d              ADR      r2,|L1.1028|
000390  ca07              LDM      r2,{r0-r2}
000392  ab02              ADD      r3,sp,#8
000394  c307              STM      r3!,{r0-r2}
;;;688            0xc4, DINAAA, DINAF1, DINADF, DINADF, 0xBB, 0xAF, DINADF, DINADF};
;;;689        unsigned short div;
;;;690        unsigned char tmp[8];
;;;691    
;;;692        if (rate > DMP_SAMPLE_RATE)
000396  2cc8              CMP      r4,#0xc8
000398  dd03              BLE      |L1.930|
;;;693            return -1;
00039a  f04f30ff          MOV      r0,#0xffffffff
                  |L1.926|
;;;694        div = DMP_SAMPLE_RATE / rate - 1;
;;;695        tmp[0] = (unsigned char)((div >> 8) & 0xFF);
;;;696        tmp[1] = (unsigned char)(div & 0xFF);
;;;697        if (mpu_write_mem(D_0_22, 2, tmp))
;;;698            return -1;
;;;699        if (mpu_write_mem(CFG_6, 12, (unsigned char*)regs_end))
;;;700            return -1;
;;;701    
;;;702        dmp.fifo_rate = rate;
;;;703        return 0;
;;;704    }
00039e  b005              ADD      sp,sp,#0x14
0003a0  bd30              POP      {r4,r5,pc}
                  |L1.930|
0003a2  20c8              MOVS     r0,#0xc8              ;694
0003a4  fb90f0f4          SDIV     r0,r0,r4              ;694
0003a8  1e40              SUBS     r0,r0,#1              ;694
0003aa  b285              UXTH     r5,r0                 ;694
0003ac  0a28              LSRS     r0,r5,#8              ;695
0003ae  f88d0000          STRB     r0,[sp,#0]            ;695
0003b2  b2e8              UXTB     r0,r5                 ;696
0003b4  f88d0001          STRB     r0,[sp,#1]            ;696
0003b8  466a              MOV      r2,sp                 ;697
0003ba  2102              MOVS     r1,#2                 ;697
0003bc  f2402016          MOV      r0,#0x216             ;697
0003c0  f7fffffe          BL       mpu_write_mem
0003c4  b110              CBZ      r0,|L1.972|
0003c6  f04f30ff          MOV      r0,#0xffffffff        ;698
0003ca  e7e8              B        |L1.926|
                  |L1.972|
0003cc  aa02              ADD      r2,sp,#8              ;699
0003ce  210c              MOVS     r1,#0xc               ;699
0003d0  f64020c1          MOV      r0,#0xac1             ;699
0003d4  f7fffffe          BL       mpu_write_mem
0003d8  b110              CBZ      r0,|L1.992|
0003da  f04f30ff          MOV      r0,#0xffffffff        ;700
0003de  e7de              B        |L1.926|
                  |L1.992|
0003e0  4806              LDR      r0,|L1.1020|
0003e2  8184              STRH     r4,[r0,#0xc]          ;702
0003e4  2000              MOVS     r0,#0                 ;703
0003e6  e7da              B        |L1.926|
                  |L1.1000|
                          DCD      dmp_memory
                  |L1.1004|
0003ec  4ccd6c00          DCB      "L",205,"l",0
                  |L1.1008|
0003f0  0cc92c00          DCB      "\f",201,",",0
                  |L1.1012|
0003f4  36567600          DCB      "6Vv",0
                  |L1.1016|
0003f8  26466600          DCB      "&Ff",0
                  |L1.1020|
                          DCD      ||dmp||
                  |L1.1024|
                          DCD      0x02cae309
                  |L1.1028|
000404  fef2abc4          DCB      254,242,171,196,170,241,223,223,187,175,223,223
000408  aaf1dfdf
00040c  bbafdfdf
                          ENDP

                  dmp_get_fifo_rate PROC
;;;710     */
;;;711    int dmp_get_fifo_rate(unsigned short *rate)
000410  4601              MOV      r1,r0
;;;712    {
;;;713        rate[0] = dmp.fifo_rate;
000412  48fc              LDR      r0,|L1.2052|
000414  8980              LDRH     r0,[r0,#0xc]  ; dmp
000416  8008              STRH     r0,[r1,#0]
;;;714        return 0;
000418  2000              MOVS     r0,#0
;;;715    }
00041a  4770              BX       lr
;;;716    
                          ENDP

                  dmp_set_tap_thresh PROC
;;;722     */
;;;723    int dmp_set_tap_thresh(unsigned char axis, unsigned short thresh)
00041c  e92d47fc          PUSH     {r2-r10,lr}
;;;724    {
000420  4606              MOV      r6,r0
000422  460f              MOV      r7,r1
;;;725        unsigned char tmp[4], accel_fsr;
;;;726        float scaled_thresh;
;;;727        unsigned short dmp_thresh, dmp_thresh_2;
;;;728        if (!(axis & TAP_XYZ) || thresh > 1600)
000424  f0060007          AND      r0,r6,#7
000428  b110              CBZ      r0,|L1.1072|
00042a  f5b76fc8          CMP      r7,#0x640
00042e  dd03              BLE      |L1.1080|
                  |L1.1072|
;;;729            return -1;
000430  f04f30ff          MOV      r0,#0xffffffff
                  |L1.1076|
;;;730    
;;;731        scaled_thresh = (float)thresh / DMP_SAMPLE_RATE;
;;;732    
;;;733        mpu_get_accel_fsr(&accel_fsr);
;;;734        switch (accel_fsr) {
;;;735        case 2:
;;;736            dmp_thresh = (unsigned short)(scaled_thresh * 16384);
;;;737            /* dmp_thresh * 0.75 */
;;;738            dmp_thresh_2 = (unsigned short)(scaled_thresh * 12288);
;;;739            break;
;;;740        case 4:
;;;741            dmp_thresh = (unsigned short)(scaled_thresh * 8192);
;;;742            /* dmp_thresh * 0.75 */
;;;743            dmp_thresh_2 = (unsigned short)(scaled_thresh * 6144);
;;;744            break;
;;;745        case 8:
;;;746            dmp_thresh = (unsigned short)(scaled_thresh * 4096);
;;;747            /* dmp_thresh * 0.75 */
;;;748            dmp_thresh_2 = (unsigned short)(scaled_thresh * 3072);
;;;749            break;
;;;750        case 16:
;;;751            dmp_thresh = (unsigned short)(scaled_thresh * 2048);
;;;752            /* dmp_thresh * 0.75 */
;;;753            dmp_thresh_2 = (unsigned short)(scaled_thresh * 1536);
;;;754            break;
;;;755        default:
;;;756            return -1;
;;;757        }
;;;758        tmp[0] = (unsigned char)(dmp_thresh >> 8);
;;;759        tmp[1] = (unsigned char)(dmp_thresh & 0xFF);
;;;760        tmp[2] = (unsigned char)(dmp_thresh_2 >> 8);
;;;761        tmp[3] = (unsigned char)(dmp_thresh_2 & 0xFF);
;;;762    
;;;763        if (axis & TAP_X) {
;;;764            if (mpu_write_mem(DMP_TAP_THX, 2, tmp))
;;;765                return -1;
;;;766            if (mpu_write_mem(D_1_36, 2, tmp+2))
;;;767                return -1;
;;;768        }
;;;769        if (axis & TAP_Y) {
;;;770            if (mpu_write_mem(DMP_TAP_THY, 2, tmp))
;;;771                return -1;
;;;772            if (mpu_write_mem(D_1_40, 2, tmp+2))
;;;773                return -1;
;;;774        }
;;;775        if (axis & TAP_Z) {
;;;776            if (mpu_write_mem(DMP_TAP_THZ, 2, tmp))
;;;777                return -1;
;;;778            if (mpu_write_mem(D_1_44, 2, tmp+2))
;;;779                return -1;
;;;780        }
;;;781        return 0;
;;;782    }
000434  e8bd87fc          POP      {r2-r10,pc}
                  |L1.1080|
000438  4638              MOV      r0,r7                 ;731
00043a  f7fffffe          BL       __aeabi_ui2f
00043e  4681              MOV      r9,r0                 ;731
000440  49f1              LDR      r1,|L1.2056|
000442  f7fffffe          BL       __aeabi_fdiv
000446  4680              MOV      r8,r0                 ;731
000448  4668              MOV      r0,sp                 ;733
00044a  f7fffffe          BL       mpu_get_accel_fsr
00044e  f89d0000          LDRB     r0,[sp,#0]            ;734
000452  2802              CMP      r0,#2                 ;734
000454  d006              BEQ      |L1.1124|
000456  2804              CMP      r0,#4                 ;734
000458  d016              BEQ      |L1.1160|
00045a  2808              CMP      r0,#8                 ;734
00045c  d026              BEQ      |L1.1196|
00045e  2810              CMP      r0,#0x10              ;734
000460  d148              BNE      |L1.1268|
000462  e035              B        |L1.1232|
                  |L1.1124|
000464  f04f418d          MOV      r1,#0x46800000        ;736
000468  4640              MOV      r0,r8                 ;736
00046a  f7fffffe          BL       __aeabi_fmul
00046e  4681              MOV      r9,r0                 ;736
000470  f7fffffe          BL       __aeabi_f2uiz
000474  b284              UXTH     r4,r0                 ;736
000476  49e5              LDR      r1,|L1.2060|
000478  4640              MOV      r0,r8                 ;738
00047a  f7fffffe          BL       __aeabi_fmul
00047e  4681              MOV      r9,r0                 ;738
000480  f7fffffe          BL       __aeabi_f2uiz
000484  b285              UXTH     r5,r0                 ;738
000486  e038              B        |L1.1274|
                  |L1.1160|
000488  f04f418c          MOV      r1,#0x46000000        ;741
00048c  4640              MOV      r0,r8                 ;741
00048e  f7fffffe          BL       __aeabi_fmul
000492  4681              MOV      r9,r0                 ;741
000494  f7fffffe          BL       __aeabi_f2uiz
000498  b284              UXTH     r4,r0                 ;741
00049a  49dd              LDR      r1,|L1.2064|
00049c  4640              MOV      r0,r8                 ;743
00049e  f7fffffe          BL       __aeabi_fmul
0004a2  4681              MOV      r9,r0                 ;743
0004a4  f7fffffe          BL       __aeabi_f2uiz
0004a8  b285              UXTH     r5,r0                 ;743
0004aa  e026              B        |L1.1274|
                  |L1.1196|
0004ac  f04f418b          MOV      r1,#0x45800000        ;746
0004b0  4640              MOV      r0,r8                 ;746
0004b2  f7fffffe          BL       __aeabi_fmul
0004b6  4681              MOV      r9,r0                 ;746
0004b8  f7fffffe          BL       __aeabi_f2uiz
0004bc  b284              UXTH     r4,r0                 ;746
0004be  49d5              LDR      r1,|L1.2068|
0004c0  4640              MOV      r0,r8                 ;748
0004c2  f7fffffe          BL       __aeabi_fmul
0004c6  4681              MOV      r9,r0                 ;748
0004c8  f7fffffe          BL       __aeabi_f2uiz
0004cc  b285              UXTH     r5,r0                 ;748
0004ce  e014              B        |L1.1274|
                  |L1.1232|
0004d0  f04f418a          MOV      r1,#0x45000000        ;751
0004d4  4640              MOV      r0,r8                 ;751
0004d6  f7fffffe          BL       __aeabi_fmul
0004da  4681              MOV      r9,r0                 ;751
0004dc  f7fffffe          BL       __aeabi_f2uiz
0004e0  b284              UXTH     r4,r0                 ;751
0004e2  49cd              LDR      r1,|L1.2072|
0004e4  4640              MOV      r0,r8                 ;753
0004e6  f7fffffe          BL       __aeabi_fmul
0004ea  4681              MOV      r9,r0                 ;753
0004ec  f7fffffe          BL       __aeabi_f2uiz
0004f0  b285              UXTH     r5,r0                 ;753
0004f2  e002              B        |L1.1274|
                  |L1.1268|
0004f4  f04f30ff          MOV      r0,#0xffffffff        ;756
0004f8  e79c              B        |L1.1076|
                  |L1.1274|
0004fa  bf00              NOP                            ;739
0004fc  1220              ASRS     r0,r4,#8              ;758
0004fe  f88d0004          STRB     r0,[sp,#4]            ;758
000502  b2e0              UXTB     r0,r4                 ;759
000504  f88d0005          STRB     r0,[sp,#5]            ;759
000508  1228              ASRS     r0,r5,#8              ;760
00050a  f88d0006          STRB     r0,[sp,#6]            ;760
00050e  b2e8              UXTB     r0,r5                 ;761
000510  f88d0007          STRB     r0,[sp,#7]            ;761
000514  f0060001          AND      r0,r6,#1              ;763
000518  b1a0              CBZ      r0,|L1.1348|
00051a  aa01              ADD      r2,sp,#4              ;764
00051c  2102              MOVS     r1,#2                 ;764
00051e  f44f70ea          MOV      r0,#0x1d4             ;764
000522  f7fffffe          BL       mpu_write_mem
000526  b110              CBZ      r0,|L1.1326|
000528  f04f30ff          MOV      r0,#0xffffffff        ;765
00052c  e782              B        |L1.1076|
                  |L1.1326|
00052e  f10d0206          ADD      r2,sp,#6              ;766
000532  2102              MOVS     r1,#2                 ;766
000534  f44f7092          MOV      r0,#0x124             ;766
000538  f7fffffe          BL       mpu_write_mem
00053c  b110              CBZ      r0,|L1.1348|
00053e  f04f30ff          MOV      r0,#0xffffffff        ;767
000542  e777              B        |L1.1076|
                  |L1.1348|
000544  f0060002          AND      r0,r6,#2              ;769
000548  b1a0              CBZ      r0,|L1.1396|
00054a  aa01              ADD      r2,sp,#4              ;770
00054c  2102              MOVS     r1,#2                 ;770
00054e  f44f70ec          MOV      r0,#0x1d8             ;770
000552  f7fffffe          BL       mpu_write_mem
000556  b110              CBZ      r0,|L1.1374|
000558  f04f30ff          MOV      r0,#0xffffffff        ;771
00055c  e76a              B        |L1.1076|
                  |L1.1374|
00055e  f10d0206          ADD      r2,sp,#6              ;772
000562  2102              MOVS     r1,#2                 ;772
000564  f44f7094          MOV      r0,#0x128             ;772
000568  f7fffffe          BL       mpu_write_mem
00056c  b110              CBZ      r0,|L1.1396|
00056e  f04f30ff          MOV      r0,#0xffffffff        ;773
000572  e75f              B        |L1.1076|
                  |L1.1396|
000574  f0060004          AND      r0,r6,#4              ;775
000578  b1a0              CBZ      r0,|L1.1444|
00057a  aa01              ADD      r2,sp,#4              ;776
00057c  2102              MOVS     r1,#2                 ;776
00057e  f44f70ee          MOV      r0,#0x1dc             ;776
000582  f7fffffe          BL       mpu_write_mem
000586  b110              CBZ      r0,|L1.1422|
000588  f04f30ff          MOV      r0,#0xffffffff        ;777
00058c  e752              B        |L1.1076|
                  |L1.1422|
00058e  f10d0206          ADD      r2,sp,#6              ;778
000592  2102              MOVS     r1,#2                 ;778
000594  f44f7096          MOV      r0,#0x12c             ;778
000598  f7fffffe          BL       mpu_write_mem
00059c  b110              CBZ      r0,|L1.1444|
00059e  f04f30ff          MOV      r0,#0xffffffff        ;779
0005a2  e747              B        |L1.1076|
                  |L1.1444|
0005a4  2000              MOVS     r0,#0                 ;781
0005a6  e745              B        |L1.1076|
;;;783    
                          ENDP

                  dmp_set_tap_axes PROC
;;;788     */
;;;789    int dmp_set_tap_axes(unsigned char axis)
0005a8  b538              PUSH     {r3-r5,lr}
;;;790    {
0005aa  4604              MOV      r4,r0
;;;791        unsigned char tmp = 0;
0005ac  2000              MOVS     r0,#0
0005ae  9000              STR      r0,[sp,#0]
;;;792    
;;;793        if (axis & TAP_X)
0005b0  f0040001          AND      r0,r4,#1
0005b4  b120              CBZ      r0,|L1.1472|
;;;794            tmp |= 0x30;
0005b6  f89d0000          LDRB     r0,[sp,#0]
0005ba  f0400030          ORR      r0,r0,#0x30
0005be  9000              STR      r0,[sp,#0]
                  |L1.1472|
;;;795        if (axis & TAP_Y)
0005c0  f0040002          AND      r0,r4,#2
0005c4  b120              CBZ      r0,|L1.1488|
;;;796            tmp |= 0x0C;
0005c6  f89d0000          LDRB     r0,[sp,#0]
0005ca  f040000c          ORR      r0,r0,#0xc
0005ce  9000              STR      r0,[sp,#0]
                  |L1.1488|
;;;797        if (axis & TAP_Z)
0005d0  f0040004          AND      r0,r4,#4
0005d4  b120              CBZ      r0,|L1.1504|
;;;798            tmp |= 0x03;
0005d6  f89d0000          LDRB     r0,[sp,#0]
0005da  f0400003          ORR      r0,r0,#3
0005de  9000              STR      r0,[sp,#0]
                  |L1.1504|
;;;799        return mpu_write_mem(D_1_72, 1, &tmp);
0005e0  466a              MOV      r2,sp
0005e2  2101              MOVS     r1,#1
0005e4  f44f70a4          MOV      r0,#0x148
0005e8  f7fffffe          BL       mpu_write_mem
;;;800    }
0005ec  bd38              POP      {r3-r5,pc}
;;;801    
                          ENDP

                  dmp_set_tap_count PROC
;;;806     */
;;;807    int dmp_set_tap_count(unsigned char min_taps)
0005ee  b538              PUSH     {r3-r5,lr}
;;;808    {
0005f0  4604              MOV      r4,r0
;;;809        unsigned char tmp;
;;;810    
;;;811        if (min_taps < 1)
0005f2  2c01              CMP      r4,#1
0005f4  da01              BGE      |L1.1530|
;;;812            min_taps = 1;
0005f6  2401              MOVS     r4,#1
0005f8  e002              B        |L1.1536|
                  |L1.1530|
;;;813        else if (min_taps > 4)
0005fa  2c04              CMP      r4,#4
0005fc  dd00              BLE      |L1.1536|
;;;814            min_taps = 4;
0005fe  2404              MOVS     r4,#4
                  |L1.1536|
;;;815    
;;;816        tmp = min_taps - 1;
000600  1e60              SUBS     r0,r4,#1
000602  b2c0              UXTB     r0,r0
000604  9000              STR      r0,[sp,#0]
;;;817        return mpu_write_mem(D_1_79, 1, &tmp);
000606  466a              MOV      r2,sp
000608  2101              MOVS     r1,#1
00060a  f240104f          MOV      r0,#0x14f
00060e  f7fffffe          BL       mpu_write_mem
;;;818    }
000612  bd38              POP      {r3-r5,pc}
;;;819    
                          ENDP

                  dmp_set_tap_time PROC
;;;824     */
;;;825    int dmp_set_tap_time(unsigned short time)
000614  b538              PUSH     {r3-r5,lr}
;;;826    {
000616  4604              MOV      r4,r0
;;;827        unsigned short dmp_time;
;;;828        unsigned char tmp[2];
;;;829    
;;;830        dmp_time = time / (1000 / DMP_SAMPLE_RATE);
000618  2005              MOVS     r0,#5
00061a  fb94f0f0          SDIV     r0,r4,r0
00061e  b285              UXTH     r5,r0
;;;831        tmp[0] = (unsigned char)(dmp_time >> 8);
000620  1228              ASRS     r0,r5,#8
000622  f88d0000          STRB     r0,[sp,#0]
;;;832        tmp[1] = (unsigned char)(dmp_time & 0xFF);
000626  b2e8              UXTB     r0,r5
000628  f88d0001          STRB     r0,[sp,#1]
;;;833        return mpu_write_mem(DMP_TAPW_MIN, 2, tmp);
00062c  466a              MOV      r2,sp
00062e  2102              MOVS     r1,#2
000630  f44f70ef          MOV      r0,#0x1de
000634  f7fffffe          BL       mpu_write_mem
;;;834    }
000638  bd38              POP      {r3-r5,pc}
;;;835    
                          ENDP

                  dmp_set_tap_time_multi PROC
;;;840     */
;;;841    int dmp_set_tap_time_multi(unsigned short time)
00063a  b538              PUSH     {r3-r5,lr}
;;;842    {
00063c  4604              MOV      r4,r0
;;;843        unsigned short dmp_time;
;;;844        unsigned char tmp[2];
;;;845    
;;;846        dmp_time = time / (1000 / DMP_SAMPLE_RATE);
00063e  2005              MOVS     r0,#5
000640  fb94f0f0          SDIV     r0,r4,r0
000644  b285              UXTH     r5,r0
;;;847        tmp[0] = (unsigned char)(dmp_time >> 8);
000646  1228              ASRS     r0,r5,#8
000648  f88d0000          STRB     r0,[sp,#0]
;;;848        tmp[1] = (unsigned char)(dmp_time & 0xFF);
00064c  b2e8              UXTB     r0,r5
00064e  f88d0001          STRB     r0,[sp,#1]
;;;849        return mpu_write_mem(D_1_218, 2, tmp);
000652  466a              MOV      r2,sp
000654  2102              MOVS     r1,#2
000656  f44f70ed          MOV      r0,#0x1da
00065a  f7fffffe          BL       mpu_write_mem
;;;850    }
00065e  bd38              POP      {r3-r5,pc}
;;;851    
                          ENDP

                  dmp_set_shake_reject_thresh PROC
;;;858     */
;;;859    int dmp_set_shake_reject_thresh(long sf, unsigned short thresh)
000660  b5f8              PUSH     {r3-r7,lr}
;;;860    {
000662  4605              MOV      r5,r0
000664  460e              MOV      r6,r1
;;;861        unsigned char tmp[4];
;;;862        long thresh_scaled = sf / 1000 * thresh;
000666  f44f707a          MOV      r0,#0x3e8
00066a  fb95f0f0          SDIV     r0,r5,r0
00066e  fb00f406          MUL      r4,r0,r6
;;;863        tmp[0] = (unsigned char)(((long)thresh_scaled >> 24) & 0xFF);
000672  0e20              LSRS     r0,r4,#24
000674  f88d0000          STRB     r0,[sp,#0]
;;;864        tmp[1] = (unsigned char)(((long)thresh_scaled >> 16) & 0xFF);
000678  0c20              LSRS     r0,r4,#16
00067a  f88d0001          STRB     r0,[sp,#1]
;;;865        tmp[2] = (unsigned char)(((long)thresh_scaled >> 8) & 0xFF);
00067e  0a20              LSRS     r0,r4,#8
000680  f88d0002          STRB     r0,[sp,#2]
;;;866        tmp[3] = (unsigned char)((long)thresh_scaled & 0xFF);
000684  b2e0              UXTB     r0,r4
000686  f88d0003          STRB     r0,[sp,#3]
;;;867        return mpu_write_mem(D_1_92, 4, tmp);
00068a  466a              MOV      r2,sp
00068c  2104              MOVS     r1,#4
00068e  f44f70ae          MOV      r0,#0x15c
000692  f7fffffe          BL       mpu_write_mem
;;;868    }
000696  bdf8              POP      {r3-r7,pc}
;;;869    
                          ENDP

                  dmp_set_shake_reject_time PROC
;;;877     */
;;;878    int dmp_set_shake_reject_time(unsigned short time)
000698  b538              PUSH     {r3-r5,lr}
;;;879    {
00069a  4604              MOV      r4,r0
;;;880        unsigned char tmp[2];
;;;881    
;;;882        time /= (1000 / DMP_SAMPLE_RATE);
00069c  2005              MOVS     r0,#5
00069e  fb94f0f0          SDIV     r0,r4,r0
0006a2  b284              UXTH     r4,r0
;;;883        tmp[0] = time >> 8;
0006a4  1220              ASRS     r0,r4,#8
0006a6  f88d0000          STRB     r0,[sp,#0]
;;;884        tmp[1] = time & 0xFF;
0006aa  b2e0              UXTB     r0,r4
0006ac  f88d0001          STRB     r0,[sp,#1]
;;;885        return mpu_write_mem(D_1_90,2,tmp);
0006b0  466a              MOV      r2,sp
0006b2  2102              MOVS     r1,#2
0006b4  f44f70ad          MOV      r0,#0x15a
0006b8  f7fffffe          BL       mpu_write_mem
;;;886    }
0006bc  bd38              POP      {r3-r5,pc}
;;;887    
                          ENDP

                  dmp_set_shake_reject_timeout PROC
;;;895     */
;;;896    int dmp_set_shake_reject_timeout(unsigned short time)
0006be  b538              PUSH     {r3-r5,lr}
;;;897    {
0006c0  4604              MOV      r4,r0
;;;898        unsigned char tmp[2];
;;;899    
;;;900        time /= (1000 / DMP_SAMPLE_RATE);
0006c2  2005              MOVS     r0,#5
0006c4  fb94f0f0          SDIV     r0,r4,r0
0006c8  b284              UXTH     r4,r0
;;;901        tmp[0] = time >> 8;
0006ca  1220              ASRS     r0,r4,#8
0006cc  f88d0000          STRB     r0,[sp,#0]
;;;902        tmp[1] = time & 0xFF;
0006d0  b2e0              UXTB     r0,r4
0006d2  f88d0001          STRB     r0,[sp,#1]
;;;903        return mpu_write_mem(D_1_88,2,tmp);
0006d6  466a              MOV      r2,sp
0006d8  2102              MOVS     r1,#2
0006da  f44f70ac          MOV      r0,#0x158
0006de  f7fffffe          BL       mpu_write_mem
;;;904    }
0006e2  bd38              POP      {r3-r5,pc}
;;;905    
                          ENDP

                  dmp_get_pedometer_step_count PROC
;;;910     */
;;;911    int dmp_get_pedometer_step_count(unsigned long *count)
0006e4  b538              PUSH     {r3-r5,lr}
;;;912    {
0006e6  4604              MOV      r4,r0
;;;913        unsigned char tmp[4];
;;;914        if (!count)
0006e8  b914              CBNZ     r4,|L1.1776|
;;;915            return -1;
0006ea  f04f30ff          MOV      r0,#0xffffffff
                  |L1.1774|
;;;916    
;;;917        if (mpu_read_mem(D_PEDSTD_STEPCTR, 4, tmp))
;;;918            return -1;
;;;919    
;;;920        count[0] = ((unsigned long)tmp[0] << 24) | ((unsigned long)tmp[1] << 16) |
;;;921            ((unsigned long)tmp[2] << 8) | tmp[3];
;;;922        return 0;
;;;923    }
0006ee  bd38              POP      {r3-r5,pc}
                  |L1.1776|
0006f0  466a              MOV      r2,sp                 ;917
0006f2  2104              MOVS     r1,#4                 ;917
0006f4  f44f7058          MOV      r0,#0x360             ;917
0006f8  f7fffffe          BL       mpu_read_mem
0006fc  b110              CBZ      r0,|L1.1796|
0006fe  f04f30ff          MOV      r0,#0xffffffff        ;918
000702  e7f4              B        |L1.1774|
                  |L1.1796|
000704  f89d0000          LDRB     r0,[sp,#0]            ;920
000708  0600              LSLS     r0,r0,#24             ;920
00070a  f89d1001          LDRB     r1,[sp,#1]            ;920
00070e  ea404001          ORR      r0,r0,r1,LSL #16      ;920
000712  f89d1002          LDRB     r1,[sp,#2]            ;920
000716  ea402001          ORR      r0,r0,r1,LSL #8       ;920
00071a  f89d1003          LDRB     r1,[sp,#3]            ;920
00071e  4308              ORRS     r0,r0,r1              ;920
000720  6020              STR      r0,[r4,#0]            ;920
000722  2000              MOVS     r0,#0                 ;922
000724  e7e3              B        |L1.1774|
;;;924    
                          ENDP

                  dmp_set_pedometer_step_count PROC
;;;931     */
;;;932    int dmp_set_pedometer_step_count(unsigned long count)
000726  b538              PUSH     {r3-r5,lr}
;;;933    {
000728  4604              MOV      r4,r0
;;;934        unsigned char tmp[4];
;;;935    
;;;936        tmp[0] = (unsigned char)((count >> 24) & 0xFF);
00072a  0e20              LSRS     r0,r4,#24
00072c  f88d0000          STRB     r0,[sp,#0]
;;;937        tmp[1] = (unsigned char)((count >> 16) & 0xFF);
000730  0c20              LSRS     r0,r4,#16
000732  f88d0001          STRB     r0,[sp,#1]
;;;938        tmp[2] = (unsigned char)((count >> 8) & 0xFF);
000736  0a20              LSRS     r0,r4,#8
000738  f88d0002          STRB     r0,[sp,#2]
;;;939        tmp[3] = (unsigned char)(count & 0xFF);
00073c  b2e0              UXTB     r0,r4
00073e  f88d0003          STRB     r0,[sp,#3]
;;;940        return mpu_write_mem(D_PEDSTD_STEPCTR, 4, tmp);
000742  466a              MOV      r2,sp
000744  2104              MOVS     r1,#4
000746  f44f7058          MOV      r0,#0x360
00074a  f7fffffe          BL       mpu_write_mem
;;;941    }
00074e  bd38              POP      {r3-r5,pc}
;;;942    
                          ENDP

                  dmp_get_pedometer_walk_time PROC
;;;947     */
;;;948    int dmp_get_pedometer_walk_time(unsigned long *time)
000750  b538              PUSH     {r3-r5,lr}
;;;949    {
000752  4604              MOV      r4,r0
;;;950        unsigned char tmp[4];
;;;951        if (!time)
000754  b914              CBNZ     r4,|L1.1884|
;;;952            return -1;
000756  f04f30ff          MOV      r0,#0xffffffff
                  |L1.1882|
;;;953    
;;;954        if (mpu_read_mem(D_PEDSTD_TIMECTR, 4, tmp))
;;;955            return -1;
;;;956    
;;;957        time[0] = (((unsigned long)tmp[0] << 24) | ((unsigned long)tmp[1] << 16) |
;;;958            ((unsigned long)tmp[2] << 8) | tmp[3]) * 20;
;;;959        return 0;
;;;960    }
00075a  bd38              POP      {r3-r5,pc}
                  |L1.1884|
00075c  466a              MOV      r2,sp                 ;954
00075e  2104              MOVS     r1,#4                 ;954
000760  f44f7071          MOV      r0,#0x3c4             ;954
000764  f7fffffe          BL       mpu_read_mem
000768  b110              CBZ      r0,|L1.1904|
00076a  f04f30ff          MOV      r0,#0xffffffff        ;955
00076e  e7f4              B        |L1.1882|
                  |L1.1904|
000770  f89d0000          LDRB     r0,[sp,#0]            ;957
000774  0600              LSLS     r0,r0,#24             ;957
000776  f89d1001          LDRB     r1,[sp,#1]            ;957
00077a  ea404001          ORR      r0,r0,r1,LSL #16      ;957
00077e  f89d1002          LDRB     r1,[sp,#2]            ;957
000782  ea402001          ORR      r0,r0,r1,LSL #8       ;957
000786  f89d1003          LDRB     r1,[sp,#3]            ;957
00078a  4308              ORRS     r0,r0,r1              ;957
00078c  eb000080          ADD      r0,r0,r0,LSL #2       ;957
000790  0080              LSLS     r0,r0,#2              ;957
000792  6020              STR      r0,[r4,#0]            ;957
000794  2000              MOVS     r0,#0                 ;959
000796  e7e0              B        |L1.1882|
;;;961    
                          ENDP

                  dmp_set_pedometer_walk_time PROC
;;;967     */
;;;968    int dmp_set_pedometer_walk_time(unsigned long time)
000798  b538              PUSH     {r3-r5,lr}
;;;969    {
00079a  4604              MOV      r4,r0
;;;970        unsigned char tmp[4];
;;;971    
;;;972        time /= 20;
00079c  2014              MOVS     r0,#0x14
00079e  fbb4f4f0          UDIV     r4,r4,r0
;;;973    
;;;974        tmp[0] = (unsigned char)((time >> 24) & 0xFF);
0007a2  0e20              LSRS     r0,r4,#24
0007a4  f88d0000          STRB     r0,[sp,#0]
;;;975        tmp[1] = (unsigned char)((time >> 16) & 0xFF);
0007a8  0c20              LSRS     r0,r4,#16
0007aa  f88d0001          STRB     r0,[sp,#1]
;;;976        tmp[2] = (unsigned char)((time >> 8) & 0xFF);
0007ae  0a20              LSRS     r0,r4,#8
0007b0  f88d0002          STRB     r0,[sp,#2]
;;;977        tmp[3] = (unsigned char)(time & 0xFF);
0007b4  b2e0              UXTB     r0,r4
0007b6  f88d0003          STRB     r0,[sp,#3]
;;;978        return mpu_write_mem(D_PEDSTD_TIMECTR, 4, tmp);
0007ba  466a              MOV      r2,sp
0007bc  2104              MOVS     r1,#4
0007be  f44f7071          MOV      r0,#0x3c4
0007c2  f7fffffe          BL       mpu_write_mem
;;;979    }
0007c6  bd38              POP      {r3-r5,pc}
;;;980    
                          ENDP

                  dmp_enable_6x_lp_quat PROC
;;;1176    */
;;;1177   int dmp_enable_6x_lp_quat(unsigned char enable)
0007c8  b538              PUSH     {r3-r5,lr}
;;;1178   {
0007ca  4604              MOV      r4,r0
;;;1179       unsigned char regs[4];
;;;1180       if (enable) {
0007cc  b164              CBZ      r4,|L1.2024|
;;;1181           regs[0] = DINA20;
0007ce  2020              MOVS     r0,#0x20
0007d0  f88d0000          STRB     r0,[sp,#0]
;;;1182           regs[1] = DINA28;
0007d4  2028              MOVS     r0,#0x28
0007d6  f88d0001          STRB     r0,[sp,#1]
;;;1183           regs[2] = DINA30;
0007da  2030              MOVS     r0,#0x30
0007dc  f88d0002          STRB     r0,[sp,#2]
;;;1184           regs[3] = DINA38;
0007e0  2038              MOVS     r0,#0x38
0007e2  f88d0003          STRB     r0,[sp,#3]
0007e6  e004              B        |L1.2034|
                  |L1.2024|
;;;1185       } else
;;;1186           memset(regs, 0xA3, 4);
0007e8  22a3              MOVS     r2,#0xa3
0007ea  2104              MOVS     r1,#4
0007ec  4668              MOV      r0,sp
0007ee  f7fffffe          BL       __aeabi_memset
                  |L1.2034|
;;;1187   
;;;1188       mpu_write_mem(CFG_8, 4, regs);
0007f2  466a              MOV      r2,sp
0007f4  2104              MOVS     r1,#4
0007f6  f640209e          MOV      r0,#0xa9e
0007fa  f7fffffe          BL       mpu_write_mem
;;;1189   
;;;1190       return mpu_reset_fifo();
0007fe  f7fffffe          BL       mpu_reset_fifo
;;;1191   }
000802  bd38              POP      {r3-r5,pc}
                  |L1.2052|
                          DCD      ||dmp||
                  |L1.2056|
                          DCD      0x43480000
                  |L1.2060|
                          DCD      0x46400000
                  |L1.2064|
                          DCD      0x45c00000
                  |L1.2068|
                          DCD      0x45400000
                  |L1.2072|
                          DCD      0x44c00000
                          ENDP

                  dmp_enable_lp_quat PROC
;;;1152    */
;;;1153   int dmp_enable_lp_quat(unsigned char enable)
00081c  b538              PUSH     {r3-r5,lr}
;;;1154   {
00081e  4604              MOV      r4,r0
;;;1155       unsigned char regs[4];
;;;1156       if (enable) {
000820  b164              CBZ      r4,|L1.2108|
;;;1157           regs[0] = DINBC0;
000822  20c0              MOVS     r0,#0xc0
000824  f88d0000          STRB     r0,[sp,#0]
;;;1158           regs[1] = DINBC2;
000828  20c2              MOVS     r0,#0xc2
00082a  f88d0001          STRB     r0,[sp,#1]
;;;1159           regs[2] = DINBC4;
00082e  20c4              MOVS     r0,#0xc4
000830  f88d0002          STRB     r0,[sp,#2]
;;;1160           regs[3] = DINBC6;
000834  20c6              MOVS     r0,#0xc6
000836  f88d0003          STRB     r0,[sp,#3]
00083a  e004              B        |L1.2118|
                  |L1.2108|
;;;1161       }
;;;1162       else
;;;1163           memset(regs, 0x8B, 4);
00083c  228b              MOVS     r2,#0x8b
00083e  2104              MOVS     r1,#4
000840  4668              MOV      r0,sp
000842  f7fffffe          BL       __aeabi_memset
                  |L1.2118|
;;;1164   
;;;1165       mpu_write_mem(CFG_LP_QUAT, 4, regs);
000846  466a              MOV      r2,sp
000848  2104              MOVS     r1,#4
00084a  f6402098          MOV      r0,#0xa98
00084e  f7fffffe          BL       mpu_write_mem
;;;1166   
;;;1167       return mpu_reset_fifo();
000852  f7fffffe          BL       mpu_reset_fifo
;;;1168   }
000856  bd38              POP      {r3-r5,pc}
;;;1169   
                          ENDP

                  dmp_enable_gyro_cal PROC
;;;1134    */
;;;1135   int dmp_enable_gyro_cal(unsigned char enable)
000858  b53e              PUSH     {r1-r5,lr}
;;;1136   {
00085a  4604              MOV      r4,r0
;;;1137       if (enable) {
00085c  b16c              CBZ      r4,|L1.2170|
;;;1138           unsigned char regs[9] = {0xb8, 0xaa, 0xb3, 0x8d, 0xb4, 0x98, 0x0d, 0x35, 0x5d};
00085e  a1fd              ADR      r1,|L1.3156|
000860  e9d12000          LDRD     r2,r0,[r1,#0]
000864  6889              LDR      r1,[r1,#8]
000866  e9cd2000          STRD     r2,r0,[sp,#0]
00086a  9102              STR      r1,[sp,#8]
;;;1139           return mpu_write_mem(CFG_MOTION_BIAS, 9, regs);
00086c  466a              MOV      r2,sp
00086e  2109              MOVS     r1,#9
000870  f44f6097          MOV      r0,#0x4b8
000874  f7fffffe          BL       mpu_write_mem
                  |L1.2168|
;;;1140       } else {
;;;1141           unsigned char regs[9] = {0xb8, 0xaa, 0xaa, 0xaa, 0xb0, 0x88, 0xc3, 0xc5, 0xc7};
;;;1142           return mpu_write_mem(CFG_MOTION_BIAS, 9, regs);
;;;1143       }
;;;1144   }
000878  bd3e              POP      {r1-r5,pc}
                  |L1.2170|
00087a  a2f9              ADR      r2,|L1.3168|
00087c  e9d21000          LDRD     r1,r0,[r2,#0]         ;1141
000880  6892              LDR      r2,[r2,#8]            ;1141
000882  e9cd0201          STRD     r0,r2,[sp,#4]         ;1141
000886  9100              STR      r1,[sp,#0]            ;1141
000888  466a              MOV      r2,sp                 ;1142
00088a  2109              MOVS     r1,#9                 ;1142
00088c  f44f6097          MOV      r0,#0x4b8             ;1142
000890  f7fffffe          BL       mpu_write_mem
000894  e7f0              B        |L1.2168|
;;;1145   
                          ENDP

                  dmp_enable_feature PROC
;;;997     */
;;;998    int dmp_enable_feature(unsigned short mask)
000896  b53e              PUSH     {r1-r5,lr}
;;;999    {
000898  4604              MOV      r4,r0
;;;1000       unsigned char tmp[10];
;;;1001   
;;;1002       /* TODO: All of these settings can probably be integrated into the default
;;;1003        * DMP image.
;;;1004        */
;;;1005       /* Set integration scale factor. */
;;;1006       tmp[0] = (unsigned char)((GYRO_SF >> 24) & 0xFF);
00089a  2002              MOVS     r0,#2
00089c  f88d0000          STRB     r0,[sp,#0]
;;;1007       tmp[1] = (unsigned char)((GYRO_SF >> 16) & 0xFF);
0008a0  20ca              MOVS     r0,#0xca
0008a2  f88d0001          STRB     r0,[sp,#1]
;;;1008       tmp[2] = (unsigned char)((GYRO_SF >> 8) & 0xFF);
0008a6  20e3              MOVS     r0,#0xe3
0008a8  f88d0002          STRB     r0,[sp,#2]
;;;1009       tmp[3] = (unsigned char)(GYRO_SF & 0xFF);
0008ac  2009              MOVS     r0,#9
0008ae  f88d0003          STRB     r0,[sp,#3]
;;;1010       mpu_write_mem(D_0_104, 4, tmp);
0008b2  466a              MOV      r2,sp
0008b4  2104              MOVS     r1,#4
0008b6  2068              MOVS     r0,#0x68
0008b8  f7fffffe          BL       mpu_write_mem
;;;1011   
;;;1012       /* Send sensor data to the FIFO. */
;;;1013       tmp[0] = 0xA3;
0008bc  20a3              MOVS     r0,#0xa3
0008be  f88d0000          STRB     r0,[sp,#0]
;;;1014       if (mask & DMP_FEATURE_SEND_RAW_ACCEL) {
0008c2  f0040040          AND      r0,r4,#0x40
0008c6  b148              CBZ      r0,|L1.2268|
;;;1015           tmp[1] = 0xC0;
0008c8  20c0              MOVS     r0,#0xc0
0008ca  f88d0001          STRB     r0,[sp,#1]
;;;1016           tmp[2] = 0xC8;
0008ce  20c8              MOVS     r0,#0xc8
0008d0  f88d0002          STRB     r0,[sp,#2]
;;;1017           tmp[3] = 0xC2;
0008d4  20c2              MOVS     r0,#0xc2
0008d6  f88d0003          STRB     r0,[sp,#3]
0008da  e006              B        |L1.2282|
                  |L1.2268|
;;;1018       } else {
;;;1019           tmp[1] = 0xA3;
0008dc  20a3              MOVS     r0,#0xa3
0008de  f88d0001          STRB     r0,[sp,#1]
;;;1020           tmp[2] = 0xA3;
0008e2  f88d0002          STRB     r0,[sp,#2]
;;;1021           tmp[3] = 0xA3;
0008e6  f88d0003          STRB     r0,[sp,#3]
                  |L1.2282|
;;;1022       }
;;;1023       if (mask & DMP_FEATURE_SEND_ANY_GYRO) {
0008ea  f40470c0          AND      r0,r4,#0x180
0008ee  b148              CBZ      r0,|L1.2308|
;;;1024           tmp[4] = 0xC4;
0008f0  20c4              MOVS     r0,#0xc4
0008f2  f88d0004          STRB     r0,[sp,#4]
;;;1025           tmp[5] = 0xCC;
0008f6  20cc              MOVS     r0,#0xcc
0008f8  f88d0005          STRB     r0,[sp,#5]
;;;1026           tmp[6] = 0xC6;
0008fc  20c6              MOVS     r0,#0xc6
0008fe  f88d0006          STRB     r0,[sp,#6]
000902  e006              B        |L1.2322|
                  |L1.2308|
;;;1027       } else {
;;;1028           tmp[4] = 0xA3;
000904  20a3              MOVS     r0,#0xa3
000906  f88d0004          STRB     r0,[sp,#4]
;;;1029           tmp[5] = 0xA3;
00090a  f88d0005          STRB     r0,[sp,#5]
;;;1030           tmp[6] = 0xA3;
00090e  f88d0006          STRB     r0,[sp,#6]
                  |L1.2322|
;;;1031       }
;;;1032       tmp[7] = 0xA3;
000912  20a3              MOVS     r0,#0xa3
000914  f88d0007          STRB     r0,[sp,#7]
;;;1033       tmp[8] = 0xA3;
000918  f88d0008          STRB     r0,[sp,#8]
;;;1034       tmp[9] = 0xA3;
00091c  f88d0009          STRB     r0,[sp,#9]
;;;1035       mpu_write_mem(CFG_15,10,tmp);
000920  466a              MOV      r2,sp
000922  210a              MOVS     r1,#0xa
000924  f64020a7          MOV      r0,#0xaa7
000928  f7fffffe          BL       mpu_write_mem
;;;1036   
;;;1037       /* Send gesture data to the FIFO. */
;;;1038       if (mask & (DMP_FEATURE_TAP | DMP_FEATURE_ANDROID_ORIENT))
00092c  f0040003          AND      r0,r4,#3
000930  b118              CBZ      r0,|L1.2362|
;;;1039           tmp[0] = DINA20;
000932  2020              MOVS     r0,#0x20
000934  f88d0000          STRB     r0,[sp,#0]
000938  e002              B        |L1.2368|
                  |L1.2362|
;;;1040       else
;;;1041           tmp[0] = 0xD8;
00093a  20d8              MOVS     r0,#0xd8
00093c  f88d0000          STRB     r0,[sp,#0]
                  |L1.2368|
;;;1042       mpu_write_mem(CFG_27,1,tmp);
000940  466a              MOV      r2,sp
000942  2101              MOVS     r1,#1
000944  f64020b6          MOV      r0,#0xab6
000948  f7fffffe          BL       mpu_write_mem
;;;1043   
;;;1044       if (mask & DMP_FEATURE_GYRO_CAL)
00094c  f0040020          AND      r0,r4,#0x20
000950  b118              CBZ      r0,|L1.2394|
;;;1045           dmp_enable_gyro_cal(1);
000952  2001              MOVS     r0,#1
000954  f7fffffe          BL       dmp_enable_gyro_cal
000958  e002              B        |L1.2400|
                  |L1.2394|
;;;1046       else
;;;1047           dmp_enable_gyro_cal(0);
00095a  2000              MOVS     r0,#0
00095c  f7fffffe          BL       dmp_enable_gyro_cal
                  |L1.2400|
;;;1048   
;;;1049       if (mask & DMP_FEATURE_SEND_ANY_GYRO) {
000960  f40470c0          AND      r0,r4,#0x180
000964  b308              CBZ      r0,|L1.2474|
;;;1050           if (mask & DMP_FEATURE_SEND_CAL_GYRO) {
000966  f4047080          AND      r0,r4,#0x100
00096a  b160              CBZ      r0,|L1.2438|
;;;1051               tmp[0] = 0xB2;
00096c  20b2              MOVS     r0,#0xb2
00096e  f88d0000          STRB     r0,[sp,#0]
;;;1052               tmp[1] = 0x8B;
000972  208b              MOVS     r0,#0x8b
000974  f88d0001          STRB     r0,[sp,#1]
;;;1053               tmp[2] = 0xB6;
000978  20b6              MOVS     r0,#0xb6
00097a  f88d0002          STRB     r0,[sp,#2]
;;;1054               tmp[3] = 0x9B;
00097e  209b              MOVS     r0,#0x9b
000980  f88d0003          STRB     r0,[sp,#3]
000984  e00b              B        |L1.2462|
                  |L1.2438|
;;;1055           } else {
;;;1056               tmp[0] = DINAC0;
000986  20b0              MOVS     r0,#0xb0
000988  f88d0000          STRB     r0,[sp,#0]
;;;1057               tmp[1] = DINA80;
00098c  2080              MOVS     r0,#0x80
00098e  f88d0001          STRB     r0,[sp,#1]
;;;1058               tmp[2] = DINAC2;
000992  20b4              MOVS     r0,#0xb4
000994  f88d0002          STRB     r0,[sp,#2]
;;;1059               tmp[3] = DINA90;
000998  2090              MOVS     r0,#0x90
00099a  f88d0003          STRB     r0,[sp,#3]
                  |L1.2462|
;;;1060           }
;;;1061           mpu_write_mem(CFG_GYRO_RAW_DATA, 4, tmp);
00099e  466a              MOV      r2,sp
0009a0  2104              MOVS     r1,#4
0009a2  f64020a2          MOV      r0,#0xaa2
0009a6  f7fffffe          BL       mpu_write_mem
                  |L1.2474|
;;;1062       }
;;;1063   
;;;1064       if (mask & DMP_FEATURE_TAP) {
0009aa  f0040001          AND      r0,r4,#1
0009ae  b320              CBZ      r0,|L1.2554|
;;;1065           /* Enable tap. */
;;;1066           tmp[0] = 0xF8;
0009b0  20f8              MOVS     r0,#0xf8
0009b2  f88d0000          STRB     r0,[sp,#0]
;;;1067           mpu_write_mem(CFG_20, 1, tmp);
0009b6  466a              MOV      r2,sp
0009b8  2101              MOVS     r1,#1
0009ba  f44f600b          MOV      r0,#0x8b0
0009be  f7fffffe          BL       mpu_write_mem
;;;1068           dmp_set_tap_thresh(TAP_XYZ, 250);
0009c2  21fa              MOVS     r1,#0xfa
0009c4  2007              MOVS     r0,#7
0009c6  f7fffffe          BL       dmp_set_tap_thresh
;;;1069           dmp_set_tap_axes(TAP_XYZ);
0009ca  2007              MOVS     r0,#7
0009cc  f7fffffe          BL       dmp_set_tap_axes
;;;1070           dmp_set_tap_count(1);
0009d0  2001              MOVS     r0,#1
0009d2  f7fffffe          BL       dmp_set_tap_count
;;;1071           dmp_set_tap_time(100);
0009d6  2064              MOVS     r0,#0x64
0009d8  f7fffffe          BL       dmp_set_tap_time
;;;1072           dmp_set_tap_time_multi(500);
0009dc  f44f70fa          MOV      r0,#0x1f4
0009e0  f7fffffe          BL       dmp_set_tap_time_multi
;;;1073   
;;;1074           dmp_set_shake_reject_thresh(GYRO_SF, 200);
0009e4  21c8              MOVS     r1,#0xc8
0009e6  48a1              LDR      r0,|L1.3180|
0009e8  f7fffffe          BL       dmp_set_shake_reject_thresh
;;;1075           dmp_set_shake_reject_time(40);
0009ec  2028              MOVS     r0,#0x28
0009ee  f7fffffe          BL       dmp_set_shake_reject_time
;;;1076           dmp_set_shake_reject_timeout(10);
0009f2  200a              MOVS     r0,#0xa
0009f4  f7fffffe          BL       dmp_set_shake_reject_timeout
0009f8  e008              B        |L1.2572|
                  |L1.2554|
;;;1077       } else {
;;;1078           tmp[0] = 0xD8;
0009fa  20d8              MOVS     r0,#0xd8
0009fc  f88d0000          STRB     r0,[sp,#0]
;;;1079           mpu_write_mem(CFG_20, 1, tmp);
000a00  466a              MOV      r2,sp
000a02  2101              MOVS     r1,#1
000a04  f44f600b          MOV      r0,#0x8b0
000a08  f7fffffe          BL       mpu_write_mem
                  |L1.2572|
;;;1080       }
;;;1081   
;;;1082       if (mask & DMP_FEATURE_ANDROID_ORIENT) {
000a0c  f0040002          AND      r0,r4,#2
000a10  b118              CBZ      r0,|L1.2586|
;;;1083           tmp[0] = 0xD9;
000a12  20d9              MOVS     r0,#0xd9
000a14  f88d0000          STRB     r0,[sp,#0]
000a18  e002              B        |L1.2592|
                  |L1.2586|
;;;1084       } else
;;;1085           tmp[0] = 0xD8;
000a1a  20d8              MOVS     r0,#0xd8
000a1c  f88d0000          STRB     r0,[sp,#0]
                  |L1.2592|
;;;1086       mpu_write_mem(CFG_ANDROID_ORIENT_INT, 1, tmp);
000a20  466a              MOV      r2,sp
000a22  2101              MOVS     r1,#1
000a24  f240703d          MOV      r0,#0x73d
000a28  f7fffffe          BL       mpu_write_mem
;;;1087   
;;;1088       if (mask & DMP_FEATURE_LP_QUAT)
000a2c  f0040004          AND      r0,r4,#4
000a30  b118              CBZ      r0,|L1.2618|
;;;1089           dmp_enable_lp_quat(1);
000a32  2001              MOVS     r0,#1
000a34  f7fffffe          BL       dmp_enable_lp_quat
000a38  e002              B        |L1.2624|
                  |L1.2618|
;;;1090       else
;;;1091           dmp_enable_lp_quat(0);
000a3a  2000              MOVS     r0,#0
000a3c  f7fffffe          BL       dmp_enable_lp_quat
                  |L1.2624|
;;;1092   
;;;1093       if (mask & DMP_FEATURE_6X_LP_QUAT)
000a40  f0040010          AND      r0,r4,#0x10
000a44  b118              CBZ      r0,|L1.2638|
;;;1094           dmp_enable_6x_lp_quat(1);
000a46  2001              MOVS     r0,#1
000a48  f7fffffe          BL       dmp_enable_6x_lp_quat
000a4c  e002              B        |L1.2644|
                  |L1.2638|
;;;1095       else
;;;1096           dmp_enable_6x_lp_quat(0);
000a4e  2000              MOVS     r0,#0
000a50  f7fffffe          BL       dmp_enable_6x_lp_quat
                  |L1.2644|
;;;1097   
;;;1098       /* Pedometer is always enabled. */
;;;1099       dmp.feature_mask = mask | DMP_FEATURE_PEDOMETER;
000a54  f0440008          ORR      r0,r4,#8
000a58  4985              LDR      r1,|L1.3184|
000a5a  8148              STRH     r0,[r1,#0xa]
;;;1100       mpu_reset_fifo();
000a5c  f7fffffe          BL       mpu_reset_fifo
;;;1101   
;;;1102       dmp.packet_length = 0;
000a60  2000              MOVS     r0,#0
000a62  4983              LDR      r1,|L1.3184|
000a64  7388              STRB     r0,[r1,#0xe]
;;;1103       if (mask & DMP_FEATURE_SEND_RAW_ACCEL)
000a66  f0040040          AND      r0,r4,#0x40
000a6a  b118              CBZ      r0,|L1.2676|
;;;1104           dmp.packet_length += 6;
000a6c  4608              MOV      r0,r1
000a6e  7b80              LDRB     r0,[r0,#0xe]  ; dmp
000a70  1d80              ADDS     r0,r0,#6
000a72  7388              STRB     r0,[r1,#0xe]
                  |L1.2676|
;;;1105       if (mask & DMP_FEATURE_SEND_ANY_GYRO)
000a74  f40470c0          AND      r0,r4,#0x180
000a78  b120              CBZ      r0,|L1.2692|
;;;1106           dmp.packet_length += 6;
000a7a  487d              LDR      r0,|L1.3184|
000a7c  7b80              LDRB     r0,[r0,#0xe]  ; dmp
000a7e  1d80              ADDS     r0,r0,#6
000a80  497b              LDR      r1,|L1.3184|
000a82  7388              STRB     r0,[r1,#0xe]
                  |L1.2692|
;;;1107       if (mask & (DMP_FEATURE_LP_QUAT | DMP_FEATURE_6X_LP_QUAT))
000a84  f0040014          AND      r0,r4,#0x14
000a88  b120              CBZ      r0,|L1.2708|
;;;1108           dmp.packet_length += 16;
000a8a  4879              LDR      r0,|L1.3184|
000a8c  7b80              LDRB     r0,[r0,#0xe]  ; dmp
000a8e  3010              ADDS     r0,r0,#0x10
000a90  4977              LDR      r1,|L1.3184|
000a92  7388              STRB     r0,[r1,#0xe]
                  |L1.2708|
;;;1109       if (mask & (DMP_FEATURE_TAP | DMP_FEATURE_ANDROID_ORIENT))
000a94  f0040003          AND      r0,r4,#3
000a98  b120              CBZ      r0,|L1.2724|
;;;1110           dmp.packet_length += 4;
000a9a  4875              LDR      r0,|L1.3184|
000a9c  7b80              LDRB     r0,[r0,#0xe]  ; dmp
000a9e  1d00              ADDS     r0,r0,#4
000aa0  4973              LDR      r1,|L1.3184|
000aa2  7388              STRB     r0,[r1,#0xe]
                  |L1.2724|
;;;1111   
;;;1112       return 0;
000aa4  2000              MOVS     r0,#0
;;;1113   }
000aa6  bd3e              POP      {r1-r5,pc}
;;;1114   
                          ENDP

                  dmp_get_enabled_features PROC
;;;1119    */
;;;1120   int dmp_get_enabled_features(unsigned short *mask)
000aa8  4601              MOV      r1,r0
;;;1121   {
;;;1122       mask[0] = dmp.feature_mask;
000aaa  4871              LDR      r0,|L1.3184|
000aac  8940              LDRH     r0,[r0,#0xa]  ; dmp
000aae  8008              STRH     r0,[r1,#0]
;;;1123       return 0;
000ab0  2000              MOVS     r0,#0
;;;1124   }
000ab2  4770              BX       lr
;;;1125   
                          ENDP

                  decode_gesture PROC
;;;1197    */
;;;1198   static int decode_gesture(unsigned char *gesture)
000ab4  e92d41f0          PUSH     {r4-r8,lr}
;;;1199   {
000ab8  4604              MOV      r4,r0
;;;1200       unsigned char tap, android_orient;
;;;1201   
;;;1202       android_orient = gesture[3] & 0xC0;
000aba  78e0              LDRB     r0,[r4,#3]
000abc  f00006c0          AND      r6,r0,#0xc0
;;;1203       tap = 0x3F & gesture[3];
000ac0  78e0              LDRB     r0,[r4,#3]
000ac2  f000053f          AND      r5,r0,#0x3f
;;;1204   
;;;1205       if (gesture[1] & INT_SRC_TAP) {
000ac6  7860              LDRB     r0,[r4,#1]
000ac8  f0000001          AND      r0,r0,#1
000acc  b198              CBZ      r0,|L1.2806|
;;;1206           unsigned char direction, count;
;;;1207           direction = tap >> 3;
000ace  10ef              ASRS     r7,r5,#3
;;;1208           count = (tap % 8) + 1;
000ad0  4628              MOV      r0,r5
000ad2  17e9              ASRS     r1,r5,#31
000ad4  eb057151          ADD      r1,r5,r1,LSR #29
000ad8  10c9              ASRS     r1,r1,#3
000ada  eba501c1          SUB      r1,r5,r1,LSL #3
000ade  1c49              ADDS     r1,r1,#1
000ae0  f00108ff          AND      r8,r1,#0xff
;;;1209           if (dmp.tap_cb)
000ae4  4862              LDR      r0,|L1.3184|
000ae6  6800              LDR      r0,[r0,#0]  ; dmp
000ae8  b120              CBZ      r0,|L1.2804|
;;;1210               dmp.tap_cb(direction, count);
000aea  4861              LDR      r0,|L1.3184|
000aec  4641              MOV      r1,r8
000aee  6802              LDR      r2,[r0,#0]  ; dmp
000af0  4638              MOV      r0,r7
000af2  4790              BLX      r2
                  |L1.2804|
;;;1211       }
000af4  bf00              NOP      
                  |L1.2806|
;;;1212   
;;;1213       if (gesture[1] & INT_SRC_ANDROID_ORIENT) {
000af6  7860              LDRB     r0,[r4,#1]
000af8  f0000008          AND      r0,r0,#8
000afc  b130              CBZ      r0,|L1.2828|
;;;1214           if (dmp.android_orient_cb)
000afe  485c              LDR      r0,|L1.3184|
000b00  6840              LDR      r0,[r0,#4]  ; dmp
000b02  b118              CBZ      r0,|L1.2828|
;;;1215               dmp.android_orient_cb(android_orient >> 6);
000b04  11b0              ASRS     r0,r6,#6
000b06  4a5a              LDR      r2,|L1.3184|
000b08  6851              LDR      r1,[r2,#4]  ; dmp
000b0a  4788              BLX      r1
                  |L1.2828|
;;;1216       }
;;;1217   
;;;1218       return 0;
000b0c  2000              MOVS     r0,#0
;;;1219   }
000b0e  e8bd81f0          POP      {r4-r8,pc}
;;;1220   
                          ENDP

                  dmp_set_interrupt_mode PROC
;;;1229    */
;;;1230   int dmp_set_interrupt_mode(unsigned char mode)
000b12  b510              PUSH     {r4,lr}
;;;1231   {
000b14  b086              SUB      sp,sp,#0x18
000b16  4604              MOV      r4,r0
;;;1232       const unsigned char regs_continuous[11] =
000b18  a256              ADR      r2,|L1.3188|
000b1a  ca07              LDM      r2,{r0-r2}
000b1c  ab03              ADD      r3,sp,#0xc
000b1e  c307              STM      r3!,{r0-r2}
;;;1233           {0xd8, 0xb1, 0xb9, 0xf3, 0x8b, 0xa3, 0x91, 0xb6, 0x09, 0xb4, 0xd9};
;;;1234       const unsigned char regs_gesture[11] =
000b20  a257              ADR      r2,|L1.3200|
000b22  ca07              LDM      r2,{r0-r2}
000b24  e88d0007          STM      sp,{r0-r2}
;;;1235           {0xda, 0xb1, 0xb9, 0xf3, 0x8b, 0xa3, 0x91, 0xb6, 0xda, 0xb4, 0xda};
;;;1236   
;;;1237       switch (mode) {
000b28  2c01              CMP      r4,#1
000b2a  d009              BEQ      |L1.2880|
000b2c  2c02              CMP      r4,#2
000b2e  d10e              BNE      |L1.2894|
;;;1238       case DMP_INT_CONTINUOUS:
;;;1239           return mpu_write_mem(CFG_FIFO_ON_EVENT, 11,
000b30  aa03              ADD      r2,sp,#0xc
000b32  210b              MOVS     r1,#0xb
000b34  f6402082          MOV      r0,#0xa82
000b38  f7fffffe          BL       mpu_write_mem
                  |L1.2876|
;;;1240               (unsigned char*)regs_continuous);
;;;1241       case DMP_INT_GESTURE:
;;;1242           return mpu_write_mem(CFG_FIFO_ON_EVENT, 11,
;;;1243               (unsigned char*)regs_gesture);
;;;1244       default:
;;;1245           return -1;
;;;1246       }
;;;1247   }
000b3c  b006              ADD      sp,sp,#0x18
000b3e  bd10              POP      {r4,pc}
                  |L1.2880|
000b40  466a              MOV      r2,sp                 ;1242
000b42  210b              MOVS     r1,#0xb               ;1242
000b44  f6402082          MOV      r0,#0xa82             ;1242
000b48  f7fffffe          BL       mpu_write_mem
000b4c  e7f6              B        |L1.2876|
                  |L1.2894|
000b4e  f04f30ff          MOV      r0,#0xffffffff        ;1245
000b52  e7f3              B        |L1.2876|
;;;1248   
                          ENDP

                  dmp_read_fifo PROC
;;;1268    */
;;;1269   int dmp_read_fifo(short *gyro, short *accel, long *quat,
000b54  e92d4ff0          PUSH     {r4-r11,lr}
;;;1270       unsigned long *timestamp, short *sensors, unsigned char *more)
;;;1271   {
000b58  b08d              SUB      sp,sp,#0x34
000b5a  4607              MOV      r7,r0
000b5c  4688              MOV      r8,r1
000b5e  4615              MOV      r5,r2
000b60  4699              MOV      r9,r3
000b62  e9dd6b16          LDRD     r6,r11,[sp,#0x58]
;;;1272       unsigned char fifo_data[MAX_PACKET_LENGTH];
;;;1273       unsigned char ii = 0;
000b66  2400              MOVS     r4,#0
;;;1274   
;;;1275       /* TODO: sensors[0] only changes when dmp_enable_feature is called. We can
;;;1276        * cache this value and save some cycles.
;;;1277        */
;;;1278       sensors[0] = 0;
000b68  2000              MOVS     r0,#0
000b6a  8030              STRH     r0,[r6,#0]
;;;1279   
;;;1280       /* Get a packet. */
;;;1281       if (mpu_read_fifo_stream(dmp.packet_length, fifo_data, more))
000b6c  4940              LDR      r1,|L1.3184|
000b6e  7b88              LDRB     r0,[r1,#0xe]  ; dmp
000b70  465a              MOV      r2,r11
000b72  a905              ADD      r1,sp,#0x14
000b74  f7fffffe          BL       mpu_read_fifo_stream
000b78  b118              CBZ      r0,|L1.2946|
;;;1282           return -1;
000b7a  1e60              SUBS     r0,r4,#1
                  |L1.2940|
;;;1283   
;;;1284       /* Parse DMP packet. */
;;;1285       if (dmp.feature_mask & (DMP_FEATURE_LP_QUAT | DMP_FEATURE_6X_LP_QUAT)) {
;;;1286   #ifdef FIFO_CORRUPTION_CHECK
;;;1287           long quat_q14[4], quat_mag_sq;
;;;1288   #endif
;;;1289           quat[0] = ((long)fifo_data[0] << 24) | ((long)fifo_data[1] << 16) |
;;;1290               ((long)fifo_data[2] << 8) | fifo_data[3];
;;;1291           quat[1] = ((long)fifo_data[4] << 24) | ((long)fifo_data[5] << 16) |
;;;1292               ((long)fifo_data[6] << 8) | fifo_data[7];
;;;1293           quat[2] = ((long)fifo_data[8] << 24) | ((long)fifo_data[9] << 16) |
;;;1294               ((long)fifo_data[10] << 8) | fifo_data[11];
;;;1295           quat[3] = ((long)fifo_data[12] << 24) | ((long)fifo_data[13] << 16) |
;;;1296               ((long)fifo_data[14] << 8) | fifo_data[15];
;;;1297           ii += 16;
;;;1298   #ifdef FIFO_CORRUPTION_CHECK
;;;1299           /* We can detect a corrupted FIFO by monitoring the quaternion data and
;;;1300            * ensuring that the magnitude is always normalized to one. This
;;;1301            * shouldn't happen in normal operation, but if an I2C error occurs,
;;;1302            * the FIFO reads might become misaligned.
;;;1303            *
;;;1304            * Let's start by scaling down the quaternion data to avoid long long
;;;1305            * math.
;;;1306            */
;;;1307           quat_q14[0] = quat[0] >> 16;
;;;1308           quat_q14[1] = quat[1] >> 16;
;;;1309           quat_q14[2] = quat[2] >> 16;
;;;1310           quat_q14[3] = quat[3] >> 16;
;;;1311           quat_mag_sq = quat_q14[0] * quat_q14[0] + quat_q14[1] * quat_q14[1] +
;;;1312               quat_q14[2] * quat_q14[2] + quat_q14[3] * quat_q14[3];
;;;1313           if ((quat_mag_sq < QUAT_MAG_SQ_MIN) ||
;;;1314               (quat_mag_sq > QUAT_MAG_SQ_MAX)) {
;;;1315               /* Quaternion is outside of the acceptable threshold. */
;;;1316               mpu_reset_fifo();
;;;1317               sensors[0] = 0;
;;;1318               return -1;
;;;1319           }
;;;1320           sensors[0] |= INV_WXYZ_QUAT;
;;;1321   #endif
;;;1322       }
;;;1323   
;;;1324       if (dmp.feature_mask & DMP_FEATURE_SEND_RAW_ACCEL) {
;;;1325           accel[0] = ((short)fifo_data[ii+0] << 8) | fifo_data[ii+1];
;;;1326           accel[1] = ((short)fifo_data[ii+2] << 8) | fifo_data[ii+3];
;;;1327           accel[2] = ((short)fifo_data[ii+4] << 8) | fifo_data[ii+5];
;;;1328           ii += 6;
;;;1329           sensors[0] |= INV_XYZ_ACCEL;
;;;1330       }
;;;1331   
;;;1332       if (dmp.feature_mask & DMP_FEATURE_SEND_ANY_GYRO) {
;;;1333           gyro[0] = ((short)fifo_data[ii+0] << 8) | fifo_data[ii+1];
;;;1334           gyro[1] = ((short)fifo_data[ii+2] << 8) | fifo_data[ii+3];
;;;1335           gyro[2] = ((short)fifo_data[ii+4] << 8) | fifo_data[ii+5];
;;;1336           ii += 6;
;;;1337           sensors[0] |= INV_XYZ_GYRO;
;;;1338       }
;;;1339   
;;;1340       /* Gesture data is at the end of the DMP packet. Parse it and call
;;;1341        * the gesture callbacks (if registered).
;;;1342        */
;;;1343       if (dmp.feature_mask & (DMP_FEATURE_TAP | DMP_FEATURE_ANDROID_ORIENT))
;;;1344           decode_gesture(fifo_data + ii);
;;;1345   
;;;1346       get_ms(timestamp);
;;;1347       return 0;
;;;1348   }
000b7c  b00d              ADD      sp,sp,#0x34
000b7e  e8bd8ff0          POP      {r4-r11,pc}
                  |L1.2946|
000b82  483b              LDR      r0,|L1.3184|
000b84  7a80              LDRB     r0,[r0,#0xa]          ;1285  ; dmp
000b86  f0000014          AND      r0,r0,#0x14           ;1285
000b8a  2800              CMP      r0,#0                 ;1285
000b8c  d061              BEQ      |L1.3154|
000b8e  f89d0014          LDRB     r0,[sp,#0x14]         ;1289
000b92  0600              LSLS     r0,r0,#24             ;1289
000b94  f89d1015          LDRB     r1,[sp,#0x15]         ;1289
000b98  ea404001          ORR      r0,r0,r1,LSL #16      ;1289
000b9c  f89d1016          LDRB     r1,[sp,#0x16]         ;1289
000ba0  ea402001          ORR      r0,r0,r1,LSL #8       ;1289
000ba4  f89d1017          LDRB     r1,[sp,#0x17]         ;1289
000ba8  4308              ORRS     r0,r0,r1              ;1289
000baa  6028              STR      r0,[r5,#0]            ;1289
000bac  f89d0018          LDRB     r0,[sp,#0x18]         ;1291
000bb0  0600              LSLS     r0,r0,#24             ;1291
000bb2  f89d1019          LDRB     r1,[sp,#0x19]         ;1291
000bb6  ea404001          ORR      r0,r0,r1,LSL #16      ;1291
000bba  f89d101a          LDRB     r1,[sp,#0x1a]         ;1291
000bbe  ea402001          ORR      r0,r0,r1,LSL #8       ;1291
000bc2  f89d101b          LDRB     r1,[sp,#0x1b]         ;1291
000bc6  4308              ORRS     r0,r0,r1              ;1291
000bc8  6068              STR      r0,[r5,#4]            ;1291
000bca  f89d001c          LDRB     r0,[sp,#0x1c]         ;1293
000bce  0600              LSLS     r0,r0,#24             ;1293
000bd0  f89d101d          LDRB     r1,[sp,#0x1d]         ;1293
000bd4  ea404001          ORR      r0,r0,r1,LSL #16      ;1293
000bd8  f89d101e          LDRB     r1,[sp,#0x1e]         ;1293
000bdc  ea402001          ORR      r0,r0,r1,LSL #8       ;1293
000be0  f89d101f          LDRB     r1,[sp,#0x1f]         ;1293
000be4  4308              ORRS     r0,r0,r1              ;1293
000be6  60a8              STR      r0,[r5,#8]            ;1293
000be8  f89d0020          LDRB     r0,[sp,#0x20]         ;1295
000bec  0600              LSLS     r0,r0,#24             ;1295
000bee  f89d1021          LDRB     r1,[sp,#0x21]         ;1295
000bf2  ea404001          ORR      r0,r0,r1,LSL #16      ;1295
000bf6  f89d1022          LDRB     r1,[sp,#0x22]         ;1295
000bfa  ea402001          ORR      r0,r0,r1,LSL #8       ;1295
000bfe  f89d1023          LDRB     r1,[sp,#0x23]         ;1295
000c02  4308              ORRS     r0,r0,r1              ;1295
000c04  60e8              STR      r0,[r5,#0xc]          ;1295
000c06  f1040010          ADD      r0,r4,#0x10           ;1297
000c0a  b2c4              UXTB     r4,r0                 ;1297
000c0c  6828              LDR      r0,[r5,#0]            ;1307
000c0e  1400              ASRS     r0,r0,#16             ;1307
000c10  9001              STR      r0,[sp,#4]            ;1307
000c12  6868              LDR      r0,[r5,#4]            ;1308
000c14  1400              ASRS     r0,r0,#16             ;1308
000c16  9002              STR      r0,[sp,#8]            ;1308
000c18  68a8              LDR      r0,[r5,#8]            ;1309
000c1a  1400              ASRS     r0,r0,#16             ;1309
000c1c  9003              STR      r0,[sp,#0xc]          ;1309
000c1e  68e8              LDR      r0,[r5,#0xc]          ;1310
000c20  1400              ASRS     r0,r0,#16             ;1310
000c22  9004              STR      r0,[sp,#0x10]         ;1310
000c24  9801              LDR      r0,[sp,#4]            ;1311
000c26  4340              MULS     r0,r0,r0              ;1311
000c28  9902              LDR      r1,[sp,#8]            ;1311
000c2a  fb010001          MLA      r0,r1,r1,r0           ;1311
000c2e  9903              LDR      r1,[sp,#0xc]          ;1311
000c30  fb010001          MLA      r0,r1,r1,r0           ;1311
000c34  9904              LDR      r1,[sp,#0x10]         ;1311
000c36  fb010a01          MLA      r10,r1,r1,r0          ;1311
000c3a  f1ba6f70          CMP      r10,#0xf000000        ;1313
000c3e  db02              BLT      |L1.3142|
000c40  f1ba5f88          CMP      r10,#0x11000000       ;1314
000c44  dd22              BLE      |L1.3212|
                  |L1.3142|
000c46  f7fffffe          BL       mpu_reset_fifo
000c4a  2000              MOVS     r0,#0                 ;1317
000c4c  8030              STRH     r0,[r6,#0]            ;1317
000c4e  1e40              SUBS     r0,r0,#1              ;1318
000c50  e794              B        |L1.2940|
                  |L1.3154|
000c52  e021              B        |L1.3224|
                  |L1.3156|
000c54  b8aab38d          DCB      184,170,179,141,180,152,"\r5]",0
000c58  b4980d35
000c5c  5d00    
000c5e  00                DCB      0
000c5f  00                DCB      0
                  |L1.3168|
000c60  b8aaaaaa          DCB      184,170,170,170,176,136,195,197,199,0
000c64  b088c3c5
000c68  c700    
000c6a  00                DCB      0
000c6b  00                DCB      0
                  |L1.3180|
                          DCD      0x02cae309
                  |L1.3184|
                          DCD      ||dmp||
                  |L1.3188|
000c74  d8b1b9f3          DCB      216,177,185,243,139,163,145,182,"\t",180,217,0
000c78  8ba391b6
000c7c  09b4d900
                  |L1.3200|
000c80  dab1b9f3          DCB      218,177,185,243,139,163,145,182,218,180,218,0
000c84  8ba391b6
000c88  dab4da00
                  |L1.3212|
000c8c  f9b60000          LDRSH    r0,[r6,#0]            ;1320
000c90  f4407080          ORR      r0,r0,#0x100          ;1320
000c94  8030              STRH     r0,[r6,#0]            ;1320
000c96  bf00              NOP                            ;1322
                  |L1.3224|
000c98  4834              LDR      r0,|L1.3436|
000c9a  7a80              LDRB     r0,[r0,#0xa]          ;1324  ; dmp
000c9c  f0000040          AND      r0,r0,#0x40           ;1324
000ca0  b320              CBZ      r0,|L1.3308|
000ca2  a905              ADD      r1,sp,#0x14           ;1325
000ca4  1c60              ADDS     r0,r4,#1              ;1325
000ca6  5c08              LDRB     r0,[r1,r0]            ;1325
000ca8  5d09              LDRB     r1,[r1,r4]            ;1325
000caa  ea402001          ORR      r0,r0,r1,LSL #8       ;1325
000cae  b200              SXTH     r0,r0                 ;1325
000cb0  f8a80000          STRH     r0,[r8,#0]            ;1325
000cb4  a905              ADD      r1,sp,#0x14           ;1326
000cb6  1ce0              ADDS     r0,r4,#3              ;1326
000cb8  5c09              LDRB     r1,[r1,r0]            ;1326
000cba  aa05              ADD      r2,sp,#0x14           ;1326
000cbc  1ca0              ADDS     r0,r4,#2              ;1326
000cbe  5c10              LDRB     r0,[r2,r0]            ;1326
000cc0  ea412000          ORR      r0,r1,r0,LSL #8       ;1326
000cc4  b200              SXTH     r0,r0                 ;1326
000cc6  f8a80002          STRH     r0,[r8,#2]            ;1326
000cca  a905              ADD      r1,sp,#0x14           ;1327
000ccc  1d60              ADDS     r0,r4,#5              ;1327
000cce  5c09              LDRB     r1,[r1,r0]            ;1327
000cd0  1d20              ADDS     r0,r4,#4              ;1327
000cd2  5c10              LDRB     r0,[r2,r0]            ;1327
000cd4  ea412000          ORR      r0,r1,r0,LSL #8       ;1327
000cd8  b200              SXTH     r0,r0                 ;1327
000cda  f8a80004          STRH     r0,[r8,#4]            ;1327
000cde  1da0              ADDS     r0,r4,#6              ;1328
000ce0  b2c4              UXTB     r4,r0                 ;1328
000ce2  f9b60000          LDRSH    r0,[r6,#0]            ;1329
000ce6  f0400008          ORR      r0,r0,#8              ;1329
000cea  8030              STRH     r0,[r6,#0]            ;1329
                  |L1.3308|
000cec  481f              LDR      r0,|L1.3436|
000cee  8940              LDRH     r0,[r0,#0xa]          ;1332  ; dmp
000cf0  f40070c0          AND      r0,r0,#0x180          ;1332
000cf4  b308              CBZ      r0,|L1.3386|
000cf6  a905              ADD      r1,sp,#0x14           ;1333
000cf8  1c60              ADDS     r0,r4,#1              ;1333
000cfa  5c08              LDRB     r0,[r1,r0]            ;1333
000cfc  5d09              LDRB     r1,[r1,r4]            ;1333
000cfe  ea402001          ORR      r0,r0,r1,LSL #8       ;1333
000d02  b200              SXTH     r0,r0                 ;1333
000d04  8038              STRH     r0,[r7,#0]            ;1333
000d06  a905              ADD      r1,sp,#0x14           ;1334
000d08  1ce0              ADDS     r0,r4,#3              ;1334
000d0a  5c09              LDRB     r1,[r1,r0]            ;1334
000d0c  aa05              ADD      r2,sp,#0x14           ;1334
000d0e  1ca0              ADDS     r0,r4,#2              ;1334
000d10  5c10              LDRB     r0,[r2,r0]            ;1334
000d12  ea412000          ORR      r0,r1,r0,LSL #8       ;1334
000d16  b200              SXTH     r0,r0                 ;1334
000d18  8078              STRH     r0,[r7,#2]            ;1334
000d1a  a905              ADD      r1,sp,#0x14           ;1335
000d1c  1d60              ADDS     r0,r4,#5              ;1335
000d1e  5c09              LDRB     r1,[r1,r0]            ;1335
000d20  1d20              ADDS     r0,r4,#4              ;1335
000d22  5c10              LDRB     r0,[r2,r0]            ;1335
000d24  ea412000          ORR      r0,r1,r0,LSL #8       ;1335
000d28  b200              SXTH     r0,r0                 ;1335
000d2a  80b8              STRH     r0,[r7,#4]            ;1335
000d2c  1da0              ADDS     r0,r4,#6              ;1336
000d2e  b2c4              UXTB     r4,r0                 ;1336
000d30  f9b60000          LDRSH    r0,[r6,#0]            ;1337
000d34  f0400070          ORR      r0,r0,#0x70           ;1337
000d38  8030              STRH     r0,[r6,#0]            ;1337
                  |L1.3386|
000d3a  480c              LDR      r0,|L1.3436|
000d3c  7a80              LDRB     r0,[r0,#0xa]          ;1343  ; dmp
000d3e  f0000003          AND      r0,r0,#3              ;1343
000d42  b118              CBZ      r0,|L1.3404|
000d44  a905              ADD      r1,sp,#0x14           ;1344
000d46  1908              ADDS     r0,r1,r4              ;1344
000d48  f7fffffe          BL       decode_gesture
                  |L1.3404|
000d4c  4648              MOV      r0,r9                 ;1346
000d4e  f7fffffe          BL       mget_ms
000d52  2000              MOVS     r0,#0                 ;1347
000d54  e712              B        |L1.2940|
;;;1349   
                          ENDP

                  dmp_register_tap_cb PROC
;;;1361    */
;;;1362   int dmp_register_tap_cb(void (*func)(unsigned char, unsigned char))
000d56  4601              MOV      r1,r0
;;;1363   {
;;;1364       dmp.tap_cb = func;
000d58  4804              LDR      r0,|L1.3436|
000d5a  6001              STR      r1,[r0,#0]  ; dmp
;;;1365       return 0;
000d5c  2000              MOVS     r0,#0
;;;1366   }
000d5e  4770              BX       lr
;;;1367   
                          ENDP

                  dmp_register_android_orient_cb PROC
;;;1372    */
;;;1373   int dmp_register_android_orient_cb(void (*func)(unsigned char))
000d60  4601              MOV      r1,r0
;;;1374   {
;;;1375       dmp.android_orient_cb = func;
000d62  4802              LDR      r0,|L1.3436|
000d64  6041              STR      r1,[r0,#4]  ; dmp
;;;1376       return 0;
000d66  2000              MOVS     r0,#0
;;;1377   }
000d68  4770              BX       lr
;;;1378   
                          ENDP

000d6a  0000              DCW      0x0000
                  |L1.3436|
                          DCD      ||dmp||

                          AREA ||.bss||, DATA, NOINIT, ALIGN=2

                  ||dmp||
                          %        16

                          AREA ||.constdata||, DATA, READONLY, ALIGN=0

                  dmp_memory
000000  00007000          DCB      0x00,0x00,0x70,0x00
000004  00000024          DCB      0x00,0x00,0x00,0x24
000008  00000002          DCB      0x00,0x00,0x00,0x02
00000c  00030000          DCB      0x00,0x03,0x00,0x00
000010  00650054          DCB      0x00,0x65,0x00,0x54
000014  ffef0000          DCB      0xff,0xef,0x00,0x00
000018  fa80000b          DCB      0xfa,0x80,0x00,0x0b
00001c  12820001          DCB      0x12,0x82,0x00,0x01
000020  030c30c3          DCB      0x03,0x0c,0x30,0xc3
000024  0e8c8ce9          DCB      0x0e,0x8c,0x8c,0xe9
000028  14d54002          DCB      0x14,0xd5,0x40,0x02
00002c  13710f8e          DCB      0x13,0x71,0x0f,0x8e
000030  3883f883          DCB      0x38,0x83,0xf8,0x83
000034  3000f883          DCB      0x30,0x00,0xf8,0x83
000038  258ef883          DCB      0x25,0x8e,0xf8,0x83
00003c  3000f883          DCB      0x30,0x00,0xf8,0x83
000040  ffffffff          DCB      0xff,0xff,0xff,0xff
000044  0ffea9d6          DCB      0x0f,0xfe,0xa9,0xd6
000048  24000400          DCB      0x24,0x00,0x04,0x00
00004c  1a8279a1          DCB      0x1a,0x82,0x79,0xa1
000050  0000003c          DCB      0x00,0x00,0x00,0x3c
000054  ffff0000          DCB      0xff,0xff,0x00,0x00
000058  00100000          DCB      0x00,0x10,0x00,0x00
00005c  38836fa2          DCB      0x38,0x83,0x6f,0xa2
000060  003e0330          DCB      0x00,0x3e,0x03,0x30
000064  40000000          DCB      0x40,0x00,0x00,0x00
000068  02cae309          DCB      0x02,0xca,0xe3,0x09
00006c  3e800000          DCB      0x3e,0x80,0x00,0x00
000070  20000000          DCB      0x20,0x00,0x00,0x00
000074  00000000          DCB      0x00,0x00,0x00,0x00
000078  40000000          DCB      0x40,0x00,0x00,0x00
00007c  60000000          DCB      0x60,0x00,0x00,0x00
000080  000c0000          DCB      0x00,0x0c,0x00,0x00
000084  000c186e          DCB      0x00,0x0c,0x18,0x6e
000088  00000692          DCB      0x00,0x00,0x06,0x92
00008c  0a16c0df          DCB      0x0a,0x16,0xc0,0xdf
000090  ffff0256          DCB      0xff,0xff,0x02,0x56
000094  fd8cd377          DCB      0xfd,0x8c,0xd3,0x77
000098  ffe1c496          DCB      0xff,0xe1,0xc4,0x96
00009c  e0c5beaa          DCB      0xe0,0xc5,0xbe,0xaa
0000a0  00000000          DCB      0x00,0x00,0x00,0x00
0000a4  ffff0b2b          DCB      0xff,0xff,0x0b,0x2b
0000a8  00001657          DCB      0x00,0x00,0x16,0x57
0000ac  00000359          DCB      0x00,0x00,0x03,0x59
0000b0  40000000          DCB      0x40,0x00,0x00,0x00
0000b4  00001dfa          DCB      0x00,0x00,0x1d,0xfa
0000b8  00026c1d          DCB      0x00,0x02,0x6c,0x1d
0000bc  00000000          DCB      0x00,0x00,0x00,0x00
0000c0  3fffdfeb          DCB      0x3f,0xff,0xdf,0xeb
0000c4  003eb3b6          DCB      0x00,0x3e,0xb3,0xb6
0000c8  000d2278          DCB      0x00,0x0d,0x22,0x78
0000cc  00002f3c          DCB      0x00,0x00,0x2f,0x3c
0000d0  00000000          DCB      0x00,0x00,0x00,0x00
0000d4  001942b5          DCB      0x00,0x19,0x42,0xb5
0000d8  000039a2          DCB      0x00,0x00,0x39,0xa2
0000dc  0000b365          DCB      0x00,0x00,0xb3,0x65
0000e0  d90e9fc9          DCB      0xd9,0x0e,0x9f,0xc9
0000e4  1dcf4c34          DCB      0x1d,0xcf,0x4c,0x34
0000e8  30000000          DCB      0x30,0x00,0x00,0x00
0000ec  50000000          DCB      0x50,0x00,0x00,0x00
0000f0  3bb67ae8          DCB      0x3b,0xb6,0x7a,0xe8
0000f4  00640000          DCB      0x00,0x64,0x00,0x00
0000f8  00c80000          DCB      0x00,0xc8,0x00,0x00
0000fc  00000000          DCB      0x00,0x00,0x00,0x00
000100  10000000          DCB      0x10,0x00,0x00,0x00
000104  1000fa92          DCB      0x10,0x00,0xfa,0x92
000108  1000225e          DCB      0x10,0x00,0x22,0x5e
00010c  000d229f          DCB      0x00,0x0d,0x22,0x9f
000110  00010000          DCB      0x00,0x01,0x00,0x00
000114  00320000          DCB      0x00,0x32,0x00,0x00
000118  ff460000          DCB      0xff,0x46,0x00,0x00
00011c  63d40000          DCB      0x63,0xd4,0x00,0x00
000120  10000000          DCB      0x10,0x00,0x00,0x00
000124  04d60000          DCB      0x04,0xd6,0x00,0x00
000128  04cc0000          DCB      0x04,0xcc,0x00,0x00
00012c  04cc0000          DCB      0x04,0xcc,0x00,0x00
000130  00001072          DCB      0x00,0x00,0x10,0x72
000134  00000040          DCB      0x00,0x00,0x00,0x40
000138  00000000          DCB      0x00,0x00,0x00,0x00
00013c  00000000          DCB      0x00,0x00,0x00,0x00
000140  00060002          DCB      0x00,0x06,0x00,0x02
000144  00050007          DCB      0x00,0x05,0x00,0x07
000148  00000000          DCB      0x00,0x00,0x00,0x00
00014c  00640000          DCB      0x00,0x64,0x00,0x00
000150  00000000          DCB      0x00,0x00,0x00,0x00
000154  00000005          DCB      0x00,0x00,0x00,0x05
000158  00050064          DCB      0x00,0x05,0x00,0x64
00015c  00200000          DCB      0x00,0x20,0x00,0x00
000160  00000000          DCB      0x00,0x00,0x00,0x00
000164  00000000          DCB      0x00,0x00,0x00,0x00
000168  00004000          DCB      0x00,0x00,0x40,0x00
00016c  00000300          DCB      0x00,0x00,0x03,0x00
000170  00000032          DCB      0x00,0x00,0x00,0x32
000174  f8980000          DCB      0xf8,0x98,0x00,0x00
000178  ff650000          DCB      0xff,0x65,0x00,0x00
00017c  830f0000          DCB      0x83,0x0f,0x00,0x00
000180  ff9bfc00          DCB      0xff,0x9b,0xfc,0x00
000184  00000000          DCB      0x00,0x00,0x00,0x00
000188  00000000          DCB      0x00,0x00,0x00,0x00
00018c  00000000          DCB      0x00,0x00,0x00,0x00
000190  00000000          DCB      0x00,0x00,0x00,0x00
000194  00000000          DCB      0x00,0x00,0x00,0x00
000198  00000000          DCB      0x00,0x00,0x00,0x00
00019c  00000000          DCB      0x00,0x00,0x00,0x00
0001a0  00000000          DCB      0x00,0x00,0x00,0x00
0001a4  00000000          DCB      0x00,0x00,0x00,0x00
0001a8  00000000          DCB      0x00,0x00,0x00,0x00
0001ac  00001000          DCB      0x00,0x00,0x10,0x00
0001b0  40000000          DCB      0x40,0x00,0x00,0x00
0001b4  00000006          DCB      0x00,0x00,0x00,0x06
0001b8  0000b26a          DCB      0x00,0x00,0xb2,0x6a
0001bc  00020000          DCB      0x00,0x02,0x00,0x00
0001c0  0001fb83          DCB      0x00,0x01,0xfb,0x83
0001c4  00680000          DCB      0x00,0x68,0x00,0x00
0001c8  00d9fc00          DCB      0x00,0xd9,0xfc,0x00
0001cc  7cf1ff83          DCB      0x7c,0xf1,0xff,0x83
0001d0  00000000          DCB      0x00,0x00,0x00,0x00
0001d4  00650000          DCB      0x00,0x65,0x00,0x00
0001d8  006403e8          DCB      0x00,0x64,0x03,0xe8
0001dc  00640028          DCB      0x00,0x64,0x00,0x28
0001e0  00000025          DCB      0x00,0x00,0x00,0x25
0001e4  00000000          DCB      0x00,0x00,0x00,0x00
0001e8  16a00000          DCB      0x16,0xa0,0x00,0x00
0001ec  00001000          DCB      0x00,0x00,0x10,0x00
0001f0  00001000          DCB      0x00,0x00,0x10,0x00
0001f4  002f0000          DCB      0x00,0x2f,0x00,0x00
0001f8  000001f4          DCB      0x00,0x00,0x01,0xf4
0001fc  00001000          DCB      0x00,0x00,0x10,0x00
000200  00280000          DCB      0x00,0x28,0x00,0x00
000204  ffff4581          DCB      0xff,0xff,0x45,0x81
000208  fffffa72          DCB      0xff,0xff,0xfa,0x72
00020c  00000000          DCB      0x00,0x00,0x00,0x00
000210  00000000          DCB      0x00,0x00,0x00,0x00
000214  00440005          DCB      0x00,0x44,0x00,0x05
000218  0005bac6          DCB      0x00,0x05,0xba,0xc6
00021c  004778a2          DCB      0x00,0x47,0x78,0xa2
000220  00000001          DCB      0x00,0x00,0x00,0x01
000224  00000000          DCB      0x00,0x00,0x00,0x00
000228  00000600          DCB      0x00,0x00,0x06,0x00
00022c  00000014          DCB      0x00,0x00,0x00,0x14
000230  0000254d          DCB      0x00,0x00,0x25,0x4d
000234  002f706d          DCB      0x00,0x2f,0x70,0x6d
000238  000005ae          DCB      0x00,0x00,0x05,0xae
00023c  000c02d0          DCB      0x00,0x0c,0x02,0xd0
000240  00000000          DCB      0x00,0x00,0x00,0x00
000244  00000000          DCB      0x00,0x00,0x00,0x00
000248  00000000          DCB      0x00,0x00,0x00,0x00
00024c  00000000          DCB      0x00,0x00,0x00,0x00
000250  001b0000          DCB      0x00,0x1b,0x00,0x00
000254  00000000          DCB      0x00,0x00,0x00,0x00
000258  00000000          DCB      0x00,0x00,0x00,0x00
00025c  00000000          DCB      0x00,0x00,0x00,0x00
000260  00640000          DCB      0x00,0x64,0x00,0x00
000264  00080000          DCB      0x00,0x08,0x00,0x00
000268  00000000          DCB      0x00,0x00,0x00,0x00
00026c  00000000          DCB      0x00,0x00,0x00,0x00
000270  00000000          DCB      0x00,0x00,0x00,0x00
000274  00000000          DCB      0x00,0x00,0x00,0x00
000278  00000000          DCB      0x00,0x00,0x00,0x00
00027c  00000000          DCB      0x00,0x00,0x00,0x00
000280  00000000          DCB      0x00,0x00,0x00,0x00
000284  00000000          DCB      0x00,0x00,0x00,0x00
000288  00000000          DCB      0x00,0x00,0x00,0x00
00028c  00000000          DCB      0x00,0x00,0x00,0x00
000290  00000000          DCB      0x00,0x00,0x00,0x00
000294  00000000          DCB      0x00,0x00,0x00,0x00
000298  00000000          DCB      0x00,0x00,0x00,0x00
00029c  00000000          DCB      0x00,0x00,0x00,0x00
0002a0  00000000          DCB      0x00,0x00,0x00,0x00
0002a4  00000000          DCB      0x00,0x00,0x00,0x00
0002a8  00000000          DCB      0x00,0x00,0x00,0x00
0002ac  00000000          DCB      0x00,0x00,0x00,0x00
0002b0  00000000          DCB      0x00,0x00,0x00,0x00
0002b4  00000000          DCB      0x00,0x00,0x00,0x00
0002b8  00000000          DCB      0x00,0x00,0x00,0x00
0002bc  00000000          DCB      0x00,0x00,0x00,0x00
0002c0  001b0000          DCB      0x00,0x1b,0x00,0x00
0002c4  00000000          DCB      0x00,0x00,0x00,0x00
0002c8  00000000          DCB      0x00,0x00,0x00,0x00
0002cc  000e000e          DCB      0x00,0x0e,0x00,0x0e
0002d0  00000ac7          DCB      0x00,0x00,0x0a,0xc7
0002d4  00040000          DCB      0x00,0x04,0x00,0x00
0002d8  00000032          DCB      0x00,0x00,0x00,0x32
0002dc  ffffff9c          DCB      0xff,0xff,0xff,0x9c
0002e0  00000b2b          DCB      0x00,0x00,0x0b,0x2b
0002e4  00000002          DCB      0x00,0x00,0x00,0x02
0002e8  00000001          DCB      0x00,0x00,0x00,0x01
0002ec  00000064          DCB      0x00,0x00,0x00,0x64
0002f0  ffe50000          DCB      0xff,0xe5,0x00,0x00
0002f4  00000000          DCB      0x00,0x00,0x00,0x00
0002f8  00000000          DCB      0x00,0x00,0x00,0x00
0002fc  00000000          DCB      0x00,0x00,0x00,0x00
000300  00000001          DCB      0x00,0x00,0x00,0x01
000304  00000000          DCB      0x00,0x00,0x00,0x00
000308  00010000          DCB      0x00,0x01,0x00,0x00
00030c  00000000          DCB      0x00,0x00,0x00,0x00
000310  00018000          DCB      0x00,0x01,0x80,0x00
000314  00018000          DCB      0x00,0x01,0x80,0x00
000318  00018000          DCB      0x00,0x01,0x80,0x00
00031c  002426d3          DCB      0x00,0x24,0x26,0xd3
000320  00000000          DCB      0x00,0x00,0x00,0x00
000324  00000000          DCB      0x00,0x00,0x00,0x00
000328  00060010          DCB      0x00,0x06,0x00,0x10
00032c  0096003c          DCB      0x00,0x96,0x00,0x3c
000330  00000000          DCB      0x00,0x00,0x00,0x00
000334  00000000          DCB      0x00,0x00,0x00,0x00
000338  00000000          DCB      0x00,0x00,0x00,0x00
00033c  00000000          DCB      0x00,0x00,0x00,0x00
000340  0c0a4e68          DCB      0x0c,0x0a,0x4e,0x68
000344  cdcf7709          DCB      0xcd,0xcf,0x77,0x09
000348  50166759          DCB      0x50,0x16,0x67,0x59
00034c  c619ce82          DCB      0xc6,0x19,0xce,0x82
000350  00000000          DCB      0x00,0x00,0x00,0x00
000354  00000000          DCB      0x00,0x00,0x00,0x00
000358  00000000          DCB      0x00,0x00,0x00,0x00
00035c  00000000          DCB      0x00,0x00,0x00,0x00
000360  00000000          DCB      0x00,0x00,0x00,0x00
000364  00000000          DCB      0x00,0x00,0x00,0x00
000368  17d78400          DCB      0x17,0xd7,0x84,0x00
00036c  03000000          DCB      0x03,0x00,0x00,0x00
000370  00000000          DCB      0x00,0x00,0x00,0x00
000374  00000000          DCB      0x00,0x00,0x00,0x00
000378  c7938f9d          DCB      0xc7,0x93,0x8f,0x9d
00037c  1e1b1c19          DCB      0x1e,0x1b,0x1c,0x19
000380  00000000          DCB      0x00,0x00,0x00,0x00
000384  00000000          DCB      0x00,0x00,0x00,0x00
000388  00000000          DCB      0x00,0x00,0x00,0x00
00038c  00000000          DCB      0x00,0x00,0x00,0x00
000390  00000000          DCB      0x00,0x00,0x00,0x00
000394  00000000          DCB      0x00,0x00,0x00,0x00
000398  02031885          DCB      0x02,0x03,0x18,0x85
00039c  00004000          DCB      0x00,0x00,0x40,0x00
0003a0  00000003          DCB      0x00,0x00,0x00,0x03
0003a4  00000003          DCB      0x00,0x00,0x00,0x03
0003a8  00000000          DCB      0x00,0x00,0x00,0x00
0003ac  00000000          DCB      0x00,0x00,0x00,0x00
0003b0  40000000          DCB      0x40,0x00,0x00,0x00
0003b4  00000000          DCB      0x00,0x00,0x00,0x00
0003b8  00000000          DCB      0x00,0x00,0x00,0x00
0003bc  00000000          DCB      0x00,0x00,0x00,0x00
0003c0  00000000          DCB      0x00,0x00,0x00,0x00
0003c4  00000000          DCB      0x00,0x00,0x00,0x00
0003c8  00000000          DCB      0x00,0x00,0x00,0x00
0003cc  00000000          DCB      0x00,0x00,0x00,0x00
0003d0  00000000          DCB      0x00,0x00,0x00,0x00
0003d4  00000000          DCB      0x00,0x00,0x00,0x00
0003d8  00000000          DCB      0x00,0x00,0x00,0x00
0003dc  00000000          DCB      0x00,0x00,0x00,0x00
0003e0  00000000          DCB      0x00,0x00,0x00,0x00
0003e4  677ddf7e          DCB      0x67,0x7d,0xdf,0x7e
0003e8  72902e55          DCB      0x72,0x90,0x2e,0x55
0003ec  4cf6e688          DCB      0x4c,0xf6,0xe6,0x88
0003f0  00000000          DCB      0x00,0x00,0x00,0x00
0003f4  00000000          DCB      0x00,0x00,0x00,0x00
0003f8  00000000          DCB      0x00,0x00,0x00,0x00
0003fc  00000000          DCB      0x00,0x00,0x00,0x00
000400  d8dcb4b8          DCB      0xd8,0xdc,0xb4,0xb8
000404  b0d8b9ab          DCB      0xb0,0xd8,0xb9,0xab
000408  f3f8fab3          DCB      0xf3,0xf8,0xfa,0xb3
00040c  b7bb8e9e          DCB      0xb7,0xbb,0x8e,0x9e
000410  aef132f5          DCB      0xae,0xf1,0x32,0xf5
000414  1bf1b4b8          DCB      0x1b,0xf1,0xb4,0xb8
000418  b08097f1          DCB      0xb0,0x80,0x97,0xf1
00041c  a9dfdfdf          DCB      0xa9,0xdf,0xdf,0xdf
000420  aadfdfdf          DCB      0xaa,0xdf,0xdf,0xdf
000424  f2aac5cd          DCB      0xf2,0xaa,0xc5,0xcd
000428  c7a90cc9          DCB      0xc7,0xa9,0x0c,0xc9
00042c  2c97f1a9          DCB      0x2c,0x97,0xf1,0xa9
000430  89264666          DCB      0x89,0x26,0x46,0x66
000434  b28999a9          DCB      0xb2,0x89,0x99,0xa9
000438  2d557db0          DCB      0x2d,0x55,0x7d,0xb0
00043c  b08aa896          DCB      0xb0,0x8a,0xa8,0x96
000440  365676f1          DCB      0x36,0x56,0x76,0xf1
000444  baa3b4b2          DCB      0xba,0xa3,0xb4,0xb2
000448  80c0b8a8          DCB      0x80,0xc0,0xb8,0xa8
00044c  9711b283          DCB      0x97,0x11,0xb2,0x83
000450  98baa3f0          DCB      0x98,0xba,0xa3,0xf0
000454  24084410          DCB      0x24,0x08,0x44,0x10
000458  6418b2b9          DCB      0x64,0x18,0xb2,0xb9
00045c  b49883f1          DCB      0xb4,0x98,0x83,0xf1
000460  a329557d          DCB      0xa3,0x29,0x55,0x7d
000464  bab5b1a3          DCB      0xba,0xb5,0xb1,0xa3
000468  8393f000          DCB      0x83,0x93,0xf0,0x00
00046c  2850f5b2          DCB      0x28,0x50,0xf5,0xb2
000470  b6aa8393          DCB      0xb6,0xaa,0x83,0x93
000474  28547cf1          DCB      0x28,0x54,0x7c,0xf1
000478  b9a38293          DCB      0xb9,0xa3,0x82,0x93
00047c  61baa2da          DCB      0x61,0xba,0xa2,0xda
000480  dedfdb81          DCB      0xde,0xdf,0xdb,0x81
000484  9ab9aef5          DCB      0x9a,0xb9,0xae,0xf5
000488  606870f1          DCB      0x60,0x68,0x70,0xf1
00048c  dabaa2df          DCB      0xda,0xba,0xa2,0xdf
000490  d9baa2fa          DCB      0xd9,0xba,0xa2,0xfa
000494  b9a38292          DCB      0xb9,0xa3,0x82,0x92
000498  db31baa2          DCB      0xdb,0x31,0xba,0xa2
00049c  d9baa2f8          DCB      0xd9,0xba,0xa2,0xf8
0004a0  df85a4d0          DCB      0xdf,0x85,0xa4,0xd0
0004a4  c1bbad83          DCB      0xc1,0xbb,0xad,0x83
0004a8  c2c5c7b8          DCB      0xc2,0xc5,0xc7,0xb8
0004ac  a2dfdfdf          DCB      0xa2,0xdf,0xdf,0xdf
0004b0  baa0dfdf          DCB      0xba,0xa0,0xdf,0xdf
0004b4  dfd8d8f1          DCB      0xdf,0xd8,0xd8,0xf1
0004b8  b8aab38d          DCB      0xb8,0xaa,0xb3,0x8d
0004bc  b4980d35          DCB      0xb4,0x98,0x0d,0x35
0004c0  5db2b6ba          DCB      0x5d,0xb2,0xb6,0xba
0004c4  af8c9619          DCB      0xaf,0x8c,0x96,0x19
0004c8  8f9fa70e          DCB      0x8f,0x9f,0xa7,0x0e
0004cc  161eb49a          DCB      0x16,0x1e,0xb4,0x9a
0004d0  b8aa872c          DCB      0xb8,0xaa,0x87,0x2c
0004d4  547cbaa4          DCB      0x54,0x7c,0xba,0xa4
0004d8  b08ab691          DCB      0xb0,0x8a,0xb6,0x91
0004dc  325676b2          DCB      0x32,0x56,0x76,0xb2
0004e0  8494a4c8          DCB      0x84,0x94,0xa4,0xc8
0004e4  08cdd8b8          DCB      0x08,0xcd,0xd8,0xb8
0004e8  b4b0f199          DCB      0xb4,0xb0,0xf1,0x99
0004ec  82a82d55          DCB      0x82,0xa8,0x2d,0x55
0004f0  7d98a80e          DCB      0x7d,0x98,0xa8,0x0e
0004f4  161ea22c          DCB      0x16,0x1e,0xa2,0x2c
0004f8  547c92a4          DCB      0x54,0x7c,0x92,0xa4
0004fc  f02c5078          DCB      0xf0,0x2c,0x50,0x78
000500  f184a898          DCB      0xf1,0x84,0xa8,0x98
000504  c4cdfcd8          DCB      0xc4,0xcd,0xfc,0xd8
000508  0ddba8fc          DCB      0x0d,0xdb,0xa8,0xfc
00050c  2df3d9ba          DCB      0x2d,0xf3,0xd9,0xba
000510  a6f8daba          DCB      0xa6,0xf8,0xda,0xba
000514  a6ded8ba          DCB      0xa6,0xde,0xd8,0xba
000518  b2b68696          DCB      0xb2,0xb6,0x86,0x96
00051c  a6d0f3c8          DCB      0xa6,0xd0,0xf3,0xc8
000520  41daa6c8          DCB      0x41,0xda,0xa6,0xc8
000524  f8d8b0b4          DCB      0xf8,0xd8,0xb0,0xb4
000528  b882a892          DCB      0xb8,0x82,0xa8,0x92
00052c  f52c5488          DCB      0xf5,0x2c,0x54,0x88
000530  98f135d9          DCB      0x98,0xf1,0x35,0xd9
000534  f418d8f1          DCB      0xf4,0x18,0xd8,0xf1
000538  a2d0f8f9          DCB      0xa2,0xd0,0xf8,0xf9
00053c  a884d9c7          DCB      0xa8,0x84,0xd9,0xc7
000540  dff8f883          DCB      0xdf,0xf8,0xf8,0x83
000544  c5dadf69          DCB      0xc5,0xda,0xdf,0x69
000548  df83c1d8          DCB      0xdf,0x83,0xc1,0xd8
00054c  f40114f1          DCB      0xf4,0x01,0x14,0xf1
000550  a8824ea8          DCB      0xa8,0x82,0x4e,0xa8
000554  84f311d1          DCB      0x84,0xf3,0x11,0xd1
000558  82f5d992          DCB      0x82,0xf5,0xd9,0x92
00055c  289788f1          DCB      0x28,0x97,0x88,0xf1
000560  09f41c1c          DCB      0x09,0xf4,0x1c,0x1c
000564  d884a8f3          DCB      0xd8,0x84,0xa8,0xf3
000568  c0f9d1d9          DCB      0xc0,0xf9,0xd1,0xd9
00056c  9782f129          DCB      0x97,0x82,0xf1,0x29
000570  f40dd8f3          DCB      0xf4,0x0d,0xd8,0xf3
000574  f9f9d1d9          DCB      0xf9,0xf9,0xd1,0xd9
000578  82f4c203          DCB      0x82,0xf4,0xc2,0x03
00057c  d8dedf1a          DCB      0xd8,0xde,0xdf,0x1a
000580  d8f1a2fa          DCB      0xd8,0xf1,0xa2,0xfa
000584  f9a88498          DCB      0xf9,0xa8,0x84,0x98
000588  d9c7dff8          DCB      0xd9,0xc7,0xdf,0xf8
00058c  f8f883c7          DCB      0xf8,0xf8,0x83,0xc7
000590  dadf69df          DCB      0xda,0xdf,0x69,0xdf
000594  f883c3d8          DCB      0xf8,0x83,0xc3,0xd8
000598  f40114f1          DCB      0xf4,0x01,0x14,0xf1
00059c  98a8822e          DCB      0x98,0xa8,0x82,0x2e
0005a0  a884f311          DCB      0xa8,0x84,0xf3,0x11
0005a4  d182f5d9          DCB      0xd1,0x82,0xf5,0xd9
0005a8  92509788          DCB      0x92,0x50,0x97,0x88
0005ac  f109f41c          DCB      0xf1,0x09,0xf4,0x1c
0005b0  d884a8f3          DCB      0xd8,0x84,0xa8,0xf3
0005b4  c0f8f9d1          DCB      0xc0,0xf8,0xf9,0xd1
0005b8  d99782f1          DCB      0xd9,0x97,0x82,0xf1
0005bc  49f40dd8          DCB      0x49,0xf4,0x0d,0xd8
0005c0  f3f9f9d1          DCB      0xf3,0xf9,0xf9,0xd1
0005c4  d982f4c4          DCB      0xd9,0x82,0xf4,0xc4
0005c8  03d8dedf          DCB      0x03,0xd8,0xde,0xdf
0005cc  d8f1ad88          DCB      0xd8,0xf1,0xad,0x88
0005d0  98cca809          DCB      0x98,0xcc,0xa8,0x09
0005d4  f9d98292          DCB      0xf9,0xd9,0x82,0x92
0005d8  a8f57cf1          DCB      0xa8,0xf5,0x7c,0xf1
0005dc  883acf94          DCB      0x88,0x3a,0xcf,0x94
0005e0  4a6e98db          DCB      0x4a,0x6e,0x98,0xdb
0005e4  6931daad          DCB      0x69,0x31,0xda,0xad
0005e8  f2def9d8          DCB      0xf2,0xde,0xf9,0xd8
0005ec  8795a8f2          DCB      0x87,0x95,0xa8,0xf2
0005f0  21d1daa5          DCB      0x21,0xd1,0xda,0xa5
0005f4  f9f417d9          DCB      0xf9,0xf4,0x17,0xd9
0005f8  f1ae8ed0          DCB      0xf1,0xae,0x8e,0xd0
0005fc  c0c3ae82          DCB      0xc0,0xc3,0xae,0x82
000600  c684c3a8          DCB      0xc6,0x84,0xc3,0xa8
000604  8595c8a5          DCB      0x85,0x95,0xc8,0xa5
000608  88f2c0f1          DCB      0x88,0xf2,0xc0,0xf1
00060c  f4010ef1          DCB      0xf4,0x01,0x0e,0xf1
000610  8e9ea8c6          DCB      0x8e,0x9e,0xa8,0xc6
000614  3e56f554          DCB      0x3e,0x56,0xf5,0x54
000618  f18872f4          DCB      0xf1,0x88,0x72,0xf4
00061c  0115f198          DCB      0x01,0x15,0xf1,0x98
000620  45856ef5          DCB      0x45,0x85,0x6e,0xf5
000624  8e9e0488          DCB      0x8e,0x9e,0x04,0x88
000628  f142985a          DCB      0xf1,0x42,0x98,0x5a
00062c  8e9e0688          DCB      0x8e,0x9e,0x06,0x88
000630  69f4011c          DCB      0x69,0xf4,0x01,0x1c
000634  f1981e11          DCB      0xf1,0x98,0x1e,0x11
000638  08d0f504          DCB      0x08,0xd0,0xf5,0x04
00063c  f11e9702          DCB      0xf1,0x1e,0x97,0x02
000640  02983625          DCB      0x02,0x98,0x36,0x25
000644  dbf9d985          DCB      0xdb,0xf9,0xd9,0x85
000648  a5f3c1da          DCB      0xa5,0xf3,0xc1,0xda
00064c  85a5f3df          DCB      0x85,0xa5,0xf3,0xdf
000650  d88595a8          DCB      0xd8,0x85,0x95,0xa8
000654  f309daa5          DCB      0xf3,0x09,0xda,0xa5
000658  fad88292          DCB      0xfa,0xd8,0x82,0x92
00065c  a8f578f1          DCB      0xa8,0xf5,0x78,0xf1
000660  881a849f          DCB      0x88,0x1a,0x84,0x9f
000664  26889821          DCB      0x26,0x88,0x98,0x21
000668  daf41df3          DCB      0xda,0xf4,0x1d,0xf3
00066c  d8879f39          DCB      0xd8,0x87,0x9f,0x39
000670  d1afd9df          DCB      0xd1,0xaf,0xd9,0xdf
000674  dffbf9f4          DCB      0xdf,0xfb,0xf9,0xf4
000678  0cf3d8fa          DCB      0x0c,0xf3,0xd8,0xfa
00067c  d0f8daf9          DCB      0xd0,0xf8,0xda,0xf9
000680  f9d0dfd9          DCB      0xf9,0xd0,0xdf,0xd9
000684  f9d8f40b          DCB      0xf9,0xd8,0xf4,0x0b
000688  d8f3879f          DCB      0xd8,0xf3,0x87,0x9f
00068c  39d1afd9          DCB      0x39,0xd1,0xaf,0xd9
000690  dfdff41d          DCB      0xdf,0xdf,0xf4,0x1d
000694  f3d8fafc          DCB      0xf3,0xd8,0xfa,0xfc
000698  a869f9f9          DCB      0xa8,0x69,0xf9,0xf9
00069c  afd0dade          DCB      0xaf,0xd0,0xda,0xde
0006a0  fad9f88f          DCB      0xfa,0xd9,0xf8,0x8f
0006a4  9fa8f1cc          DCB      0x9f,0xa8,0xf1,0xcc
0006a8  f398db45          DCB      0xf3,0x98,0xdb,0x45
0006ac  d9afdfd0          DCB      0xd9,0xaf,0xdf,0xd0
0006b0  f8d8f18f          DCB      0xf8,0xd8,0xf1,0x8f
0006b4  9fa8caf3          DCB      0x9f,0xa8,0xca,0xf3
0006b8  8809daaf          DCB      0x88,0x09,0xda,0xaf
0006bc  8fcbf8d8          DCB      0x8f,0xcb,0xf8,0xd8
0006c0  f2ad978d          DCB      0xf2,0xad,0x97,0x8d
0006c4  0cd9a5df          DCB      0x0c,0xd9,0xa5,0xdf
0006c8  f9baa6f3          DCB      0xf9,0xba,0xa6,0xf3
0006cc  faf412f2          DCB      0xfa,0xf4,0x12,0xf2
0006d0  d8950dd1          DCB      0xd8,0x95,0x0d,0xd1
0006d4  d9baa6f3          DCB      0xd9,0xba,0xa6,0xf3
0006d8  fadaa5f2          DCB      0xfa,0xda,0xa5,0xf2
0006dc  c1baa6f3          DCB      0xc1,0xba,0xa6,0xf3
0006e0  dfd8f1ba          DCB      0xdf,0xd8,0xf1,0xba
0006e4  b2b68696          DCB      0xb2,0xb6,0x86,0x96
0006e8  a6d0caf3          DCB      0xa6,0xd0,0xca,0xf3
0006ec  49daa6cb          DCB      0x49,0xda,0xa6,0xcb
0006f0  f8d8b0b4          DCB      0xf8,0xd8,0xb0,0xb4
0006f4  b8d8ad84          DCB      0xb8,0xd8,0xad,0x84
0006f8  f2c0dff1          DCB      0xf2,0xc0,0xdf,0xf1
0006fc  8fcbc3a8          DCB      0x8f,0xcb,0xc3,0xa8
000700  b2b68696          DCB      0xb2,0xb6,0x86,0x96
000704  c8c1cbc3          DCB      0xc8,0xc1,0xcb,0xc3
000708  f3b0b488          DCB      0xf3,0xb0,0xb4,0x88
00070c  98a821db          DCB      0x98,0xa8,0x21,0xdb
000710  718d9d71          DCB      0x71,0x8d,0x9d,0x71
000714  859521d9          DCB      0x85,0x95,0x21,0xd9
000718  adf2fad8          DCB      0xad,0xf2,0xfa,0xd8
00071c  8597a828          DCB      0x85,0x97,0xa8,0x28
000720  d9f408d8          DCB      0xd9,0xf4,0x08,0xd8
000724  f28d29da          DCB      0xf2,0x8d,0x29,0xda
000728  f405d9f2          DCB      0xf4,0x05,0xd9,0xf2
00072c  85a4c2f2          DCB      0x85,0xa4,0xc2,0xf2
000730  d8a88d94          DCB      0xd8,0xa8,0x8d,0x94
000734  01d1d9f4          DCB      0x01,0xd1,0xd9,0xf4
000738  11f2d887          DCB      0x11,0xf2,0xd8,0x87
00073c  21d8f40a          DCB      0x21,0xd8,0xf4,0x0a
000740  d8f28498          DCB      0xd8,0xf2,0x84,0x98
000744  a8c801d1          DCB      0xa8,0xc8,0x01,0xd1
000748  d9f411d8          DCB      0xd9,0xf4,0x11,0xd8
00074c  f3a4c8bb          DCB      0xf3,0xa4,0xc8,0xbb
000750  afd0f2de          DCB      0xaf,0xd0,0xf2,0xde
000754  f8f8f8f8          DCB      0xf8,0xf8,0xf8,0xf8
000758  f8f8f8f8          DCB      0xf8,0xf8,0xf8,0xf8
00075c  d8f1b8f6          DCB      0xd8,0xf1,0xb8,0xf6
000760  b5b9b08a          DCB      0xb5,0xb9,0xb0,0x8a
000764  95a3de3c          DCB      0x95,0xa3,0xde,0x3c
000768  a3d9f8d8          DCB      0xa3,0xd9,0xf8,0xd8
00076c  5ca3d9f8          DCB      0x5c,0xa3,0xd9,0xf8
000770  d87ca3d9          DCB      0xd8,0x7c,0xa3,0xd9
000774  f8d8f8f9          DCB      0xf8,0xd8,0xf8,0xf9
000778  d1a5d9df          DCB      0xd1,0xa5,0xd9,0xdf
00077c  dafad8b1          DCB      0xda,0xfa,0xd8,0xb1
000780  8530f7d9          DCB      0x85,0x30,0xf7,0xd9
000784  ded8f830          DCB      0xde,0xd8,0xf8,0x30
000788  addaded8          DCB      0xad,0xda,0xde,0xd8
00078c  f2b48c99          DCB      0xf2,0xb4,0x8c,0x99
000790  a32d557d          DCB      0xa3,0x2d,0x55,0x7d
000794  a083dfdf          DCB      0xa0,0x83,0xdf,0xdf
000798  dfb591a0          DCB      0xdf,0xb5,0x91,0xa0
00079c  f629d9fb          DCB      0xf6,0x29,0xd9,0xfb
0007a0  d8a0fc29          DCB      0xd8,0xa0,0xfc,0x29
0007a4  d9fad8a0          DCB      0xd9,0xfa,0xd8,0xa0
0007a8  d051d9f8          DCB      0xd0,0x51,0xd9,0xf8
0007ac  d8fc51d9          DCB      0xd8,0xfc,0x51,0xd9
0007b0  f9d879d9          DCB      0xf9,0xd8,0x79,0xd9
0007b4  fbd8a0d0          DCB      0xfb,0xd8,0xa0,0xd0
0007b8  fc79d9fa          DCB      0xfc,0x79,0xd9,0xfa
0007bc  d8a1f9f9          DCB      0xd8,0xa1,0xf9,0xf9
0007c0  f9f9f9a0          DCB      0xf9,0xf9,0xf9,0xa0
0007c4  dadfdfdf          DCB      0xda,0xdf,0xdf,0xdf
0007c8  d8a1f8f8          DCB      0xd8,0xa1,0xf8,0xf8
0007cc  f8f8f8ac          DCB      0xf8,0xf8,0xf8,0xac
0007d0  def8adde          DCB      0xde,0xf8,0xad,0xde
0007d4  8393ac2c          DCB      0x83,0x93,0xac,0x2c
0007d8  547cf1a8          DCB      0x54,0x7c,0xf1,0xa8
0007dc  dfdfdff6          DCB      0xdf,0xdf,0xdf,0xf6
0007e0  9d2cdaa0          DCB      0x9d,0x2c,0xda,0xa0
0007e4  dfd9fadb          DCB      0xdf,0xd9,0xfa,0xdb
0007e8  2df8d8a8          DCB      0x2d,0xf8,0xd8,0xa8
0007ec  50daa0d0          DCB      0x50,0xda,0xa0,0xd0
0007f0  ded9d0f8          DCB      0xde,0xd9,0xd0,0xf8
0007f4  f8f8db55          DCB      0xf8,0xf8,0xdb,0x55
0007f8  f8d8a878          DCB      0xf8,0xd8,0xa8,0x78
0007fc  daa0d0df          DCB      0xda,0xa0,0xd0,0xdf
000800  d9d0faf8          DCB      0xd9,0xd0,0xfa,0xf8
000804  f8f8f8db          DCB      0xf8,0xf8,0xf8,0xdb
000808  7df8d89c          DCB      0x7d,0xf8,0xd8,0x9c
00080c  a88cf530          DCB      0xa8,0x8c,0xf5,0x30
000810  db38d9d0          DCB      0xdb,0x38,0xd9,0xd0
000814  dedfa0d0          DCB      0xde,0xdf,0xa0,0xd0
000818  dedfd8a8          DCB      0xde,0xdf,0xd8,0xa8
00081c  48db58d9          DCB      0x48,0xdb,0x58,0xd9
000820  dfd0dea0          DCB      0xdf,0xd0,0xde,0xa0
000824  dfd0ded8          DCB      0xdf,0xd0,0xde,0xd8
000828  a868db70          DCB      0xa8,0x68,0xdb,0x70
00082c  d9dfdfa0          DCB      0xd9,0xdf,0xdf,0xa0
000830  dfdfd8f1          DCB      0xdf,0xdf,0xd8,0xf1
000834  a888902c          DCB      0xa8,0x88,0x90,0x2c
000838  547c98a8          DCB      0x54,0x7c,0x98,0xa8
00083c  d05c38d1          DCB      0xd0,0x5c,0x38,0xd1
000840  daf2ae8c          DCB      0xda,0xf2,0xae,0x8c
000844  dff9d8b0          DCB      0xdf,0xf9,0xd8,0xb0
000848  87a8c1c1          DCB      0x87,0xa8,0xc1,0xc1
00084c  b188a8c6          DCB      0xb1,0x88,0xa8,0xc6
000850  f9f9da36          DCB      0xf9,0xf9,0xda,0x36
000854  d8a8f9da          DCB      0xd8,0xa8,0xf9,0xda
000858  36d8a8f9          DCB      0x36,0xd8,0xa8,0xf9
00085c  da36d8a8          DCB      0xda,0x36,0xd8,0xa8
000860  f9da36d8          DCB      0xf9,0xda,0x36,0xd8
000864  a8f9da36          DCB      0xa8,0xf9,0xda,0x36
000868  d8f78d9d          DCB      0xd8,0xf7,0x8d,0x9d
00086c  adf818da          DCB      0xad,0xf8,0x18,0xda
000870  f2aedfd8          DCB      0xf2,0xae,0xdf,0xd8
000874  f7adfa30          DCB      0xf7,0xad,0xfa,0x30
000878  d9a4def9          DCB      0xd9,0xa4,0xde,0xf9
00087c  d8f2aede          DCB      0xd8,0xf2,0xae,0xde
000880  faf983a7          DCB      0xfa,0xf9,0x83,0xa7
000884  d9c3c5c7          DCB      0xd9,0xc3,0xc5,0xc7
000888  f1889ba7          DCB      0xf1,0x88,0x9b,0xa7
00088c  7aadf7de          DCB      0x7a,0xad,0xf7,0xde
000890  dfa4f884          DCB      0xdf,0xa4,0xf8,0x84
000894  9408a797          DCB      0x94,0x08,0xa7,0x97
000898  f300aef2          DCB      0xf3,0x00,0xae,0xf2
00089c  9819a488          DCB      0x98,0x19,0xa4,0x88
0008a0  c6a39488          DCB      0xc6,0xa3,0x94,0x88
0008a4  f632dff2          DCB      0xf6,0x32,0xdf,0xf2
0008a8  8393db09          DCB      0x83,0x93,0xdb,0x09
0008ac  d9f2aadf          DCB      0xd9,0xf2,0xaa,0xdf
0008b0  d8d8aef8          DCB      0xd8,0xd8,0xae,0xf8
0008b4  f9d1daf3          DCB      0xf9,0xd1,0xda,0xf3
0008b8  a4dea7f1          DCB      0xa4,0xde,0xa7,0xf1
0008bc  889b7ad8          DCB      0x88,0x9b,0x7a,0xd8
0008c0  f38494ae          DCB      0xf3,0x84,0x94,0xae
0008c4  19f9daaa          DCB      0x19,0xf9,0xda,0xaa
0008c8  f1dfd8a8          DCB      0xf1,0xdf,0xd8,0xa8
0008cc  81c0c3c5          DCB      0x81,0xc0,0xc3,0xc5
0008d0  c7a39283          DCB      0xc7,0xa3,0x92,0x83
0008d4  f628adde          DCB      0xf6,0x28,0xad,0xde
0008d8  d9f8d8a3          DCB      0xd9,0xf8,0xd8,0xa3
0008dc  50add9f8          DCB      0x50,0xad,0xd9,0xf8
0008e0  d8a378ad          DCB      0xd8,0xa3,0x78,0xad
0008e4  d9f8d8f8          DCB      0xd9,0xf8,0xd8,0xf8
0008e8  f9d1a1da          DCB      0xf9,0xd1,0xa1,0xda
0008ec  dec3c5c7          DCB      0xde,0xc3,0xc5,0xc7
0008f0  d8a18194          DCB      0xd8,0xa1,0x81,0x94
0008f4  f818f2b0          DCB      0xf8,0x18,0xf2,0xb0
0008f8  89acc3c5          DCB      0x89,0xac,0xc3,0xc5
0008fc  c7f1d8b8          DCB      0xc7,0xf1,0xd8,0xb8
000900  b4b09786          DCB      0xb4,0xb0,0x97,0x86
000904  a8319b06          DCB      0xa8,0x31,0x9b,0x06
000908  9907ab97          DCB      0x99,0x07,0xab,0x97
00090c  28889bf0          DCB      0x28,0x88,0x9b,0xf0
000910  0c201440          DCB      0x0c,0x20,0x14,0x40
000914  b0b4b8f0          DCB      0xb0,0xb4,0xb8,0xf0
000918  a88a9a28          DCB      0xa8,0x8a,0x9a,0x28
00091c  5078b79b          DCB      0x50,0x78,0xb7,0x9b
000920  a8295179          DCB      0xa8,0x29,0x51,0x79
000924  24705944          DCB      0x24,0x70,0x59,0x44
000928  69386448          DCB      0x69,0x38,0x64,0x48
00092c  31f1bbab          DCB      0x31,0xf1,0xbb,0xab
000930  88002c54          DCB      0x88,0x00,0x2c,0x54
000934  7cf0b38b          DCB      0x7c,0xf0,0xb3,0x8b
000938  b8a80428          DCB      0xb8,0xa8,0x04,0x28
00093c  5078f1b0          DCB      0x50,0x78,0xf1,0xb0
000940  88b49726          DCB      0x88,0xb4,0x97,0x26
000944  a85998bb          DCB      0xa8,0x59,0x98,0xbb
000948  abb38b02          DCB      0xab,0xb3,0x8b,0x02
00094c  264666b0          DCB      0x26,0x46,0x66,0xb0
000950  b8f08a9c          DCB      0xb8,0xf0,0x8a,0x9c
000954  a8295179          DCB      0xa8,0x29,0x51,0x79
000958  8b295179          DCB      0x8b,0x29,0x51,0x79
00095c  8a247059          DCB      0x8a,0x24,0x70,0x59
000960  8b205871          DCB      0x8b,0x20,0x58,0x71
000964  8a446938          DCB      0x8a,0x44,0x69,0x38
000968  8b394068          DCB      0x8b,0x39,0x40,0x68
00096c  8a644831          DCB      0x8a,0x64,0x48,0x31
000970  8b304960          DCB      0x8b,0x30,0x49,0x60
000974  88f1ac00          DCB      0x88,0xf1,0xac,0x00
000978  2c547cf0          DCB      0x2c,0x54,0x7c,0xf0
00097c  8ca80428          DCB      0x8c,0xa8,0x04,0x28
000980  5078f188          DCB      0x50,0x78,0xf1,0x88
000984  9726a859          DCB      0x97,0x26,0xa8,0x59
000988  98ac8c02          DCB      0x98,0xac,0x8c,0x02
00098c  264666f0          DCB      0x26,0x46,0x66,0xf0
000990  899ca829          DCB      0x89,0x9c,0xa8,0x29
000994  51792470          DCB      0x51,0x79,0x24,0x70
000998  59446938          DCB      0x59,0x44,0x69,0x38
00099c  644831a9          DCB      0x64,0x48,0x31,0xa9
0009a0  88092059          DCB      0x88,0x09,0x20,0x59
0009a4  70ab1138          DCB      0x70,0xab,0x11,0x38
0009a8  4069a819          DCB      0x40,0x69,0xa8,0x19
0009ac  3148608c          DCB      0x31,0x48,0x60,0x8c
0009b0  a83c415c          DCB      0xa8,0x3c,0x41,0x5c
0009b4  207c00f1          DCB      0x20,0x7c,0x00,0xf1
0009b8  87981986          DCB      0x87,0x98,0x19,0x86
0009bc  a86e767e          DCB      0xa8,0x6e,0x76,0x7e
0009c0  a999882d          DCB      0xa9,0x99,0x88,0x2d
0009c4  557dd8b1          DCB      0x55,0x7d,0xd8,0xb1
0009c8  b5b9a3df          DCB      0xb5,0xb9,0xa3,0xdf
0009cc  dfdfaed0          DCB      0xdf,0xdf,0xae,0xd0
0009d0  dfaad0de          DCB      0xdf,0xaa,0xd0,0xde
0009d4  f2abf8f9          DCB      0xf2,0xab,0xf8,0xf9
0009d8  d9b087c4          DCB      0xd9,0xb0,0x87,0xc4
0009dc  aaf1dfdf          DCB      0xaa,0xf1,0xdf,0xdf
0009e0  bbafdfdf          DCB      0xbb,0xaf,0xdf,0xdf
0009e4  b9d8b1f1          DCB      0xb9,0xd8,0xb1,0xf1
0009e8  a3978e60          DCB      0xa3,0x97,0x8e,0x60
0009ec  dfb084f2          DCB      0xdf,0xb0,0x84,0xf2
0009f0  c8f8f9d9          DCB      0xc8,0xf8,0xf9,0xd9
0009f4  ded89385          DCB      0xde,0xd8,0x93,0x85
0009f8  f14ab183          DCB      0xf1,0x4a,0xb1,0x83
0009fc  a308b583          DCB      0xa3,0x08,0xb5,0x83
000a00  9a0810b7          DCB      0x9a,0x08,0x10,0xb7
000a04  9f10d8f1          DCB      0x9f,0x10,0xd8,0xf1
000a08  b0baaeb0          DCB      0xb0,0xba,0xae,0xb0
000a0c  8ac2b2b6          DCB      0x8a,0xc2,0xb2,0xb6
000a10  8e9ef1fb          DCB      0x8e,0x9e,0xf1,0xfb
000a14  d9f41dd8          DCB      0xd9,0xf4,0x1d,0xd8
000a18  f9d90cf1          DCB      0xf9,0xd9,0x0c,0xf1
000a1c  d8f8f8ad          DCB      0xd8,0xf8,0xf8,0xad
000a20  61d9aefb          DCB      0x61,0xd9,0xae,0xfb
000a24  d8f40cf1          DCB      0xd8,0xf4,0x0c,0xf1
000a28  d8f8f8ad          DCB      0xd8,0xf8,0xf8,0xad
000a2c  19d9aefb          DCB      0x19,0xd9,0xae,0xfb
000a30  dfd8f416          DCB      0xdf,0xd8,0xf4,0x16
000a34  f1d8f8ad          DCB      0xf1,0xd8,0xf8,0xad
000a38  8d61d9f4          DCB      0x8d,0x61,0xd9,0xf4
000a3c  f4acf59c          DCB      0xf4,0xac,0xf5,0x9c
000a40  9c8ddf2b          DCB      0x9c,0x8d,0xdf,0x2b
000a44  bab6aefa          DCB      0xba,0xb6,0xae,0xfa
000a48  f8f40bd8          DCB      0xf8,0xf4,0x0b,0xd8
000a4c  f1aed0f8          DCB      0xf1,0xae,0xd0,0xf8
000a50  ad51daae          DCB      0xad,0x51,0xda,0xae
000a54  faf8f1d8          DCB      0xfa,0xf8,0xf1,0xd8
000a58  b9b1b6a3          DCB      0xb9,0xb1,0xb6,0xa3
000a5c  839c08b9          DCB      0x83,0x9c,0x08,0xb9
000a60  b1839ab5          DCB      0xb1,0x83,0x9a,0xb5
000a64  aac0fd30          DCB      0xaa,0xc0,0xfd,0x30
000a68  83b79f10          DCB      0x83,0xb7,0x9f,0x10
000a6c  b58b93f2          DCB      0xb5,0x8b,0x93,0xf2
000a70  0202d1ab          DCB      0x02,0x02,0xd1,0xab
000a74  daded8f1          DCB      0xda,0xde,0xd8,0xf1
000a78  b080baab          DCB      0xb0,0x80,0xba,0xab
000a7c  c0c3b284          DCB      0xc0,0xc3,0xb2,0x84
000a80  c1c3d8b1          DCB      0xc1,0xc3,0xd8,0xb1
000a84  b9f38ba3          DCB      0xb9,0xf3,0x8b,0xa3
000a88  91b609b4          DCB      0x91,0xb6,0x09,0xb4
000a8c  d9abdeb0          DCB      0xd9,0xab,0xde,0xb0
000a90  879cb9a3          DCB      0x87,0x9c,0xb9,0xa3
000a94  ddf1b38b          DCB      0xdd,0xf1,0xb3,0x8b
000a98  8b8b8b8b          DCB      0x8b,0x8b,0x8b,0x8b
000a9c  b087a3a3          DCB      0xb0,0x87,0xa3,0xa3
000aa0  a3a3b28b          DCB      0xa3,0xa3,0xb2,0x8b
000aa4  b69bf2a3          DCB      0xb6,0x9b,0xf2,0xa3
000aa8  a3a3a3a3          DCB      0xa3,0xa3,0xa3,0xa3
000aac  a3a3a3a3          DCB      0xa3,0xa3,0xa3,0xa3
000ab0  a3f1b087          DCB      0xa3,0xf1,0xb0,0x87
000ab4  b59aa3f3          DCB      0xb5,0x9a,0xa3,0xf3
000ab8  9ba3a3dc          DCB      0x9b,0xa3,0xa3,0xdc
000abc  baacdfb9          DCB      0xba,0xac,0xdf,0xb9
000ac0  a3a3a3a3          DCB      0xa3,0xa3,0xa3,0xa3
000ac4  a3a3a3a3          DCB      0xa3,0xa3,0xa3,0xa3
000ac8  a3a3a3a3          DCB      0xa3,0xa3,0xa3,0xa3
000acc  a3a3a3a3          DCB      0xa3,0xa3,0xa3,0xa3
000ad0  d8d8d8bb          DCB      0xd8,0xd8,0xd8,0xbb
000ad4  b3b7f1aa          DCB      0xb3,0xb7,0xf1,0xaa
000ad8  f9daffd9          DCB      0xf9,0xda,0xff,0xd9
000adc  809aaa28          DCB      0x80,0x9a,0xaa,0x28
000ae0  b48098a7          DCB      0xb4,0x80,0x98,0xa7
000ae4  20b79787          DCB      0x20,0xb7,0x97,0x87
000ae8  a86688f0          DCB      0xa8,0x66,0x88,0xf0
000aec  7951f190          DCB      0x79,0x51,0xf1,0x90
000af0  2c870ca7          DCB      0x2c,0x87,0x0c,0xa7
000af4  81976293          DCB      0x81,0x97,0x62,0x93
000af8  f0717160          DCB      0xf0,0x71,0x71,0x60
000afc  85940129          DCB      0x85,0x94,0x01,0x29
000b00  517990a5          DCB      0x51,0x79,0x90,0xa5
000b04  f1284c6c          DCB      0xf1,0x28,0x4c,0x6c
000b08  870c9518          DCB      0x87,0x0c,0x95,0x18
000b0c  8578a383          DCB      0x85,0x78,0xa3,0x83
000b10  90284c6c          DCB      0x90,0x28,0x4c,0x6c
000b14  886cd8f3          DCB      0x88,0x6c,0xd8,0xf3
000b18  a28200f2          DCB      0xa2,0x82,0x00,0xf2
000b1c  10a89219          DCB      0x10,0xa8,0x92,0x19
000b20  80a2f2d9          DCB      0x80,0xa2,0xf2,0xd9
000b24  26d8f188          DCB      0x26,0xd8,0xf1,0x88
000b28  a84dd948          DCB      0xa8,0x4d,0xd9,0x48
000b2c  d896a839          DCB      0xd8,0x96,0xa8,0x39
000b30  80d93cd8          DCB      0x80,0xd9,0x3c,0xd8
000b34  9580a839          DCB      0x95,0x80,0xa8,0x39
000b38  a68698d9          DCB      0xa6,0x86,0x98,0xd9
000b3c  2cda87a7          DCB      0x2c,0xda,0x87,0xa7
000b40  2cd8a889          DCB      0x2c,0xd8,0xa8,0x89
000b44  9519a980          DCB      0x95,0x19,0xa9,0x80
000b48  d938d8a8          DCB      0xd9,0x38,0xd8,0xa8
000b4c  8939a980          DCB      0x89,0x39,0xa9,0x80
000b50  da3cd8a8          DCB      0xda,0x3c,0xd8,0xa8
000b54  2ea83990          DCB      0x2e,0xa8,0x39,0x90
000b58  d90cd8a8          DCB      0xd9,0x0c,0xd8,0xa8
000b5c  953198d9          DCB      0x95,0x31,0x98,0xd9
000b60  0cd8a809          DCB      0x0c,0xd8,0xa8,0x09
000b64  d9ffd801          DCB      0xd9,0xff,0xd8,0x01
000b68  daffd895          DCB      0xda,0xff,0xd8,0x95
000b6c  39a9da26          DCB      0x39,0xa9,0xda,0x26
000b70  ffd890a8          DCB      0xff,0xd8,0x90,0xa8
000b74  0d8999a8          DCB      0x0d,0x89,0x99,0xa8
000b78  10809821          DCB      0x10,0x80,0x98,0x21
000b7c  da2ed889          DCB      0xda,0x2e,0xd8,0x89
000b80  99a83180          DCB      0x99,0xa8,0x31,0x80
000b84  da2ed8a8          DCB      0xda,0x2e,0xd8,0xa8
000b88  86963180          DCB      0x86,0x96,0x31,0x80
000b8c  da2ed8a8          DCB      0xda,0x2e,0xd8,0xa8
000b90  873180da          DCB      0x87,0x31,0x80,0xda
000b94  2ed8a882          DCB      0x2e,0xd8,0xa8,0x82
000b98  92f34180          DCB      0x92,0xf3,0x41,0x80
000b9c  f1d92ed8          DCB      0xf1,0xd9,0x2e,0xd8
000ba0  a882f319          DCB      0xa8,0x82,0xf3,0x19
000ba4  80f1d92e          DCB      0x80,0xf1,0xd9,0x2e
000ba8  d882acf3          DCB      0xd8,0x82,0xac,0xf3
000bac  c0a28022          DCB      0xc0,0xa2,0x80,0x22
000bb0  f1a62ea7          DCB      0xf1,0xa6,0x2e,0xa7
000bb4  2ea92298          DCB      0x2e,0xa9,0x22,0x98
000bb8  a829daac          DCB      0xa8,0x29,0xda,0xac
000bbc  deffd8a2          DCB      0xde,0xff,0xd8,0xa2
000bc0  f22af1a9          DCB      0xf2,0x2a,0xf1,0xa9
000bc4  2e8292a8          DCB      0x2e,0x82,0x92,0xa8
000bc8  f23180a6          DCB      0xf2,0x31,0x80,0xa6
000bcc  96f1d900          DCB      0x96,0xf1,0xd9,0x00
000bd0  ac8c9c0c          DCB      0xac,0x8c,0x9c,0x0c
000bd4  30acded0          DCB      0x30,0xac,0xde,0xd0
000bd8  deffd88c          DCB      0xde,0xff,0xd8,0x8c
000bdc  9cacd010          DCB      0x9c,0xac,0xd0,0x10
000be0  acde8092          DCB      0xac,0xde,0x80,0x92
000be4  a2f24c82          DCB      0xa2,0xf2,0x4c,0x82
000be8  a8f1caf2          DCB      0xa8,0xf1,0xca,0xf2
000bec  35f19688          DCB      0x35,0xf1,0x96,0x88
000bf0  a6d900d8          DCB      0xa6,0xd9,0x00,0xd8
000bf4  f1ff              DCB      0xf1,0xff
