root/platform/g11/sub/100j/capt_seq.c

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

DEFINITIONS

This source file includes following definitions.
  1. capt_seq_task
  2. sub_FF87AA64_my
  3. sub_FF96878C_my
  4. exp_drv_task
  5. sub_FF8BD3B8_my
  6. sub_FF8AF4BC_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 
   5 static long *nrflag = (long*)0x7290; /* G11 above "aShuttersoundta" usage @FF9687A0 */
   6 
   7 #include "../../../generic/capt_seq.c"
   8 
   9 void __attribute__((naked,noinline)) capt_seq_task() {
  10  asm volatile (
  11                 "STMFD   SP!, {R3-R9,LR}\n"
  12                 "LDR     R6, =0x2C64\n"
  13                 "LDR     R4, =0x38A78\n"
  14                 "MOV     R9, #1\n"
  15                 "MOV     R7, #0\n"
  16 "loc_FF87B150:\n"
  17                 "LDR     R0, [R6,#4]\n"
  18                 "MOV     R2, #0\n"
  19                 "MOV     R1, SP\n"
  20                 "BL      sub_FF83894C\n"
  21                 "TST     R0, #1\n"
  22                 "BEQ     loc_FF87B17C\n"
  23                 "LDR     R1, =0x5B3\n"
  24                 "LDR     R0, =0xFF87A938\n"
  25                 "BL      sub_FF81E88C\n"
  26                 "BL      sub_FF81E844\n"
  27                 "LDMFD   SP!, {R3-R9,PC}\n"
  28 "loc_FF87B17C:\n"  
  29                 "LDR     R0, [SP]\n"
  30                 "LDR     R1, [R0]\n"
  31                 "CMP     R1, #0x22\n"
  32                 "ADDLS   PC, PC, R1,LSL#2\n"
  33                 "B       loc_FF87B474\n"
  34 
  35 "loc_FF87B190:\n"
  36                 "B       loc_FF87B21C\n"
  37 
  38 "loc_FF87B194:\n"
  39                 "B       loc_FF87B288\n"
  40 
  41 "loc_FF87B198:\n"
  42                 "B       loc_FF87B2C4\n"
  43 
  44 "loc_FF87B19C:\n"
  45                 "B       loc_FF87B2D8\n"
  46 
  47 "loc_FF87B1A0:\n"
  48                 "B       loc_FF87B2D0\n"
  49 
  50 "loc_FF87B1A4:\n"
  51                 "B       loc_FF87B2E0\n"
  52 
  53 "loc_FF87B1A8:\n"
  54                 "B       loc_FF87B2E8\n"
  55 
  56 "loc_FF87B1AC:\n"
  57                 "B       loc_FF87B2F0\n"
  58 
  59 "loc_FF87B1B0:\n"
  60                 "B       loc_FF87B348\n"
  61 
  62 "loc_FF87B1B4:\n"
  63                 "B       loc_FF87B370\n"
  64 
  65 "loc_FF87B1B8:\n"
  66                 "B       loc_FF87B354\n"
  67 
  68 "loc_FF87B1BC:\n"
  69                 "B       loc_FF87B360\n"
  70 
  71 "loc_FF87B1C0:\n"
  72                 "B       loc_FF87B368\n"
  73 
  74 "loc_FF87B1C4:\n"
  75                 "B       loc_FF87B378\n"
  76 
  77 "loc_FF87B1C8:\n"
  78                 "B       loc_FF87B380\n"
  79 
  80 "loc_FF87B1CC:\n"
  81                 "B       loc_FF87B388\n"
  82 
  83 "loc_FF87B1D0:\n"
  84                "B       loc_FF87B390\n"
  85 
  86 "loc_FF87B1D4:\n"
  87                 "B       loc_FF87B398\n"
  88 
  89 "loc_FF87B1D8:\n"
  90                 "B       loc_FF87B3A0\n"
  91 
  92 "loc_FF87B1DC:\n"
  93                 "B       loc_FF87B3A8\n"
  94 
  95 "loc_FF87B1E0:\n"
  96                 "B       loc_FF87B3B0\n"
  97 
  98 "loc_FF87B1E4:\n"
  99                 "B       loc_FF87B3B8\n"
 100 
 101 "loc_FF87B1E8:\n"
 102                 "B       loc_FF87B3C0\n"
 103 
 104 "loc_FF87B1EC:\n"
 105                 "B       loc_FF87B3CC\n"
 106 
 107 "loc_FF87B1F0:\n"
 108                 "B       loc_FF87B3D4\n"
 109 
 110 "loc_FF87B1F4:\n"
 111                 "B       loc_FF87B3E0\n"
 112 
 113 "loc_FF87B1F8:\n"
 114                 "B       loc_FF87B3E8\n"
 115 
 116 "loc_FF87B1FC:\n"
 117                 "B       loc_FF87B418\n"
 118 
 119 "loc_FF87B200:\n"
 120                 "B       loc_FF87B420\n"
 121 
 122 "loc_FF87B204:\n"
 123                 "B       loc_FF87B428\n"
 124 
 125 "loc_FF87B208:\n"
 126                 "B       loc_FF87B430\n"
 127 
 128 "loc_FF87B20C:\n"
 129                 "B       loc_FF87B438\n"
 130 
 131 "loc_FF87B210:\n"
 132                 "B       loc_FF87B440\n"
 133 
 134 "loc_FF87B214:\n"
 135                 "B       loc_FF87B44C\n"
 136 
 137 "loc_FF87B218:\n"
 138                 "B       loc_FF87B480\n"
 139 
 140 "loc_FF87B21C:\n"
 141 // jumptable FF87B188 entry 0            
 142                 "BL      sub_FF87BA8C\n"
 143                 "BL      shooting_expo_param_override\n"  // + 
 144                 "BL      sub_FF878B18\n"
 145 
 146 // copied over from SX10 don't know if we need it yet
 147 //  this code added to avoid some incorrect behavior if overrides are used.
 148 //  but it can cause some unexpected side effects. In this case, remove this code!
 149                  "MOV     R0, #0\n"
 150                  "STR     R0, [R4,#0x24]\n"  // fixes overrides  behavior at short shutter press
 151  //  end of my code
 152 
 153                 "LDR     R0, [R4,#0x24]\n"
 154                 "CMP     R0, #0\n"
 155                 "BEQ     loc_FF87B480\n"
 156                 "BL      sub_FF87A60C\n"
 157                 "MOV     R5, R0\n"
 158                 "LDR     R0, [R4,#0x24]\n"
 159                 "CMP     R0, #0\n"
 160                 "BEQ     loc_FF87B264\n"
 161                 "MOV     R0, #0xC\n"
 162                 "BL      sub_FF880488\n"
 163                 "TST     R0, #1\n"
 164                 "STRNE   R9, [R6,#0x10]\n"
 165                 "LDRNE   R0, [R5,#8]\n"
 166                 "ORRNE   R0, R0, #0x40000000\n"
 167                 "STRNE   R0, [R5,#8]\n"
 168                 "BNE     loc_FF87B480\n"
 169 
 170 "loc_FF87B264:\n"
 171                 "MOV     R0, R5\n"
 172                 "BL      sub_FF967EF0\n"
 173                 "MOV     R0, R5\n"
 174                 "BL      sub_FF87A9EC\n"
 175                 "MOV     R0, R5\n"
 176 
 177                 //"BL      sub_FF96878C\n"      // -
 178                 "BL      sub_FF96878C_my\n" //-------->
 179         "BL      capt_seq_hook_raw_here\n"      // +
 180                 "TST     R0, #1\n"
 181                 "STRNE   R9, [R6,#0x10]\n"
 182                 "B       loc_FF87B480\n"
 183 
 184 "loc_FF87B288:\n"
 185 // jumptable entry 1 
 186                 "LDR     R0, [R4,#0x24]\n"
 187                 "CMP     R0, #0\n"
 188                 "BNE     loc_FF87B2B4\n"
 189                 "MOV     R0, #0xC\n"
 190                 "BL      sub_FF880488\n"
 191                 "TST     R0, #1\n"
 192                 "LDRNE   R0, [SP]\n"
 193                 "MOVNE   R1, #1\n"
 194                 "LDRNE   R2, [R0,#0xC]\n"
 195                 "MOVNE   R0, #1\n"
 196                 "BNE     loc_FF87B340\n"
 197 
 198 "loc_FF87B2B4:\n"
 199                 "LDR     R0, [SP]\n"
 200               //"BL      sub_FF87AA64\n"  // - capt_seq_hook ist called in this subroutine
 201                 "BL      sub_FF87AA64_my\n"
 202 "loc_FF87B2BC:\n"
 203                 "STR     R7, [R4,#0x24]\n"
 204                 "B       loc_FF87B480\n"
 205 "loc_FF87B2C4:\n"
 206 // jumptable entry 2            
 207                 "MOV     R0, #1\n"
 208                 "BL      sub_FF87BD3C\n"
 209                 "B       loc_FF87B480\n"
 210 "loc_FF87B2D0:\n"
 211 // jumptable entry 4
 212                 "BL      sub_FF87B73C\n"
 213                 "B       loc_FF87B2BC\n"
 214 "loc_FF87B2D8:\n"
 215 // jumptable entry 3  
 216                 "BL      sub_FF87BA6C\n"
 217                 "B       loc_FF87B2BC\n"
 218 "loc_FF87B2E0:\n"
 219 // jumptable entry 5
 220                 "BL      sub_FF87BA74\n"
 221                 "B       loc_FF87B480\n"
 222 "loc_FF87B2E8:\n"
 223 // jumptable entry 6
 224                 "BL      sub_FF87BC2C\n"
 225                 "B       loc_FF87B34C\n"
 226 "loc_FF87B2F0:\n"
 227 // jumptable entry 7
 228                 "LDR     R5, [R0,#0xC]\n"
 229                 "BL      sub_FF87BA7C\n"
 230                 "MOV     R0, R5\n"
 231                 "BL      sub_FF966F6C\n"
 232                 "TST     R0, #1\n"
 233                 "MOV     R8, R0\n"
 234                 "BNE     loc_FF87B330\n"
 235                 "BL      sub_FF88D840\n"
 236                 "STR     R0, [R5,#0x18]\n"
 237                 "MOV     R0, R5\n"
 238                 "BL      sub_FF9686A4\n"
 239                 "MOV     R0, R5\n"
 240                 "BL      sub_FF968AA4\n"
 241                 "MOV     R8, R0\n"
 242                 "LDR     R0, [R5,#0x18]\n"
 243                 "BL      sub_FF88DA54\n"
 244 "loc_FF87B330:\n"
 245                 "BL      sub_FF87BA6C\n"
 246                 "MOV     R2, R5\n"
 247                 "MOV     R1, #9\n"
 248                 "MOV     R0, R8\n"
 249 "loc_FF87B340:\n"
 250                 "BL      sub_FF879044\n"
 251                 "B       loc_FF87B480\n"
 252 "loc_FF87B348:\n"
 253 // jumptable entry 8 
 254                 "BL      sub_FF87BCBC\n"
 255 "loc_FF87B34C:\n"
 256                 "BL      sub_FF878B18\n"
 257                 "B       loc_FF87B480\n"
 258 "loc_FF87B354:\n"
 259 // jumptable entry 10
 260                 "LDR     R0, [R4,#0x54]\n"
 261                 "BL      sub_FF87C340\n"
 262                 "B       loc_FF87B480\n"
 263 "loc_FF87B360:\n"
 264 // jumptable entry 11
 265                 "BL      sub_FF87C5E8\n"
 266                 "B       loc_FF87B480\n"
 267 "loc_FF87B368:\n"
 268 // jumptable entry 12
 269                 "BL      sub_FF87C67C\n"
 270                 "B       loc_FF87B480\n"
 271 "loc_FF87B370:\n"
 272 // jumptable entry 9
 273                 "BL      sub_FF87BA6C\n"
 274                 "B       loc_FF87B480\n"
 275 "loc_FF87B378:\n"
 276 // jumptable entry 13
 277                 "BL      sub_FF967198\n"
 278                 "B       loc_FF87B480\n"
 279 "loc_FF87B380:\n"
 280 // jumptable entry 14
 281                 "BL      sub_FF9673F0\n"
 282                 "B       loc_FF87B480\n"
 283 "loc_FF87B388:\n"
 284 // jumptable entry 15
 285                 "BL      sub_FF967490\n"
 286                 "B       loc_FF87B480\n"
 287 "loc_FF87B390:\n"
 288 // jumptable entry 16
 289                 "BL      sub_FF9675C4\n"
 290                 "B       loc_FF87B480\n"
 291 "loc_FF87B398:\n"
 292 // jumptable entry 17
 293                 "BL      sub_FF9676B8\n"
 294                 "B       loc_FF87B480\n"
 295 "loc_FF87B3A0:\n"
 296 // jumptable entry 18
 297                 "MOV     R0, #0\n"
 298                 "B       loc_FF87B3C4\n"
 299 "loc_FF87B3A8:\n"
 300 // jumptable entry 19
 301                 "BL      sub_FF967C34\n"
 302                 "B       loc_FF87B480\n"
 303 "loc_FF87B3B0:\n"
 304 // jumptable entry 20
 305                 "BL      sub_FF967CC4\n"
 306                 "B       loc_FF87B480\n"
 307 "loc_FF87B3B8:\n"
 308 // jumptable entry 21 
 309                 "BL      sub_FF967D84\n"
 310                 "B       loc_FF87B480\n"
 311 "loc_FF87B3C0:\n"
 312 // jumptable entry 22
 313                 "MOV     R0, #1\n"
 314 "loc_FF87B3C4:\n"
 315                 "BL      sub_FF967AE4\n"
 316                 "B       loc_FF87B480\n"
 317 "loc_FF87B3CC:\n"
 318 // jumptable entry 23
 319                 "BL      sub_FF87BF58\n"
 320                 "B       loc_FF87B480\n"
 321 "loc_FF87B3D4:\n"
 322 // jumptable entry 24
 323                 "BL      sub_FF87BFF8\n"
 324                 "BL      sub_FF87B5A8\n"
 325                 "B       loc_FF87B480\n"
 326 "loc_FF87B3E0:\n"
 327 // jumptable entry 25
 328                 "BL      sub_FF967970\n"
 329                 "B       loc_FF87B480\n"
 330 "loc_FF87B3E8:\n"
 331 // jumptable entry 26 
 332                 "MOV     R2, #2\n"
 333                 "ADD     R1, R4, #0x62\n"
 334                 "MOV     R0, #0x6F\n"
 335                 "BL      sub_FF88D6B0\n" //PT_GetPropertyCaseString_0
 336                 "TST     R0, #1\n"
 337                 "LDRNE   R1, =0x6AA\n"
 338 //                "ADRNE   R0, 0xFF87A938\n" // "SsShootTask.c"
 339                 "LDRNE   R0,=0xFF87A938\n" // "SsShootTask.c"
 340                 "BLNE    sub_FF81E88C\n"
 341                 "LDRH    R0, [R4,#0x62]\n"
 342                 "CMP     R0, #1\n"
 343                 "BLEQ    sub_FF967964\n"
 344                 "B       loc_FF87B480\n"
 345 "loc_FF87B418:\n"
 346 // jumptable entry 27
 347                 "BL      sub_FF967A14\n"
 348                 "B       loc_FF87B480\n"
 349 "loc_FF87B420:\n"
 350 // jumptable entry 28
 351                 "BL      sub_FF87A8C4\n"
 352                 "B       loc_FF87B480\n"
 353 "loc_FF87B428:\n"
 354 // jumptable entry 29
 355                 "BL      sub_FF83657C\n"
 356                 "B       loc_FF87B480\n"
 357 "loc_FF87B430:\n"
 358 // jumptable entry 30
 359                 "BL      sub_FF87EA34\n"
 360                 "B       loc_FF87B480\n"
 361 "loc_FF87B438:\n"
 362 // jumptable entry 31
 363                 "BL      sub_FF87EA9C\n"
 364                 "B       loc_FF87B480\n"
 365 "loc_FF87B440:\n"
 366 // jumptable entry 32
 367                 "BL      sub_FF87EAF8\n"
 368                 "BL      sub_FF87EAB8\n"
 369                 "B       loc_FF87B480\n"
 370 "loc_FF87B44C:\n"
 371 // jumptable entry 33
 372                 "MOV     R0, #1\n"
 373                 "BL      sub_FF96930C\n"
 374                 "MOV     R0, #1\n"
 375                 "BL      sub_FF96941C\n"
 376                 "LDRH    R0, [R4,#0xA0]\n"
 377                 "CMP     R0, #4\n"
 378                 "BNE     loc_FF87B480\n"
 379                 "BL      sub_FF87EA9C\n"
 380                 "BL      sub_FF87EEE4\n"
 381                 "B       loc_FF87B480\n"
 382 "loc_FF87B474:\n"
 383 // jumptable default entry
 384                 "LDR     R1, =0x708\n"
 385                 "LDR     R0, =0xFF87A938\n"
 386                 "BL      sub_FF81E88C\n"
 387 "loc_FF87B480:\n"
 388 //; jumptable FF87"B188 entry 34           ; Load from Memory
 389                 "LDR     R0, [SP]\n"
 390                 "LDR     R1, [R0,#4]\n"
 391                 "LDR     R0, [R6]\n"
 392                 "BL      sub_FF8854E8\n"
 393                 "LDR     R5, [SP]\n"
 394                 "LDR     R0, [R5,#8]\n"
 395                 "CMP     R0, #0\n"
 396                 "LDREQ   R1, =0x131\n"
 397 //                "ADREQ   R0, aSsshoottask_c\n"
 398                 "LDREQ   R0, =0xFF87A938\n" // "SsShootTask.c"
 399                 "BLEQ    sub_FF81E88C\n"
 400                 "STR     R7, [R5,#8]\n"
 401                 "B       loc_FF87B150\n"
 402  );
 403 }
 404 void __attribute__((naked,noinline)) sub_FF87AA64_my() {
 405  asm volatile (
 406                 "STMFD   SP!, {R3-R9,LR}\n"
 407                 "LDR     R4, [R0,#0xC]\n"
 408                 "LDR     R5, =0x38A78\n"
 409                 "LDR     R0, [R4,#8]\n"
 410                 "LDR     R6, =0x420A\n"
 411                 "ORR     R0, R0, #1\n"
 412                 "STR     R0, [R4,#8]\n"
 413                 "LDRH    R0, [R5]\n"
 414                 "LDR     R8, =0x2C64\n"
 415                 "MOV     R7, #0\n"
 416                 "CMP     R0, R6\n"
 417                 "BEQ     loc_FF87AB08\n"
 418                 "LDRH    R0, [R5,#0x9E]\n"
 419                 "CMP     R0, #3\n"
 420                 "BEQ     loc_FF87AB68\n"
 421                 "LDR     R0, [R4,#0xC]\n"
 422                 "CMP     R0, #1\n"
 423                 "BLS     loc_FF87AB14\n"
 424                 "LDRH    R0, [R5,#0x9C]\n"
 425                 "CMP     R0, #0\n"
 426                 "BNE     loc_FF87AB68\n"
 427                 "LDRH    R0, [R5,#0x98]\n"
 428                 "CMP     R0, #2\n"
 429                 "BNE     loc_FF87AB20\n"
 430                 "BL      sub_FF87C0A8\n"
 431                 "LDRH    R0, [R5]\n"
 432                 "CMP     R0, R6\n"
 433                 "BEQ     loc_FF87AB08\n"
 434                 "LDRH    R0, [R5,#0x9E]\n"
 435                 "CMP     R0, #3\n"
 436                 "BEQ     loc_FF87AB68\n"
 437                 "LDR     R0, [R4,#0xC]\n"
 438                 "CMP     R0, #1\n"
 439                 "BLS     loc_FF87AB14\n"
 440                 "LDRH    R0, [R5,#0x9C]\n"
 441                 "CMP     R0, #0\n"
 442                 "BNE     loc_FF87AB68\n"
 443                 "LDRH    R0, [R5,#0x98]\n"
 444                 "CMP     R0, #2\n"
 445                 "BEQ     loc_FF87AB4C\n"
 446                 "B       loc_FF87AB20\n"
 447 "loc_FF87AB08:\n"
 448                 "LDRH    R0, [R5,#0x9E]\n"
 449                 "CMP     R0, #3\n"
 450                 "BEQ     loc_FF87AB68\n"
 451 "loc_FF87AB14:\n"
 452                 "LDRH    R0, [R5,#0x9C]\n"
 453                 "CMP     R0, #0\n"
 454                 "BNE     loc_FF87AB68\n"
 455 "loc_FF87AB20:\n"
 456                 "LDRH    R0, [R5,#0x98]\n"
 457                 "CMP     R0, #1\n"
 458                 "BNE     loc_FF87AB68\n"
 459                 "LDRH    R0, [R5]\n"
 460                 "CMP     R0, R6\n"
 461                 "LDRNE   R0, [R4,#0xC]\n"
 462                 "CMPNE   R0, #1\n"
 463                 "BLS     loc_FF87AB68\n"
 464                 "LDR     R0, [R4,#0x10]\n"
 465                 "CMP     R0, #1\n"
 466                 "BNE     loc_FF87AB68\n"
 467 "loc_FF87AB4C:\n"
 468                 "MOV     R3, #0x268\n"
 469                 "STR     R3, [SP]\n"
 470                 "LDR     R0, [R8]\n"
 471                 "LDR     R2, =0xEA60\n"
 472                 "LDR     R3, =0xFF87A938\n"// ; "SsShootTask.c"
 473                 "MOV     R1, #0x40000000\n"
 474                 "BL      sub_FF8807F0\n"
 475 "loc_FF87AB68:\n"
 476                 "BL      sub_FF87A8C4\n"
 477                 "LDR     R0, [R5,#0x24]\n"
 478                 "CMP     R0, #0\n"
 479                 "MOVEQ   R0, #2\n"
 480                 "BLEQ    sub_FF876CA8\n"
 481                 "BL      sub_FF87BA7C\n"
 482                 "LDR     R0, [R5,#0x24]\n"
 483                 "CMP     R0, #0\n"
 484                 "BNE     loc_FF87AC20\n"
 485                 "MOV     R0, #0\n"
 486                 "BL      sub_FF96930C\n"
 487                 "MOV     R0, #0\n"
 488                 "BL      sub_FF96941C\n"
 489                 "MOV     R0, R4\n"
 490                 "BL      sub_FF967EF0\n"
 491                 "MOV     R0, R4\n"
 492                 "BL      sub_FF87BED4\n"
 493                 "MOV     R0, R4\n"
 494                 "BL      sub_FF966B20\n"
 495                 "CMP     R0, #0\n"
 496                 "BEQ     loc_FF87ABE8\n"
 497                 "BL      sub_FF96934C\n"
 498                 "BL      sub_FF969460\n"
 499                 "BL      sub_FF9694B0\n"
 500                 "MOV     R0, R4\n"
 501                 "BL      sub_FF966C98\n"
 502                 "TST     R0, #1\n"
 503                 "MOVNE   R2, R4\n"
 504                 "LDMNEFD SP!, {R3-R9,LR}\n"
 505                 "MOVNE   R1, #1\n"
 506                 "BNE     sub_FF879044\n"
 507                 "B       loc_FF87ABFC\n"
 508 "loc_FF87ABE8:\n"
 509                 "MOV     R0, R4\n"
 510                 "BL      sub_FF966C04\n"
 511                 "BL      sub_FF96934C\n"
 512                 "BL      sub_FF969460\n"
 513                 "BL      sub_FF9694B0\n"
 514 "loc_FF87ABFC:\n"
 515                 "MOV     R0, R4\n"
 516                 "BL      sub_FF87A9EC\n"
 517                 "MOV     R0, R4\n"
 518                 "BL      sub_FF9686A4\n"
 519                 "BL      sub_FF969124\n"
 520                 "MOV     R0, R4\n"
 521               //"BL      sub_FF96878C\n"// -
 522                 "BL      sub_FF96878C_my\n"//-------->
 523                 "MOV     R7, R0\n"
 524                 "BL      capt_seq_hook_raw_here\n"      // +
 525                 "B       loc_FF87AC2C\n"
 526 "loc_FF87AC20:\n"
 527                 "LDR     R0, [R8,#0x10]\n"
 528                 "CMP     R0, #0\n"
 529                 "MOVNE   R7, #0x1D\n"
 530 "loc_FF87AC2C:\n"
 531                 "BL      sub_FF87EA9C\n"
 532                 "BL      sub_FF87EAE4\n"
 533                 "BL      sub_FF87EB24\n"
 534                 "MOV     R2, R4\n"
 535                 "MOV     R1, #1\n"
 536                 "MOV     R0, R7\n"
 537                 "BL      sub_FF879044\n"
 538                 "BL      sub_FF968A48\n"
 539                 "CMP     R0, #0\n"
 540                 "LDRNE   R0, [R4,#8]\n"
 541                 "ORRNE   R0, R0, #0x2000\n"
 542                 "STRNE   R0, [R4,#8]\n"
 543                 "LDRH    R0, [R5,#0x9E]\n"
 544                 "CMP     R0, #3\n"
 545                 "BEQ     locret_FF87AC84\n"
 546                 "LDRH    R0, [R5,#0x9C]\n"
 547                 "CMP     R0, #0\n"
 548                 "LDREQH  R0, [R5,#0x98]\n"
 549                 "CMPEQ   R0, #2\n"
 550                 "MOVEQ   R0, R4\n"
 551                 "LDMEQFD SP!, {R3-R9,LR}\n"
 552                 "BEQ     sub_FF87C0FC\n"
 553 "locret_FF87AC84:\n"
 554                 "LDMFD   SP!, {R3-R9,PC}\n"
 555  );
 556 }
 557 
 558 void __attribute__((naked,noinline)) sub_FF96878C_my() {
 559  asm volatile (
 560                "STMFD   SP!, {R0-R8,LR}\n"
 561                "MOV     R4, R0\n"
 562                "BL      sub_FF969608\n"
 563 //               "MOVL    R1, 0xFFFFFFFF\n"
 564                "LDR    R1,=0xFFFFFFFF\n"
 565                "BL      sub_FF88551C\n"
 566                "LDR     R5, =0x7290\n"
 567                "LDR     R0, [R5,#0xC]\n"
 568                "CMP     R0, #0\n"
 569                "BNE     loc_FF9687DC\n"
 570                "MOV     R1, #1\n"
 571                "MOV     R0, #0\n"
 572                "BL      sub_FF839194\n"
 573                "STR     R0, [R5,#0xC]\n"
 574                "MOV     R3, #0\n"
 575                "STR     R3, [SP]\n"
 576                "LDR     R3, =0xFF968118\n"
 577                "LDR     R0, =0xFF968A0C\n" // "ShutterSoundTask"
 578                "MOV     R2, #0x400\n"
 579                "MOV     R1, #0x17\n"
 580                "BL      sub_FF839160\n"
 581 "loc_FF9687DC:\n"
 582                "MOV     R2, #4\n"
 583                "ADD     R1, SP, #0x8\n"
 584                "MOV     R0, #0x8A\n"
 585                "BL      sub_FF88D6B0\n" //PT_GetPropertyCaseString_0
 586                "TST     R0, #1\n"
 587                "LDRNE   R1, =0x3C5\n"
 588                "LDRNE   R0, =0xFF88D594\n" // aSscaptureseq_c
 589                "BLNE    sub_FF81E88C\n" //DebugAssert
 590                "LDR     R6, =0x38B44\n"
 591                "LDR     R8, =0x38A78\n"
 592                "LDR     R3, [R6]\n"
 593                "LDRSH   R2, [R6,#0xC]\n"
 594                "LDRSH   R1, [R6,#0xE]\n"
 595                "LDR     R0, [R8,#0x94]\n"
 596                "BL      sub_FF92FC30\n"
 597                "BL      sub_FF863564\n"
 598                "LDR     R3, =0x7298\n"
 599                "STRH    R0, [R4,#0xA4]\n"
 600                "SUB     R2, R3, #4\n"
 601                "STRD    R2, [SP]\n"
 602                "MOV     R1, R0\n"
 603                "LDRH    R0, [R8,#0x5C]\n"
 604                "LDRSH   R2, [R6,#0xC]\n"
 605                "SUB     R3, R3, #8\n"
 606                "BL      sub_FF96B290\n" 
 607                "BL      wait_until_remote_button_is_released\n"  // +
 608                "BL      capt_seq_hook_set_nr\n"                  // +   
 609                "B       sub_FF968840\n" // +  Jump back to original FW code
 610  );
 611 }
 612 
 613 void __attribute__((naked,noinline)) exp_drv_task(){
 614  asm volatile(
 615                "STMFD   SP!, {R4-R8,LR}\n"
 616                "SUB     SP, SP, #0x20\n"
 617                "LDR     R8, =0xBB8\n"
 618                "LDR     R7, =0x4530\n"
 619                "LDR     R5, =0x42240\n"
 620                "MOV     R0, #0\n"
 621                "ADD     R6, SP, #0x10\n"
 622                "STR     R0, [SP,#0xC]\n"
 623 "loc_FF8BFBC8:\n"
 624                "LDR     R0, [R7,#0x20]\n"
 625                "MOV     R2, #0\n"
 626                "ADD     R1, SP, #0x1C\n"
 627                "BL      sub_FF83894C\n"
 628                "LDR     R0, [SP,#0xC]\n"
 629                "CMP     R0, #1\n"
 630                "BNE     loc_FF8BFC14\n"
 631                "LDR     R0, [SP,#0x1C]\n"
 632                "LDR     R0, [R0]\n"
 633                "CMP     R0, #0x13\n"
 634                "CMPNE   R0, #0x14\n"
 635                "CMPNE   R0, #0x15\n"
 636                "CMPNE   R0, #0x16\n"
 637                "BEQ     loc_FF8BFD78\n"
 638                "CMP     R0, #0x28\n"
 639                "BEQ     loc_FF8BFD00\n"
 640                "ADD     R1, SP, #0xC\n"
 641                "MOV     R0, #0\n"
 642                "BL      sub_FF8BFB58\n"
 643 "loc_FF8BFC14:\n"
 644                "LDR     R0, [SP,#0x1C]\n"
 645                "LDR     R1, [R0]\n"
 646                "CMP     R1, #0x2E\n"
 647                "BNE     loc_FF8BFC44\n"
 648                "LDR     R0, [SP,#0x1C]\n"
 649                "BL      sub_FF8C0EAC\n"
 650                "LDR     R0, [R7,#0x1C]\n"
 651                "MOV     R1, #1\n"
 652                "BL      sub_FF8854E8\n"
 653                "BL      sub_FF81E844\n" // eventproc_export_ExitTask
 654                "ADD     SP, SP, #0x20\n"
 655                "LDMFD   SP!, {R4-R8,PC}\n"
 656 "loc_FF8BFC44:\n"
 657                "CMP     R1, #0x2D\n"
 658                "BNE     loc_FF8BFC60\n"
 659                "LDR     R2, [R0,#0x8C]!\n"
 660                "LDR     R1, [R0,#4]\n"
 661                "MOV     R0, R1\n"
 662                "BLX     R2\n"
 663                "B       loc_FF8C01A0\n"
 664 "loc_FF8BFC60:\n"
 665                "CMP     R1, #0x26\n"
 666                "BNE     loc_FF8BFCB0\n"
 667                "LDR     R0, [R7,#0x1C]\n"
 668                "MOV     R1, #0x80\n"
 669                "BL      sub_FF88551C\n"
 670                "LDR     R0, =0xFF8BC2E8\n"
 671                "MOV     R1, #0x80\n"
 672                "BL      sub_FF95B400\n" //__IrisController.c__98
 673                "LDR     R0, [R7,#0x1C]\n"
 674                "MOV     R2, R8\n"
 675                "MOV     R1, #0x80\n"
 676                "BL      sub_FF885428\n" //__KerFlag.c__0
 677                "TST     R0, #1\n"
 678                "LDRNE   R1, =0xE5F\n"
 679                "BNE     loc_FF8BFD6C\n"
 680 "loc_FF8BFC9C:\n"
 681                "LDR     R1, [SP,#0x1C]\n"
 682                "LDR     R0, [R1,#0x90]\n"
 683                "LDR     R1, [R1,#0x8C]\n"
 684                "BLX     R1\n"
 685                "B       loc_FF8C01A0\n"
 686 "loc_FF8BFCB0:\n"
 687                "CMP     R1, #0x27\n"
 688                "BNE     loc_FF8BFCF8\n"
 689                "ADD     R1, SP, #0xC\n"
 690                "BL      sub_FF8BFB58\n" //__ExpDrv.c__512
 691                "LDR     R0, [R7,#0x1C]\n"
 692                "MOV     R1, #0x100\n"
 693                "BL      sub_FF88551C\n"
 694                "LDR     R0, =0xFF8BC2F8\n"
 695                "MOV     R1, #0x100\n"
 696                "BL      sub_FF95BD90\n" //__IrisController.c__384
 697                "LDR     R0, [R7,#0x1C]\n"
 698                "MOV     R2, R8\n"
 699                "MOV     R1, #0x100\n"
 700                "BL      sub_FF885428\n" //__KerFlag.c__0
 701                "TST     R0, #1\n"
 702                "BEQ     loc_FF8BFC9C\n"
 703                "LDR     R1, =0xE69\n"
 704                "B       loc_FF8BFD6C\n"
 705 "loc_FF8BFCF8:\n"
 706                "CMP     R1, #0x28\n"
 707                "BNE     loc_FF8BFD10\n"
 708 "loc_FF8BFD00:\n"
 709                "LDR     R0, [SP,#0x1C]\n"
 710                "ADD     R1, SP, #0xC\n"
 711                "BL      sub_FF8BFB58\n"
 712                "B       loc_FF8BFC9C\n"
 713 "loc_FF8BFD10:\n"
 714                "CMP     R1, #0x2B\n"
 715                "BNE     loc_FF8BFD28\n"
 716                "BL      sub_FF8AF74C\n" //__Shutter.c__2
 717                "BL      sub_FF8B0370\n" //__ImgPixel.c__272
 718                "BL      sub_FF8AFEC4\n" //__ImgGain.c__0
 719                "B       loc_FF8BFC9C\n"
 720 "loc_FF8BFD28:\n"
 721                "CMP     R1, #0x2C\n"
 722                "BNE     loc_FF8BFD78\n"
 723                "LDR     R0, [R7,#0x1C]\n"
 724                "MOV     R1, #4\n"
 725                "BL      sub_FF88551C\n"
 726                "LDR     R1, =0xFF8BC318\n"
 727                "LDR     R0, =0xFFFFF400\n"
 728                "MOV     R2, #4\n"
 729                "BL      sub_FF8AF1C8\n"
 730                "BL      sub_FF8AF450\n" //__Shutter.c__0
 731                "LDR     R0, [R7,#0x1C]\n"
 732                "MOV     R2, R8\n"
 733                "MOV     R1, #4\n"
 734                "BL      sub_FF885344\n" //__KerFlag.c__0
 735                "TST     R0, #1\n"
 736                "BEQ     loc_FF8BFC9C\n"
 737                "LDR     R1, =0xE91\n"
 738 "loc_FF8BFD6C:\n"
 739                "LDR     R0, =0xFF8BC958\n" // aExpdrv_c
 740                "BL      sub_FF81E88C\n" // DebugAssert
 741                "B       loc_FF8BFC9C\n"
 742 "loc_FF8BFD78:\n"
 743                "LDR     R0, [SP,#0x1C]\n"
 744                "MOV     R4, #1\n"
 745                "LDR     R1, [R0]\n"
 746                "CMP     R1, #0x11\n"
 747                "CMPNE   R1, #0x12\n"
 748                "BNE     loc_FF8BFDE8\n"
 749                "LDR     R1, [R0,#0x7C]\n"
 750                "ADD     R1, R1, R1,LSL#1\n"
 751                "ADD     R1, R0, R1,LSL#2\n"
 752                "SUB     R1, R1, #8\n"
 753                "LDMIA   R1, {R2-R4}\n"
 754                "STMIA   R6, {R2-R4}\n"
 755 //               "BL      loc_FF8BE4D0\n"
 756                "BL      sub_FF8BE4D0\n"
 757                "LDR     R0, [SP,#0x1C]\n"
 758                "LDR     R1, [R0,#0x7C]\n"
 759                "LDR     R3, [R0,#0x8C]\n"
 760                "LDR     R2, [R0,#0x90]\n"
 761                "ADD     R0, R0, #4\n"
 762                "BLX     R3\n"
 763                "LDR     R0, [SP,#0x1C]\n"
 764                "BL      sub_FF8C1274\n"
 765                "LDR     R0, [SP,#0x1C]\n"
 766                "LDR     R1, [R0,#0x7C]\n"
 767                "LDR     R3, [R0,#0x94]\n"
 768                "LDR     R2, [R0,#0x98]\n"
 769                "ADD     R0, R0, #4\n"
 770                "BLX     R3\n"
 771                "B       loc_FF8C00E0\n"
 772 "loc_FF8BFDE8:\n"
 773                "CMP     R1, #0x13\n"
 774                "CMPNE   R1, #0x14\n"
 775                "CMPNE   R1, #0x15\n"
 776                "CMPNE   R1, #0x16\n"
 777                "BNE     loc_FF8BFEA0\n"
 778                "ADD     R3, SP, #0xC\n"
 779                "MOV     R2, SP\n"
 780                "ADD     R1, SP, #0x10\n"
 781                "BL      sub_FF8BE7AC\n"
 782                "CMP     R0, #1\n"
 783                "MOV     R4, R0\n"
 784                "CMPNE   R4, #5\n"
 785                "BNE     loc_FF8BFE3C\n"
 786                "LDR     R0, [SP,#0x1C]\n"
 787                "MOV     R2, R4\n"
 788                "LDR     R1, [R0,#0x7C]!\n"
 789                "LDR     R12, [R0,#0x10]!\n"
 790                "LDR     R3, [R0,#4]\n"
 791                "MOV     R0, SP\n"
 792                "BLX     R12\n"
 793                "B       loc_FF8BFE74\n"
 794 "loc_FF8BFE3C:\n"
 795                "LDR     R0, [SP,#0x1C]\n"
 796                "CMP     R4, #2\n"
 797                "LDR     R3, [R0,#0x90]\n"
 798                "CMPNE   R4, #6\n"
 799                "BNE     loc_FF8BFE88\n"
 800                "LDR     R12, [R0,#0x8C]\n"
 801                "MOV     R0, SP\n"
 802                "MOV     R2, R4\n"
 803                "MOV     R1, #1\n"
 804                "BLX     R12\n"
 805                "LDR     R0, [SP,#0x1C]\n"
 806                "MOV     R2, SP\n"
 807                "ADD     R1, SP, #0x10\n"
 808                "BL      sub_FF8BF864\n"
 809 "loc_FF8BFE74:\n"
 810                "LDR     R0, [SP,#0x1C]\n"
 811                "LDR     R2, [SP,#0xC]\n"
 812                "MOV     R1, R4\n"
 813                "BL      sub_FF8BFAF8\n"
 814                "B       loc_FF8C00E0\n"
 815 "loc_FF8BFE88:\n"
 816                "LDR     R1, [R0,#0x7C]\n"
 817                "LDR     R12, [R0,#0x8C]\n"
 818                "ADD     R0, R0, #4\n"
 819                "MOV     R2, R4\n"
 820                "BLX     R12\n"
 821                "B       loc_FF8C00E0\n"
 822 "loc_FF8BFEA0:\n"
 823                "CMP     R1, #0x22\n"
 824                "CMPNE   R1, #0x23\n"
 825                "BNE     loc_FF8BFEEC\n"
 826                "LDR     R1, [R0,#0x7C]\n"
 827                "ADD     R1, R1, R1,LSL#1\n"
 828                "ADD     R1, R0, R1,LSL#2\n"
 829                "SUB     R1, R1, #8\n"
 830                "LDMIA   R1, {R2-R4}\n"
 831                "STMIA   R6, {R2-R4}\n"
 832                "BL      sub_FF8BDA14\n"
 833                "LDR     R0, [SP,#0x1C]\n"
 834                "LDR     R1, [R0,#0x7C]\n"
 835                "LDR     R3, [R0,#0x8C]\n"
 836                "LDR     R2, [R0,#0x90]\n"
 837                "ADD     R0, R0, #4\n"
 838                "BLX     R3\n"
 839                "LDR     R0, [SP,#0x1C]\n"
 840                "BL      sub_FF8BDD14\n"
 841                "B       loc_FF8C00E0\n"
 842 "loc_FF8BFEEC:\n"
 843                "ADD     R1, R0, #4\n"
 844                "LDMIA   R1, {R2,R3,R12}\n"
 845                "STMIA   R6, {R2,R3,R12}\n"
 846                "LDR     R1, [R0]\n"
 847                "CMP     R1, #0x25\n"
 848                "ADDLS   PC, PC, R1,LSL#2\n"
 849                "B       loc_FF8C00C0\n"
 850 "loc_FF8BFF08:\n"
 851                "B       loc_FF8BFFA0\n"
 852 "loc_FF8BFF0C:\n"
 853                "B       loc_FF8BFFA0\n"
 854 "loc_FF8BFF10:\n"
 855                "B       loc_FF8BFFA8\n"
 856 "loc_FF8BFF14:\n"
 857                "B       loc_FF8BFFB0\n"
 858 "loc_FF8BFF18:\n"
 859                "B       loc_FF8BFFB0\n"
 860 "loc_FF8BFF1C:\n"
 861                "B       loc_FF8BFFB0\n"
 862 "loc_FF8BFF20:\n"
 863                "B       loc_FF8BFFA0\n"
 864 "loc_FF8BFF24:\n"
 865                "B       loc_FF8BFFA8\n"
 866 "loc_FF8BFF28:\n"
 867                "B       loc_FF8BFFB0\n"
 868 "loc_FF8BFF2C:\n"
 869                "B       loc_FF8BFFB0\n"
 870 "loc_FF8BFF30:\n"
 871                "B       loc_FF8BFFC8\n"
 872 "loc_FF8BFF34:\n"
 873                "B       loc_FF8BFFC8\n"
 874 "loc_FF8BFF38:\n"
 875                "B       loc_FF8C00B4\n"
 876 "loc_FF8BFF3C:\n"
 877                "B       loc_FF8C00BC\n"
 878 "loc_FF8BFF40:\n"
 879                "B       loc_FF8C00BC\n"
 880 "loc_FF8BFF44:\n"
 881                "B       loc_FF8C00BC\n"
 882 "loc_FF8BFF48:\n"
 883                "B       loc_FF8C00BC\n"
 884 "loc_FF8BFF4C:\n"
 885                "B       loc_FF8C00C0\n"
 886 "loc_FF8BFF50:\n"
 887                "B       loc_FF8C00C0\n"
 888 "loc_FF8BFF54:\n"
 889                "B       loc_FF8C00C0\n"
 890 "loc_FF8BFF58:\n"
 891                "B       loc_FF8C00C0\n"
 892 "loc_FF8BFF5C:\n"
 893                "B       loc_FF8C00C0\n"
 894 "loc_FF8BFF60:\n"
 895                "B       loc_FF8C00C0\n"
 896 "loc_FF8BFF64:\n"
 897                "B       loc_FF8BFFB8\n"
 898 "loc_FF8BFF68:\n"
 899                "B       loc_FF8BFFC0\n"
 900 "loc_FF8BFF6C:\n"
 901                "B       loc_FF8BFFC0\n"
 902 "loc_FF8BFF70:\n"
 903                "B       loc_FF8BFFD4\n"
 904 "loc_FF8BFF74:\n"
 905                "B       loc_FF8BFFD4\n"
 906 "loc_FF8BFF78:\n"
 907                "B       loc_FF8BFFDC\n"
 908 "loc_FF8BFF7C:\n"
 909                "B       loc_FF8C000C\n"
 910 "loc_FF8BFF80:\n"
 911                "B       loc_FF8C003C\n"
 912 "loc_FF8BFF84:\n"
 913                "B       loc_FF8C006C\n"
 914 "loc_FF8BFF88:\n"
 915                "B       loc_FF8C009C\n"
 916 "loc_FF8BFF8C:\n"
 917                "B       loc_FF8C009C\n"
 918 "loc_FF8BFF90:\n"
 919                "B       loc_FF8C00C0\n"
 920 "loc_FF8BFF94:\n"
 921                "B       loc_FF8C00C0\n"
 922 "loc_FF8BFF98:\n"
 923                "B       loc_FF8C00A4\n"
 924 "loc_FF8BFF9C:\n"
 925                "B       loc_FF8C00AC\n"
 926 "loc_FF8BFFA0:\n"
 927 //; jumptable FF8"FF00 entries 0,1,6
 928                "BL      sub_FF8BC800\n"
 929                "B       loc_FF8C00C0\n"
 930 "loc_FF8BFFA8:\n"
 931 //; jumptable FF8"FF00 entries 2,7
 932                "BL      sub_FF8BCA84\n"
 933                "B       loc_FF8C00C0\n"
 934 "loc_FF8BFFB0:\n"
 935 //; jumptable FF8"FF00 entries 3-5,8,9
 936                "BL      sub_FF8BCC8C\n"
 937                "B       loc_FF8C00C0\n"
 938 "loc_FF8BFFB8:\n"
 939 //; jumptable FF8"FF00 entry 23
 940                "BL      sub_FF8BCF04\n"
 941                "B       loc_FF8C00C0\n"
 942 "loc_FF8BFFC0:\n"
 943 //; jumptable FF8"FF00 entries 24,25
 944                "BL      sub_FF8BD0FC\n"
 945                "B       loc_FF8C00C0\n"
 946 "loc_FF8BFFC8:\n"
 947 //; jumptable FF8"FF00 entries 10,11
 948              //"BL      sub_FF8BD3B8\n"    // -
 949                "BL      sub_FF8BD3B8_my\n" //----------------------->
 950                "MOV     R4, #0\n"
 951                "B       loc_FF8C00C0\n"
 952 "loc_FF8BFFD4:\n"
 953 //; jumptable FF8"FF00 entries 26,27
 954                "BL      sub_FF8BD4F8\n"
 955                "B       loc_FF8C00C0\n"
 956 "loc_FF8BFFDC:\n"
 957 //; jumptable FF8"FF00 entry 28
 958                "LDRH    R1, [R0,#4]\n"
 959                "STRH    R1, [SP,#0x10]\n"
 960                "LDRH    R1, [R5,#2]\n"
 961                "STRH    R1, [SP,#0x12]\n"
 962                "LDRH    R1, [R5,#4]\n"
 963                "STRH    R1, [SP,#0x14]\n"
 964                "LDRH    R1, [R5,#6]\n"
 965                "STRH    R1, [SP,#0x16]\n"
 966                "LDRH    R1, [R0,#0xC]\n"
 967                "STRH    R1, [SP,#0x18]\n"
 968                "BL      sub_FF8C0F20\n"
 969                "B       loc_FF8C00C0\n"
 970 "loc_FF8C000C:\n"
 971 //; jumptable FF8"FF00 entry 29
 972                "LDRH    R1, [R0,#4]\n"
 973                "STRH    R1, [SP,#0x10]\n"
 974                "LDRH    R1, [R5,#2]\n"
 975                "STRH    R1, [SP,#0x12]\n"
 976                "LDRH    R1, [R5,#4]\n"
 977                "STRH    R1, [SP,#0x14]\n"
 978                "LDRH    R1, [R5,#6]\n"
 979                "STRH    R1, [SP,#0x16]\n"
 980                "LDRH    R1, [R5,#8]\n"
 981                "STRH    R1, [SP,#0x18]\n"
 982                "BL      sub_FF8C108C\n"
 983                "B       loc_FF8C00C0\n"
 984 "loc_FF8C003C:\n"
 985 //; jumptable FF8"FF00 entry 30
 986                "LDRH    R1, [R5]\n"
 987                "STRH    R1, [SP,#0x10]\n"
 988                "LDRH    R1, [R0,#6]\n"
 989                "STRH    R1, [SP,#0x12]\n"
 990                "LDRH    R1, [R5,#4]\n"
 991                "STRH    R1, [SP,#0x14]\n"
 992                "LDRH    R1, [R5,#6]\n"
 993                "STRH    R1, [SP,#0x16]\n"
 994                "LDRH    R1, [R5,#8]\n"
 995                "STRH    R1, [SP,#0x18]\n"
 996                "BL      sub_FF8C1138\n"
 997                "B       loc_FF8C00C0\n"
 998 "loc_FF8C006C:\n"
 999 //; jumptable FF8"FF00 entry 31
1000                "LDRH    R1, [R5]\n"
1001                "STRH    R1, [SP,#0x10]\n"
1002                "LDRH    R1, [R5,#2]\n"
1003                "STRH    R1, [SP,#0x12]\n"
1004                "LDRH    R1, [R5,#4]\n"
1005                "STRH    R1, [SP,#0x14]\n"
1006                "LDRH    R1, [R5,#6]\n"
1007                "STRH    R1, [SP,#0x16]\n"
1008                "LDRH    R1, [R0,#0xC]\n"
1009                "STRH    R1, [SP,#0x18]\n"
1010                "BL      sub_FF8C11D8\n"
1011                "B       loc_FF8C00C0\n"
1012 "loc_FF8C009C:\n"
1013 //; jumptable FF8"FF00 entries 32,33
1014                "BL      sub_FF8BD850\n"
1015                "B       loc_FF8C00C0\n"
1016 "loc_FF8C00A4:\n"
1017 //; jumptable FF8"FF00 entry 36
1018                "BL      sub_FF8BDE18\n"
1019                "B       loc_FF8C00C0\n"
1020 "loc_FF8C00AC:\n"
1021 //; jumptable FF8"FF00 entry 37
1022                "BL      sub_FF8BE054\n"
1023                "B       loc_FF8C00C0\n"
1024 "loc_FF8C00B4:\n"
1025 //; jumptable FF8"FF00 entry 12
1026                "BL      sub_FF8BE1D0\n"
1027                "B       loc_FF8C00C0\n"
1028 "loc_FF8C00BC:\n"
1029 //; jumptable FF8"FF00 entries 13-16
1030                "BL      sub_FF8BE36C\n"
1031 "loc_FF8C00C0:\n"
1032 //; jumptable FF8"FF00 default entry
1033 //; jumptable FF8"FF00 entries 17-22,34,35
1034                "LDR     R0, [SP,#0x1C]\n"
1035                "LDR     R1, [R0,#0x7C]\n"
1036                "LDR     R3, [R0,#0x8C]\n"
1037                "LDR     R2, [R0,#0x90]\n"
1038                "ADD     R0, R0, #4\n"
1039                "BLX     R3\n"
1040                "CMP     R4, #1\n"
1041                "BNE     loc_FF8C0128\n"
1042 "loc_FF8C00E0:\n"
1043                "LDR     R0, [SP,#0x1C]\n"
1044                "MOV     R2, #0xC\n"
1045                "LDR     R1, [R0,#0x7C]\n"
1046                "ADD     R1, R1, R1,LSL#1\n"
1047                "ADD     R0, R0, R1,LSL#2\n"
1048                "SUB     R4, R0, #8\n"
1049                "LDR     R0, =0x42240\n"
1050                "ADD     R1, SP, #0x10\n"
1051                "BL      sub_FFB3C824\n"
1052                "LDR     R0, =0x4224C\n"
1053                "MOV     R2, #0xC\n"
1054                "ADD     R1, SP, #0x10\n"
1055                "BL      sub_FFB3C824\n"
1056                "LDR     R0, =0x42258\n"
1057                "MOV     R2, #0xC\n"
1058                "MOV     R1, R4\n"
1059                "BL      sub_FFB3C824\n"
1060                "B       loc_FF8C01A0\n"
1061 "loc_FF8C0128:\n"
1062                "LDR     R0, [SP,#0x1C]\n"
1063                "LDR     R0, [R0]\n"
1064                "CMP     R0, #0xB\n"
1065                "BNE     loc_FF8C0170\n"
1066                "MOV     R3, #0\n"
1067                "STR     R3, [SP]\n"
1068                "MOV     R3, #1\n"
1069                "MOV     R2, #1\n"
1070                "MOV     R1, #1\n"
1071                "MOV     R0, #0\n"
1072                "BL      sub_FF8BC608\n"
1073                "MOV     R3, #0\n"
1074                "STR     R3, [SP]\n"
1075                "MOV     R3, #1\n"
1076                "MOV     R2, #1\n"
1077                "MOV     R1, #1\n"
1078                "MOV     R0, #0\n"
1079                "B       loc_FF8C019C\n"
1080 "loc_FF8C0170:\n"
1081                "MOV     R3, #1\n"
1082                "MOV     R2, #1\n"
1083                "MOV     R1, #1\n"
1084                "MOV     R0, #1\n"
1085                "STR     R3, [SP]\n"
1086                "BL      sub_FF8BC608\n"
1087                "MOV     R3, #1\n"
1088                "MOV     R2, #1\n"
1089                "MOV     R1, #1\n"
1090                "MOV     R0, #1\n"
1091                "STR     R3, [SP]\n"
1092 "loc_FF8C019C:\n"
1093                "BL      sub_FF8BC748\n"
1094 "loc_FF8C01A0:\n"
1095                "LDR     R0, [SP,#0x1C]\n"
1096                "BL      sub_FF8C0EAC\n"
1097                "B       loc_FF8BFBC8\n"
1098 );
1099 };
1100 void __attribute__((naked,noinline)) sub_FF8BD3B8_my(){ // 
1101  asm volatile(
1102                "STMFD   SP!, {R4-R8,LR}\n"
1103                "LDR     R7, =0x4530\n"
1104                "MOV     R4, R0\n"
1105                "LDR     R0, [R7,#0x1C]\n"
1106                "MOV     R1, #0x3E\n"
1107                "BL      sub_FF88551C\n"
1108                "LDRSH   R0, [R4,#4]\n"
1109                "MOV     R2, #0\n"
1110                "MOV     R1, #0\n"
1111                "BL      sub_FF8BC36C\n"
1112                "MOV     R6, R0\n"
1113                "LDRSH   R0, [R4,#6]\n"
1114                "BL      sub_FF8BC47C\n"
1115                "LDRSH   R0, [R4,#8]\n"
1116                "BL      sub_FF8BC4D4\n"
1117                "LDRSH   R0, [R4,#0xA]\n"
1118                "BL      sub_FF8BC52C\n"
1119                "LDRSH   R0, [R4,#0xC]\n"
1120                "MOV     R1, #0\n"
1121                "BL      sub_FF8BC584\n"
1122                "MOV     R5, R0\n"
1123                "LDR     R0, [R4]\n"
1124                "LDR     R8, =0x42258\n"
1125                "CMP     R0, #0xB\n"
1126                "MOVEQ   R6, #0\n"
1127                "MOVEQ   R5, #0\n"
1128                "BEQ     loc_FF8BD44C\n"
1129                "CMP     R6, #1\n"
1130                "BNE     loc_FF8BD44C\n"
1131                "LDRSH   R0, [R4,#4]\n"
1132                "LDR     R1, =0xFF8BC2D8\n"
1133                "MOV     R2, #2\n"
1134                "BL      sub_FF95B74C\n"
1135                "STRH    R0, [R4,#4]\n"
1136                "MOV     R0, #0\n"
1137                "STR     R0, [R7,#0x28]\n"
1138                "B       loc_FF8BD454\n"
1139 "loc_FF8BD44C:\n"
1140                "LDRH    R0, [R8]\n"
1141                "STRH    R0, [R4,#4]\n"
1142 "loc_FF8BD454:\n"
1143                "CMP     R5, #1\n"
1144                "LDRNEH  R0, [R8,#8]\n"
1145                "BNE     loc_FF8BD470\n"
1146                "LDRSH   R0, [R4,#0xC]\n"
1147                "LDR     R1, =0xFF8BC35C\n"
1148                "MOV     R2, #0x20\n"
1149                "BL      sub_FF8C0EDC\n"
1150 "loc_FF8BD470:\n"
1151                "STRH    R0, [R4,#0xC]\n"
1152                "LDRSH   R0, [R4,#6]\n"
1153              //"BL      sub_FF8AF4BC\n"   // -
1154                "BL      sub_FF8AF4BC_my\n" // + ------------------>
1155 
1156                "LDRSH   R0, [R4,#8]\n"
1157                "MOV     R1, #1\n"
1158                "BL      sub_FF8AFC0C\n" //__ImgGain.c__0
1159                "MOV     R1, #0\n"
1160                "ADD     R0, R4, #8\n"
1161                "BL      sub_FF8AFC94\n" //__ImgGain.c__0
1162                "LDRSH   R0, [R4,#0xE]\n"
1163                "BL      sub_FF8B7778\n" //__BrtCrct.c__560
1164                "LDR     R4, =0xBB8\n"
1165                "CMP     R6, #1\n"
1166                "BNE     loc_FF8BD4C8\n"
1167                "LDR     R0, [R7,#0x1C]\n"
1168                "MOV     R2, R4\n"
1169                "MOV     R1, #2\n"
1170                "BL      sub_FF885428\n" //__KerFlag.c__0
1171                "TST     R0, #1\n"
1172                "LDRNE   R1, =0x5A3\n"
1173                "LDRNE   R0, =0xFF8BC958\n" // aExpdrv_c
1174                "BLNE    sub_FF81E88C\n" //DebugAssert
1175 "loc_FF8BD4C8:\n"
1176                "CMP     R5, #1\n"
1177                "LDMNEFD SP!, {R4-R8,PC}\n"
1178                "LDR     R0, [R7,#0x1C]\n"
1179                "MOV     R2, R4\n"
1180                "MOV     R1, #0x20\n"
1181                "BL      sub_FF885428\n" //__KerFlag.c__0
1182                "TST     R0, #1\n"
1183                "LDRNE   R1, =0x5A8\n"
1184                "LDRNE   R0, =0xFF8BC958\n" //aExpdrv_c
1185                "LDMNEFD SP!, {R4-R8,LR}\n"
1186                "BNE     sub_FF81E88C\n" //DebugAssert
1187                "LDMFD   SP!, {R4-R8,PC}\n"
1188  );
1189 };
1190 void __attribute__((naked,noinline)) sub_FF8AF4BC_my(){ // 
1191  asm volatile(
1192                 "STMFD   SP!, {R4-R6,LR}\n"
1193                 "LDR     R5, =0x4240\n"
1194                 "MOV     R4, R0\n"
1195                 "LDR     R0, [R5,#4]\n"
1196                 "CMP     R0, #1\n"
1197                 "LDRNE   R1, =0x146\n"
1198                 "LDRNE   R0, =0xFF8AF2C0\n" // aShutter_c
1199                 "BLNE    sub_FF81E88C\n" //DebugAssert
1200                 "CMN     R4, #0xC00\n"
1201                 "LDREQSH R4, [R5,#2]\n"
1202                 "CMN     R4, #0xC00\n"
1203                 "MOVEQ   R1, #0x14C\n"
1204                 "LDREQ   R0, =0xFF8AF2C0\n" //aShutter_c
1205                 "STRH    R4, [R5,#2]\n"
1206                 "BLEQ    sub_FF81E88C\n" //DebugAssert
1207                 "MOV     R0, R4\n"
1208 
1209               //"BL      sub_FFA148C0\n" // -
1210                 "BL      apex2us\n"  // +
1211 
1212                 "MOV     R4, R0\n"
1213                 "BL      sub_FF8F8FCC\n"
1214                 "MOV     R0, R4\n"
1215                 "BL      sub_FF8FF24C\n"
1216                 "TST     R0, #1\n"
1217                 "LDRNE   R1, =0x151\n"
1218                 "LDMNEFD SP!, {R4-R6,LR}\n"
1219                 "LDRNE   R0, =0xFF81E88C\n" //aShutter_c
1220                 "BNE     sub_FF81E88C\n" // DebugAssert
1221                 "LDMFD   SP!, {R4-R6,PC}\n"
1222     );
1223 };

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