root/platform/ixus1000_sd4500/sub/100d/capt_seq.c

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

DEFINITIONS

This source file includes following definitions.
  1. capt_seq_task
  2. sub_FF98ADD4_my
  3. sub_FFAE37CC_my
  4. sub_FFAE3304_my
  5. sub_FF98AB68_my
  6. exp_drv_task
  7. sub_FF8C9AD0_my
  8. sub_FF8BA3A4_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 #include "conf.h"
   5 
   6 static long *nrflag = (long*)0xDDA8;  // -> ASM1989 11.06.2010 found at FFAE3478 in s95:FFAF9528  in sx210: FF972F10
   7 
   8 #include "../../../generic/capt_seq.c"
   9 
  10 //ASM1989 Started  :FF883630   in sx210: FF87EB90
  11 void __attribute__((naked,noinline)) capt_seq_task() {
  12  asm volatile (
  13                  "STMFD   SP!, {R3-R7,LR}\n"
  14                  "LDR     R7, =0x3474\n"                // In sx200 was: 0x2B78
  15                  "LDR     R4, =0x3C5E4\n"               // In sx200 was: 0x15448
  16                  "MOV     R6, #0\n"
  17 "loc_FF883640:\n"
  18                  "LDR     R0, [R7,#4]\n"
  19                  "MOV     R2, #0\n"
  20                  "MOV     R1, SP\n"
  21                  "BL      sub_FF83AE20\n"
  22                  "TST     R0, #1\n"
  23                  "BEQ     loc_FF88366C\n"
  24                  "LDR     R1, =0x43F\n"
  25                  "LDR     R0, =0xFF88319C\n"  //aSsshoottask_c
  26                  "BL      sub_FF81EB78\n"               //DebugAssert
  27                  "BL      sub_FF81EB30\n"               //eventproc_export_ExitTask
  28                  "LDMFD   SP!, {R3-R7,PC}\n"
  29 
  30 "loc_FF88366C:\n"
  31                  "LDR     R0, [SP]\n"
  32                  "LDR     R1, [R0]\n"
  33                  "CMP     R1, #0x1F\n"
  34                  "ADDLS   PC, PC, R1,LSL#2\n"
  35                  "B       loc_FF883868\n"
  36 
  37 "loc_FF883680:\n"
  38                 "B      loc_FF883700\n"
  39 "loc_FF883684:\n"
  40                 "B      loc_FF883718\n"
  41 "loc_FF883688:\n"
  42                 "B      loc_FF883730\n"
  43 "loc_FF88368C:\n"
  44                 "B      loc_FF883744\n"
  45 "loc_FF883690:\n"
  46                 "B      loc_FF88373C\n"
  47 "loc_FF883694:\n"
  48                 "B      loc_FF883750\n"
  49 "loc_FF883698:\n"
  50                 "B      loc_FF883758\n"
  51 "loc_FF88369C:\n"
  52                 "B      loc_FF883760\n"
  53 "loc_FF8836A0:\n"
  54                 "B      loc_FF88376C\n"
  55 "loc_FF8836A4:\n"
  56                 "B      loc_FF883794\n"
  57 "loc_FF8836A8:\n"
  58                 "B      loc_FF883778\n"
  59 "loc_FF8836AC:\n"
  60                 "B      loc_FF883784\n"
  61 "loc_FF8836B0:\n"
  62                 "B      loc_FF88378C\n"
  63 "loc_FF8836B4:\n"
  64                 "B      loc_FF88379C\n"
  65 "loc_FF8836B8:\n"
  66                 "B      loc_FF8837A4\n"
  67 "loc_FF8836BC:\n"
  68                 "B      loc_FF8837AC\n"
  69 "loc_FF8836C0:\n"
  70                 "B      loc_FF8837B4\n"
  71 "loc_FF8836C4:\n"
  72                 "B      loc_FF8837BC\n"
  73 "loc_FF8836C8:\n"
  74                 "B      loc_FF8837C8\n"
  75 "loc_FF8836CC:\n"
  76                 "B      loc_FF8837D0\n"
  77 "loc_FF8836D0:\n"
  78                 "B      loc_FF8837D8\n"
  79 "loc_FF8836D4:\n"
  80                 "B      loc_FF8837E0\n"
  81 "loc_FF8836D8:\n"
  82                 "B      loc_FF8837E8\n"
  83 "loc_FF8836DC:\n"
  84                 "B      loc_FF8837F4\n"
  85 "loc_FF8836E0:\n"
  86                 "B      loc_FF8837FC\n"
  87 "loc_FF8836E4:\n"
  88                 "B      loc_FF883804\n"
  89 "loc_FF8836E8:\n"
  90                 "B      loc_FF88380C\n"
  91 "loc_FF8836EC:\n"
  92                 "B      loc_FF883814\n"
  93 "loc_FF8836F0:\n"
  94                 "B      loc_FF88381C\n"
  95 "loc_FF8836F4:\n"
  96                 "B      loc_FF883824\n"
  97 "loc_FF8836F8:\n"
  98                 "B      loc_FF883830\n"
  99 "loc_FF8836FC:\n"
 100                 "B      loc_FF883874\n"
 101 "loc_FF883700:\n"
 102         "BL      shooting_expo_param_override\n"  // +       
 103         "BL      sub_FF883D88\n"
 104         "BL      shooting_expo_param_override\n"  // +
 105                  "BL      sub_FF880F24\n"
 106 
 107 // copied over from SX10 don't know if we need it yet
 108  //  this code added to avoid some incorrect behavior if overrides are used.
 109  //  but it can cause some unexpected side effects. In this case, remove this code!
 110 
 111                  "MOV     R0, #0\n"
 112                  "STR     R0, [R4,#0x24]\n"  // fixes overrides  behavior at short shutter press
 113  //  end of my code
 114                  "LDR     R0, [R4,#0x24]\n"
 115                  "CMP     R0, #0\n"
 116 
 117 //TIL HERE ixus1000 then changes a lot !!!
 118 
 119 //all this should not be here:
 120 
 121         //"BLNE    sub_FF98ADD4\n"  // This is a potential my sub  like the FF972EFC but starting some line earlier
 122 
 123      "BLNE    sub_FF98ADD4_my\n"  // This is a potential my sub  like the FF972EFC but starting some line earlier
 124                                                 //---------------->
 125 //     "BL      capt_seq_hook_raw_here\n"      // +
 126 
 127         "B       loc_FF883874\n"
 128 "loc_FF883718:\n"
 129         "LDRH    R1, [R4]\n"
 130         "SUB     R12, R1, #0x8200\n"
 131         "SUBS    R12, R12, #0x2E\n"
 132         "LDRNE   R0, [R0,#0xC]\n"
 133 //      "BLNE    sub_FF98AB68\n"
 134     "BLNE    sub_FF98AB68_my\n"  // 100 D was 68
 135                                                                 //---------------->
 136 //     "BL      capt_seq_hook_raw_here\n"      // +
 137 
 138 
 139         "B       loc_FF883874\n"
 140 "loc_FF883730:\n"
 141         "MOV     R0, #1\n"
 142         "BL      sub_FF884044\n"
 143         "B       loc_FF883874\n"
 144 "loc_FF88373C:\n"
 145         "BL      sub_FF883A28\n"
 146         "B       loc_FF883748\n"
 147 "loc_FF883744:\n"
 148         "BL      sub_FF883D68\n"
 149 "loc_FF883748:\n"
 150         "STR     R6, [R4,#0x24]\n"
 151         "B       loc_FF883874\n"
 152 "loc_FF883750:\n"
 153         "BL      sub_FF883D70\n"
 154         "B       loc_FF883874\n"
 155 
 156 "loc_FF883758:\n"
 157         "BL      sub_FF883F48\n"
 158         "B       loc_FF883770\n"
 159 "loc_FF883760:\n"
 160         "LDR     R0, [R0,#0xC]\n"
 161         "BL      sub_FF98AE34\n"
 162         "B       loc_FF883874\n"
 163 "loc_FF88376C:\n"
 164         "BL      sub_FF883FB4\n"
 165 "loc_FF883770:\n"
 166         "BL      sub_FF880F24\n"
 167         "B       loc_FF883874\n"
 168 "loc_FF883778:\n"
 169         "LDR     R0, [R4,#0x54]\n"
 170         "BL      sub_FF8846B0\n"
 171         "B       loc_FF883874\n"
 172 "loc_FF883784:\n"
 173         "BL      sub_FF884A4C\n"
 174         "B       loc_FF883874\n"
 175 "loc_FF88378C:\n"
 176         "BL      sub_FF884AB0\n"
 177         "B       loc_FF883874\n"
 178 "loc_FF883794:\n"
 179         "BL      sub_FF883D68\n"
 180         "B       loc_FF883874\n"
 181 "loc_FF88379C:\n"
 182         "BL      sub_FF98A1B4\n"
 183         "B       loc_FF883874\n"
 184 "loc_FF8837A4:\n"
 185         "BL      sub_FF98A3C0\n"
 186         "B       loc_FF883874\n"
 187 "loc_FF8837AC:\n"
 188         "BL      sub_FF98A464\n"
 189         "B       loc_FF883874\n"
 190 "loc_FF8837B4:\n"
 191         "BL      sub_FF98A534\n"
 192         "B       loc_FF883874\n"
 193 "loc_FF8837BC:\n"
 194         "MOV     R0, #0\n"
 195         "BL      sub_FF98A794\n"
 196         "B       loc_FF883874\n"
 197 "loc_FF8837C8:\n"
 198         "BL      sub_FF98A8F0\n"
 199         "B       loc_FF883874\n"
 200 "loc_FF8837D0:\n"
 201         "BL      sub_FF98A994\n"
 202         "B       loc_FF883874\n"
 203 "loc_FF8837D8:\n"
 204         "BL      sub_FF98AA74\n"
 205         "B       loc_FF883874\n"
 206 "loc_FF8837E0:\n"
 207         "BL      sub_FF88422C\n"
 208         "B       loc_FF883874\n"
 209 "loc_FF8837E8:\n"
 210         "BL      sub_FF8842D8\n"
 211         "BL      sub_FF98BAF4\n"
 212         "B       loc_FF883874\n"
 213 "loc_FF8837F4:\n"
 214         "BL      sub_FF98A600\n"
 215         "B       loc_FF883874\n"
 216 "loc_FF8837FC:\n"
 217         "BL      sub_FF98A668\n"
 218         "B       loc_FF883874\n"
 219 "loc_FF883804:\n"
 220         "BL      sub_FF98BBC4\n"
 221         "B       loc_FF883874\n"
 222 "loc_FF88380C:\n"
 223         "BL      sub_FF838C50\n"
 224         "B       loc_FF883874\n"
 225 "loc_FF883814:\n"
 226         "BL      sub_FF886DEC\n"
 227         "B       loc_FF883874\n"
 228 "loc_FF88381C:\n"
 229         "BL      sub_FF886E74\n"
 230         "B       loc_FF883874\n"
 231 "loc_FF883824:\n"
 232         "BL      sub_FF886ED0\n"
 233         "BL      sub_FF886E90\n"
 234         "B       loc_FF883874\n"
 235 "loc_FF883830:\n"
 236         "MOV     R0, #1\n"
 237         "BL      sub_FF98B630\n"
 238         "MOV     R0, #1\n"
 239         "BL      sub_FF98B760\n"
 240         "LDRH    R0, [R4,#0x94]\n"
 241         "CMP     R0, #4\n"
 242         "LDRNEH  R0, [R4]\n"
 243         "SUBNE   R12, R0, #0x8200\n"
 244         "SUBNES  R12, R12, #0x2A\n"
 245         "BNE     loc_FF883874\n"
 246         "BL      sub_FF886E74\n"
 247         "BL      sub_FF8873E0\n"
 248         "BL      sub_FF8872F0\n"
 249         "B       loc_FF883874\n"
 250 "loc_FF883868:\n"
 251         "LDR     R1, =0x591\n"
 252         "LDR     R0, =0xFF88319C\n"  //aSsshoottask_c
 253         "BL      sub_FF81EB78\n"   //DebugAssert
 254 "loc_FF883874:\n"
 255         "LDR     R0, [SP]\n"
 256         "LDR     R1, [R0,#4]\n"
 257         "LDR     R0, [R7]\n"
 258         "BL      sub_FF88DB8C\n"
 259         "LDR     R5, [SP]\n"
 260         "LDR     R0, [R5,#8]\n"
 261         "CMP     R0, #0\n"
 262         "LDREQ   R1, =0x115\n"
 263         "LDREQ   R0, =0xFF88319C\n"  //aSsshoottask_c "ADREQ   R0, aSsshoottask_c ; "SsShootTask.c
 264         "BLEQ    sub_FF81EB78\n"   //DebugAssert
 265         "STR     R6, [R5,#8]\n"
 266         "B       loc_FF883640\n"
 267 
 268 
 269 
 270 
 271 
 272 
 273 // looks like the nr stuff is sub_FFAE3304
 274 
 275 
 276 
 277         );
 278 }               // ASM 1989  Done 11.11.10
 279 
 280 //100F needs check
 281 
 282 
 283 // For the 1st raw stuff
 284 void __attribute__((naked,noinline)) sub_FF98ADD4_my() {
 285         asm volatile (
 286                 "STMFD   SP!, {R4-R6,LR}\n"
 287                 "BL      sub_FF882E6C\n"
 288                 "MOV     R4, R0\n"
 289                 "LDR     R0, =0x3C5E4\n"
 290                 "LDR     R5, =0x7C8C\n"   //F: 0x7C94
 291                 "LDR     R0, [R0,#0x24]\n"
 292                 "MOV     R6, #1\n"
 293                 "CMP     R0, #0\n"
 294                 "BEQ     loc_FF98AE18\n"  //F: 1C
 295                 "MOV     R0, #0xC\n"
 296                 "BL      sub_FF88896C\n"
 297                 "TST     R0, #1\n"
 298                 "STRNE   R6, [R5]\n"
 299                 "LDRNE   R0, [R4,#8]\n"
 300                 "ORRNE   R0, R0, #0x40000000\n"
 301                 "STRNE   R0, [R4,#8]\n"
 302                 "LDMNEFD SP!, {R4-R6,PC}\n"
 303 "loc_FF98AE18:\n"
 304                 "MOV     R0, R4\n"
 305                 "BL      sub_FFAE2D08\n"  //F: 0C
 306                 "MOV     R0, R4\n"
 307                 //"BL      sub_FFAE37CC\n"  //F: D0
 308                 "BL      sub_FFAE37CC_my\n"
 309                         //---------------->
 310 
 311 //              "BL      capt_seq_hook_raw_here\n"              // added
 312                 "TST     R0, #1\n"
 313                 "TST     R0, #1\n"
 314                 "STRNE   R6, [R5]\n"
 315                 "LDMFD   SP!, {R4-R6,PC}\n"
 316         );
 317 }
 318 
 319 //First BL for the nr stuff
 320 void __attribute__((naked,noinline)) sub_FFAE37CC_my() {
 321         asm volatile (
 322                 "STMFD   SP!, {R2-R8,LR}\n"
 323                 "MOV     R6, R0\n"
 324                 "BL      sub_FF98B924\n"  //f: 28
 325                 //"MOVL    R1, 0xFFFFFFFF\n"
 326                 "MVN     R1, #0 \n"
 327                 "BL      sub_FF88DBC0\n"
 328                 "LDR     R0, =0xFFAE2F44\n"  //F: 48
 329                 "MOV     R1, R6\n"
 330                 "BL      sub_FF8C25A4\n"
 331                 "MOV     R0, R6\n"
 332                 "BL      sub_FFAE2E0C\n"  //F: 10
 333                 "MOV     R0, R6\n"
 334 //              "BL      sub_FFAE3304\n"  //F: 08
 335                 "BL      sub_FFAE3304_my\n"
 336                 "B       sub_FFAE37FC\n"  // continue func in firmware needs to be tested
 337                         );
 338 }
 339 
 340 
 341 //NR stuff goes here needs to be tested
 342 void __attribute__((naked,noinline)) sub_FFAE3304_my() {
 343         asm volatile (
 344                                 "STMFD   SP!, {R0-R8,LR}\n"
 345                                 "MOV     R4, R0\n"
 346                                 "MOV     R0, #0\n"
 347                                 "MOV     R7, #1\n"
 348                                 "LDR     R5, =0x3C6B4\n"
 349                                 "STR     R7, [SP,#0x8]\n"
 350                                 "STR     R0, [SP,#0xC]\n"
 351                                 "LDR     R6, =0x3C5E4\n"
 352                                 "LDR     R3, [R5]\n"
 353                                 "LDRSH   R2, [R5,#0xC]\n"
 354                                 "LDRSH   R1, [R5,#0xE]\n"
 355                                 "LDR     R0, [R6,#0x88]\n"
 356                                 "BL      sub_FF944FC8\n"
 357                                 "BL      sub_FF8682FC\n"                        //GetCCDTemperature
 358                                 "LDR     R2, =0xDDA8\n"  //F:  DDB0
 359                                 "ADD     R3, SP, #0xC\n"
 360                                 "STRH    R0, [R4,#0xAC]\n"
 361                                 "STRD    R2, [SP]\n"
 362                                 "MOV     R1, R0\n"
 363                                 "LDRH    R0, [R6,#0x5C]\n"
 364                                 "LDRSH   R2, [R5,#0xC]\n"
 365                                 "ADD     R3, SP, #0x8\n"
 366                                 "BL      sub_FF98D568\n"  //NRTable.c  F: 6C
 367                                 //TESTing enable latter!
 368                                 //                 "BL      wait_until_remote_button_is_released\n"
 369                  "BL      capt_seq_hook_set_nr\n"
 370                  "B       sub_FFAE3360\n"                             // continue function in firmware
 371                         );
 372 }
 373 
 374 // For the 2nd raw stuff
 375 void __attribute__((naked,noinline)) sub_FF98AB68_my() {
 376         asm volatile (
 377                         "STMFD   SP!, {R3-R7,LR}\n"
 378                         "LDR     R5, =0x3C5E4\n"
 379                         "MOV     R4, R0\n"
 380                         "LDR     R0, [R5,#0x24]\n"
 381                         "LDR     R6, =0x820C\n"
 382                         "CMP     R0, #0\n"
 383                         "MOV     R7, #0\n"
 384                         "BNE     loc_FF98AC14\n"   //F: 18
 385                         "LDR     R0, [R5,#0xB8]\n"
 386                         "CMP     R0, #1\n"
 387                         "BNE     loc_FF98ABF0\n"  //F: F4
 388                         "LDRH    R0, [R5]\n"
 389                         "CMP     R0, R6\n"
 390                         "LDRNEH  R0, [R5,#0x92]\n"
 391                         "CMPNE   R0, #3\n"
 392                         "LDRNE   R0, [R4,#0xC]\n"
 393                         "CMPNE   R0, #1\n"
 394                         "BLS     loc_FF98ABC4\n"  //F:C8
 395                         "BL      sub_FF833020\n"
 396                         "TST     R0, #1\n"
 397                         "BEQ     loc_FF98AC14\n" //F: 18
 398                         "BL      sub_FF8889CC\n"
 399                         "B       loc_FF98AC00\n" //F: 04 .....
 400 "loc_FF98ABC4:\n"
 401                         "MOV     R0, #0xC\n"
 402                         "BL      sub_FF88896C\n"
 403                         "TST     R0, #1\n"
 404                         "BEQ     loc_FF98AC14\n"
 405                         "MOV     R2, R4\n"
 406                         "MOV     R1, #1\n"
 407                         "MOV     R0, #1\n"
 408                         "BL      sub_FF8818E8\n"
 409                         "BL      sub_FF98B4B8\n"
 410                         "BL      sub_FF881610\n"
 411                         "LDMFD   SP!, {R3-R7,PC}\n"
 412 "loc_FF98ABF0:\n"
 413                         "MOV     R0, #0xC\n"
 414                         "BL      sub_FF88896C\n"
 415                         "TST     R0, #1\n"
 416                         "BEQ     loc_FF98AC14\n"
 417 "loc_FF98AC00:\n"
 418                         "MOV     R2, R4\n"
 419                         "MOV     R1, #1\n"
 420                         "MOV     R0, #1\n"
 421                         "BL      sub_FF8818E8\n"
 422                         "LDMFD   SP!, {R3-R7,PC}\n"
 423 "loc_FF98AC14:\n"
 424                         "LDR     R0, [R4,#8]\n"
 425                         "ORR     R0, R0, #1\n"
 426                         "STR     R0, [R4,#8]\n"
 427                         "LDRH    R0, [R5]\n"
 428                         "CMP     R0, R6\n"
 429                         "BEQ     loc_FF98ACA0\n"
 430                         "LDRH    R0, [R5,#0x92]\n"
 431                         "CMP     R0, #3\n"
 432                         "BEQ     loc_FF98ACE8\n"
 433                         "LDR     R0, [R4,#0xC]\n"
 434                         "CMP     R0, #1\n"
 435                         "BLS     loc_FF98ACAC\n"
 436                         "LDRH    R0, [R5,#0x90]\n"
 437                         "CMP     R0, #0\n"
 438                         "BNE     loc_FF98ACE8\n"
 439                         "LDRH    R0, [R5,#0x8C]\n"
 440                         "CMP     R0, #2\n"
 441                         "BNE     loc_FF98ACB8\n"
 442                         "BL      sub_FF88439C\n"
 443                         "LDRH    R0, [R5]\n"
 444                         "CMP     R0, R6\n"
 445                         "BEQ     loc_FF98ACA0\n"
 446                         "LDRH    R0, [R5,#0x92]\n"
 447                         "CMP     R0, #3\n"
 448                         "BEQ     loc_FF98ACE8\n"
 449                         "LDR     R0, [R4,#0xC]\n"
 450                         "CMP     R0, #1\n"
 451                         "BLS     loc_FF98ACAC\n"
 452                         "LDRH    R0, [R5,#0x90]\n"
 453                         "CMP     R0, #0\n"
 454                         "BNE     loc_FF98ACE8\n"
 455                         "LDRH    R0, [R5,#0x8C]\n"
 456                         "CMP     R0, #2\n"
 457                         "BEQ     loc_FF98ACE4\n"
 458                         "B       loc_FF98ACB8\n"
 459 "loc_FF98ACA0:\n"
 460                         "LDRH    R0, [R5,#0x92]\n"
 461                         "CMP     R0, #3\n"
 462                         "BEQ     loc_FF98ACE8\n"
 463 "loc_FF98ACAC:\n"
 464                         "LDRH    R0, [R5,#0x90]\n"
 465                         "CMP     R0, #0\n"
 466                         "BNE     loc_FF98ACE8\n"
 467 "loc_FF98ACB8:\n"
 468                         "LDRH    R0, [R5,#0x8C]\n"
 469                         "CMP     R0, #1\n"
 470                         "BNE     loc_FF98ACE8\n"
 471                         "LDRH    R0, [R5]\n"
 472                         "CMP     R0, R6\n"
 473                         "LDRNE   R0, [R4,#0xC]\n"
 474                         "CMPNE   R0, #1\n"
 475                         "BLS     loc_FF98ACE8\n"
 476                         "LDR     R0, [R4,#0x10]\n"
 477                         "CMP     R0, #1\n"
 478                         "BNE     loc_FF98ACE8\n"
 479 "loc_FF98ACE4:\n"
 480                         "BL      sub_FF98BBFC\n"
 481 "loc_FF98ACE8:\n"
 482                         "BL      sub_FF98BBC4\n"
 483                         "BL      sub_FF883D78\n"
 484                         "LDR     R0, [R5,#0x24]\n"
 485                         "CMP     R0, #0\n"
 486                         "BNE     loc_FF98ADB4\n"
 487                         "MOV     R0, R4\n"
 488                         "BL      sub_FFAE2D80\n"
 489                         "TST     R0, #1\n"
 490                         "LDMNEFD SP!, {R3-R7,PC}\n"
 491                         "MOV     R0, R4\n"
 492                         "BL      sub_FFAE321C\n"
 493                         "BL      sub_FF98B3F8\n"
 494                         "LDR     R0, [R5,#0xB8]\n"
 495                         "CMP     R0, #1\n"
 496                         "BNE     loc_FF98AD40\n"
 497                         "LDRH    R0, [R5]\n"
 498                         "CMP     R0, R6\n"
 499                         "LDRNEH  R0, [R5,#0x92]\n"
 500                         "CMPNE   R0, #3\n"
 501                         "LDRNE   R0, [R4,#0xC]\n"
 502                         "CMPNE   R0, #1\n"
 503                         "BHI     loc_FF98AD48\n"
 504 "loc_FF98AD40:\n"
 505                         "MOV     R0, #2\n"
 506                         "BL      sub_FF87F4A4\n"
 507 "loc_FF98AD48:\n"
 508                         "LDRH    R0, [R5]\n"
 509                         "SUB     R12, R0, #0x8200\n"
 510                         "SUBS    R12, R12, #0x2D\n"
 511                         "BNE     loc_FF98ADA4\n"
 512                         "MOV     R5, #1\n"
 513                         "MOV     R2, #2\n"
 514                         "ADD     R0, R2, #0x15C\n"
 515                         "MOV     R1, SP\n"
 516                         "STR     R5, [SP]\n"
 517                         "BL      sub_FF895DBC\n"  //GetPropertyCase
 518                         "TST     R0, #1\n"
 519                         "MOVNE   R1, #0xC3\n"
 520                         "LDRNE   R0, =0xFF98AEF8 \n"            //ADRNE   R0, aSscaptureseq_c ;
 521                         "BLNE    sub_FF81EB78\n"        //DebugAssert
 522                         "LDRH    R0, [SP]\n"
 523                         "CMP     R0, #1\n"
 524                         "BLS     loc_FF98AD9C\n"
 525                         "MOV     R0, R4\n"
 526                         "STR     R5, [R4,#0xE4]\n"
 527                         "BL      sub_FFAE3CDC\n"        //_SsGISCaptureSeq.c
 528                         "B       loc_FF98ADAC\n"
 529 "loc_FF98AD9C:\n"
 530                         "MOV     R0, #0\n"
 531                         "STR     R0, [R4,#0xE4]\n"
 532 "loc_FF98ADA4:\n"
 533                         "MOV     R0, R4\n"
 534                         //"BL      sub_FFAE37CC\n"
 535                     "BL      sub_FFAE37CC_my\n"
 536                                         //---------------->
 537                         "BL      capt_seq_hook_raw_here\n"              // added
 538 "loc_FF98ADAC:\n"
 539                         "MOV     R7, R0\n"
 540                         "B       loc_FF98ADC4\n"
 541 "loc_FF98ADB4:\n"
 542                         "LDR     R0, =0x7C8C\n"
 543                         "LDR     R0, [R0]\n"
 544                         "CMP     R0, #0\n"
 545                         "MOVNE   R7, #0x1D\n"
 546 "loc_FF98ADC4:\n"
 547                         "MOV     R1, R7\n"
 548                         "MOV     R0, R4\n"
 549                         "BL      sub_FFAE2ED4\n"
 550                         "LDMFD   SP!, {R3-R7,PC}\n"
 551                                         );
 552 }
 553 
 554 
 555 //--------------------------- apexus stuff-------------------
 556 //FF8CCA88
 557 void __attribute__((naked,noinline)) exp_drv_task() {
 558         asm volatile(
 559 "               STMFD   SP!, {R4-R8,LR}\n"
 560 "               SUB     SP, SP, #0x20\n"
 561 "               LDR     R8, =0xBB8\n"
 562 "               LDR     R7, =0x4C6C\n"
 563 "               LDR     R5, =0x58054\n"
 564 "               MOV     R0, #0\n"
 565 "               ADD     R6, SP, #0x10\n"
 566 "               STR     R0, [SP,#0xC]\n"
 567 "loc_FF8CCAA8:\n"
 568 "               LDR     R0, [R7,#0x20]\n"
 569 "               MOV     R2, #0\n"
 570 "               ADD     R1, SP, #0x1C\n"
 571 "               BL      sub_FF83AE20\n"  //__KerQueue.c__0 ; LOCATION: KerQueue.c:0
 572 "               LDR     R0, [SP,#0xC]\n"
 573 "               CMP     R0, #1\n"
 574 "               BNE     loc_FF8CCAF4\n"
 575 "               LDR     R0, [SP,#0x1C]\n"
 576 "               LDR     R0, [R0]\n"
 577 "               CMP     R0, #0x14\n"
 578 "               CMPNE   R0, #0x15\n"
 579 "               CMPNE   R0, #0x16\n"
 580 "               CMPNE   R0, #0x17\n"
 581 "               BEQ     loc_FF8CCC58\n"
 582 "               CMP     R0, #0x29\n"
 583 "               BEQ     loc_FF8CCBE0\n"
 584 "               ADD     R1, SP, #0xC\n"
 585 "               MOV     R0, #0\n"
 586 "               BL      sub_FF8CCA38\n"  //__ExpDrv.c__512 ; LOCATION: ExpDrv.c:512
 587 "loc_FF8CCAF4:\n"
 588 "               LDR     R0, [SP,#0x1C]\n"
 589 "               LDR     R1, [R0]\n"
 590 "               CMP     R1, #0x2F\n"
 591 "               BNE     loc_FF8CCB24\n"
 592 "               LDR     R0, [SP,#0x1C]\n"
 593 "               BL      sub_FF8CDE38\n"  //__ExpDrv.c__0 ; LOCATION: ExpDrv.c:0
 594 "               LDR     R0, [R7,#0x1C]\n"
 595 "               MOV     R1, #1\n"
 596 "               BL      sub_FF88DB8C\n"
 597 "               BL      sub_FF81EB30\n" //ExitTask      ; LOCATION: KerTask.c:0
 598 "               ADD     SP, SP, #0x20\n"
 599 "               LDMFD   SP!, {R4-R8,PC}\n"
 600 "loc_FF8CCB24:\n"
 601 "               CMP     R1, #0x2E\n"
 602 "               BNE     loc_FF8CCB40\n"
 603 "               LDR     R2, [R0,#0x8C]!\n"
 604 "               LDR     R1, [R0,#4]\n"
 605 "               MOV     R0, R1\n"
 606 "               BLX     R2\n"
 607 "               B       loc_FF8CD120\n"
 608 "loc_FF8CCB40:\n"
 609 "               CMP     R1, #0x27\n"
 610 "               BNE     loc_FF8CCB90\n"
 611 "               LDR     R0, [R7,#0x1C]\n"
 612 "               MOV     R1, #0x80\n"
 613 "               BL      sub_FF88DBC0\n"
 614 "               LDR     R0, =0xFF8C8848\n"
 615 "               MOV     R1, #0x80\n"
 616 "               BL      sub_FF974434\n"  //__IrisController.c__116 ; LOCATION: IrisController.c:116
 617 "               LDR     R0, [R7,#0x1C]\n"
 618 "               MOV     R2, R8\n"
 619 "               MOV     R1, #0x80\n"
 620 "               BL      sub_FF88DACC\n"  //__KerFlag.c__0 ; LOCATION:   KerFlag.c:0
 621 "               TST     R0, #1\n"
 622 "               LDRNE   R1, =0x1089\n"
 623 "               BNE     loc_FF8CCC4C\n"
 624 "loc_FF8CCB7C:\n"
 625 "               LDR     R1, [SP,#0x1C]\n"
 626 "               LDR     R0, [R1,#0x90]\n"
 627 "               LDR     R1, [R1,#0x8C]\n"
 628 "               BLX     R1\n"
 629 "               B       loc_FF8CD120\n"
 630 "loc_FF8CCB90:\n"
 631 "               CMP     R1, #0x28\n"
 632 "               BNE     loc_FF8CCBD8\n"
 633 "               ADD     R1, SP, #0xC\n"
 634 "               BL      sub_FF8CCA38\n"  //__ExpDrv.c__512 ; LOCATION: ExpDrv.c:512
 635 "               LDR     R0, [R7,#0x1C]\n"
 636 "               MOV     R1, #0x100\n"
 637 "               BL      sub_FF88DBC0\n"
 638 "               LDR     R0, =0xFF8C8858\n"
 639 "               MOV     R1, #0x100\n"
 640 "               BL      sub_FF974DC4\n"  //__IrisController.c__0 ; LOCATION: IrisController.c:0
 641 "               LDR     R0, [R7,#0x1C]\n"
 642 "               MOV     R2, R8\n"
 643 "               MOV     R1, #0x100\n"
 644 "               BL      sub_FF88DACC\n"  //__KerFlag.c__0 ; LOCATION:   KerFlag.c:0
 645 "               TST     R0, #1\n"
 646 "               BEQ     loc_FF8CCB7C\n"
 647 "               LDR     R1, =0x1093\n"
 648 "               B       loc_FF8CCC4C\n"
 649 "loc_FF8CCBD8:\n"
 650 "               CMP     R1, #0x29\n"
 651 "               BNE     loc_FF8CCBF0\n"
 652 "loc_FF8CCBE0:\n"
 653 "               LDR     R0, [SP,#0x1C]\n"
 654 "               ADD     R1, SP, #0xC\n"
 655 "               BL      sub_FF8CCA38\n" //__ExpDrv.c__512 ; LOCATION: ExpDrv.c:512
 656 "               B       loc_FF8CCB7C\n"
 657 "loc_FF8CCBF0:\n"
 658 "               CMP     R1, #0x2C\n"
 659 "               BNE     loc_FF8CCC08\n"
 660 "               BL      sub_FF8BA634\n"  //__Shutter.c__2 ; LOCATION:   Shutter.c:2
 661 "               BL      sub_FF8BB250\n"  // __ImgPixel.c__272 ; LOCATION: ImgPixel.c:272
 662 "               BL      sub_FF8BADBC\n"  //__ImgGain.c__0 ; LOCATION:   ImgGain.c:0
 663 "               B       loc_FF8CCB7C\n"
 664 "loc_FF8CCC08:\n"
 665 "               CMP     R1, #0x2D\n"
 666 "               BNE     loc_FF8CCC58\n"
 667 "               LDR     R0, [R7,#0x1C]\n"
 668 "               MOV     R1, #4\n"
 669 "               BL      sub_FF88DBC0\n"
 670 "               LDR     R1, =0xFF8C8878\n"
 671 "               LDR     R0, =0xFFFFF400\n"
 672 "               MOV     R2, #4\n"
 673 "               BL      sub_FF8BA0B0\n"
 674 "               BL      sub_FF8BA338\n"  //__Shutter.c__0 ; LOCATION:   Shutter.c:0
 675 "               LDR     R0, [R7,#0x1C]\n"
 676 "               MOV     R2, R8\n"
 677 "               MOV     R1, #4\n"
 678 "               BL      sub_FF88D9E8\n"  // __KerFlag.c__0 ; LOCATION:  KerFlag.c:0
 679 "               TST     R0, #1\n"
 680 "               BEQ     loc_FF8CCB7C\n"
 681 "               LDR     R1, =0x10BB\n"
 682 "loc_FF8CCC4C:\n"
 683 "               LDR     R0, =0xFF8C8F48\n"  //aExpdrv_c
 684 "               BL      sub_FF81EB78\n"  //DebugAssert
 685 "               B       loc_FF8CCB7C\n"
 686 "loc_FF8CCC58:\n"
 687 "               LDR     R0, [SP,#0x1C]\n"
 688 "               MOV     R4, #1\n"
 689 "               LDR     R1, [R0]\n"
 690 "               CMP     R1, #0x12\n"
 691 "               CMPNE   R1, #0x13\n"
 692 "               BNE     loc_FF8CCCC8\n"
 693 "               LDR     R1, [R0,#0x7C]\n"
 694 "               ADD     R1, R1, R1,LSL#1\n"
 695 "               ADD     R1, R0, R1,LSL#2\n"
 696 "               SUB     R1, R1, #8\n"
 697 "               LDMIA   R1, {R2-R4}\n"
 698 "               STMIA   R6, {R2-R4}\n"
 699 "               BL      sub_FF8CB1C0\n"  // __ExpDrv.c__2 ; LOCATION: ExpDrv.c:2
 700 "               LDR     R0, [SP,#0x1C]\n"
 701 "               LDR     R1, [R0,#0x7C]\n"
 702 "               LDR     R3, [R0,#0x8C]\n"
 703 "               LDR     R2, [R0,#0x90]\n"
 704 "               ADD     R0, R0, #4\n"
 705 "               BLX     R3\n"
 706 "               LDR     R0, [SP,#0x1C]\n"
 707 "               BL      sub_FF8CE240\n"  //__ExpDrv.c__0 ; LOCATION: ExpDrv.c:0
 708 "               LDR     R0, [SP,#0x1C]\n"
 709 "               LDR     R1, [R0,#0x7C]\n"
 710 "               LDR     R3, [R0,#0x94]\n"
 711 "               LDR     R2, [R0,#0x98]\n"
 712 "               ADD     R0, R0, #4\n"
 713 "               BLX     R3\n"
 714 "               B       loc_FF8CD05C\n"
 715 "loc_FF8CCCC8:\n"
 716 "               CMP     R1, #0x14\n"
 717 "               CMPNE   R1, #0x15\n"
 718 "               CMPNE   R1, #0x16\n"
 719 "               CMPNE   R1, #0x17\n"
 720 "               BNE     loc_FF8CCD80\n"
 721 "               ADD     R3, SP, #0xC\n"
 722 "               MOV     R2, SP\n"
 723 "               ADD     R1, SP, #0x10\n"
 724 "               BL      sub_FF8CB42C\n"   // __ExpDrv.c__3168 ; LOCATION: ExpDrv.c:3168
 725 "               CMP     R0, #1\n"
 726 "               MOV     R4, R0\n"
 727 "               CMPNE   R4, #5\n"
 728 "               BNE     loc_FF8CCD1C\n"
 729 "               LDR     R0, [SP,#0x1C]\n"
 730 "               MOV     R2, R4\n"
 731 "               LDR     R1, [R0,#0x7C]!\n"
 732 "               LDR     R12, [R0,#0x10]!\n"
 733 "               LDR     R3, [R0,#4]\n"
 734 "               MOV     R0, SP\n"
 735 "               BLX     R12\n"
 736 "               B       loc_FF8CCD54\n"
 737 "loc_FF8CCD1C:\n"
 738 "               LDR     R0, [SP,#0x1C]\n"
 739 "               CMP     R4, #2\n"
 740 "               LDR     R3, [R0,#0x90]\n"
 741 "               CMPNE   R4, #6\n"
 742 "               BNE     loc_FF8CCD68\n"
 743 "               LDR     R12, [R0,#0x8C]\n"
 744 "               MOV     R0, SP\n"
 745 "               MOV     R2, R4\n"
 746 "               MOV     R1, #1\n"
 747 "               BLX     R12\n"
 748 "               LDR     R0, [SP,#0x1C]\n"
 749 "               MOV     R2, SP\n"
 750 "               ADD     R1, SP, #0x10\n"
 751 "               BL      sub_FF8CC784\n"  // __ExpDrv.c__0 ; LOCATION: ExpDrv.c:0
 752 "loc_FF8CCD54:\n"
 753 "               LDR     R0, [SP,#0x1C]\n"
 754 "               LDR     R2, [SP,#0xC]\n"
 755 "               MOV     R1, R4\n"
 756 "               BL      sub_FF8CC9D8\n"  // __ExpDrv.c__2 ; LOCATION: ExpDrv.c:2
 757 "               B       loc_FF8CD05C\n"
 758 "loc_FF8CCD68:\n"
 759 "               LDR     R1, [R0,#0x7C]\n"
 760 "               LDR     R12, [R0,#0x8C]\n"
 761 "               ADD     R0, R0, #4\n"
 762 "               MOV     R2, R4\n"
 763 "               BLX     R12\n"
 764 "               B       loc_FF8CD05C\n"
 765 "loc_FF8CCD80:\n"
 766 "               CMP     R1, #0x23\n"
 767 "               CMPNE   R1, #0x24\n"
 768 "               BNE     loc_FF8CCDCC\n"
 769 "               LDR     R1, [R0,#0x7C]\n"
 770 "               ADD     R1, R1, R1,LSL#1\n"
 771 "               ADD     R1, R0, R1,LSL#2\n"
 772 "               SUB     R1, R1, #8\n"
 773 "               LDMIA   R1, {R2-R4}\n"
 774 "               STMIA   R6, {R2-R4}\n"
 775 "               BL      sub_FF8CA234\n"  // __ExpDrv.c__2064 ;  LOCATION: ExpDrv.c:2064
 776 "               LDR     R0, [SP,#0x1C]\n"
 777 "               LDR     R1, [R0,#0x7C]\n"
 778 "               LDR     R3, [R0,#0x8C]\n"
 779 "               LDR     R2, [R0,#0x90]\n"
 780 "               ADD     R0, R0, #4\n"
 781 "               BLX     R3\n"
 782 "               LDR     R0, [SP,#0x1C]\n"
 783 "               BL      sub_FF8CA680\n"  // __ExpDrv.c__0 ; LOCATION: ExpDrv.c:0
 784 "               B       loc_FF8CD05C\n"
 785 "loc_FF8CCDCC:\n"
 786 "               ADD     R1, R0, #4\n"
 787 "               LDMIA   R1, {R2,R3,R12}\n"
 788 "               STMIA   R6, {R2,R3,R12}\n"
 789 "               LDR     R1, [R0]\n"
 790 "               CMP     R1, #0x26\n"
 791 "               ADDLS   PC, PC, R1,LSL#2\n"
 792 "               B       loc_FF8CD03C\n"
 793 "loc_FF8CCDE8:\n"
 794 "               B       loc_FF8CCE84\n"
 795 "loc_FF8CCDEC:\n"
 796 "               B       loc_FF8CCE84\n"
 797 "loc_FF8CCDF0:\n"
 798 "               B       loc_FF8CCE8C\n"
 799 "loc_FF8CCDF4:\n"
 800 "               B       loc_FF8CCE94\n"
 801 "loc_FF8CCDF8:\n"
 802 "               B       loc_FF8CCE94\n"
 803 "loc_FF8CCDFC:\n"
 804 "               B       loc_FF8CCE94\n"
 805 "loc_FF8CCE00:\n"
 806 "               B       loc_FF8CCE84\n"
 807 "loc_FF8CCE04:\n"
 808 "               B       loc_FF8CCE8C\n"
 809 "loc_FF8CCE08:\n"
 810 "               B       loc_FF8CCE94\n"
 811 "loc_FF8CCE0C:\n"
 812 "               B       loc_FF8CCE94\n"
 813 "loc_FF8CCE10:\n"
 814 "               B       loc_FF8CCEAC\n"
 815 "loc_FF8CCE14:\n"
 816 "               B       loc_FF8CCEAC\n"
 817 "loc_FF8CCE18:\n"
 818 "               B       loc_FF8CD028\n"
 819 "loc_FF8CCE1C:\n"
 820 "               B       loc_FF8CD030\n"
 821 "loc_FF8CCE20:\n"
 822 "               B       loc_FF8CD030\n"
 823 "loc_FF8CCE24:\n"
 824 "               B       loc_FF8CD030\n"
 825 "loc_FF8CCE28:\n"
 826 "               B       loc_FF8CD030\n"
 827 "loc_FF8CCE2C:\n"
 828 "               B       loc_FF8CD038\n"
 829 "loc_FF8CCE30:\n"
 830 "               B       loc_FF8CD03C\n"
 831 "loc_FF8CCE34:\n"
 832 "               B       loc_FF8CD03C\n"
 833 "loc_FF8CCE38:\n"
 834 "               B       loc_FF8CD03C\n"
 835 "loc_FF8CCE3C:\n"
 836 "               B       loc_FF8CD03C\n"
 837 "loc_FF8CCE40:\n"
 838 "               B       loc_FF8CD03C\n"
 839 "loc_FF8CCE44:\n"
 840 "               B       loc_FF8CD03C\n"
 841 "loc_FF8CCE48:\n"
 842 "               B       loc_FF8CCE9C\n"
 843 "loc_FF8CCE4C:\n"
 844 "               B       loc_FF8CCEA4\n"
 845 "loc_FF8CCE50:\n"
 846 "               B       loc_FF8CCEA4\n"
 847 "loc_FF8CCE54:\n"
 848 "               B       loc_FF8CCEB8\n"
 849 "loc_FF8CCE58:\n"
 850 "               B       loc_FF8CCEB8\n"
 851 "loc_FF8CCE5C:\n"
 852 "               B       loc_FF8CCEC0\n"
 853 "loc_FF8CCE60:\n"
 854 "               B       loc_FF8CCEF8\n"
 855 "loc_FF8CCE64:\n"
 856 "               B       loc_FF8CCFA0\n"
 857 "loc_FF8CCE68:\n"
 858 "               B       loc_FF8CCFD8\n"
 859 "loc_FF8CCE6C:\n"
 860 "               B       loc_FF8CD010\n"
 861 "loc_FF8CCE70:\n"
 862 "               B       loc_FF8CD010\n"
 863 "loc_FF8CCE74:\n"
 864 "               B       loc_FF8CD03C\n"
 865 "loc_FF8CCE78:\n"
 866 "               B       loc_FF8CD03C\n"
 867 "loc_FF8CCE7C:\n"
 868 "               B       loc_FF8CD018\n"
 869 "loc_FF8CCE80:\n"
 870 "               B       loc_FF8CD020\n"
 871 "loc_FF8CCE84:\n"
 872 "               BL      sub_FF8C8D88\n" //__ExpDrv.c__0
 873 "               B       loc_FF8CD03C\n"
 874 "loc_FF8CCE8C:\n"
 875 "               BL      sub_FF8C9078\n"  //__ExpDrv.c__0
 876 "               B       loc_FF8CD03C\n"
 877 "loc_FF8CCE94:\n"
 878 "               BL      sub_FF8C92E0\n"  //__ExpDrv.c__9
 879 "               B       loc_FF8CD03C\n"
 880 "loc_FF8CCE9C:\n"
 881 "               BL      sub_FF8C9594\n"  //__ExpDrv.c__2
 882 "               B       loc_FF8CD03C\n"
 883 "loc_FF8CCEA4:\n"
 884 "               BL      sub_FF8C97AC\n" //__ExpDrv.c__0
 885 "               B       loc_FF8CD03C\n"
 886 "loc_FF8CCEAC:\n"
 887 //"             BL      sub_FF8C9AD0\n"   // the one to override------------------------------
 888 "               BL      sub_FF8C9AD0_my\n"   // first step for apexus
 889                                                         //----------------------->
 890 "               MOV     R4, #0\n"
 891 "               B       loc_FF8CD03C\n"
 892 "loc_FF8CCEB8:\n"
 893 "               BL      sub_FF8C9C18\n"
 894 "               B       loc_FF8CD03C\n"
 895 "loc_FF8CCEC0:\n"
 896 "               LDRH    R1, [R0,#4]\n"
 897 "               STRH    R1, [SP,#0x10]\n"
 898 "               LDRH    R1, [R5,#2]\n"
 899 "               STRH    R1, [SP,#0x12]\n"
 900 "               LDRH    R1, [R5,#4]\n"
 901 "               STRH    R1, [SP,#0x14]\n"
 902 "               LDRH    R1, [R5,#6]\n"
 903 "               STRH    R1, [SP,#0x16]\n"
 904 "               LDRH    R1, [R0,#0xC]\n"
 905 "               STRH    R1, [SP,#0x18]\n"
 906 "               LDRH    R1, [R5,#0xA]\n"
 907 "               STRH    R1, [SP,#0x1A]\n"
 908 "               BL      sub_FF8CDF38\n"
 909 "               B       loc_FF8CD03C\n"
 910 "loc_FF8CCEF8:\n"
 911 "               LDRH    R1, [R0,#4]\n"
 912 "               STRH    R1, [SP,#0x10]\n"
 913 "               LDRH    R1, [R5,#2]\n"
 914 "               STRH    R1, [SP,#0x12]\n"
 915 "               LDRH    R1, [R5,#4]\n"
 916 "               STRH    R1, [SP,#0x14]\n"
 917 "               LDRH    R1, [R5,#6]\n"
 918 "               STRH    R1, [SP,#0x16]\n"
 919 "               LDRH    R1, [R0,#8]\n"
 920 "               STRH    R1, [SP,#0x18]\n"
 921 "               LDRH    R1, [R5,#0xA]\n"
 922 "               STRH    R1, [SP,#0x1A]\n"
 923 "               BL      sub_FF8CE040\n"
 924 "               B       loc_FF8CD03C\n"
 925 
 926 
 927 "loc_FF8CCFA0:\n"
 928 "       LDRH    R1, [R5]\n"
 929 "               STRH    R1, [SP,#0x10]\n"
 930 "               LDRH    R1, [R5,#6]\n"
 931 "               STRH    R1, [SP,#0x12]\n"
 932 "               LDRH    R1, [R5,#4]\n"
 933 "               STRH    R1, [SP,#0x14]\n"
 934 "               LDRH    R1, [R5,#6]\n"
 935 "               STRH    R1, [SP,#0x16]\n"
 936 "               LDRH    R1, [R0,#8]\n"
 937 "               STRH    R1, [SP,#0x18]\n"
 938 "               LDRH    R1, [R5,#0xA]\n"
 939 "               STRH    R1, [SP,#0x1A]\n"
 940 "               BL      sub_FF8CE0F4\n"
 941 "               B       loc_FF8CD03C\n"
 942 "loc_FF8CCFD8:\n"
 943 "       LDRH    R1, [R5]\n"
 944 "               STRH    R1, [SP,#0x10]\n"
 945 "               LDRH    R1, [R5,#2]\n"
 946 "               STRH    R1, [SP,#0x12]\n"
 947 "               LDRH    R1, [R5,#4]\n"
 948 "               STRH    R1, [SP,#0x14]\n"
 949 "               LDRH    R1, [R5,#6]\n"
 950 "               STRH    R1, [SP,#0x16]\n"
 951 "               LDRH    R1, [R0,#0xC]\n"
 952 "               STRH    R1, [SP,#0x18]\n"
 953 "               LDRH    R1, [R5,#0xA]\n"
 954 "               STRH    R1, [SP,#0x1A]\n"
 955 "               BL      sub_FF8CE19C\n"
 956 "               B       loc_FF8CD03C\n"
 957 
 958 "loc_FF8CD010:\n"
 959 "               BL      sub_FF8CA00C\n"
 960 "               B       loc_FF8CD03C\n"
 961 "loc_FF8CD018:\n"
 962 "               BL      sub_FF8CA784\n"
 963 "               B       loc_FF8CD03C\n"
 964 "loc_FF8CD020:\n"
 965 "               BL      sub_FF8CAA20\n"
 966 "               B       loc_FF8CD03C\n"
 967 "loc_FF8CD028:\n"
 968 "               BL      sub_FF8CAC00\n"
 969 "               B       loc_FF8CD03C\n"
 970 "loc_FF8CD030:\n"
 971 "               BL      sub_FF8CADBC\n"
 972 "               B       loc_FF8CD03C\n"
 973 "loc_FF8CD038:\n"
 974 "               BL      sub_FF8CAFB8\n"
 975 "loc_FF8CD03C:\n"
 976 "               LDR     R0, [SP,#0x1C]\n"
 977 "               LDR     R1, [R0,#0x7C]\n"
 978 "               LDR     R3, [R0,#0x8C]\n"
 979 "               LDR     R2, [R0,#0x90]\n"
 980 "               ADD     R0, R0, #4\n"
 981 "               BLX     R3\n"
 982 "               CMP     R4, #1\n"
 983 "               BNE     loc_FF8CD0A4\n"
 984 "loc_FF8CD05C:\n"
 985 "               LDR     R0, [SP,#0x1C]\n"
 986 "               MOV     R2, #0xC\n"
 987 "               LDR     R1, [R0,#0x7C]\n"
 988 "               ADD     R1, R1, R1,LSL#1\n"
 989 "               ADD     R0, R0, R1,LSL#2\n"
 990 "               SUB     R4, R0, #8\n"
 991 "               LDR     R0, =0x58054\n"
 992 "               ADD     R1, SP, #0x10\n"
 993 "               BL      sub_FFB872F4\n"
 994 "               LDR     R0, =0x58060\n"
 995 "               MOV     R2, #0xC\n"
 996 "               ADD     R1, SP, #0x10\n"
 997 "               BL      sub_FFB872F4\n"
 998 "               LDR     R0, =0x5806C\n"
 999 "               MOV     R2, #0xC\n"
1000 "               MOV     R1, R4\n"
1001 "               BL      sub_FFB872F0\n"  //F4 in 100F
1002 "               B       loc_FF8CD120\n"
1003 "loc_FF8CD0A4:\n"
1004 "               LDR     R0, [SP,#0x1C]\n"
1005 "               MOV     R3, #1\n"
1006 "               LDR     R0, [R0]\n"
1007 "               CMP     R0, #0xB\n"
1008 "               BNE     loc_FF8CD0EC\n"
1009 "               MOV     R2, #0\n"
1010 "               STRD    R2, [SP]\n"
1011 "               MOV     R2, #1\n"
1012 "               MOV     R1, #1\n"
1013 "               MOV     R0, #0\n"
1014 "               BL      sub_FF8C8B68\n"
1015 "               MOV     R3, #1\n"
1016 "               MOV     R2, #0\n"
1017 "               STRD    R2, [SP]\n"
1018 "               MOV     R2, #1\n"
1019 "               MOV     R1, #1\n"
1020 "               MOV     R0, #0\n"
1021 "               B       loc_FF8CD11C\n"
1022 "loc_FF8CD0EC:\n"
1023 "               MOV     R2, #1\n"
1024 "               STRD    R2, [SP]\n"
1025 "               MOV     R3, #1\n"
1026 "               MOV     R1, #1\n"
1027 "               MOV     R0, #1\n"
1028 "               BL      sub_FF8C8B68\n"
1029 "               MOV     R3, #1\n"
1030 "               MOV     R2, #1\n"
1031 "               MOV     R1, #1\n"
1032 "               MOV     R0, #1\n"
1033 "               STR     R3, [SP]\n"
1034 "               STR     R3, [SP,#4]\n"
1035 "loc_FF8CD11C:\n"
1036 "               BL      sub_FF8C8CD0\n"
1037 "loc_FF8CD120:\n"
1038 "               LDR     R0, [SP,#0x1C]\n"
1039 "               BL      sub_FF8CDE38\n"
1040 "               B       loc_FF8CCAA8\n"
1041                                         );
1042 }
1043 
1044 void __attribute__((naked,noinline)) sub_FF8C9AD0_my() {
1045         asm volatile (
1046 "               STMFD   SP!, {R4-R8,LR}\n"
1047 "               LDR     R7, =0x4C6C\n"
1048 "               MOV     R4, R0\n"
1049 "               LDR     R0, [R7,#0x1C]\n"
1050 "               MOV     R1, #0x3E\n"
1051 "               BL      sub_FF88DBC0\n"
1052 "               LDRSH   R0, [R4,#4]\n"
1053 "               MOV     R2, #0\n"
1054 "               MOV     R1, #0\n"
1055 "               BL      sub_FF8C88CC\n"
1056 "               MOV     R5, R0\n"
1057 "               LDRSH   R0, [R4,#6]\n"
1058 "               BL      sub_FF8C89DC\n"
1059 "               LDRSH   R0, [R4,#8]\n"
1060 "               BL      sub_FF8C8A34\n"
1061 "               LDRSH   R0, [R4,#0xA]\n"
1062 "               BL      sub_FF8C8A8C\n"
1063 "               LDRSH   R0, [R4,#0xC]\n"
1064 "               MOV     R1, #0\n"
1065 "               BL      sub_FF8C8AE4\n"
1066 "               MOV     R6, R0\n"
1067 "               LDRSH   R0, [R4,#0xE]\n"
1068 "               BL      sub_FF8CDED8\n"
1069 "               LDR     R0, [R4]\n"
1070 "               LDR     R8, =0x5806C\n"
1071 "               CMP     R0, #0xB\n"
1072 "               MOVEQ   R5, #0\n"
1073 "               MOVEQ   R6, #0\n"
1074 "               BEQ     loc_FF8C9B6C\n"
1075 "               CMP     R5, #1\n"
1076 "               BNE     loc_FF8C9B6C\n"
1077 "               LDRSH   R0, [R4,#4]\n"
1078 "               LDR     R1, =0xFF8C8838\n"
1079 "               MOV     R2, #2\n"
1080 "               BL      sub_FF974780\n"  //__IrisController.c__190 ; LOCATION: IrisController.c:190
1081 "               STRH    R0, [R4,#4]\n"
1082 "               MOV     R0, #0\n"
1083 "               STR     R0, [R7,#0x28]\n"
1084 "               B       loc_FF8C9B74\n"
1085 "loc_FF8C9B6C:\n"
1086 "               LDRH    R0, [R8]\n"
1087 "               STRH    R0, [R4,#4]\n"
1088 "loc_FF8C9B74:\n"
1089 "               CMP     R6, #1\n"
1090 "               LDRNEH  R0, [R8,#8]\n"
1091 "               BNE     loc_FF8C9B90\n"
1092 "               LDRSH   R0, [R4,#0xC]\n"
1093 "               LDR     R1, =0xFF8C88BC\n"
1094 "               MOV     R2, #0x20\n"
1095 "               BL      sub_FF8CDEF4\n"
1096 "loc_FF8C9B90:\n"
1097 "               STRH    R0, [R4,#0xC]\n"
1098 "               LDRSH   R0, [R4,#6]\n"
1099 //"             BL      sub_FF8BA3A4\n"  // last step __Shutter.c__0 ; LOCATION:        Shutter.c:0
1100 "               BL      sub_FF8BA3A4_my\n"
1101                 //------------------------>
1102 "B      sub_FF8C9B9C\n" // Continue function in firmware
1103 
1104 /*
1105 "               LDRSH   R0, [R4,#8]\n"
1106 "               MOV     R1, #1\n"
1107 "               BL      _sub_FF8BAB04__ImgGain.c__0 ; LOCATION: ImgGain.c:0\n"
1108 "               MOV     R1, #0\n"
1109 "               ADD     R0, R4, #8\n"
1110 "               BL      _sub_FF8BAB8C__ImgGain.c__352 ; LOCATION: ImgGain.c:352\n"
1111 "               LDRSH   R0, [R4,#0xE]\n"
1112 "               BL      _sub_FF8C37D0__BrtCrct.c__0 ; LOCATION: BrtCrct.c:0\n"
1113 "               LDR     R4, =0xBB8\n"
1114 "               CMP     R5, #1\n"
1115 "               BNE     loc_FF8C9BE8\n"
1116 "               LDR     R0, [R7,#0x1C]\n"
1117 "               MOV     R2, R4\n"
1118 "               MOV     R1, #2\n"
1119 "               BL      _sub_FF88DACC__KerFlag.c__0 ; LOCATION: KerFlag.c:0\n"
1120 "               TST     R0, #1\n"
1121 "               LDRNE   R1, =0x61E\n"
1122 "               ADRNE   R0, aExpdrv_c   ; "ExpDrv.c"\n"
1123 "               BLNE    DebugAssert\n"
1124 "\n"
1125 "loc_FF8C9BE8                           ; CODE XREF: _sub_FF8C9AD0__ExpDrv.c__2+F4j\n"
1126 "               CMP     R6, #1\n"
1127 "               LDMNEFD SP!, {R4-R8,PC}\n"
1128 "               LDR     R0, [R7,#0x1C]\n"
1129 "               MOV     R2, R4\n"
1130 "               MOV     R1, #0x20\n"
1131 "               BL      _sub_FF88DACC__KerFlag.c__0 ; LOCATION: KerFlag.c:0\n"
1132 "               TST     R0, #1\n"
1133 "               LDRNE   R1, =0x623\n"
1134 "               LDRNE   R0, =aExpdrv_c\n"
1135 "               LDMNEFD SP!, {R4-R8,LR}\n"
1136 "               BNE     DebugAssert\n"
1137 "               LDMFD   SP!, {R4-R8,PC}\n"
1138 */
1139 
1140                                 );
1141 }
1142 
1143 
1144 
1145 void __attribute__((naked,noinline)) sub_FF8BA3A4_my() {
1146         asm volatile (
1147 "               STMFD   SP!, {R4-R6,LR}\n"
1148 "               LDR     R5, =0x4934\n"
1149 "               MOV     R4, R0\n"
1150 "               LDR     R0, [R5,#4]\n"
1151 "               CMP     R0, #1\n"
1152 "               LDRNE   R1, =0x146\n"
1153 "               LDRNE   R0, =0xFF8BA1A8\n"  //  Shutter.c
1154 "               BLNE    sub_FF81EB78\n"  //DebugAssert
1155 "               CMN     R4, #0xC00\n"
1156 "               LDREQSH R4, [R5,#2]\n"
1157 "               CMN     R4, #0xC00\n"
1158 "               MOVEQ   R1, #0x14C\n"
1159 "               LDREQ   R0, =0xFF8BA1A8\n"  //  Shutter.c
1160 "               STRH    R4, [R5,#2]\n"
1161 "               BLEQ    sub_FF81EB78\n"  //DebugAssert
1162 "               MOV     R0, R4\n"
1163 "               BL      apex2us\n"  //++
1164 "               MOV     R4, R0\n"
1165 "               BL      sub_FF90667C\n"  //nullsub_68
1166 "               MOV     R0, R4\n"
1167 "               BL      sub_FF910AF8\n"
1168 "               TST     R0, #1\n"
1169 "               LDRNE   R1, =0x151\n"
1170 "               LDMNEFD SP!, {R4-R6,LR}\n"
1171 "               LDRNE   R0, =0xFF8BA1A8\n"  //  Shutter.c
1172 "               BNE     sub_FF81EB78\n"  //DebugAssert
1173 "               LDMFD   SP!, {R4-R6,PC}\n"
1174 
1175                                 );
1176 }

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