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

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

DEFINITIONS

This source file includes following definitions.
  1. capt_seq_task
  2. sub_FFD203C4_my
  3. sub_FFC5FE18_my
  4. exp_drv_task
  5. sub_FFC96EB4_my
  6. sub_FFC88B9C_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 #include "conf.h"
   5 
   6 static long *nrflag = (long*)0x5b08; // ffd20124: (00005b08)
   7 //static long *nrflag = (long*)(0x5b10-0x08);  // Found @ ffd20454 & ffd20470
   8 
   9 #include "../../../generic/capt_seq.c"
  10 
  11 //** capt_seq_task  @ 0xFFC5FA2C
  12 
  13 void __attribute__((naked,noinline)) capt_seq_task() {
  14     asm volatile (
  15       "STMFD   SP!, {R3-R9,LR}\n"
  16       "LDR     R6, =0x2850\n"
  17       "LDR     R4, =0x349A0 \n" 
  18       "MOV     R9, #1\n"
  19       "MOV     R7, #0\n"
  20 "loc_FFC5FA40:\n"
  21       "LDR     R0, [R6,#4]\n"
  22       "MOV     R2, #0\n"
  23       "MOV     R1, SP\n"
  24       "BL      sub_FFC2936C \n" 
  25       "TST     R0, #1\n"
  26       "BEQ     loc_FFC5FA6C \n" 
  27       "LDR     R1, =0x5B4 \n" 
  28       "LDR     R0, =0xFFC5F5E4 \n" 
  29       "BL      sub_FFC0EB14\n"
  30       "BL      sub_FFC0EACC \n" 
  31       "LDMFD   SP!, {R3-R9,PC}\n"
  32 "loc_FFC5FA6C:\n"
  33       "LDR     R0, [SP]\n"
  34       "LDR     R1, [R0]\n"
  35       "CMP     R1, #0x1D\n"
  36       "ADDLS   PC, PC, R1,LSL#2\n"
  37       "B       loc_FFC5FCF4 \n" 
  38       "B       loc_FFC5FAF8 \n" 
  39       "B       loc_FFC5FB5C \n" 
  40       "B       loc_FFC5FB98 \n" 
  41       "B       loc_FFC5FBAC \n" 
  42       "B       loc_FFC5FBA4 \n" 
  43       "B       loc_FFC5FBB4 \n" 
  44       "B       loc_FFC5FBBC \n" 
  45       "B       loc_FFC5FBC4 \n" 
  46       "B       loc_FFC5FC1C \n" 
  47       "B       loc_FFC5FC44 \n" 
  48       "B       loc_FFC5FC28 \n" 
  49       "B       loc_FFC5FC34 \n" 
  50       "B       loc_FFC5FC3C \n" 
  51       "B       loc_FFC5FC4C \n" 
  52       "B       loc_FFC5FC54 \n" 
  53       "B       loc_FFC5FC5C \n" 
  54       "B       loc_FFC5FC64 \n" 
  55       "B       loc_FFC5FC6C \n" 
  56       "B       loc_FFC5FC78 \n" 
  57       "B       loc_FFC5FC80 \n" 
  58       "B       loc_FFC5FC88 \n" 
  59       "B       loc_FFC5FC90 \n" 
  60       "B       loc_FFC5FC98 \n" 
  61       "B       loc_FFC5FCA4 \n" 
  62       "B       loc_FFC5FCAC \n" 
  63       "B       loc_FFC5FCB4 \n" 
  64       "B       loc_FFC5FCBC \n" 
  65       "B       loc_FFC5FCC4 \n" 
  66       "B       loc_FFC5FCD0 \n" 
  67       "B       loc_FFC5FD00 \n" 
  68 
  69 "loc_FFC5FAF8:\n"
  70       "BL      sub_FFC6033C\n"
  71       // TODO do we need the short press hack ?
  72       "BL      shooting_expo_param_override\n"                  // added
  73       "BL      sub_FFC5DB3C \n" 
  74       "LDR     R0, [R4,#0x24]\n"
  75       "CMP     R0, #0\n"
  76       "BEQ     loc_FFC5FD00 \n" 
  77       "BL      sub_FFC5F2C4 \n" 
  78       "MOV     R5, R0\n"
  79       "LDR     R0, [R4,#0x24]\n"
  80       "CMP     R0, #0\n"
  81       "BEQ     loc_FFC5FB40 \n" 
  82       "MOV     R0, #0xC\n"
  83       "BL      sub_FFC64130 \n" 
  84       "TST     R0, #1\n"
  85       "STRNE   R9, [R6,#0x10]\n"
  86       "LDRNE   R0, [R5,#8]\n"
  87       "ORRNE   R0, R0, #0x40000000\n"
  88       "STRNE   R0, [R5,#8]\n"
  89       "BNE     loc_FFC5FD00 \n" 
  90 "loc_FFC5FB40:\n"
  91       "MOV     R0, R5\n"
  92       "BL      sub_FFC5F568 \n" 
  93       "MOV     R0, R5\n"
  94       //"    BL      sub_FFD203C4 \n" 
  95       "BL      sub_FFD203C4_my \n" //---------- nr setup quick press------>
  96       "TST     R0, #1\n"
  97       "STRNE   R9, [R6,#0x10]\n"
  98       "B       loc_FFC5FD00 \n" 
  99 "loc_FFC5FB5C:\n"
 100       "LDR     R0, [R4,#0x24]\n"
 101       "CMP     R0, #0\n"
 102       "BNE     loc_FFC5FB88 \n" 
 103       "MOV     R0, #0xC\n"
 104       "BL      sub_FFC64130 \n" 
 105       "TST     R0, #1\n"
 106       "LDRNE   R0, [SP]\n"
 107       "MOVNE   R1, #1\n"
 108       "LDRNE   R2, [R0,#0xC]\n"
 109       "MOVNE   R0, #1\n"
 110       "BNE     loc_FFC5FC14 \n" 
 111 "loc_FFC5FB88:\n"
 112       "LDR     R0, [SP]\n"
 113       //"    BL      loc_FFC5FE18 \n" 
 114       "BL      sub_FFC5FE18_my \n" // ---------------------->
 115 "loc_FFC5FB90:\n"
 116       "STR     R7, [R4,#0x24]\n"
 117       "B       loc_FFC5FD00 \n" 
 118 "loc_FFC5FB98:\n"
 119       "MOV     R0, #1\n"
 120       "BL      sub_FFC605C4 \n" 
 121       "B       loc_FFC5FD00 \n" 
 122 "loc_FFC5FBA4:\n"
 123       "BL      sub_FFC5FF90 \n" 
 124       "B       loc_FFC5FB90 \n" 
 125 "loc_FFC5FBAC:\n"
 126       "BL      sub_FFC6031C \n" 
 127       "B       loc_FFC5FB90 \n" 
 128 "loc_FFC5FBB4:\n"
 129       "BL      sub_FFC60324 \n" 
 130       "B       loc_FFC5FD00 \n" 
 131 "loc_FFC5FBBC:\n"
 132       "BL      sub_FFC604D4 \n" 
 133       "B       loc_FFC5FC20 \n" 
 134 "loc_FFC5FBC4:\n"
 135       "LDR     R5, [R0,#0xC]\n"
 136       "BL      sub_FFC6032C \n" 
 137       "MOV     R0, R5\n"
 138       "BL      sub_FFD1F3BC \n" 
 139       "TST     R0, #1\n"
 140       "MOV     R8, R0\n"
 141       "BNE     loc_FFC5FC04 \n" 
 142       "BL      sub_FFC70D8C \n" 
 143       "STR     R0, [R5,#0x18]\n"
 144       "MOV     R0, R5\n"
 145       "BL      sub_FFD202FC \n" 
 146       "MOV     R0, R5\n"
 147       "BL      sub_FFD206A0 \n" 
 148       "MOV     R8, R0\n"
 149       "LDR     R0, [R5,#0x18]\n"
 150       "BL      sub_FFC70FC4 \n" 
 151 "loc_FFC5FC04:\n"
 152       "BL      sub_FFC6031C \n" 
 153       "MOV     R2, R5\n"
 154       "MOV     R1, #9\n"
 155       "MOV     R0, R8\n"
 156 "loc_FFC5FC14:\n"
 157       "BL      sub_FFC5DFB0 \n" 
 158       "B       loc_FFC5FD00 \n" 
 159 "loc_FFC5FC1C:\n"
 160       "BL      sub_FFC6053C \n" 
 161 "loc_FFC5FC20:\n"
 162       "BL      sub_FFC5DB3C \n" 
 163       "B       loc_FFC5FD00 \n" 
 164 "loc_FFC5FC28:\n"
 165       "LDR     R0, [R4,#0x54]\n"
 166       "BL      sub_FFC6092C \n" 
 167       "B       loc_FFC5FD00 \n" 
 168 "loc_FFC5FC34:\n"
 169       "BL      sub_FFC60BE0 \n" 
 170       "B       loc_FFC5FD00 \n" 
 171 "loc_FFC5FC3C:\n"
 172       "BL      sub_FFC60C74 \n" 
 173       "B       loc_FFC5FD00 \n" 
 174 "loc_FFC5FC44:\n"
 175       "BL      sub_FFC6031C \n" 
 176       "B       loc_FFC5FD00 \n" 
 177 "loc_FFC5FC4C:\n"
 178       "BL      sub_FFD1F5E8 \n" 
 179       "B       loc_FFC5FD00 \n" 
 180 "loc_FFC5FC54:\n"
 181       "BL      sub_FFD1F7E0 \n" 
 182       "B       loc_FFC5FD00 \n" 
 183 "loc_FFC5FC5C:\n"
 184       "BL      sub_FFD1F874 \n" 
 185       "B       loc_FFC5FD00 \n" 
 186 "loc_FFC5FC64:\n"
 187       "BL      sub_FFD1F934 \n" 
 188       "B       loc_FFC5FD00 \n" 
 189 "loc_FFC5FC6C:\n"
 190       "MOV     R0, #0\n"
 191       "BL      sub_FFD1FB2C \n" 
 192       "B       loc_FFC5FD00 \n" 
 193 "loc_FFC5FC78:\n"
 194       "BL      sub_FFD1FC7C \n" 
 195       "B       loc_FFC5FD00 \n" 
 196 "loc_FFC5FC80:\n"
 197       "BL      sub_FFD1FD0C \n" 
 198       "B       loc_FFC5FD00 \n" 
 199 "loc_FFC5FC88:\n"
 200       "BL      sub_FFD1FDCC \n" 
 201       "B       loc_FFC5FD00 \n" 
 202 "loc_FFC5FC90:\n"
 203       "BL      sub_FFC60718 \n" 
 204       "B       loc_FFC5FD00 \n" 
 205 "loc_FFC5FC98:\n"
 206       "BL      sub_FFC607AC \n" 
 207       "BL      sub_FFC276BC \n" 
 208       "B       loc_FFC5FD00 \n" 
 209 "loc_FFC5FCA4:\n"
 210       "BL      sub_FFD1FA00 \n" 
 211       "B       loc_FFC5FD00 \n" 
 212 "loc_FFC5FCAC:\n"
 213       "BL      sub_FFD1FA44 \n" 
 214       "B       loc_FFC5FD00 \n" 
 215 "loc_FFC5FCB4:\n"
 216       "BL      sub_FFC62900 \n" 
 217       "B       loc_FFC5FD00 \n" 
 218 "loc_FFC5FCBC:\n"
 219       "BL      sub_FFC62980 \n" 
 220       "B       loc_FFC5FD00 \n" 
 221 "loc_FFC5FCC4:\n"
 222       "BL      sub_FFC629DC \n" 
 223       "BL      sub_FFC6299C \n" 
 224       "B       loc_FFC5FD00 \n" 
 225 "loc_FFC5FCD0:\n"
 226       "LDRH    R0, [R4,#0x94]\n"
 227       "CMP     R0, #4\n"
 228       "LDRNEH  R0, [R4] \n" 
 229       "SUBNE   R12, R0, #0x8200 \n" 
 230       "SUBNES  R12, R12, #0x2A \n" 
 231       "BNE     loc_FFC5FD00 \n" 
 232       "BL      sub_FFC62980 \n" 
 233       "BL      sub_FFC62DA0 \n" 
 234       "B       loc_FFC5FD00 \n" 
 235 "loc_FFC5FCF4:\n"
 236       "LDR     R1, =0x70B \n" 
 237       "LDR     R0, =0xFFC5F5E4 \n" 
 238       "BL      sub_FFC0EB14\n"
 239 "loc_FFC5FD00:\n"
 240       "LDR     R0, [SP]\n"
 241       "LDR     R1, [R0,#4]\n"
 242       "LDR     R0, [R6]\n"
 243       "BL      sub_FFC68C70 \n" 
 244       "LDR     R5, [SP]\n"
 245       "LDR     R0, [R5,#8]\n"
 246       "CMP     R0, #0\n"
 247       "LDREQ   R1, =0x132\n"
 248       "LDREQ   R0, =0xFFC5F5E4 \n" 
 249       "BLEQ    sub_FFC0EB14\n"
 250       "STR     R7, [R5,#8]\n"
 251       "B       loc_FFC5FA40 \n"
 252     );
 253 }
 254 
 255 //** sub_FFD203C4_my  @ 0xFFD203C4 
 256 
 257 void __attribute__((naked,noinline)) sub_FFD203C4_my() {
 258     asm volatile (
 259       "STMFD   SP!, {R0-R8,LR}\n"
 260       "MOV     R4, R0\n"
 261       "BL      sub_FFD210D8 \n" 
 262       "MVN     R1, #0 \n" 
 263       "BL      sub_FFC68CA4\n"
 264       "LDR     R5, =0x5B08\n"
 265       "LDR     R0, [R5,#0xC]\n"
 266       "CMP     R0, #0\n"
 267       "BNE     loc_FFD20414\n"
 268       "MOV     R1, #1\n"
 269       "MOV     R0, #0\n"
 270       "BL      sub_FFC29BB4\n"
 271       "STR     R0, [R5,#0xC]\n"
 272       "MOV     R3, #0\n"
 273       "STR     R3, [SP]\n"
 274       "LDR     R3, =0xFFD1FEBC \n" 
 275       "LDR     R0, =0xFFD2062C \n" 
 276       "MOV     R2, #0x400\n"
 277       "MOV     R1, #0x17\n"
 278       "BL      sub_FFC29B80 \n" 
 279 "loc_FFD20414:\n"
 280       "MOV     R2, #4\n"
 281       "ADD     R1, SP, #0x8\n"
 282       "MOV     R0, #0x8A\n"
 283       "BL      sub_FFC70BFC \n" 
 284       "TST     R0, #1\n"
 285       "MOVNE   R1, #0x3B4\n"
 286       "LDRNE   R0, =0xFFD20128 \n" 
 287       "BLNE    sub_FFC0EB14\n"
 288       "LDR     R6, =0x34A64\n"
 289       "LDR     R7, =0x349A0\n"
 290       "LDR     R3, [R6]\n"
 291       "LDRSH   R2, [R6,#0xC]\n"
 292       "LDRSH   R1, [R6,#0xE]\n"
 293       "LDR     R0, [R7,#0x88]\n"
 294       "BL      sub_FFCEF168\n"
 295       "BL      sub_FFC49E68\n"
 296       "LDR     R3, =0x5B10\n"
 297       "STRH    R0, [R4,#0xA4]\n"
 298       "SUB     R2, R3, #4\n"
 299       "STRD    R2, [SP]\n"
 300       "MOV     R1, R0\n"
 301       "LDRH    R0, [R7,#0x5C]\n"
 302       "LDRSH   R2, [R6,#0xC]\n"
 303       "SUB     R3, R3, #8\n"
 304       "BL      sub_FFD21744\n"
 305       "BL      wait_until_remote_button_is_released\n"
 306       "BL      capt_seq_hook_set_nr\n"
 307       "B       sub_FFD20478\n" // -> continue in firmware
 308     );
 309 }
 310 
 311 //** sub_FFC5FE18_my  @ 0xFFC5FE18
 312 
 313 void __attribute__((naked,noinline)) sub_FFC5FE18_my() {
 314     asm volatile (
 315       "STMFD   SP!, {R4-R6,LR}\n"
 316       "LDR     R4, [R0,#0xC]\n"
 317       "LDR     R6, =0x349A0\n"
 318       "LDR     R0, [R4,#8]\n"
 319       "MOV     R5, #0\n"
 320       "ORR     R0, R0, #1\n"
 321       "STR     R0, [R4,#8]\n"
 322       "LDR     R0, [R6,#0x24]\n"
 323       "CMP     R0, #0\n"
 324       "MOVEQ   R0, #2\n"
 325       "BLEQ    sub_FFC5C330\n"
 326       "BL      sub_FFC6032C\n"
 327       "LDR     R0, [R6,#0x24]\n"
 328       "CMP     R0, #0\n"
 329       "BNE     loc_FFC5FEB4\n"
 330       "MOV     R0, R4\n"
 331       "BL      sub_FFC606CC\n"
 332       "MOV     R0, R4\n"
 333       "BL      sub_FFD1F028\n"
 334       "CMP     R0, #0\n"
 335       "MOV     R0, R4\n"
 336       "BEQ     loc_FFC5FE8C\n"
 337       "BL      sub_FFD1F0B4\n"
 338       "TST     R0, #1\n"
 339       "MOVNE   R2, R4\n"
 340       "LDMNEFD SP!, {R4-R6,LR}\n"
 341       "MOVNE   R1, #1\n"
 342       "BNE     sub_FFC5DFB0\n"
 343       "B       loc_FFC5FE90\n"
 344 "loc_FFC5FE8C:\n"
 345       "BL      sub_FFD1F078\n"
 346 "loc_FFC5FE90:\n"
 347       "MOV     R0, R4\n"
 348       "BL      sub_FFC5F568\n"
 349       "MOV     R0, R4\n"
 350       "BL      sub_FFD202FC\n"
 351       "BL      sub_FFD20F44\n"
 352       "MOV     R0, R4\n"
 353 //      "    BL      sub_FFD203C4 \n" 
 354       "BL      sub_FFD203C4_my \n" //----------nr setup -------->
 355       "MOV     R5, R0\n"
 356       "B       loc_FFC5FEC4\n"
 357 "loc_FFC5FEB4:\n"
 358       "LDR     R0, =0x2850\n"
 359       "LDR     R0, [R0,#0x10]\n"
 360       "CMP     R0, #0\n"
 361       "MOVNE   R5, #0x1D\n"
 362 "loc_FFC5FEC4:\n"
 363       "BL      capt_seq_hook_raw_here\n" // ++++->
 364       "BL      sub_FFC62980\n"
 365       "BL      sub_FFC629C8\n"
 366       "BL      sub_FFC62A08\n"
 367       "MOV     R2, R4\n"
 368       "MOV     R1, #1\n"
 369       "MOV     R0, R5\n"
 370       "BL      sub_FFC5DFB0\n"
 371       "BL      sub_FFD20654\n"
 372       "CMP     R0, #0\n"
 373       "LDRNE   R0, [R4,#8]\n"
 374       "ORRNE   R0, R0, #0x2000\n"
 375       "STRNE   R0, [R4,#8]\n"
 376       "LDMFD   SP!, {R4-R6,PC}\n"
 377     );
 378 }
 379 
 380 /*************************************************************/
 381 void __attribute__((naked,noinline)) exp_drv_task(){
 382     asm volatile(
 383       "STMFD   SP!, {R4-R8,LR}\n"
 384       "SUB     SP, SP, #0x20\n"
 385       "LDR     R8, =0xBB8\n"
 386       "LDR     R7, =0x3A74\n"
 387       "LDR     R5, =0x3DDB4\n"
 388       "MOV     R0, #0\n"
 389       "ADD     R6, SP, #0x10\n"
 390       "STR     R0, [SP,#0xC]\n"
 391 "loc_FFC99688:\n"
 392       "LDR     R0, [R7,#0x20]\n"
 393       "MOV     R2, #0\n"
 394       "ADD     R1, SP, #0x1C\n"
 395       "BL      sub_FFC2936C\n"
 396       "LDR     R0, [SP,#0xC]\n"
 397       "CMP     R0, #1\n"
 398       "BNE     loc_FFC996D4\n"
 399       "LDR     R0, [SP,#0x1C]\n"
 400       "LDR     R0, [R0]\n"
 401       "CMP     R0, #0x13\n"
 402       "CMPNE   R0, #0x14\n"
 403       "CMPNE   R0, #0x15\n"
 404       "CMPNE   R0, #0x16\n"
 405       "BEQ     loc_FFC99838\n"
 406       "CMP     R0, #0x28\n"
 407       "BEQ     loc_FFC997C0\n"
 408       "ADD     R1, SP, #0xC\n"
 409       "MOV     R0, #0\n"
 410       "BL      sub_FFC99618\n"
 411 "loc_FFC996D4:\n"
 412       "LDR     R0, [SP,#0x1C]\n"
 413       "LDR     R1, [R0]\n"
 414       "CMP     R1, #0x2E\n"
 415       "BNE     loc_FFC99704\n"
 416       "LDR     R0, [SP,#0x1C]\n"
 417       "BL      sub_FFC9A970\n"
 418       "LDR     R0, [R7,#0x1C]\n"
 419       "MOV     R1, #1\n"
 420       "BL      sub_FFC68C70\n"
 421       "BL      sub_FFC0EACC \n" 
 422       "ADD     SP, SP, #0x20\n"
 423       "LDMFD   SP!, {R4-R8,PC}\n"
 424 "loc_FFC99704:\n"
 425       "CMP     R1, #0x2D\n"
 426       "BNE     loc_FFC99720\n"
 427       "LDR     R2, [R0,#0x8C]!\n"
 428       "LDR     R1, [R0,#4]\n"
 429       "MOV     R0, R1\n"
 430       "BLX     R2\n"
 431       "B       loc_FFC99C60\n"
 432 "loc_FFC99720:\n"
 433       "CMP     R1, #0x26\n"
 434       "BNE     loc_FFC99770\n"
 435       "LDR     R0, [R7,#0x1C]\n"
 436       "MOV     R1, #0x80\n"
 437       "BL      sub_FFC68CA4\n"
 438       "LDR     R0, =0xFFC95DE4\n"
 439       "MOV     R1, #0x80\n"
 440       "BL      sub_FFD14BD0\n"
 441       "LDR     R0, [R7,#0x1C]\n"
 442       "MOV     R2, R8\n"
 443       "MOV     R1, #0x80\n"
 444       "BL      sub_FFC68BB0\n"
 445       "TST     R0, #1\n"
 446       "LDRNE   R1, =0xE5F\n"
 447       "BNE     loc_FFC9982C\n"
 448 "loc_FFC9975C:\n"
 449       "LDR     R1, [SP,#0x1C]\n"
 450       "LDR     R0, [R1,#0x90]\n"
 451       "LDR     R1, [R1,#0x8C]\n"
 452       "BLX     R1\n"
 453       "B       loc_FFC99C60\n"
 454 "loc_FFC99770:\n"
 455       "CMP     R1, #0x27\n"
 456       "BNE     loc_FFC997B8\n"
 457       "ADD     R1, SP, #0xC\n"
 458       "BL      sub_FFC99618\n"
 459       "LDR     R0, [R7,#0x1C]\n"
 460       "MOV     R1, #0x100\n"
 461       "BL      sub_FFC68CA4\n"
 462       "LDR     R0, =0xFFC95DF4\n"
 463       "MOV     R1, #0x100\n"
 464       "BL      sub_FFD14E58\n"
 465       "LDR     R0, [R7,#0x1C]\n"
 466       "MOV     R2, R8\n"
 467       "MOV     R1, #0x100\n"
 468       "BL      sub_FFC68BB0\n"
 469       "TST     R0, #1\n"
 470       "BEQ     loc_FFC9975C\n"
 471       "LDR     R1, =0xE69\n"
 472       "B       loc_FFC9982C\n"
 473 "loc_FFC997B8:\n"
 474       "CMP     R1, #0x28\n"
 475       "BNE     loc_FFC997D0\n"
 476 "loc_FFC997C0:\n"
 477       "LDR     R0, [SP,#0x1C]\n"
 478       "ADD     R1, SP, #0xC\n"
 479       "BL      sub_FFC99618\n"
 480       "B       loc_FFC9975C\n"
 481 "loc_FFC997D0:\n"
 482       "CMP     R1, #0x2B\n"
 483       "BNE     loc_FFC997E8\n"
 484       "BL      sub_FFC88E2C\n"
 485       "BL      sub_FFC89A54\n"
 486       "BL      sub_FFC895A4\n"
 487       "B       loc_FFC9975C\n"
 488 "loc_FFC997E8:\n"
 489       "CMP     R1, #0x2C\n"
 490       "BNE     loc_FFC99838\n"
 491       "LDR     R0, [R7,#0x1C]\n"
 492       "MOV     R1, #4\n"
 493       "BL      sub_FFC68CA4\n"
 494       "LDR     R1, =0xFFC95E14\n"
 495       "LDR     R0, =0xFFFFF400\n"
 496       "MOV     R2, #4\n"
 497       "BL      sub_FFC888A8\n"
 498       "BL      sub_FFC88B30\n"
 499       "LDR     R0, [R7,#0x1C]\n"
 500       "MOV     R2, R8\n"
 501       "MOV     R1, #4\n"
 502       "BL      sub_FFC68ACC\n"
 503       "TST     R0, #1\n"
 504       "BEQ     loc_FFC9975C\n"
 505       "LDR     R1, =0xE91\n"
 506 "loc_FFC9982C:\n"
 507       "LDR     R0, =0xFFC96454\n"
 508       "BL      sub_FFC0EB14\n"
 509       "B       loc_FFC9975C\n"
 510 "loc_FFC99838:\n"
 511       "LDR     R0, [SP,#0x1C]\n"
 512       "MOV     R4, #1\n"
 513       "LDR     R1, [R0]\n"
 514       "CMP     R1, #0x11\n"
 515       "CMPNE   R1, #0x12\n"
 516       "BNE     loc_FFC998A8\n"
 517       "LDR     R1, [R0,#0x7C]\n"
 518       "ADD     R1, R1, R1,LSL#1\n"
 519       "ADD     R1, R0, R1,LSL#2\n"
 520       "SUB     R1, R1, #8\n"
 521       "LDMIA   R1, {R2-R4}\n"
 522       "STMIA   R6, {R2-R4}\n"
 523       "BL      sub_FFC97FA4\n"
 524       "LDR     R0, [SP,#0x1C]\n"
 525       "LDR     R1, [R0,#0x7C]\n"
 526       "LDR     R3, [R0,#0x8C]\n"
 527       "LDR     R2, [R0,#0x90]\n"
 528       "ADD     R0, R0, #4\n"
 529       "BLX     R3\n"
 530       "LDR     R0, [SP,#0x1C]\n"
 531       "BL      sub_FFC9AD38\n"
 532       "LDR     R0, [SP,#0x1C]\n"
 533       "LDR     R1, [R0,#0x7C]\n"
 534       "LDR     R3, [R0,#0x94]\n"
 535       "LDR     R2, [R0,#0x98]\n"
 536       "ADD     R0, R0, #4\n"
 537       "BLX     R3\n"
 538       "B       loc_FFC99BA0\n"
 539 "loc_FFC998A8:\n"
 540       "CMP     R1, #0x13\n"
 541       "CMPNE   R1, #0x14\n"
 542       "CMPNE   R1, #0x15\n"
 543       "CMPNE   R1, #0x16\n"
 544       "BNE     loc_FFC99960\n"
 545       "ADD     R3, SP, #0xC\n"
 546       "MOV     R2, SP\n"
 547       "ADD     R1, SP, #0x10\n"
 548       "BL      sub_FFC98280\n"
 549       "CMP     R0, #1\n"
 550       "MOV     R4, R0\n"
 551       "CMPNE   R4, #5\n"
 552       "BNE     loc_FFC998FC\n"
 553       "LDR     R0, [SP,#0x1C]\n"
 554       "MOV     R2, R4\n"
 555       "LDR     R1, [R0,#0x7C]!\n"
 556       "LDR     R12, [R0,#0x10]!\n"
 557       "LDR     R3, [R0,#4]\n"
 558       "MOV     R0, SP\n"
 559       "BLX     R12\n"
 560       "B       loc_FFC99934\n"
 561 "loc_FFC998FC:\n"
 562       "LDR     R0, [SP,#0x1C]\n"
 563       "CMP     R4, #2\n"
 564       "LDR     R3, [R0,#0x90]\n"
 565       "CMPNE   R4, #6\n"
 566       "BNE     loc_FFC99948\n"
 567       "LDR     R12, [R0,#0x8C]\n"
 568       "MOV     R0, SP\n"
 569       "MOV     R2, R4\n"
 570       "MOV     R1, #1\n"
 571       "BLX     R12\n"
 572       "LDR     R0, [SP,#0x1C]\n"
 573       "MOV     R2, SP\n"
 574       "ADD     R1, SP, #0x10\n"
 575       "BL      sub_FFC99320\n"
 576 "loc_FFC99934:\n"
 577       "LDR     R0, [SP,#0x1C]\n"
 578       "LDR     R2, [SP,#0xC]\n"
 579       "MOV     R1, R4\n"
 580       "BL      sub_FFC995B8\n"
 581       "B       loc_FFC99BA0\n"
 582 "loc_FFC99948:\n"
 583       "LDR     R1, [R0,#0x7C]\n"
 584       "LDR     R12, [R0,#0x8C]\n"
 585       "ADD     R0, R0, #4\n"
 586       "MOV     R2, R4\n"
 587       "BLX     R12\n"
 588       "B       loc_FFC99BA0\n"
 589 "loc_FFC99960:\n"
 590       "CMP     R1, #0x22\n"
 591       "CMPNE   R1, #0x23\n"
 592       "BNE     loc_FFC999AC\n"
 593       "LDR     R1, [R0,#0x7C]\n"
 594       "ADD     R1, R1, R1,LSL#1\n"
 595       "ADD     R1, R0, R1,LSL#2\n"
 596       "SUB     R1, R1, #8\n"
 597       "LDMIA   R1, {R2-R4}\n"
 598       "STMIA   R6, {R2-R4}\n"
 599       "BL      sub_FFC974F4\n"
 600       "LDR     R0, [SP,#0x1C]\n"
 601       "LDR     R1, [R0,#0x7C]\n"
 602       "LDR     R3, [R0,#0x8C]\n"
 603       "LDR     R2, [R0,#0x90]\n"
 604       "ADD     R0, R0, #4\n"
 605       "BLX     R3\n"
 606       "LDR     R0, [SP,#0x1C]\n"
 607       "BL      sub_FFC977E8\n"
 608       "B       loc_FFC99BA0\n"
 609 "loc_FFC999AC:\n"
 610       "ADD     R1, R0, #4\n"
 611       "LDMIA   R1, {R2,R3,R12}\n"
 612       "STMIA   R6, {R2,R3,R12}\n"
 613       "LDR     R1, [R0]\n"
 614       "CMP     R1, #0x25\n"
 615       "ADDLS   PC, PC, R1,LSL#2\n"
 616       "B       loc_FFC99B80\n"
 617       "B       loc_FFC99A60\n"
 618       "B       loc_FFC99A60\n"
 619       "B       loc_FFC99A68\n"
 620       "B       loc_FFC99A70\n"
 621       "B       loc_FFC99A70\n"
 622       "B       loc_FFC99A70\n"
 623       "B       loc_FFC99A60\n"
 624       "B       loc_FFC99A68\n"
 625       "B       loc_FFC99A70\n"
 626       "B       loc_FFC99A70\n"
 627       "B       loc_FFC99A88\n"
 628       "B       loc_FFC99A88\n"
 629       "B       loc_FFC99B74\n"
 630       "B       loc_FFC99B7C\n"
 631       "B       loc_FFC99B7C\n"
 632       "B       loc_FFC99B7C\n"
 633       "B       loc_FFC99B7C\n"
 634       "B       loc_FFC99B80\n"
 635       "B       loc_FFC99B80\n"
 636       "B       loc_FFC99B80\n"
 637       "B       loc_FFC99B80\n"
 638       "B       loc_FFC99B80\n"
 639       "B       loc_FFC99B80\n"
 640       "B       loc_FFC99A78\n"
 641       "B       loc_FFC99A80\n"
 642       "B       loc_FFC99A80\n"
 643       "B       loc_FFC99A94\n"
 644       "B       loc_FFC99A94\n"
 645       "B       loc_FFC99A9C\n"
 646       "B       loc_FFC99ACC\n"
 647       "B       loc_FFC99AFC\n"
 648       "B       loc_FFC99B2C\n"
 649       "B       loc_FFC99B5C\n"
 650       "B       loc_FFC99B5C\n"
 651       "B       loc_FFC99B80\n"
 652       "B       loc_FFC99B80\n"
 653       "B       loc_FFC99B64\n"
 654       "B       loc_FFC99B6C\n"
 655 "loc_FFC99A60:\n"
 656       "BL      sub_FFC962FC\n"
 657       "B       loc_FFC99B80\n"
 658 "loc_FFC99A68:\n"
 659       "BL      sub_FFC96580\n"
 660       "B       loc_FFC99B80\n"
 661 "loc_FFC99A70:\n"
 662       "BL      sub_FFC96788\n"
 663       "B       loc_FFC99B80\n"
 664 "loc_FFC99A78:\n"
 665       "BL      sub_FFC96A00\n"
 666       "B       loc_FFC99B80\n"
 667 "loc_FFC99A80:\n"
 668       "BL      sub_FFC96BF8\n"
 669       "B       loc_FFC99B80\n"
 670 "loc_FFC99A88:\n"
 671 //      "BL      sub_FFC96EB4 \n"   //original
 672       "BL      sub_FFC96EB4_my\n" // ------------>
 673       "MOV     R4, #0\n"
 674       "B       loc_FFC99B80\n"
 675 "loc_FFC99A94:\n"
 676       "BL      sub_FFC96FF4\n"
 677       "B       loc_FFC99B80\n"
 678 "loc_FFC99A9C:\n"
 679       "LDRH    R1, [R0,#4]\n"
 680       "STRH    R1, [SP,#0x10]\n"
 681       "LDRH    R1, [R5,#2]\n"
 682       "STRH    R1, [SP,#0x12]\n"
 683       "LDRH    R1, [R5,#4]\n"
 684       "STRH    R1, [SP,#0x14]\n"
 685       "LDRH    R1, [R5,#6]\n"
 686       "STRH    R1, [SP,#0x16]\n"
 687       "LDRH    R1, [R0,#0xC]\n"
 688       "STRH    R1, [SP,#0x18]\n"
 689       "BL      sub_FFC9A9E4\n"
 690       "B       loc_FFC99B80\n"
 691 "loc_FFC99ACC:\n"
 692       "LDRH    R1, [R0,#4]\n"
 693       "STRH    R1, [SP,#0x10]\n"
 694       "LDRH    R1, [R5,#2]\n"
 695       "STRH    R1, [SP,#0x12]\n"
 696       "LDRH    R1, [R5,#4]\n"
 697       "STRH    R1, [SP,#0x14]\n"
 698       "LDRH    R1, [R5,#6]\n"
 699       "STRH    R1, [SP,#0x16]\n"
 700       "LDRH    R1, [R5,#8]\n"
 701       "STRH    R1, [SP,#0x18]\n"
 702       "BL      sub_FFC9AB50\n"
 703       "B       loc_FFC99B80\n"
 704 "loc_FFC99AFC:\n"
 705       "LDRH    R1, [R5]\n"
 706       "STRH    R1, [SP,#0x10]\n"
 707       "LDRH    R1, [R0,#6]\n"
 708       "STRH    R1, [SP,#0x12]\n"
 709       "LDRH    R1, [R5,#4]\n"
 710       "STRH    R1, [SP,#0x14]\n"
 711       "LDRH    R1, [R5,#6]\n"
 712       "STRH    R1, [SP,#0x16]\n"
 713       "LDRH    R1, [R5,#8]\n"
 714       "STRH    R1, [SP,#0x18]\n"
 715       "BL      sub_FFC9ABFC\n"
 716       "B       loc_FFC99B80\n"
 717 "loc_FFC99B2C:\n"
 718       "LDRH    R1, [R5]\n"
 719       "STRH    R1, [SP,#0x10]\n"
 720       "LDRH    R1, [R5,#2]\n"
 721       "STRH    R1, [SP,#0x12]\n"
 722       "LDRH    R1, [R5,#4]\n"
 723       "STRH    R1, [SP,#0x14]\n"
 724       "LDRH    R1, [R5,#6]\n"
 725       "STRH    R1, [SP,#0x16]\n"
 726       "LDRH    R1, [R0,#0xC]\n"
 727       "STRH    R1, [SP,#0x18]\n"
 728       "BL      sub_FFC9AC9C\n"
 729       "B       loc_FFC99B80\n"
 730 "loc_FFC99B5C:\n"
 731       "BL      sub_FFC9734C\n"
 732       "B       loc_FFC99B80\n"
 733 "loc_FFC99B64:\n"
 734       "BL      sub_FFC978EC\n"
 735       "B       loc_FFC99B80\n"
 736 "loc_FFC99B6C:\n"
 737       "BL      sub_FFC97B28\n"
 738       "B       loc_FFC99B80\n"
 739 "loc_FFC99B74:\n"
 740       "BL      sub_FFC97CA4\n"
 741       "B       loc_FFC99B80\n"
 742 "loc_FFC99B7C:\n"
 743       "BL      sub_FFC97E40\n"
 744 "loc_FFC99B80:\n"
 745       "LDR     R0, [SP,#0x1C]\n"
 746       "LDR     R1, [R0,#0x7C]\n"
 747       "LDR     R3, [R0,#0x8C]\n"
 748       "LDR     R2, [R0,#0x90]\n"
 749       "ADD     R0, R0, #4\n"
 750       "BLX     R3\n"
 751       "CMP     R4, #1\n"
 752       "BNE     loc_FFC99BE8\n"
 753 "loc_FFC99BA0:\n"
 754       "LDR     R0, [SP,#0x1C]\n"
 755       "MOV     R2, #0xC\n"
 756       "LDR     R1, [R0,#0x7C]\n"
 757       "ADD     R1, R1, R1,LSL#1\n"
 758       "ADD     R0, R0, R1,LSL#2\n"
 759       "SUB     R4, R0, #8\n"
 760       "LDR     R0, =0x3DDB4\n"
 761       "ADD     R1, SP, #0x10\n"
 762       "BL      sub_FFEA2D58\n"
 763       "LDR     R0, =0x3DDC0\n"
 764       "MOV     R2, #0xC\n"
 765       "ADD     R1, SP, #0x10\n"
 766       "BL      sub_FFEA2D58\n"
 767       "LDR     R0, =0x3DDCC\n"
 768       "MOV     R2, #0xC\n"
 769       "MOV     R1, R4\n"
 770       "BL      sub_FFEA2D58\n"
 771       "B       loc_FFC99C60\n"
 772 "loc_FFC99BE8:\n"
 773       "LDR     R0, [SP,#0x1C]\n"
 774       "LDR     R0, [R0]\n"
 775       "CMP     R0, #0xB\n"
 776       "BNE     loc_FFC99C30\n"
 777       "MOV     R3, #0\n"
 778       "STR     R3, [SP] \n" 
 779       "MOV     R3, #1\n"
 780       "MOV     R2, #1\n"
 781       "MOV     R1, #1\n"
 782       "MOV     R0, #0\n"
 783       "BL      sub_FFC96104\n"
 784       "MOV     R3, #0\n"
 785       "STR     R3, [SP] \n" 
 786       "MOV     R3, #1\n"
 787       "MOV     R2, #1\n"
 788       "MOV     R1, #1\n"
 789       "MOV     R0, #0\n"
 790       "B       loc_FFC99C5C\n"
 791 "loc_FFC99C30:\n"
 792       "MOV     R3, #1\n"
 793       "MOV     R2, #1\n"
 794       "MOV     R1, #1\n"
 795       "MOV     R0, #1\n"
 796       "STR     R3, [SP] \n" 
 797       "BL      sub_FFC96104\n"
 798       "MOV     R3, #1\n"
 799       "MOV     R2, #1\n"
 800       "MOV     R1, #1\n"
 801       "MOV     R0, #1\n"
 802       "STR     R3, [SP] \n" 
 803 "loc_FFC99C5C:\n"
 804       "BL      sub_FFC96244\n"
 805 "loc_FFC99C60:\n"
 806       "LDR     R0, [SP,#0x1C]\n"
 807       "BL      sub_FFC9A970\n"
 808       "B       loc_FFC99688\n"
 809     );
 810 }
 811 
 812 //** sub_FFC96EB4_my  @ 0xFFC96EB4 
 813 
 814 void __attribute__((naked,noinline)) sub_FFC96EB4_my() { 
 815     asm volatile(
 816       "STMFD   SP!, {R4-R8,LR}\n"
 817       "LDR     R7, =0x3A74\n"
 818       "MOV     R4, R0\n"
 819       "LDR     R0, [R7,#0x1C]\n"
 820       "MOV     R1, #0x3E\n"
 821       "BL      sub_FFC68CA4\n"
 822       "LDRSH   R0, [R4,#4]\n"
 823       "MOV     R2, #0\n"
 824       "MOV     R1, #0\n"
 825       "BL      sub_FFC95E68\n"
 826       "MOV     R6, R0\n"
 827       "LDRSH   R0, [R4,#6]\n"
 828       "BL      sub_FFC95F78\n"
 829       "LDRSH   R0, [R4,#8]\n"
 830       "BL      sub_FFC95FD0\n"
 831       "LDRSH   R0, [R4,#0xA]\n"
 832       "BL      sub_FFC96028\n"
 833       "LDRSH   R0, [R4,#0xC]\n"
 834       "MOV     R1, #0\n"
 835       "BL      sub_FFC96080\n"
 836       "MOV     R5, R0\n"
 837       "LDR     R0, [R4]\n"
 838       "LDR     R8, =0x3DDCC\n"
 839       "CMP     R0, #0xB\n"
 840       "MOVEQ   R6, #0\n"
 841       "MOVEQ   R5, #0\n"
 842       "BEQ     loc_FFC96F48\n"
 843       "CMP     R6, #1\n"
 844       "BNE     loc_FFC96F48\n"
 845       "LDRSH   R0, [R4,#4]\n"
 846       "LDR     R1, =0xFFC95DD4\n"
 847       "MOV     R2, #2\n"
 848       "BL      sub_FFD14D24\n"
 849       "STRH    R0, [R4,#4]\n"
 850       "MOV     R0, #0\n"
 851       "STR     R0, [R7,#0x28]\n"
 852       "B       loc_FFC96F50\n"
 853 "loc_FFC96F48:\n"
 854       "LDRH    R0, [R8]\n"
 855       "STRH    R0, [R4,#4]\n"
 856 "loc_FFC96F50:\n"
 857       "CMP     R5, #1\n"
 858       "LDRNEH  R0, [R8,#8]\n"
 859       "BNE     loc_FFC96F6C\n"
 860       "LDRSH   R0, [R4,#0xC]\n"
 861       "LDR     R1, =0xFFC95E58\n"
 862       "MOV     R2, #0x20\n"
 863       "BL      sub_FFC9A9A0\n"
 864 "loc_FFC96F6C:\n"
 865       "STRH    R0, [R4,#0xC]\n"
 866       "LDRSH   R0, [R4,#6]\n"
 867 //      "    BL      sub_FFC88B9C \n" 
 868       "BL      sub_FFC88B9C_my \n"  // ------------------>
 869       "LDRSH   R0, [R4,#8]\n"
 870       "MOV     R1, #1\n"
 871       "BL      sub_FFC892EC\n"
 872       "MOV     R1, #0\n"
 873       "ADD     R0, R4, #8\n"
 874       "BL      sub_FFC89374\n"
 875       "LDRSH   R0, [R4,#0xE]\n"
 876       "BL      sub_FFC911C8\n"
 877       "LDR     R4, =0xBB8\n"
 878       "CMP     R6, #1\n"
 879       "BNE     loc_FFC96FC4\n"
 880       "LDR     R0, [R7,#0x1C]\n"
 881       "MOV     R2, R4\n"
 882       "MOV     R1, #2\n"
 883       "BL      sub_FFC68BB0\n"
 884       "TST     R0, #1\n"
 885       "LDRNE   R1, =0x5A3\n"
 886       "LDRNE   R0, =0xFFC96454 \n" 
 887       "BLNE    sub_FFC0EB14\n"
 888 "loc_FFC96FC4:\n"
 889       "CMP     R5, #1\n"
 890       "LDMNEFD SP!, {R4-R8,PC}\n"
 891       "LDR     R0, [R7,#0x1C]\n"
 892       "MOV     R2, R4\n"
 893       "MOV     R1, #0x20\n"
 894       "BL      sub_FFC68BB0\n"
 895       "TST     R0, #1\n"
 896       "LDRNE   R1, =0x5A8\n"
 897       "LDRNE   R0, =0xFFC96454 \n" 
 898       "LDMNEFD SP!, {R4-R8,LR}\n"
 899       "BNE     sub_FFC0EB14\n"
 900       "LDMFD   SP!, {R4-R8,PC}\n"
 901     );
 902 }
 903 
 904 //** sub_FFC88B9C_my  @ 0xFFC88B9C 
 905 
 906 void __attribute__((naked,noinline)) sub_FFC88B9C_my(){
 907     asm volatile(
 908       "STMFD   SP!, {R4-R6,LR}\n"
 909       "LDR     R5, =0x3760\n"
 910       "MOV     R4, R0\n"
 911       "LDR     R0, [R5,#4]\n"
 912       "CMP     R0, #1\n"
 913       "LDRNE   R1, =0x146\n"
 914       "LDRNE   R0, =0xFFC889A0 \n" 
 915       "BLNE    sub_FFC0EB14\n"
 916       "CMN     R4, #0xC00\n"
 917       "LDREQSH R4, [R5,#2]\n"
 918       "CMN     R4, #0xC00\n"
 919       "MOVEQ   R1, #0x14C\n"
 920       "LDREQ   R0, =0xFFC889A0 \n" 
 921       "STRH    R4, [R5,#2]\n"
 922       "BLEQ    sub_FFC0EB14\n"
 923       "MOV     R0, R4\n"
 924 //     "BL      sub_FFD8F4B8\n" // -
 925       "BL      apex2us\n"  // +
 926       "MOV     R4, R0\n"
 927       "BL      sub_FFCBB824 \n" 
 928       "MOV     R0, R4\n"
 929       "BL      sub_FFCBF680\n"
 930       "TST     R0, #1\n"
 931       "LDRNE   R1, =0x151\n"
 932       "LDMNEFD SP!, {R4-R6,LR}\n"
 933       "LDRNE   R0, =0xFFC889A0 \n" 
 934       "BNE     sub_FFC0EB14\n"
 935       "LDMFD   SP!, {R4-R6,PC}\n"
 936     );
 937 }

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