Changeset 1993


Ignore:
Timestamp:
07/16/12 00:55:40 (10 months ago)
Author:
reyalp
Message:

ixus130_sd1400 fix case on inline assembler so stubs_auto generation works correctly

Location:
trunk/platform/ixus130_sd1400/sub
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/platform/ixus130_sd1400/sub/100a/boot.c

    r1992 r1993  
    1010void __attribute__((naked,noinline)) init_file_modules_task() {    // FF89467C 
    1111  asm volatile ( 
    12         "push   {r4, r5, r6, lr}\n" 
    13         "bl     sub_FF88CAC0\n"  
    14         "ldr    r5, =0x00005006\n" // was: "[pc, #408]  ; ff894874"  
    15         "movs   r4, r0\n" 
    16         "ldrne  r1, =0x0\n" // was: "mov ..., #0" 
    17         "movne  r0, r5\n" 
    18         "blne   sub_FF8904CC\n"  
    19         "bl     sub_FF88CAEC\n"  
    20         //"bl     sub_ff88cb3c_my\n" 
    21                 "bl     core_spytask_can_start\n" 
    22         "cmp    r4, #0\n"       // 0x0 
    23         "moveq  r0, r5\n" 
    24         "popeq  {r4, r5, r6, lr}\n" 
    25         "ldreq  r1, =0x0\n" // was: "mov ..., #0" 
    26         "beq    sub_FF8904CC\n"  
    27     ); 
    28   asm volatile ( 
    29         "pop    {r4, r5, r6, pc}\n" 
     12        "PUSH   {r4, r5, r6, lr}\n" 
     13        "BL     sub_FF88CAC0\n"  
     14        "LDR    r5, =0x00005006\n" // was: "[pc, #408]  ; ff894874"  
     15        "MOVS   r4, r0\n" 
     16        "LDRNE  r1, =0x0\n" // was: "mov ..., #0" 
     17        "MOVNE  r0, r5\n" 
     18        "BLNE   sub_FF8904CC\n"  
     19        "BL     sub_FF88CAEC\n"  
     20        //"BL     sub_ff88cb3c_my\n" 
     21                "BL     core_spytask_can_start\n" 
     22        "CMP    r4, #0\n"       // 0x0 
     23        "MOVEQ  r0, r5\n" 
     24        "POPEQ  {r4, r5, r6, lr}\n" 
     25        "LDREQ  r1, =0x0\n" // was: "mov ..., #0" 
     26        "BEQ    sub_FF8904CC\n"  
     27        "POP    {r4, r5, r6, pc}\n" 
    3028    ); 
    3129}; 
     
    4846void __attribute__((naked,noinline)) boot() { 
    4947  asm volatile ( 
    50         "ldr    r1, =0xc0410000\n" // was: "[pc, #336]  ; ff810164"  
    51         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    52         "str    r0, [r1]\n" 
    53         "ldr    r1, =0x78\n" // was: "mov ..., #120" 
    54         "mcr    15, 0, r1, cr1, cr0, 0\n" 
    55         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
    56         "mcr    15, 0, r1, cr7, cr10, 4\n" 
    57         "mcr    15, 0, r1, cr7, cr5, 0\n" 
    58         "mcr    15, 0, r1, cr7, cr6, 0\n" 
    59         "ldr    r0, =0x3d\n" // was: "mov ..., #61" 
    60         "mcr    15, 0, r0, cr6, cr0, 0\n" 
    61         "ldr    r0, =0xc000002f\n" // was: "mov ..., #-1073741777" 
    62         "mcr    15, 0, r0, cr6, cr1, 0\n" 
    63         "ldr    r0, =0x33\n" // was: "mov ..., #51" 
    64         "mcr    15, 0, r0, cr6, cr2, 0\n" 
    65         "ldr    r0, =0x40000033\n" // was: "mov ..., #1073741875" 
    66         "mcr    15, 0, r0, cr6, cr3, 0\n" 
    67         "ldr    r0, =0x80000017\n" // was: "mov ..., #-2147483625" 
    68         "mcr    15, 0, r0, cr6, cr4, 0\n" 
    69         "ldr    r0, =0xff80002d\n" // was: "[pc, #264]  ; ff810168"  
    70         "mcr    15, 0, r0, cr6, cr5, 0\n" 
    71         "ldr    r0, =0x34\n" // was: "mov ..., #52" 
    72         "mcr    15, 0, r0, cr2, cr0, 0\n" 
    73         "ldr    r0, =0x34\n" // was: "mov ..., #52" 
    74         "mcr    15, 0, r0, cr2, cr0, 1\n" 
    75         "ldr    r0, =0x34\n" // was: "mov ..., #52" 
    76         "mcr    15, 0, r0, cr3, cr0, 0\n" 
    77         "ldr    r0, =0x03333330\n" // was: "[pc, #236]  ; ff81016c"  
    78         "mcr    15, 0, r0, cr5, cr0, 2\n" 
    79         "ldr    r0, =0x03333330\n" // was: "[pc, #228]  ; ff81016c"  
    80         "mcr    15, 0, r0, cr5, cr0, 3\n" 
    81         "mrc    15, 0, r0, cr1, cr0, 0\n" 
    82         "orr    r0, r0, #4096\n"        // 0x1000 
    83         "orr    r0, r0, #4\n"   // 0x4 
    84         "orr    r0, r0, #1\n"   // 0x1 
    85         "mcr    15, 0, r0, cr1, cr0, 0\n" 
    86         "ldr    r1, =0x80000006\n" // was: "mov ..., #-2147483642" 
    87         "mcr    15, 0, r1, cr9, cr1, 0\n" 
    88         "ldr    r1, =0x6\n" // was: "mov ..., #6" 
    89         "mcr    15, 0, r1, cr9, cr1, 1\n" 
    90         "mrc    15, 0, r1, cr1, cr0, 0\n" 
    91         "orr    r1, r1, #327680\n"      // 0x50000 
    92         "mcr    15, 0, r1, cr1, cr0, 0\n" 
    93         "ldr    r2, =0xc0200000\n" // was: "[pc, #176]  ; ff810170"  
    94         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    95         "str    r1, [r2, #268]\n" 
    96         "ldr    r1, =0xff\n" // was: "mov ..., #255" 
    97         "str    r1, [r2, #12]\n" 
    98         "str    r1, [r2, #28]\n" 
    99         "str    r1, [r2, #44]\n" 
    100         "str    r1, [r2, #60]\n" 
    101         "str    r1, [r2, #76]\n" 
    102         "str    r1, [r2, #92]\n" 
    103         "str    r1, [r2, #108]\n" 
    104         "str    r1, [r2, #124]\n" 
    105         "str    r1, [r2, #140]\n" 
    106         "str    r1, [r2, #156]\n" 
    107         "str    r1, [r2, #172]\n" 
    108         "str    r1, [r2, #188]\n" 
    109         "str    r1, [r2, #204]\n" 
    110         "str    r1, [r2, #220]\n" 
    111         "str    r1, [r2, #236]\n" 
    112         "str    r1, [r2, #252]\n" 
    113         "ldr    r1, =0xc0400008\n" // was: "[pc, #100]  ; ff810174"  
    114         "ldr    r2, =0x00430005\n" // was: "[pc, #100]  ; ff810178"  
    115         "str    r2, [r1]\n" 
    116         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    117         "ldr    r2, =0xc0243100\n" // was: "[pc, #92]   ; ff81017c"  
    118         "str    r2, [r1]\n" 
    119         "ldr    r2, =0xc0242010\n" // was: "[pc, #88]   ; ff810180"  
    120         "ldr    r1, [r2]\n" 
    121         "orr    r1, r1, #1\n"   // 0x1 
    122         "str    r1, [r2]\n" 
    123         "ldr    r0, =0xFFBF837C\n" // canon_data_src  
    124         "ldr    r1, =0x1900\n"     // MEMBASEADDR  
    125         "ldr    r3, =0xebd0\n"     // canon_bss_start 
     48        "LDR    r1, =0xc0410000\n" // was: "[pc, #336]  ; ff810164"  
     49        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     50        "STR    r0, [r1]\n" 
     51        "LDR    r1, =0x78\n" // was: "mov ..., #120" 
     52        "MCR    15, 0, r1, cr1, cr0, 0\n" 
     53        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
     54        "MCR    15, 0, r1, cr7, cr10, 4\n" 
     55        "MCR    15, 0, r1, cr7, cr5, 0\n" 
     56        "MCR    15, 0, r1, cr7, cr6, 0\n" 
     57        "LDR    r0, =0x3d\n" // was: "mov ..., #61" 
     58        "MCR    15, 0, r0, cr6, cr0, 0\n" 
     59        "LDR    r0, =0xc000002f\n" // was: "mov ..., #-1073741777" 
     60        "MCR    15, 0, r0, cr6, cr1, 0\n" 
     61        "LDR    r0, =0x33\n" // was: "mov ..., #51" 
     62        "MCR    15, 0, r0, cr6, cr2, 0\n" 
     63        "LDR    r0, =0x40000033\n" // was: "mov ..., #1073741875" 
     64        "MCR    15, 0, r0, cr6, cr3, 0\n" 
     65        "LDR    r0, =0x80000017\n" // was: "mov ..., #-2147483625" 
     66        "MCR    15, 0, r0, cr6, cr4, 0\n" 
     67        "LDR    r0, =0xff80002d\n" // was: "[pc, #264]  ; ff810168"  
     68        "MCR    15, 0, r0, cr6, cr5, 0\n" 
     69        "LDR    r0, =0x34\n" // was: "mov ..., #52" 
     70        "MCR    15, 0, r0, cr2, cr0, 0\n" 
     71        "LDR    r0, =0x34\n" // was: "mov ..., #52" 
     72        "MCR    15, 0, r0, cr2, cr0, 1\n" 
     73        "LDR    r0, =0x34\n" // was: "mov ..., #52" 
     74        "MCR    15, 0, r0, cr3, cr0, 0\n" 
     75        "LDR    r0, =0x03333330\n" // was: "[pc, #236]  ; ff81016c"  
     76        "MCR    15, 0, r0, cr5, cr0, 2\n" 
     77        "LDR    r0, =0x03333330\n" // was: "[pc, #228]  ; ff81016c"  
     78        "MCR    15, 0, r0, cr5, cr0, 3\n" 
     79        "MRC    15, 0, r0, cr1, cr0, 0\n" 
     80        "ORR    r0, r0, #4096\n"        // 0x1000 
     81        "ORR    r0, r0, #4\n"   // 0x4 
     82        "ORR    r0, r0, #1\n"   // 0x1 
     83        "MCR    15, 0, r0, cr1, cr0, 0\n" 
     84        "LDR    r1, =0x80000006\n" // was: "mov ..., #-2147483642" 
     85        "MCR    15, 0, r1, cr9, cr1, 0\n" 
     86        "LDR    r1, =0x6\n" // was: "mov ..., #6" 
     87        "MCR    15, 0, r1, cr9, cr1, 1\n" 
     88        "MRC    15, 0, r1, cr1, cr0, 0\n" 
     89        "ORR    r1, r1, #327680\n"      // 0x50000 
     90        "MCR    15, 0, r1, cr1, cr0, 0\n" 
     91        "LDR    r2, =0xc0200000\n" // was: "[pc, #176]  ; ff810170"  
     92        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     93        "STR    r1, [r2, #268]\n" 
     94        "LDR    r1, =0xff\n" // was: "mov ..., #255" 
     95        "STR    r1, [r2, #12]\n" 
     96        "STR    r1, [r2, #28]\n" 
     97        "STR    r1, [r2, #44]\n" 
     98        "STR    r1, [r2, #60]\n" 
     99        "STR    r1, [r2, #76]\n" 
     100        "STR    r1, [r2, #92]\n" 
     101        "STR    r1, [r2, #108]\n" 
     102        "STR    r1, [r2, #124]\n" 
     103        "STR    r1, [r2, #140]\n" 
     104        "STR    r1, [r2, #156]\n" 
     105        "STR    r1, [r2, #172]\n" 
     106        "STR    r1, [r2, #188]\n" 
     107        "STR    r1, [r2, #204]\n" 
     108        "STR    r1, [r2, #220]\n" 
     109        "STR    r1, [r2, #236]\n" 
     110        "STR    r1, [r2, #252]\n" 
     111        "LDR    r1, =0xc0400008\n" // was: "[pc, #100]  ; ff810174"  
     112        "LDR    r2, =0x00430005\n" // was: "[pc, #100]  ; ff810178"  
     113        "STR    r2, [r1]\n" 
     114        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     115        "LDR    r2, =0xc0243100\n" // was: "[pc, #92]   ; ff81017c"  
     116        "STR    r2, [r1]\n" 
     117        "LDR    r2, =0xc0242010\n" // was: "[pc, #88]   ; ff810180"  
     118        "LDR    r1, [r2]\n" 
     119        "ORR    r1, r1, #1\n"   // 0x1 
     120        "STR    r1, [r2]\n" 
     121        "LDR    r0, =0xFFBF837C\n" // canon_data_src  
     122        "LDR    r1, =0x1900\n"     // MEMBASEADDR  
     123        "LDR    r3, =0xebd0\n"     // canon_bss_start 
    126124"loc_ff81013c:\n" 
    127         "cmp    r1, r3\n" 
    128         "ldrcc  r2, [r0], #4\n" 
    129         "strcc  r2, [r1], #4\n" 
    130         "bcc    loc_ff81013c\n" 
    131         "ldr    r1, =0x0014fe20\n" // MEMISOSTART 
    132         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
     125        "CMP    r1, r3\n" 
     126        "LDRCC  r2, [r0], #4\n" 
     127        "STRCC  r2, [r1], #4\n" 
     128        "BCC    loc_ff81013c\n" 
     129        "LDR    r1, =0x0014fe20\n" // MEMISOSTART 
     130        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
    133131"loc_ff810154:\n" 
    134         "cmp    r3, r1\n" 
    135         "strcc  r2, [r3], #4\n" 
    136         "bcc    loc_ff810154\n" 
    137         "b      sub_ff810354_my\n" 
     132        "CMP    r3, r1\n" 
     133        "STRCC  r2, [r3], #4\n" 
     134        "BCC    loc_ff810154\n" 
     135        "B      sub_ff810354_my\n" 
    138136    ); 
    139137} 
     
    175173         
    176174  asm volatile ( 
    177         "ldr    r0, =0xff8103cc\n" // was: "[pc, #1036] ; ff810768"  
    178         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
    179         "ldr    r3, =0xff810404\n" // was: "[pc, #1032] ; ff81076c"  
     175        "LDR    r0, =0xff8103cc\n" // was: "[pc, #1036] ; ff810768"  
     176        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
     177        "LDR    r3, =0xff810404\n" // was: "[pc, #1032] ; ff81076c"  
    180178"loc_ff810360:\n" 
    181         "cmp    r0, r3\n" 
    182         "ldrcc  r2, [r0], #4\n" 
    183         "strcc  r2, [r1], #4\n" 
    184         "bcc    loc_ff810360\n" 
    185         "ldr    r0, =0xff810404\n" // was: "[pc, #1016] ; ff810770"  
    186         "ldr    r1, =0x4b0\n" // was: "mov ..., #1200" 
    187         "ldr    r3, =0xff810618\n" // was: "[pc, #1012] ; ff810774"  
     179        "CMP    r0, r3\n" 
     180        "LDRCC  r2, [r0], #4\n" 
     181        "STRCC  r2, [r1], #4\n" 
     182        "BCC    loc_ff810360\n" 
     183        "LDR    r0, =0xff810404\n" // was: "[pc, #1016] ; ff810770"  
     184        "LDR    r1, =0x4b0\n" // was: "mov ..., #1200" 
     185        "LDR    r3, =0xff810618\n" // was: "[pc, #1012] ; ff810774"  
    188186"loc_ff81037c:\n" 
    189         "cmp    r0, r3\n" 
    190         "ldrcc  r2, [r0], #4\n" 
    191         "strcc  r2, [r1], #4\n" 
    192         "bcc    loc_ff81037c\n" 
    193         "ldr    r0, =0xd2\n" // was: "mov ..., #210" 
    194         "msr    CPSR_fsxc, r0\n" 
    195         "ldr    sp, =0x1000\n" // was: "mov ..., #4096" 
    196         "ldr    r0, =0xd3\n" // was: "mov ..., #211" 
    197         "msr    CPSR_fsxc, r0\n" 
    198         "ldr    sp, =0x1000\n" // was: "mov ..., #4096" 
    199         "ldr    r0, =0x000006c4\n" // was: "[pc, #20]   ; ff8103c0"  
    200         "ldr    r2, =0xeeeeeeee\n" // was: "[pc, #968]  ; ff810778"  
    201         "ldr    r3, =0x1000\n" // was: "mov ..., #4096" 
     187        "CMP    r0, r3\n" 
     188        "LDRCC  r2, [r0], #4\n" 
     189        "STRCC  r2, [r1], #4\n" 
     190        "BCC    loc_ff81037c\n" 
     191        "LDR    r0, =0xd2\n" // was: "mov ..., #210" 
     192        "MSR    CPSR_fsxc, r0\n" 
     193        "LDR    sp, =0x1000\n" // was: "mov ..., #4096" 
     194        "LDR    r0, =0xd3\n" // was: "mov ..., #211" 
     195        "MSR    CPSR_fsxc, r0\n" 
     196        "LDR    sp, =0x1000\n" // was: "mov ..., #4096" 
     197        "LDR    r0, =0x000006c4\n" // was: "[pc, #20]   ; ff8103c0"  
     198        "LDR    r2, =0xeeeeeeee\n" // was: "[pc, #968]  ; ff810778"  
     199        "LDR    r3, =0x1000\n" // was: "mov ..., #4096" 
    202200"loc_ff8103b0:\n" 
    203         "cmp    r0, r3\n" 
    204         "strcc  r2, [r0], #4\n" 
    205         "bcc    loc_ff8103b0\n" 
    206         "bl     sub_ff811198_my\n" 
     201        "CMP    r0, r3\n" 
     202        "STRCC  r2, [r0], #4\n" 
     203        "BCC    loc_ff8103b0\n" 
     204        "BL     sub_ff811198_my\n" 
    207205        ); 
    208206} 
     
    210208void __attribute__((naked,noinline)) sub_ff811198_my() { 
    211209  asm volatile ( 
    212         "push   {lr}\n"         // (str lr, [sp, #-4]!) 
    213         "sub    sp, sp, #116\n" // 0x74 
    214         "mov    r0, sp\n" 
    215         "ldr    r1, =0x74\n" // was: "mov ..., #116" 
    216         "bl     sub_FFB39910\n"  
    217         "ldr    r0, =0x53000\n" // was: "mov ..., #339968" 
    218         "str    r0, [sp, #4]\n" 
    219  
    220         "ldr    r0, =new_sa\n" // Replaces original start location 0x14fe20 
    221         "ldr    r0, [r0]\n" 
    222  
    223         "ldr    r2, =0x00339c00\n" // was: "[pc, #136]  ; ff811248"  
    224         "ldr    r1, =0x003324a8\n" // was: "[pc, #140]  ; ff811250"  
    225         "str    r0, [sp, #8]\n" 
    226         "sub    r0, r1, r0\n" 
    227         "add    r3, sp, #12\n"  // 0xc 
    228         "str    r2, [sp]\n" 
    229         "stm    r3, {r0, r1, r2}\n" 
    230         "ldr    r0, =0x22\n" // was: "mov ..., #34" 
    231         "str    r0, [sp, #24]\n" 
    232         "ldr    r0, =0x68\n" // was: "mov ..., #104" 
    233         "str    r0, [sp, #28]\n" 
    234         "ldr    r0, =0x0000019b\n" // was: "[pc, #104]  ; ff811254"  
    235         "ldr    r1, =uHwSetup_my\n" // was: "[pc, #104] ; ff811258" 
    236         "str    r0, [sp, #32]\n" 
    237         "ldr    r0, =0x96\n" // was: "mov ..., #150" 
    238         "str    r0, [sp, #36]\n" 
    239         "ldr    r0, =0x78\n" // was: "mov ..., #120" 
    240         "str    r0, [sp, #40]\n" 
    241         "ldr    r0, =0x64\n" // was: "mov ..., #100" 
    242         "str    r0, [sp, #44]\n" 
    243         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    244         "str    r0, [sp, #48]\n" 
    245         "str    r0, [sp, #52]\n" 
    246         "ldr    r0, =0x10\n" // was: "mov ..., #16" 
    247         "str    r0, [sp, #92]\n" 
    248         "ldr    r0, =0x800\n" // was: "mov ..., #2048" 
    249         "str    r0, [sp, #96]\n" 
    250         "ldr    r0, =0xa0\n" // was: "mov ..., #160" 
    251         "str    r0, [sp, #100]\n" 
    252         "ldr    r0, =0x280\n" // was: "mov ..., #640" 
    253         "str    r0, [sp, #104]\n" 
    254         "mov    r0, sp\n" 
    255         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
    256         "bl     sub_ff813404\n" 
    257         "add    sp, sp, #116\n" // 0x74 
    258         "pop    {pc}\n"         // (ldr pc, [sp], #4) 
     210        "PUSH   {lr}\n"         // (str lr, [sp, #-4]!) 
     211        "SUB    sp, sp, #116\n" // 0x74 
     212        "MOV    r0, sp\n" 
     213        "LDR    r1, =0x74\n" // was: "mov ..., #116" 
     214        "BL     sub_FFB39910\n"  
     215        "LDR    r0, =0x53000\n" // was: "mov ..., #339968" 
     216        "STR    r0, [sp, #4]\n" 
     217 
     218        "LDR    r0, =new_sa\n" // Replaces original start location 0x14fe20 
     219        "LDR    r0, [r0]\n" 
     220 
     221        "LDR    r2, =0x00339c00\n" // was: "[pc, #136]  ; ff811248"  
     222        "LDR    r1, =0x003324a8\n" // was: "[pc, #140]  ; ff811250"  
     223        "STR    r0, [sp, #8]\n" 
     224        "SUB    r0, r1, r0\n" 
     225        "ADD    r3, sp, #12\n"  // 0xc 
     226        "STR    r2, [sp]\n" 
     227        "STM    r3, {r0, r1, r2}\n" 
     228        "LDR    r0, =0x22\n" // was: "mov ..., #34" 
     229        "STR    r0, [sp, #24]\n" 
     230        "LDR    r0, =0x68\n" // was: "mov ..., #104" 
     231        "STR    r0, [sp, #28]\n" 
     232        "LDR    r0, =0x0000019b\n" // was: "[pc, #104]  ; ff811254"  
     233        "LDR    r1, =uHwSetup_my\n" // was: "[pc, #104] ; ff811258" 
     234        "STR    r0, [sp, #32]\n" 
     235        "LDR    r0, =0x96\n" // was: "mov ..., #150" 
     236        "STR    r0, [sp, #36]\n" 
     237        "LDR    r0, =0x78\n" // was: "mov ..., #120" 
     238        "STR    r0, [sp, #40]\n" 
     239        "LDR    r0, =0x64\n" // was: "mov ..., #100" 
     240        "STR    r0, [sp, #44]\n" 
     241        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     242        "STR    r0, [sp, #48]\n" 
     243        "STR    r0, [sp, #52]\n" 
     244        "LDR    r0, =0x10\n" // was: "mov ..., #16" 
     245        "STR    r0, [sp, #92]\n" 
     246        "LDR    r0, =0x800\n" // was: "mov ..., #2048" 
     247        "STR    r0, [sp, #96]\n" 
     248        "LDR    r0, =0xa0\n" // was: "mov ..., #160" 
     249        "STR    r0, [sp, #100]\n" 
     250        "LDR    r0, =0x280\n" // was: "mov ..., #640" 
     251        "STR    r0, [sp, #104]\n" 
     252        "MOV    r0, sp\n" 
     253        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
     254        "BL     sub_ff813404\n" 
     255        "ADD    sp, sp, #116\n" // 0x74 
     256        "POP    {pc}\n"         // (ldr pc, [sp], #4) 
    259257    ); 
    260258} 
     
    262260void __attribute__((naked,noinline)) uHwSetup_my() { // 0xff815e58 
    263261  asm volatile ( 
    264         "push   {r4, lr}\n" 
    265         "bl     sub_ff810b20\n" 
    266         "bl     sub_ff81a244\n" 
    267         "cmp    r0, #0\n"       // 0x0 
    268         "ldrlt  r0, =0xff815f6c\n" // was: "addlt       r0, pc, #252"   *"dmSetup" 
    269         "bllt   sub_ff815f4c\n" 
    270         "bl     sub_ff815a94\n" 
    271         "cmp    r0, #0\n"       // 0x0 
    272         "ldrlt  r0, =0xff815f74\n" // was: "addlt       r0, pc, #244"   *"termDriverInit" 
    273         "bllt   sub_ff815f4c\n" 
    274         "ldr    r0, =0xff815f84\n" // was: "add r0, pc, #252"   *"/_term" 
    275         "bl     sub_ff815b7c\n" 
    276         "cmp    r0, #0\n"       // 0x0 
    277         "ldrlt  r0, =0xff815f8c\n" // was: "addlt       r0, pc, #248"   *"termDeviceCreate" 
    278         "bllt   sub_ff815f4c\n" 
    279         "ldr    r0, =0xff815f84\n" // was: "add r0, pc, #232"   *"/_term" 
    280         "bl     sub_ff813bf0\n" 
    281         "cmp    r0, #0\n"       // 0x0 
    282         "ldrlt  r0, =0xff815fa0\n" // was: "addlt       r0, pc, #248"   *"stdioSetup" 
    283         "bllt   sub_ff815f4c\n" 
    284         "bl     sub_ff819c3c\n" 
    285         "cmp    r0, #0\n"       // 0x0 
    286         "ldrlt  r0, =0xff815fac\n" // was: "addlt       r0, pc, #244"   *"stdlibSetup" 
    287         "bllt   sub_ff815f4c\n" 
    288         "bl     sub_ff81167c\n" 
    289         "cmp    r0, #0\n"       // 0x0 
    290         "ldrlt  r0, =0xff815fb8\n" // was: "addlt       r0, pc, #240"   *"armlib_setup" 
    291         "bllt   sub_ff815f4c\n" 
    292         "pop    {r4, lr}\n" 
    293         "b      taskcreate_Startup_my\n" // ff81faf0 
     262        "PUSH   {r4, lr}\n" 
     263        "BL     sub_ff810b20\n" 
     264        "BL     sub_ff81a244\n" 
     265        "CMP    r0, #0\n"       // 0x0 
     266        "LDRLT  r0, =0xff815f6c\n" // was: "addlt       r0, pc, #252"   *"dmSetup" 
     267        "BLLT   sub_ff815f4c\n" 
     268        "BL     sub_ff815a94\n" 
     269        "CMP    r0, #0\n"       // 0x0 
     270        "LDRLT  r0, =0xff815f74\n" // was: "addlt       r0, pc, #244"   *"termDriverInit" 
     271        "BLLT   sub_ff815f4c\n" 
     272        "LDR    r0, =0xff815f84\n" // was: "add r0, pc, #252"   *"/_term" 
     273        "BL     sub_ff815b7c\n" 
     274        "CMP    r0, #0\n"       // 0x0 
     275        "LDRLT  r0, =0xff815f8c\n" // was: "addlt       r0, pc, #248"   *"termDeviceCreate" 
     276        "BLLT   sub_ff815f4c\n" 
     277        "LDR    r0, =0xff815f84\n" // was: "add r0, pc, #232"   *"/_term" 
     278        "BL     sub_ff813bf0\n" 
     279        "CMP    r0, #0\n"       // 0x0 
     280        "LDRLT  r0, =0xff815fa0\n" // was: "addlt       r0, pc, #248"   *"stdioSetup" 
     281        "BLLT   sub_ff815f4c\n" 
     282        "BL     sub_ff819c3c\n" 
     283        "CMP    r0, #0\n"       // 0x0 
     284        "LDRLT  r0, =0xff815fac\n" // was: "addlt       r0, pc, #244"   *"stdlibSetup" 
     285        "BLLT   sub_ff815f4c\n" 
     286        "BL     sub_ff81167c\n" 
     287        "CMP    r0, #0\n"       // 0x0 
     288        "LDRLT  r0, =0xff815fb8\n" // was: "addlt       r0, pc, #240"   *"armlib_setup" 
     289        "BLLT   sub_ff815f4c\n" 
     290        "POP    {r4, lr}\n" 
     291        "B      taskcreate_Startup_my\n" // ff81faf0 
    294292    );   
    295293} 
     
    297295void __attribute__((naked,noinline)) taskcreate_Startup_my() { // 0xff81faf0 
    298296  asm volatile ( 
    299         "push   {r3, lr}\n" 
    300         "bl     sub_ff834340\n" 
    301         "bl     sub_ff83ba88\n" 
    302         "cmp    r0, #0\n"       // 0x0 
    303         "bne    loc_ff81fb34\n" 
    304         "bl     sub_ff835b2c\n" 
    305         "cmp    r0, #0\n"       // 0x0 
    306         "beq    loc_ff81fb34\n" 
    307         "bl     sub_ff83433c\n" 
    308         "cmp    r0, #0\n"       // 0x0 
    309         "bne    loc_ff81fb34\n" 
    310         "bl     sub_ff8339dc\n" 
    311         "ldr    r1, =0xc0220000\n" // was: "[pc, #76]   ; ff81fb74"  
    312         "ldr    r0, =0x44\n" // was: "mov ..., #68" 
    313         "str    r0, [r1, #28]\n" 
    314         "bl     sub_ff833bc8\n" 
     297        "PUSH   {r3, lr}\n" 
     298        "BL     sub_ff834340\n" 
     299        "BL     sub_ff83ba88\n" 
     300        "CMP    r0, #0\n"       // 0x0 
     301        "BNE    loc_ff81fb34\n" 
     302        "BL     sub_ff835b2c\n" 
     303        "CMP    r0, #0\n"       // 0x0 
     304        "BEQ    loc_ff81fb34\n" 
     305        "BL     sub_ff83433c\n" 
     306        "CMP    r0, #0\n"       // 0x0 
     307        "BNE    loc_ff81fb34\n" 
     308        "BL     sub_ff8339dc\n" 
     309        "LDR    r1, =0xc0220000\n" // was: "[pc, #76]   ; ff81fb74"  
     310        "LDR    r0, =0x44\n" // was: "mov ..., #68" 
     311        "STR    r0, [r1, #28]\n" 
     312        "BL     sub_ff833bc8\n" 
    315313"loc_ff81fb30:\n" 
    316         "b      loc_ff81fb30\n" 
     314        "B      loc_ff81fb30\n" 
    317315"loc_ff81fb34:\n" // 3 refs 
    318         //"bl   sub_ff834348\n" // disabled for correct Power Button detection 
    319         //"bl   sub_ff834344\n" // nullsub 
    320         "bl     sub_ff839cb0\n" 
    321         "ldr    r1, =0x0038e000\n" // was: "[pc, #48]   ; ff81fb78"  
    322         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    323         "bl     sub_ff83a0f8\n" 
    324         "bl     sub_ff839ea4\n" 
    325         "ldr    r3, =0x0\n" // was: "mov ..., #0" 
    326         "str    r3, [sp]\n" 
    327         "ldr    r3, =task_Startup_my\n" // was: "sub    r3, pc, #212\n" // ff81fa8c: (e92d4010)  
    328         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
    329         "ldr    r1, =0x19\n" // was: "mov ..., #25" 
    330         "add    r0, pc, #16\n"  // ff81fb7c: (72617453)  *"Startup" 
    331         "bl     sub_ff81e83c\n" 
    332         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    333         "pop    {ip, pc}\n" 
     316        //"BL   sub_ff834348\n" // disabled for correct Power Button detection 
     317        //"BL   sub_ff834344\n" // nullsub 
     318        "BL     sub_ff839cb0\n" 
     319        "LDR    r1, =0x0038e000\n" // was: "[pc, #48]   ; ff81fb78"  
     320        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     321        "BL     sub_ff83a0f8\n" 
     322        "BL     sub_ff839ea4\n" 
     323        "LDR    r3, =0x0\n" // was: "mov ..., #0" 
     324        "STR    r3, [sp]\n" 
     325        "LDR    r3, =task_Startup_my\n" // was: "sub    r3, pc, #212\n" // ff81fa8c: (e92d4010)  
     326        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
     327        "LDR    r1, =0x19\n" // was: "mov ..., #25" 
     328        "ADD    r0, pc, #16\n"  // ff81fb7c: (72617453)  *"Startup" 
     329        "BL     sub_ff81e83c\n" 
     330        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     331        "POP    {ip, pc}\n" 
    334332    ); 
    335333} 
     
    337335void __attribute__((naked,noinline)) task_Startup_my() { // ff81fa8c 
    338336  asm volatile ( 
    339         "push   {r4, lr}\n" 
    340         "bl     sub_ff81650c\n" // taskcreate_ClockSave 
    341         "bl     sub_ff83543c\n" 
    342         "bl     sub_ff833638\n" 
    343         "bl     sub_ff83bac8\n" // j_nullsub 
    344         "bl     sub_ff83bcb4\n" 
     337        "PUSH   {r4, lr}\n" 
     338        "BL     sub_ff81650c\n" // taskcreate_ClockSave 
     339        "BL     sub_ff83543c\n" 
     340        "BL     sub_ff833638\n" 
     341        "BL     sub_ff83bac8\n" // j_nullsub 
     342        "BL     sub_ff83bcb4\n" 
    345343        //"bl   sub_ff83bb5c\n" // original: StartSdInit() -> StartDiskboot() 
    346344    ); 
     
    351349 
    352350  asm volatile ( 
    353         "bl     sub_ff83be58\n" 
    354         "bl     sub_ff8322e4\n" 
    355         "bl     sub_ff83bce4\n" 
    356         "bl     sub_ff839454\n" 
    357         "bl     sub_ff83be5c\n" 
    358         "bl     taskcreate_PhySw_my\n" // sub_ff834230 
    359         //"bl   sub_ff834230\n" 
    360         "bl     task_ShootSeqTask_my\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff 
    361         //"bl   sub_ff8377a8\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff 
    362         "bl     sub_ff83be74\n" 
    363         //"bl   sub_ff8316a8\n" // nullsub 
    364         "bl     sub_ff833090\n" // Battery.c:0 
    365         "bl     sub_ff83b860\n" // taskcreate_Bye 
    366         "bl     sub_ff8335ec\n" 
    367         "bl     sub_ff83302c\n" // taskcreate_BatteryTask / taskcreate_TempCheck 
    368         "bl     sub_ff832318\n" 
    369         "bl     sub_ff83c8f4\n" // taskcreate_FactoryModeController 
    370         "bl     sub_ff833004\n" // taskcreate_Ui 
    371         "pop    {r4, lr}\n" 
    372         "b      sub_ff81662c\n" // MLHClock.c:992 
     351        "BL     sub_ff83be58\n" 
     352        "BL     sub_ff8322e4\n" 
     353        "BL     sub_ff83bce4\n" 
     354        "BL     sub_ff839454\n" 
     355        "BL     sub_ff83be5c\n" 
     356        "BL     taskcreate_PhySw_my\n" // sub_ff834230 
     357        //"BL   sub_ff834230\n" 
     358        "BL     task_ShootSeqTask_my\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff 
     359        //"BL   sub_ff8377a8\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff 
     360        "BL     sub_ff83be74\n" 
     361        //"BL   sub_ff8316a8\n" // nullsub 
     362        "BL     sub_ff833090\n" // Battery.c:0 
     363        "BL     sub_ff83b860\n" // taskcreate_Bye 
     364        "BL     sub_ff8335ec\n" 
     365        "BL     sub_ff83302c\n" // taskcreate_BatteryTask / taskcreate_TempCheck 
     366        "BL     sub_ff832318\n" 
     367        "BL     sub_ff83c8f4\n" // taskcreate_FactoryModeController 
     368        "BL     sub_ff833004\n" // taskcreate_Ui 
     369        "POP    {r4, lr}\n" 
     370        "B      sub_ff81662c\n" // MLHClock.c:992 
    373371    ); 
    374372} 
     
    376374void __attribute__((naked,noinline)) taskcreate_PhySw_my() { // 0xff834230 
    377375  asm volatile ( 
    378         "push   {r3, r4, r5, lr}\n" 
    379         "ldr    r4, =0x00001c20\n" // was: "[pc, #476]  ; ff834418"  
    380         "ldr    r0, [r4, #16]\n" 
    381         "cmp    r0, #0\n"       // 0x0 
    382         "bne    loc_ff834264\n" 
    383         "ldr    r3, =0x0\n" // was: "mov ..., #0" 
    384         "str    r3, [sp]\n" 
    385         //"ldr  r3, =0xff8341fc\n" //    
    386         "ldr    r3, =mykbd_task\n" // 0xff8341fc   
     376        "PUSH   {r3, r4, r5, lr}\n" 
     377        "LDR    r4, =0x00001c20\n" // was: "[pc, #476]  ; ff834418"  
     378        "LDR    r0, [r4, #16]\n" 
     379        "CMP    r0, #0\n"       // 0x0 
     380        "BNE    loc_ff834264\n" 
     381        "LDR    r3, =0x0\n" // was: "mov ..., #0" 
     382        "STR    r3, [sp]\n" 
     383        //"LDR  r3, =0xff8341fc\n" //    
     384        "LDR    r3, =mykbd_task\n" // 0xff8341fc   
    387385        // Increate stack size from 0x800 to 0x2000 for new task_PhySw so we don't have to do stack switch 
    388         "ldr    r2, =0x2000\n" 
    389         //"ldr  r2, =0x800\n" // was: "mov ..., #2048" 
    390         "ldr    r1, =0x17\n" // was: "mov ..., #23" 
    391         "ldr    r0, =0xff834438\n" // was: "add r0, pc, #472"   *"PhySw" 
    392         "bl     sub_ff839ef8\n" // KernelCreateTask 
    393         "str    r0, [r4, #16]\n" 
     386        "LDR    r2, =0x2000\n" 
     387        //"LDR  r2, =0x800\n" // was: "mov ..., #2048" 
     388        "LDR    r1, =0x17\n" // was: "mov ..., #23" 
     389        "LDR    r0, =0xff834438\n" // was: "add r0, pc, #472"   *"PhySw" 
     390        "BL     sub_ff839ef8\n" // KernelCreateTask 
     391        "STR    r0, [r4, #16]\n" 
    394392"loc_ff834264:\n" 
    395         "bl     sub_FF88A5F4\n"  
    396         "bl     sub_ff835aa4\n" // IsFactoryMode 
    397         "cmp    r0, #0\n"       // 0x0 
    398         "ldreq  r1, =0x0003280c\n" // was: "[pc, #428]  ; ff834424"  
    399         "popeq  {r3, r4, r5, lr}\n" 
    400         "beq    sub_FF88A57C\n" // eventproc_export_OpLog_Start 
    401         "pop    {r3, r4, r5, pc}\n" 
     393        "BL     sub_FF88A5F4\n"  
     394        "BL     sub_ff835aa4\n" // IsFactoryMode 
     395        "CMP    r0, #0\n"       // 0x0 
     396        "LDREQ  r1, =0x0003280c\n" // was: "[pc, #428]  ; ff834424"  
     397        "POPEQ  {r3, r4, r5, lr}\n" 
     398        "BEQ    sub_FF88A57C\n" // eventproc_export_OpLog_Start 
     399        "POP    {r3, r4, r5, pc}\n" 
    402400    ); 
    403401} 
     
    405403void __attribute__((naked,noinline)) task_ShootSeqTask_my() { //FF8377A8 
    406404asm volatile ( 
    407         "push   {r4, lr}\n" 
    408         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
    409         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    410         "bl     sub_ff839f50\n" 
    411         "ldr    r4, =0x00001c7c\n" // was: "[pc, #-492] ; ff8375d4"  
    412         "str    r0, [r4, #16]\n" 
    413         "bl     sub_FF87F19C\n"  
    414         "bl     sub_FF8808E4\n" // taskcreate_SsTask  
    415         "bl     sub_FF87E2E4\n"  
    416         "bl     sub_ff878d6c_my\n"  
    417         "bl     sub_FF87F480\n"  
    418         "ldr    r0, [r4, #16]\n" 
    419         "pop    {r4, lr}\n" 
    420         "ldr    r1, =0x1000\n" // was: "mov ..., #4096" 
    421         "b      sub_FF883F4C\n"  
     405        "PUSH   {r4, lr}\n" 
     406        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
     407        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     408        "BL     sub_ff839f50\n" 
     409        "LDR    r4, =0x00001c7c\n" // was: "[pc, #-492] ; ff8375d4"  
     410        "STR    r0, [r4, #16]\n" 
     411        "BL     sub_FF87F19C\n"  
     412        "BL     sub_FF8808E4\n" // taskcreate_SsTask  
     413        "BL     sub_FF87E2E4\n"  
     414        "BL     sub_ff878d6c_my\n"  
     415        "BL     sub_FF87F480\n"  
     416        "LDR    r0, [r4, #16]\n" 
     417        "POP    {r4, lr}\n" 
     418        "LDR    r1, =0x1000\n" // was: "mov ..., #4096" 
     419        "B      sub_FF883F4C\n"  
    422420  ); 
    423421} 
     
    425423void __attribute__((naked,noinline)) sub_ff878d6c_my() { // was FF878D1C_my FF878D1C  
    426424  asm volatile ( 
    427         "push   {r4, lr}\n" 
    428         "ldr    r4, =0x00002b64\n" // was: "[pc, #-3512]        ; ff877fc0"  
    429         "ldr    r0, [r4, #12]\n" 
    430         "cmp    r0, #0\n"       // 0x0 
    431         "bne    loc_FF878D88\n" 
    432         "bl     sub_FF87C848\n" // nullsub  
    433         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    434         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    435         "bl     sub_ff839f74\n" // KernelMisc.c:55 
    436         "str    r0, [r4, #4]\n" 
    437         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    438         "ldr    r1, =0x8\n" // was: "mov ..., #8" 
    439         "bl     sub_ff839f50\n" // KernelMisc.c:43 
    440         "str    r0, [r4, #8]\n" 
    441         "bl     sub_FF8790FC\n"  
    442         "bl     sub_FF879884\n"  
    443         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    444         "str    r0, [r4]\n" 
    445         "add    r0, r4, #16\n"  // 0x10 
    446         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
    447         "str    r1, [r0], #4\n" 
    448         "str    r1, [r0]\n" 
    449         "bl     sub_FF879A94\n"  
    450         "bl     sub_FF87F680\n"  
    451         "bl     sub_FF87CC74\n"  
    452         "bl     sub_ff87a5d8_my\n" // taskcreate_CaptSeqTask 
    453         "bl     sub_ff87b688\n"  
     425        "PUSH   {r4, lr}\n" 
     426        "LDR    r4, =0x00002b64\n" // was: "[pc, #-3512]        ; ff877fc0"  
     427        "LDR    r0, [r4, #12]\n" 
     428        "CMP    r0, #0\n"       // 0x0 
     429        "BNE    loc_FF878D88\n" 
     430        "BL     sub_FF87C848\n" // nullsub  
     431        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     432        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     433        "BL     sub_ff839f74\n" // KernelMisc.c:55 
     434        "STR    r0, [r4, #4]\n" 
     435        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     436        "LDR    r1, =0x8\n" // was: "mov ..., #8" 
     437        "BL     sub_ff839f50\n" // KernelMisc.c:43 
     438        "STR    r0, [r4, #8]\n" 
     439        "BL     sub_FF8790FC\n"  
     440        "BL     sub_FF879884\n"  
     441        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     442        "STR    r0, [r4]\n" 
     443        "ADD    r0, r4, #16\n"  // 0x10 
     444        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
     445        "STR    r1, [r0], #4\n" 
     446        "STR    r1, [r0]\n" 
     447        "BL     sub_FF879A94\n"  
     448        "BL     sub_FF87F680\n"  
     449        "BL     sub_FF87CC74\n"  
     450        "BL     sub_ff87a5d8_my\n" // taskcreate_CaptSeqTask 
     451        "BL     sub_ff87b688\n"  
    454452"loc_FF878D88:\n" 
    455         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    456         "str    r0, [r4, #12]\n" 
    457         "pop    {r4, pc}\n" 
     453        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     454        "STR    r0, [r4, #12]\n" 
     455        "POP    {r4, pc}\n" 
    458456    ); 
    459457} 
     
    461459void __attribute__((naked,noinline)) sub_ff87a5d8_my() { // was sub_ff87a5d8_my 
    462460  asm volatile (  //FF87A5D8 
    463         "push   {r3, r4, r5, lr}\n" 
    464         "ldr    r2, =0x00039578\n" // was: "[pc, #-1920]        ; ff879eb4"  
    465         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    466         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
     461        "PUSH   {r3, r4, r5, lr}\n" 
     462        "LDR    r2, =0x00039578\n" // was: "[pc, #-1920]        ; ff879eb4"  
     463        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     464        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
    467465"loc_FF87A5E8:\n"  //WAS loc_ff87a638 
    468         "add    r3, r2, r0, lsl #4\n" 
    469         "add    r0, r0, #1\n"   // 0x1 
    470         "cmp    r0, #5\n"       // 0x5 
    471         "str    r1, [r3, #8]\n" 
    472         "bcc    loc_FF87A5E8\n"  
    473         "bl     sub_FF87B1C4\n"  
    474         "bl     sub_FF95F3A0\n" // nullsub  
    475         "bl     sub_FF95FF60\n"  
    476         "ldr    r1, =0x5\n" // was: "mov ..., #5" 
    477         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    478         "bl     sub_ff839f2c\n" // KernelMisc.c:31 
    479         "ldr    r4, =0x00002b9c\n" // was: "[pc, #-2000]        ; ff879e9c"  
    480         "ldr    r1, =0x00101dff\n" // was: "[pc, #-1968]        ; ff879ec0"  
    481         "str    r0, [r4, #4]\n" 
    482         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    483         "bl     sub_ff839f50\n" // KernelMisc.c:43 
    484         "str    r0, [r4]\n" 
    485         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    486         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    487         "bl     sub_ff839f74\n" // KernelMisc.c:55 
    488         "str    r0, [r4, #8]\n" 
    489         "ldr    r3, =0x0\n" // was: "mov ..., #0" 
    490         "str    r3, [sp]\n" 
    491         //"ldr    r3, =capt_seq_task\n" 
    492         "ldr    r3, =0xFF87A2C0\n" // capt_seq_task  
    493         "ldr    r0, =0xFF87A848\n" // *"CaptSeqTask"  
    494         "ldr    r2, =0x1000\n" // was: "mov ..., #4096" 
    495         "ldr    r1, =0x17\n" // was: "mov ..., #23" 
    496         "bl     sub_ff839ef8\n" // was FF839EF8 KernelCreateTask ; LOCATION: KernelMisc.c:19 
    497         "pop    {r3, r4, r5, pc}\n" 
     466        "ADD    r3, r2, r0, lsl #4\n" 
     467        "ADD    r0, r0, #1\n"   // 0x1 
     468        "CMP    r0, #5\n"       // 0x5 
     469        "STR    r1, [r3, #8]\n" 
     470        "BCC    loc_FF87A5E8\n"  
     471        "BL     sub_FF87B1C4\n"  
     472        "BL     sub_FF95F3A0\n" // nullsub  
     473        "BL     sub_FF95FF60\n"  
     474        "LDR    r1, =0x5\n" // was: "mov ..., #5" 
     475        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     476        "BL     sub_ff839f2c\n" // KernelMisc.c:31 
     477        "LDR    r4, =0x00002b9c\n" // was: "[pc, #-2000]        ; ff879e9c"  
     478        "LDR    r1, =0x00101dff\n" // was: "[pc, #-1968]        ; ff879ec0"  
     479        "STR    r0, [r4, #4]\n" 
     480        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     481        "BL     sub_ff839f50\n" // KernelMisc.c:43 
     482        "STR    r0, [r4]\n" 
     483        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     484        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     485        "BL     sub_ff839f74\n" // KernelMisc.c:55 
     486        "STR    r0, [r4, #8]\n" 
     487        "LDR    r3, =0x0\n" // was: "mov ..., #0" 
     488        "STR    r3, [sp]\n" 
     489        //"LDR    r3, =capt_seq_task\n" 
     490        "LDR    r3, =0xFF87A2C0\n" // capt_seq_task  
     491        "LDR    r0, =0xFF87A848\n" // *"CaptSeqTask"  
     492        "LDR    r2, =0x1000\n" // was: "mov ..., #4096" 
     493        "LDR    r1, =0x17\n" // was: "mov ..., #23" 
     494        "BL     sub_ff839ef8\n" // was FF839EF8 KernelCreateTask ; LOCATION: KernelMisc.c:19 
     495        "POP    {r3, r4, r5, pc}\n" 
    498496    ); 
    499497} 
     
    503501void __attribute__((naked,noinline)) sub_ff88cb3c_my() {    // sub_FF88FF58_my 
    504502  asm volatile ( 
    505         "push   {r4, lr}\n" 
    506         "ldr    r0, =0x3\n" // was: "mov ..., #3" 
    507         "bl     sub_ff86f084_my\n" 
    508         "bl     sub_ff94002c\n" 
    509         "ldr    r4, =0x00002f54\n" // was: "[pc, #112]  ; ff88cbc4"  
    510         "ldr    r0, [r4, #4]\n" 
    511         "cmp    r0, #0\n"       // 0x0 
    512         "bne    loc_ff88cb74\n" 
    513         "bl     sub_ff86e2cc\n" 
    514         "bl     sub_ff9344f0\n" 
    515         "bl     sub_ff86e2cc\n" 
    516         "bl     sub_ff86a6f0\n" 
    517         "bl     sub_ff86e1cc\n" 
    518         "bl     sub_ff93458c\n" 
     503        "PUSH   {r4, lr}\n" 
     504        "LDR    r0, =0x3\n" // was: "mov ..., #3" 
     505        "BL     sub_ff86f084_my\n" 
     506        "BL     sub_ff94002c\n" 
     507        "LDR    r4, =0x00002f54\n" // was: "[pc, #112]  ; ff88cbc4"  
     508        "LDR    r0, [r4, #4]\n" 
     509        "CMP    r0, #0\n"       // 0x0 
     510        "BNE    loc_ff88cb74\n" 
     511        "BL     sub_ff86e2cc\n" 
     512        "BL     sub_ff9344f0\n" 
     513        "BL     sub_ff86e2cc\n" 
     514        "BL     sub_ff86a6f0\n" 
     515        "BL     sub_ff86e1cc\n" 
     516        "BL     sub_ff93458c\n" 
    519517"loc_ff88cb74:\n" 
    520         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    521         "str    r0, [r4]\n" 
    522         "pop    {r4, pc}\n" 
     518        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     519        "STR    r0, [r4]\n" 
     520        "POP    {r4, pc}\n" 
    523521    ); 
    524522}; 
     
    526524void __attribute__((naked,noinline)) sub_ff86f084_my() {    // sub_FF871A04_my 
    527525  asm volatile ( 
    528         "push   {r4, r5, r6, r7, r8, lr}\n" 
    529         "mov    r8, r0\n" 
    530         "bl     sub_ff86f004\n" 
    531         "ldr    r1, =0x00038448\n" // was: "[pc, #-2052]        ; ff86e894"  
    532         "mov    r6, r0\n" 
    533         "add    r4, r1, r0, lsl #7\n" 
    534         "ldr    r0, [r4, #108]\n" 
    535         "cmp    r0, #4\n"       // 0x4 
    536         "ldreq  r1, =0x0000085a\n" // was: "[pc, #208]  ; ff86f17c"  
    537         "ldreq  r0, =0xff86eb44\n" // was: "[pc, #200]  ; ff86f178"  **"Mounter.c" 
    538         "bleq   sub_ff81eb14\n" 
    539         "mov    r1, r8\n" 
    540         "mov    r0, r6\n" 
    541         "bl     sub_ff86e8bc\n" 
    542         "ldr    r0, [r4, #56]\n" 
    543         "bl     sub_ff86f724\n" 
    544         "cmp    r0, #0\n"       // 0x0 
    545         "streq  r0, [r4, #108]\n" 
    546         "mov    r0, r6\n" 
    547         "bl     sub_ff86e94c\n" 
    548         "mov    r0, r6\n" 
    549         "bl     sub_ff86ecac\n" 
    550         "mov    r5, r0\n" 
    551         "mov    r0, r6\n" 
    552         "bl     sub_ff86eedc_my\n" 
    553         "ldr    r6, [r4, #60]\n" 
    554         "and    r7, r5, r0\n" 
    555         "cmp    r6, #0\n"       // 0x0 
    556         "ldr    r1, [r4, #56]\n" 
    557         "ldreq  r0, =0x80000001\n" // was: "mov ..., #-2147483647" 
    558         "ldr    r5, =0x0\n" // was: "mov ..., #0" 
    559         "beq    loc_ff86f134\n" 
    560         "mov    r0, r1\n" 
    561         "bl     sub_ff86e434\n" 
    562         "cmp    r0, #0\n"       // 0x0 
    563         "ldrne  r5, =0x4\n" // was: "mov ..., #4" 
    564         "cmp    r6, #5\n"       // 0x5 
    565         "orrne  r0, r5, #1\n"   // 0x1 
    566         "biceq  r0, r5, #1\n"   // 0x1 
    567         "cmp    r7, #0\n"       // 0x0 
    568         "biceq  r0, r0, #2\n"   // 0x2 
    569         "orreq  r0, r0, #0x80000000\n" 
    570         "bicne  r0, r0, #0x80000000\n" 
    571         "orrne  r0, r0, #2\n"   // 0x2 
     526        "PUSH   {r4, r5, r6, r7, r8, lr}\n" 
     527        "MOV    r8, r0\n" 
     528        "BL     sub_ff86f004\n" 
     529        "LDR    r1, =0x00038448\n" // was: "[pc, #-2052]        ; ff86e894"  
     530        "MOV    r6, r0\n" 
     531        "ADD    r4, r1, r0, lsl #7\n" 
     532        "LDR    r0, [r4, #108]\n" 
     533        "CMP    r0, #4\n"       // 0x4 
     534        "LDREQ  r1, =0x0000085a\n" // was: "[pc, #208]  ; ff86f17c"  
     535        "LDREQ  r0, =0xff86eb44\n" // was: "[pc, #200]  ; ff86f178"  **"Mounter.c" 
     536        "BLEQ   sub_ff81eb14\n" 
     537        "MOV    r1, r8\n" 
     538        "MOV    r0, r6\n" 
     539        "BL     sub_ff86e8bc\n" 
     540        "LDR    r0, [r4, #56]\n" 
     541        "BL     sub_ff86f724\n" 
     542        "CMP    r0, #0\n"       // 0x0 
     543        "STREQ  r0, [r4, #108]\n" 
     544        "MOV    r0, r6\n" 
     545        "BL     sub_ff86e94c\n" 
     546        "MOV    r0, r6\n" 
     547        "BL     sub_ff86ecac\n" 
     548        "MOV    r5, r0\n" 
     549        "MOV    r0, r6\n" 
     550        "BL     sub_ff86eedc_my\n" 
     551        "LDR    r6, [r4, #60]\n" 
     552        "AND    r7, r5, r0\n" 
     553        "CMP    r6, #0\n"       // 0x0 
     554        "LDR    r1, [r4, #56]\n" 
     555        "LDREQ  r0, =0x80000001\n" // was: "mov ..., #-2147483647" 
     556        "LDR    r5, =0x0\n" // was: "mov ..., #0" 
     557        "BEQ    loc_ff86f134\n" 
     558        "MOV    r0, r1\n" 
     559        "BL     sub_ff86e434\n" 
     560        "CMP    r0, #0\n"       // 0x0 
     561        "LDRNE  r5, =0x4\n" // was: "mov ..., #4" 
     562        "CMP    r6, #5\n"       // 0x5 
     563        "ORRNE  r0, r5, #1\n"   // 0x1 
     564        "BICEQ  r0, r5, #1\n"   // 0x1 
     565        "CMP    r7, #0\n"       // 0x0 
     566        "BICEQ  r0, r0, #2\n"   // 0x2 
     567        "ORREQ  r0, r0, #0x80000000\n" 
     568        "BICNE  r0, r0, #0x80000000\n" 
     569        "ORRNE  r0, r0, #2\n"   // 0x2 
    572570"loc_ff86f134:\n" 
    573         "cmp    r8, #7\n"       // 0x7 
    574         "str    r0, [r4, #64]\n" 
    575         "popne  {r4, r5, r6, r7, r8, pc}\n" 
    576         "mov    r0, r8\n" 
    577         "bl     sub_ff86f054\n" 
    578         "cmp    r0, #0\n"       // 0x0 
    579         "popeq  {r4, r5, r6, r7, r8, lr}\n" 
    580         "ldreq  r0, =0xff86f180\n" // was: "addeq       r0, pc, #40"   *"EMEM MOUNT ERROR!!!" 
    581         "beq    sub_ff81177c\n" 
    582         "pop    {r4, r5, r6, r7, r8, pc}\n" 
     571        "CMP    r8, #7\n"       // 0x7 
     572        "STR    r0, [r4, #64]\n" 
     573        "POPNE  {r4, r5, r6, r7, r8, pc}\n" 
     574        "MOV    r0, r8\n" 
     575        "BL     sub_ff86f054\n" 
     576        "CMP    r0, #0\n"       // 0x0 
     577        "POPEQ  {r4, r5, r6, r7, r8, lr}\n" 
     578        "LDREQ  r0, =0xff86f180\n" // was: "addeq       r0, pc, #40"   *"EMEM MOUNT ERROR!!!" 
     579        "BEQ    sub_ff81177c\n" 
     580        "POP    {r4, r5, r6, r7, r8, pc}\n" 
    583581    ); 
    584582}; 
     
    586584void __attribute__((naked,noinline)) sub_ff86eedc_my() {    // FF87185C 
    587585  asm volatile ( 
    588         "push   {r3, r4, r5, r6, r7, r8, r9, lr}\n" 
    589         "mov    r5, r0\n" 
    590         "ldr    r0, =0xff86f16c\n" // was: "add r0, pc, #640"   
    591         "ldr    r0, [r0]\n" 
    592         "ldr    r9, =0x00038448\n" // was: "[pc, #-1632]        ; ff86e894"  
    593         "str    r0, [sp]\n" 
    594         "add    r4, r9, r5, lsl #7\n" 
    595         "ldr    r0, [r4, #108]\n" 
    596         "tst    r0, #4\n"       // 0x4 
    597         "ldrne  r0, =0x1\n" // was: "mov ..., #1" 
    598         "bne    loc_ff86ef48\n" 
    599         "ldr    r0, [r4, #60]\n" 
    600         "ldr    r6, =0x00002968\n" // was: "[pc, #-1672]        ; ff86e88c"  
    601         "cmp    r0, #6\n"       // 0x6 
    602         "ldr    r8, =0x1\n" // was: "mov ..., #1" 
    603         "ldr    r7, =0x0\n" // was: "mov ..., #0" 
    604         "addls  pc, pc, r0, lsl #2\n" 
    605         "b      loc_ff86efa8\n" 
    606         "b      loc_ff86ef40\n" 
    607         "b      loc_ff86ef4c\n" 
    608         "b      loc_ff86ef4c\n" 
    609         "b      loc_ff86ef4c\n" 
    610         "b      loc_ff86ef4c\n" 
    611         "b      loc_ff86ef64\n" 
    612         "b      loc_ff86ef4c\n" 
     586        "PUSH   {r3, r4, r5, r6, r7, r8, r9, lr}\n" 
     587        "MOV    r5, r0\n" 
     588        "LDR    r0, =0xff86f16c\n" // was: "add r0, pc, #640"   
     589        "LDR    r0, [r0]\n" 
     590        "LDR    r9, =0x00038448\n" // was: "[pc, #-1632]        ; ff86e894"  
     591        "STR    r0, [sp]\n" 
     592        "ADD    r4, r9, r5, lsl #7\n" 
     593        "LDR    r0, [r4, #108]\n" 
     594        "TST    r0, #4\n"       // 0x4 
     595        "LDRNE  r0, =0x1\n" // was: "mov ..., #1" 
     596        "BNE    loc_ff86ef48\n" 
     597        "LDR    r0, [r4, #60]\n" 
     598        "LDR    r6, =0x00002968\n" // was: "[pc, #-1672]        ; ff86e88c"  
     599        "CMP    r0, #6\n"       // 0x6 
     600        "LDR    r8, =0x1\n" // was: "mov ..., #1" 
     601        "LDR    r7, =0x0\n" // was: "mov ..., #0" 
     602        "ADDLS  pc, pc, r0, lsl #2\n" 
     603        "B      loc_ff86efa8\n" 
     604        "B      loc_ff86ef40\n" 
     605        "B      loc_ff86ef4c\n" 
     606        "B      loc_ff86ef4c\n" 
     607        "B      loc_ff86ef4c\n" 
     608        "B      loc_ff86ef4c\n" 
     609        "B      loc_ff86ef64\n" 
     610        "B      loc_ff86ef4c\n" 
    613611"loc_ff86ef40:\n" // jumptable entry 0 
    614         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    615         "str    r7, [r4, #108]\n" 
     612        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     613        "STR    r7, [r4, #108]\n" 
    616614"loc_ff86ef48:\n" 
    617         "pop    {r3, r4, r5, r6, r7, r8, r9, pc}\n" 
     615        "POP    {r3, r4, r5, r6, r7, r8, r9, pc}\n" 
    618616"loc_ff86ef4c:\n" // 5 refs, jumptable entries 1-4,6 
    619         "ldr    r0, [r4, #56]\n" 
    620         "bl     sub_ff86e434\n" 
    621         "cmp    r0, #0\n"       // 0x0 
    622         "streq  r7, [r6, #16]\n" 
    623         "strne  r8, [r6, #16]\n" 
    624         "b      loc_ff86efb4\n" 
     617        "LDR    r0, [r4, #56]\n" 
     618        "BL     sub_ff86e434\n" 
     619        "CMP    r0, #0\n"       // 0x0 
     620        "STREQ  r7, [r6, #16]\n" 
     621        "STRNE  r8, [r6, #16]\n" 
     622        "B      loc_ff86efb4\n" 
    625623"loc_ff86ef64:\n" // jumptable entry 5 
    626         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
    627         "ldr    r1, =0x8000\n" // was: "mov ..., #32768" 
    628         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    629         "str    r8, [r6, #16]\n" 
    630         "bl     sub_ff886bc0\n" 
    631         "mov    r6, r0\n" 
    632         "mov    r2, r4\n" 
    633         "ldr    r1, =0x8000\n" // was: "mov ..., #32768" 
    634         "bl     sub_ff941dd8\n" 
    635         "ldr    r0, [r9, r5, lsl #7]\n" 
    636         "mov    r1, r6\n" 
    637         "str    r0, [r4, #80]\n" 
    638         "ldr    r0, [r4, #4]\n" 
    639         "str    r0, [r4, #84]\n" 
    640         "mov    r0, r5\n" 
    641         "bl     sub_ff86e578\n" 
    642         "b      loc_ff86efb4\n" 
     624        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
     625        "LDR    r1, =0x8000\n" // was: "mov ..., #32768" 
     626        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     627        "STR    r8, [r6, #16]\n" 
     628        "BL     sub_ff886bc0\n" 
     629        "MOV    r6, r0\n" 
     630        "MOV    r2, r4\n" 
     631        "LDR    r1, =0x8000\n" // was: "mov ..., #32768" 
     632        "BL     sub_ff941dd8\n" 
     633        "LDR    r0, [r9, r5, lsl #7]\n" 
     634        "MOV    r1, r6\n" 
     635        "STR    r0, [r4, #80]\n" 
     636        "LDR    r0, [r4, #4]\n" 
     637        "STR    r0, [r4, #84]\n" 
     638        "MOV    r0, r5\n" 
     639        "BL     sub_ff86e578\n" 
     640        "B      loc_ff86efb4\n" 
    643641"loc_ff86efa8:\n" // jumptable default entry 
    644         "ldr    r1, =0x000006c1\n" // was: "[pc, #448]  ; ff86f170"  
    645         "ldr    r0, =0xff86eb44\n" // was: "sub r0, pc, #1136"   *"Mounter.c" 
    646         "bl     sub_ff81eb14\n" 
     642        "LDR    r1, =0x000006c1\n" // was: "[pc, #448]  ; ff86f170"  
     643        "LDR    r0, =0xff86eb44\n" // was: "sub r0, pc, #1136"   *"Mounter.c" 
     644        "BL     sub_ff81eb14\n" 
    647645"loc_ff86efb4:\n" // 2 refs 
    648         "mov    r0, r5\n" 
    649         "bl     sub_ff86e1d4\n" 
    650         "strb   r0, [sp]\n" 
    651         "mov    r0, r5\n" 
    652         "mov    r1, sp\n" 
    653         "bl     sub_ff86edac\n" 
    654         "cmn    r0, #1\n"       // 0x1 
    655         "bne    loc_ff86eff4\n" 
    656         "ldr    r1, =0x000384c8\n" // was: "[pc, #-1860]        ; ff86e898"  
    657         "add    r0, r5, r5, lsl #4\n" 
    658         "str    r7, [r1, r0, lsl #2]\n" 
    659         "ldr    r1, [r4, #108]\n" 
    660         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    661         "bic    r1, r1, #6\n"   // 0x6 
     646        "MOV    r0, r5\n" 
     647        "BL     sub_ff86e1d4\n" 
     648        "STRB   r0, [sp]\n" 
     649        "MOV    r0, r5\n" 
     650        "MOV    r1, sp\n" 
     651        "BL     sub_ff86edac\n" 
     652        "CMN    r0, #1\n"       // 0x1 
     653        "BNE    loc_ff86eff4\n" 
     654        "LDR    r1, =0x000384c8\n" // was: "[pc, #-1860]        ; ff86e898"  
     655        "ADD    r0, r5, r5, lsl #4\n" 
     656        "STR    r7, [r1, r0, lsl #2]\n" 
     657        "LDR    r1, [r4, #108]\n" 
     658        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     659        "BIC    r1, r1, #6\n"   // 0x6 
    662660"loc_ff86efec:\n" 
    663         "str    r1, [r4, #108]\n" 
    664         "pop    {r3, r4, r5, r6, r7, r8, r9, pc}\n" 
     661        "STR    r1, [r4, #108]\n" 
     662        "POP    {r3, r4, r5, r6, r7, r8, r9, pc}\n" 
    665663"loc_ff86eff4:\n" 
    666         "ldr    r1, [r4, #108]\n" 
    667         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    668         "orr    r1, r1, #4\n"   // 0x4 
    669         "b      loc_ff86efec\n" 
     664        "LDR    r1, [r4, #108]\n" 
     665        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     666        "ORR    r1, r1, #4\n"   // 0x4 
     667        "B      loc_ff86efec\n" 
    670668    ); 
    671669}; 
  • trunk/platform/ixus130_sd1400/sub/100a/capt_seq.c

    r1985 r1993  
    1010void __attribute__((naked,noinline)) capt_seq_task() { 
    1111  asm volatile ( 
    12         "push   {r3, r4, r5, r6, r7, r8, r9, lr}\n" 
    13         "ldr    r6, =0x00002b9c\n" // was: "[pc, #-1152]        ; ff879e9c"  
    14         "ldr    r4, =0x00039644\n" // was: "[pc, #-1104]        ; ff879ed0"  
    15         "ldr    r9, =0x1\n" // was: "mov ..., #1" 
    16         "ldr    r7, =0x0\n" // was: "mov ..., #0" 
     12        "PUSH   {r3, r4, r5, r6, r7, r8, r9, lr}\n" 
     13        "LDR    r6, =0x00002b9c\n" // was: "[pc, #-1152]        ; ff879e9c"  
     14        "LDR    r4, =0x00039644\n" // was: "[pc, #-1104]        ; ff879ed0"  
     15        "LDR    r9, =0x1\n" // was: "mov ..., #1" 
     16        "LDR    r7, =0x0\n" // was: "mov ..., #0" 
    1717"loc_FF87A2D4:\n" 
    18         "ldr    r0, [r6, #4]\n" 
    19         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
    20         "mov    r1, sp\n" 
    21         "bl     sub_FF8396E4\n" 
    22         "tst    r0, #1\n"       // 0x1 
    23         "beq    loc_FF87A300\n" 
    24         "ldr    r1, =0x000005b4\n" // was: "[pc, #1352] ; ff87a88c"  
    25         "ldr    r0, =0xFF879E50\n" // was: "[pc, #1336] ; ff87a880"  **"SsShootTask.c"  
    26         "bl     sub_ff81eb14\n" 
    27         "bl     sub_ff81eacc\n" 
    28         "pop    {r3, r4, r5, r6, r7, r8, r9, pc}\n" 
     18        "LDR    r0, [r6, #4]\n" 
     19        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
     20        "MOV    r1, sp\n" 
     21        "BL     sub_FF8396E4\n" 
     22        "TST    r0, #1\n"       // 0x1 
     23        "BEQ    loc_FF87A300\n" 
     24        "LDR    r1, =0x000005b4\n" // was: "[pc, #1352] ; ff87a88c"  
     25        "LDR    r0, =0xFF879E50\n" // was: "[pc, #1336] ; ff87a880"  **"SsShootTask.c"  
     26        "BL     sub_ff81eb14\n" 
     27        "BL     sub_ff81eacc\n" 
     28        "POP    {r3, r4, r5, r6, r7, r8, r9, pc}\n" 
    2929"loc_FF87A300:\n"  
    30         "ldr    r0, [sp]\n" 
    31         "ldr    r1, [r0]\n" 
    32         "cmp    r1, #29\n"      // 0x1d 
    33         "addls  pc, pc, r1, lsl #2\n" 
    34         "b      loc_FF87A59C\n"  
    35         "b  loc_FF87A38C\n" // 0 jumptable start 
    36         "b  loc_FF87A3F0\n" // 1 
    37         "b  loc_FF87A42C\n" // 2 
    38         "b  loc_FF87A440\n" // 3 
    39         "b  loc_FF87A438\n" // 4 
    40         "b  loc_FF87A448\n" // 5 
    41         "b  loc_FF87A450\n" // 6 
    42         "b  loc_FF87A458\n" // 7 
    43         "b  loc_FF87A4B0\n" // 8 
    44         "b  loc_FF87A4D8\n" // 9 
    45         "b  loc_FF87A4BC\n" // 10 
    46         "b  loc_FF87A4C8\n" // 11 
    47         "b  loc_FF87A4D0\n" // 12 
    48         "b  loc_FF87A4E0\n" // 13 
    49         "b  loc_FF87A4E8\n" // 14 
    50         "b  loc_FF87A4F0\n" // 15 
    51         "b  loc_FF87A4F8\n" // 16 
    52         "b  loc_FF87A500\n" // 17 
    53         "b  loc_FF87A50C\n" // 18 
    54         "b  loc_FF87A514\n" // 19 
    55         "b  loc_FF87A51C\n" // 20 
    56         "b  loc_FF87A524\n" // 21 
    57         "b  loc_FF87A52C\n" // 22 
    58         "b  loc_FF87A538\n" // 23 
    59         "b  loc_FF87A540\n" // 24 
    60         "b  loc_FF87A548\n" // 25 
    61         "b  loc_FF87A550\n" // 26 
    62         "b  loc_FF87A558\n" // 27 
    63         "b  loc_FF87A564\n" // 28 
    64         "b  loc_FF87A5A8\n" // 29 
     30        "LDR    r0, [sp]\n" 
     31        "LDR    r1, [r0]\n" 
     32        "CMP    r1, #29\n"      // 0x1d 
     33        "ADDLS  pc, pc, r1, lsl #2\n" 
     34        "B      loc_FF87A59C\n"  
     35        "B  loc_FF87A38C\n" // 0 jumptable start 
     36        "B  loc_FF87A3F0\n" // 1 
     37        "B  loc_FF87A42C\n" // 2 
     38        "B  loc_FF87A440\n" // 3 
     39        "B  loc_FF87A438\n" // 4 
     40        "B  loc_FF87A448\n" // 5 
     41        "B  loc_FF87A450\n" // 6 
     42        "B  loc_FF87A458\n" // 7 
     43        "B  loc_FF87A4B0\n" // 8 
     44        "B  loc_FF87A4D8\n" // 9 
     45        "B  loc_FF87A4BC\n" // 10 
     46        "B  loc_FF87A4C8\n" // 11 
     47        "B  loc_FF87A4D0\n" // 12 
     48        "B  loc_FF87A4E0\n" // 13 
     49        "B  loc_FF87A4E8\n" // 14 
     50        "B  loc_FF87A4F0\n" // 15 
     51        "B  loc_FF87A4F8\n" // 16 
     52        "B  loc_FF87A500\n" // 17 
     53        "B  loc_FF87A50C\n" // 18 
     54        "B  loc_FF87A514\n" // 19 
     55        "B  loc_FF87A51C\n" // 20 
     56        "B  loc_FF87A524\n" // 21 
     57        "B  loc_FF87A52C\n" // 22 
     58        "B  loc_FF87A538\n" // 23 
     59        "B  loc_FF87A540\n" // 24 
     60        "B  loc_FF87A548\n" // 25 
     61        "B  loc_FF87A550\n" // 26 
     62        "B  loc_FF87A558\n" // 27 
     63        "B  loc_FF87A564\n" // 28 
     64        "B  loc_FF87A5A8\n" // 29 
    6565"loc_FF87A38C:\n" // jumptable entry 0  
    66         "bl     sub_FF87AC50\n"  
    67         "bl     shooting_expo_param_override\n" // added 
    68         "bl     sub_FF87805C\n"  
     66        "BL     sub_FF87AC50\n"  
     67        "BL     shooting_expo_param_override\n" // added 
     68        "BL     sub_FF87805C\n"  
    6969 
    7070        // this code added to avoid some incorrect behavior if overrides are used. 
    7171        // but it can cause some unexpected side effects. In this case, remove this code! 
    72         "mov    r0, #0\n" 
    73         "str    r0, [r4, #36]\n"  // 0x24 fixes overrides  behavior at short shutter press 
     72        "MOV    r0, #0\n" 
     73        "STR    r0, [r4, #36]\n"  // 0x24 fixes overrides  behavior at short shutter press 
    7474 
    75         "b      loc_FF87A5A8\n" 
     75        "B      loc_FF87A5A8\n" 
    7676/*     
    77         "ldr    r0, [r4, #36]\n" 
    78         "cmp    r0, #0\n"       // 0x0 
    79         "beq    loc_FF87A5A8\n"  
    80         "bl     sub_FF879B30\n"  
    81         "mov    r5, r0\n" 
    82         "ldr    r0, [r4, #36]\n" 
    83         "cmp    r0, #0\n"       // 0x0 
    84         "beq    loc_FF87A3D4\n" 
    85         "ldr    r0, =0xc\n" // was: "mov ..., #12" 
    86         "bl     sub_FF87F124\n" 
    87         "tst    r0, #1\n"       // 0x1 
    88         "strne  r9, [r6, #16]\n" 
    89         "ldrne  r0, [r5, #8]\n" 
    90         "orrne  r0, r0, #1073741824\n"  // 0x40000000 
    91         "strne  r0, [r5, #8]\n" 
    92         "bne    loc_FF87A5A8\n" 
     77        "LDR    r0, [r4, #36]\n" 
     78        "CMP    r0, #0\n"       // 0x0 
     79        "BEQ    loc_FF87A5A8\n"  
     80        "BL     sub_FF879B30\n"  
     81        "MOV    r5, r0\n" 
     82        "LDR    r0, [r4, #36]\n" 
     83        "CMP    r0, #0\n"       // 0x0 
     84        "BEQ    loc_FF87A3D4\n" 
     85        "LDR    r0, =0xc\n" // was: "mov ..., #12" 
     86        "BL     sub_FF87F124\n" 
     87        "TST    r0, #1\n"       // 0x1 
     88        "STRNE  r9, [r6, #16]\n" 
     89        "LDRNE  r0, [r5, #8]\n" 
     90        "ORRNE  r0, r0, #1073741824\n"  // 0x40000000 
     91        "STRNE  r0, [r5, #8]\n" 
     92        "BNE    loc_FF87A5A8\n" 
    9393"loc_FF87A3D4:\n" 
    94         "mov    r0, r5\n" 
    95         "bl     sub_FF879DD4\n" 
    96         "mov    r0, r5\n" 
     94        "MOV    r0, r5\n" 
     95        "BL     sub_FF879DD4\n" 
     96        "MOV    r0, r5\n" 
    9797         
    98         "bl     sub_ff95f120_my\n" // taskcreate_ShutterSoundTask() 
    99         "bl     capt_seq_hook_raw_here\n" // added 
     98        "BL     sub_ff95f120_my\n" // taskcreate_ShutterSoundTask() 
     99        "BL     capt_seq_hook_raw_here\n" // added 
    100100 
    101         "tst    r0, #1\n"       // 0x1 
    102         "strne  r9, [r6, #16]\n" 
    103         "b      loc_FF87A5A8\n" 
     101        "TST    r0, #1\n"       // 0x1 
     102        "STRNE  r9, [r6, #16]\n" 
     103        "B      loc_FF87A5A8\n" 
    104104*/     
    105105"loc_FF87A3F0:\n" // jumptable entry 1  
    106         "ldr    r0, [r4, #36]\n" 
    107         "cmp    r0, #0\n"       // 0x0 
    108         "bne    loc_FF87A41C\n"  
    109         "ldr    r0, =0xc\n" // was: "mov ..., #12" 
    110         "bl     sub_FF87F124\n"  
    111         "tst    r0, #1\n"       // 0x1 
    112         "ldrne  r0, [sp]\n" 
    113         "ldrne  r1, =0x1\n" // was: "mov ..., #1" 
    114         "ldrne  r2, [r0, #12]\n" 
    115         "ldrne  r0, =0x1\n" // was: "mov ..., #1" 
    116         "bne    loc_FF87A4A8\n" 
     106        "LDR    r0, [r4, #36]\n" 
     107        "CMP    r0, #0\n"       // 0x0 
     108        "BNE    loc_FF87A41C\n"  
     109        "LDR    r0, =0xc\n" // was: "mov ..., #12" 
     110        "BL     sub_FF87F124\n"  
     111        "TST    r0, #1\n"       // 0x1 
     112        "LDRNE  r0, [sp]\n" 
     113        "LDRNE  r1, =0x1\n" // was: "mov ..., #1" 
     114        "LDRNE  r2, [r0, #12]\n" 
     115        "LDRNE  r0, =0x1\n" // was: "mov ..., #1" 
     116        "BNE    loc_FF87A4A8\n" 
    117117"loc_FF87A41C:\n"  
    118         "ldr    r0, [sp]\n" 
    119         //"bl   sub_ff87a714\n" 
    120         "bl     sub_ff87a714_my\n" 
     118        "LDR    r0, [sp]\n" 
     119        //"BL   sub_ff87a714\n" 
     120        "BL     sub_ff87a714_my\n" 
    121121"loc_FF87A424:\n" // 2 refs 
    122         "str    r7, [r4, #36]\n" 
    123         "b      loc_FF87A5A8\n" 
     122        "STR    r7, [r4, #36]\n" 
     123        "B      loc_FF87A5A8\n" 
    124124"loc_FF87A42C:\n" // jumptable entry 2 
    125         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    126         "bl     sub_FF87AEF4\n"  
    127         "b      loc_FF87A5A8\n"  
     125        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     126        "BL     sub_FF87AEF4\n"  
     127        "B      loc_FF87A5A8\n"  
    128128"loc_FF87A438:\n" // jumptable entry 4 
    129         "bl     sub_FF87A86C\n"  
    130         "b      loc_FF87A424\n"  
     129        "BL     sub_FF87A86C\n"  
     130        "B      loc_FF87A424\n"  
    131131"loc_FF87A440:\n" // jumptable entry 3 
    132         "bl     sub_FF87AC30\n"  
    133         "b      loc_FF87A424\n"  
     132        "BL     sub_FF87AC30\n"  
     133        "B      loc_FF87A424\n"  
    134134"loc_FF87A448:\n" // jumptable entry 5  
    135         "bl     sub_FF87AC38\n"  
    136         "b      loc_FF87A5A8\n"  
     135        "BL     sub_FF87AC38\n"  
     136        "B      loc_FF87A5A8\n"  
    137137"loc_FF87A450:\n" // jumptable entry 6  
    138         "bl     sub_FF87AE04\n"  
    139         "b      loc_FF87A4B4\n"  
     138        "BL     sub_FF87AE04\n"  
     139        "B      loc_FF87A4B4\n"  
    140140"loc_FF87A458:\n" // jumptable entry 7  
    141         "ldr    r5, [r0, #12]\n" 
    142         "bl     sub_FF87AC40\n"  
    143         "mov    r0, r5\n" 
    144         "bl     sub_FF95E03C\n"  
    145         "tst    r0, #1\n"       // 0x1 
    146         "mov    r8, r0\n" 
    147         "bne    loc_FF87A498\n" 
    148         "bl     sub_FF88C384\n" 
    149         "str    r0, [r5, #24]\n" 
    150         "mov    r0, r5\n" 
    151         "bl     sub_FF95EF80\n" 
    152         "mov    r0, r5\n" 
    153         "bl     sub_FF95F31C\n" 
    154         "mov    r8, r0\n" 
    155         "ldr    r0, [r5, #24]\n" 
    156         "bl     sub_FF88C5BC\n" 
     141        "LDR    r5, [r0, #12]\n" 
     142        "BL     sub_FF87AC40\n"  
     143        "MOV    r0, r5\n" 
     144        "BL     sub_FF95E03C\n"  
     145        "TST    r0, #1\n"       // 0x1 
     146        "MOV    r8, r0\n" 
     147        "BNE    loc_FF87A498\n" 
     148        "BL     sub_FF88C384\n" 
     149        "STR    r0, [r5, #24]\n" 
     150        "MOV    r0, r5\n" 
     151        "BL     sub_FF95EF80\n" 
     152        "MOV    r0, r5\n" 
     153        "BL     sub_FF95F31C\n" 
     154        "MOV    r8, r0\n" 
     155        "LDR    r0, [r5, #24]\n" 
     156        "BL     sub_FF88C5BC\n" 
    157157"loc_FF87A498:\n" 
    158         "bl     sub_FF87AC30\n" 
    159         "mov    r2, r5\n" 
    160         "ldr    r1, =0x9\n" // was: "mov ..., #9" 
    161         "mov    r0, r8\n" 
     158        "BL     sub_FF87AC30\n" 
     159        "MOV    r2, r5\n" 
     160        "LDR    r1, =0x9\n" // was: "mov ..., #9" 
     161        "MOV    r0, r8\n" 
    162162"loc_FF87A4A8:\n" 
    163         "bl     sub_FF87851C\n" 
    164         "b      loc_FF87A5A8\n" 
     163        "BL     sub_FF87851C\n" 
     164        "B      loc_FF87A5A8\n" 
    165165"loc_FF87A4B0:\n" // jumptable entry 8 
    166         "bl     sub_FF87AE6C\n" 
     166        "BL     sub_FF87AE6C\n" 
    167167"loc_FF87A4B4:\n" 
    168         "bl     sub_FF87805C\n" 
    169         "b      loc_FF87A5A8\n" 
     168        "BL     sub_FF87805C\n" 
     169        "B      loc_FF87A5A8\n" 
    170170"loc_FF87A4BC:\n" // jumptable entry 10 
    171         "ldr    r0, [r4, #84]\n" 
    172         "bl     sub_FF87B298\n" 
    173         "b      loc_FF87A5A8\n" 
     171        "LDR    r0, [r4, #84]\n" 
     172        "BL     sub_FF87B298\n" 
     173        "B      loc_FF87A5A8\n" 
    174174"loc_FF87A4C8:\n" // jumptable entry 11 
    175         "bl     sub_FF87B54C\n"  
    176         "b      loc_FF87A5A8\n"  
     175        "BL     sub_FF87B54C\n"  
     176        "B      loc_FF87A5A8\n"  
    177177"loc_FF87A4D0:\n" // jumptable entry 12 
    178         "bl     sub_FF87B5E0\n"  
    179         "b      loc_FF87A5A8\n"  
     178        "BL     sub_FF87B5E0\n"  
     179        "B      loc_FF87A5A8\n"  
    180180"loc_FF87A4D8:\n" // jumptable entry 9  
    181         "bl     sub_FF87AC30\n"  
    182         "b      loc_FF87A5A8\n"  
     181        "BL     sub_FF87AC30\n"  
     182        "B      loc_FF87A5A8\n"  
    183183"loc_FF87A4E0:\n" // jumptable entry 13 
    184         "bl     sub_FF95E254\n"  
    185         "b      loc_FF87A5A8\n"  
     184        "BL     sub_FF95E254\n"  
     185        "B      loc_FF87A5A8\n"  
    186186"loc_FF87A4E8:\n" // jumptable entry 14  
    187         "bl     sub_FF95E468\n"  
    188         "b      loc_FF87A5A8\n"  
     187        "BL     sub_FF95E468\n"  
     188        "B      loc_FF87A5A8\n"  
    189189"loc_FF87A4F0:\n" // jumptable entry 15 
    190         "bl     sub_FF95E500\n"  
    191         "b      loc_FF87A5A8\n"  
     190        "BL     sub_FF95E500\n"  
     191        "B      loc_FF87A5A8\n"  
    192192"loc_FF87A4F8:\n" // jumptable entry 16  
    193         "bl     sub_FF95E5D0\n"  
    194         "b      loc_FF87A5A8\n"  
     193        "BL     sub_FF95E5D0\n"  
     194        "B      loc_FF87A5A8\n"  
    195195"loc_FF87A500:\n" // jumptable entry 17 
    196         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    197         "bl     sub_FF95E838\n"  
    198         "b      loc_FF87A5A8\n"  
     196        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     197        "BL     sub_FF95E838\n"  
     198        "B      loc_FF87A5A8\n"  
    199199"loc_FF87A50C:\n" // jumptable entry 18 
    200         "bl     sub_FF95E988\n"  
    201         "b      loc_FF87A5A8\n"  
     200        "BL     sub_FF95E988\n"  
     201        "B      loc_FF87A5A8\n"  
    202202"loc_FF87A514:\n" // jumptable entry 19 
    203         "bl     sub_FF95EA18\n"  
    204         "b      loc_FF87A5A8\n"  
     203        "BL     sub_FF95EA18\n"  
     204        "B      loc_FF87A5A8\n"  
    205205"loc_FF87A51C:\n" // jumptable entry 20 
    206         "bl     sub_FF95EAD8\n"  
    207         "b      loc_FF87A5A8\n"  
     206        "BL     sub_FF95EAD8\n"  
     207        "B      loc_FF87A5A8\n"  
    208208"loc_FF87A524:\n" // jumptable entry 21 
    209         "bl     sub_FF87B06C\n"  
    210         "b      loc_FF87A5A8\n"  
     209        "BL     sub_FF87B06C\n"  
     210        "B      loc_FF87A5A8\n"  
    211211"loc_FF87A52C:\n" // jumptable entry 22 
    212         "bl     sub_FF87B114\n" 
    213         "bl     sub_FF8376FC\n" 
    214         "b      loc_FF87A5A8\n" 
     212        "BL     sub_FF87B114\n" 
     213        "BL     sub_FF8376FC\n" 
     214        "B      loc_FF87A5A8\n" 
    215215"loc_FF87A538:\n" // jumptable entry 23 
    216         "bl     sub_FF95E69C\n"  
    217         "b      loc_FF87A5A8\n"  
     216        "BL     sub_FF95E69C\n"  
     217        "B      loc_FF87A5A8\n"  
    218218"loc_FF87A540:\n" // jumptable entry 24 
    219         "bl     sub_FF95E708\n"  
     219        "BL     sub_FF95E708\n"  
    220220//"loc_FF87A544:\n" // this line does not have a correspondence in 100a dump! 
    221         "b      loc_FF87A5A8\n"  
     221        "B      loc_FF87A5A8\n"  
    222222"loc_FF87A548:\n" // jumptable entry 25  
    223         "bl     sub_FF87D72C\n"  
    224         "b      loc_FF87A5A8\n"  
     223        "BL     sub_FF87D72C\n"  
     224        "B      loc_FF87A5A8\n"  
    225225"loc_FF87A550:\n" // jumptable entry 26  
    226         "bl     sub_FF87D7B4\n"  
    227         "b      loc_FF87A5A8\n"  
     226        "BL     sub_FF87D7B4\n"  
     227        "B      loc_FF87A5A8\n"  
    228228"loc_FF87A558:\n" // jumptable entry 27  
    229         "bl     sub_FF87D810\n"  
    230         "bl     sub_FF87D7D0\n"  
    231         "b      loc_FF87A5A8\n"  
     229        "BL     sub_FF87D810\n"  
     230        "BL     sub_FF87D7D0\n"  
     231        "B      loc_FF87A5A8\n"  
    232232"loc_FF87A564:\n" // jumptable entry 28 
    233         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    234         "bl     sub_FF95FCE0\n"  
    235         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    236         "bl     sub_FF95FE14\n"  
    237         "ldrh   r0, [r4, #148]\n" 
    238         "cmp    r0, #4\n"       // 0x4 
    239         "ldrneh r0, [r4]\n" // compiler doesn't like ldrhne, -> ldrneh 
    240         "subne  ip, r0, #33280\n"       // 0x8200 
    241         "subnes ip, ip, #42\n"  // 0x2a compiler doesn't like subsne, -> subnes 
    242         "bne    loc_FF87A5A8\n"  
    243         "bl     sub_FF87D7B4\n" 
    244         "bl     sub_FF87DD24\n" 
    245         "bl     sub_FF87DC34\n" 
    246         "b      loc_FF87A5A8\n" 
     233        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     234        "BL     sub_FF95FCE0\n"  
     235        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     236        "BL     sub_FF95FE14\n"  
     237        "LDRH   r0, [r4, #148]\n" 
     238        "CMP    r0, #4\n"       // 0x4 
     239        "LDRNEH r0, [r4]\n" // compiler doesn't like ldrhne, -> ldrneh 
     240        "SUBNE  ip, r0, #33280\n"       // 0x8200 
     241        "SUBNES ip, ip, #42\n"  // 0x2a compiler doesn't like subsne, -> subnes 
     242        "BNE    loc_FF87A5A8\n"  
     243        "BL     sub_FF87D7B4\n" 
     244        "BL     sub_FF87DD24\n" 
     245        "BL     sub_FF87DC34\n" 
     246        "B      loc_FF87A5A8\n" 
    247247"loc_FF87A59C:\n" // jumptable default 
    248         "ldr    r1, =0x0000070b\n" // was: "[pc, #668]  ; ff87a890"   
    249         "ldr    r0, =0xFF879E50\n" // was: "[pc, #648]  ; ff87a880"  **"SsShootTask.c" 
    250         "bl     sub_ff81eb14\n" 
     248        "LDR    r1, =0x0000070b\n" // was: "[pc, #668]  ; ff87a890"   
     249        "LDR    r0, =0xFF879E50\n" // was: "[pc, #648]  ; ff87a880"  **"SsShootTask.c" 
     250        "BL     sub_ff81eb14\n" 
    251251"loc_FF87A5A8:\n" // 30 refs jumptable entry 29 
    252         "ldr    r0, [sp]\n" 
    253         "ldr    r1, [r0, #4]\n" 
    254         "ldr    r0, [r6]\n" 
    255         "bl     sub_FF883F4C\n" 
    256         "ldr    r5, [sp]\n" 
    257         "ldr    r0, [r5, #8]\n" 
    258         "cmp    r0, #0\n"       // 0x0 
    259         "ldreq  r1, =0x00000132\n" // was: "[pc, #632]  ; ff87a894"  
    260         "ldreq  r0, =0xFF879E50\n" // was: "subeq       r0, pc, #1920"   *"SsShootTask.c"  
    261         "bleq   sub_ff81eb14\n" 
    262         "str    r7, [r5, #8]\n" 
    263         "b      loc_FF87A2D4\n" 
     252        "LDR    r0, [sp]\n" 
     253        "LDR    r1, [r0, #4]\n" 
     254        "LDR    r0, [r6]\n" 
     255        "BL     sub_FF883F4C\n" 
     256        "LDR    r5, [sp]\n" 
     257        "LDR    r0, [r5, #8]\n" 
     258        "CMP    r0, #0\n"       // 0x0 
     259        "LDREQ  r1, =0x00000132\n" // was: "[pc, #632]  ; ff87a894"  
     260        "LDREQ  r0, =0xFF879E50\n" // was: "subeq       r0, pc, #1920"   *"SsShootTask.c"  
     261        "BLEQ   sub_ff81eb14\n" 
     262        "STR    r7, [r5, #8]\n" 
     263        "B      loc_FF87A2D4\n" 
    264264    ); 
    265265} 
     
    268268void __attribute__((naked,noinline)) sub_ff95f120_my() { 
    269269  asm volatile ( //FF95F068 
    270         "push   {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}\n" 
    271         "mov    r4, r0\n" 
    272         "bl     sub_FF95FFE4\n" 
    273         "mvn    r1, #0\n"       // 0x0 
    274         "bl     sub_FF883F80\n" 
    275         "ldr    r5, =0x000067c0\n" // was: "[pc, #-552] ; ff95ef14"  
    276         "ldr    r0, [r5, #12]\n" 
    277         "cmp    r0, #0\n"       // 0x0 
    278         "bne    loc_FF95F0B8\n" 
    279         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    280         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    281         "bl     sub_ff839f2c\n" 
    282         "str    r0, [r5, #12]\n" 
    283         "ldr    r3, =0x0\n" // was: "mov ..., #0" 
    284         "str    r3, [sp]\n" 
    285         "ldr    r3, =0xFF95EBC8\n" // was: "[pc, #496]  ; ff95f354" 
    286         "ldr    r0, =0xFF95F2A0\n" // was: "add r0, pc, #496"   *"ShutterSoundTask" 
    287         "ldr    r2, =0x400\n" // was: "mov ..., #1024" 
    288         "ldr    r1, =0x17\n" // was: "mov ..., #23" 
    289         "bl     sub_ff839ef8\n" 
     270        "PUSH   {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}\n" 
     271        "MOV    r4, r0\n" 
     272        "BL     sub_FF95FFE4\n" 
     273        "MVN    r1, #0\n"       // 0x0 
     274        "BL     sub_FF883F80\n" 
     275        "LDR    r5, =0x000067c0\n" // was: "[pc, #-552] ; ff95ef14"  
     276        "LDR    r0, [r5, #12]\n" 
     277        "CMP    r0, #0\n"       // 0x0 
     278        "BNE    loc_FF95F0B8\n" 
     279        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     280        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     281        "BL     sub_ff839f2c\n" 
     282        "STR    r0, [r5, #12]\n" 
     283        "LDR    r3, =0x0\n" // was: "mov ..., #0" 
     284        "STR    r3, [sp]\n" 
     285        "LDR    r3, =0xFF95EBC8\n" // was: "[pc, #496]  ; ff95f354" 
     286        "LDR    r0, =0xFF95F2A0\n" // was: "add r0, pc, #496"   *"ShutterSoundTask" 
     287        "LDR    r2, =0x400\n" // was: "mov ..., #1024" 
     288        "LDR    r1, =0x17\n" // was: "mov ..., #23" 
     289        "BL     sub_ff839ef8\n" 
    290290"loc_FF95F0B8:\n" 
    291         "ldr    r2, =0x4\n" // was: "mov ..., #4" 
    292         "add    r1, sp, #8\n"   // 0x8 
    293         "ldr    r0, =0x8a\n" // was: "mov ..., #138" 
    294         "bl     sub_FF88C1F4\n" 
    295         "tst    r0, #1\n"       // 0x1 
    296         "ldrne  r1, =0x000003cd\n" // was: "[pc, #480]  ; ff95f36c"  
    297         "ldrne  r0, =0xFF95EE60\n" // was: "subne       r0, pc, #632"   *"SsCaptureSeq.c" 
    298         "blne   sub_ff81eb14\n" 
    299         "ldr    r6, =0x00039708\n" // was: "[pc, #420]  ; ff95f33c"  
    300         "ldr    r7, =0x00039644\n" // was: "[pc, #-604] ; ff95ef40"  
    301         "ldr    r3, [r6]\n" 
    302         "ldrsh  r2, [r6, #12]\n" 
    303         "ldrsh  r1, [r6, #14]\n" 
    304         "ldr    r0, [r7, #136]\n" 
    305         "bl     sub_FF92947C\n" 
    306         "bl     sub_ff862ca4\n" // GetCCDTemperature() WAS ff862ca4 NOT CHANGED 
    307         "ldr    r3, =0x000067c8\n" // was: "[pc, #440]  ; ff95f370"  
    308         "strh   r0, [r4, #164]\n" 
    309         "sub    r2, r3, #4\n"   // 0x4 
    310         "strd   r2, [sp]\n" 
    311         "mov    r1, r0\n" 
    312         "ldrh   r0, [r7, #92]\n" 
    313         "ldrsh  r2, [r6, #12]\n" 
    314         "sub    r3, r3, #8\n"   // 0x8 
    315         "bl     sub_FF961B88\n" 
     291        "LDR    r2, =0x4\n" // was: "mov ..., #4" 
     292        "ADD    r1, sp, #8\n"   // 0x8 
     293        "LDR    r0, =0x8a\n" // was: "mov ..., #138" 
     294        "BL     sub_FF88C1F4\n" 
     295        "TST    r0, #1\n"       // 0x1 
     296        "LDRNE  r1, =0x000003cd\n" // was: "[pc, #480]  ; ff95f36c"  
     297        "LDRNE  r0, =0xFF95EE60\n" // was: "subne       r0, pc, #632"   *"SsCaptureSeq.c" 
     298        "BLNE   sub_ff81eb14\n" 
     299        "LDR    r6, =0x00039708\n" // was: "[pc, #420]  ; ff95f33c"  
     300        "LDR    r7, =0x00039644\n" // was: "[pc, #-604] ; ff95ef40"  
     301        "LDR    r3, [r6]\n" 
     302        "LDRSH  r2, [r6, #12]\n" 
     303        "LDRSH  r1, [r6, #14]\n" 
     304        "LDR    r0, [r7, #136]\n" 
     305        "BL     sub_FF92947C\n" 
     306        "BL     sub_ff862ca4\n" // GetCCDTemperature() WAS ff862ca4 NOT CHANGED 
     307        "LDR    r3, =0x000067c8\n" // was: "[pc, #440]  ; ff95f370"  
     308        "STRH   r0, [r4, #164]\n" 
     309        "SUB    r2, r3, #4\n"   // 0x4 
     310        "STRD   r2, [sp]\n" 
     311        "MOV    r1, r0\n" 
     312        "LDRH   r0, [r7, #92]\n" 
     313        "LDRSH  r2, [r6, #12]\n" 
     314        "SUB    r3, r3, #8\n"   // 0x8 
     315        "BL     sub_FF961B88\n" 
    316316 
    317         "bl     wait_until_remote_button_is_released\n" 
    318         "bl     capt_seq_hook_set_nr\n" 
    319         "b      sub_FF95F11C\n" // continue in Canon firmware ???????? 
     317        "BL     wait_until_remote_button_is_released\n" 
     318        "BL     capt_seq_hook_set_nr\n" 
     319        "B      sub_FF95F11C\n" // continue in Canon firmware ???????? 
    320320/* 
    321         "ldr    r0, [r4, #28]\n" 
    322         "cmp    r0, #0\n"       // 0x0 
    323         "ldrne  r0, =0x1\n" // was: "mov ..., #1" 
    324         "strne  r0, [r5]\n" 
    325         "ldr    r0, [r5]\n" 
    326         "lsl    r1, r0, #16\n" 
    327         "ldrh   r0, [r7, #92]\n" 
    328         "lsr    r1, r1, #16\n" 
    329         "bl     sub_ff961d9c\n" 
    330         "str    r0, [r4, #172]\n" 
    331         "ldr    r0, [r5, #4]\n" 
    332         "bl     sub_ff92c5c4\n" 
    333         "ldr    r0, [r5, #8]\n" 
    334         "bl     sub_ff8b1504\n" 
    335         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    336         "bl     sub_ff8b151c\n" 
    337         "mov    r1, r4\n" 
    338         "ldr    r0, =0xff95ecf0\n" // was: "sub r0, pc, #1328"   
    339         "bl     sub_ff8b14e0\n" 
    340         "ldr    r0, [r5]\n" 
    341         "cmp    r0, #1\n"       // 0x1 
    342         "beq    loc_ff95f248\n" 
    343         "cmp    r0, #2\n"       // 0x2 
    344         "beq    loc_ff95f260\n" 
    345         "cmp    r0, #3\n"       // 0x3 
    346         "beq    loc_ff95f280\n" 
    347         "cmp    r0, #7\n"       // 0x7 
    348         "bne    loc_ff95f29c\n" 
    349         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
     321        "LDR    r0, [r4, #28]\n" 
     322        "CMP    r0, #0\n"       // 0x0 
     323        "LDRNE  r0, =0x1\n" // was: "mov ..., #1" 
     324        "STRNE  r0, [r5]\n" 
     325        "LDR    r0, [r5]\n" 
     326        "LSL    r1, r0, #16\n" 
     327        "LDRH   r0, [r7, #92]\n" 
     328        "LSR    r1, r1, #16\n" 
     329        "BL     sub_ff961d9c\n" 
     330        "STR    r0, [r4, #172]\n" 
     331        "LDR    r0, [r5, #4]\n" 
     332        "BL     sub_ff92c5c4\n" 
     333        "LDR    r0, [r5, #8]\n" 
     334        "BL     sub_ff8b1504\n" 
     335        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     336        "BL     sub_ff8b151c\n" 
     337        "MOV    r1, r4\n" 
     338        "LDR    r0, =0xff95ecf0\n" // was: "sub r0, pc, #1328"   
     339        "BL     sub_ff8b14e0\n" 
     340        "LDR    r0, [r5]\n" 
     341        "CMP    r0, #1\n"       // 0x1 
     342        "BEQ    loc_ff95f248\n" 
     343        "CMP    r0, #2\n"       // 0x2 
     344        "BEQ    loc_ff95f260\n" 
     345        "CMP    r0, #3\n"       // 0x3 
     346        "BEQ    loc_ff95f280\n" 
     347        "CMP    r0, #7\n"       // 0x7 
     348        "BNE    loc_ff95f29c\n" 
     349        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
    350350"loc_ff95f248:\n" 
    351         "bl     sub_ff8b1510\n" 
    352         "ldr    r2, [sp, #8]\n" 
    353         "add    r1, sp, #12\n"  // 0xc 
    354         "mov    r0, r4\n" 
    355         "bl     sub_ff95ef78\n" 
    356         "b      loc_ff95f278\n" 
     351        "BL     sub_ff8b1510\n" 
     352        "LDR    r2, [sp, #8]\n" 
     353        "ADD    r1, sp, #12\n"  // 0xc 
     354        "MOV    r0, r4\n" 
     355        "BL     sub_ff95ef78\n" 
     356        "B      loc_ff95f278\n" 
    357357"loc_ff95f260:\n" 
    358         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    359         "bl     sub_ff8b1510\n" 
    360         "ldr    r2, [sp, #8]\n" 
    361         "add    r1, sp, #12\n"  // 0xc 
    362         "mov    r0, r4\n" 
    363         "bl     sub_ff95f474\n" 
     358        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     359        "BL     sub_ff8b1510\n" 
     360        "LDR    r2, [sp, #8]\n" 
     361        "ADD    r1, sp, #12\n"  // 0xc 
     362        "MOV    r0, r4\n" 
     363        "BL     sub_ff95f474\n" 
    364364"loc_ff95f278:\n" // 2 refs 
    365         "mov    r8, r0\n" 
    366         "b      loc_ff95f2a8\n" 
     365        "MOV    r8, r0\n" 
     366        "B      loc_ff95f2a8\n" 
    367367"loc_ff95f280:\n" 
    368         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    369         "bl     sub_ff8b1510\n" 
    370         "ldr    r2, [sp, #8]\n" 
    371         "add    r1, sp, #12\n"  // 0xc 
    372         "mov    r0, r4\n" 
    373         "bl     sub_ff95f540\n" 
    374         "b      loc_ff95f278\n" 
     368        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     369        "BL     sub_ff8b1510\n" 
     370        "LDR    r2, [sp, #8]\n" 
     371        "ADD    r1, sp, #12\n"  // 0xc 
     372        "MOV    r0, r4\n" 
     373        "BL     sub_ff95f540\n" 
     374        "B      loc_ff95f278\n" 
    375375"loc_ff95f29c:\n" 
    376         "ldr    r1, =0x00000429\n" // was: "[pc, #208]  ; ff95f374"  
    377         "ldr    r0, =0xff95ef18\n" // was: "sub r0, pc, #912"   *"SsCaptureSeq.c" 
    378         "bl     sub_ff81eb14\n" 
     376        "LDR    r1, =0x00000429\n" // was: "[pc, #208]  ; ff95f374"  
     377        "LDR    r0, =0xff95ef18\n" // was: "sub r0, pc, #912"   *"SsCaptureSeq.c" 
     378        "BL     sub_ff81eb14\n" 
    379379"loc_ff95f2a8:\n" 
    380         "tst    r8, #1\n"       // 0x1 
    381         "movne  r0, r8\n" 
    382         "bne    loc_ff95f32c\n" 
    383         "ldr    r0, =0xff95ed2c\n" // was: "[pc, #188]  ; ff95f378"  
    384         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
    385         "bl     sub_ff8b14e0\n" 
    386         "ldrh   r0, [r7]\n" 
    387         "sub    ip, r0, #32768\n"       // 0x8000 
    388         "subs   ip, ip, #524\n" // 0x20c 
    389         "bleq   sub_ff89d470\n" 
    390         "ldr    r2, =0x000067c4\n" // was: "[pc, #164]  ; ff95f37c"  
    391         "ldr    r0, [r4, #24]\n" 
    392         "ldr    r3, =0x4\n" // was: "mov ..., #4" 
    393         "ldr    r1, =0x45\n" // was: "mov ..., #69" 
    394         "bl     sub_ff88c728\n" 
    395         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    396         "bl     sub_ff929534\n" 
    397         "str    r0, [r4, #216]\n" 
    398         "bl     sub_ff87ce94\n" 
    399         "bl     sub_ff96009c\n" 
    400         "ldr    r5, =0x0000044c\n" // was: "[pc, #128]  ; ff95f380"  
    401         "ldr    r2, =0x00003a98\n" // was: "[pc, #-988] ; ff95ef28"  
    402         "ldr    r3, =0xff95ef18\n" // was: "sub r3, pc, #1008"   *"SsCaptureSeq.c" 
    403         "ldr    r1, =0x4\n" // was: "mov ..., #4" 
    404         "str    r5, [sp]\n" 
    405         "bl     sub_ff87f4f0\n" 
    406         "cmp    r0, #0\n"       // 0x0 
    407         "ldrne  r0, =0xff95ef18\n" // was: "[pc, #104]  ; ff95f384"  **"SsCaptureSeq.c" 
    408         "movne  r1, r5\n" 
    409         "blne   sub_ff81eb14\n" 
    410         "ldrh   r0, [sp, #12]\n" 
    411         "strh   r0, [r4, #20]\n" 
    412         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
     380        "TST    r8, #1\n"       // 0x1 
     381        "MOVNE  r0, r8\n" 
     382        "BNE    loc_ff95f32c\n" 
     383        "LDR    r0, =0xff95ed2c\n" // was: "[pc, #188]  ; ff95f378"  
     384        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
     385        "BL     sub_ff8b14e0\n" 
     386        "LDRH   r0, [r7]\n" 
     387        "SUB    ip, r0, #32768\n"       // 0x8000 
     388        "SUBS   ip, ip, #524\n" // 0x20c 
     389        "BLEQ   sub_ff89d470\n" 
     390        "LDR    r2, =0x000067c4\n" // was: "[pc, #164]  ; ff95f37c"  
     391        "LDR    r0, [r4, #24]\n" 
     392        "LDR    r3, =0x4\n" // was: "mov ..., #4" 
     393        "LDR    r1, =0x45\n" // was: "mov ..., #69" 
     394        "BL     sub_ff88c728\n" 
     395        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     396        "BL     sub_ff929534\n" 
     397        "STR    r0, [r4, #216]\n" 
     398        "BL     sub_ff87ce94\n" 
     399        "BL     sub_ff96009c\n" 
     400        "LDR    r5, =0x0000044c\n" // was: "[pc, #128]  ; ff95f380"  
     401        "LDR    r2, =0x00003a98\n" // was: "[pc, #-988] ; ff95ef28"  
     402        "LDR    r3, =0xff95ef18\n" // was: "sub r3, pc, #1008"   *"SsCaptureSeq.c" 
     403        "LDR    r1, =0x4\n" // was: "mov ..., #4" 
     404        "STR    r5, [sp]\n" 
     405        "BL     sub_ff87f4f0\n" 
     406        "CMP    r0, #0\n"       // 0x0 
     407        "LDRNE  r0, =0xff95ef18\n" // was: "[pc, #104]  ; ff95f384"  **"SsCaptureSeq.c" 
     408        "MOVNE  r1, r5\n" 
     409        "BLNE   sub_ff81eb14\n" 
     410        "LDRH   r0, [sp, #12]\n" 
     411        "STRH   r0, [r4, #20]\n" 
     412        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
    413413"loc_ff95f32c:\n" 
    414         "add    sp, sp, #16\n"  // 0x10 
    415         "pop    {r4, r5, r6, r7, r8, pc}\n" 
     414        "ADD    sp, sp, #16\n"  // 0x10 
     415        "POP    {r4, r5, r6, r7, r8, pc}\n" 
    416416*/ 
    417417    ); 
     
    420420void __attribute__((naked,noinline)) sub_ff87a714_my() { // FF87A6C4 
    421421  asm volatile (  
    422         "push   {r4, r5, r6, lr}\n" 
    423         "ldr    r4, [r0, #12]\n" 
    424         "ldr    r6, =0x00039644\n" // was: "[pc, #-2132]        ; ff879ed0"  
    425         "ldr    r0, [r4, #8]\n" 
    426         "ldr    r5, =0x0\n" // was: "mov ..., #0" 
    427         "orr    r0, r0, #1\n"   // 0x1 
    428         "str    r0, [r4, #8]\n" 
    429         "ldr    r0, [r6, #36]\n" 
    430         "cmp    r0, #0\n"       // 0x0 
    431         "ldreq  r0, =0x2\n" // was: "mov ..., #2" 
    432         "bleq   sub_FF876718\n" 
    433         "bl     sub_FF87AC40\n" 
    434         "ldr    r0, [r6, #36]\n" 
    435         "cmp    r0, #0\n"       // 0x0 
    436         "bne    loc_FF87A78C\n"  
    437         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    438         "bl     sub_FF95FCE0\n"  
    439         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    440         "bl     sub_FF95FE14\n"  
    441         "mov    r0, r4\n" 
    442         "bl     sub_FF87B014\n"  
    443         "mov    r0, r4\n" 
    444         "bl     sub_FF95DC80\n"  
    445         "cmp    r0, #0\n"       // 0x0 
    446         "beq    loc_FF87A754\n"  
    447         "bl     sub_FF95FD20\n"  
    448         "bl     sub_FF95FE58\n"  
    449         "bl     sub_FF95FEA8\n"  
    450         "mov    r0, r4\n" 
    451         "bl     sub_FF95DD64\n"  
    452         "tst    r0, #1\n"       // 0x1 
    453         "movne  r2, r4\n" 
    454         "popne  {r4, r5, r6, lr}\n" 
    455         "ldrne  r1, =0x1\n" // was: "mov ..., #1" 
    456         "bne    sub_FF87851C\n" 
    457         "b      loc_FF87A768\n" 
     422        "PUSH   {r4, r5, r6, lr}\n" 
     423        "LDR    r4, [r0, #12]\n" 
     424        "LDR    r6, =0x00039644\n" // was: "[pc, #-2132]        ; ff879ed0"  
     425        "LDR    r0, [r4, #8]\n" 
     426        "LDR    r5, =0x0\n" // was: "mov ..., #0" 
     427        "ORR    r0, r0, #1\n"   // 0x1 
     428        "STR    r0, [r4, #8]\n" 
     429        "LDR    r0, [r6, #36]\n" 
     430        "CMP    r0, #0\n"       // 0x0 
     431        "LDREQ  r0, =0x2\n" // was: "mov ..., #2" 
     432        "BLEQ   sub_FF876718\n" 
     433        "BL     sub_FF87AC40\n" 
     434        "LDR    r0, [r6, #36]\n" 
     435        "CMP    r0, #0\n"       // 0x0 
     436        "BNE    loc_FF87A78C\n"  
     437        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     438        "BL     sub_FF95FCE0\n"  
     439        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     440        "BL     sub_FF95FE14\n"  
     441        "MOV    r0, r4\n" 
     442        "BL     sub_FF87B014\n"  
     443        "MOV    r0, r4\n" 
     444        "BL     sub_FF95DC80\n"  
     445        "CMP    r0, #0\n"       // 0x0 
     446        "BEQ    loc_FF87A754\n"  
     447        "BL     sub_FF95FD20\n"  
     448        "BL     sub_FF95FE58\n"  
     449        "BL     sub_FF95FEA8\n"  
     450        "MOV    r0, r4\n" 
     451        "BL     sub_FF95DD64\n"  
     452        "TST    r0, #1\n"       // 0x1 
     453        "MOVNE  r2, r4\n" 
     454        "POPNE  {r4, r5, r6, lr}\n" 
     455        "LDRNE  r1, =0x1\n" // was: "mov ..., #1" 
     456        "BNE    sub_FF87851C\n" 
     457        "B      loc_FF87A768\n" 
    458458"loc_FF87A754:\n" //WAS ff87a7a4 
    459         "mov    r0, r4\n" 
    460         "bl     sub_FF95DD00\n" 
    461         "bl     sub_FF95FD20\n" 
    462         "bl     sub_FF95FE58\n" 
    463         "bl     sub_FF95FEA8\n" 
     459        "MOV    r0, r4\n" 
     460        "BL     sub_FF95DD00\n" 
     461        "BL     sub_FF95FD20\n" 
     462        "BL     sub_FF95FE58\n" 
     463        "BL     sub_FF95FEA8\n" 
    464464"loc_FF87A768:\n" 
    465         "mov    r0, r4\n" 
    466         "bl     sub_FF879DD4\n" 
    467         "mov    r0, r4\n" 
    468         "bl     sub_FF95EF80\n" 
    469         "bl     sub_FF95FABC\n" 
    470         "mov    r0, r4\n" 
    471         //"bl   sub_ff95f120\n" 
    472         "bl     sub_ff95f120_my\n" 
    473         "mov    r5, r0\n" 
    474         "bl     capt_seq_hook_raw_here\n" // added (sx210is) 
    475         "b      loc_FF87A79C\n" 
     465        "MOV    r0, r4\n" 
     466        "BL     sub_FF879DD4\n" 
     467        "MOV    r0, r4\n" 
     468        "BL     sub_FF95EF80\n" 
     469        "BL     sub_FF95FABC\n" 
     470        "MOV    r0, r4\n" 
     471        //"BL   sub_ff95f120\n" 
     472        "BL     sub_ff95f120_my\n" 
     473        "MOV    r5, r0\n" 
     474        "BL     capt_seq_hook_raw_here\n" // added (sx210is) 
     475        "B      loc_FF87A79C\n" 
    476476"loc_FF87A78C:\n" 
    477         "ldr    r0, =0x00002b9c\n" // was: "[pc, #-2376]        ; ff879e9c"  
    478         "ldr    r0, [r0, #16]\n" 
    479         "cmp    r0, #0\n"       // 0x0 
    480         "ldrne  r5, =0x1d\n" // was: "mov ..., #29" 
     477        "LDR    r0, =0x00002b9c\n" // was: "[pc, #-2376]        ; ff879e9c"  
     478        "LDR    r0, [r0, #16]\n" 
     479        "CMP    r0, #0\n"       // 0x0 
     480        "LDRNE  r5, =0x1d\n" // was: "mov ..., #29" 
    481481"loc_FF87A79C:\n" 
    482         "bl     sub_FF87D7B4\n" 
    483         "bl     sub_FF87D7FC\n" 
    484         "bl     sub_FF87D83C\n" 
    485         "mov    r2, r4\n" 
    486         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    487         "mov    r0, r5\n" 
    488         "bl     sub_FF87851C\n" 
    489         "bl     sub_FF95F2D0\n" 
    490         "cmp    r0, #0\n"       // 0x0 
    491         "ldrne  r0, [r4, #8]\n" 
    492         "orrne  r0, r0, #8192\n"        // 0x2000 
    493         "strne  r0, [r4, #8]\n" 
    494         "pop    {r4, r5, r6, pc}\n" 
     482        "BL     sub_FF87D7B4\n" 
     483        "BL     sub_FF87D7FC\n" 
     484        "BL     sub_FF87D83C\n" 
     485        "MOV    r2, r4\n" 
     486        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     487        "MOV    r0, r5\n" 
     488        "BL     sub_FF87851C\n" 
     489        "BL     sub_FF95F2D0\n" 
     490        "CMP    r0, #0\n"       // 0x0 
     491        "LDRNE  r0, [r4, #8]\n" 
     492        "ORRNE  r0, r0, #8192\n"        // 0x2000 
     493        "STRNE  r0, [r4, #8]\n" 
     494        "POP    {r4, r5, r6, pc}\n" 
    495495    ); 
    496496} 
     
    500500void __attribute__((naked,noinline)) exp_drv_task() { // was FF8C25DC 
    501501  asm volatile ( //FF8BAAD8 
    502         "push   {r4, r5, r6, r7, r8, lr}\n" 
    503         "sub    sp, sp, #32\n"  // 0x20 
    504         "ldr    r8, =0x00000bb8\n" // was: "[pc, #-908] ; ff8ba7ac"  
    505         "ldr    r7, =0x00003f58\n" // was: "[pc, #2736] ; ff8bb5ec"  
    506         "ldr    r5, =0x00042ab0\n" // was: "[pc, #2764] ; ff8bb60c"  
    507         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    508         "add    r6, sp, #16\n"  // 0x10 
    509         "str    r0, [sp, #12]\n" 
     502        "PUSH   {r4, r5, r6, r7, r8, lr}\n" 
     503        "SUB    sp, sp, #32\n"  // 0x20 
     504        "LDR    r8, =0x00000bb8\n" // was: "[pc, #-908] ; ff8ba7ac"  
     505        "LDR    r7, =0x00003f58\n" // was: "[pc, #2736] ; ff8bb5ec"  
     506        "LDR    r5, =0x00042ab0\n" // was: "[pc, #2764] ; ff8bb60c"  
     507        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     508        "ADD    r6, sp, #16\n"  // 0x10 
     509        "STR    r0, [sp, #12]\n" 
    510510"loc_FF8BAAF8:\n" 
    511         "ldr    r0, [r7, #32]\n" 
    512         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
    513         "add    r1, sp, #28\n"  // 0x1c 
    514         "bl     sub_FF8396E4\n" 
    515         "ldr    r0, [sp, #12]\n" 
    516         "cmp    r0, #1\n"       // 0x1 
    517         "bne    loc_FF8BAB44\n" 
    518         "ldr    r0, [sp, #28]\n" 
    519         "ldr    r0, [r0]\n" 
    520         "cmp    r0, #19\n"      // 0x13 
    521         "cmpne  r0, #20\n"      // 0x14 
    522         "cmpne  r0, #21\n"      // 0x15 
    523         "cmpne  r0, #22\n"      // 0x16 
    524         "beq    loc_FF8BACA8\n" 
    525         "cmp    r0, #40\n"      // 0x28 
    526         "beq    loc_FF8BAC30\n" 
    527         "add    r1, sp, #12\n"  // 0xc 
    528         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    529         "bl     sub_FF8BAA88\n" 
     511        "LDR    r0, [r7, #32]\n" 
     512        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
     513        "ADD    r1, sp, #28\n"  // 0x1c 
     514        "BL     sub_FF8396E4\n" 
     515        "LDR    r0, [sp, #12]\n" 
     516        "CMP    r0, #1\n"       // 0x1 
     517        "BNE    loc_FF8BAB44\n" 
     518        "LDR    r0, [sp, #28]\n" 
     519        "LDR    r0, [r0]\n" 
     520        "CMP    r0, #19\n"      // 0x13 
     521        "CMPNE  r0, #20\n"      // 0x14 
     522        "CMPNE  r0, #21\n"      // 0x15 
     523        "CMPNE  r0, #22\n"      // 0x16 
     524        "BEQ    loc_FF8BACA8\n" 
     525        "CMP    r0, #40\n"      // 0x28 
     526        "BEQ    loc_FF8BAC30\n" 
     527        "ADD    r1, sp, #12\n"  // 0xc 
     528        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     529        "BL     sub_FF8BAA88\n" 
    530530"loc_FF8BAB44:\n" 
    531         "ldr    r0, [sp, #28]\n" 
    532         "ldr    r1, [r0]\n" 
    533         "cmp    r1, #46\n"      // 0x2e 
    534         "bne    loc_FF8BAB74\n" 
    535         "ldr    r0, [sp, #28]\n" 
    536         "bl     sub_ff8bbe38\n" 
    537         "ldr    r0, [r7, #28]\n" 
    538         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    539         "bl     sub_FF883F4C\n" 
    540         "bl     sub_ff81eacc\n" // eventproc_export_ExitTask() 
    541         "add    sp, sp, #32\n"  // 0x20 
    542         "pop    {r4, r5, r6, r7, r8, pc}\n" 
     531        "LDR    r0, [sp, #28]\n" 
     532        "LDR    r1, [r0]\n" 
     533        "CMP    r1, #46\n"      // 0x2e 
     534        "BNE    loc_FF8BAB74\n" 
     535        "LDR    r0, [sp, #28]\n" 
     536        "BL     sub_ff8bbe38\n" 
     537        "LDR    r0, [r7, #28]\n" 
     538        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     539        "BL     sub_FF883F4C\n" 
     540        "BL     sub_ff81eacc\n" // eventproc_export_ExitTask() 
     541        "ADD    sp, sp, #32\n"  // 0x20 
     542        "POP    {r4, r5, r6, r7, r8, pc}\n" 
    543543"loc_FF8BAB74:\n" 
    544         "cmp    r1, #45\n"      // 0x2d 
    545         "bne    loc_FF8BAB90\n" 
    546         "ldr    r2, [r0, #140]!\n" 
    547         "ldr    r1, [r0, #4]\n" 
    548         "mov    r0, r1\n" 
    549         "blx    r2\n" 
    550         "b      loc_FF8BB0D0\n" 
     544        "CMP    r1, #45\n"      // 0x2d 
     545        "BNE    loc_FF8BAB90\n" 
     546        "LDR    r2, [r0, #140]!\n" 
     547        "LDR    r1, [r0, #4]\n" 
     548        "MOV    r0, r1\n" 
     549        "BLX    r2\n" 
     550        "B      loc_FF8BB0D0\n" 
    551551"loc_FF8BAB90:\n" 
    552         "cmp    r1, #38\n"      // 0x26 
    553         "bne    loc_FF8BABE0\n" 
    554         "ldr    r0, [r7, #28]\n" 
    555         "ldr    r1, =0x80\n" // was: "mov ..., #128" 
    556         "bl     sub_FF883F80\n" 
    557         "ldr    r0, =0xFF8B71EC\n" // was: "[pc, #2580] ; ff8bb610"   
    558         "ldr    r1, =0x80\n" // was: "mov ..., #128" 
    559         "bl     sub_FF952E50\n"  
    560         "ldr    r0, [r7, #28]\n" 
    561         "mov    r2, r8\n" 
    562         "ldr    r1, =0x80\n" // was: "mov ..., #128" 
    563         "bl     sub_FF883E8C\n" 
    564         "tst    r0, #1\n"       // 0x1 
    565         "ldrne  r1, =0x00000e5f\n" // was: "[pc, #2552] ; ff8bb614"  
    566         "bne    loc_FF8BAC9C\n" 
     552        "CMP    r1, #38\n"      // 0x26 
     553        "BNE    loc_FF8BABE0\n" 
     554        "LDR    r0, [r7, #28]\n" 
     555        "LDR    r1, =0x80\n" // was: "mov ..., #128" 
     556        "BL     sub_FF883F80\n" 
     557        "LDR    r0, =0xFF8B71EC\n" // was: "[pc, #2580] ; ff8bb610"   
     558        "LDR    r1, =0x80\n" // was: "mov ..., #128" 
     559        "BL     sub_FF952E50\n"  
     560        "LDR    r0, [r7, #28]\n" 
     561        "MOV    r2, r8\n" 
     562        "LDR    r1, =0x80\n" // was: "mov ..., #128" 
     563        "BL     sub_FF883E8C\n" 
     564        "TST    r0, #1\n"       // 0x1 
     565        "LDRNE  r1, =0x00000e5f\n" // was: "[pc, #2552] ; ff8bb614"  
     566        "BNE    loc_FF8BAC9C\n" 
    567567"loc_FF8BABCC:\n" // 5 refs 
    568         "ldr    r1, [sp, #28]\n" 
    569         "ldr    r0, [r1, #144]\n" 
    570         "ldr    r1, [r1, #140]\n" 
    571         "blx    r1\n" 
    572         "b      loc_FF8BB0D0\n" 
     568        "LDR    r1, [sp, #28]\n" 
     569        "LDR    r0, [r1, #144]\n" 
     570        "LDR    r1, [r1, #140]\n" 
     571        "BLX    r1\n" 
     572        "B      loc_FF8BB0D0\n" 
    573573"loc_FF8BABE0:\n" 
    574         "cmp    r1, #39\n"      // 0x27 
    575         "bne    loc_FF8BAC28\n" 
    576         "add    r1, sp, #12\n"  // 0xc 
    577         "bl     sub_FF8BAA88\n" 
    578         "ldr    r0, [r7, #28]\n" 
    579         "ldr    r1, =0x100\n" // was: "mov ..., #256" 
    580         "bl     sub_FF883F80\n" 
    581         "ldr    r0, =0xFF8B71FC\n" // was: "[pc, #2500] ; ff8bb618"  
    582         "ldr    r1, =0x100\n" // was: "mov ..., #256" 
    583         "bl     sub_FF9530D8\n" 
    584         "ldr    r0, [r7, #28]\n" 
    585         "mov    r2, r8\n" 
    586         "ldr    r1, =0x100\n" // was: "mov ..., #256" 
    587         "bl     sub_FF883E8C\n" 
    588         "tst    r0, #1\n"       // 0x1 
    589         "beq    loc_FF8BABCC\n" 
    590         "ldr    r1, =0x00000e69\n" // was: "[pc, #2468] ; ff8bb61c"  
    591         "b      loc_FF8BAC9C\n" 
     574        "CMP    r1, #39\n"      // 0x27 
     575        "BNE    loc_FF8BAC28\n" 
     576        "ADD    r1, sp, #12\n"  // 0xc 
     577        "BL     sub_FF8BAA88\n" 
     578        "LDR    r0, [r7, #28]\n" 
     579        "LDR    r1, =0x100\n" // was: "mov ..., #256" 
     580        "BL     sub_FF883F80\n" 
     581        "LDR    r0, =0xFF8B71FC\n" // was: "[pc, #2500] ; ff8bb618"  
     582        "LDR    r1, =0x100\n" // was: "mov ..., #256" 
     583        "BL     sub_FF9530D8\n" 
     584        "LDR    r0, [r7, #28]\n" 
     585        "MOV    r2, r8\n" 
     586        "LDR    r1, =0x100\n" // was: "mov ..., #256" 
     587        "BL     sub_FF883E8C\n" 
     588        "TST    r0, #1\n"       // 0x1 
     589        "BEQ    loc_FF8BABCC\n" 
     590        "LDR    r1, =0x00000e69\n" // was: "[pc, #2468] ; ff8bb61c"  
     591        "B      loc_FF8BAC9C\n" 
    592592"loc_FF8BAC28:\n" 
    593         "cmp    r1, #40\n"      // 0x28 
    594         "bne    loc_FF8BAC40\n" 
     593        "CMP    r1, #40\n"      // 0x28 
     594        "BNE    loc_FF8BAC40\n" 
    595595"loc_FF8BAC30:\n" 
    596         "ldr    r0, [sp, #28]\n" 
    597         "add    r1, sp, #12\n"  // 0xc 
    598         "bl     sub_FF8BAA88\n" 
    599         "b      loc_FF8BABCC\n" //WAS ff8bac1c 
     596        "LDR    r0, [sp, #28]\n" 
     597        "ADD    r1, sp, #12\n"  // 0xc 
     598        "BL     sub_FF8BAA88\n" 
     599        "B      loc_FF8BABCC\n" //WAS ff8bac1c 
    600600"loc_FF8BAC40:\n" //WSA ff8bac90 
    601         "cmp    r1, #43\n"      // 0x2b 
    602         "bne    loc_FF8BAC58\n" 
    603         "bl     sub_FF8AA368\n" 
    604         "bl     sub_FF8AAF9C\n" 
    605         "bl     sub_FF8AAAEC\n" 
    606         "b      loc_FF8BABCC\n" 
     601        "CMP    r1, #43\n"      // 0x2b 
     602        "BNE    loc_FF8BAC58\n" 
     603        "BL     sub_FF8AA368\n" 
     604        "BL     sub_FF8AAF9C\n" 
     605        "BL     sub_FF8AAAEC\n" 
     606        "B      loc_FF8BABCC\n" 
    607607"loc_FF8BAC58:\n" 
    608         "cmp    r1, #44\n"      // 0x2c 
    609         "bne    loc_FF8BACA8\n" 
    610         "ldr    r0, [r7, #28]\n" 
    611         "ldr    r1, =0x4\n" // was: "mov ..., #4" 
    612         "bl     sub_FF883F80\n" 
    613         "ldr    r1, =0xFF8B721C\n" // was: "[pc, #-1252]        ; ff8ba7e0" 
    614         "ldr    r0, =0xfffff400\n" // was: "[pc, #-1252]        ; ff8ba7e4"  
    615         "ldr    r2, =0x4\n" // was: "mov ..., #4" 
    616         "bl     sub_FF8A9DE4\n" //WAS ff8a9e34 
    617         "bl     sub_FF8AA06C\n" //WAS ff8aa0bc 
    618         "ldr    r0, [r7, #28]\n" 
    619         "mov    r2, r8\n" 
    620         "ldr    r1, =0x4\n" // was: "mov ..., #4" 
    621         "bl     sub_FF883DA8\n" //WAS ff883df8 
    622         "tst    r0, #1\n"       // 0x1 
    623         "beq    loc_FF8BABCC\n" //ff8bac1c 
    624         "ldr    r1, =0x00000e91\n" // was: "[pc, #2352] ; ff8bb620"  
     608        "CMP    r1, #44\n"      // 0x2c 
     609        "BNE    loc_FF8BACA8\n" 
     610        "LDR    r0, [r7, #28]\n" 
     611        "LDR    r1, =0x4\n" // was: "mov ..., #4" 
     612        "BL     sub_FF883F80\n" 
     613        "LDR    r1, =0xFF8B721C\n" // was: "[pc, #-1252]        ; ff8ba7e0" 
     614        "LDR    r0, =0xfffff400\n" // was: "[pc, #-1252]        ; ff8ba7e4"  
     615        "LDR    r2, =0x4\n" // was: "mov ..., #4" 
     616        "BL     sub_FF8A9DE4\n" //WAS ff8a9e34 
     617        "BL     sub_FF8AA06C\n" //WAS ff8aa0bc 
     618        "LDR    r0, [r7, #28]\n" 
     619        "MOV    r2, r8\n" 
     620        "LDR    r1, =0x4\n" // was: "mov ..., #4" 
     621        "BL     sub_FF883DA8\n" //WAS ff883df8 
     622        "TST    r0, #1\n"       // 0x1 
     623        "BEQ    loc_FF8BABCC\n" //ff8bac1c 
     624        "LDR    r1, =0x00000e91\n" // was: "[pc, #2352] ; ff8bb620"  
    625625"loc_FF8BAC9C:\n" // 2 refs WSA ff8bacec 
    626         "ldr    r0, =0xff8b78ac\n" // was: "[pc, #-1344]        ; ff8ba7b4"  **"ExpDrv.c" 
    627         "bl     sub_ff81eb14\n" 
    628         "b      loc_FF8BABCC\n" 
     626        "LDR    r0, =0xff8b78ac\n" // was: "[pc, #-1344]        ; ff8ba7b4"  **"ExpDrv.c" 
     627        "BL     sub_ff81eb14\n" 
     628        "B      loc_FF8BABCC\n" 
    629629"loc_FF8BACA8:\n" // 2 refs 
    630         "ldr    r0, [sp, #28]\n" 
    631         "ldr    r4, =0x1\n" // was: "mov ..., #1" 
    632         "ldr    r1, [r0]\n" 
    633         "cmp    r1, #17\n"      // 0x11 
    634         "cmpne  r1, #18\n"      // 0x12 
    635         "bne    loc_FF8BAD18\n" 
    636         "ldr    r1, [r0, #124]\n" 
    637         "add    r1, r1, r1, lsl #1\n" 
    638         "add    r1, r0, r1, lsl #2\n" 
    639         "sub    r1, r1, #8\n"   // 0x8 
    640         "ldm    r1, {r2, r3, r4}\n" 
    641         "stm    r6, {r2, r3, r4}\n" 
    642         "bl     sub_FF8B93AC\n" 
    643         "ldr    r0, [sp, #28]\n" 
    644         "ldr    r1, [r0, #124]\n" 
    645         "ldr    r3, [r0, #140]\n" 
    646         "ldr    r2, [r0, #144]\n" 
    647         "add    r0, r0, #4\n"   // 0x4 
    648         "blx    r3\n" 
    649         "ldr    r0, [sp, #28]\n" 
    650         "bl     sub_FF8BC1AC\n" 
    651         "ldr    r0, [sp, #28]\n" 
    652         "ldr    r1, [r0, #124]\n" 
    653         "ldr    r3, [r0, #148]\n" 
    654         "ldr    r2, [r0, #152]\n" 
    655         "add    r0, r0, #4\n"   // 0x4 
    656         "blx    r3\n" 
    657         "b      loc_FF8BB010\n" 
     630        "LDR    r0, [sp, #28]\n" 
     631        "LDR    r4, =0x1\n" // was: "mov ..., #1" 
     632        "LDR    r1, [r0]\n" 
     633        "CMP    r1, #17\n"      // 0x11 
     634        "CMPNE  r1, #18\n"      // 0x12 
     635        "BNE    loc_FF8BAD18\n" 
     636        "LDR    r1, [r0, #124]\n" 
     637        "ADD    r1, r1, r1, lsl #1\n" 
     638        "ADD    r1, r0, r1, lsl #2\n" 
     639        "SUB    r1, r1, #8\n"   // 0x8 
     640        "LDM    r1, {r2, r3, r4}\n" 
     641        "STM    r6, {r2, r3, r4}\n" 
     642        "BL     sub_FF8B93AC\n" 
     643        "LDR    r0, [sp, #28]\n" 
     644        "LDR    r1, [r0, #124]\n" 
     645        "LDR    r3, [r0, #140]\n" 
     646        "LDR    r2, [r0, #144]\n" 
     647        "ADD    r0, r0, #4\n"   // 0x4 
     648        "BLX    r3\n" 
     649        "LDR    r0, [sp, #28]\n" 
     650        "BL     sub_FF8BC1AC\n" 
     651        "LDR    r0, [sp, #28]\n" 
     652        "LDR    r1, [r0, #124]\n" 
     653        "LDR    r3, [r0, #148]\n" 
     654        "LDR    r2, [r0, #152]\n" 
     655        "ADD    r0, r0, #4\n"   // 0x4 
     656        "BLX    r3\n" 
     657        "B      loc_FF8BB010\n" 
    658658"loc_FF8BAD18:\n" 
    659         "cmp    r1, #19\n"      // 0x13 
    660         "cmpne  r1, #20\n"      // 0x14 
    661         "cmpne  r1, #21\n"      // 0x15 
    662         "cmpne  r1, #22\n"      // 0x16 
    663         "bne    loc_FF8BADD0\n" 
    664         "add    r3, sp, #12\n"  // 0xc 
    665         "mov    r2, sp\n" 
    666         "add    r1, sp, #16\n"  // 0x10 
    667         "bl     sub_FF8B9688\n" 
    668         "cmp    r0, #1\n"       // 0x1 
    669         "mov    r4, r0\n" 
    670         "cmpne  r4, #5\n"       // 0x5 
    671         "bne    loc_FF8BAD6C\n" 
    672         "ldr    r0, [sp, #28]\n" 
    673         "mov    r2, r4\n" 
    674         "ldr    r1, [r0, #124]!\n" 
    675         "ldr    ip, [r0, #16]!\n" 
    676         "ldr    r3, [r0, #4]\n" 
    677         "mov    r0, sp\n" 
    678         "blx    ip\n" 
    679         "b      loc_FF8BADA4\n" 
     659        "CMP    r1, #19\n"      // 0x13 
     660        "CMPNE  r1, #20\n"      // 0x14 
     661        "CMPNE  r1, #21\n"      // 0x15 
     662        "CMPNE  r1, #22\n"      // 0x16 
     663        "BNE    loc_FF8BADD0\n" 
     664        "ADD    r3, sp, #12\n"  // 0xc 
     665        "MOV    r2, sp\n" 
     666        "ADD    r1, sp, #16\n"  // 0x10 
     667        "BL     sub_FF8B9688\n" 
     668        "CMP    r0, #1\n"       // 0x1 
     669        "MOV    r4, r0\n" 
     670        "CMPNE  r4, #5\n"       // 0x5 
     671        "BNE    loc_FF8BAD6C\n" 
     672        "LDR    r0, [sp, #28]\n" 
     673        "MOV    r2, r4\n" 
     674        "LDR    r1, [r0, #124]!\n" 
     675        "LDR    ip, [r0, #16]!\n" 
     676        "LDR    r3, [r0, #4]\n" 
     677        "MOV    r0, sp\n" 
     678        "BLX    ip\n" 
     679        "B      loc_FF8BADA4\n" 
    680680"loc_FF8BAD6C:\n" 
    681         "ldr    r0, [sp, #28]\n" 
    682         "cmp    r4, #2\n"       // 0x2 
    683         "ldr    r3, [r0, #144]\n" 
    684         "cmpne  r4, #6\n"       // 0x6 
    685         "bne    loc_FF8BADB8\n" 
    686         "ldr    ip, [r0, #140]\n" 
    687         "mov    r0, sp\n" 
    688         "mov    r2, r4\n" 
    689         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    690         "blx    ip\n" 
    691         "ldr    r0, [sp, #28]\n" 
    692         "mov    r2, sp\n" 
    693         "add    r1, sp, #16\n"  // 0x10 
    694         "bl     sub_FF8BA79C\n" 
     681        "LDR    r0, [sp, #28]\n" 
     682        "CMP    r4, #2\n"       // 0x2 
     683        "LDR    r3, [r0, #144]\n" 
     684        "CMPNE  r4, #6\n"       // 0x6 
     685        "BNE    loc_FF8BADB8\n" 
     686        "LDR    ip, [r0, #140]\n" 
     687        "MOV    r0, sp\n" 
     688        "MOV    r2, r4\n" 
     689        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     690        "BLX    ip\n" 
     691        "LDR    r0, [sp, #28]\n" 
     692        "MOV    r2, sp\n" 
     693        "ADD    r1, sp, #16\n"  // 0x10 
     694        "BL     sub_FF8BA79C\n" 
    695695"loc_FF8BADA4:\n" 
    696         "ldr    r0, [sp, #28]\n" 
    697         "ldr    r2, [sp, #12]\n" 
    698         "mov    r1, r4\n" 
    699         "bl     sub_FF8BAA28\n" 
    700         "b      loc_FF8BB010\n" 
     696        "LDR    r0, [sp, #28]\n" 
     697        "LDR    r2, [sp, #12]\n" 
     698        "MOV    r1, r4\n" 
     699        "BL     sub_FF8BAA28\n" 
     700        "B      loc_FF8BB010\n" 
    701701"loc_FF8BADB8:\n" 
    702         "ldr    r1, [r0, #124]\n" 
    703         "ldr    ip, [r0, #140]\n" 
    704         "add    r0, r0, #4\n"   // 0x4 
    705         "mov    r2, r4\n" 
    706         "blx    ip\n" 
    707         "b      loc_FF8BB010\n" 
     702        "LDR    r1, [r0, #124]\n" 
     703        "LDR    ip, [r0, #140]\n" 
     704        "ADD    r0, r0, #4\n"   // 0x4 
     705        "MOV    r2, r4\n" 
     706        "BLX    ip\n" 
     707        "B      loc_FF8BB010\n" 
    708708"loc_FF8BADD0:\n" 
    709         "cmp    r1, #34\n"      // 0x22 
    710         "cmpne  r1, #35\n"      // 0x23 
    711         "bne    loc_FF8BAE1C\n" 
    712         "ldr    r1, [r0, #124]\n" 
    713         "add    r1, r1, r1, lsl #1\n" 
    714         "add    r1, r0, r1, lsl #2\n" 
    715         "sub    r1, r1, #8\n"   // 0x8 
    716         "ldm    r1, {r2, r3, r4}\n" 
    717         "stm    r6, {r2, r3, r4}\n" 
    718         "bl     sub_FF8B88FC\n" 
    719         "ldr    r0, [sp, #28]\n" 
    720         "ldr    r1, [r0, #124]\n" 
    721         "ldr    r3, [r0, #140]\n" 
    722         "ldr    r2, [r0, #144]\n" 
    723         "add    r0, r0, #4\n"   // 0x4 
    724         "blx    r3\n" 
    725         "ldr    r0, [sp, #28]\n" 
    726         "bl     sub_FF8B8BF0\n" 
    727         "b      loc_FF8BB010\n" 
     709        "CMP    r1, #34\n"      // 0x22 
     710        "CMPNE  r1, #35\n"      // 0x23 
     711        "BNE    loc_FF8BAE1C\n" 
     712        "LDR    r1, [r0, #124]\n" 
     713        "ADD    r1, r1, r1, lsl #1\n" 
     714        "ADD    r1, r0, r1, lsl #2\n" 
     715        "SUB    r1, r1, #8\n"   // 0x8 
     716        "LDM    r1, {r2, r3, r4}\n" 
     717        "STM    r6, {r2, r3, r4}\n" 
     718        "BL     sub_FF8B88FC\n" 
     719        "LDR    r0, [sp, #28]\n" 
     720        "LDR    r1, [r0, #124]\n" 
     721        "LDR    r3, [r0, #140]\n" 
     722        "LDR    r2, [r0, #144]\n" 
     723        "ADD    r0, r0, #4\n"   // 0x4 
     724        "BLX    r3\n" 
     725        "LDR    r0, [sp, #28]\n" 
     726        "BL     sub_FF8B8BF0\n" 
     727        "B      loc_FF8BB010\n" 
    728728"loc_FF8BAE1C:\n" 
    729         "add    r1, r0, #4\n"   // 0x4 
    730         "ldm    r1, {r2, r3, ip}\n" 
    731         "stm    r6, {r2, r3, ip}\n" 
    732         "ldr    r1, [r0]\n" 
    733         "cmp    r1, #37\n"      // 0x25 
    734         "addls  pc, pc, r1, lsl #2\n" 
    735         "b loc_FF8BAFF0\n" 
    736         "b  loc_FF8BAED0\n"  // 0 jump table start 
    737         "b  loc_FF8BAED0\n"   
    738         "b  loc_FF8BAED8\n"   
    739         "b  loc_FF8BAEE0\n"   
    740         "b  loc_FF8BAEE0\n"   
    741         "b  loc_FF8BAEE0\n"   
    742         "b  loc_FF8BAED0\n"   
    743         "b  loc_FF8BAED8\n"   
    744         "b  loc_FF8BAEE0\n"   
    745         "b  loc_FF8BAEE0\n"   
    746         "b  loc_FF8BAEF8\n"  // 10 
    747         "b  loc_FF8BAEF8\n"   
    748         "b  loc_FF8BAFE4\n"   
    749         "b  loc_FF8BAFEC\n"   
    750         "b  loc_FF8BAFEC\n"   
    751         "b  loc_FF8BAFEC\n"   
    752         "b  loc_FF8BAFEC\n"   
    753         "b  loc_FF8BAFF0\n"   
    754         "b  loc_FF8BAFF0\n"   
    755         "b  loc_FF8BAFF0\n"   
    756         "b  loc_FF8BAFF0\n"  // 20 
    757         "b  loc_FF8BAFF0\n"   
    758         "b  loc_FF8BAFF0\n"   
    759         "b  loc_FF8BAEE8\n"   
    760         "b  loc_FF8BAEF0\n"   
    761         "b  loc_FF8BAEF0\n"   
    762         "b  loc_FF8BAF04\n"   
    763         "b  loc_FF8BAF04\n"   
    764         "b  loc_FF8BAF0C\n"   
    765         "b  loc_FF8BAF3C\n"   
    766         "b  loc_FF8BAF6C\n"  // 30 
    767         "b  loc_FF8BAF9C\n"   
    768         "b  loc_FF8BAFCC\n"   
    769         "b  loc_FF8BAFCC\n"   
    770         "b  loc_FF8BAFF0\n"   
    771         "b  loc_FF8BAFF0\n"   
    772         "b  loc_FF8BAFD4\n"   
    773         "b  loc_FF8BAFDC\n"  // 37 
     729        "ADD    r1, r0, #4\n"   // 0x4 
     730        "LDM    r1, {r2, r3, ip}\n" 
     731        "STM    r6, {r2, r3, ip}\n" 
     732        "LDR    r1, [r0]\n" 
     733        "CMP    r1, #37\n"      // 0x25 
     734        "ADDLS  pc, pc, r1, lsl #2\n" 
     735        "B loc_FF8BAFF0\n" 
     736        "B  loc_FF8BAED0\n"  // 0 jump table start 
     737        "B  loc_FF8BAED0\n"   
     738        "B  loc_FF8BAED8\n"   
     739        "B  loc_FF8BAEE0\n"   
     740        "B  loc_FF8BAEE0\n"   
     741        "B  loc_FF8BAEE0\n"   
     742        "B  loc_FF8BAED0\n"   
     743        "B  loc_FF8BAED8\n"   
     744        "B  loc_FF8BAEE0\n"   
     745        "B  loc_FF8BAEE0\n"   
     746        "B  loc_FF8BAEF8\n"  // 10 
     747        "B  loc_FF8BAEF8\n"   
     748        "B  loc_FF8BAFE4\n"   
     749        "B  loc_FF8BAFEC\n"   
     750        "B  loc_FF8BAFEC\n"   
     751        "B  loc_FF8BAFEC\n"   
     752        "B  loc_FF8BAFEC\n"   
     753        "B  loc_FF8BAFF0\n"   
     754        "B  loc_FF8BAFF0\n"   
     755        "B  loc_FF8BAFF0\n"   
     756        "B  loc_FF8BAFF0\n"  // 20 
     757        "B  loc_FF8BAFF0\n"   
     758        "B  loc_FF8BAFF0\n"   
     759        "B  loc_FF8BAEE8\n"   
     760        "B  loc_FF8BAEF0\n"   
     761        "B  loc_FF8BAEF0\n"   
     762        "B  loc_FF8BAF04\n"   
     763        "B  loc_FF8BAF04\n"   
     764        "B  loc_FF8BAF0C\n"   
     765        "B  loc_FF8BAF3C\n"   
     766        "B  loc_FF8BAF6C\n"  // 30 
     767        "B  loc_FF8BAF9C\n"   
     768        "B  loc_FF8BAFCC\n"   
     769        "B  loc_FF8BAFCC\n"   
     770        "B  loc_FF8BAFF0\n"   
     771        "B  loc_FF8BAFF0\n"   
     772        "B  loc_FF8BAFD4\n"   
     773        "B  loc_FF8BAFDC\n"  // 37 
    774774"loc_FF8BAED0:\n" // jump table entries 0, 1, 6 
    775         "bl     sub_FF8B7704\n"  
    776         "b      loc_FF8BAFF0\n"  
     775        "BL     sub_FF8B7704\n"  
     776        "B      loc_FF8BAFF0\n"  
    777777"loc_FF8BAED8:\n" // jump table entries 2, 7 
    778         "bl     sub_FF8B7988\n" 
    779         "b      loc_FF8BAFF0\n" 
     778        "BL     sub_FF8B7988\n" 
     779        "B      loc_FF8BAFF0\n" 
    780780"loc_FF8BAEE0:\n" // jump table entries 3, 4, 5, 8, 9 
    781         "bl     sub_FF8B7B90\n" 
    782         "b      loc_FF8BAFF0\n" 
     781        "BL     sub_FF8B7B90\n" 
     782        "B      loc_FF8BAFF0\n" 
    783783"loc_FF8BAEE8:\n" // jump table entry 23 
    784         "bl     sub_FF8B7E08\n" 
    785         "b      loc_FF8BAFF0\n" 
     784        "BL     sub_FF8B7E08\n" 
     785        "B      loc_FF8BAFF0\n" 
    786786"loc_FF8BAEF0:\n" // jump table entry 24, 25 
    787         "bl     sub_FF8B8000\n" 
    788         "b      loc_FF8BAFF0\n" 
     787        "BL     sub_FF8B8000\n" 
     788        "B      loc_FF8BAFF0\n" 
    789789"loc_FF8BAEF8:\n" // jump table entries 10, 11 
    790         "bl     sub_FF8B82BC\n" 
    791         "ldr    r4, =0x0\n" // was: "mov ..., #0" 
    792         "b      loc_FF8BAFF0\n" 
     790        "BL     sub_FF8B82BC\n" 
     791        "LDR    r4, =0x0\n" // was: "mov ..., #0" 
     792        "B      loc_FF8BAFF0\n" 
    793793"loc_FF8BAF04:\n" // jump table entry 26, 27 
    794         "bl     sub_FF8B83FC\n" 
    795         "b      loc_FF8BAFF0\n" 
     794        "BL     sub_FF8B83FC\n" 
     795        "B      loc_FF8BAFF0\n" 
    796796"loc_FF8BAF0C:\n" // jump table entry 28 
    797         "ldrh   r1, [r0, #4]\n" 
    798         "strh   r1, [sp, #16]\n" 
    799         "ldrh   r1, [r5, #2]\n" 
    800         "strh   r1, [sp, #18]\n" 
    801         "ldrh   r1, [r5, #4]\n" 
    802         "strh   r1, [sp, #20]\n" 
    803         "ldrh   r1, [r5, #6]\n" 
    804         "strh   r1, [sp, #22]\n" 
    805         "ldrh   r1, [r0, #12]\n" 
    806         "strh   r1, [sp, #24]\n" 
    807         "bl     sub_FF8BBE5C\n" 
    808         "b      loc_FF8BAFF0\n" 
     797        "LDRH   r1, [r0, #4]\n" 
     798        "STRH   r1, [sp, #16]\n" 
     799        "LDRH   r1, [r5, #2]\n" 
     800        "STRH   r1, [sp, #18]\n" 
     801        "LDRH   r1, [r5, #4]\n" 
     802        "STRH   r1, [sp, #20]\n" 
     803        "LDRH   r1, [r5, #6]\n" 
     804        "STRH   r1, [sp, #22]\n" 
     805        "LDRH   r1, [r0, #12]\n" 
     806        "STRH   r1, [sp, #24]\n" 
     807        "BL     sub_FF8BBE5C\n" 
     808        "B      loc_FF8BAFF0\n" 
    809809"loc_FF8BAF3C:\n" // jump table entry 29 
    810         "ldrh   r1, [r0, #4]\n" 
    811         "strh   r1, [sp, #16]\n" 
    812         "ldrh   r1, [r5, #2]\n" 
    813         "strh   r1, [sp, #18]\n" 
    814         "ldrh   r1, [r5, #4]\n" 
    815         "strh   r1, [sp, #20]\n" 
    816         "ldrh   r1, [r5, #6]\n" 
    817         "strh   r1, [sp, #22]\n" 
    818         "ldrh   r1, [r5, #8]\n" 
    819         "strh   r1, [sp, #24]\n" 
    820         "bl     sub_FF8BBFC4\n" 
    821         "b      loc_FF8BAFF0\n" 
     810        "LDRH   r1, [r0, #4]\n" 
     811        "STRH   r1, [sp, #16]\n" 
     812        "LDRH   r1, [r5, #2]\n" 
     813        "STRH   r1, [sp, #18]\n" 
     814        "LDRH   r1, [r5, #4]\n" 
     815        "STRH   r1, [sp, #20]\n" 
     816        "LDRH   r1, [r5, #6]\n" 
     817        "STRH   r1, [sp, #22]\n" 
     818        "LDRH   r1, [r5, #8]\n" 
     819        "STRH   r1, [sp, #24]\n" 
     820        "BL     sub_FF8BBFC4\n" 
     821        "B      loc_FF8BAFF0\n" 
    822822"loc_FF8BAF6C:\n" // jump table entry 30 
    823         "ldrh   r1, [r5]\n" 
    824         "strh   r1, [sp, #16]\n" 
    825         "ldrh   r1, [r0, #6]\n" 
    826         "strh   r1, [sp, #18]\n" 
    827         "ldrh   r1, [r5, #4]\n" 
    828         "strh   r1, [sp, #20]\n" 
    829         "ldrh   r1, [r5, #6]\n" 
    830         "strh   r1, [sp, #22]\n" 
    831         "ldrh   r1, [r5, #8]\n" 
    832         "strh   r1, [sp, #24]\n" 
    833         "bl     sub_FF8BC070\n" 
    834         "b      loc_FF8BAFF0\n" 
     823        "LDRH   r1, [r5]\n" 
     824        "STRH   r1, [sp, #16]\n" 
     825        "LDRH   r1, [r0, #6]\n" 
     826        "STRH   r1, [sp, #18]\n" 
     827        "LDRH   r1, [r5, #4]\n" 
     828        "STRH   r1, [sp, #20]\n" 
     829        "LDRH   r1, [r5, #6]\n" 
     830        "STRH   r1, [sp, #22]\n" 
     831        "LDRH   r1, [r5, #8]\n" 
     832        "STRH   r1, [sp, #24]\n" 
     833        "BL     sub_FF8BC070\n" 
     834        "B      loc_FF8BAFF0\n" 
    835835"loc_FF8BAF9C:\n" // jump table entry 31 
    836         "ldrh   r1, [r5]\n" 
    837         "strh   r1, [sp, #16]\n" 
    838         "ldrh   r1, [r5, #2]\n" 
    839         "strh   r1, [sp, #18]\n" 
    840         "ldrh   r1, [r5, #4]\n" 
    841         "strh   r1, [sp, #20]\n" 
    842         "ldrh   r1, [r5, #6]\n" 
    843         "strh   r1, [sp, #22]\n" 
    844         "ldrh   r1, [r0, #12]\n" 
    845         "strh   r1, [sp, #24]\n" 
    846         "bl     sub_FF8BC110\n" 
    847         "b      loc_FF8BAFF0\n" 
     836        "LDRH   r1, [r5]\n" 
     837        "STRH   r1, [sp, #16]\n" 
     838        "LDRH   r1, [r5, #2]\n" 
     839        "STRH   r1, [sp, #18]\n" 
     840        "LDRH   r1, [r5, #4]\n" 
     841        "STRH   r1, [sp, #20]\n" 
     842        "LDRH   r1, [r5, #6]\n" 
     843        "STRH   r1, [sp, #22]\n" 
     844        "LDRH   r1, [r0, #12]\n" 
     845        "STRH   r1, [sp, #24]\n" 
     846        "BL     sub_FF8BC110\n" 
     847        "B      loc_FF8BAFF0\n" 
    848848"loc_FF8BAFCC:\n" // jump table entries 32, 33 
    849         "bl     sub_FF8B8754\n" 
    850         "b      loc_FF8BAFF0\n" 
     849        "BL     sub_FF8B8754\n" 
     850        "B      loc_FF8BAFF0\n" 
    851851"loc_FF8BAFD4:\n" // jump table entry 36 
    852         "bl     sub_FF8B8CF4\n" 
    853         "b      loc_FF8BAFF0\n" 
     852        "BL     sub_FF8B8CF4\n" 
     853        "B      loc_FF8BAFF0\n" 
    854854"loc_FF8BAFDC:\n" // jump table entry 37 
    855         "bl     sub_FF8B8F30\n" 
    856         "b      loc_FF8BAFF0\n" 
     855        "BL     sub_FF8B8F30\n" 
     856        "B      loc_FF8BAFF0\n" 
    857857"loc_FF8BAFE4:\n" // jump table entry 12 
    858         "bl     sub_FF8B90AC\n" 
    859         "b      loc_FF8BAFF0\n" 
     858        "BL     sub_FF8B90AC\n" 
     859        "B      loc_FF8BAFF0\n" 
    860860"loc_FF8BAFEC:\n" // jump table entries 13, 14, 15, 16 
    861         "bl     sub_FF8B9248\n" 
     861        "BL     sub_FF8B9248\n" 
    862862"loc_FF8BAFF0:\n" // jump table entries 17, 18, 19, 20, 21, 22, 34, 35, default 
    863         "ldr    r0, [sp, #28]\n" 
    864         "ldr    r1, [r0, #124]\n" 
    865         "ldr    r3, [r0, #140]\n" 
    866         "ldr    r2, [r0, #144]\n" 
    867         "add    r0, r0, #4\n"   // 0x4 
    868         "blx    r3\n" 
    869         "cmp    r4, #1\n"       // 0x1 
    870         "bne    loc_FF8BB058\n" 
     863        "LDR    r0, [sp, #28]\n" 
     864        "LDR    r1, [r0, #124]\n" 
     865        "LDR    r3, [r0, #140]\n" 
     866        "LDR    r2, [r0, #144]\n" 
     867        "ADD    r0, r0, #4\n"   // 0x4 
     868        "BLX    r3\n" 
     869        "CMP    r4, #1\n"       // 0x1 
     870        "BNE    loc_FF8BB058\n" 
    871871"loc_FF8BB010:\n" // 4 refs 
    872         "ldr    r0, [sp, #28]\n" 
    873         "ldr    r2, =0xc\n" // was: "mov ..., #12" 
    874         "ldr    r1, [r0, #124]\n" 
    875         "add    r1, r1, r1, lsl #1\n" 
    876         "add    r0, r0, r1, lsl #2\n" 
    877         "sub    r4, r0, #8\n"   // 0x8 
    878         "ldr    r0, =0x00042ab0\n" // was: "[pc, #1420] ; ff8bb60c"  
    879         "add    r1, sp, #16\n"  // 0x10 
    880         "bl     sub_FFB396B4\n" 
    881         "ldr    r0, =0x00042abc\n" // was: "[pc, #1432] ; ff8bb624"  
    882         "ldr    r2, =0xc\n" // was: "mov ..., #12" 
    883         "add    r1, sp, #16\n"  // 0x10 
    884         "bl     sub_FFB396B4\n" 
    885         "ldr    r0, =0x00042ac8\n" // was: "[pc, #1420] ; ff8bb628"  
    886         "ldr    r2, =0xc\n" // was: "mov ..., #12" 
    887         "mov    r1, r4\n" 
    888         "bl     sub_FFB396B4\n" 
    889         "b      loc_FF8BB0D0\n" 
     872        "LDR    r0, [sp, #28]\n" 
     873        "LDR    r2, =0xc\n" // was: "mov ..., #12" 
     874        "LDR    r1, [r0, #124]\n" 
     875        "ADD    r1, r1, r1, lsl #1\n" 
     876        "ADD    r0, r0, r1, lsl #2\n" 
     877        "SUB    r4, r0, #8\n"   // 0x8 
     878        "LDR    r0, =0x00042ab0\n" // was: "[pc, #1420] ; ff8bb60c"  
     879        "ADD    r1, sp, #16\n"  // 0x10 
     880        "BL     sub_FFB396B4\n" 
     881        "LDR    r0, =0x00042abc\n" // was: "[pc, #1432] ; ff8bb624"  
     882        "LDR    r2, =0xc\n" // was: "mov ..., #12" 
     883        "ADD    r1, sp, #16\n"  // 0x10 
     884        "BL     sub_FFB396B4\n" 
     885        "LDR    r0, =0x00042ac8\n" // was: "[pc, #1420] ; ff8bb628"  
     886        "LDR    r2, =0xc\n" // was: "mov ..., #12" 
     887        "MOV    r1, r4\n" 
     888        "BL     sub_FFB396B4\n" 
     889        "B      loc_FF8BB0D0\n" 
    890890"loc_FF8BB058:\n" 
    891         "ldr    r0, [sp, #28]\n" 
    892         "ldr    r0, [r0]\n" 
    893         "cmp    r0, #11\n"      // 0xb 
    894         "bne    loc_FF8BB0A0\n" 
    895         "ldr    r3, =0x0\n" // was: "mov ..., #0" 
    896         "str    r3, [sp]\n" 
    897         "ldr    r3, =0x1\n" // was: "mov ..., #1" 
    898         "ldr    r2, =0x1\n" // was: "mov ..., #1" 
    899         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    900         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    901         "bl     sub_FF8B750C\n" 
    902         "ldr    r3, =0x0\n" // was: "mov ..., #0" 
    903         "str    r3, [sp]\n" 
    904         "ldr    r3, =0x1\n" // was: "mov ..., #1" 
    905         "ldr    r2, =0x1\n" // was: "mov ..., #1" 
    906         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    907         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    908         "b      loc_FF8BB0CC\n" 
     891        "LDR    r0, [sp, #28]\n" 
     892        "LDR    r0, [r0]\n" 
     893        "CMP    r0, #11\n"      // 0xb 
     894        "BNE    loc_FF8BB0A0\n" 
     895        "LDR    r3, =0x0\n" // was: "mov ..., #0" 
     896        "STR    r3, [sp]\n" 
     897        "LDR    r3, =0x1\n" // was: "mov ..., #1" 
     898        "LDR    r2, =0x1\n" // was: "mov ..., #1" 
     899        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     900        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     901        "BL     sub_FF8B750C\n" 
     902        "LDR    r3, =0x0\n" // was: "mov ..., #0" 
     903        "STR    r3, [sp]\n" 
     904        "LDR    r3, =0x1\n" // was: "mov ..., #1" 
     905        "LDR    r2, =0x1\n" // was: "mov ..., #1" 
     906        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     907        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     908        "B      loc_FF8BB0CC\n" 
    909909"loc_FF8BB0A0:\n" 
    910         "ldr    r3, =0x1\n" // was: "mov ..., #1" 
    911         "ldr    r2, =0x1\n" // was: "mov ..., #1" 
    912         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    913         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    914         "str    r3, [sp]\n" 
    915         "bl     sub_FF8B750C\n" 
    916         "ldr    r3, =0x1\n" // was: "mov ..., #1" 
    917         "ldr    r2, =0x1\n" // was: "mov ..., #1" 
    918         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    919         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    920         "str    r3, [sp]\n" 
     910        "LDR    r3, =0x1\n" // was: "mov ..., #1" 
     911        "LDR    r2, =0x1\n" // was: "mov ..., #1" 
     912        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     913        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     914        "STR    r3, [sp]\n" 
     915        "BL     sub_FF8B750C\n" 
     916        "LDR    r3, =0x1\n" // was: "mov ..., #1" 
     917        "LDR    r2, =0x1\n" // was: "mov ..., #1" 
     918        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     919        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     920        "STR    r3, [sp]\n" 
    921921"loc_FF8BB0CC:\n" 
    922         "bl     sub_FF8B764C\n" 
     922        "BL     sub_FF8B764C\n" 
    923923"loc_FF8BB0D0:\n" // 3 refs 
    924         "ldr    r0, [sp, #28]\n" 
    925         "bl     sub_FF8BBDE8\n" 
    926         "b      loc_FF8BAAF8\n" 
     924        "LDR    r0, [sp, #28]\n" 
     925        "BL     sub_FF8BBDE8\n" 
     926        "B      loc_FF8BAAF8\n" 
    927927    ); 
    928928} 
  • trunk/platform/ixus130_sd1400/sub/100a/led.c

    r1985 r1993  
     1/* note, this is unused debug code, left in case someone finds it useful*/ 
    12#include "led.h" 
    23 
  • trunk/platform/ixus130_sd1400/sub/100a/movie_rec.c

    r1985 r1993  
    1717void __attribute__((naked,noinline)) movie_record_task() { // was FF96BD30 
    1818  asm volatile ( 
    19     //"b      sub_ff95a5f4\n" 
    20         "push   {r2, r3, r4, r5, r6, r7, r8, lr}\n" 
    21         "ldr    r8, =0x000004b3\n" // was: [pc, #756]   ; ff95a838: (000004b3)  
    22         "ldr    r7, =0x00002710\n" // was: [pc, #-2500] ; ff959b84: (00002710)  
    23         "ldr    r4, =0x000063f8\n" // was: [pc, #-4008] ; ff9595a4: (000063f8)  
    24         "ldr    r6, =0x0\n" // was: "mov ..., #0" 
    25         "ldr    r5, =0x1\n" // was: "mov ..., #1" 
     19        "PUSH   {r2, r3, r4, r5, r6, r7, r8, lr}\n" 
     20        "LDR    r8, =0x000004b3\n" // was: [pc, #756]   ; ff95a838: (000004b3)  
     21        "LDR    r7, =0x00002710\n" // was: [pc, #-2500] ; ff959b84: (00002710)  
     22        "LDR    r4, =0x000063f8\n" // was: [pc, #-4008] ; ff9595a4: (000063f8)  
     23        "LDR    r6, =0x0\n" // was: "mov ..., #0" 
     24        "LDR    r5, =0x1\n" // was: "mov ..., #1" 
    2625"loc_FF95A550:\n" 
    27         "ldr    r0, [r4, #24]\n" 
    28         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
    29         "add    r1, sp, #4\n"   // 0x4 
    30         "bl     sub_ff8396e4\n" 
    31         "ldr    r0, [r4, #32]\n" 
    32         "cmp    r0, #0\n"       // 0x0 
    33         "bne    loc_FF95A620\n" 
    34         "ldr    r0, [sp, #4]\n" 
    35         "ldr    r1, [r0]\n" 
    36         "sub    r1, r1, #2\n"   // 0x2 
    37         "cmp    r1, #9\n"       // 0x9 
    38         "addls  pc, pc, r1, lsl #2\n" 
    39         "b      loc_FF95A620\n" 
    40         "b      loc_FF95A5D4\n" // 0 jump table start 
    41         "b      loc_FF95A5F4\n" 
    42         "b      loc_FF95A604\n" 
    43         "b      loc_FF95A60C\n" 
    44         "b      loc_FF95A5DC\n" 
    45         "b      loc_FF95A614\n" 
    46         "b      loc_FF95A5E4\n" 
    47         "b      loc_FF95A620\n" 
    48         "b      loc_FF95A61C\n" 
    49         "b      loc_FF95A5AC\n" // 9 
     26        "LDR    r0, [r4, #24]\n" 
     27        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
     28        "ADD    r1, sp, #4\n"   // 0x4 
     29        "BL     sub_ff8396e4\n" 
     30        "LDR    r0, [r4, #32]\n" 
     31        "CMP    r0, #0\n"       // 0x0 
     32        "BNE    loc_FF95A620\n" 
     33        "LDR    r0, [sp, #4]\n" 
     34        "LDR    r1, [r0]\n" 
     35        "SUB    r1, r1, #2\n"   // 0x2 
     36        "CMP    r1, #9\n"       // 0x9 
     37        "ADDLS  pc, pc, r1, lsl #2\n" 
     38        "B      loc_FF95A620\n" 
     39        "B      loc_FF95A5D4\n" // 0 jump table start 
     40        "B      loc_FF95A5F4\n" 
     41        "B      loc_FF95A604\n" 
     42        "B      loc_FF95A60C\n" 
     43        "B      loc_FF95A5DC\n" 
     44        "B      loc_FF95A614\n" 
     45        "B      loc_FF95A5E4\n" 
     46        "B      loc_FF95A620\n" 
     47        "B      loc_FF95A61C\n" 
     48        "B      loc_FF95A5AC\n" // 9 
    5049"loc_FF95A5AC:\n" // jump table entry 9 
    51         "ldr    r0, =0xFF95A24C\n" // was: "sub r0, pc, #872"   
    52         "str    r6, [r4, #52]\n" 
    53         "str    r0, [r4, #164]\n" 
     50        "LDR    r0, =0xFF95A24C\n" // was: "sub r0, pc, #872"   
     51        "STR    r6, [r4, #52]\n" 
     52        "STR    r0, [r4, #164]\n" 
    5453 
    5554        // Ixus300 has this, referenced in case 4: (what does it do?) 
     
    5857        //"STR     R0, [R4,#0xAC]\n" 
    5958 
    60         "ldr    r0, =0xFF959854\n" // was: [pc, #-2596] ; ff959ba4: (0009668c) 
    61         "ldr    r2, =0xFF959770\n" // was: [pc, #640]   ; ff95a840: (ff959854)  
    62         "ldr    r1, =0x0009668c\n" // was: [pc, #632]   ; ff95a83c: (ff959770)  
    63         "str    r6, [r4, #0x24]\n" // 0x24 
    64         "bl     sub_ff85021c\n" 
    65         "str    r5, [r4, #56]\n" // 0x38 
    66         "b      loc_FF95A620\n" 
     59        "LDR    r0, =0xFF959854\n" // was: [pc, #-2596] ; ff959ba4: (0009668c) 
     60        "LDR    r2, =0xFF959770\n" // was: [pc, #640]   ; ff95a840: (ff959854)  
     61        "LDR    r1, =0x0009668c\n" // was: [pc, #632]   ; ff95a83c: (ff959770)  
     62        "STR    r6, [r4, #0x24]\n" // 0x24 
     63        "BL     sub_ff85021c\n" 
     64        "STR    r5, [r4, #56]\n" // 0x38 
     65        "B      loc_FF95A620\n" 
    6766"loc_FF95A5D4:\n" // jump table entry 0 
    68         "bl     unlock_optical_zoom\n" // added (disabled in camera.h, crashes) 
    69         "bl     sub_FF95A354\n" 
    70         "b      loc_FF95A620\n" 
     67        "BL     unlock_optical_zoom\n" // added (disabled in camera.h, crashes) 
     68        "BL     sub_FF95A354\n" 
     69        "B      loc_FF95A620\n" 
    7170"loc_FF95A5DC:\n" // jump table entry 4 
    7271 
     
    7574        //"BLX     R1\n" 
    7675 
    77         "bl     sub_FF959ECC\n" 
    78         //"bl   sub_ff959f88_my\n" 
    79         "b      loc_FF95A620\n" 
     76        "BL     sub_FF959ECC\n" 
     77        //"BL   sub_ff959f88_my\n" 
     78        "B      loc_FF95A620\n" 
    8079"loc_FF95A5E4:\n" // jump table entry 6 
    81         "ldr    r1, [r0, #24]\n" 
    82         "ldr    r0, [r0, #4]\n" 
    83         "bl     sub_FFA8CB84\n" 
    84         "b      loc_FF95A620\n" 
     80        "LDR    r1, [r0, #24]\n" 
     81        "LDR    r0, [r0, #4]\n" 
     82        "BL     sub_FFA8CB84\n" 
     83        "B      loc_FF95A620\n" 
    8584"loc_FF95A5F4:\n" // jump table entry 1 
    86         "ldr    r0, [r4, #56]\n" 
    87         "cmp    r0, #5\n"       // 0x5 
    88         "strne  r5, [r4, #40]\n" 
    89         "b      loc_FF95A620\n" 
     85        "LDR    r0, [r4, #56]\n" 
     86        "CMP    r0, #5\n"       // 0x5 
     87        "STRNE  r5, [r4, #40]\n" 
     88        "B      loc_FF95A620\n" 
    9089"loc_FF95A604:\n" // jump table entry 2 
    91         "bl     sub_FF959BC8\n" 
    92         "b      loc_FF95A620\n" 
     90        "BL     sub_FF959BC8\n" 
     91        "B      loc_FF95A620\n" 
    9392"loc_FF95A60C:\n" // jump table entry 3 
    94         "bl     sub_FF9598A0\n" 
    95         "b      loc_FF95A620\n" 
     93        "BL     sub_FF9598A0\n" 
     94        "B      loc_FF95A620\n" 
    9695"loc_FF95A614:\n" // jump table entry 5 
    97         "bl     sub_FF9596FC\n" 
    98         "b      loc_FF95A620\n" 
     96        "BL     sub_FF9596FC\n" 
     97        "B      loc_FF95A620\n" 
    9998"loc_FF95A61C:\n" // jump table entry 8 
    100         "bl     sub_FF95A788\n" 
     99        "BL     sub_FF95A788\n" 
    101100"loc_FF95A620:\n" // jump table entry 7, default 
    102         "ldr    r1, [sp, #4]\n" 
    103         "ldr    r3, =0xFF959590\n" // was [pc, #-2684]  ; ff959bb0: (ff959590)  **"MovieRecorder.c" 
    104         "str    r6, [r1]\n" 
    105         "str    r8, [sp]\n" 
    106         "ldr    r0, [r4, #28]\n" 
    107         "mov    r2, r7\n" 
    108         "bl     sub_FF83A038\n" 
    109         "b      loc_FF95A550\n" 
     101        "LDR    r1, [sp, #4]\n" 
     102        "LDR    r3, =0xFF959590\n" // was [pc, #-2684]  ; ff959bb0: (ff959590)  **"MovieRecorder.c" 
     103        "STR    r6, [r1]\n" 
     104        "STR    r8, [sp]\n" 
     105        "LDR    r0, [r4, #28]\n" 
     106        "MOV    r2, r7\n" 
     107        "BL     sub_FF83A038\n" 
     108        "B      loc_FF95A550\n" 
    110109    ); 
    111110} 
     
    113112void __attribute__((naked,noinline)) sub_ff959f88_my() { // was FF96BA00 
    114113  asm volatile ( 
    115         "push   {r4, r5, r6, r7, r8, lr}\n" 
    116         "sub    sp, sp, #64\n"  // 0x40 
    117         "ldr    r7, =0x0\n" // was: "mov ..., #0" 
    118         "ldr    r6, =0x000063f8\n" // was: "[pc, #-2376]        ; ff959654"  
    119         "mov    r4, r0\n" 
    120         "str    r7, [sp, #48]\n" 
    121         "str    r7, [sp, #40]\n" 
    122         "ldr    r0, [r6, #56]\n" 
    123         "ldr    r8, =0x4\n" // was: "mov ..., #4" 
    124         "cmp    r0, #3\n"       // 0x3 
    125         "streq  r8, [r6, #56]\n" 
    126         "ldr    r0, [r6, #164]\n" 
    127         "blx    r0\n" 
    128         "ldr    r0, [r6, #56]\n" 
    129         "cmp    r0, #4\n"       // 0x4 
    130         "bne    loc_ff95a0f8\n" 
    131         "add    r3, sp, #40\n"  // 0x28 
    132         "add    r2, sp, #44\n"  // 0x2c 
    133         "add    r1, sp, #48\n"  // 0x30 
    134         "add    r0, sp, #52\n"  // 0x34 
    135         "bl     sub_ffa8ccc4\n" 
    136         "cmp    r0, #0\n"       // 0x0 
    137         "ldr    r5, =0x1\n" // was: "mov ..., #1" 
    138         "bne    loc_ff95a004\n" 
    139         "ldr    r1, [r6, #40]\n" 
    140         "cmp    r1, #1\n"       // 0x1 
    141         "bne    loc_ff95a100\n" 
    142         "ldr    r1, [r6, #92]\n" 
    143         "ldr    r2, [r6, #60]\n" 
    144         "cmp    r1, r2\n" 
    145         "bcc    loc_ff95a100\n" 
     114        "PUSH   {r4, r5, r6, r7, r8, lr}\n" 
     115        "SUB    sp, sp, #64\n"  // 0x40 
     116        "LDR    r7, =0x0\n" // was: "mov ..., #0" 
     117        "LDR    r6, =0x000063f8\n" // was: "[pc, #-2376]        ; ff959654"  
     118        "MOV    r4, r0\n" 
     119        "STR    r7, [sp, #48]\n" 
     120        "STR    r7, [sp, #40]\n" 
     121        "LDR    r0, [r6, #56]\n" 
     122        "LDR    r8, =0x4\n" // was: "mov ..., #4" 
     123        "CMP    r0, #3\n"       // 0x3 
     124        "STREQ  r8, [r6, #56]\n" 
     125        "LDR    r0, [r6, #164]\n" 
     126        "BLX    r0\n" 
     127        "LDR    r0, [r6, #56]\n" 
     128        "CMP    r0, #4\n"       // 0x4 
     129        "BNE    loc_ff95a0f8\n" 
     130        "ADD    r3, sp, #40\n"  // 0x28 
     131        "ADD    r2, sp, #44\n"  // 0x2c 
     132        "ADD    r1, sp, #48\n"  // 0x30 
     133        "ADD    r0, sp, #52\n"  // 0x34 
     134        "BL     sub_ffa8ccc4\n" 
     135        "CMP    r0, #0\n"       // 0x0 
     136        "LDR    r5, =0x1\n" // was: "mov ..., #1" 
     137        "BNE    loc_ff95a004\n" 
     138        "LDR    r1, [r6, #40]\n" 
     139        "CMP    r1, #1\n"       // 0x1 
     140        "BNE    loc_ff95a100\n" 
     141        "LDR    r1, [r6, #92]\n" 
     142        "LDR    r2, [r6, #60]\n" 
     143        "CMP    r1, r2\n" 
     144        "BCC    loc_ff95a100\n" 
    146145"loc_ff95a004:\n" 
    147         "cmp    r0, #-2147483647\n"     // 0x80000001 
    148         "streq  r8, [r6, #96]\n" 
    149         "beq    loc_ff95a03c\n" 
    150         "cmp    r0, #-2147483645\n"     // 0x80000003 
    151         "streq  r5, [r6, #96]\n" 
    152         "beq    loc_ff95a03c\n" 
    153         "cmp    r0, #-2147483643\n"     // 0x80000005 
    154         "ldreq  r0, =0x2\n" // was: "mov ..., #2" 
    155         "beq    loc_ff95a038\n" 
    156         "cmp    r0, #-2147483641\n"     // 0x80000007 
    157         "strne  r7, [r6, #96]\n" 
    158         "bne    loc_ff95a03c\n" 
    159         "ldr    r0, =0x3\n" // was: "mov ..., #3" 
     146        "CMP    r0, #-2147483647\n"     // 0x80000001 
     147        "STREQ  r8, [r6, #96]\n" 
     148        "BEQ    loc_ff95a03c\n" 
     149        "CMP    r0, #-2147483645\n"     // 0x80000003 
     150        "STREQ  r5, [r6, #96]\n" 
     151        "BEQ    loc_ff95a03c\n" 
     152        "CMP    r0, #-2147483643\n"     // 0x80000005 
     153        "LDREQ  r0, =0x2\n" // was: "mov ..., #2" 
     154        "BEQ    loc_ff95a038\n" 
     155        "CMP    r0, #-2147483641\n"     // 0x80000007 
     156        "STRNE  r7, [r6, #96]\n" 
     157        "BNE    loc_ff95a03c\n" 
     158        "LDR    r0, =0x3\n" // was: "mov ..., #3" 
    160159"loc_ff95a038:\n" 
    161         "str    r0, [r6, #96]\n" 
     160        "STR    r0, [r6, #96]\n" 
    162161"loc_ff95a03c:\n" // 3 refs 
    163         "ldr    r0, =0x000966c0\n" // was: "[pc, #-2512]        ; ff959674"  
    164         "ldr    r0, [r0, #8]\n" 
    165         "cmp    r0, #0\n"       // 0x0 
    166         "beq    loc_ff95a054\n" 
    167         "bl     sub_ff861870\n" 
    168         "b      loc_ff95a058\n" 
     162        "LDR    r0, =0x000966c0\n" // was: "[pc, #-2512]        ; ff959674"  
     163        "LDR    r0, [r0, #8]\n" 
     164        "CMP    r0, #0\n"       // 0x0 
     165        "BEQ    loc_ff95a054\n" 
     166        "BL     sub_ff861870\n" 
     167        "B      loc_ff95a058\n" 
    169168"loc_ff95a054:\n" 
    170         "bl     sub_ff9597ac\n" 
     169        "BL     sub_ff9597ac\n" 
    171170"loc_ff95a058:\n" 
    172         "ldr    r0, [r4, #28]\n" 
    173         "add    r4, sp, #24\n"  // 0x18 
    174         "add    r3, sp, #56\n"  // 0x38 
    175         "mvn    r2, #1\n"       // 0x1 
    176         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
    177         "stm    r4, {r0, r1, r2, r3}\n" 
    178         "ldr    r2, [r6, #116]\n" 
    179         "ldr    r3, [r6, #120]\n" 
    180         "add    r1, sp, #60\n"  // 0x3c 
    181         "add    r4, sp, #8\n"   // 0x8 
    182         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    183         "stm    r4, {r0, r1, r2, r3}\n" 
    184         "ldr    r3, =0x0\n" // was: "mov ..., #0" 
    185         "ldr    r2, =0x40\n" // was: "mov ..., #64" 
    186         "strd   r2, [sp]\n" 
    187         "ldr    r3, =0x000966d8\n" // was: "[pc, #2112] ; ff95a8dc"  
    188         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
    189         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
    190         "bl     sub_ffa4b708\n" 
    191         "ldr    r0, [r6, #16]\n" 
    192         "ldr    r1, [r6, #84]\n" 
    193         "bl     sub_ff839b00\n" // eventproc_export_TakeSemaphore() 
    194         "cmp    r0, #9\n"       // 0x9 
    195         "bne    loc_ff95a0c8\n" 
     171        "LDR    r0, [r4, #28]\n" 
     172        "ADD    r4, sp, #24\n"  // 0x18 
     173        "ADD    r3, sp, #56\n"  // 0x38 
     174        "MVN    r2, #1\n"       // 0x1 
     175        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
     176        "STM    r4, {r0, r1, r2, r3}\n" 
     177        "LDR    r2, [r6, #116]\n" 
     178        "LDR    r3, [r6, #120]\n" 
     179        "ADD    r1, sp, #60\n"  // 0x3c 
     180        "ADD    r4, sp, #8\n"   // 0x8 
     181        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     182        "STM    r4, {r0, r1, r2, r3}\n" 
     183        "LDR    r3, =0x0\n" // was: "mov ..., #0" 
     184        "LDR    r2, =0x40\n" // was: "mov ..., #64" 
     185        "STRD   r2, [sp]\n" 
     186        "LDR    r3, =0x000966d8\n" // was: "[pc, #2112] ; ff95a8dc"  
     187        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
     188        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
     189        "BL     sub_ffa4b708\n" 
     190        "LDR    r0, [r6, #16]\n" 
     191        "LDR    r1, [r6, #84]\n" 
     192        "BL     sub_ff839b00\n" // eventproc_export_TakeSemaphore() 
     193        "CMP    r0, #9\n"       // 0x9 
     194        "BNE    loc_ff95a0c8\n" 
    196195"loc_ff95a0b8:\n" 
    197         "bl     sub_ffa8d198\n" 
    198         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    199         "str    r5, [r6, #56]\n" 
    200         "b      loc_ff95a228\n" 
     196        "BL     sub_ffa8d198\n" 
     197        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     198        "STR    r5, [r6, #56]\n" 
     199        "B      loc_ff95a228\n" 
    201200"loc_ff95a0c8:\n" 
    202         "ldr    r0, [sp, #56]\n" 
    203         "cmp    r0, #0\n"       // 0x0 
    204         "beq    loc_ff95a0e4\n" 
     201        "LDR    r0, [sp, #56]\n" 
     202        "CMP    r0, #0\n"       // 0x0 
     203        "BEQ    loc_ff95a0e4\n" 
    205204"loc_ff95a0d4:\n" 
    206         "bl     sub_ffa8d198\n" 
    207         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    208         "str    r5, [r6, #56]\n" 
    209         "b      loc_ff95a254\n" 
     205        "BL     sub_ffa8d198\n" 
     206        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     207        "STR    r5, [r6, #56]\n" 
     208        "B      loc_ff95a254\n" 
    210209"loc_ff95a0e4:\n" 
    211         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    212         "bl     sub_ffa4b7ac\n" 
    213         "bl     sub_ffa4b808\n" 
    214         "ldr    r0, =0x5\n" // was: "mov ..., #5" 
    215         "str    r0, [r6, #56]\n" 
     210        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     211        "BL     sub_ffa4b7ac\n" 
     212        "BL     sub_ffa4b808\n" 
     213        "LDR    r0, =0x5\n" // was: "mov ..., #5" 
     214        "STR    r0, [r6, #56]\n" 
    216215"loc_ff95a0f8:\n" // 3 refs 
    217         "add    sp, sp, #64\n"  // 0x40 
    218         "pop    {r4, r5, r6, r7, r8, pc}\n" 
     216        "ADD    sp, sp, #64\n"  // 0x40 
     217        "POP    {r4, r5, r6, r7, r8, pc}\n" 
    219218"loc_ff95a100:\n" // 2 refs 
    220         "ldr    ip, [sp, #48]\n" 
    221         "cmp    ip, #0\n"       // 0x0 
    222         "beq    loc_ff95a2b0\n" 
    223         "str    r5, [r6, #44]\n" 
    224         "ldr    r0, [r6, #92]\n" 
    225         "ldr    r8, [r4, #12]\n" 
    226         "cmp    r0, #0\n"       // 0x0 
    227         "ldrne  lr, [sp, #52]\n" 
    228         "bne    loc_ff95a1ac\n" 
    229         "ldr    r0, [r4, #28]\n" 
    230         "ldr    r1, [r4, #32]\n" 
    231         "add    r3, sp, #56\n"  // 0x38 
    232         "mvn    r2, #0\n"       // 0x0 
    233         "add    lr, sp, #24\n"  // 0x18 
    234         "stm    lr, {r0, r1, r2, r3}\n" 
    235         "ldr    r0, [sp, #40]\n" 
    236         "ldr    r2, [r6, #116]\n" 
    237         "ldr    r3, [r6, #120]\n" 
    238         "add    r1, sp, #60\n"  // 0x3c 
    239         "add    lr, sp, #8\n"   // 0x8 
    240         "stm    lr, {r0, r1, r2, r3}\n" 
    241         "ldr    r3, [sp, #44]\n" 
    242         "str    ip, [sp]\n" 
    243         "str    r3, [sp, #4]\n" 
    244         "ldmib  r4, {r0, r1}\n" 
    245         "ldr    r3, [sp, #52]\n" 
    246         "mov    r2, r8\n" 
    247         "bl     sub_ffa4b708\n" 
    248         "ldr    r0, [r6, #16]\n" 
    249         "ldr    r1, [r6, #84]\n" 
    250         "bl     sub_ff839b00\n" // eventproc_export_TakeSemaphore() 
    251         "cmp    r0, #9\n"       // 0x9 
    252         "beq    loc_ff95a0b8\n" 
    253         "ldr    r0, [sp, #56]\n" 
    254         "cmp    r0, #0\n"       // 0x0 
    255         "bne    loc_ff95a0d4\n" 
    256         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    257         "bl     sub_ffa4b7ac\n" 
    258         "ldr    r0, [sp, #60]\n" 
    259         "ldr    r1, [sp, #52]\n" 
    260         "add    lr, r1, r0\n" 
    261         "ldr    r1, [sp, #48]\n" 
    262         "sub    ip, r1, r0\n" 
     219        "LDR    ip, [sp, #48]\n" 
     220        "CMP    ip, #0\n"       // 0x0 
     221        "BEQ    loc_ff95a2b0\n" 
     222        "STR    r5, [r6, #44]\n" 
     223        "LDR    r0, [r6, #92]\n" 
     224        "LDR    r8, [r4, #12]\n" 
     225        "CMP    r0, #0\n"       // 0x0 
     226        "LDRNE  lr, [sp, #52]\n" 
     227        "BNE    loc_ff95a1ac\n" 
     228        "LDR    r0, [r4, #28]\n" 
     229        "LDR    r1, [r4, #32]\n" 
     230        "ADD    r3, sp, #56\n"  // 0x38 
     231        "MVN    r2, #0\n"       // 0x0 
     232        "ADD    lr, sp, #24\n"  // 0x18 
     233        "STM    lr, {r0, r1, r2, r3}\n" 
     234        "LDR    r0, [sp, #40]\n" 
     235        "LDR    r2, [r6, #116]\n" 
     236        "LDR    r3, [r6, #120]\n" 
     237        "ADD    r1, sp, #60\n"  // 0x3c 
     238        "ADD    lr, sp, #8\n"   // 0x8 
     239        "STM    lr, {r0, r1, r2, r3}\n" 
     240        "LDR    r3, [sp, #44]\n" 
     241        "STR    ip, [sp]\n" 
     242        "STR    r3, [sp, #4]\n" 
     243        "LDMIB  r4, {r0, r1}\n" 
     244        "LDR    r3, [sp, #52]\n" 
     245        "MOV    r2, r8\n" 
     246        "BL     sub_ffa4b708\n" 
     247        "LDR    r0, [r6, #16]\n" 
     248        "LDR    r1, [r6, #84]\n" 
     249        "BL     sub_ff839b00\n" // eventproc_export_TakeSemaphore() 
     250        "CMP    r0, #9\n"       // 0x9 
     251        "BEQ    loc_ff95a0b8\n" 
     252        "LDR    r0, [sp, #56]\n" 
     253        "CMP    r0, #0\n"       // 0x0 
     254        "BNE    loc_ff95a0d4\n" 
     255        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     256        "BL     sub_ffa4b7ac\n" 
     257        "LDR    r0, [sp, #60]\n" 
     258        "LDR    r1, [sp, #52]\n" 
     259        "ADD    lr, r1, r0\n" 
     260        "LDR    r1, [sp, #48]\n" 
     261        "SUB    ip, r1, r0\n" 
    263262"loc_ff95a1ac:\n" 
    264         "ldr    r2, [r6, #88]\n" 
    265         "ldr    r0, [r4, #28]\n" 
    266         "ldr    r1, [r4, #32]\n" 
    267         "add    r3, sp, #56\n"  // 0x38 
    268         "str    r0, [sp, #24]\n" 
    269         "str    r1, [sp, #28]\n" 
    270         "str    r3, [sp, #36]\n" 
    271         "str    r2, [sp, #32]\n" 
    272         "ldr    r2, [r6, #116]\n" 
    273         "ldr    r3, [r6, #120]\n" 
    274         "ldr    r0, [sp, #40]\n" 
    275         "str    r3, [sp, #20]\n" 
    276         "ldr    r3, [sp, #44]\n" 
    277         "add    r1, sp, #60\n"  // 0x3c 
    278         "str    r2, [sp, #16]\n" 
    279         "str    r3, [sp, #4]\n" 
    280         "str    r1, [sp, #12]\n" 
    281         "str    ip, [sp]\n" 
    282         "str    r0, [sp, #8]\n" 
    283         "ldmib  r4, {r0, r1}\n" 
    284         "mov    r3, lr\n" 
    285         "mov    r2, r8\n" 
    286         "bl     sub_ffa4b708\n" 
    287         "ldr    r0, [r6, #16]\n" 
    288         "ldr    r1, [r6, #84]\n" 
    289         "bl     sub_ff839b00\n" // eventproc_export_TakeSemaphore() 
    290         "cmp    r0, #9\n"       // 0x9 
    291         "bne    loc_ff95a23c\n" 
    292         "bl     sub_ffa8d198\n" 
    293         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    294         "str    r5, [r6, #56]\n" 
     263        "LDR    r2, [r6, #88]\n" 
     264        "LDR    r0, [r4, #28]\n" 
     265        "LDR    r1, [r4, #32]\n" 
     266        "ADD    r3, sp, #56\n"  // 0x38 
     267        "STR    r0, [sp, #24]\n" 
     268        "STR    r1, [sp, #28]\n" 
     269        "STR    r3, [sp, #36]\n" 
     270        "STR    r2, [sp, #32]\n" 
     271        "LDR    r2, [r6, #116]\n" 
     272        "LDR    r3, [r6, #120]\n" 
     273        "LDR    r0, [sp, #40]\n" 
     274        "STR    r3, [sp, #20]\n" 
     275        "LDR    r3, [sp, #44]\n" 
     276        "ADD    r1, sp, #60\n"  // 0x3c 
     277        "STR    r2, [sp, #16]\n" 
     278        "STR    r3, [sp, #4]\n" 
     279        "STR    r1, [sp, #12]\n" 
     280        "STR    ip, [sp]\n" 
     281        "STR    r0, [sp, #8]\n" 
     282        "LDMIB  r4, {r0, r1}\n" 
     283        "MOV    r3, lr\n" 
     284        "MOV    r2, r8\n" 
     285        "BL     sub_ffa4b708\n" 
     286        "LDR    r0, [r6, #16]\n" 
     287        "LDR    r1, [r6, #84]\n" 
     288        "BL     sub_ff839b00\n" // eventproc_export_TakeSemaphore() 
     289        "CMP    r0, #9\n"       // 0x9 
     290        "BNE    loc_ff95a23c\n" 
     291        "BL     sub_ffa8d198\n" 
     292        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     293        "STR    r5, [r6, #56]\n" 
    295294"loc_ff95a228:\n" 
    296         "bl     sub_ffa4b7ac\n" 
    297         "ldr    r0, =0xc\n" // was: "mov ..., #12" 
    298         "bl     sub_ff886d0c\n" 
    299         "ldr    r0, =0x90000\n" // was: "mov ..., #589824" 
    300         "b      loc_ff95a264\n" 
     295        "BL     sub_ffa4b7ac\n" 
     296        "LDR    r0, =0xc\n" // was: "mov ..., #12" 
     297        "BL     sub_ff886d0c\n" 
     298        "LDR    r0, =0x90000\n" // was: "mov ..., #589824" 
     299        "B      loc_ff95a264\n" 
    301300"loc_ff95a23c:\n" 
    302         "ldr    r0, [sp, #56]\n" 
    303         "cmp    r0, #0\n"       // 0x0 
    304         "beq    loc_ff95a278\n" 
    305         "bl     sub_ffa8d198\n" 
    306         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    307         "str    r5, [r6, #56]\n" 
     301        "LDR    r0, [sp, #56]\n" 
     302        "CMP    r0, #0\n"       // 0x0 
     303        "BEQ    loc_ff95a278\n" 
     304        "BL     sub_ffa8d198\n" 
     305        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     306        "STR    r5, [r6, #56]\n" 
    308307"loc_ff95a254:\n" 
    309         "bl     sub_ffa4b7ac\n" 
    310         "ldr    r0, =0xc\n" // was: "mov ..., #12" 
    311         "bl     sub_ff886d0c\n" 
    312         "ldr    r0, =0xa0000\n" // was: "mov ..., #655360" 
     308        "BL     sub_ffa4b7ac\n" 
     309        "LDR    r0, =0xc\n" // was: "mov ..., #12" 
     310        "BL     sub_ff886d0c\n" 
     311        "LDR    r0, =0xa0000\n" // was: "mov ..., #655360" 
    313312"loc_ff95a264:\n" 
    314         "bl     sub_ff890f40\n" // eventproc_export_HardwareDefect() 
    315         "ldr    r1, [r6, #148]!\n" 
    316         "ldr    r0, [r6, #12]\n" 
    317         "blx    r1\n" 
    318         "b      loc_ff95a0f8\n" 
     313        "BL     sub_ff890f40\n" // eventproc_export_HardwareDefect() 
     314        "LDR    r1, [r6, #148]!\n" 
     315        "LDR    r0, [r6, #12]\n" 
     316        "BLX    r1\n" 
     317        "B      loc_ff95a0f8\n" 
    319318"loc_ff95a278:\n" 
    320         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    321         "bl     sub_ffa4b7ac\n" 
    322         "ldr    r0, [sp, #52]\n" 
    323         "ldr    r1, [sp, #60]\n" 
    324         "bl     sub_ffa8cef0\n" 
    325         "ldr    r0, [r6, #88]\n" 
    326         "ldr    r3, =0x00006470\n" // <---- 
    327         "add    r1, r0, #1\n"   // 0x1 
    328         "str    r1, [r6, #88]\n" 
    329         "str    r3, [sp]\n" 
    330         "ldr    r0, [sp, #60]\n" 
    331         "sub    r3, r3, #4\n"   // <---- 
    332         "ldr    r2, =0xf\n" // was: "mov ..., #15" 
    333         "bl     sub_ffa8b040\n" 
    334  
    335         //"ldr    r0, =0x6470-4\n" // added 
    336         //"bl     set_quality\n" // added 
     319        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     320        "BL     sub_ffa4b7ac\n" 
     321        "LDR    r0, [sp, #52]\n" 
     322        "LDR    r1, [sp, #60]\n" 
     323        "BL     sub_ffa8cef0\n" 
     324        "LDR    r0, [r6, #88]\n" 
     325        "LDR    r3, =0x00006470\n" // <---- 
     326        "ADD    r1, r0, #1\n"   // 0x1 
     327        "STR    r1, [r6, #88]\n" 
     328        "STR    r3, [sp]\n" 
     329        "LDR    r0, [sp, #60]\n" 
     330        "SUB    r3, r3, #4\n"   // <---- 
     331        "LDR    r2, =0xf\n" // was: "mov ..., #15" 
     332        "BL     sub_ffa8b040\n" 
     333 
     334        //"LDR    r0, =0x6470-4\n" // added 
     335        //"BL     set_quality\n" // added 
    337336 
    338337"loc_ff95a2b0:\n" 
    339         "ldr    r0, [r6, #92]\n" 
    340         "add    r0, r0, #1\n"   // 0x1 
    341         "str    r0, [r6, #92]\n" 
    342         "ldr    r1, [r6, #72]\n" 
    343         "mul    r0, r1, r0\n" 
    344         "ldr    r1, [r6, #68]\n" 
    345         "bl     sub_ffb3b51c\n" 
    346         "mov    r4, r0\n" 
    347         "bl     sub_ffa8d1d0\n" 
    348         "ldr    r1, [r6, #124]\n" 
    349         "cmp    r1, r4\n" 
    350         "bne    loc_ff95a2ec\n" 
    351         "ldr    r0, [r6, #48]\n" 
    352         "cmp    r0, #1\n"       // 0x1 
    353         "bne    loc_ff95a300\n" 
     338        "LDR    r0, [r6, #92]\n" 
     339        "ADD    r0, r0, #1\n"   // 0x1 
     340        "STR    r0, [r6, #92]\n" 
     341        "LDR    r1, [r6, #72]\n" 
     342        "MUL    r0, r1, r0\n" 
     343        "LDR    r1, [r6, #68]\n" 
     344        "BL     sub_ffb3b51c\n" 
     345        "MOV    r4, r0\n" 
     346        "BL     sub_ffa8d1d0\n" 
     347        "LDR    r1, [r6, #124]\n" 
     348        "CMP    r1, r4\n" 
     349        "BNE    loc_ff95a2ec\n" 
     350        "LDR    r0, [r6, #48]\n" 
     351        "CMP    r0, #1\n"       // 0x1 
     352        "BNE    loc_ff95a300\n" 
    354353"loc_ff95a2ec:\n" 
    355         "ldr    r1, [r6, #136]\n" 
    356         "mov    r0, r4\n" 
    357         "blx    r1\n" 
    358         "str    r4, [r6, #124]\n" 
    359         "str    r7, [r6, #48]\n" 
     354        "LDR    r1, [r6, #136]\n" 
     355        "MOV    r0, r4\n" 
     356        "BLX    r1\n" 
     357        "STR    r4, [r6, #124]\n" 
     358        "STR    r7, [r6, #48]\n" 
    360359"loc_ff95a300:\n" 
    361         "str    r7, [r6, #44]\n" 
    362         "b      loc_ff95a0f8\n" 
     360        "STR    r7, [r6, #44]\n" 
     361        "B      loc_ff95a0f8\n" 
    363362    ); 
    364363} 
  • trunk/platform/ixus130_sd1400/sub/100a/stubs_auto.S

    r1985 r1993  
    179179STUB(ff83ba88) 
    180180STUB(ff83bac8) 
    181 STUB(ff83bb5c) 
    182181STUB(ff83bcb4) 
    183182STUB(ff83bce4) 
     
    229228STUB(ff9597ac) 
    230229STUB(ff959f88) 
    231 STUB(ff95a5f4) 
    232230STUB(ff95ef78) 
    233231STUB(ff95f120) 
  • trunk/platform/ixus130_sd1400/sub/100c/boot.c

    r1985 r1993  
    1010void __attribute__((naked,noinline)) init_file_modules_task() {    // ff8946cc 
    1111  asm volatile ( 
    12         "push   {r4, r5, r6, lr}\n" 
    13         "bl     sub_ff88cb10\n" 
    14         "ldr    r5, =0x00005006\n" // was: "[pc, #408]  ; ff894874"  
    15         "movs   r4, r0\n" 
    16         "ldrne  r1, =0x0\n" // was: "mov ..., #0" 
    17         "movne  r0, r5\n" 
    18         "blne   sub_ff89051c\n" 
    19         "bl     sub_ff88cb3c\n" 
    20         //"bl     sub_ff88cb3c_my\n" 
    21         "bl     core_spytask_can_start\n" 
    22         "cmp    r4, #0\n"       // 0x0 
    23         "moveq  r0, r5\n" 
    24         "popeq  {r4, r5, r6, lr}\n" 
    25         "ldreq  r1, =0x0\n" // was: "mov ..., #0" 
    26         "beq    sub_ff89051c\n" 
    27     ); 
    28   asm volatile ( 
    29         "pop    {r4, r5, r6, pc}\n" 
     12        "PUSH   {r4, r5, r6, lr}\n" 
     13        "BL     sub_ff88cb10\n" 
     14        "LDR    r5, =0x00005006\n" // was: "[pc, #408]  ; ff894874"  
     15        "MOVS   r4, r0\n" 
     16        "LDRNE  r1, =0x0\n" // was: "mov ..., #0" 
     17        "MOVNE  r0, r5\n" 
     18        "BLNE   sub_ff89051c\n" 
     19        "BL     sub_ff88cb3c\n" 
     20        //"BL     sub_ff88cb3c_my\n" 
     21        "BL     core_spytask_can_start\n" 
     22        "CMP    r4, #0\n"       // 0x0 
     23        "MOVEQ  r0, r5\n" 
     24        "POPEQ  {r4, r5, r6, lr}\n" 
     25        "LDREQ  r1, =0x0\n" // was: "mov ..., #0" 
     26        "BEQ    sub_ff89051c\n" 
     27        "POP    {r4, r5, r6, pc}\n" 
    3028    ); 
    3129}; 
     
    5149void __attribute__((naked,noinline)) boot() { 
    5250  asm volatile ( 
    53         "ldr    r1, =0xc0410000\n" // was: "[pc, #336]  ; ff810164"  
    54         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    55         "str    r0, [r1]\n" 
    56         "ldr    r1, =0x78\n" // was: "mov ..., #120" 
    57         "mcr    15, 0, r1, cr1, cr0, 0\n" 
    58         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
    59         "mcr    15, 0, r1, cr7, cr10, 4\n" 
    60         "mcr    15, 0, r1, cr7, cr5, 0\n" 
    61         "mcr    15, 0, r1, cr7, cr6, 0\n" 
    62         "ldr    r0, =0x3d\n" // was: "mov ..., #61" 
    63         "mcr    15, 0, r0, cr6, cr0, 0\n" 
    64         "ldr    r0, =0xc000002f\n" // was: "mov ..., #-1073741777" 
    65         "mcr    15, 0, r0, cr6, cr1, 0\n" 
    66         "ldr    r0, =0x33\n" // was: "mov ..., #51" 
    67         "mcr    15, 0, r0, cr6, cr2, 0\n" 
    68         "ldr    r0, =0x40000033\n" // was: "mov ..., #1073741875" 
    69         "mcr    15, 0, r0, cr6, cr3, 0\n" 
    70         "ldr    r0, =0x80000017\n" // was: "mov ..., #-2147483625" 
    71         "mcr    15, 0, r0, cr6, cr4, 0\n" 
    72         "ldr    r0, =0xff80002d\n" // was: "[pc, #264]  ; ff810168"  
    73         "mcr    15, 0, r0, cr6, cr5, 0\n" 
    74         "ldr    r0, =0x34\n" // was: "mov ..., #52" 
    75         "mcr    15, 0, r0, cr2, cr0, 0\n" 
    76         "ldr    r0, =0x34\n" // was: "mov ..., #52" 
    77         "mcr    15, 0, r0, cr2, cr0, 1\n" 
    78         "ldr    r0, =0x34\n" // was: "mov ..., #52" 
    79         "mcr    15, 0, r0, cr3, cr0, 0\n" 
    80         "ldr    r0, =0x03333330\n" // was: "[pc, #236]  ; ff81016c"  
    81         "mcr    15, 0, r0, cr5, cr0, 2\n" 
    82         "ldr    r0, =0x03333330\n" // was: "[pc, #228]  ; ff81016c"  
    83         "mcr    15, 0, r0, cr5, cr0, 3\n" 
    84         "mrc    15, 0, r0, cr1, cr0, 0\n" 
    85         "orr    r0, r0, #4096\n"        // 0x1000 
    86         "orr    r0, r0, #4\n"   // 0x4 
    87         "orr    r0, r0, #1\n"   // 0x1 
    88         "mcr    15, 0, r0, cr1, cr0, 0\n" 
    89         "ldr    r1, =0x80000006\n" // was: "mov ..., #-2147483642" 
    90         "mcr    15, 0, r1, cr9, cr1, 0\n" 
    91         "ldr    r1, =0x6\n" // was: "mov ..., #6" 
    92         "mcr    15, 0, r1, cr9, cr1, 1\n" 
    93         "mrc    15, 0, r1, cr1, cr0, 0\n" 
    94         "orr    r1, r1, #327680\n"      // 0x50000 
    95         "mcr    15, 0, r1, cr1, cr0, 0\n" 
    96         "ldr    r2, =0xc0200000\n" // was: "[pc, #176]  ; ff810170"  
    97         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    98         "str    r1, [r2, #268]\n" 
    99         "ldr    r1, =0xff\n" // was: "mov ..., #255" 
    100         "str    r1, [r2, #12]\n" 
    101         "str    r1, [r2, #28]\n" 
    102         "str    r1, [r2, #44]\n" 
    103         "str    r1, [r2, #60]\n" 
    104         "str    r1, [r2, #76]\n" 
    105         "str    r1, [r2, #92]\n" 
    106         "str    r1, [r2, #108]\n" 
    107         "str    r1, [r2, #124]\n" 
    108         "str    r1, [r2, #140]\n" 
    109         "str    r1, [r2, #156]\n" 
    110         "str    r1, [r2, #172]\n" 
    111         "str    r1, [r2, #188]\n" 
    112         "str    r1, [r2, #204]\n" 
    113         "str    r1, [r2, #220]\n" 
    114         "str    r1, [r2, #236]\n" 
    115         "str    r1, [r2, #252]\n" 
    116         "ldr    r1, =0xc0400008\n" // was: "[pc, #100]  ; ff810174"  
    117         "ldr    r2, =0x00430005\n" // was: "[pc, #100]  ; ff810178"  
    118         "str    r2, [r1]\n" 
    119         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    120         "ldr    r2, =0xc0243100\n" // was: "[pc, #92]   ; ff81017c"  
    121         "str    r2, [r1]\n" 
    122         "ldr    r2, =0xc0242010\n" // was: "[pc, #88]   ; ff810180"  
    123         "ldr    r1, [r2]\n" 
    124         "orr    r1, r1, #1\n"   // 0x1 
    125         "str    r1, [r2]\n" 
    126         "ldr    r0, =0xffbf8434\n" // canon_data_src 
    127         "ldr    r1, =0x1900\n"     // MEMBASEADDR  
    128         "ldr    r3, =0xebd0\n"     // canon_bss_start 
     51        "LDR    r1, =0xc0410000\n" // was: "[pc, #336]  ; ff810164"  
     52        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     53        "STR    r0, [r1]\n" 
     54        "LDR    r1, =0x78\n" // was: "mov ..., #120" 
     55        "MCR    15, 0, r1, cr1, cr0, 0\n" 
     56        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
     57        "MCR    15, 0, r1, cr7, cr10, 4\n" 
     58        "MCR    15, 0, r1, cr7, cr5, 0\n" 
     59        "MCR    15, 0, r1, cr7, cr6, 0\n" 
     60        "LDR    r0, =0x3d\n" // was: "mov ..., #61" 
     61        "MCR    15, 0, r0, cr6, cr0, 0\n" 
     62        "LDR    r0, =0xc000002f\n" // was: "mov ..., #-1073741777" 
     63        "MCR    15, 0, r0, cr6, cr1, 0\n" 
     64        "LDR    r0, =0x33\n" // was: "mov ..., #51" 
     65        "MCR    15, 0, r0, cr6, cr2, 0\n" 
     66        "LDR    r0, =0x40000033\n" // was: "mov ..., #1073741875" 
     67        "MCR    15, 0, r0, cr6, cr3, 0\n" 
     68        "LDR    r0, =0x80000017\n" // was: "mov ..., #-2147483625" 
     69        "MCR    15, 0, r0, cr6, cr4, 0\n" 
     70        "LDR    r0, =0xff80002d\n" // was: "[pc, #264]  ; ff810168"  
     71        "MCR    15, 0, r0, cr6, cr5, 0\n" 
     72        "LDR    r0, =0x34\n" // was: "mov ..., #52" 
     73        "MCR    15, 0, r0, cr2, cr0, 0\n" 
     74        "LDR    r0, =0x34\n" // was: "mov ..., #52" 
     75        "MCR    15, 0, r0, cr2, cr0, 1\n" 
     76        "LDR    r0, =0x34\n" // was: "mov ..., #52" 
     77        "MCR    15, 0, r0, cr3, cr0, 0\n" 
     78        "LDR    r0, =0x03333330\n" // was: "[pc, #236]  ; ff81016c"  
     79        "MCR    15, 0, r0, cr5, cr0, 2\n" 
     80        "LDR    r0, =0x03333330\n" // was: "[pc, #228]  ; ff81016c"  
     81        "MCR    15, 0, r0, cr5, cr0, 3\n" 
     82        "MRC    15, 0, r0, cr1, cr0, 0\n" 
     83        "ORR    r0, r0, #4096\n"        // 0x1000 
     84        "ORR    r0, r0, #4\n"   // 0x4 
     85        "ORR    r0, r0, #1\n"   // 0x1 
     86        "MCR    15, 0, r0, cr1, cr0, 0\n" 
     87        "LDR    r1, =0x80000006\n" // was: "mov ..., #-2147483642" 
     88        "MCR    15, 0, r1, cr9, cr1, 0\n" 
     89        "LDR    r1, =0x6\n" // was: "mov ..., #6" 
     90        "MCR    15, 0, r1, cr9, cr1, 1\n" 
     91        "MRC    15, 0, r1, cr1, cr0, 0\n" 
     92        "ORR    r1, r1, #327680\n"      // 0x50000 
     93        "MCR    15, 0, r1, cr1, cr0, 0\n" 
     94        "LDR    r2, =0xc0200000\n" // was: "[pc, #176]  ; ff810170"  
     95        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     96        "STR    r1, [r2, #268]\n" 
     97        "LDR    r1, =0xff\n" // was: "mov ..., #255" 
     98        "STR    r1, [r2, #12]\n" 
     99        "STR    r1, [r2, #28]\n" 
     100        "STR    r1, [r2, #44]\n" 
     101        "STR    r1, [r2, #60]\n" 
     102        "STR    r1, [r2, #76]\n" 
     103        "STR    r1, [r2, #92]\n" 
     104        "STR    r1, [r2, #108]\n" 
     105        "STR    r1, [r2, #124]\n" 
     106        "STR    r1, [r2, #140]\n" 
     107        "STR    r1, [r2, #156]\n" 
     108        "STR    r1, [r2, #172]\n" 
     109        "STR    r1, [r2, #188]\n" 
     110        "STR    r1, [r2, #204]\n" 
     111        "STR    r1, [r2, #220]\n" 
     112        "STR    r1, [r2, #236]\n" 
     113        "STR    r1, [r2, #252]\n" 
     114        "LDR    r1, =0xc0400008\n" // was: "[pc, #100]  ; ff810174"  
     115        "LDR    r2, =0x00430005\n" // was: "[pc, #100]  ; ff810178"  
     116        "STR    r2, [r1]\n" 
     117        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     118        "LDR    r2, =0xc0243100\n" // was: "[pc, #92]   ; ff81017c"  
     119        "STR    r2, [r1]\n" 
     120        "LDR    r2, =0xc0242010\n" // was: "[pc, #88]   ; ff810180"  
     121        "LDR    r1, [r2]\n" 
     122        "ORR    r1, r1, #1\n"   // 0x1 
     123        "STR    r1, [r2]\n" 
     124        "LDR    r0, =0xffbf8434\n" // canon_data_src 
     125        "LDR    r1, =0x1900\n"     // MEMBASEADDR  
     126        "LDR    r3, =0xebd0\n"     // canon_bss_start 
    129127"loc_ff81013c:\n" 
    130         "cmp    r1, r3\n" 
    131         "ldrcc  r2, [r0], #4\n" 
    132         "strcc  r2, [r1], #4\n" 
    133         "bcc    loc_ff81013c\n" 
    134         "ldr    r1, =0x0014fe20\n" // MEMISOSTART 
    135         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
     128        "CMP    r1, r3\n" 
     129        "LDRCC  r2, [r0], #4\n" 
     130        "STRCC  r2, [r1], #4\n" 
     131        "BCC    loc_ff81013c\n" 
     132        "LDR    r1, =0x0014fe20\n" // MEMISOSTART 
     133        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
    136134"loc_ff810154:\n" 
    137         "cmp    r3, r1\n" 
    138         "strcc  r2, [r3], #4\n" 
    139         "bcc    loc_ff810154\n" 
    140         "b      sub_ff810354_my\n" 
     135        "CMP    r3, r1\n" 
     136        "STRCC  r2, [r3], #4\n" 
     137        "BCC    loc_ff810154\n" 
     138        "B      sub_ff810354_my\n" 
    141139    ); 
    142140} 
     
    178176 
    179177  asm volatile ( 
    180         "ldr    r0, =0xff8103cc\n" // was: "[pc, #1036] ; ff810768"  
    181         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
    182         "ldr    r3, =0xff810404\n" // was: "[pc, #1032] ; ff81076c"  
     178        "LDR    r0, =0xff8103cc\n" // was: "[pc, #1036] ; ff810768"  
     179        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
     180        "LDR    r3, =0xff810404\n" // was: "[pc, #1032] ; ff81076c"  
    183181"loc_ff810360:\n" 
    184         "cmp    r0, r3\n" 
    185         "ldrcc  r2, [r0], #4\n" 
    186         "strcc  r2, [r1], #4\n" 
    187         "bcc    loc_ff810360\n" 
    188         "ldr    r0, =0xff810404\n" // was: "[pc, #1016] ; ff810770"  
    189         "ldr    r1, =0x4b0\n" // was: "mov ..., #1200" 
    190         "ldr    r3, =0xff810618\n" // was: "[pc, #1012] ; ff810774"  
     182        "CMP    r0, r3\n" 
     183        "LDRCC  r2, [r0], #4\n" 
     184        "STRCC  r2, [r1], #4\n" 
     185        "BCC    loc_ff810360\n" 
     186        "LDR    r0, =0xff810404\n" // was: "[pc, #1016] ; ff810770"  
     187        "LDR    r1, =0x4b0\n" // was: "mov ..., #1200" 
     188        "LDR    r3, =0xff810618\n" // was: "[pc, #1012] ; ff810774"  
    191189"loc_ff81037c:\n" 
    192         "cmp    r0, r3\n" 
    193         "ldrcc  r2, [r0], #4\n" 
    194         "strcc  r2, [r1], #4\n" 
    195         "bcc    loc_ff81037c\n" 
    196         "ldr    r0, =0xd2\n" // was: "mov ..., #210" 
    197         "msr    CPSR_fsxc, r0\n" 
    198         "ldr    sp, =0x1000\n" // was: "mov ..., #4096" 
    199         "ldr    r0, =0xd3\n" // was: "mov ..., #211" 
    200         "msr    CPSR_fsxc, r0\n" 
    201         "ldr    sp, =0x1000\n" // was: "mov ..., #4096" 
    202         "ldr    r0, =0x000006c4\n" // was: "[pc, #20]   ; ff8103c0"  
    203         "ldr    r2, =0xeeeeeeee\n" // was: "[pc, #968]  ; ff810778"  
    204         "ldr    r3, =0x1000\n" // was: "mov ..., #4096" 
     190        "CMP    r0, r3\n" 
     191        "LDRCC  r2, [r0], #4\n" 
     192        "STRCC  r2, [r1], #4\n" 
     193        "BCC    loc_ff81037c\n" 
     194        "LDR    r0, =0xd2\n" // was: "mov ..., #210" 
     195        "MSR    CPSR_fsxc, r0\n" 
     196        "LDR    sp, =0x1000\n" // was: "mov ..., #4096" 
     197        "LDR    r0, =0xd3\n" // was: "mov ..., #211" 
     198        "MSR    CPSR_fsxc, r0\n" 
     199        "LDR    sp, =0x1000\n" // was: "mov ..., #4096" 
     200        "LDR    r0, =0x000006c4\n" // was: "[pc, #20]   ; ff8103c0"  
     201        "LDR    r2, =0xeeeeeeee\n" // was: "[pc, #968]  ; ff810778"  
     202        "LDR    r3, =0x1000\n" // was: "mov ..., #4096" 
    205203"loc_ff8103b0:\n" 
    206         "cmp    r0, r3\n" 
    207         "strcc  r2, [r0], #4\n" 
    208         "bcc    loc_ff8103b0\n" 
    209         "bl     sub_ff811198_my\n" 
     204        "CMP    r0, r3\n" 
     205        "STRCC  r2, [r0], #4\n" 
     206        "BCC    loc_ff8103b0\n" 
     207        "BL     sub_ff811198_my\n" 
    210208        ); 
    211209} 
     
    213211void __attribute__((naked,noinline)) sub_ff811198_my() { 
    214212  asm volatile ( 
    215         "push   {lr}\n"         // (str lr, [sp, #-4]!) 
    216         "sub    sp, sp, #116\n" // 0x74 
    217         "mov    r0, sp\n" 
    218         "ldr    r1, =0x74\n" // was: "mov ..., #116" 
    219         "bl     sub_ffb399c4\n" 
    220         "ldr    r0, =0x53000\n" // was: "mov ..., #339968" 
    221         "str    r0, [sp, #4]\n" 
    222  
    223         "ldr    r0, =new_sa\n" // Replaces original start location 0x14fe20 
    224         "ldr    r0, [r0]\n" 
    225  
    226         "ldr    r2, =0x00339c00\n" // was: "[pc, #136]  ; ff811248"  
    227         "ldr    r1, =0x003324a8\n" // was: "[pc, #140]  ; ff811250"  
    228         "str    r0, [sp, #8]\n" 
    229         "sub    r0, r1, r0\n" 
    230         "add    r3, sp, #12\n"  // 0xc 
    231         "str    r2, [sp]\n" 
    232         "stm    r3, {r0, r1, r2}\n" 
    233         "ldr    r0, =0x22\n" // was: "mov ..., #34" 
    234         "str    r0, [sp, #24]\n" 
    235         "ldr    r0, =0x68\n" // was: "mov ..., #104" 
    236         "str    r0, [sp, #28]\n" 
    237         "ldr    r0, =0x0000019b\n" // was: "[pc, #104]  ; ff811254"  
    238         "ldr    r1, =uHwSetup_my\n" // was: "[pc, #104] ; ff811258" 
    239         "str    r0, [sp, #32]\n" 
    240         "ldr    r0, =0x96\n" // was: "mov ..., #150" 
    241         "str    r0, [sp, #36]\n" 
    242         "ldr    r0, =0x78\n" // was: "mov ..., #120" 
    243         "str    r0, [sp, #40]\n" 
    244         "ldr    r0, =0x64\n" // was: "mov ..., #100" 
    245         "str    r0, [sp, #44]\n" 
    246         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    247         "str    r0, [sp, #48]\n" 
    248         "str    r0, [sp, #52]\n" 
    249         "ldr    r0, =0x10\n" // was: "mov ..., #16" 
    250         "str    r0, [sp, #92]\n" 
    251         "ldr    r0, =0x800\n" // was: "mov ..., #2048" 
    252         "str    r0, [sp, #96]\n" 
    253         "ldr    r0, =0xa0\n" // was: "mov ..., #160" 
    254         "str    r0, [sp, #100]\n" 
    255         "ldr    r0, =0x280\n" // was: "mov ..., #640" 
    256         "str    r0, [sp, #104]\n" 
    257         "mov    r0, sp\n" 
    258         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
    259         "bl     sub_ff813404\n" 
    260         "add    sp, sp, #116\n" // 0x74 
    261         "pop    {pc}\n"         // (ldr pc, [sp], #4) 
     213        "PUSH   {lr}\n"         // (str lr, [sp, #-4]!) 
     214        "SUB    sp, sp, #116\n" // 0x74 
     215        "MOV    r0, sp\n" 
     216        "LDR    r1, =0x74\n" // was: "mov ..., #116" 
     217        "BL     sub_ffb399c4\n" 
     218        "LDR    r0, =0x53000\n" // was: "mov ..., #339968" 
     219        "STR    r0, [sp, #4]\n" 
     220 
     221        "LDR    r0, =new_sa\n" // Replaces original start location 0x14fe20 
     222        "LDR    r0, [r0]\n" 
     223 
     224        "LDR    r2, =0x00339c00\n" // was: "[pc, #136]  ; ff811248"  
     225        "LDR    r1, =0x003324a8\n" // was: "[pc, #140]  ; ff811250"  
     226        "STR    r0, [sp, #8]\n" 
     227        "SUB    r0, r1, r0\n" 
     228        "ADD    r3, sp, #12\n"  // 0xc 
     229        "STR    r2, [sp]\n" 
     230        "STM    r3, {r0, r1, r2}\n" 
     231        "LDR    r0, =0x22\n" // was: "mov ..., #34" 
     232        "STR    r0, [sp, #24]\n" 
     233        "LDR    r0, =0x68\n" // was: "mov ..., #104" 
     234        "STR    r0, [sp, #28]\n" 
     235        "LDR    r0, =0x0000019b\n" // was: "[pc, #104]  ; ff811254"  
     236        "LDR    r1, =uHwSetup_my\n" // was: "[pc, #104] ; ff811258" 
     237        "STR    r0, [sp, #32]\n" 
     238        "LDR    r0, =0x96\n" // was: "mov ..., #150" 
     239        "STR    r0, [sp, #36]\n" 
     240        "LDR    r0, =0x78\n" // was: "mov ..., #120" 
     241        "STR    r0, [sp, #40]\n" 
     242        "LDR    r0, =0x64\n" // was: "mov ..., #100" 
     243        "STR    r0, [sp, #44]\n" 
     244        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     245        "STR    r0, [sp, #48]\n" 
     246        "STR    r0, [sp, #52]\n" 
     247        "LDR    r0, =0x10\n" // was: "mov ..., #16" 
     248        "STR    r0, [sp, #92]\n" 
     249        "LDR    r0, =0x800\n" // was: "mov ..., #2048" 
     250        "STR    r0, [sp, #96]\n" 
     251        "LDR    r0, =0xa0\n" // was: "mov ..., #160" 
     252        "STR    r0, [sp, #100]\n" 
     253        "LDR    r0, =0x280\n" // was: "mov ..., #640" 
     254        "STR    r0, [sp, #104]\n" 
     255        "MOV    r0, sp\n" 
     256        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
     257        "BL     sub_ff813404\n" 
     258        "ADD    sp, sp, #116\n" // 0x74 
     259        "POP    {pc}\n"         // (ldr pc, [sp], #4) 
    262260    ); 
    263261} 
     
    265263void __attribute__((naked,noinline)) uHwSetup_my() { // 0xff815e58 
    266264  asm volatile ( 
    267         "push   {r4, lr}\n" 
    268         "bl     sub_ff810b20\n" 
    269         "bl     sub_ff81a244\n" 
    270         "cmp    r0, #0\n"       // 0x0 
    271         "ldrlt  r0, =0xff815f6c\n" // was: "addlt       r0, pc, #252"   *"dmSetup" 
    272         "bllt   sub_ff815f4c\n" 
    273         "bl     sub_ff815a94\n" 
    274         "cmp    r0, #0\n"       // 0x0 
    275         "ldrlt  r0, =0xff815f74\n" // was: "addlt       r0, pc, #244"   *"termDriverInit" 
    276         "bllt   sub_ff815f4c\n" 
    277         "ldr    r0, =0xff815f84\n" // was: "add r0, pc, #252"   *"/_term" 
    278         "bl     sub_ff815b7c\n" 
    279         "cmp    r0, #0\n"       // 0x0 
    280         "ldrlt  r0, =0xff815f8c\n" // was: "addlt       r0, pc, #248"   *"termDeviceCreate" 
    281         "bllt   sub_ff815f4c\n" 
    282         "ldr    r0, =0xff815f84\n" // was: "add r0, pc, #232"   *"/_term" 
    283         "bl     sub_ff813bf0\n" 
    284         "cmp    r0, #0\n"       // 0x0 
    285         "ldrlt  r0, =0xff815fa0\n" // was: "addlt       r0, pc, #248"   *"stdioSetup" 
    286         "bllt   sub_ff815f4c\n" 
    287         "bl     sub_ff819c3c\n" 
    288         "cmp    r0, #0\n"       // 0x0 
    289         "ldrlt  r0, =0xff815fac\n" // was: "addlt       r0, pc, #244"   *"stdlibSetup" 
    290         "bllt   sub_ff815f4c\n" 
    291         "bl     sub_ff81167c\n" 
    292         "cmp    r0, #0\n"       // 0x0 
    293         "ldrlt  r0, =0xff815fb8\n" // was: "addlt       r0, pc, #240"   *"armlib_setup" 
    294         "bllt   sub_ff815f4c\n" 
    295         "pop    {r4, lr}\n" 
    296         "b      taskcreate_Startup_my\n" // ff81faf0 
     265        "PUSH   {r4, lr}\n" 
     266        "BL     sub_ff810b20\n" 
     267        "BL     sub_ff81a244\n" 
     268        "CMP    r0, #0\n"       // 0x0 
     269        "LDRLT  r0, =0xff815f6c\n" // was: "addlt       r0, pc, #252"   *"dmSetup" 
     270        "BLLT   sub_ff815f4c\n" 
     271        "BL     sub_ff815a94\n" 
     272        "CMP    r0, #0\n"       // 0x0 
     273        "LDRLT  r0, =0xff815f74\n" // was: "addlt       r0, pc, #244"   *"termDriverInit" 
     274        "BLLT   sub_ff815f4c\n" 
     275        "LDR    r0, =0xff815f84\n" // was: "add r0, pc, #252"   *"/_term" 
     276        "BL     sub_ff815b7c\n" 
     277        "CMP    r0, #0\n"       // 0x0 
     278        "LDRLT  r0, =0xff815f8c\n" // was: "addlt       r0, pc, #248"   *"termDeviceCreate" 
     279        "BLLT   sub_ff815f4c\n" 
     280        "LDR    r0, =0xff815f84\n" // was: "add r0, pc, #232"   *"/_term" 
     281        "BL     sub_ff813bf0\n" 
     282        "CMP    r0, #0\n"       // 0x0 
     283        "LDRLT  r0, =0xff815fa0\n" // was: "addlt       r0, pc, #248"   *"stdioSetup" 
     284        "BLLT   sub_ff815f4c\n" 
     285        "BL     sub_ff819c3c\n" 
     286        "CMP    r0, #0\n"       // 0x0 
     287        "LDRLT  r0, =0xff815fac\n" // was: "addlt       r0, pc, #244"   *"stdlibSetup" 
     288        "BLLT   sub_ff815f4c\n" 
     289        "BL     sub_ff81167c\n" 
     290        "CMP    r0, #0\n"       // 0x0 
     291        "LDRLT  r0, =0xff815fb8\n" // was: "addlt       r0, pc, #240"   *"armlib_setup" 
     292        "BLLT   sub_ff815f4c\n" 
     293        "POP    {r4, lr}\n" 
     294        "B      taskcreate_Startup_my\n" // ff81faf0 
    297295    ); 
    298296} 
     
    300298void __attribute__((naked,noinline)) taskcreate_Startup_my() { // 0xff81faf0 
    301299  asm volatile ( 
    302         "push   {r3, lr}\n" 
    303         "bl     sub_ff834340\n" 
    304         "bl     sub_ff83ba88\n" 
    305         "cmp    r0, #0\n"       // 0x0 
    306         "bne    loc_ff81fb34\n" 
    307         "bl     sub_ff835b2c\n" 
    308         "cmp    r0, #0\n"       // 0x0 
    309         "beq    loc_ff81fb34\n" 
    310         "bl     sub_ff83433c\n" 
    311         "cmp    r0, #0\n"       // 0x0 
    312         "bne    loc_ff81fb34\n" 
    313         "bl     sub_ff8339dc\n" 
    314         "ldr    r1, =0xc0220000\n" // was: "[pc, #76]   ; ff81fb74"  
    315         "ldr    r0, =0x44\n" // was: "mov ..., #68" 
    316         "str    r0, [r1, #28]\n" 
    317         "bl     sub_ff833bc8\n" 
     300        "PUSH   {r3, lr}\n" 
     301        "BL     sub_ff834340\n" 
     302        "BL     sub_ff83ba88\n" 
     303        "CMP    r0, #0\n"       // 0x0 
     304        "BNE    loc_ff81fb34\n" 
     305        "BL     sub_ff835b2c\n" 
     306        "CMP    r0, #0\n"       // 0x0 
     307        "BEQ    loc_ff81fb34\n" 
     308        "BL     sub_ff83433c\n" 
     309        "CMP    r0, #0\n"       // 0x0 
     310        "BNE    loc_ff81fb34\n" 
     311        "BL     sub_ff8339dc\n" 
     312        "LDR    r1, =0xc0220000\n" // was: "[pc, #76]   ; ff81fb74"  
     313        "LDR    r0, =0x44\n" // was: "mov ..., #68" 
     314        "STR    r0, [r1, #28]\n" 
     315        "BL     sub_ff833bc8\n" 
    318316"loc_ff81fb30:\n" 
    319         "b      loc_ff81fb30\n" 
     317        "B      loc_ff81fb30\n" 
    320318"loc_ff81fb34:\n" // 3 refs 
    321         //"bl   sub_ff834348\n" // disabled for correct Power Button detection 
    322         //"bl   sub_ff834344\n" // nullsub 
    323         "bl     sub_ff839cb0\n" 
    324         "ldr    r1, =0x0038e000\n" // was: "[pc, #48]   ; ff81fb78"  
    325         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    326         "bl     sub_ff83a0f8\n" 
    327         "bl     sub_ff839ea4\n" 
    328         "ldr    r3, =0x0\n" // was: "mov ..., #0" 
    329         "str    r3, [sp]\n" 
    330         "ldr    r3, =task_Startup_my\n" // was: "sub    r3, pc, #212\n" // ff81fa8c: (e92d4010)  
    331         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
    332         "ldr    r1, =0x19\n" // was: "mov ..., #25" 
    333         "add    r0, pc, #16\n"  // ff81fb7c: (72617453)  *"Startup" 
    334         "bl     sub_ff81e83c\n" 
    335         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    336         "pop    {ip, pc}\n" 
     319        //"BL   sub_ff834348\n" // disabled for correct Power Button detection 
     320        //"BL   sub_ff834344\n" // nullsub 
     321        "BL     sub_ff839cb0\n" 
     322        "LDR    r1, =0x0038e000\n" // was: "[pc, #48]   ; ff81fb78"  
     323        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     324        "BL     sub_ff83a0f8\n" 
     325        "BL     sub_ff839ea4\n" 
     326        "LDR    r3, =0x0\n" // was: "mov ..., #0" 
     327        "STR    r3, [sp]\n" 
     328        "LDR    r3, =task_Startup_my\n" // was: "sub    r3, pc, #212\n" // ff81fa8c: (e92d4010)  
     329        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
     330        "LDR    r1, =0x19\n" // was: "mov ..., #25" 
     331        "ADD    r0, pc, #16\n"  // ff81fb7c: (72617453)  *"Startup" 
     332        "BL     sub_ff81e83c\n" 
     333        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     334        "POP    {ip, pc}\n" 
    337335    ); 
    338336} 
     
    340338void __attribute__((naked,noinline)) task_Startup_my() { // ff81fa8c 
    341339  asm volatile ( 
    342         "push   {r4, lr}\n" 
    343         "bl     sub_ff81650c\n" // taskcreate_ClockSave 
    344         "bl     sub_ff83543c\n" 
    345         "bl     sub_ff833638\n" 
    346         "bl     sub_ff83bac8\n" // j_nullsub 
    347         "bl     sub_ff83bcb4\n" 
    348         //"bl   sub_ff83bb5c\n" // original: StartSdInit() -> StartDiskboot() 
     340        "PUSH   {r4, lr}\n" 
     341        "BL     sub_ff81650c\n" // taskcreate_ClockSave 
     342        "BL     sub_ff83543c\n" 
     343        "BL     sub_ff833638\n" 
     344        "BL     sub_ff83bac8\n" // j_nullsub 
     345        "BL     sub_ff83bcb4\n" 
     346        //"BL   sub_ff83bb5c\n" // original: StartSdInit() -> StartDiskboot() 
    349347    ); 
    350348 
     
    354352 
    355353  asm volatile ( 
    356         "bl     sub_ff83be58\n" 
    357         "bl     sub_ff8322e4\n" 
    358         "bl     sub_ff83bce4\n" 
    359         "bl     sub_ff839454\n" 
    360         "bl     sub_ff83be5c\n" 
    361         "bl     taskcreate_PhySw_my\n" // sub_ff834230 
    362         //"bl   sub_ff834230\n" 
    363         "bl     task_ShootSeqTask_my\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff 
    364         //"bl   sub_ff8377a8\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff 
    365         "bl     sub_ff83be74\n" 
    366         //"bl   sub_ff8316a8\n" // nullsub 
    367         "bl     sub_ff833090\n" // Battery.c:0 
    368         "bl     sub_ff83b860\n" // taskcreate_Bye 
    369         "bl     sub_ff8335ec\n" 
    370         "bl     sub_ff83302c\n" // taskcreate_BatteryTask / taskcreate_TempCheck 
    371         "bl     sub_ff832318\n" 
    372         "bl     sub_ff83c8f4\n" // taskcreate_FactoryModeController 
    373         "bl     sub_ff833004\n" // taskcreate_Ui 
    374         "pop    {r4, lr}\n" 
    375         "b      sub_ff81662c\n" // MLHClock.c:992 
     354        "BL     sub_ff83be58\n" 
     355        "BL     sub_ff8322e4\n" 
     356        "BL     sub_ff83bce4\n" 
     357        "BL     sub_ff839454\n" 
     358        "BL     sub_ff83be5c\n" 
     359        "BL     taskcreate_PhySw_my\n" // sub_ff834230 
     360        //"BL   sub_ff834230\n" 
     361        "BL     task_ShootSeqTask_my\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff 
     362        //"BL   sub_ff8377a8\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff 
     363        "BL     sub_ff83be74\n" 
     364        //"BL   sub_ff8316a8\n" // nullsub 
     365        "BL     sub_ff833090\n" // Battery.c:0 
     366        "BL     sub_ff83b860\n" // taskcreate_Bye 
     367        "BL     sub_ff8335ec\n" 
     368        "BL     sub_ff83302c\n" // taskcreate_BatteryTask / taskcreate_TempCheck 
     369        "BL     sub_ff832318\n" 
     370        "BL     sub_ff83c8f4\n" // taskcreate_FactoryModeController 
     371        "BL     sub_ff833004\n" // taskcreate_Ui 
     372        "POP    {r4, lr}\n" 
     373        "B      sub_ff81662c\n" // MLHClock.c:992 
    376374    ); 
    377375} 
     
    379377void __attribute__((naked,noinline)) taskcreate_PhySw_my() { // 0xff834230 
    380378  asm volatile ( 
    381         "push   {r3, r4, r5, lr}\n" 
    382         "ldr    r4, =0x00001c20\n" // was: "[pc, #476]  ; ff834418"  
    383         "ldr    r0, [r4, #16]\n" 
    384         "cmp    r0, #0\n"       // 0x0 
    385         "bne    loc_ff834264\n" 
    386         "ldr    r3, =0x0\n" // was: "mov ..., #0" 
    387         "str    r3, [sp]\n" 
    388         //"ldr  r3, =0xff8341fc\n" //    
    389         "ldr    r3, =mykbd_task\n" // 0xff8341fc   
     379        "PUSH   {r3, r4, r5, lr}\n" 
     380        "LDR    r4, =0x00001c20\n" // was: "[pc, #476]  ; ff834418"  
     381        "LDR    r0, [r4, #16]\n" 
     382        "CMP    r0, #0\n"       // 0x0 
     383        "BNE    loc_ff834264\n" 
     384        "LDR    r3, =0x0\n" // was: "mov ..., #0" 
     385        "STR    r3, [sp]\n" 
     386        //"LDR  r3, =0xff8341fc\n" //    
     387        "LDR    r3, =mykbd_task\n" // 0xff8341fc   
    390388        // Increate stack size from 0x800 to 0x2000 for new task_PhySw so we don't have to do stack switch 
    391         "ldr    r2, =0x2000\n" 
    392         //"ldr  r2, =0x800\n" // was: "mov ..., #2048" 
    393         "ldr    r1, =0x17\n" // was: "mov ..., #23" 
    394         "ldr    r0, =0xff834438\n" // was: "add r0, pc, #472"   *"PhySw" 
    395         "bl     sub_ff839ef8\n" // KernelCreateTask 
    396         "str    r0, [r4, #16]\n" 
     389        "LDR    r2, =0x2000\n" 
     390        //"LDR  r2, =0x800\n" // was: "mov ..., #2048" 
     391        "LDR    r1, =0x17\n" // was: "mov ..., #23" 
     392        "LDR    r0, =0xff834438\n" // was: "add r0, pc, #472"   *"PhySw" 
     393        "BL     sub_ff839ef8\n" // KernelCreateTask 
     394        "STR    r0, [r4, #16]\n" 
    397395"loc_ff834264:\n" 
    398         "bl     sub_ff88a644\n" 
    399         "bl     sub_ff835aa4\n" // IsFactoryMode 
    400         "cmp    r0, #0\n"       // 0x0 
    401         "ldreq  r1, =0x0003280c\n" // was: "[pc, #428]  ; ff834424"  
    402         "popeq  {r3, r4, r5, lr}\n" 
    403         "beq    sub_ff88a5cc\n" // eventproc_export_OpLog_Start 
    404         "pop    {r3, r4, r5, pc}\n" 
     396        "BL     sub_ff88a644\n" 
     397        "BL     sub_ff835aa4\n" // IsFactoryMode 
     398        "CMP    r0, #0\n"       // 0x0 
     399        "LDREQ  r1, =0x0003280c\n" // was: "[pc, #428]  ; ff834424"  
     400        "POPEQ  {r3, r4, r5, lr}\n" 
     401        "BEQ    sub_ff88a5cc\n" // eventproc_export_OpLog_Start 
     402        "POP    {r3, r4, r5, pc}\n" 
    405403    ); 
    406404} 
     
    408406void __attribute__((naked,noinline)) task_ShootSeqTask_my() { 
    409407asm volatile ( 
    410         "push   {r4, lr}\n" 
    411         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
    412         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    413         "bl     sub_ff839f50\n" 
    414         "ldr    r4, =0x00001c7c\n" // was: "[pc, #-492] ; ff8375d4"  
    415         "str    r0, [r4, #16]\n" 
    416         "bl     sub_ff87f1ec\n" 
    417         "bl     sub_ff880934\n" // taskcreate_SsTask 
    418         "bl     sub_ff87e334\n" 
    419         "bl     sub_ff878d6c_my\n" 
    420         "bl     sub_ff87f4d0\n" 
    421         "ldr    r0, [r4, #16]\n" 
    422         "pop    {r4, lr}\n" 
    423         "ldr    r1, =0x1000\n" // was: "mov ..., #4096" 
    424         "b      sub_ff883f9c\n" 
     408        "PUSH   {r4, lr}\n" 
     409        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
     410        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     411        "BL     sub_ff839f50\n" 
     412        "LDR    r4, =0x00001c7c\n" // was: "[pc, #-492] ; ff8375d4"  
     413        "STR    r0, [r4, #16]\n" 
     414        "BL     sub_ff87f1ec\n" 
     415        "BL     sub_ff880934\n" // taskcreate_SsTask 
     416        "BL     sub_ff87e334\n" 
     417        "BL     sub_ff878d6c_my\n" 
     418        "BL     sub_ff87f4d0\n" 
     419        "LDR    r0, [r4, #16]\n" 
     420        "POP    {r4, lr}\n" 
     421        "LDR    r1, =0x1000\n" // was: "mov ..., #4096" 
     422        "B      sub_ff883f9c\n" 
    425423  ); 
    426424} 
     
    428426void __attribute__((naked,noinline)) sub_ff878d6c_my() { // was FF878D1C_my 
    429427  asm volatile ( 
    430         "push   {r4, lr}\n" 
    431         "ldr    r4, =0x00002b64\n" // was: "[pc, #-3512]        ; ff877fc0"  
    432         "ldr    r0, [r4, #12]\n" 
    433         "cmp    r0, #0\n"       // 0x0 
    434         "bne    loc_ff878dd8\n" 
    435         "bl     sub_ff87c898\n" // nullsub 
    436         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    437         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    438         "bl     sub_ff839f74\n" // KernelMisc.c:55 
    439         "str    r0, [r4, #4]\n" 
    440         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    441         "ldr    r1, =0x8\n" // was: "mov ..., #8" 
    442         "bl     sub_ff839f50\n" // KernelMisc.c:43 
    443         "str    r0, [r4, #8]\n" 
    444         "bl     sub_ff87914c\n" 
    445         "bl     sub_ff8798d4\n" 
    446         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    447         "str    r0, [r4]\n" 
    448         "add    r0, r4, #16\n"  // 0x10 
    449         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
    450         "str    r1, [r0], #4\n" 
    451         "str    r1, [r0]\n" 
    452         "bl     sub_ff879ae4\n" 
    453         "bl     sub_ff87f6d0\n" 
    454         "bl     sub_ff87ccc4\n" 
    455         "bl     sub_ff87a628_my\n" // taskcreate_CaptSeqTask 
    456         "bl     sub_ff87b6d8\n" 
     428        "PUSH   {r4, lr}\n" 
     429        "LDR    r4, =0x00002b64\n" // was: "[pc, #-3512]        ; ff877fc0"  
     430        "LDR    r0, [r4, #12]\n" 
     431        "CMP    r0, #0\n"       // 0x0 
     432        "BNE    loc_ff878dd8\n" 
     433        "BL     sub_ff87c898\n" // nullsub 
     434        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     435        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     436        "BL     sub_ff839f74\n" // KernelMisc.c:55 
     437        "STR    r0, [r4, #4]\n" 
     438        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     439        "LDR    r1, =0x8\n" // was: "mov ..., #8" 
     440        "BL     sub_ff839f50\n" // KernelMisc.c:43 
     441        "STR    r0, [r4, #8]\n" 
     442        "BL     sub_ff87914c\n" 
     443        "BL     sub_ff8798d4\n" 
     444        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     445        "STR    r0, [r4]\n" 
     446        "ADD    r0, r4, #16\n"  // 0x10 
     447        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
     448        "STR    r1, [r0], #4\n" 
     449        "STR    r1, [r0]\n" 
     450        "BL     sub_ff879ae4\n" 
     451        "BL     sub_ff87f6d0\n" 
     452        "BL     sub_ff87ccc4\n" 
     453        "BL     sub_ff87a628_my\n" // taskcreate_CaptSeqTask 
     454        "BL     sub_ff87b6d8\n" 
    457455"loc_ff878dd8:\n" 
    458         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    459         "str    r0, [r4, #12]\n" 
    460         "pop    {r4, pc}\n" 
     456        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     457        "STR    r0, [r4, #12]\n" 
     458        "POP    {r4, pc}\n" 
    461459    ); 
    462460} 
     
    464462void __attribute__((naked,noinline)) sub_ff87a628_my() { // was sub_FF87A5D8_my 
    465463  asm volatile ( 
    466         "push   {r3, r4, r5, lr}\n" 
    467         "ldr    r2, =0x00039578\n" // was: "[pc, #-1920]        ; ff879eb4"  
    468         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    469         "ldr    r1, =0x0\n" // was: "mov ..., #0" 
     464        "PUSH   {r3, r4, r5, lr}\n" 
     465        "LDR    r2, =0x00039578\n" // was: "[pc, #-1920]        ; ff879eb4"  
     466        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     467        "LDR    r1, =0x0\n" // was: "mov ..., #0" 
    470468"loc_ff87a638:\n" 
    471         "add    r3, r2, r0, lsl #4\n" 
    472         "add    r0, r0, #1\n"   // 0x1 
    473         "cmp    r0, #5\n"       // 0x5 
    474         "str    r1, [r3, #8]\n" 
    475         "bcc    loc_ff87a638\n" 
    476         "bl     sub_ff87b214\n" 
    477         "bl     sub_ff95f458\n" // nullsub 
    478         "bl     sub_ff960018\n" 
    479         "ldr    r1, =0x5\n" // was: "mov ..., #5" 
    480         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    481         "bl     sub_ff839f2c\n" // KernelMisc.c:31 
    482         "ldr    r4, =0x00002b9c\n" // was: "[pc, #-2000]        ; ff879e9c"  
    483         "ldr    r1, =0x00101dff\n" // was: "[pc, #-1968]        ; ff879ec0"  
    484         "str    r0, [r4, #4]\n" 
    485         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    486         "bl     sub_ff839f50\n" // KernelMisc.c:43 
    487         "str    r0, [r4]\n" 
    488         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    489         "ldr    r1, =0x1\n" // was: "mov ..., #1" 
    490         "bl     sub_ff839f74\n" // KernelMisc.c:55 
    491         "str    r0, [r4, #8]\n" 
    492         "ldr    r3, =0x0\n" // was: "mov ..., #0" 
    493         "str    r3, [sp]\n" 
    494         //"ldr    r3, =capt_seq_task\n" 
    495         "ldr    r3, =0xff87a310\n" // capt_seq_task 
    496         "ldr    r0, =0xff87a898\n" // *"CaptSeqTask" 
    497         "ldr    r2, =0x1000\n" // was: "mov ..., #4096" 
    498         "ldr    r1, =0x17\n" // was: "mov ..., #23" 
    499         "bl     sub_ff839ef8\n" // was FF839EF8 KernelCreateTask ; LOCATION: KernelMisc.c:19 
    500         "pop    {r3, r4, r5, pc}\n" 
     469        "ADD    r3, r2, r0, lsl #4\n" 
     470        "ADD    r0, r0, #1\n"   // 0x1 
     471        "CMP    r0, #5\n"       // 0x5 
     472        "STR    r1, [r3, #8]\n" 
     473        "BCC    loc_ff87a638\n" 
     474        "BL     sub_ff87b214\n" 
     475        "BL     sub_ff95f458\n" // nullsub 
     476        "BL     sub_ff960018\n" 
     477        "LDR    r1, =0x5\n" // was: "mov ..., #5" 
     478        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     479        "BL     sub_ff839f2c\n" // KernelMisc.c:31 
     480        "LDR    r4, =0x00002b9c\n" // was: "[pc, #-2000]        ; ff879e9c"  
     481        "LDR    r1, =0x00101dff\n" // was: "[pc, #-1968]        ; ff879ec0"  
     482        "STR    r0, [r4, #4]\n" 
     483        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     484        "BL     sub_ff839f50\n" // KernelMisc.c:43 
     485        "STR    r0, [r4]\n" 
     486        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     487        "LDR    r1, =0x1\n" // was: "mov ..., #1" 
     488        "BL     sub_ff839f74\n" // KernelMisc.c:55 
     489        "STR    r0, [r4, #8]\n" 
     490        "LDR    r3, =0x0\n" // was: "mov ..., #0" 
     491        "STR    r3, [sp]\n" 
     492        //"LDR    r3, =capt_seq_task\n" 
     493        "LDR    r3, =0xff87a310\n" // capt_seq_task 
     494        "LDR    r0, =0xff87a898\n" // *"CaptSeqTask" 
     495        "LDR    r2, =0x1000\n" // was: "mov ..., #4096" 
     496        "LDR    r1, =0x17\n" // was: "mov ..., #23" 
     497        "BL     sub_ff839ef8\n" // was FF839EF8 KernelCreateTask ; LOCATION: KernelMisc.c:19 
     498        "POP    {r3, r4, r5, pc}\n" 
    501499    ); 
    502500} 
     
    506504void __attribute__((naked,noinline)) sub_ff88cb3c_my() {    // sub_FF88FF58_my 
    507505  asm volatile ( 
    508         "push   {r4, lr}\n" 
    509         "ldr    r0, =0x3\n" // was: "mov ..., #3" 
    510         "bl     sub_ff86f084_my\n" 
    511         "bl     sub_ff94002c\n" 
    512         "ldr    r4, =0x00002f54\n" // was: "[pc, #112]  ; ff88cbc4"  
    513         "ldr    r0, [r4, #4]\n" 
    514         "cmp    r0, #0\n"       // 0x0 
    515         "bne    loc_ff88cb74\n" 
    516         "bl     sub_ff86e2cc\n" 
    517         "bl     sub_ff9344f0\n" 
    518         "bl     sub_ff86e2cc\n" 
    519         "bl     sub_ff86a6f0\n" 
    520         "bl     sub_ff86e1cc\n" 
    521         "bl     sub_ff93458c\n" 
     506        "PUSH   {r4, lr}\n" 
     507        "LDR    r0, =0x3\n" // was: "mov ..., #3" 
     508        "BL     sub_ff86f084_my\n" 
     509        "BL     sub_ff94002c\n" 
     510        "LDR    r4, =0x00002f54\n" // was: "[pc, #112]  ; ff88cbc4"  
     511        "LDR    r0, [r4, #4]\n" 
     512        "CMP    r0, #0\n"       // 0x0 
     513        "BNE    loc_ff88cb74\n" 
     514        "BL     sub_ff86e2cc\n" 
     515        "BL     sub_ff9344f0\n" 
     516        "BL     sub_ff86e2cc\n" 
     517        "BL     sub_ff86a6f0\n" 
     518        "BL     sub_ff86e1cc\n" 
     519        "BL     sub_ff93458c\n" 
    522520"loc_ff88cb74:\n" 
    523         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    524         "str    r0, [r4]\n" 
    525         "pop    {r4, pc}\n" 
     521        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     522        "STR    r0, [r4]\n" 
     523        "POP    {r4, pc}\n" 
    526524    ); 
    527525}; 
     
    529527void __attribute__((naked,noinline)) sub_ff86f084_my() {    // sub_FF871A04_my 
    530528  asm volatile ( 
    531         "push   {r4, r5, r6, r7, r8, lr}\n" 
    532         "mov    r8, r0\n" 
    533         "bl     sub_ff86f004\n" 
    534         "ldr    r1, =0x00038448\n" // was: "[pc, #-2052]        ; ff86e894"  
    535         "mov    r6, r0\n" 
    536         "add    r4, r1, r0, lsl #7\n" 
    537         "ldr    r0, [r4, #108]\n" 
    538         "cmp    r0, #4\n"       // 0x4 
    539         "ldreq  r1, =0x0000085a\n" // was: "[pc, #208]  ; ff86f17c"  
    540         "ldreq  r0, =0xff86eb44\n" // was: "[pc, #200]  ; ff86f178"  **"Mounter.c" 
    541         "bleq   sub_ff81eb14\n" 
    542         "mov    r1, r8\n" 
    543         "mov    r0, r6\n" 
    544         "bl     sub_ff86e8bc\n" 
    545         "ldr    r0, [r4, #56]\n" 
    546         "bl     sub_ff86f724\n" 
    547         "cmp    r0, #0\n"       // 0x0 
    548         "streq  r0, [r4, #108]\n" 
    549         "mov    r0, r6\n" 
    550         "bl     sub_ff86e94c\n" 
    551         "mov    r0, r6\n" 
    552         "bl     sub_ff86ecac\n" 
    553         "mov    r5, r0\n" 
    554         "mov    r0, r6\n" 
    555         "bl     sub_ff86eedc_my\n" 
    556         "ldr    r6, [r4, #60]\n" 
    557         "and    r7, r5, r0\n" 
    558         "cmp    r6, #0\n"       // 0x0 
    559         "ldr    r1, [r4, #56]\n" 
    560         "ldreq  r0, =0x80000001\n" // was: "mov ..., #-2147483647" 
    561         "ldr    r5, =0x0\n" // was: "mov ..., #0" 
    562         "beq    loc_ff86f134\n" 
    563         "mov    r0, r1\n" 
    564         "bl     sub_ff86e434\n" 
    565         "cmp    r0, #0\n"       // 0x0 
    566         "ldrne  r5, =0x4\n" // was: "mov ..., #4" 
    567         "cmp    r6, #5\n"       // 0x5 
    568         "orrne  r0, r5, #1\n"   // 0x1 
    569         "biceq  r0, r5, #1\n"   // 0x1 
    570         "cmp    r7, #0\n"       // 0x0 
    571         "biceq  r0, r0, #2\n"   // 0x2 
    572         "orreq  r0, r0, #0x80000000\n" 
    573         "bicne  r0, r0, #0x80000000\n" 
    574         "orrne  r0, r0, #2\n"   // 0x2 
     529        "PUSH   {r4, r5, r6, r7, r8, lr}\n" 
     530        "MOV    r8, r0\n" 
     531        "BL     sub_ff86f004\n" 
     532        "LDR    r1, =0x00038448\n" // was: "[pc, #-2052]        ; ff86e894"  
     533        "MOV    r6, r0\n" 
     534        "ADD    r4, r1, r0, lsl #7\n" 
     535        "LDR    r0, [r4, #108]\n" 
     536        "CMP    r0, #4\n"       // 0x4 
     537        "LDREQ  r1, =0x0000085a\n" // was: "[pc, #208]  ; ff86f17c"  
     538        "LDREQ  r0, =0xff86eb44\n" // was: "[pc, #200]  ; ff86f178"  **"Mounter.c" 
     539        "BLEQ   sub_ff81eb14\n" 
     540        "MOV    r1, r8\n" 
     541        "MOV    r0, r6\n" 
     542        "BL     sub_ff86e8bc\n" 
     543        "LDR    r0, [r4, #56]\n" 
     544        "BL     sub_ff86f724\n" 
     545        "CMP    r0, #0\n"       // 0x0 
     546        "STREQ  r0, [r4, #108]\n" 
     547        "MOV    r0, r6\n" 
     548        "BL     sub_ff86e94c\n" 
     549        "MOV    r0, r6\n" 
     550        "BL     sub_ff86ecac\n" 
     551        "MOV    r5, r0\n" 
     552        "MOV    r0, r6\n" 
     553        "BL     sub_ff86eedc_my\n" 
     554        "LDR    r6, [r4, #60]\n" 
     555        "AND    r7, r5, r0\n" 
     556        "CMP    r6, #0\n"       // 0x0 
     557        "LDR    r1, [r4, #56]\n" 
     558        "LDREQ  r0, =0x80000001\n" // was: "mov ..., #-2147483647" 
     559        "LDR    r5, =0x0\n" // was: "mov ..., #0" 
     560        "BEQ    loc_ff86f134\n" 
     561        "MOV    r0, r1\n" 
     562        "BL     sub_ff86e434\n" 
     563        "CMP    r0, #0\n"       // 0x0 
     564        "LDRNE  r5, =0x4\n" // was: "mov ..., #4" 
     565        "CMP    r6, #5\n"       // 0x5 
     566        "ORRNE  r0, r5, #1\n"   // 0x1 
     567        "BICEQ  r0, r5, #1\n"   // 0x1 
     568        "CMP    r7, #0\n"       // 0x0 
     569        "BICEQ  r0, r0, #2\n"   // 0x2 
     570        "ORREQ  r0, r0, #0x80000000\n" 
     571        "BICNE  r0, r0, #0x80000000\n" 
     572        "ORRNE  r0, r0, #2\n"   // 0x2 
    575573"loc_ff86f134:\n" 
    576         "cmp    r8, #7\n"       // 0x7 
    577         "str    r0, [r4, #64]\n" 
    578         "popne  {r4, r5, r6, r7, r8, pc}\n" 
    579         "mov    r0, r8\n" 
    580         "bl     sub_ff86f054\n" 
    581         "cmp    r0, #0\n"       // 0x0 
    582         "popeq  {r4, r5, r6, r7, r8, lr}\n" 
    583         "ldreq  r0, =0xff86f180\n" // was: "addeq       r0, pc, #40"   *"EMEM MOUNT ERROR!!!" 
    584         "beq    sub_ff81177c\n" 
    585         "pop    {r4, r5, r6, r7, r8, pc}\n" 
     574        "CMP    r8, #7\n"       // 0x7 
     575        "STR    r0, [r4, #64]\n" 
     576        "POPNE  {r4, r5, r6, r7, r8, pc}\n" 
     577        "MOV    r0, r8\n" 
     578        "BL     sub_ff86f054\n" 
     579        "CMP    r0, #0\n"       // 0x0 
     580        "POPEQ  {r4, r5, r6, r7, r8, lr}\n" 
     581        "LDREQ  r0, =0xff86f180\n" // was: "addeq       r0, pc, #40"   *"EMEM MOUNT ERROR!!!" 
     582        "BEQ    sub_ff81177c\n" 
     583        "POP    {r4, r5, r6, r7, r8, pc}\n" 
    586584    ); 
    587585}; 
     
    589587void __attribute__((naked,noinline)) sub_ff86eedc_my() {    // FF87185C 
    590588  asm volatile ( 
    591         "push   {r3, r4, r5, r6, r7, r8, r9, lr}\n" 
    592         "mov    r5, r0\n" 
    593         "ldr    r0, =0xff86f16c\n" // was: "add r0, pc, #640"   
    594         "ldr    r0, [r0]\n" 
    595         "ldr    r9, =0x00038448\n" // was: "[pc, #-1632]        ; ff86e894"  
    596         "str    r0, [sp]\n" 
    597         "add    r4, r9, r5, lsl #7\n" 
    598         "ldr    r0, [r4, #108]\n" 
    599         "tst    r0, #4\n"       // 0x4 
    600         "ldrne  r0, =0x1\n" // was: "mov ..., #1" 
    601         "bne    loc_ff86ef48\n" 
    602         "ldr    r0, [r4, #60]\n" 
    603         "ldr    r6, =0x00002968\n" // was: "[pc, #-1672]        ; ff86e88c"  
    604         "cmp    r0, #6\n"       // 0x6 
    605         "ldr    r8, =0x1\n" // was: "mov ..., #1" 
    606         "ldr    r7, =0x0\n" // was: "mov ..., #0" 
    607         "addls  pc, pc, r0, lsl #2\n" 
    608         "b      loc_ff86efa8\n" 
    609         "b      loc_ff86ef40\n" 
    610         "b      loc_ff86ef4c\n" 
    611         "b      loc_ff86ef4c\n" 
    612         "b      loc_ff86ef4c\n" 
    613         "b      loc_ff86ef4c\n" 
    614         "b      loc_ff86ef64\n" 
    615         "b      loc_ff86ef4c\n" 
     589        "PUSH   {r3, r4, r5, r6, r7, r8, r9, lr}\n" 
     590        "MOV    r5, r0\n" 
     591        "LDR    r0, =0xff86f16c\n" // was: "add r0, pc, #640"   
     592        "LDR    r0, [r0]\n" 
     593        "LDR    r9, =0x00038448\n" // was: "[pc, #-1632]        ; ff86e894"  
     594        "STR    r0, [sp]\n" 
     595        "ADD    r4, r9, r5, lsl #7\n" 
     596        "LDR    r0, [r4, #108]\n" 
     597        "TST    r0, #4\n"       // 0x4 
     598        "LDRNE  r0, =0x1\n" // was: "mov ..., #1" 
     599        "BNE    loc_ff86ef48\n" 
     600        "LDR    r0, [r4, #60]\n" 
     601        "LDR    r6, =0x00002968\n" // was: "[pc, #-1672]        ; ff86e88c"  
     602        "CMP    r0, #6\n"       // 0x6 
     603        "LDR    r8, =0x1\n" // was: "mov ..., #1" 
     604        "LDR    r7, =0x0\n" // was: "mov ..., #0" 
     605        "ADDLS  pc, pc, r0, lsl #2\n" 
     606        "B      loc_ff86efa8\n" 
     607        "B      loc_ff86ef40\n" 
     608        "B      loc_ff86ef4c\n" 
     609        "B      loc_ff86ef4c\n" 
     610        "B      loc_ff86ef4c\n" 
     611        "B      loc_ff86ef4c\n" 
     612        "B      loc_ff86ef64\n" 
     613        "B      loc_ff86ef4c\n" 
    616614"loc_ff86ef40:\n" // jumptable entry 0 
    617         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    618         "str    r7, [r4, #108]\n" 
     615        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     616        "STR    r7, [r4, #108]\n" 
    619617"loc_ff86ef48:\n" 
    620         "pop    {r3, r4, r5, r6, r7, r8, r9, pc}\n" 
     618        "POP    {r3, r4, r5, r6, r7, r8, r9, pc}\n" 
    621619"loc_ff86ef4c:\n" // 5 refs, jumptable entries 1-4,6 
    622         "ldr    r0, [r4, #56]\n" 
    623         "bl     sub_ff86e434\n" 
    624         "cmp    r0, #0\n"       // 0x0 
    625         "streq  r7, [r6, #16]\n" 
    626         "strne  r8, [r6, #16]\n" 
    627         "b      loc_ff86efb4\n" 
     620        "LDR    r0, [r4, #56]\n" 
     621        "BL     sub_ff86e434\n" 
     622        "CMP    r0, #0\n"       // 0x0 
     623        "STREQ  r7, [r6, #16]\n" 
     624        "STRNE  r8, [r6, #16]\n" 
     625        "B      loc_ff86efb4\n" 
    628626"loc_ff86ef64:\n" // jumptable entry 5 
    629         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
    630         "ldr    r1, =0x8000\n" // was: "mov ..., #32768" 
    631         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    632         "str    r8, [r6, #16]\n" 
    633         "bl     sub_ff886bc0\n" 
    634         "mov    r6, r0\n" 
    635         "mov    r2, r4\n" 
    636         "ldr    r1, =0x8000\n" // was: "mov ..., #32768" 
    637         "bl     sub_ff941dd8\n" 
    638         "ldr    r0, [r9, r5, lsl #7]\n" 
    639         "mov    r1, r6\n" 
    640         "str    r0, [r4, #80]\n" 
    641         "ldr    r0, [r4, #4]\n" 
    642         "str    r0, [r4, #84]\n" 
    643         "mov    r0, r5\n" 
    644         "bl     sub_ff86e578\n" 
    645         "b      loc_ff86efb4\n" 
     627        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
     628        "LDR    r1, =0x8000\n" // was: "mov ..., #32768" 
     629        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     630        "STR    r8, [r6, #16]\n" 
     631        "BL     sub_ff886bc0\n" 
     632        "MOV    r6, r0\n" 
     633        "MOV    r2, r4\n" 
     634        "LDR    r1, =0x8000\n" // was: "mov ..., #32768" 
     635        "BL     sub_ff941dd8\n" 
     636        "LDR    r0, [r9, r5, lsl #7]\n" 
     637        "MOV    r1, r6\n" 
     638        "STR    r0, [r4, #80]\n" 
     639        "LDR    r0, [r4, #4]\n" 
     640        "STR    r0, [r4, #84]\n" 
     641        "MOV    r0, r5\n" 
     642        "BL     sub_ff86e578\n" 
     643        "B      loc_ff86efb4\n" 
    646644"loc_ff86efa8:\n" // jumptable default entry 
    647         "ldr    r1, =0x000006c1\n" // was: "[pc, #448]  ; ff86f170"  
    648         "ldr    r0, =0xff86eb44\n" // was: "sub r0, pc, #1136"   *"Mounter.c" 
    649         "bl     sub_ff81eb14\n" 
     645        "LDR    r1, =0x000006c1\n" // was: "[pc, #448]  ; ff86f170"  
     646        "LDR    r0, =0xff86eb44\n" // was: "sub r0, pc, #1136"   *"Mounter.c" 
     647        "BL     sub_ff81eb14\n" 
    650648"loc_ff86efb4:\n" // 2 refs 
    651         "mov    r0, r5\n" 
    652         "bl     sub_ff86e1d4\n" 
    653         "strb   r0, [sp]\n" 
    654         "mov    r0, r5\n" 
    655         "mov    r1, sp\n" 
    656         "bl     sub_ff86edac\n" 
    657         "cmn    r0, #1\n"       // 0x1 
    658         "bne    loc_ff86eff4\n" 
    659         "ldr    r1, =0x000384c8\n" // was: "[pc, #-1860]        ; ff86e898"  
    660         "add    r0, r5, r5, lsl #4\n" 
    661         "str    r7, [r1, r0, lsl #2]\n" 
    662         "ldr    r1, [r4, #108]\n" 
    663         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    664         "bic    r1, r1, #6\n"   // 0x6 
     649        "MOV    r0, r5\n" 
     650        "BL     sub_ff86e1d4\n" 
     651        "STRB   r0, [sp]\n" 
     652        "MOV    r0, r5\n" 
     653        "MOV    r1, sp\n" 
     654        "BL     sub_ff86edac\n" 
     655        "CMN    r0, #1\n"       // 0x1 
     656        "BNE    loc_ff86eff4\n" 
     657        "LDR    r1, =0x000384c8\n" // was: "[pc, #-1860]        ; ff86e898"  
     658        "ADD    r0, r5, r5, lsl #4\n" 
     659        "STR    r7, [r1, r0, lsl #2]\n" 
     660        "LDR    r1, [r4, #108]\n" 
     661        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     662        "BIC    r1, r1, #6\n"   // 0x6 
    665663"loc_ff86efec:\n" 
    666         "str    r1, [r4, #108]\n" 
    667         "pop    {r3, r4, r5, r6, r7, r8, r9, pc}\n" 
     664        "STR    r1, [r4, #108]\n" 
     665        "POP    {r3, r4, r5, r6, r7, r8, r9, pc}\n" 
    668666"loc_ff86eff4:\n" 
    669         "ldr    r1, [r4, #108]\n" 
    670         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    671         "orr    r1, r1, #4\n"   // 0x4 
    672         "b      loc_ff86efec\n" 
     667        "LDR    r1, [r4, #108]\n" 
     668        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     669        "ORR    r1, r1, #4\n"   // 0x4 
     670        "B      loc_ff86efec\n" 
    673671    ); 
    674672}; 
  • trunk/platform/ixus130_sd1400/sub/100c/capt_seq.c

    r1985 r1993  
    1010void __attribute__((naked,noinline)) capt_seq_task() { 
    1111  asm volatile ( 
    12         "push   {r3, r4, r5, r6, r7, r8, r9, lr}\n" 
    13         "ldr    r6, =0x00002b9c\n" // was: "[pc, #-1152]        ; ff879e9c"  
    14         "ldr    r4, =0x00039644\n" // was: "[pc, #-1104]        ; ff879ed0"  
    15         "ldr    r9, =0x1\n" // was: "mov ..., #1" 
    16         "ldr    r7, =0x0\n" // was: "mov ..., #0" 
     12        "PUSH   {r3, r4, r5, r6, r7, r8, r9, lr}\n" 
     13        "LDR    r6, =0x00002b9c\n" // was: "[pc, #-1152]        ; ff879e9c"  
     14        "LDR    r4, =0x00039644\n" // was: "[pc, #-1104]        ; ff879ed0"  
     15        "LDR    r9, =0x1\n" // was: "mov ..., #1" 
     16        "LDR    r7, =0x0\n" // was: "mov ..., #0" 
    1717"loc_ff87a324:\n" 
    18         "ldr    r0, [r6, #4]\n" 
    19         "ldr    r2, =0x0\n" // was: "mov ..., #0" 
    20         "mov    r1, sp\n" 
    21         "bl     sub_ff8396e4\n" 
    22         "tst    r0, #1\n"       // 0x1 
    23         "beq    loc_ff87a350\n" 
    24         "ldr    r1, =0x000005b4\n" // was: "[pc, #1352] ; ff87a88c"  
    25         "ldr    r0, =0xff879ea0\n" // was: "[pc, #1336] ; ff87a880"  **"SsShootTask.c" 
    26         "bl     sub_ff81eb14\n" 
    27         "bl     sub_ff81eacc\n" 
    28         "pop    {r3, r4, r5, r6, r7, r8, r9, pc}\n" 
     18        "LDR    r0, [r6, #4]\n" 
     19        "LDR    r2, =0x0\n" // was: "mov ..., #0" 
     20        "MOV    r1, sp\n" 
     21        "BL     sub_ff8396e4\n" 
     22        "TST    r0, #1\n"       // 0x1 
     23        "BEQ    loc_ff87a350\n" 
     24        "LDR    r1, =0x000005b4\n" // was: "[pc, #1352] ; ff87a88c"  
     25        "LDR    r0, =0xff879ea0\n" // was: "[pc, #1336] ; ff87a880"  **"SsShootTask.c" 
     26        "BL     sub_ff81eb14\n" 
     27        "BL     sub_ff81eacc\n" 
     28        "POP    {r3, r4, r5, r6, r7, r8, r9, pc}\n" 
    2929"loc_ff87a350:\n" 
    30         "ldr    r0, [sp]\n" 
    31         "ldr    r1, [r0]\n" 
    32         "cmp    r1, #29\n"      // 0x1d 
    33         "addls  pc, pc, r1, lsl #2\n" 
    34         "b      loc_ff87a5ec\n" 
    35         "b      loc_ff87a3dc\n" // 0 jumptable start 
    36         "b      loc_ff87a440\n" // 1 
    37         "b      loc_ff87a47c\n" // 2 
    38         "b      loc_ff87a490\n" // 3 
    39         "b      loc_ff87a488\n" // 4 
    40         "b      loc_ff87a498\n" // 5 
    41         "b      loc_ff87a4a0\n" // 6 
    42         "b      loc_ff87a4a8\n" // 7 
    43         "b      loc_ff87a500\n" // 8 
    44         "b      loc_ff87a528\n" // 9 
    45         "b      loc_ff87a50c\n" // 10 
    46         "b      loc_ff87a518\n" // 11 
    47         "b      loc_ff87a520\n" // 12 
    48         "b      loc_ff87a530\n" // 13 
    49         "b      loc_ff87a538\n" // 14 
    50         "b      loc_ff87a540\n" // 15 
    51         "b      loc_ff87a548\n" // 16 
    52         "b      loc_ff87a550\n" // 17 
    53         "b      loc_ff87a55c\n" // 18 
    54         "b      loc_ff87a564\n" // 19 
    55         "b      loc_ff87a56c\n" // 20 
    56         "b      loc_ff87a574\n" // 21 
    57         "b      loc_ff87a57c\n" // 22 
    58         "b      loc_ff87a588\n" // 23 
    59         "b      loc_ff87a590\n" // 24 
    60         "b      loc_ff87a598\n" // 25 
    61         "b      loc_ff87a5a0\n" // 26 
    62         "b      loc_ff87a5a8\n" // 27 
    63         "b      loc_ff87a5b4\n" // 28 
    64         "b      loc_ff87a5f8\n" // 29 
     30        "LDR    r0, [sp]\n" 
     31        "LDR    r1, [r0]\n" 
     32        "CMP    r1, #29\n"      // 0x1d 
     33        "ADDLS  pc, pc, r1, lsl #2\n" 
     34        "B      loc_ff87a5ec\n" 
     35        "B      loc_ff87a3dc\n" // 0 jumptable start 
     36        "B      loc_ff87a440\n" // 1 
     37        "B      loc_ff87a47c\n" // 2 
     38        "B      loc_ff87a490\n" // 3 
     39        "B      loc_ff87a488\n" // 4 
     40        "B      loc_ff87a498\n" // 5 
     41        "B      loc_ff87a4a0\n" // 6 
     42        "B      loc_ff87a4a8\n" // 7 
     43        "B      loc_ff87a500\n" // 8 
     44        "B      loc_ff87a528\n" // 9 
     45        "B      loc_ff87a50c\n" // 10 
     46        "B      loc_ff87a518\n" // 11 
     47        "B      loc_ff87a520\n" // 12 
     48        "B      loc_ff87a530\n" // 13 
     49        "B      loc_ff87a538\n" // 14 
     50        "B      loc_ff87a540\n" // 15 
     51        "B      loc_ff87a548\n" // 16 
     52        "B      loc_ff87a550\n" // 17 
     53        "B      loc_ff87a55c\n" // 18 
     54        "B      loc_ff87a564\n" // 19 
     55        "B      loc_ff87a56c\n" // 20 
     56        "B      loc_ff87a574\n" // 21 
     57        "B      loc_ff87a57c\n" // 22 
     58        "B      loc_ff87a588\n" // 23 
     59        "B      loc_ff87a590\n" // 24 
     60        "B      loc_ff87a598\n" // 25 
     61        "B      loc_ff87a5a0\n" // 26 
     62        "B      loc_ff87a5a8\n" // 27 
     63        "B      loc_ff87a5b4\n" // 28 
     64        "B      loc_ff87a5f8\n" // 29 
    6565"loc_ff87a3dc:\n" // jumptable entry 0 
    66         "bl     sub_ff87aca0\n" 
    67         "bl     shooting_expo_param_override\n" // added 
    68         "bl     sub_ff8780ac\n" 
     66        "BL     sub_ff87aca0\n" 
     67        "BL     shooting_expo_param_override\n" // added 
     68        "BL     sub_ff8780ac\n" 
    6969 
    7070        // this code added to avoid some incorrect behavior if overrides are used. 
    7171        // but it can cause some unexpected side effects. In this case, remove this code! 
    72         "mov    r0, #0\n" 
    73         "str    r0, [r4, #36]\n"  // 0x24 fixes overrides  behavior at short shutter press 
    74         "b      loc_ff87a5f8\n" 
     72        "MOV    r0, #0\n" 
     73        "STR    r0, [r4, #36]\n"  // 0x24 fixes overrides  behavior at short shutter press 
     74        "B      loc_ff87a5f8\n" 
    7575 
    7676        // The following compare and conditional branch will always be taken with the above added code 
    7777        // So just change it to an unconditional branch, and remove the rest of jumptable entry 0 
    7878/* 
    79         "ldr    r0, [r4, #36]\n" 
    80         "cmp    r0, #0\n"       // 0x0 
    81         "beq    loc_ff87a5f8\n" 
    82         "bl     sub_ff879b80\n" 
    83         "mov    r5, r0\n" 
    84         "ldr    r0, [r4, #36]\n" 
    85         "cmp    r0, #0\n"       // 0x0 
    86         "beq    loc_ff87a424\n" 
    87         "ldr    r0, =0xc\n" // was: "mov ..., #12" 
    88         "bl     sub_ff87f174\n" 
    89         "tst    r0, #1\n"       // 0x1 
    90         "strne  r9, [r6, #16]\n" 
    91         "ldrne  r0, [r5, #8]\n" 
    92         "orrne  r0, r0, #1073741824\n"  // 0x40000000 
    93         "strne  r0, [r5, #8]\n" 
    94         "bne    loc_ff87a5f8\n" 
     79        "LDR    r0, [r4, #36]\n" 
     80        "CMP    r0, #0\n"       // 0x0 
     81        "BEQ    loc_ff87a5f8\n" 
     82        "BL     sub_ff879b80\n" 
     83        "MOV    r5, r0\n" 
     84        "LDR    r0, [r4, #36]\n" 
     85        "CMP    r0, #0\n"       // 0x0 
     86        "BEQ    loc_ff87a424\n" 
     87        "LDR    r0, =0xc\n" // was: "mov ..., #12" 
     88        "BL     sub_ff87f174\n" 
     89        "TST    r0, #1\n"       // 0x1 
     90        "STRNE  r9, [r6, #16]\n" 
     91        "LDRNE  r0, [r5, #8]\n" 
     92        "ORRNE  r0, r0, #1073741824\n"  // 0x40000000 
     93        "STRNE  r0, [r5, #8]\n" 
     94        "BNE    loc_ff87a5f8\n" 
    9595"loc_ff87a424:\n" 
    96         "mov    r0, r5\n" 
    97         "bl     sub_ff879e24\n" 
    98         "mov    r0, r5\n" 
    99  
    100         "bl     sub_ff95f120_my\n" // taskcreate_ShutterSoundTask() 
    101         "bl     capt_seq_hook_raw_here\n" // added 
    102  
    103         "tst    r0, #1\n"       // 0x1 
    104         "strne  r9, [r6, #16]\n" 
    105         "b      loc_ff87a5f8\n" 
     96        "MOV    r0, r5\n" 
     97        "BL     sub_ff879e24\n" 
     98        "MOV    r0, r5\n" 
     99 
     100        "BL     sub_ff95f120_my\n" // taskcreate_ShutterSoundTask() 
     101        "BL     capt_seq_hook_raw_here\n" // added 
     102 
     103        "TST    r0, #1\n"       // 0x1 
     104        "STRNE  r9, [r6, #16]\n" 
     105        "B      loc_ff87a5f8\n" 
    106106*/ 
    107107"loc_ff87a440:\n" // jumptable entry 1 
    108         "ldr    r0, [r4, #36]\n" 
    109         "cmp    r0, #0\n"       // 0x0 
    110         "bne    loc_ff87a46c\n" 
    111         "ldr    r0, =0xc\n" // was: "mov ..., #12" 
    112         "bl     sub_ff87f174\n" 
    113         "tst    r0, #1\n"       // 0x1 
    114         "ldrne  r0, [sp]\n" 
    115         "ldrne  r1, =0x1\n" // was: "mov ..., #1" 
    116         "ldrne  r2, [r0, #12]\n" 
    117         "ldrne  r0, =0x1\n" // was: "mov ..., #1" 
    118         "bne    loc_ff87a4f8\n" 
     108        "LDR    r0, [r4, #36]\n" 
     109        "CMP    r0, #0\n"       // 0x0 
     110        "BNE    loc_ff87a46c\n" 
     111        "LDR    r0, =0xc\n" // was: "mov ..., #12" 
     112        "BL     sub_ff87f174\n" 
     113        "TST    r0, #1\n"       // 0x1 
     114        "LDRNE  r0, [sp]\n" 
     115        "LDRNE  r1, =0x1\n" // was: "mov ..., #1" 
     116        "LDRNE  r2, [r0, #12]\n" 
     117        "LDRNE  r0, =0x1\n" // was: "mov ..., #1" 
     118        "BNE    loc_ff87a4f8\n" 
    119119"loc_ff87a46c:\n" 
    120         "ldr    r0, [sp]\n" 
    121         //"bl   sub_ff87a714\n" 
    122         "bl     sub_ff87a714_my\n" 
     120        "LDR    r0, [sp]\n" 
     121        //"BL   sub_ff87a714\n" 
     122        "BL     sub_ff87a714_my\n" 
    123123"loc_ff87a474:\n" // 2 refs 
    124         "str    r7, [r4, #36]\n" 
    125         "b      loc_ff87a5f8\n" 
     124        "STR    r7, [r4, #36]\n" 
     125        "B      loc_ff87a5f8\n" 
    126126"loc_ff87a47c:\n" // jumptable entry 2 
    127         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    128         "bl     sub_ff87af44\n" 
    129         "b      loc_ff87a5f8\n" 
     127        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     128        "BL     sub_ff87af44\n" 
     129        "B      loc_ff87a5f8\n" 
    130130"loc_ff87a488:\n" // jumptable entry 4 
    131         "bl     sub_ff87a8bc\n" 
    132         "b      loc_ff87a474\n" 
     131        "BL     sub_ff87a8bc\n" 
     132        "B      loc_ff87a474\n" 
    133133"loc_ff87a490:\n" // jumptable entry 3 
    134         "bl     sub_ff87ac80\n" 
    135         "b      loc_ff87a474\n" 
     134        "BL     sub_ff87ac80\n" 
     135        "B      loc_ff87a474\n" 
    136136"loc_ff87a498:\n" // jumptable entry 5 
    137         "bl     sub_ff87ac88\n" 
    138         "b      loc_ff87a5f8\n" 
     137        "BL     sub_ff87ac88\n" 
     138        "B      loc_ff87a5f8\n" 
    139139"loc_ff87a4a0:\n" // jumptable entry 6 
    140         "bl     sub_ff87ae54\n" 
    141         "b      loc_ff87a504\n" 
     140        "BL     sub_ff87ae54\n" 
     141        "B      loc_ff87a504\n" 
    142142"loc_ff87a4a8:\n" // jumptable entry 7 
    143         "ldr    r5, [r0, #12]\n" 
    144         "bl     sub_ff87ac90\n" 
    145         "mov    r0, r5\n" 
    146         "bl     sub_ff95e0f4\n" 
    147         "tst    r0, #1\n"       // 0x1 
    148         "mov    r8, r0\n" 
    149         "bne    loc_ff87a4e8\n" 
    150         "bl     sub_ff88c3d4\n" 
    151         "str    r0, [r5, #24]\n" 
    152         "mov    r0, r5\n" 
    153         "bl     sub_ff95f038\n" 
    154         "mov    r0, r5\n" 
    155         "bl     sub_ff95f3d4\n" 
    156         "mov    r8, r0\n" 
    157         "ldr    r0, [r5, #24]\n" 
    158         "bl     sub_ff88c60c\n" 
     143        "LDR    r5, [r0, #12]\n" 
     144        "BL     sub_ff87ac90\n" 
     145        "MOV    r0, r5\n" 
     146        "BL     sub_ff95e0f4\n" 
     147        "TST    r0, #1\n"       // 0x1 
     148        "MOV    r8, r0\n" 
     149        "BNE    loc_ff87a4e8\n" 
     150        "BL     sub_ff88c3d4\n" 
     151        "STR    r0, [r5, #24]\n" 
     152        "MOV    r0, r5\n" 
     153        "BL     sub_ff95f038\n" 
     154        "MOV    r0, r5\n" 
     155        "BL     sub_ff95f3d4\n" 
     156        "MOV    r8, r0\n" 
     157        "LDR    r0, [r5, #24]\n" 
     158        "BL     sub_ff88c60c\n" 
    159159"loc_ff87a4e8:\n" 
    160         "bl     sub_ff87ac80\n" 
    161         "mov    r2, r5\n" 
    162         "ldr    r1, =0x9\n" // was: "mov ..., #9" 
    163         "mov    r0, r8\n" 
     160        "BL     sub_ff87ac80\n" 
     161        "MOV    r2, r5\n" 
     162        "LDR    r1, =0x9\n" // was: "mov ..., #9" 
     163        "MOV    r0, r8\n" 
    164164"loc_ff87a4f8:\n" 
    165         "bl     sub_ff87856c\n" 
    166         "b      loc_ff87a5f8\n" 
     165        "BL     sub_ff87856c\n" 
     166        "B      loc_ff87a5f8\n" 
    167167"loc_ff87a500:\n" // jumptable entry 8 
    168         "bl     sub_ff87aebc\n" 
     168        "BL     sub_ff87aebc\n" 
    169169"loc_ff87a504:\n" 
    170         "bl     sub_ff8780ac\n" 
    171         "b      loc_ff87a5f8\n" 
     170        "BL     sub_ff8780ac\n" 
     171        "B      loc_ff87a5f8\n" 
    172172"loc_ff87a50c:\n" // jumptable entry 10 
    173         "ldr    r0, [r4, #84]\n" 
    174         "bl     sub_ff87b2e8\n" 
    175         "b      loc_ff87a5f8\n" 
     173        "LDR    r0, [r4, #84]\n" 
     174        "BL     sub_ff87b2e8\n" 
     175        "B      loc_ff87a5f8\n" 
    176176"loc_ff87a518:\n" // jumptable entry 11 
    177         "bl     sub_ff87b59c\n" 
    178         "b      loc_ff87a5f8\n" 
     177        "BL     sub_ff87b59c\n" 
     178        "B      loc_ff87a5f8\n" 
    179179"loc_ff87a520:\n" // jumptable entry 12 
    180         "bl     sub_ff87b630\n" 
    181         "b      loc_ff87a5f8\n" 
     180        "BL     sub_ff87b630\n" 
     181        "B      loc_ff87a5f8\n" 
    182182"loc_ff87a528:\n" // jumptable entry 9 
    183         "bl     sub_ff87ac80\n" 
    184         "b      loc_ff87a5f8\n" 
     183        "BL     sub_ff87ac80\n" 
     184        "B      loc_ff87a5f8\n" 
    185185"loc_ff87a530:\n" // jumptable entry 13 
    186         "bl     sub_ff95e30c\n" 
    187         "b      loc_ff87a5f8\n" 
     186        "BL     sub_ff95e30c\n" 
     187        "B      loc_ff87a5f8\n" 
    188188"loc_ff87a538:\n" // jumptable entry 14 
    189         "bl     sub_ff95e520\n" 
    190         "b      loc_ff87a5f8\n" 
     189        "BL     sub_ff95e520\n" 
     190        "B      loc_ff87a5f8\n" 
    191191"loc_ff87a540:\n" // jumptable entry 15 
    192         "bl     sub_ff95e5b8\n" 
    193         "b      loc_ff87a5f8\n" 
     192        "BL     sub_ff95e5b8\n" 
     193        "B      loc_ff87a5f8\n" 
    194194"loc_ff87a548:\n" // jumptable entry 16 
    195         "bl     sub_ff95e688\n" 
    196         "b      loc_ff87a5f8\n" 
     195        "BL     sub_ff95e688\n" 
     196        "B      loc_ff87a5f8\n" 
    197197"loc_ff87a550:\n" // jumptable entry 17 
    198         "ldr    r0, =0x0\n" // was: "mov ..., #0" 
    199         "bl     sub_ff95e8f0\n" 
    200         "b      loc_ff87a5f8\n" 
     198        "LDR    r0, =0x0\n" // was: "mov ..., #0" 
     199        "BL     sub_ff95e8f0\n" 
     200        "B      loc_ff87a5f8\n" 
    201201"loc_ff87a55c:\n" // jumptable entry 18 
    202         "bl     sub_ff95ea40\n" 
    203         "b      loc_ff87a5f8\n" 
     202        "BL     sub_ff95ea40\n" 
     203        "B      loc_ff87a5f8\n" 
    204204"loc_ff87a564:\n" // jumptable entry 19 
    205         "bl     sub_ff95ead0\n" 
    206         "b      loc_ff87a5f8\n" 
     205        "BL     sub_ff95ead0\n" 
     206        "B      loc_ff87a5f8\n" 
    207207"loc_ff87a56c:\n" // jumptable entry 20 
    208         "bl     sub_ff95eb90\n" 
    209         "b      loc_ff87a5f8\n" 
     208        "BL     sub_ff95eb90\n" 
     209        "B      loc_ff87a5f8\n" 
    210210"loc_ff87a574:\n" // jumptable entry 21 
    211         "bl     sub_ff87b0bc\n" 
    212         "b      loc_ff87a5f8\n" 
     211        "BL     sub_ff87b0bc\n" 
     212        "B      loc_ff87a5f8\n" 
    213213"loc_ff87a57c:\n" // jumptable entry 22 
    214         "bl     sub_ff87b164\n" 
    215         "bl     sub_ff8376fc\n" 
    216         "b      loc_ff87a5f8\n" 
     214        "BL     sub_ff87b164\n" 
     215        "BL     sub_ff8376fc\n" 
     216        "B      loc_ff87a5f8\n" 
    217217"loc_ff87a588:\n" // jumptable entry 23 
    218         "bl     sub_ff95e754\n" 
    219         "b      loc_ff87a5f8\n" 
     218        "BL     sub_ff95e754\n" 
     219        "B      loc_ff87a5f8\n" 
    220220"loc_ff87a590:\n" // jumptable entry 24 
    221         "bl     sub_ff95e7c0\n" 
     221        "BL     sub_ff95e7c0\n" 
    222222"loc_ff87a594:\n" 
    223         "b      loc_ff87a5f8\n" 
     223        "B      loc_ff87a5f8\n" 
    224224"loc_ff87a598:\n" // jumptable entry 25 
    225         "bl     sub_ff87d77c\n" 
    226         "b      loc_ff87a5f8\n" 
     225        "BL     sub_ff87d77c\n" 
     226        "B      loc_ff87a5f8\n" 
    227227"loc_ff87a5a0:\n" // jumptable entry 26 
    228         "bl     sub_ff87d804\n" 
    229         "b      loc_ff87a5f8\n" 
     228        "BL     sub_ff87d804\n" 
     229        "B      loc_ff87a5f8\n" 
    230230"loc_ff87a5a8:\n" // jumptable entry 27 
    231         "bl     sub_ff87d860\n" 
    232         "bl     sub_ff87d820\n" 
    233         "b      loc_ff87a5f8\n" 
     231        "BL     sub_ff87d860\n" 
     232        "BL     sub_ff87d820\n" 
     233        "B      loc_ff87a5f8\n" 
    234234"loc_ff87a5b4:\n" // jumptable entry 28 
    235         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    236         "bl     sub_ff95fd98\n" 
    237         "ldr    r0, =0x1\n" // was: "mov ..., #1" 
    238         "bl     sub_ff95fecc\n" 
    239         "ldrh   r0, [r4, #148]\n" 
    240         "cmp    r0, #4\n"       // 0x4 
    241         "ldrneh r0, [r4]\n" // compiler doesn't like ldrhne, -> ldrneh 
    242         "subne  ip, r0, #33280\n"       // 0x8200 
    243         "subnes ip, ip, #42\n"  // 0x2a compiler doesn't like subsne, -> subnes 
    244         "bne    loc_ff87a5f8\n" 
    245         "bl     sub_ff87d804\n" 
    246         "bl     sub_ff87dd74\n" 
    247         "bl     sub_ff87dc84\n" 
    248         "b      loc_ff87a5f8\n" 
     235        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     236        "BL     sub_ff95fd98\n" 
     237        "LDR    r0, =0x1\n" // was: "mov ..., #1" 
     238        "BL     sub_ff95fecc\n" 
     239        "LDRH   r0, [r4, #148]\n" 
     240        "CMP    r0, #4\n"       // 0x4 
     241        "LDRNEH r0, [r4]\n" // compiler doesn't like ldrhne, -> ldrneh 
     242        "SUBNE  ip, r0, #33280\n"       // 0x8200 
     243        "SUBNES ip, ip, #42\n"  // 0x2a compiler doesn't like subsne, -> subnes 
     244        "BNE    loc_ff87a5f8\n" 
     245        "BL     sub_ff87d804\n" 
     246        "BL     sub_ff87dd74\n" 
     247        "BL     sub_ff87dc84\n" 
     248        "B      loc_ff87a5f8\n" 
    249249"loc_ff87a5ec:\n" // jumptable default 
    250         "ldr    r1, =0x0000070b\n" // was: "[pc, #668]  ; ff87a890"  
    251         "ldr    r0, =0xff879ea0\n" // was: "[pc, #648]  ; ff87a880"  **"SsShootTask.c" 
    252         "bl     sub_ff81eb14\n" 
     250        "LDR    r1, =0x0000070b\n" // was: "[pc, #668]  ; ff87a890"  
     251        "LDR    r0, =0xff879ea0\n" // was: "[pc, #648]  ; ff87a880"  **"SsShootTask.c" 
     252        "BL     sub_ff81eb14\n" 
    253253"loc_ff87a5f8:\n" // 30 refs jumptable entry 29 
    254         "ldr    r0, [sp]\n" 
    255         "ldr    r1, [r0, #4]\n" 
    256         "ldr    r0, [r6]\n" 
    257         "bl     sub_ff883f9c\n" 
    258         "ldr    r5, [sp]\n" 
    259         "ldr    r0, [r5, #8]\n" 
    260         "cmp    r0, #0\n"       // 0x0 
    261         "ldreq  r1, =0x00000132\n" // was: "[pc, #632]  ; ff87a894"  
    262         "ld