root/platform/ixus130_sd1400/sub/100c/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 // ff87a310: 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_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"
  29 "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
  65 "loc_ff87a3dc:\n" // jumptable entry 0
  66         "BL     sub_ff87aca0\n"
  67         "BL     shooting_expo_param_override\n" // added
  68         "BL     sub_ff8780ac\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         "B      loc_ff87a5f8\n"
  75 
  76         // The following compare and conditional branch will always be taken with the above added code
  77         // So just change it to an unconditional branch, and remove the rest of jumptable entry 0
  78 /*
  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"
  95 "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"
 106 */
 107 "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"
 119 "loc_ff87a46c:\n"
 120         "LDR    r0, [sp]\n"
 121         //"BL   sub_ff87a714\n"
 122         "BL     sub_ff87a714_my\n"
 123 "loc_ff87a474:\n" // 2 refs
 124         "STR    r7, [r4, #36]\n"
 125         "B      loc_ff87a5f8\n"
 126 "loc_ff87a47c:\n" // jumptable entry 2
 127         "LDR    r0, =0x1\n" // was: "mov ..., #1"
 128         "BL     sub_ff87af44\n"
 129         "B      loc_ff87a5f8\n"
 130 "loc_ff87a488:\n" // jumptable entry 4
 131         "BL     sub_ff87a8bc\n"
 132         "B      loc_ff87a474\n"
 133 "loc_ff87a490:\n" // jumptable entry 3
 134         "BL     sub_ff87ac80\n"
 135         "B      loc_ff87a474\n"
 136 "loc_ff87a498:\n" // jumptable entry 5
 137         "BL     sub_ff87ac88\n"
 138         "B      loc_ff87a5f8\n"
 139 "loc_ff87a4a0:\n" // jumptable entry 6
 140         "BL     sub_ff87ae54\n"
 141         "B      loc_ff87a504\n"
 142 "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"
 159 "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"
 164 "loc_ff87a4f8:\n"
 165         "BL     sub_ff87856c\n"
 166         "B      loc_ff87a5f8\n"
 167 "loc_ff87a500:\n" // jumptable entry 8
 168         "BL     sub_ff87aebc\n"
 169 "loc_ff87a504:\n"
 170         "BL     sub_ff8780ac\n"
 171         "B      loc_ff87a5f8\n"
 172 "loc_ff87a50c:\n" // jumptable entry 10
 173         "LDR    r0, [r4, #84]\n"
 174         "BL     sub_ff87b2e8\n"
 175         "B      loc_ff87a5f8\n"
 176 "loc_ff87a518:\n" // jumptable entry 11
 177         "BL     sub_ff87b59c\n"
 178         "B      loc_ff87a5f8\n"
 179 "loc_ff87a520:\n" // jumptable entry 12
 180         "BL     sub_ff87b630\n"
 181         "B      loc_ff87a5f8\n"
 182 "loc_ff87a528:\n" // jumptable entry 9
 183         "BL     sub_ff87ac80\n"
 184         "B      loc_ff87a5f8\n"
 185 "loc_ff87a530:\n" // jumptable entry 13
 186         "BL     sub_ff95e30c\n"
 187         "B      loc_ff87a5f8\n"
 188 "loc_ff87a538:\n" // jumptable entry 14
 189         "BL     sub_ff95e520\n"
 190         "B      loc_ff87a5f8\n"
 191 "loc_ff87a540:\n" // jumptable entry 15
 192         "BL     sub_ff95e5b8\n"
 193         "B      loc_ff87a5f8\n"
 194 "loc_ff87a548:\n" // jumptable entry 16
 195         "BL     sub_ff95e688\n"
 196         "B      loc_ff87a5f8\n"
 197 "loc_ff87a550:\n" // jumptable entry 17
 198         "LDR    r0, =0x0\n" // was: "mov ..., #0"
 199         "BL     sub_ff95e8f0\n"
 200         "B      loc_ff87a5f8\n"
 201 "loc_ff87a55c:\n" // jumptable entry 18
 202         "BL     sub_ff95ea40\n"
 203         "B      loc_ff87a5f8\n"
 204 "loc_ff87a564:\n" // jumptable entry 19
 205         "BL     sub_ff95ead0\n"
 206         "B      loc_ff87a5f8\n"
 207 "loc_ff87a56c:\n" // jumptable entry 20
 208         "BL     sub_ff95eb90\n"
 209         "B      loc_ff87a5f8\n"
 210 "loc_ff87a574:\n" // jumptable entry 21
 211         "BL     sub_ff87b0bc\n"
 212         "B      loc_ff87a5f8\n"
 213 "loc_ff87a57c:\n" // jumptable entry 22
 214         "BL     sub_ff87b164\n"
 215         "BL     sub_ff8376fc\n"
 216         "B      loc_ff87a5f8\n"
 217 "loc_ff87a588:\n" // jumptable entry 23
 218         "BL     sub_ff95e754\n"
 219         "B      loc_ff87a5f8\n"
 220 "loc_ff87a590:\n" // jumptable entry 24
 221         "BL     sub_ff95e7c0\n"
 222 "loc_ff87a594:\n"
 223         "B      loc_ff87a5f8\n"
 224 "loc_ff87a598:\n" // jumptable entry 25
 225         "BL     sub_ff87d77c\n"
 226         "B      loc_ff87a5f8\n"
 227 "loc_ff87a5a0:\n" // jumptable entry 26
 228         "BL     sub_ff87d804\n"
 229         "B      loc_ff87a5f8\n"
 230 "loc_ff87a5a8:\n" // jumptable entry 27
 231         "BL     sub_ff87d860\n"
 232         "BL     sub_ff87d820\n"
 233         "B      loc_ff87a5f8\n"
 234 "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"
 249 "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"
 253 "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         "LDREQ  r0, =0xff879ea0\n" // was: "subeq       r0, pc, #1920"   *"SsShootTask.c"
 263         "BLEQ   sub_ff81eb14\n"
 264         "STR    r7, [r5, #8]\n"
 265         "B      loc_ff87a324\n"
 266     );
 267 }
 268 
 269 // ROM:FF970A8C taskcreate_ShutterSoundTask(), LOCATION: SsCaptureSeq.c:0
 270 void __attribute__((naked,noinline)) sub_ff95f120_my() {
 271   asm volatile (
 272         "PUSH   {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}\n"
 273         "MOV    r4, r0\n"
 274         "BL     sub_ff96009c\n"
 275         "MVN    r1, #0\n"       // 0x0
 276         "BL     sub_ff883fd0\n"
 277         "LDR    r5, =0x000067c0\n" // was: "[pc, #-552] ; ff95ef14" 
 278         "LDR    r0, [r5, #12]\n"
 279         "CMP    r0, #0\n"       // 0x0
 280         "BNE    loc_ff95f170\n"
 281         "LDR    r1, =0x1\n" // was: "mov ..., #1"
 282         "LDR    r0, =0x0\n" // was: "mov ..., #0"
 283         "BL     sub_ff839f2c\n"
 284         "STR    r0, [r5, #12]\n"
 285         "LDR    r3, =0x0\n" // was: "mov ..., #0"
 286         "STR    r3, [sp]\n"
 287         "LDR    r3, =0xff95ec80\n" // was: "[pc, #496]  ; ff95f354" 
 288         "LDR    r0, =0xff95f358\n" // was: "add r0, pc, #496"   *"ShutterSoundTask"
 289         "LDR    r2, =0x400\n" // was: "mov ..., #1024"
 290         "LDR    r1, =0x17\n" // was: "mov ..., #23"
 291         "BL     sub_ff839ef8\n"
 292 "loc_ff95f170:\n"
 293         "LDR    r2, =0x4\n" // was: "mov ..., #4"
 294         "ADD    r1, sp, #8\n"   // 0x8
 295         "LDR    r0, =0x8a\n" // was: "mov ..., #138"
 296         "BL     sub_ff88c244\n"
 297         "TST    r0, #1\n"       // 0x1
 298         "LDRNE  r1, =0x000003cd\n" // was: "[pc, #480]  ; ff95f36c" 
 299         "LDRNE  r0, =0xff95ef18\n" // was: "subne       r0, pc, #632"   *"SsCaptureSeq.c"
 300         "BLNE   sub_ff81eb14\n"
 301         "LDR    r6, =0x00039708\n" // was: "[pc, #420]  ; ff95f33c" 
 302         "LDR    r7, =0x00039644\n" // was: "[pc, #-604] ; ff95ef40" 
 303         "LDR    r3, [r6]\n"
 304         "LDRSH  r2, [r6, #12]\n"
 305         "LDRSH  r1, [r6, #14]\n"
 306         "LDR    r0, [r7, #136]\n"
 307         "BL     sub_ff9294cc\n"
 308         "BL     sub_ff862ca4\n" // GetCCDTemperature()
 309         "LDR    r3, =0x000067c8\n" // was: "[pc, #440]  ; ff95f370" 
 310         "STRH   r0, [r4, #164]\n"
 311         "SUB    r2, r3, #4\n"   // 0x4
 312         "STRD   r2, [sp]\n"
 313         "MOV    r1, r0\n"
 314         "LDRH   r0, [r7, #92]\n"
 315         "LDRSH  r2, [r6, #12]\n"
 316         "SUB    r3, r3, #8\n"   // 0x8
 317         "BL     sub_ff961c40\n"
 318 
 319         "BL     wait_until_remote_button_is_released\n"
 320         "BL     capt_seq_hook_set_nr\n"
 321         "B      sub_ff95f1d4\n" // continue in Canon firmware
 322 /*
 323         "LDR    r0, [r4, #28]\n"
 324         "CMP    r0, #0\n"       // 0x0
 325         "LDRNE  r0, =0x1\n" // was: "mov ..., #1"
 326         "STRNE  r0, [r5]\n"
 327         "LDR    r0, [r5]\n"
 328         "LSL    r1, r0, #16\n"
 329         "LDRH   r0, [r7, #92]\n"
 330         "LSR    r1, r1, #16\n"
 331         "BL     sub_ff961d9c\n"
 332         "STR    r0, [r4, #172]\n"
 333         "LDR    r0, [r5, #4]\n"
 334         "BL     sub_ff92c5c4\n"
 335         "LDR    r0, [r5, #8]\n"
 336         "BL     sub_ff8b1504\n"
 337         "LDR    r0, =0x1\n" // was: "mov ..., #1"
 338         "BL     sub_ff8b151c\n"
 339         "MOV    r1, r4\n"
 340         "LDR    r0, =0xff95ecf0\n" // was: "sub r0, pc, #1328"  
 341         "BL     sub_ff8b14e0\n"
 342         "LDR    r0, [r5]\n"
 343         "CMP    r0, #1\n"       // 0x1
 344         "BEQ    loc_ff95f248\n"
 345         "CMP    r0, #2\n"       // 0x2
 346         "BEQ    loc_ff95f260\n"
 347         "CMP    r0, #3\n"       // 0x3
 348         "BEQ    loc_ff95f280\n"
 349         "CMP    r0, #7\n"       // 0x7
 350         "BNE    loc_ff95f29c\n"
 351         "LDR    r0, =0x0\n" // was: "mov ..., #0"
 352 "loc_ff95f248:\n"
 353         "BL     sub_ff8b1510\n"
 354         "LDR    r2, [sp, #8]\n"
 355         "ADD    r1, sp, #12\n"  // 0xc
 356         "MOV    r0, r4\n"
 357         "BL     sub_ff95ef78\n"
 358         "B      loc_ff95f278\n"
 359 "loc_ff95f260:\n"
 360         "LDR    r0, =0x1\n" // was: "mov ..., #1"
 361         "BL     sub_ff8b1510\n"
 362         "LDR    r2, [sp, #8]\n"
 363         "ADD    r1, sp, #12\n"  // 0xc
 364         "MOV    r0, r4\n"
 365         "BL     sub_ff95f474\n"
 366 "loc_ff95f278:\n" // 2 refs
 367         "MOV    r8, r0\n"
 368         "B      loc_ff95f2a8\n"
 369 "loc_ff95f280:\n"
 370         "LDR    r0, =0x1\n" // was: "mov ..., #1"
 371         "BL     sub_ff8b1510\n"
 372         "LDR    r2, [sp, #8]\n"
 373         "ADD    r1, sp, #12\n"  // 0xc
 374         "MOV    r0, r4\n"
 375         "BL     sub_ff95f540\n"
 376         "B      loc_ff95f278\n"
 377 "loc_ff95f29c:\n"
 378         "LDR    r1, =0x00000429\n" // was: "[pc, #208]  ; ff95f374" 
 379         "LDR    r0, =0xff95ef18\n" // was: "sub r0, pc, #912"   *"SsCaptureSeq.c"
 380         "BL     sub_ff81eb14\n"
 381 "loc_ff95f2a8:\n"
 382         "TST    r8, #1\n"       // 0x1
 383         "MOVNE  r0, r8\n"
 384         "BNE    loc_ff95f32c\n"
 385         "LDR    r0, =0xff95ed2c\n" // was: "[pc, #188]  ; ff95f378" 
 386         "LDR    r1, =0x0\n" // was: "mov ..., #0"
 387         "BL     sub_ff8b14e0\n"
 388         "LDRH   r0, [r7]\n"
 389         "SUB    ip, r0, #32768\n"       // 0x8000
 390         "SUBS   ip, ip, #524\n" // 0x20c
 391         "BLEQ   sub_ff89d470\n"
 392         "LDR    r2, =0x000067c4\n" // was: "[pc, #164]  ; ff95f37c" 
 393         "LDR    r0, [r4, #24]\n"
 394         "LDR    r3, =0x4\n" // was: "mov ..., #4"
 395         "LDR    r1, =0x45\n" // was: "mov ..., #69"
 396         "BL     sub_ff88c728\n"
 397         "LDR    r0, =0x1\n" // was: "mov ..., #1"
 398         "BL     sub_ff929534\n"
 399         "STR    r0, [r4, #216]\n"
 400         "BL     sub_ff87ce94\n"
 401         "BL     sub_ff96009c\n"
 402         "LDR    r5, =0x0000044c\n" // was: "[pc, #128]  ; ff95f380" 
 403         "LDR    r2, =0x00003a98\n" // was: "[pc, #-988] ; ff95ef28" 
 404         "LDR    r3, =0xff95ef18\n" // was: "sub r3, pc, #1008"   *"SsCaptureSeq.c"
 405         "LDR    r1, =0x4\n" // was: "mov ..., #4"
 406         "STR    r5, [sp]\n"
 407         "BL     sub_ff87f4f0\n"
 408         "CMP    r0, #0\n"       // 0x0
 409         "LDRNE  r0, =0xff95ef18\n" // was: "[pc, #104]  ; ff95f384"  **"SsCaptureSeq.c"
 410         "MOVNE  r1, r5\n"
 411         "BLNE   sub_ff81eb14\n"
 412         "LDRH   r0, [sp, #12]\n"
 413         "STRH   r0, [r4, #20]\n"
 414         "LDR    r0, =0x0\n" // was: "mov ..., #0"
 415 "loc_ff95f32c:\n"
 416         "ADD    sp, sp, #16\n"  // 0x10
 417         "POP    {r4, r5, r6, r7, r8, pc}\n"
 418 */
 419     );
 420 }
 421 
 422 void __attribute__((naked,noinline)) sub_ff87a714_my() { // FF87D754
 423   asm volatile (
 424         "PUSH   {r4, r5, r6, lr}\n"
 425         "LDR    r4, [r0, #12]\n"
 426         "LDR    r6, =0x00039644\n" // was: "[pc, #-2132]        ; ff879ed0" 
 427         "LDR    r0, [r4, #8]\n"
 428         "LDR    r5, =0x0\n" // was: "mov ..., #0"
 429         "ORR    r0, r0, #1\n"   // 0x1
 430         "STR    r0, [r4, #8]\n"
 431         "LDR    r0, [r6, #36]\n"
 432         "CMP    r0, #0\n"       // 0x0
 433         "LDREQ  r0, =0x2\n" // was: "mov ..., #2"
 434         "BLEQ   sub_ff876768\n"
 435         "BL     sub_ff87ac90\n"
 436         "LDR    r0, [r6, #36]\n"
 437         "CMP    r0, #0\n"       // 0x0
 438         "BNE    loc_ff87a7dc\n"
 439         "LDR    r0, =0x0\n" // was: "mov ..., #0"
 440         "BL     sub_ff95fd98\n"
 441         "LDR    r0, =0x0\n" // was: "mov ..., #0"
 442         "BL     sub_ff95fecc\n"
 443         "MOV    r0, r4\n"
 444         "BL     sub_ff87b064\n"
 445         "MOV    r0, r4\n"
 446         "BL     sub_ff95dd38\n"
 447         "CMP    r0, #0\n"       // 0x0
 448         "BEQ    loc_ff87a7a4\n"
 449         "BL     sub_ff95fdd8\n"
 450         "BL     sub_ff95ff10\n"
 451         "BL     sub_ff95ff60\n"
 452         "MOV    r0, r4\n"
 453         "BL     sub_ff95de1c\n"
 454         "TST    r0, #1\n"       // 0x1
 455         "MOVNE  r2, r4\n"
 456         "POPNE  {r4, r5, r6, lr}\n"
 457         "LDRNE  r1, =0x1\n" // was: "mov ..., #1"
 458         "BNE    sub_ff87856c\n"
 459         "B      loc_ff87a7b8\n"
 460 "loc_ff87a7a4:\n"
 461         "MOV    r0, r4\n"
 462         "BL     sub_ff95ddb8\n"
 463         "BL     sub_ff95fdd8\n"
 464         "BL     sub_ff95ff10\n"
 465         "BL     sub_ff95ff60\n"
 466 "loc_ff87a7b8:\n"
 467         "MOV    r0, r4\n"
 468         "BL     sub_ff879e24\n"
 469         "MOV    r0, r4\n"
 470         "BL     sub_ff95f038\n"
 471         "BL     sub_ff95fb74\n"
 472         "MOV    r0, r4\n"
 473         //"BL   sub_ff95f120\n"
 474         "BL     sub_ff95f120_my\n"
 475         "MOV    r5, r0\n"
 476         "BL     capt_seq_hook_raw_here\n" // added (sx210is)
 477         "B      loc_ff87a7ec\n"
 478 "loc_ff87a7dc:\n"
 479         "LDR    r0, =0x00002b9c\n" // was: "[pc, #-2376]        ; ff879e9c" 
 480         "LDR    r0, [r0, #16]\n"
 481         "CMP    r0, #0\n"       // 0x0
 482         "LDRNE  r5, =0x1d\n" // was: "mov ..., #29"
 483 "loc_ff87a7ec:\n"
 484         "BL     sub_ff87d804\n"
 485         "BL     sub_ff87d84c\n"
 486         "BL     sub_ff87d88c\n"
 487         "MOV    r2, r4\n"
 488         "LDR    r1, =0x1\n" // was: "mov ..., #1"
 489         "MOV    r0, r5\n"
 490         "BL     sub_ff87856c\n"
 491         "BL     sub_ff95f388\n"
 492         "CMP    r0, #0\n"       // 0x0
 493         "LDRNE  r0, [r4, #8]\n"
 494         "ORRNE  r0, r0, #8192\n"        // 0x2000
 495         "STRNE  r0, [r4, #8]\n"
 496         "POP    {r4, r5, r6, pc}\n"
 497     );
 498 }
 499 
 500 // ff8bab28: task_ExpDrvTask()
 501 // Is anything changed in here? If not, why not just call original?
 502 void __attribute__((naked,noinline)) exp_drv_task() { // was FF8C25DC
 503   asm volatile (
 504         "PUSH   {r4, r5, r6, r7, r8, lr}\n"
 505         "SUB    sp, sp, #32\n"  // 0x20
 506         "LDR    r8, =0x00000bb8\n" // was: "[pc, #-908] ; ff8ba7ac" 
 507         "LDR    r7, =0x00003f58\n" // was: "[pc, #2736] ; ff8bb5ec" 
 508         "LDR    r5, =0x00042ab0\n" // was: "[pc, #2764] ; ff8bb60c" 
 509         "LDR    r0, =0x0\n" // was: "mov ..., #0"
 510         "ADD    r6, sp, #16\n"  // 0x10
 511         "STR    r0, [sp, #12]\n"
 512 "loc_ff8bab48:\n"
 513         "LDR    r0, [r7, #32]\n"
 514         "LDR    r2, =0x0\n" // was: "mov ..., #0"
 515         "ADD    r1, sp, #28\n"  // 0x1c
 516         "BL     sub_ff8396e4\n"
 517         "LDR    r0, [sp, #12]\n"
 518         "CMP    r0, #1\n"       // 0x1
 519         "BNE    loc_ff8bab94\n"
 520         "LDR    r0, [sp, #28]\n"
 521         "LDR    r0, [r0]\n"
 522         "CMP    r0, #19\n"      // 0x13
 523         "CMPNE  r0, #20\n"      // 0x14
 524         "CMPNE  r0, #21\n"      // 0x15
 525         "CMPNE  r0, #22\n"      // 0x16
 526         "BEQ    loc_ff8bacf8\n"
 527         "CMP    r0, #40\n"      // 0x28
 528         "BEQ    loc_ff8bac80\n"
 529         "ADD    r1, sp, #12\n"  // 0xc
 530         "LDR    r0, =0x0\n" // was: "mov ..., #0"
 531         "BL     sub_ff8baad8\n"
 532 "loc_ff8bab94:\n"
 533         "LDR    r0, [sp, #28]\n"
 534         "LDR    r1, [r0]\n"
 535         "CMP    r1, #46\n"      // 0x2e
 536         "BNE    loc_ff8babc4\n"
 537         "LDR    r0, [sp, #28]\n"
 538         "BL     sub_ff8bbe38\n"
 539         "LDR    r0, [r7, #28]\n"
 540         "LDR    r1, =0x1\n" // was: "mov ..., #1"
 541         "BL     sub_ff883f9c\n"
 542         "BL     sub_ff81eacc\n" // eventproc_export_ExitTask()
 543         "ADD    sp, sp, #32\n"  // 0x20
 544         "POP    {r4, r5, r6, r7, r8, pc}\n"
 545 "loc_ff8babc4:\n"
 546         "CMP    r1, #45\n"      // 0x2d
 547         "BNE    loc_ff8babe0\n"
 548         "LDR    r2, [r0, #140]!\n"
 549         "LDR    r1, [r0, #4]\n"
 550         "MOV    r0, r1\n"
 551         "BLX    r2\n"
 552         "B      loc_ff8bb120\n"
 553 "loc_ff8babe0:\n"
 554         "CMP    r1, #38\n"      // 0x26
 555         "BNE    loc_ff8bac30\n"
 556         "LDR    r0, [r7, #28]\n"
 557         "LDR    r1, =0x80\n" // was: "mov ..., #128"
 558         "BL     sub_ff883fd0\n"
 559         "LDR    r0, =0xff8b723c\n" // was: "[pc, #2580] ; ff8bb610" 
 560         "LDR    r1, =0x80\n" // was: "mov ..., #128"
 561         "BL     sub_ff952f00\n"
 562         "LDR    r0, [r7, #28]\n"
 563         "MOV    r2, r8\n"
 564         "LDR    r1, =0x80\n" // was: "mov ..., #128"
 565         "BL     sub_ff883edc\n"
 566         "TST    r0, #1\n"       // 0x1
 567         "LDRNE  r1, =0x00000e5f\n" // was: "[pc, #2552] ; ff8bb614" 
 568         "BNE    loc_ff8bacec\n"
 569 "loc_ff8bac1c:\n" // 5 refs
 570         "LDR    r1, [sp, #28]\n"
 571         "LDR    r0, [r1, #144]\n"
 572         "LDR    r1, [r1, #140]\n"
 573         "BLX    r1\n"
 574         "B      loc_ff8bb120\n"
 575 "loc_ff8bac30:\n"
 576         "CMP    r1, #39\n"      // 0x27
 577         "BNE    loc_ff8bac78\n"
 578         "ADD    r1, sp, #12\n"  // 0xc
 579         "BL     sub_ff8baad8\n"
 580         "LDR    r0, [r7, #28]\n"
 581         "LDR    r1, =0x100\n" // was: "mov ..., #256"
 582         "BL     sub_ff883fd0\n"
 583         "LDR    r0, =0xff8b724c\n" // was: "[pc, #2500] ; ff8bb618" 
 584         "LDR    r1, =0x100\n" // was: "mov ..., #256"
 585         "BL     sub_ff953188\n"
 586         "LDR    r0, [r7, #28]\n"
 587         "MOV    r2, r8\n"
 588         "LDR    r1, =0x100\n" // was: "mov ..., #256"
 589         "BL     sub_ff883edc\n"
 590         "TST    r0, #1\n"       // 0x1
 591         "BEQ    loc_ff8bac1c\n"
 592         "LDR    r1, =0x00000e69\n" // was: "[pc, #2468] ; ff8bb61c" 
 593         "B      loc_ff8bacec\n"
 594 "loc_ff8bac78:\n"
 595         "CMP    r1, #40\n"      // 0x28
 596         "BNE    loc_ff8bac90\n"
 597 "loc_ff8bac80:\n"
 598         "LDR    r0, [sp, #28]\n"
 599         "ADD    r1, sp, #12\n"  // 0xc
 600         "BL     sub_ff8baad8\n"
 601         "B      loc_ff8bac1c\n"
 602 "loc_ff8bac90:\n"
 603         "CMP    r1, #43\n"      // 0x2b
 604         "BNE    loc_ff8baca8\n"
 605         "BL     sub_ff8aa3b8\n"
 606         "BL     sub_ff8aafec\n"
 607         "BL     sub_ff8aab3c\n"
 608         "B      loc_ff8bac1c\n"
 609 "loc_ff8baca8:\n"
 610         "CMP    r1, #44\n"      // 0x2c
 611         "BNE    loc_ff8bacf8\n"
 612         "LDR    r0, [r7, #28]\n"
 613         "LDR    r1, =0x4\n" // was: "mov ..., #4"
 614         "BL     sub_ff883fd0\n"
 615         "LDR    r1, =0xff8b726c\n" // was: "[pc, #-1252]        ; ff8ba7e0" 
 616         "LDR    r0, =0xfffff400\n" // was: "[pc, #-1252]        ; ff8ba7e4" 
 617         "LDR    r2, =0x4\n" // was: "mov ..., #4"
 618         "BL     sub_ff8a9e34\n"
 619         "BL     sub_ff8aa0bc\n"
 620         "LDR    r0, [r7, #28]\n"
 621         "MOV    r2, r8\n"
 622         "LDR    r1, =0x4\n" // was: "mov ..., #4"
 623         "BL     sub_ff883df8\n"
 624         "TST    r0, #1\n"       // 0x1
 625         "BEQ    loc_ff8bac1c\n"
 626         "LDR    r1, =0x00000e91\n" // was: "[pc, #2352] ; ff8bb620" 
 627 "loc_ff8bacec:\n" // 2 refs
 628         "LDR    r0, =0xff8b78ac\n" // was: "[pc, #-1344]        ; ff8ba7b4"  **"ExpDrv.c"
 629         "BL     sub_ff81eb14\n"
 630         "B      loc_ff8bac1c\n"
 631 "loc_ff8bacf8:\n" // 2 refs
 632         "LDR    r0, [sp, #28]\n"
 633         "LDR    r4, =0x1\n" // was: "mov ..., #1"
 634         "LDR    r1, [r0]\n"
 635         "CMP    r1, #17\n"      // 0x11
 636         "CMPNE  r1, #18\n"      // 0x12
 637         "BNE    loc_ff8bad68\n"
 638         "LDR    r1, [r0, #124]\n"
 639         "ADD    r1, r1, r1, lsl #1\n"
 640         "ADD    r1, r0, r1, lsl #2\n"
 641         "SUB    r1, r1, #8\n"   // 0x8
 642         "LDM    r1, {r2, r3, r4}\n"
 643         "STM    r6, {r2, r3, r4}\n"
 644         "BL     sub_ff8b93fc\n"
 645         "LDR    r0, [sp, #28]\n"
 646         "LDR    r1, [r0, #124]\n"
 647         "LDR    r3, [r0, #140]\n"
 648         "LDR    r2, [r0, #144]\n"
 649         "ADD    r0, r0, #4\n"   // 0x4
 650         "BLX    r3\n"
 651         "LDR    r0, [sp, #28]\n"
 652         "BL     sub_ff8bc1fc\n"
 653         "LDR    r0, [sp, #28]\n"
 654         "LDR    r1, [r0, #124]\n"
 655         "LDR    r3, [r0, #148]\n"
 656         "LDR    r2, [r0, #152]\n"
 657         "ADD    r0, r0, #4\n"   // 0x4
 658         "BLX    r3\n"
 659         "B      loc_ff8bb060\n"
 660 "loc_ff8bad68:\n"
 661         "CMP    r1, #19\n"      // 0x13
 662         "CMPNE  r1, #20\n"      // 0x14
 663         "CMPNE  r1, #21\n"      // 0x15
 664         "CMPNE  r1, #22\n"      // 0x16
 665         "BNE    loc_ff8bae20\n"
 666         "ADD    r3, sp, #12\n"  // 0xc
 667         "MOV    r2, sp\n"
 668         "ADD    r1, sp, #16\n"  // 0x10
 669         "BL     sub_ff8b96d8\n"
 670         "CMP    r0, #1\n"       // 0x1
 671         "MOV    r4, r0\n"
 672         "CMPNE  r4, #5\n"       // 0x5
 673         "BNE    loc_ff8badbc\n"
 674         "LDR    r0, [sp, #28]\n"
 675         "MOV    r2, r4\n"
 676         "LDR    r1, [r0, #124]!\n"
 677         "LDR    ip, [r0, #16]!\n"
 678         "LDR    r3, [r0, #4]\n"
 679         "MOV    r0, sp\n"
 680         "BLX    ip\n"
 681         "B      loc_ff8badf4\n"
 682 "loc_ff8badbc:\n"
 683         "LDR    r0, [sp, #28]\n"
 684         "CMP    r4, #2\n"       // 0x2
 685         "LDR    r3, [r0, #144]\n"
 686         "CMPNE  r4, #6\n"       // 0x6
 687         "BNE    loc_ff8bae08\n"
 688         "LDR    ip, [r0, #140]\n"
 689         "MOV    r0, sp\n"
 690         "MOV    r2, r4\n"
 691         "LDR    r1, =0x1\n" // was: "mov ..., #1"
 692         "BLX    ip\n"
 693         "LDR    r0, [sp, #28]\n"
 694         "MOV    r2, sp\n"
 695         "ADD    r1, sp, #16\n"  // 0x10
 696         "BL     sub_ff8ba7ec\n"
 697 "loc_ff8badf4:\n"
 698         "LDR    r0, [sp, #28]\n"
 699         "LDR    r2, [sp, #12]\n"
 700         "MOV    r1, r4\n"
 701         "BL     sub_ff8baa78\n"
 702         "B      loc_ff8bb060\n"
 703 "loc_ff8bae08:\n"
 704         "LDR    r1, [r0, #124]\n"
 705         "LDR    ip, [r0, #140]\n"
 706         "ADD    r0, r0, #4\n"   // 0x4
 707         "MOV    r2, r4\n"
 708         "BLX    ip\n"
 709         "B      loc_ff8bb060\n"
 710 "loc_ff8bae20:\n"
 711         "CMP    r1, #34\n"      // 0x22
 712         "CMPNE  r1, #35\n"      // 0x23
 713         "BNE    loc_ff8bae6c\n"
 714         "LDR    r1, [r0, #124]\n"
 715         "ADD    r1, r1, r1, lsl #1\n"
 716         "ADD    r1, r0, r1, lsl #2\n"
 717         "SUB    r1, r1, #8\n"   // 0x8
 718         "LDM    r1, {r2, r3, r4}\n"
 719         "STM    r6, {r2, r3, r4}\n"
 720         "BL     sub_ff8b894c\n"
 721         "LDR    r0, [sp, #28]\n"
 722         "LDR    r1, [r0, #124]\n"
 723         "LDR    r3, [r0, #140]\n"
 724         "LDR    r2, [r0, #144]\n"
 725         "ADD    r0, r0, #4\n"   // 0x4
 726         "BLX    r3\n"
 727         "LDR    r0, [sp, #28]\n"
 728         "BL     sub_ff8b8c40\n"
 729         "B      loc_ff8bb060\n"
 730 "loc_ff8bae6c:\n"
 731         "ADD    r1, r0, #4\n"   // 0x4
 732         "LDM    r1, {r2, r3, ip}\n"
 733         "STM    r6, {r2, r3, ip}\n"
 734         "LDR    r1, [r0]\n"
 735         "CMP    r1, #37\n"      // 0x25
 736         "ADDLS  pc, pc, r1, lsl #2\n"
 737         "B      loc_ff8bb040\n"
 738         "B      loc_ff8baf20\n" // 0 jump table start
 739         "B      loc_ff8baf20\n"
 740         "B      loc_ff8baf28\n"
 741         "B      loc_ff8baf30\n"
 742         "B      loc_ff8baf30\n"
 743         "B      loc_ff8baf30\n"
 744         "B      loc_ff8baf20\n"
 745         "B      loc_ff8baf28\n"
 746         "B      loc_ff8baf30\n"
 747         "B      loc_ff8baf30\n"
 748         "B      loc_ff8baf48\n" // 10
 749         "B      loc_ff8baf48\n"
 750         "B      loc_ff8bb034\n"
 751         "B      loc_ff8bb03c\n"
 752         "B      loc_ff8bb03c\n"
 753         "B      loc_ff8bb03c\n"
 754         "B      loc_ff8bb03c\n"
 755         "B      loc_ff8bb040\n"
 756         "B      loc_ff8bb040\n"
 757         "B      loc_ff8bb040\n"
 758         "B      loc_ff8bb040\n" // 20
 759         "B      loc_ff8bb040\n"
 760         "B      loc_ff8bb040\n"
 761         "B      loc_ff8baf38\n"
 762         "B      loc_ff8baf40\n"
 763         "B      loc_ff8baf40\n"
 764         "B      loc_ff8baf54\n"
 765         "B      loc_ff8baf54\n"
 766         "B      loc_ff8baf5c\n"
 767         "B      loc_ff8baf8c\n"
 768         "B      loc_ff8bafbc\n" // 30
 769         "B      loc_ff8bafec\n"
 770         "B      loc_ff8bb01c\n"
 771         "B      loc_ff8bb01c\n"
 772         "B      loc_ff8bb040\n"
 773         "B      loc_ff8bb040\n"
 774         "B      loc_ff8bb024\n"
 775         "B      loc_ff8bb02c\n" // 37
 776 "loc_ff8baf20:\n" // jump table entries 0, 1, 6
 777         "BL     sub_ff8b7754\n"
 778         "B      loc_ff8bb040\n"
 779 "loc_ff8baf28:\n" // jump table entries 2, 7
 780         "BL     sub_ff8b79d8\n"
 781         "B      loc_ff8bb040\n"
 782 "loc_ff8baf30:\n" // jump table entries 3, 4, 5, 8, 9
 783         "BL     sub_ff8b7be0\n"
 784         "B      loc_ff8bb040\n"
 785 "loc_ff8baf38:\n" // jump table entry 23
 786         "BL     sub_ff8b7e58\n"
 787         "B      loc_ff8bb040\n"
 788 "loc_ff8baf40:\n" // jump table entry 24, 25
 789         "BL     sub_ff8b8050\n"
 790         "B      loc_ff8bb040\n"
 791 "loc_ff8baf48:\n" // jump table entries 10, 11
 792         "BL     sub_ff8b830c\n"
 793         "LDR    r4, =0x0\n" // was: "mov ..., #0"
 794         "B      loc_ff8bb040\n"
 795 "loc_ff8baf54:\n" // jump table entry 26, 27
 796         "BL     sub_ff8b844c\n"
 797         "B      loc_ff8bb040\n"
 798 "loc_ff8baf5c:\n" // jump table entry 28
 799         "LDRH   r1, [r0, #4]\n"
 800         "STRH   r1, [sp, #16]\n"
 801         "LDRH   r1, [r5, #2]\n"
 802         "STRH   r1, [sp, #18]\n"
 803         "LDRH   r1, [r5, #4]\n"
 804         "STRH   r1, [sp, #20]\n"
 805         "LDRH   r1, [r5, #6]\n"
 806         "STRH   r1, [sp, #22]\n"
 807         "LDRH   r1, [r0, #12]\n"
 808         "STRH   r1, [sp, #24]\n"
 809         "BL     sub_ff8bbeac\n"
 810         "B      loc_ff8bb040\n"
 811 "loc_ff8baf8c:\n" // jump table entry 29
 812         "LDRH   r1, [r0, #4]\n"
 813         "STRH   r1, [sp, #16]\n"
 814         "LDRH   r1, [r5, #2]\n"
 815         "STRH   r1, [sp, #18]\n"
 816         "LDRH   r1, [r5, #4]\n"
 817         "STRH   r1, [sp, #20]\n"
 818         "LDRH   r1, [r5, #6]\n"
 819         "STRH   r1, [sp, #22]\n"
 820         "LDRH   r1, [r5, #8]\n"
 821         "STRH   r1, [sp, #24]\n"
 822         "BL     sub_ff8bc014\n"
 823         "B      loc_ff8bb040\n"
 824 "loc_ff8bafbc:\n" // jump table entry 30
 825         "LDRH   r1, [r5]\n"
 826         "STRH   r1, [sp, #16]\n"
 827         "LDRH   r1, [r0, #6]\n"
 828         "STRH   r1, [sp, #18]\n"
 829         "LDRH   r1, [r5, #4]\n"
 830         "STRH   r1, [sp, #20]\n"
 831         "LDRH   r1, [r5, #6]\n"
 832         "STRH   r1, [sp, #22]\n"
 833         "LDRH   r1, [r5, #8]\n"
 834         "STRH   r1, [sp, #24]\n"
 835         "BL     sub_ff8bc0c0\n"
 836         "B      loc_ff8bb040\n"
 837 "loc_ff8bafec:\n" // jump table entry 31
 838         "LDRH   r1, [r5]\n"
 839         "STRH   r1, [sp, #16]\n"
 840         "LDRH   r1, [r5, #2]\n"
 841         "STRH   r1, [sp, #18]\n"
 842         "LDRH   r1, [r5, #4]\n"
 843         "STRH   r1, [sp, #20]\n"
 844         "LDRH   r1, [r5, #6]\n"
 845         "STRH   r1, [sp, #22]\n"
 846         "LDRH   r1, [r0, #12]\n"
 847         "STRH   r1, [sp, #24]\n"
 848         "BL     sub_ff8bc160\n"
 849         "B      loc_ff8bb040\n"
 850 "loc_ff8bb01c:\n" // jump table entries 32, 33
 851         "BL     sub_ff8b87a4\n"
 852         "B      loc_ff8bb040\n"
 853 "loc_ff8bb024:\n" // jump table entry 36
 854         "BL     sub_ff8b8d44\n"
 855         "B      loc_ff8bb040\n"
 856 "loc_ff8bb02c:\n" // jump table entry 37
 857         "BL     sub_ff8b8f80\n"
 858         "B      loc_ff8bb040\n"
 859 "loc_ff8bb034:\n" // jump table entry 12
 860         "BL     sub_ff8b90fc\n"
 861         "B      loc_ff8bb040\n"
 862 "loc_ff8bb03c:\n" // jump table entries 13, 14, 15, 16
 863         "BL     sub_ff8b9298\n"
 864 "loc_ff8bb040:\n" // jump table entries 17, 18, 19, 20, 21, 22, 34, 35, default
 865         "LDR    r0, [sp, #28]\n"
 866         "LDR    r1, [r0, #124]\n"
 867         "LDR    r3, [r0, #140]\n"
 868         "LDR    r2, [r0, #144]\n"
 869         "ADD    r0, r0, #4\n"   // 0x4
 870         "BLX    r3\n"
 871         "CMP    r4, #1\n"       // 0x1
 872         "BNE    loc_ff8bb0a8\n"
 873 "loc_ff8bb060:\n" // 4 refs
 874         "LDR    r0, [sp, #28]\n"
 875         "LDR    r2, =0xc\n" // was: "mov ..., #12"
 876         "LDR    r1, [r0, #124]\n"
 877         "ADD    r1, r1, r1, lsl #1\n"
 878         "ADD    r0, r0, r1, lsl #2\n"
 879         "SUB    r4, r0, #8\n"   // 0x8
 880         "LDR    r0, =0x00042ab0\n" // was: "[pc, #1420] ; ff8bb60c" 
 881         "ADD    r1, sp, #16\n"  // 0x10
 882         "BL     sub_ffb39768\n"
 883         "LDR    r0, =0x00042abc\n" // was: "[pc, #1432] ; ff8bb624" 
 884         "LDR    r2, =0xc\n" // was: "mov ..., #12"
 885         "ADD    r1, sp, #16\n"  // 0x10
 886         "BL     sub_ffb39768\n"
 887         "LDR    r0, =0x00042ac8\n" // was: "[pc, #1420] ; ff8bb628" 
 888         "LDR    r2, =0xc\n" // was: "mov ..., #12"
 889         "MOV    r1, r4\n"
 890         "BL     sub_ffb39768\n"
 891         "B      loc_ff8bb120\n"
 892 "loc_ff8bb0a8:\n"
 893         "LDR    r0, [sp, #28]\n"
 894         "LDR    r0, [r0]\n"
 895         "CMP    r0, #11\n"      // 0xb
 896         "BNE    loc_ff8bb0f0\n"
 897         "LDR    r3, =0x0\n" // was: "mov ..., #0"
 898         "STR    r3, [sp]\n"
 899         "LDR    r3, =0x1\n" // was: "mov ..., #1"
 900         "LDR    r2, =0x1\n" // was: "mov ..., #1"
 901         "LDR    r1, =0x1\n" // was: "mov ..., #1"
 902         "LDR    r0, =0x0\n" // was: "mov ..., #0"
 903         "BL     sub_ff8b755c\n"
 904         "LDR    r3, =0x0\n" // was: "mov ..., #0"
 905         "STR    r3, [sp]\n"
 906         "LDR    r3, =0x1\n" // was: "mov ..., #1"
 907         "LDR    r2, =0x1\n" // was: "mov ..., #1"
 908         "LDR    r1, =0x1\n" // was: "mov ..., #1"
 909         "LDR    r0, =0x0\n" // was: "mov ..., #0"
 910         "B      loc_ff8bb11c\n"
 911 "loc_ff8bb0f0:\n"
 912         "LDR    r3, =0x1\n" // was: "mov ..., #1"
 913         "LDR    r2, =0x1\n" // was: "mov ..., #1"
 914         "LDR    r1, =0x1\n" // was: "mov ..., #1"
 915         "LDR    r0, =0x1\n" // was: "mov ..., #1"
 916         "STR    r3, [sp]\n"
 917         "BL     sub_ff8b755c\n"
 918         "LDR    r3, =0x1\n" // was: "mov ..., #1"
 919         "LDR    r2, =0x1\n" // was: "mov ..., #1"
 920         "LDR    r1, =0x1\n" // was: "mov ..., #1"
 921         "LDR    r0, =0x1\n" // was: "mov ..., #1"
 922         "STR    r3, [sp]\n"
 923 "loc_ff8bb11c:\n"
 924         "BL     sub_ff8b769c\n"
 925 "loc_ff8bb120:\n" // 3 refs
 926         "LDR    r0, [sp, #28]\n"
 927         "BL     sub_ff8bbe38\n"
 928         "B      loc_ff8bab48\n"
 929     );
 930 }

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