root/platform/a430/sub/100b/capt_seq.c

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

DEFINITIONS

This source file includes following definitions.
  1. sub_FFD2C9B8_my
  2. sub_FFD297A4_my
  3. capt_seq_task
  4. exp_drv_task
  5. sub_FFCDD298_my
  6. sub_FFC95E50_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 
   5 static long *nrflag = (long*)0x60E8;
   6 
   7 #include "../../../generic/capt_seq.c"
   8 //please note: comments ending in question marks contain the original authors' work
   9 //since most of these functions is copied from the original fw, I corrected parts of the code,
  10 //where (in my opinion) it shouldn't differ from the original - srsa_4c
  11 
  12 void __attribute__((naked,noinline)) sub_FFD2C9B8_my(long p)
  13 {
  14   (void)p;
  15   asm volatile (
  16               "STMFD   SP!, {R4-R6,LR}\n"
  17               "LDR     R3, =0x72BAC\n"
  18               "LDR     R5, =0x60E4\n"
  19               "SUB     SP, SP, #4\n"
  20               "LDR     R1, =0xFFFFFFFF\n"
  21               "STR     R0, [R5]\n"
  22               "LDR     R0, [R3]\n"
  23               "BL      sub_FFC0FB48\n"
  24               "LDR     R3, =0x9CFE0\n"
  25               "LDR     R0, [R3,#0x74]\n"
  26               "BL      sub_FFC8ABE4\n"
  27               "BL      sub_FFD2C938\n"
  28              
  29               "LDR     R3, =0x60EC\n"
  30               "LDR     R0, [R3]\n"
  31               "BL      sub_FFC8B090\n"
  32             "BL      wait_until_remote_button_is_released\n" // +
  33               "BL      capt_seq_hook_set_nr\n" // +
  34               "B       sub_FFD2C9F4\n" //jump to the rest
  35   );
  36 }
  37 
  38 void __attribute__((naked,noinline)) sub_FFD297A4_my(long p)
  39 {
  40   (void)p;
  41   asm volatile (
  42               "STMFD   SP!, {R4,LR}\n"
  43               "LDR     R4, [R0,#0xC]\n"
  44               "BL      sub_FFD32564\n"
  45               "CMP     R0, #0\n"
  46               "BNE     loc_FFD297BC\n"
  47               "BL      sub_FFD32570\n"
  48     "loc_FFD297BC:\n"
  49               "MOV     R0, #0xC\n"
  50               "BL      sub_FFD32584\n"
  51               "TST     R0, #1\n"
  52               "MOV     R2, R4\n"
  53               "MOV     R0, R4\n"
  54               "BEQ     loc_FFD297E4\n"
  55               "MOV     R0, #1\n"
  56               "MOV     R1, R0\n"
  57               "LDMFD   SP!, {R4,LR}\n"
  58               "B       sub_FFD27D20\n"
  59     "loc_FFD297E4:\n"
  60               "BL      sub_FFD2B80C\n"
  61               "TST     R0, #1\n"
  62               "MOV     R2, R4\n"
  63               "MOV     R1, #1\n"
  64               "BEQ     loc_FFD29800\n"
  65               "LDMFD   SP!, {R4,LR}\n"
  66               "B       sub_FFD27D20\n"
  67     "loc_FFD29800:\n"
  68               "BL      sub_FFD67F90\n"
  69               "BL      sub_FFC14714\n"
  70               "LDR     R2, =0x9CF24\n"
  71               "ADD     R3, R4, R4,LSL#1\n"
  72               "STR     R0, [R2,R3,LSL#5]\n"
  73               "MOV     R0, R4\n"
  74               "BL      sub_FFD2D120\n"
  75               "BL      sub_FFD2BD10\n"
  76               "BL      sub_FFD2BCAC\n"
  77               "MOV     R0, R4\n"
  78 
  79               "BL      sub_FFD2C9B8_my\n"
  80               "BL      capt_seq_hook_raw_here\n"  // +
  81 
  82              // "BL      sub_FFD483A4\n"
  83 
  84               "MOV     R2, R4\n"
  85               "MOV     R1, #1\n"
  86               "BL      sub_FFD27D20\n"
  87               "LDMFD   SP!, {R4,LR}\n"
  88               "B       sub_FFD2CBAC\n"
  89   );
  90 }
  91 
  92 void __attribute__((naked,noinline)) capt_seq_task()    //IDA task_CaptSeqTask
  93 {
  94   asm volatile (
  95           "STMFD   SP!, {R4,LR}\n"
  96           "SUB     SP, SP, #4\n"
  97           "MOV     R4, SP\n"
  98           "B       loc_FFD29CE4\n"
  99     "loc_FFD29B9C:\n"
 100           "LDR     R2, [SP,#0xC-0xC]\n"
 101           "LDR     R3, [R2]\n"
 102           "MOV     R0, R2\n"
 103           "CMP     R3, #0x14\n"
 104           "LDRLS   PC, [PC,R3,LSL#2]\n"
 105           "B       loc_FFD29CB8\n"
 106           ".long loc_FFD29C08\n"
 107           ".long loc_FFD29C14\n"
 108           ".long loc_FFD29C1C\n"
 109           ".long loc_FFD29C2C\n"
 110           ".long loc_FFD29C24\n"
 111           ".long loc_FFD29C34\n"
 112           ".long loc_FFD29C3C\n"
 113           ".long loc_FFD29C48\n"
 114           ".long loc_FFD29C50\n"
 115           ".long loc_FFD29C5C\n"
 116           ".long loc_FFD29C64\n"
 117           ".long loc_FFD29C6C\n"
 118           ".long loc_FFD29C74\n"
 119           ".long loc_FFD29C7C\n"
 120           ".long loc_FFD29C84\n"
 121           ".long loc_FFD29C90\n"
 122           ".long loc_FFD29C98\n"
 123           ".long loc_FFD29CA0\n"
 124           ".long loc_FFD29CA8\n"
 125           ".long loc_FFD29CB0\n"
 126           ".long loc_FFD29CCC\n"
 127     "loc_FFD29C08:\n"
 128           "BL      sub_FFD2B47C\n"
 129           "BL      shooting_expo_param_override\n"   // +
 130         //  "BL  handle_is_off\n"
 131           "BL      sub_FFD278D0\n"
 132           "B       loc_FFD29CC8\n"
 133     "loc_FFD29C14:\n"
 134                         //"BL      sub_FFD45048\n"
 135           "BL      sub_FFD297A4_my\n"
 136                                         "B       loc_FFD29CC8\n"
 137     "loc_FFD29C1C:\n"
 138           "BL      sub_FFD2B7FC\n"
 139           "B       loc_FFD29CC8\n"
 140     "loc_FFD29C24:\n"
 141           "BL      sub_FFD2A6F4\n"
 142           "B       loc_FFD29CC8\n"
 143     "loc_FFD29C2C:\n" //shooting but. rel.
 144           "BL      sub_FFD2AB10\n"
 145        //   "BL  handle_is_on\n"            //+
 146           "B       loc_FFD29CC8\n"
 147     "loc_FFD29C34:\n"
 148           "BL      sub_FFD2AB20\n"
 149           "B       loc_FFD29CC8\n"
 150     "loc_FFD29C3C:\n"
 151           "BL      sub_FFD2B548\n"
 152           "BL      sub_FFD278D0\n"
 153           "B       loc_FFD29CC8\n"
 154     "loc_FFD29C48:\n"
 155           "BL      sub_FFD298B0\n"
 156           "B       loc_FFD29CC8\n"
 157     "loc_FFD29C50:\n"
 158           "BL      sub_FFD2B5B0\n"
 159           "BL      sub_FFD278D0\n"
 160           "B       loc_FFD29CC8\n"
 161     "loc_FFD29C5C:\n"
 162           "BL      sub_FFD2AB10\n"
 163           "B       loc_FFD29CC8\n"
 164     "loc_FFD29C64:\n"
 165           "BL      sub_FFD2BD50\n"
 166           "B       loc_FFD29CC8\n"
 167     "loc_FFD29C6C:\n"
 168           "BL      sub_FFD2C06C\n"
 169           "B       loc_FFD29CC8\n"
 170     "loc_FFD29C74:\n"
 171           "BL      sub_FFD2C0F4\n"
 172           "B       loc_FFD29CC8\n"
 173     "loc_FFD29C7C:\n"
 174           "BL      sub_FFD2C1BC\n"
 175           "B       loc_FFD29CC8\n"
 176     "loc_FFD29C84:\n"
 177           "MOV     R0, #0\n"
 178           "BL      sub_FFD2C274\n"
 179           "B       loc_FFD29CC8\n"
 180     "loc_FFD29C90:\n"
 181           "BL      sub_FFD2C3CC\n"
 182           "B       loc_FFD29CC8\n"
 183     "loc_FFD29C98:\n"
 184           "BL      sub_FFD2C464\n"
 185           "B       loc_FFD29CC8\n"
 186     "loc_FFD29CA0:\n"
 187           "BL      sub_FFD2C520\n"
 188           "B       loc_FFD29CC8\n"
 189     "loc_FFD29CA8:\n"
 190           "BL      sub_FFD2C608\n"
 191           "B       loc_FFD29CC8\n"
 192     "loc_FFD29CB0:\n"
 193           "BL      sub_FFD2C65C\n"
 194           "B       loc_FFD29CC8\n"
 195     "loc_FFD29CB8:\n"
 196           "MOV     R1, #0x330\n"
 197           "LDR     R0, =0xFFD29530\n"
 198           "ADD     R1, R1, #1\n"
 199           "BL      sub_FFC03AEC\n"
 200     "loc_FFD29CC8:\n"
 201           "LDR     R2, [SP,#0xC-0xC]\n"
 202     "loc_FFD29CCC:\n"
 203           "LDR     R3, =0x72B34\n"
 204           "LDR     R1, [R2,#4]\n"
 205           "LDR     R0, [R3]\n"
 206           "BL      sub_FFC0F9AC\n"
 207           "LDR     R0, [SP,#0xC-0xC]\n"
 208           "BL      sub_FFD295AC\n"
 209     "loc_FFD29CE4:\n"
 210           "LDR     R3, =0x72B38\n"
 211           "MOV     R1, R4\n"
 212           "LDR     R0, [R3]\n"
 213           "MOV     R2, #0\n"
 214           "BL      sub_FFC100C4\n"
 215           "TST     R0, #1\n"
 216           "BEQ     loc_FFD29B9C\n"
 217           "MOV     R1, #0x28C\n"
 218           "LDR     R0, =0xFFD29530\n" // =0xffd2952c ?
 219           "ADD     R1, R1, #2\n" // #3 ?
 220           "BL      sub_FFC03AEC\n"
 221           "BL      sub_FFC11620\n" // ExitTask
 222           "ADD     SP, SP, #4\n"
 223           "LDMFD   SP!, {R4,PC}\n"
 224   );
 225 }
 226 
 227 void __attribute__((naked,noinline)) exp_drv_task(){
 228  asm volatile(
 229 "                STMFD   SP!, {R4-R8,LR}\n"
 230 "                SUB     SP, SP, #0x14\n"
 231 "                MOV     R7, SP\n"
 232 "                B       loc_FFCDEDEC\n"
 233 "loc_FFCDEA08:\n"
 234 "                CMP     R2, #0x1E\n"
 235 "                BNE     loc_FFCDEA20\n"
 236 "                LDR     R0, [R12,#0x34]\n"
 237 "                MOV     LR, PC\n"
 238 "                LDR     PC, [R12,#0x30]\n"
 239 "                B       loc_FFCDEA80\n"
 240 "loc_FFCDEA20:\n"
 241 "                CMP     R2, #0x19\n"
 242 "                BNE     loc_FFCDEA34\n"
 243 "                MOV     R0, R12\n"
 244 "                BL      sub_FFCDE928\n"
 245 "                B       loc_FFCDEA70\n"
 246 "loc_FFCDEA34:\n"
 247 "                CMP     R2, #0x1A\n"
 248 "                BNE     loc_FFCDEA48\n"
 249 "                MOV     R0, R12\n"
 250 "                BL      sub_FFCDE964\n"
 251 "                B       loc_FFCDEA70\n"
 252 "loc_FFCDEA48:\n"
 253 "                SUB     R3, R2, #0x1B\n"
 254 "                CMP     R3, #1\n"
 255 "                BHI     loc_FFCDEA60\n"
 256 "                MOV     R0, R12\n"
 257 "                BL      sub_FFCDE9A0\n"
 258 "                B       loc_FFCDEA70\n"
 259 "loc_FFCDEA60:\n"
 260 "                CMP     R2, #0x1D\n"
 261 "                BNE     loc_FFCDEA8C\n"
 262 "                BL      sub_FFC961C8\n" //Shutter.c:372
 263 "                BL      sub_FFC97FB8\n" //ImgGain.c:436
 264 "loc_FFCDEA70:\n"
 265 "                LDR     R3, [SP]\n"
 266 "                LDR     R0, [R3,#0x34]\n"
 267 "                MOV     LR, PC\n"
 268 "                LDR     PC, [R3,#0x30]\n"
 269 "loc_FFCDEA80:\n"
 270 "                LDR     R0, [SP]\n"
 271 "                BL      sub_FFCDC724\n"
 272 "                B       loc_FFCDEDEC\n"
 273 "loc_FFCDEA8C:\n"
 274 "                CMP     R2, #0xD\n"
 275 "                MOV     R8, #1\n"
 276 "                BNE     loc_FFCDEAFC\n"
 277 "                LDR     R1, [R12,#0x24]\n"
 278 "                ADD     R1, R1, R1,LSL#1\n"
 279 "                ADD     R1, R12, R1,LSL#1\n"
 280 "                ADD     R6, SP, #0xC\n"
 281 "                SUB     R1, R1, #2\n"
 282 "                MOV     R2, #6\n"
 283 "                MOV     R0, R6\n"
 284 "                BL      _memcpy\n"
 285 "                LDR     R0, [SP]\n"
 286 "                BL      sub_FFCDDBB8\n"
 287 "                LDR     R3, [SP]\n"
 288 "                LDR     R1, [R3,#0x24]\n"
 289 "                LDR     R2, [R3,#0x34]\n"
 290 "                ADD     R0, R3, #4\n"
 291 "                MOV     LR, PC\n"
 292 "                LDR     PC, [R3,#0x30]\n"
 293 "                LDR     R0, [SP]\n"
 294 "                BL      sub_FFCDDD3C\n"
 295 "                LDR     R3, [SP]\n"
 296 "                ADD     R0, R3, #4\n"
 297 "                LDR     R1, [R3,#0x24]\n"
 298 "                LDR     R2, [R3,#0x3C]\n"
 299 "                MOV     LR, PC\n"
 300 "                LDR     PC, [R3,#0x38]\n"
 301 "                B       loc_FFCDED9C\n"
 302 "loc_FFCDEAFC:\n"
 303 "                SUB     R3, R2, #0xE\n"
 304 "                CMP     R3, #1\n"
 305 "                BHI     loc_FFCDEBB8\n"
 306 "                ADD     R6, SP, #0xC\n"
 307 "                ADD     R5, SP, #4\n"
 308 "                MOV     R0, R12\n"
 309 "                MOV     R1, R6\n"
 310 "                MOV     R2, R5\n"
 311 "                BL      sub_FFCDDDB8\n"
 312 "                MOV     R4, R0\n"
 313 "                CMP     R4, #5\n"
 314 "                CMPNE   R4, #1\n"
 315 "                BNE     loc_FFCDEB50\n"
 316 "                LDR     R12, [SP]\n"
 317 "                MOV     R0, R5\n"
 318 "                LDR     R1, [R12,#0x24]\n" //0x40 ?
 319 "                MOV     R2, R4\n"
 320 "                LDR     R3, [R12,#0x34]\n" //0x50 ?
 321 "                MOV     LR, PC\n"
 322 "                LDR     PC, [R12,#0x30]\n" //0x4C ?
 323 "                B       loc_FFCDEB88\n"
 324 "loc_FFCDEB50:\n"
 325 "                CMP     R4, #6\n"
 326 "                CMPNE   R4, #2\n"
 327 "                BNE     loc_FFCDEB98\n"
 328 "                LDR     R12, [SP]\n"
 329 "                MOV     R0, R5\n"
 330 "                MOV     R1, R8\n"
 331 "                MOV     R2, R4\n"
 332 "                LDR     R3, [R12,#0x34]\n"
 333 "                MOV     LR, PC\n"
 334 "                LDR     PC, [R12,#0x30]\n"
 335 "                MOV     R1, R6\n"
 336 "                LDR     R0, [SP]\n"
 337 "                MOV     R2, R5\n"
 338 "                BL      sub_FFCDE764\n"
 339 "loc_FFCDEB88:\n"
 340 "                MOV     R1, R4\n"
 341 "                LDR     R0, [SP]\n"
 342 "                BL      sub_FFCDE908\n"
 343 "                B       loc_FFCDED9C\n"
 344 "loc_FFCDEB98:\n"
 345 "                LDR     R12, [SP]\n"
 346 "                MOV     R2, R4\n"
 347 "                ADD     R0, R12, #4\n"
 348 "                LDR     R1, [R12,#0x24]\n" //0x40 ?
 349 "                LDR     R3, [R12,#0x34]\n" //0x50 ?
 350 "                MOV     LR, PC\n"
 351 "                LDR     PC, [R12,#0x30]\n" //0x4c ?
 352 "                B       loc_FFCDED9C\n"
 353 "loc_FFCDEBB8:\n"
 354 "                CMP     R2, #0x17\n" //SUB     R3, R2, #0x17 ?
 355 "                BNE     loc_FFCDEC0C\n" //BHI     loc_FFCDEC0C ?
 356 "                LDR     R1, [R12,#0x24]\n"
 357 "                ADD     R1, R1, R1,LSL#1\n"
 358 "                ADD     R1, R12, R1,LSL#1\n"
 359 "                ADD     R6, SP, #0xC\n"
 360 "                SUB     R1, R1, #2\n"
 361 "                MOV     R2, #6\n"
 362 "                MOV     R0, R6\n"
 363 "                BL      _memcpy\n"
 364 "                LDR     R0, [SP]\n"
 365 "                BL      sub_FFCDD6EC\n"
 366 "                LDR     R3, [SP]\n"
 367 "                ADD     R0, R3, #4\n"
 368 "                LDR     R1, [R3,#0x24]\n"
 369 "                LDR     R2, [R3,#0x34]\n"
 370 "                MOV     LR, PC\n"
 371 "                LDR     PC, [R3,#0x30]\n" //0x4c ?
 372 "                LDR     R0, [SP]\n"
 373 "                BL      sub_FFCDD8BC\n"
 374 "                B       loc_FFCDED9C\n"
 375 "loc_FFCDEC0C:\n"
 376 "                ADD     R6, SP, #0xC\n"
 377 "                ADD     R1, R12, #4\n"
 378 "                MOV     R2, #6\n"
 379 "                MOV     R0, R6\n"
 380 "                BL      _memcpy\n"
 381 "                LDR     R12, [SP]\n"
 382 "                LDR     R3, [R12]\n"
 383 "                MOV     R2, R12\n"
 384 "                CMP     R3, #0x18\n"
 385 "                LDRLS   PC, [PC,R3,LSL#2]\n"
 386 "                B       loc_FFCDED88\n"
 387 "                .long loc_FFCDEC9C\n"
 388 "                .long loc_FFCDECA8\n"
 389 "                .long loc_FFCDECB4\n"
 390 "                .long loc_FFCDECB4\n"
 391 "                .long loc_FFCDEC9C\n"
 392 "                .long loc_FFCDECA8\n"
 393 "                .long loc_FFCDECB4\n"
 394 "                .long loc_FFCDECB4\n"
 395 "                .long loc_FFCDECD8\n"
 396 "                .long loc_FFCDECD8\n"
 397 "                .long loc_FFCDED5C\n"
 398 "                .long loc_FFCDED68\n"
 399 "                .long loc_FFCDED78\n"
 400 "                .long loc_FFCDED88\n"
 401 "                .long loc_FFCDED88\n"
 402 "                .long loc_FFCDED88\n"
 403 "                .long loc_FFCDECC0\n"
 404 "                .long loc_FFCDECCC\n"
 405 "                .long loc_FFCDECE8\n"
 406 "                .long loc_FFCDECF4\n"
 407 "                .long loc_FFCDED1C\n"
 408 "                .long loc_FFCDED44\n"
 409 "                .long loc_FFCDED44\n"
 410 "                .long loc_FFCDED88\n"
 411 "                .long loc_FFCDED50\n"
 412 "loc_FFCDEC9C:\n"
 413 "                MOV     R0, R2\n"
 414 "                BL      sub_FFCDCC8C\n"
 415 "                B       loc_FFCDED84\n"
 416 "loc_FFCDECA8:\n"
 417 "                MOV     R0, R2\n"
 418 "                BL      sub_FFCDCDC8\n"
 419 "                B       loc_FFCDED84\n"
 420 "loc_FFCDECB4:\n"
 421 "                MOV     R0, R2\n"
 422 "                BL      sub_FFCDCEF8\n"
 423 "                B       loc_FFCDED84\n"
 424 "loc_FFCDECC0:\n"
 425 "                MOV     R0, R2\n"
 426 "                BL      sub_FFCDD0CC\n"
 427 "                B       loc_FFCDED84\n"
 428 "loc_FFCDECCC:\n"
 429 "                MOV     R0, R2\n"
 430 "                BL      sub_FFCDD1D4\n"
 431 "                B       loc_FFCDED84\n"
 432 "loc_FFCDECD8:\n"
 433 "                MOV     R0, R2\n"
 434 //"                BL      sub_FFCF29DC\n" // ->
 435 "                BL      sub_FFCDD298_my\n" // ->
 436 "                MOV     R8, #0\n"
 437 "                B       loc_FFCDED84\n"
 438 "loc_FFCDECE8:\n"
 439 "                MOV     R0, R2\n"
 440 "                BL      sub_FFCDD358\n"
 441 "                B       loc_FFCDED84\n"
 442 "loc_FFCDECF4:\n"
 443 "                MOV     R0, R2\n"
 444 "                LDRH    R2, [R2,#4]\n"
 445 "                LDR     R3, =0x4E220\n"
 446 "                STRH    R2, [SP,#0xC]\n"
 447 "                LDRH    R1, [R3,#4]\n"
 448 "                STRH    R1, [SP,#0x10]\n"
 449 "                LDRH    R3, [R3,#2]\n"
 450 "                STRH    R3, [SP,#0xE]\n"
 451 "                BL      sub_FFCDD4E0\n"
 452 "                B       loc_FFCDED84\n"
 453 "loc_FFCDED1C:\n"
 454 "                LDR     R3, =0x4E220\n"
 455 "                LDRH    R1, [R3]\n"
 456 "                STRH    R1, [SP,#0xC]\n"
 457 "                MOV     R0, R2\n"
 458 "                LDRH    R2, [R2,#6]\n"
 459 "                STRH    R2, [SP,#0xE]\n"
 460 "                LDRH    R3, [R3,#4]\n"
 461 "                STRH    R3, [SP,#0x10]\n"
 462 "                BL      sub_FFCDD574\n"
 463 "                B       loc_FFCDED84\n"
 464 "loc_FFCDED44:\n"
 465 "                MOV     R0, R2\n"
 466 "                BL      sub_FFCDD5F4\n"
 467 "                B       loc_FFCDED84\n"
 468 "loc_FFCDED50:\n"
 469 "                MOV     R0, R2\n"
 470 "                BL      sub_FFCDD94C\n"
 471 "                B       loc_FFCDED84\n"
 472 "loc_FFCDED5C:\n"
 473 "                MOV     R0, R2\n"
 474 "                BL      sub_FFCDDA20\n"
 475 "                B       loc_FFCDED84\n"
 476 "loc_FFCDED68:\n"
 477 "                MOV     R0, R2\n"
 478 "                MOV     R1, #0\n"
 479 "                BL      sub_FFCDDB0C\n"
 480 "                B       loc_FFCDED84\n"
 481 "loc_FFCDED78:\n"
 482 "                MOV     R0, R2\n"
 483 "                MOV     R1, #1\n"
 484 "                BL      sub_FFCDDB0C\n"
 485 "loc_FFCDED84:\n"
 486 "                LDR     R12, [SP]\n"
 487 "loc_FFCDED88:\n"
 488 "                ADD     R0, R12, #4\n"
 489 "                LDR     R1, [R12,#0x24]\n"
 490 "                LDR     R2, [R12,#0x34]\n"
 491 "                MOV     LR, PC\n"
 492 "                LDR     PC, [R12,#0x30]\n"
 493 "loc_FFCDED9C:\n"
 494 "                CMP     R8, #1\n"
 495 "                BNE     loc_FFCDEDC4\n"
 496 "                LDR     R1, [SP]\n"
 497 "                LDR     R3, [R1,#0x24]\n"
 498 "                ADD     R3, R3, R3,LSL#1\n"
 499 "                ADD     R1, R1, R3,LSL#1\n"
 500 "                MOV     R0, R6\n"
 501 "                SUB     R1, R1, #2\n"
 502 "                BL      sub_FFCDCAF4\n"
 503 "                B       loc_FFCDEDE4\n"
 504 "loc_FFCDEDC4:\n"
 505 "                MOV     R0, #1\n"
 506 "                MOV     R1, R0\n"
 507 "                MOV     R2, R0\n"
 508 "                BL      sub_FFCDCA98\n"
 509 "                MOV     R0, #1\n"
 510 "                MOV     R1, R0\n"
 511 "                MOV     R2, R0\n"
 512 "                BL      sub_FFCDCBB4\n"
 513 "loc_FFCDEDE4:\n"
 514 "                LDR     R0, [SP]\n"
 515 "                BL      sub_FFCDC724\n"
 516 "loc_FFCDEDEC:\n"
 517 "                LDR     R3, =0x4E218\n"
 518 "                MOV     R2, #0\n"
 519 "                LDR     R0, [R3]\n"
 520 "                MOV     R1, R7\n"
 521 "                BL      sub_FFC100C4\n" //ReceiveMessageQueue
 522 "                LDR     R12, [SP]\n"
 523 "                LDR     R2, [R12]\n"
 524 "                CMP     R2, #0x1F\n" //0x20 ?
 525 "                BNE     loc_FFCDEA08\n"
 526 "                MOV     R0, R12\n"
 527 "                BL      sub_FFCDC724\n"
 528 "                LDR     R3, =0x4E214\n"
 529 "                MOV     R1, #1\n"
 530 "                LDR     R0, [R3]\n"
 531 "                BL      sub_FFC0F9AC\n"// SetEventFlag
 532 "                BL      _ExitTask\n"
 533 "                ADD     SP, SP, #0x14\n"
 534 "                LDMFD   SP!, {R4-R8,PC}\n"
 535  );
 536 }
 537 void __attribute__((naked,noinline)) sub_FFCDD298_my(){
 538  asm volatile(
 539 "                STMFD   SP!, {R4,R5,LR}\n"
 540 "                LDR     R3, =0x4E214\n"
 541 "                MOV     R4, R0\n"
 542 "                MOV     R1, #0xE\n"
 543 "                LDR     R0, [R3]\n"
 544 "                BL      sub_FFC0FB48\n" //ClearEventFlag
 545 "                MOV     R1, #0\n"
 546 "                LDRSH   R0, [R4,#4]\n"
 547 "                BL      sub_FFCDC800\n"
 548 "                MOV     R5, R0\n"
 549 "                LDRSH   R0, [R4,#6]\n"
 550 "                BL      sub_FFCDC930\n"
 551 "                LDRSH   R0, [R4,#8]\n"
 552 "                BL      sub_FFCDC9CC\n"
 553 "                LDR     R3, [R4]\n"
 554 "                CMP     R3, #9\n"
 555 "                MOVEQ   R5, #0\n"
 556 "                CMP     R5, #1\n"
 557 "                LDR     R1, =0xFFCDC758\n"
 558 "                MOV     R2, #2\n"
 559 "                BNE     loc_FFCDD304\n"
 560 "                LDRSH   R0, [R4,#4]\n"
 561 "                BL      sub_FFE52F6C\n" //IrisController.c:178
 562 "                LDR     R2, =0x4E240\n"
 563 "                MOV     R3, #0\n"
 564 "                STR     R3, [R2]\n"
 565 "                B       loc_FFCDD308\n"
 566 "loc_FFCDD304:\n"
 567 "                BL      sub_FFCDCA68\n"
 568 "loc_FFCDD308:\n"
 569 "                STRH    R0, [R4,#4]\n"
 570 "                LDRSH   R0, [R4,#6]\n"
 571 "                BL      sub_FFC95E50_my\n" //Shutter.c:276 ->
 572 "                LDRSH   R0, [R4,#8]\n"
 573 "                MOV     R1, #1\n"
 574 "                BL      sub_FFC97B78\n" //ImgGain.c:292
 575 "                MOV     R1, #0\n"
 576 "                ADD     R0, R4, #8\n"
 577 "                BL      sub_FFC97C38\n" //ImgGain.c:316
 578 "                CMP     R5, #1\n"
 579 "                MOV     R1, #2\n"
 580 "                MOV     R2, #0\n"
 581 "                LDMNEFD SP!, {R4,R5,PC}\n"
 582 "                LDR     R3, =0x4E214\n"
 583 "                LDR     R0, [R3]\n"
 584 "                LDMFD   SP!, {R4,R5,LR}\n"
 585 "                B       sub_FFC0F99C\n"
 586  );
 587 }
 588 void __attribute__((naked,noinline)) sub_FFC95E50_my() { // __Shutter_c__276
 589  asm volatile(
 590 "                STMFD   SP!, {R4,LR}\n"
 591 "                LDR     R3, =0x52FC\n"
 592 "                LDR     R2, [R3]\n"
 593 "                MOV     R1, #0x114\n"
 594 "                MOV     R3, R0,LSL#16\n"
 595 "                CMP     R2, #1\n"
 596 "                ADD     R1, R1, #1\n"
 597 "                LDR     R0, =0xFFC958CC\n" // "Shutter.c"
 598 "                MOV     R4, R3,ASR#16\n"
 599 "                BEQ     loc_FFC95E7C\n"
 600 "                BL      sub_FFC03AEC\n" // DebugAssert
 601 "loc_FFC95E7C:\n"
 602 "                MOV     R1, #0x118\n"
 603 "                CMN     R4, #0xC00\n"
 604 "                LDR     R3, =0x3474E\n"
 605 "                LDR     R0, =0xFFC958CC\n" // "Shutter.c"
 606 "                ADD     R1, R1, #3\n"
 607 "                LDREQSH R4, [R3]\n"
 608 "                LDRNE   R3, =0x3474E\n"
 609 "                CMN     R4, #0xC00\n"
 610 "                STRH    R4, [R3]\n"
 611 "                BNE     loc_FFC95EA8\n"
 612 "                BL      sub_FFC03AEC\n" // DebugAssert
 613 "loc_FFC95EA8:\n"
 614 "                MOV     R0, R4\n"
 615 //"                BL      sub_FFC9F288\n"
 616 "                BL      apex2us\n" // + 
 617 "                MOV     R4, R0\n"
 618 "                BL      sub_FFCBBA64\n"
 619 "                MOV     R0, R4\n"
 620 "                BL      sub_FFC954C0\n"
 621 "                TST     R0, #1\n"
 622 "                MOV     R1, #0x120\n"
 623 "                LDR     R0, =0xFFC958CC\n" // "Shutter.c"
 624 "                LDMEQFD SP!, {R4,PC}\n"
 625 "                LDMFD   SP!, {R4,LR}\n"
 626 "                B       sub_FFC03AEC\n" // DebugAssert
 627  );
 628 }
 629 

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