root/platform/ixus130_sd1400/sub/100a/capt_seq.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. capt_seq_task
  2. sub_ff95f120_my
  3. sub_ff87a714_my
  4. exp_drv_task

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 
   5 static long *nrflag = (long*)0x67c0;    // ff95f134: at taskcreate_ShutterSoundTask()
   6 
   7 #include "../../../generic/capt_seq.c"
   8 
   9 // FF87A2C0: task_CaptSeqTask()
  10 void __attribute__((naked,noinline)) capt_seq_task() {
  11   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"
  17 "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"
  29 "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
  65 "loc_FF87A38C:\n" // jumptable entry 0 
  66         "BL     sub_FF87AC50\n" 
  67         "BL     shooting_expo_param_override\n" // added
  68         "BL     sub_FF87805C\n" 
  69 
  70         // this code added to avoid some incorrect behavior if overrides are used.
  71         // 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 
  75         "B      loc_FF87A5A8\n"
  76 /*    
  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"
  93 "loc_FF87A3D4:\n"
  94         "MOV    r0, r5\n"
  95         "BL     sub_FF879DD4\n"
  96         "MOV    r0, r5\n"
  97         
  98         "BL     sub_ff95f120_my\n" // taskcreate_ShutterSoundTask()
  99         "BL     capt_seq_hook_raw_here\n" // added
 100 
 101         "TST    r0, #1\n"       // 0x1
 102         "STRNE  r9, [r6, #16]\n"
 103         "B      loc_FF87A5A8\n"
 104 */    
 105 "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"
 117 "loc_FF87A41C:\n" 
 118         "LDR    r0, [sp]\n"
 119         //"BL   sub_ff87a714\n"
 120         "BL     sub_ff87a714_my\n"
 121 "loc_FF87A424:\n" // 2 refs
 122         "STR    r7, [r4, #36]\n"
 123         "B      loc_FF87A5A8\n"
 124 "loc_FF87A42C:\n" // jumptable entry 2
 125         "LDR    r0, =0x1\n" // was: "mov ..., #1"
 126         "BL     sub_FF87AEF4\n" 
 127         "B      loc_FF87A5A8\n" 
 128 "loc_FF87A438:\n" // jumptable entry 4
 129         "BL     sub_FF87A86C\n" 
 130         "B      loc_FF87A424\n" 
 131 "loc_FF87A440:\n" // jumptable entry 3
 132         "BL     sub_FF87AC30\n" 
 133         "B      loc_FF87A424\n" 
 134 "loc_FF87A448:\n" // jumptable entry 5 
 135         "BL     sub_FF87AC38\n" 
 136         "B      loc_FF87A5A8\n" 
 137 "loc_FF87A450:\n" // jumptable entry 6 
 138         "BL     sub_FF87AE04\n" 
 139         "B      loc_FF87A4B4\n" 
 140 "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"
 157 "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"
 162 "loc_FF87A4A8:\n"
 163         "BL     sub_FF87851C\n"
 164         "B      loc_FF87A5A8\n"
 165 "loc_FF87A4B0:\n" // jumptable entry 8
 166         "BL     sub_FF87AE6C\n"
 167 "loc_FF87A4B4:\n"
 168         "BL     sub_FF87805C\n"
 169         "B      loc_FF87A5A8\n"
 170 "loc_FF87A4BC:\n" // jumptable entry 10
 171         "LDR    r0, [r4, #84]\n"
 172         "BL     sub_FF87B298\n"
 173         "B      loc_FF87A5A8\n"
 174 "loc_FF87A4C8:\n" // jumptable entry 11
 175         "BL     sub_FF87B54C\n" 
 176         "B      loc_FF87A5A8\n" 
 177 "loc_FF87A4D0:\n" // jumptable entry 12
 178         "BL     sub_FF87B5E0\n" 
 179         "B      loc_FF87A5A8\n" 
 180 "loc_FF87A4D8:\n" // jumptable entry 9 
 181         "BL     sub_FF87AC30\n" 
 182         "B      loc_FF87A5A8\n" 
 183 "loc_FF87A4E0:\n" // jumptable entry 13
 184         "BL     sub_FF95E254\n" 
 185         "B      loc_FF87A5A8\n" 
 186 "loc_FF87A4E8:\n" // jumptable entry 14 
 187         "BL     sub_FF95E468\n" 
 188         "B      loc_FF87A5A8\n" 
 189 "loc_FF87A4F0:\n" // jumptable entry 15
 190         "BL     sub_FF95E500\n" 
 191         "B      loc_FF87A5A8\n" 
 192 "loc_FF87A4F8:\n" // jumptable entry 16 
 193         "BL     sub_FF95E5D0\n" 
 194         "B      loc_FF87A5A8\n" 
 195 "loc_FF87A500:\n" // jumptable entry 17
 196         "LDR    r0, =0x0\n" // was: "mov ..., #0"
 197         "BL     sub_FF95E838\n" 
 198         "B      loc_FF87A5A8\n" 
 199 "loc_FF87A50C:\n" // jumptable entry 18
 200         "BL     sub_FF95E988\n" 
 201         "B      loc_FF87A5A8\n" 
 202 "loc_FF87A514:\n" // jumptable entry 19
 203         "BL     sub_FF95EA18\n" 
 204         "B      loc_FF87A5A8\n" 
 205 "loc_FF87A51C:\n" // jumptable entry 20
 206         "BL     sub_FF95EAD8\n" 
 207         "B      loc_FF87A5A8\n" 
 208 "loc_FF87A524:\n" // jumptable entry 21
 209         "BL     sub_FF87B06C\n" 
 210         "B      loc_FF87A5A8\n" 
 211 "loc_FF87A52C:\n" // jumptable entry 22
 212         "BL     sub_FF87B114\n"
 213         "BL     sub_FF8376FC\n"
 214         "B      loc_FF87A5A8\n"
 215 "loc_FF87A538:\n" // jumptable entry 23
 216         "BL     sub_FF95E69C\n" 
 217         "B      loc_FF87A5A8\n" 
 218 "loc_FF87A540:\n" // jumptable entry 24
 219         "BL     sub_FF95E708\n" 
 220 //"loc_FF87A544:\n" // this line does not have a correspondence in 100a dump!
 221         "B      loc_FF87A5A8\n" 
 222 "loc_FF87A548:\n" // jumptable entry 25 
 223         "BL     sub_FF87D72C\n" 
 224         "B      loc_FF87A5A8\n" 
 225 "loc_FF87A550:\n" // jumptable entry 26 
 226         "BL     sub_FF87D7B4\n" 
 227         "B      loc_FF87A5A8\n" 
 228 "loc_FF87A558:\n" // jumptable entry 27 
 229         "BL     sub_FF87D810\n" 
 230         "BL     sub_FF87D7D0\n" 
 231         "B      loc_FF87A5A8\n" 
 232 "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"
 247 "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"
 251 "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"
 264     );
 265 }
 266 
 267 // ROM:FF970A8C taskcreate_ShutterSoundTask(), LOCATION: SsCaptureSeq.c:0
 268 void __attribute__((naked,noinline)) sub_ff95f120_my() {
 269   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"
 290 "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"
 316 
 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 ????????
 320 /*
 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"
 350 "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"
 357 "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"
 364 "loc_ff95f278:\n" // 2 refs
 365         "MOV    r8, r0\n"
 366         "B      loc_ff95f2a8\n"
 367 "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"
 375 "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"
 379 "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"
 413 "loc_ff95f32c:\n"
 414         "ADD    sp, sp, #16\n"  // 0x10
 415         "POP    {r4, r5, r6, r7, r8, pc}\n"
 416 */
 417     );
 418 }
 419 
 420 void __attribute__((naked,noinline)) sub_ff87a714_my() { // FF87A6C4
 421   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"
 458 "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"
 464 "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"
 476 "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"
 481 "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"
 495     );
 496 }
 497 
 498 // ff8bab28: task_ExpDrvTask()
 499 // Is anything changed in here? If not, why not just call original?
 500 void __attribute__((naked,noinline)) exp_drv_task() { // was FF8C25DC
 501   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"
 510 "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"
 530 "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"
 543 "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"
 551 "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"
 567 "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"
 573 "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"
 592 "loc_FF8BAC28:\n"
 593         "CMP    r1, #40\n"      // 0x28
 594         "BNE    loc_FF8BAC40\n"
 595 "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
 600 "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"
 607 "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" 
 625 "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"
 629 "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"
 658 "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"
 680 "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"
 695 "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"
 701 "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"
 708 "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"
 728 "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
 774 "loc_FF8BAED0:\n" // jump table entries 0, 1, 6
 775         "BL     sub_FF8B7704\n" 
 776         "B      loc_FF8BAFF0\n" 
 777 "loc_FF8BAED8:\n" // jump table entries 2, 7
 778         "BL     sub_FF8B7988\n"
 779         "B      loc_FF8BAFF0\n"
 780 "loc_FF8BAEE0:\n" // jump table entries 3, 4, 5, 8, 9
 781         "BL     sub_FF8B7B90\n"
 782         "B      loc_FF8BAFF0\n"
 783 "loc_FF8BAEE8:\n" // jump table entry 23
 784         "BL     sub_FF8B7E08\n"
 785         "B      loc_FF8BAFF0\n"
 786 "loc_FF8BAEF0:\n" // jump table entry 24, 25
 787         "BL     sub_FF8B8000\n"
 788         "B      loc_FF8BAFF0\n"
 789 "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"
 793 "loc_FF8BAF04:\n" // jump table entry 26, 27
 794         "BL     sub_FF8B83FC\n"
 795         "B      loc_FF8BAFF0\n"
 796 "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"
 809 "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"
 822 "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"
 835 "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"
 848 "loc_FF8BAFCC:\n" // jump table entries 32, 33
 849         "BL     sub_FF8B8754\n"
 850         "B      loc_FF8BAFF0\n"
 851 "loc_FF8BAFD4:\n" // jump table entry 36
 852         "BL     sub_FF8B8CF4\n"
 853         "B      loc_FF8BAFF0\n"
 854 "loc_FF8BAFDC:\n" // jump table entry 37
 855         "BL     sub_FF8B8F30\n"
 856         "B      loc_FF8BAFF0\n"
 857 "loc_FF8BAFE4:\n" // jump table entry 12
 858         "BL     sub_FF8B90AC\n"
 859         "B      loc_FF8BAFF0\n"
 860 "loc_FF8BAFEC:\n" // jump table entries 13, 14, 15, 16
 861         "BL     sub_FF8B9248\n"
 862 "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"
 871 "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"
 890 "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"
 909 "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"
 921 "loc_FF8BB0CC:\n"
 922         "BL     sub_FF8B764C\n"
 923 "loc_FF8BB0D0:\n" // 3 refs
 924         "LDR    r0, [sp, #28]\n"
 925         "BL     sub_FF8BBDE8\n"
 926         "B      loc_FF8BAAF8\n"
 927     );
 928 }

/* [<][>][^][v][top][bottom][index][help] */