root/platform/ixus870_sd880/sub/100e/capt_seq.c

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

DEFINITIONS

This source file includes following definitions.
  1. capt_seq_task
  2. sub_FF8620C4_my
  3. sub_FF935BC8_my
  4. exp_drv_task
  5. sub_FF8A2094_my
  6. sub_FF893F18_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 #include "conf.h"
   5 
   6 // via _sub_FF935BCC__SsCaptureSeq.c__0
   7 static long *nrflag = (long*)0x9268; // see 0xFF935C38
   8 
   9 #include "../../../generic/capt_seq.c"
  10 
  11 void __attribute__((naked,noinline)) capt_seq_task() {
  12  // _sub_FF868B98__SsShootTask.c__13 (via taskcreate_CaptSeqTask)
  13  asm volatile (
  14                  "STMFD   SP!, {R3-R9,LR}\n"
  15                  "LDR     R6, =0x52F0\n"
  16                  "LDR     R4, =0x1AF4C\n"
  17                  "MOV     R9, #1\n"
  18                  "MOV     R7, #0\n"
  19  "loc_FF861D10:\n"
  20                  "LDR     R0, [R6,#0xC]\n"
  21                  "MOV     R2, #0\n"
  22                  "MOV     R1, SP\n"
  23                  "BL      sub_FF827098\n"
  24                  "TST     R0, #1\n"
  25                  "BEQ     loc_FF861D3C\n"
  26                  "LDR     R1, =0x539\n"
  27                  "LDR     R0, =0xFF861840\n"
  28                  "BL      sub_FF81B1CC\n"
  29                  "BL      sub_FF81B184\n"
  30                  "LDMFD   SP!, {R3-R9,PC}\n"
  31  "loc_FF861D3C:\n"
  32                  "LDR     R0, [SP]\n"
  33                  "LDR     R1, [R0]\n"
  34                  "CMP     R1, #0x1F\n"
  35                  "ADDLS   PC, PC, R1,LSL#2\n"
  36                  "B       loc_FF861FA0\n"
  37  "loc_FF861D50:\n"
  38                  "B       loc_FF861DD0\n"
  39  "loc_FF861D54:\n"
  40                  "B       loc_FF861E34\n"
  41  "loc_FF861D58:\n"
  42                  "B       loc_FF861E3C\n"
  43  "loc_FF861D5C:\n"
  44                  "B       loc_FF861E54\n"
  45  "loc_FF861D60:\n"
  46                  "B       loc_FF861E48\n"
  47  "loc_FF861D64:\n"
  48                  "B       loc_FF861E5C\n"
  49  "loc_FF861D68:\n"
  50                  "B       loc_FF861E64\n"
  51  "loc_FF861D6C:\n"
  52                  "B       loc_FF861E6C\n"
  53  "loc_FF861D70:\n"
  54                  "B       loc_FF861EC4\n"
  55  "loc_FF861D74:\n"
  56                  "B       loc_FF861EEC\n"
  57  "loc_FF861D78:\n"
  58                  "B       loc_FF861ED0\n"
  59  "loc_FF861D7C:\n"
  60                  "B       loc_FF861EDC\n"
  61  "loc_FF861D80:\n"
  62                  "B       loc_FF861EE4\n"
  63  "loc_FF861D84:\n"
  64                  "B       loc_FF861EF4\n"
  65  "loc_FF861D88:\n"
  66                  "B       loc_FF861EFC\n"
  67  "loc_FF861D8C:\n"
  68                  "B       loc_FF861F04\n"
  69  "loc_FF861D90:\n"
  70                  "B       loc_FF861F0C\n"
  71  "loc_FF861D94:\n"
  72                  "B       loc_FF861F14\n"
  73  "loc_FF861D98:\n"
  74                  "B       loc_FF861F1C\n"
  75  "loc_FF861D9C:\n"
  76                  "B       loc_FF861F24\n"
  77  "loc_FF861DA0:\n"
  78                  "B       loc_FF861F30\n"
  79  "loc_FF861DA4:\n"
  80                  "B       loc_FF861F38\n"
  81  "loc_FF861DA8:\n"
  82                  "B       loc_FF861F40\n"
  83  "loc_FF861DAC:\n"
  84                  "B       loc_FF861F48\n"
  85  "loc_FF861DB0:\n"
  86                  "B       loc_FF861F50\n"
  87  "loc_FF861DB4:\n"
  88                  "B       loc_FF861F5C\n"
  89  "loc_FF861DB8:\n"
  90                  "B       loc_FF861F64\n"
  91  "loc_FF861DBC:\n"
  92                  "B       loc_FF861F6C\n"
  93  "loc_FF861DC0:\n"
  94                  "B       loc_FF861F74\n"
  95  "loc_FF861DC4:\n"
  96                  "B       loc_FF861F7C\n"
  97  "loc_FF861DC8:\n"
  98                  "B       loc_FF861F88\n"
  99  "loc_FF861DCC:\n"
 100                  "B       loc_FF861FAC\n"
 101  "loc_FF861DD0:\n"
 102                  "BL      sub_FF8625F4\n"
 103                  "BL      shooting_expo_param_override\n"  // +
 104                  "BL      sub_FF85FDFC\n"
 105 
 106  //  this code added to avoid some incorrect behavior if overrides are used.
 107  //  but it can cause some unexpected side effects. In this case, remove this code!
 108 
 109                  "MOV     R0, #0\n"
 110                  "STR     R0, [R4,#0x24]\n"  // fixes overrides  behavior at short shutter press
 111         
 112  //  end of my code
 113 
 114                  "LDR     R0, [R4,#0x24]\n"
 115                  "CMP     R0, #0\n"
 116                  "BEQ     loc_FF861FAC\n"
 117                  "BL      sub_FF861518\n"
 118                  "MOV     R5, R0\n"
 119                  "LDR     R0, [R4,#0x24]\n"
 120                  "CMP     R0, #0\n"
 121                  "BEQ     loc_FF861E18\n"
 122                  "MOV     R0, #0xC\n"
 123                  "BL      sub_FF865A7C\n"
 124                  "TST     R0, #1\n"
 125                  "STRNE   R9, [R6,#4]\n"
 126                  "LDRNE   R0, [R5,#8]\n"
 127                  "ORRNE   R0, R0, #0x40000000\n"
 128                  "STRNE   R0, [R5,#8]\n"
 129                  "BNE     loc_FF861FAC\n"
 130  "loc_FF861E18:\n"
 131                  "MOV     R0, R5\n"
 132                  "BL      sub_FF8617C4\n"
 133                  "MOV     R0, R5\n"
 134                  "BL      sub_FF935BC8_my\n"             // ----------->
 135                  "BL      capt_seq_hook_raw_here\n"      // +
 136                  "TST     R0, #1\n"
 137                  "STRNE   R9, [R6,#4]\n"
 138                  "B       loc_FF861FAC\n"
 139  "loc_FF861E34:\n"
 140                  "BL      sub_FF8620C4_my\n"             // ----------->
 141                  "B       loc_FF861E4C\n"
 142  "loc_FF861E3C:\n"
 143                  "MOV     R0, #1\n"
 144                  "BL      sub_FF86280C\n"
 145                  "B       loc_FF861FAC\n"
 146  "loc_FF861E48:\n"
 147                  "BL      sub_FF862258\n"
 148  "loc_FF861E4C:\n"
 149                  "STR     R7, [R4,#0x24]\n"
 150                  "B       loc_FF861FAC\n"
 151  "loc_FF861E54:\n"
 152                  "BL      sub_FF8625D4\n"
 153                  "B       loc_FF861E4C\n"
 154  "loc_FF861E5C:\n"
 155                  "BL      sub_FF8625DC\n"
 156                  "B       loc_FF861FAC\n"
 157  "loc_FF861E64:\n"
 158                  "BL      sub_FF86272C\n"
 159                  "B       loc_FF861EC8\n"
 160  "loc_FF861E6C:\n"
 161                  "LDR     R5, [R0,#0xC]\n"
 162                  "BL      sub_FF8625E4\n"
 163                  "MOV     R0, R5\n"
 164                  "BL      sub_FF934B78\n"
 165                  "TST     R0, #1\n"
 166                  "MOV     R8, R0\n"
 167                  "BNE     loc_FF861EAC\n"
 168                  "BL      sub_FF871938\n"
 169                  "STR     R0, [R5,#0x18]\n"
 170                  "MOV     R0, R5\n"
 171                  "BL      sub_FF935A84\n"
 172                  "MOV     R0, R5\n"
 173                  "BL      sub_FF935E90\n"
 174                  "MOV     R8, R0\n"
 175                  "LDR     R0, [R5,#0x18]\n"
 176                  "BL      sub_FF871B4C\n"
 177  "loc_FF861EAC:\n"
 178                  "BL      sub_FF8625D4\n"
 179                  "MOV     R2, R5\n"
 180                  "MOV     R1, #9\n"
 181                  "MOV     R0, R8\n"
 182                  "BL      sub_FF860288\n"
 183                  "B       loc_FF861FAC\n"
 184  "loc_FF861EC4:\n"
 185                  "BL      sub_FF86278C\n"
 186  "loc_FF861EC8:\n"
 187                  "BL      sub_FF85FDFC\n"
 188                  "B       loc_FF861FAC\n"
 189  "loc_FF861ED0:\n"
 190                  "LDR     R0, [R4,#0x54]\n"
 191                  "BL      sub_FF862BA0\n"
 192                  "B       loc_FF861FAC\n"
 193  "loc_FF861EDC:\n"
 194                  "BL      sub_FF862E50\n"
 195                  "B       loc_FF861FAC\n"
 196  "loc_FF861EE4:\n"
 197                  "BL      sub_FF862EE0\n"
 198                  "B       loc_FF861FAC\n"
 199  "loc_FF861EEC:\n"
 200                  "BL      sub_FF8625D4\n"
 201                  "B       loc_FF861FAC\n"
 202  "loc_FF861EF4:\n"
 203                  "BL      sub_FF934D94\n"
 204                  "B       loc_FF861FAC\n"
 205  "loc_FF861EFC:\n"
 206                  "BL      sub_FF934F7C\n"
 207                  "B       loc_FF861FAC\n"
 208  "loc_FF861F04:\n"
 209                  "BL      sub_FF93500C\n"
 210                  "B       loc_FF861FAC\n"
 211  "loc_FF861F0C:\n"
 212                  "BL      sub_FF9350C0\n"
 213                  "B       loc_FF861FAC\n"
 214  "loc_FF861F14:\n"
 215                  "BL      sub_FF9352C0\n"
 216                  "B       loc_FF861FAC\n"
 217  "loc_FF861F1C:\n"
 218                  "BL      sub_FF935318\n"
 219                  "B       loc_FF861FAC\n"
 220  "loc_FF861F24:\n"
 221                  "MOV     R0, #0\n"
 222                  "BL      sub_FF9353A0\n"
 223                  "B       loc_FF861FAC\n"
 224  "loc_FF861F30:\n"
 225                  "BL      sub_FF9354D8\n"
 226                  "B       loc_FF861FAC\n"
 227  "loc_FF861F38:\n"
 228                  "BL      sub_FF935568\n"
 229                  "B       loc_FF861FAC\n"
 230  "loc_FF861F40:\n"
 231                  "BL      sub_FF935628\n"
 232                  "B       loc_FF861FAC\n"
 233  "loc_FF861F48:\n"
 234                  "BL      sub_FF86298C\n"
 235                  "B       loc_FF861FAC\n"
 236  "loc_FF861F50:\n"
 237                  "BL      sub_FF862A2C\n"
 238                  "BL      sub_FF824944\n"
 239                  "B       loc_FF861FAC\n"
 240  "loc_FF861F5C:\n"
 241                  "BL      sub_FF93517C\n"
 242                  "B       loc_FF861FAC\n"
 243  "loc_FF861F64:\n"
 244                  "BL      sub_FF9351E8\n"
 245                  "B       loc_FF861FAC\n"
 246  "loc_FF861F6C:\n"
 247                  "BL      sub_FF864438\n"
 248                  "B       loc_FF861FAC\n"
 249  "loc_FF861F74:\n"
 250                  "BL      sub_FF8644A0\n"
 251                  "B       loc_FF861FAC\n"
 252  "loc_FF861F7C:\n"
 253                  "BL      sub_FF8644FC\n"
 254                  "BL      sub_FF8644BC\n"
 255                  "B       loc_FF861FAC\n"
 256  "loc_FF861F88:\n"
 257                  "MOV     R0, #1\n"
 258                  "BL      sub_FF9366B0\n"
 259                  "LDRH    R0, [R4,#0x8C]\n"
 260                  "CMP     R0, #3\n"
 261                  "BLNE    sub_FF8646F8\n"
 262                  "B       loc_FF861FAC\n"
 263  "loc_FF861FA0:\n"
 264                  "LDR     R1, =0x65E\n"
 265                  "LDR     R0, =0xFF861840\n"
 266                  "BL      sub_FF81B1CC\n"
 267  "loc_FF861FAC:\n"
 268                  "LDR     R0, [SP]\n"
 269                  "LDR     R1, [R0,#4]\n"
 270                  "LDR     R0, [R6,#8]\n"
 271                  "BL      sub_FF8694D4\n"
 272                  "LDR     R5, [SP]\n"
 273                  "LDR     R0, [R5,#8]\n"
 274                  "CMP     R0, #0\n"
 275                  "LDREQ   R1, =0x11D\n"
 276                  "LDREQ   R0, =0xFF861840\n"
 277                  "BLEQ    sub_FF81B1CC\n"
 278                  "STR     R7, [R5,#8]\n"
 279                  "B       loc_FF861D10\n"
 280  );
 281 } 
 282 
 283 
 284 
 285 void __attribute__((naked,noinline)) sub_FF8620C4_my(){
 286  asm volatile(
 287                  "STMFD   SP!, {R4-R6,LR}\n"
 288                  "LDR     R4, [R0,#0xC]\n"
 289                  "LDR     R6, =0x1AF4C\n"
 290                  "LDR     R0, [R4,#8]\n"
 291                  "MOV     R5, #0\n"
 292                  "ORR     R0, R0, #1\n"
 293                  "STR     R0, [R4,#8]\n"
 294                  "LDR     R0, [R6,#0x24]\n"
 295                  "CMP     R0, #0\n"
 296                  "MOVEQ   R0, #2\n"
 297                  "BLEQ    sub_FF85BF28\n"
 298                  "BL      sub_FF8625E4\n"
 299                  "LDR     R0, [R6,#0x24]\n"
 300                  "CMP     R0, #0\n"
 301                  "BNE     loc_FF862174\n"
 302                  "MOV     R0, #0\n"
 303                  "BL      sub_FF9366B0\n"
 304                  "MOV     R0, R4\n"
 305                  "BL      sub_FF862934\n"
 306                  "MOV     R0, R4\n"
 307                  "BL      sub_FF9347C0\n"
 308                  "CMP     R0, #0\n"
 309                  "BEQ     loc_FF862144\n"
 310                  "BL      sub_FF9366F0\n"
 311                  "MOV     R0, R4\n"
 312                  "BL      sub_FF9348A4\n"
 313                  "TST     R0, #1\n"
 314                  "MOVNE   R2, R4\n"
 315                  "LDMNEFD SP!, {R4-R6,LR}\n"
 316                  "MOVNE   R1, #1\n"
 317                  "BNE     sub_FF860288\n"
 318                  "B       loc_FF862150\n"
 319  "loc_FF862144:\n"
 320                  "MOV     R0, R4\n"
 321                  "BL      sub_FF934840\n"
 322                  "BL      sub_FF9366F0\n"
 323  "loc_FF862150:\n"
 324                  "MOV     R0, R4\n"
 325                  "BL      sub_FF8617C4\n"
 326                  "MOV     R0, R4\n"
 327                  "BL      sub_FF935A84\n"
 328                  "BL      sub_FF936540\n"
 329                  "MOV     R0, R4\n"
 330                  "BL      sub_FF935BC8_my\n"             //----------->
 331                  "MOV     R5, R0\n"
 332                  "BL      capt_seq_hook_raw_here\n"      // +
 333                  "B       loc_FF862184\n"
 334  "loc_FF862174:\n"
 335                  "LDR     R0, =0x52F0\n"
 336                  "LDR     R0, [R0,#4]\n"
 337                  "CMP     R0, #0\n"
 338                  "MOVNE   R5, #0x1D\n"
 339  "loc_FF862184:\n"
 340                  "BL      sub_FF8644A0\n"
 341                  "BL      sub_FF8644E8\n"
 342                  "BL      sub_FF864528\n"
 343                  "MOV     R2, R4\n"
 344                  "MOV     R1, #1\n"
 345                  "MOV     R0, R5\n"
 346                  "BL      sub_FF860288\n"
 347                  "BL      sub_FF935E20\n"
 348                  "CMP     R0, #0\n"
 349                  "LDRNE   R0, [R4,#8]\n"
 350                  "ORRNE   R0, R0, #0x2000\n"
 351                  "STRNE   R0, [R4,#8]\n"
 352                  "LDMFD   SP!, {R4-R6,PC}\n"
 353  );
 354 }
 355 
 356 
 357 
 358 void __attribute__((naked,noinline)) sub_FF935BC8_my(){
 359  asm volatile(
 360                  "STMFD   SP!, {R1-R7,LR}\n"
 361                  "MOV     R4, R0\n"
 362                  "BL      sub_FF936814\n"
 363                  "MVN     R1, #0x0\n"
 364                  "BL      sub_FF869508\n"
 365                  "MOV     R2, #4\n"
 366                  "ADD     R1, SP, #0x4\n"
 367                  "MOV     R0, #0x8A\n"
 368                  "BL      sub_FF8717A8\n"
 369                  "TST     R0, #1\n"
 370                  "LDRNE   R1, =0x373\n"
 371                  "LDRNE   R0, =0xFF935B94\n"
 372                  "BLNE    sub_FF81B1CC\n"
 373                  "LDR     R7, =0x1B00C\n"
 374                  "LDR     R6, =0x1AF4C\n"
 375                  "LDRSH   R1, [R7,#0xE]\n"
 376                  "LDR     R0, [R6,#0x88]\n"
 377                  "BL      sub_FF8F8F44\n"
 378                  "BL      sub_FF848C84\n"
 379                  "LDR     R3, =0x926C\n"
 380                  "STRH    R0, [R4,#0x94]\n"
 381                  "STR     R3, [SP]\n"
 382                  "MOV     R1, R0\n"
 383                  "LDRH    R0, [R6,#0x5C]\n"
 384                  "LDRSH   R2, [R7,#0xC]\n"
 385                  "SUB     R3, R3, #4\n"
 386                  "BL      sub_FF936E0C\n"
 387                  "BL      wait_until_remote_button_is_released\n"     // +
 388                  "BL      capt_seq_hook_set_nr\n"                     // +
 389                  "B       sub_FF935C34\n"                             // continue function in firmware
 390  );
 391 }
 392 
 393 
 394 /*************************************************************/
 395 void __attribute__((naked,noinline)) exp_drv_task(){
 396  // task_ExpDrvTask
 397  asm volatile(
 398                  "STMFD   SP!, {R4-R8,LR}\n"
 399                  "SUB     SP, SP, #0x20\n"
 400                  "LDR     R8, =0xBB8\n"
 401                  "LDR     R7, =0x69C8\n"
 402                  "LDR     R5, =0x1FFC4\n"
 403                  "MOV     R0, #0\n"
 404                  "ADD     R6, SP, #0x10\n"
 405                  "STR     R0, [SP,#0xC]\n"
 406  "loc_FF8A4628:\n"
 407                  "LDR     R0, [R7,#0x20]\n"
 408                  "MOV     R2, #0\n"
 409                  "ADD     R1, SP, #0x1C\n"
 410                  "BL      sub_FF827098\n"
 411                  "LDR     R0, [SP,#0xC]\n"
 412                  "CMP     R0, #1\n"
 413                  "BNE     loc_FF8A4670\n"
 414                  "LDR     R0, [SP,#0x1C]\n"
 415                  "LDR     R0, [R0]\n"
 416                  "CMP     R0, #0x13\n"
 417                  "CMPNE   R0, #0x14\n"
 418                  "CMPNE   R0, #0x15\n"
 419                  "BEQ     loc_FF8A478C\n"
 420                  "CMP     R0, #0x27\n"
 421                  "BEQ     loc_FF8A4764\n"
 422                  "ADD     R1, SP, #0xC\n"
 423                  "MOV     R0, #0\n"
 424                  "BL      sub_FF8A45B8\n"
 425  "loc_FF8A4670:\n"
 426                  "LDR     R0, [SP,#0x1C]\n"
 427                  "LDR     R1, [R0]\n"
 428                  "CMP     R1, #0x2C\n"
 429                  "BNE     loc_FF8A46A0\n"
 430                  "LDR     R0, [SP,#0x1C]\n"
 431                  "BL      sub_FF8A5878\n"
 432                  "LDR     R0, [R7,#0x1C]\n"
 433                  "MOV     R1, #1\n"
 434                  "BL      sub_FF8694D4\n"
 435                  "BL      sub_FF81B184\n"
 436                  "ADD     SP, SP, #0x20\n"
 437                  "LDMFD   SP!, {R4-R8,PC}\n"
 438  "loc_FF8A46A0:\n"
 439                  "CMP     R1, #0x2B\n"
 440                  "BNE     loc_FF8A46BC\n"
 441                  "LDR     R2, [R0,#0x88]!\n"
 442                  "LDR     R1, [R0,#4]\n"
 443                  "MOV     R0, R1\n"
 444                  "BLX     R2\n"
 445                  "B       loc_FF8A4BF8\n"
 446  "loc_FF8A46BC:\n"
 447                  "CMP     R1, #0x25\n"
 448                  "BNE     loc_FF8A470C\n"
 449                  "LDR     R0, [R7,#0x1C]\n"
 450                  "MOV     R1, #0x80\n"
 451                  "BL      sub_FF869508\n"
 452                  "LDR     R0, =0xFF8A1058\n"
 453                  "MOV     R1, #0x80\n"
 454                  "BL      sub_FF927F78\n"
 455                  "LDR     R0, [R7,#0x1C]\n"
 456                  "MOV     R2, R8\n"
 457                  "MOV     R1, #0x80\n"
 458                  "BL      sub_FF869414\n"
 459                  "TST     R0, #1\n"
 460                  "LDRNE   R1, =0xD36\n"
 461                  "BNE     loc_FF8A4750\n"
 462  "loc_FF8A46F8:\n"
 463                  "LDR     R1, [SP,#0x1C]\n"
 464                  "LDR     R0, [R1,#0x8C]\n"
 465                  "LDR     R1, [R1,#0x88]\n"
 466                  "BLX     R1\n"
 467                  "B       loc_FF8A4BF8\n"
 468  "loc_FF8A470C:\n"
 469                  "CMP     R1, #0x26\n"
 470                  "BNE     loc_FF8A475C\n"
 471                  "ADD     R1, SP, #0xC\n"
 472                  "BL      sub_FF8A45B8\n"
 473                  "LDR     R0, [R7,#0x1C]\n"
 474                  "MOV     R1, #0x100\n"
 475                  "BL      sub_FF869508\n"
 476                  "LDR     R0, =0xFF8A1068\n"
 477                  "MOV     R1, #0x100\n"
 478                  "BL      sub_FF928200\n"
 479                  "LDR     R0, [R7,#0x1C]\n"
 480                  "MOV     R2, R8\n"
 481                  "MOV     R1, #0x100\n"
 482                  "BL      sub_FF869414\n"
 483                  "TST     R0, #1\n"
 484                  "BEQ     loc_FF8A46F8\n"
 485                  "MOV     R1, #0xD40\n"
 486  "loc_FF8A4750:\n"
 487                  "LDR     R0, =0xFF8A1758\n"
 488                  "BL      sub_FF81B1CC\n"
 489                  "B       loc_FF8A46F8\n"
 490  "loc_FF8A475C:\n"
 491                  "CMP     R1, #0x27\n"
 492                  "BNE     loc_FF8A4774\n"
 493  "loc_FF8A4764:\n"
 494                  "LDR     R0, [SP,#0x1C]\n"
 495                  "ADD     R1, SP, #0xC\n"
 496                  "BL      sub_FF8A45B8\n"
 497                  "B       loc_FF8A46F8\n"
 498  "loc_FF8A4774:\n"
 499                  "CMP     R1, #0x2A\n"
 500                  "BNE     loc_FF8A478C\n"
 501                  "BL      sub_FF8941A8\n"
 502                  "BL      sub_FF894E34\n"
 503                  "BL      sub_FF89496C\n"
 504                  "B       loc_FF8A46F8\n"
 505  "loc_FF8A478C:\n"
 506                  "LDR     R0, [SP,#0x1C]\n"
 507                  "MOV     R4, #1\n"
 508                  "LDR     R1, [R0]\n"
 509                  "CMP     R1, #0x11\n"
 510                  "CMPNE   R1, #0x12\n"
 511                  "BNE     loc_FF8A47FC\n"
 512                  "LDR     R1, [R0,#0x7C]\n"
 513                  "ADD     R1, R1, R1,LSL#1\n"
 514                  "ADD     R1, R0, R1,LSL#2\n"
 515                  "SUB     R1, R1, #8\n"
 516                  "LDMIA   R1, {R2-R4}\n"
 517                  "STMIA   R6, {R2-R4}\n"
 518                  "BL      sub_FF8A30D8\n"
 519                  "LDR     R0, [SP,#0x1C]\n"
 520                  "LDR     R1, [R0,#0x7C]\n"
 521                  "LDR     R3, [R0,#0x88]\n"
 522                  "LDR     R2, [R0,#0x8C]\n"
 523                  "ADD     R0, R0, #4\n"
 524                  "BLX     R3\n"
 525                  "LDR     R0, [SP,#0x1C]\n"
 526                  "BL      sub_FF8A5C4C\n"
 527                  "LDR     R0, [SP,#0x1C]\n"
 528                  "LDR     R1, [R0,#0x7C]\n"
 529                  "LDR     R3, [R0,#0x90]\n"
 530                  "LDR     R2, [R0,#0x94]\n"
 531                  "ADD     R0, R0, #4\n"
 532                  "BLX     R3\n"
 533                  "B       loc_FF8A4B38\n"
 534  "loc_FF8A47FC:\n"
 535                  "CMP     R1, #0x13\n"
 536                  "CMPNE   R1, #0x14\n"
 537                  "CMPNE   R1, #0x15\n"
 538                  "BNE     loc_FF8A48B0\n"
 539                  "ADD     R3, SP, #0xC\n"
 540                  "MOV     R2, SP\n"
 541                  "ADD     R1, SP, #0x10\n"
 542                  "BL      sub_FF8A3320\n"
 543                  "CMP     R0, #1\n"
 544                  "MOV     R4, R0\n"
 545                  "CMPNE   R4, #5\n"
 546                  "BNE     loc_FF8A484C\n"
 547                  "LDR     R0, [SP,#0x1C]\n"
 548                  "MOV     R2, R4\n"
 549                  "LDR     R1, [R0,#0x7C]!\n"
 550                  "LDR     R12, [R0,#0xC]!\n"
 551                  "LDR     R3, [R0,#4]\n"
 552                  "MOV     R0, SP\n"
 553                  "BLX     R12\n"
 554                  "B       loc_FF8A4884\n"
 555  "loc_FF8A484C:\n"
 556                  "LDR     R0, [SP,#0x1C]\n"
 557                  "CMP     R4, #2\n"
 558                  "LDR     R3, [R0,#0x8C]\n"
 559                  "CMPNE   R4, #6\n"
 560                  "BNE     loc_FF8A4898\n"
 561                  "LDR     R12, [R0,#0x88]\n"
 562                  "MOV     R0, SP\n"
 563                  "MOV     R2, R4\n"
 564                  "MOV     R1, #1\n"
 565                  "BLX     R12\n"
 566                  "LDR     R0, [SP,#0x1C]\n"
 567                  "MOV     R2, SP\n"
 568                  "ADD     R1, SP, #0x10\n"
 569                  "BL      sub_FF8A42CC\n"
 570  "loc_FF8A4884:\n"
 571                  "LDR     R0, [SP,#0x1C]\n"
 572                  "LDR     R2, [SP,#0xC]\n"
 573                  "MOV     R1, R4\n"
 574                  "BL      sub_FF8A4558\n"
 575                  "B       loc_FF8A4B38\n"
 576  "loc_FF8A4898:\n"
 577                  "LDR     R1, [R0,#0x7C]\n"
 578                  "LDR     R12, [R0,#0x88]\n"
 579                  "ADD     R0, R0, #4\n"
 580                  "MOV     R2, R4\n"
 581                  "BLX     R12\n"
 582                  "B       loc_FF8A4B38\n"
 583  "loc_FF8A48B0:\n"
 584                  "CMP     R1, #0x21\n"
 585                  "CMPNE   R1, #0x22\n"
 586                  "BNE     loc_FF8A48FC\n"
 587                  "LDR     R1, [R0,#0x7C]\n"
 588                  "ADD     R1, R1, R1,LSL#1\n"
 589                  "ADD     R1, R0, R1,LSL#2\n"
 590                  "SUB     R1, R1, #8\n"
 591                  "LDMIA   R1, {R2-R4}\n"
 592                  "STMIA   R6, {R2-R4}\n"
 593                  "BL      sub_FF8A2664\n"
 594                  "LDR     R0, [SP,#0x1C]\n"
 595                  "LDR     R1, [R0,#0x7C]\n"
 596                  "LDR     R3, [R0,#0x88]\n"
 597                  "LDR     R2, [R0,#0x8C]\n"
 598                  "ADD     R0, R0, #4\n"
 599                  "BLX     R3\n"
 600                  "LDR     R0, [SP,#0x1C]\n"
 601                  "BL      sub_FF8A2954\n"
 602                  "B       loc_FF8A4B38\n"
 603  "loc_FF8A48FC:\n"
 604                  "ADD     R1, R0, #4\n"
 605                  "LDMIA   R1, {R2,R3,R12}\n"
 606                  "STMIA   R6, {R2,R3,R12}\n"
 607                  "LDR     R1, [R0]\n"
 608                  "CMP     R1, #0x24\n"
 609                  "ADDLS   PC, PC, R1,LSL#2\n"
 610                  "B       loc_FF8A4B18\n"
 611  "loc_FF8A4918:\n"
 612                  "B       loc_FF8A49AC\n"
 613  "loc_FF8A491C:\n"
 614                  "B       loc_FF8A49AC\n"
 615  "loc_FF8A4920:\n"
 616                  "B       loc_FF8A4A00\n"
 617  "loc_FF8A4924:\n"
 618                  "B       loc_FF8A4A08\n"
 619  "loc_FF8A4928:\n"
 620                  "B       loc_FF8A4A08\n"
 621  "loc_FF8A492C:\n"
 622                  "B       loc_FF8A4A08\n"
 623  "loc_FF8A4930:\n"
 624                  "B       loc_FF8A49AC\n"
 625  "loc_FF8A4934:\n"
 626                  "B       loc_FF8A4A00\n"
 627  "loc_FF8A4938:\n"
 628                  "B       loc_FF8A4A08\n"
 629  "loc_FF8A493C:\n"
 630                  "B       loc_FF8A4A08\n"
 631  "loc_FF8A4940:\n"
 632                  "B       loc_FF8A4A20\n"
 633  "loc_FF8A4944:\n"
 634                  "B       loc_FF8A4A20\n"
 635  "loc_FF8A4948:\n"
 636                  "B       loc_FF8A4B0C\n"
 637  "loc_FF8A494C:\n"
 638                  "B       loc_FF8A4B14\n"
 639  "loc_FF8A4950:\n"
 640                  "B       loc_FF8A4B14\n"
 641  "loc_FF8A4954:\n"
 642                  "B       loc_FF8A4B14\n"
 643  "loc_FF8A4958:\n"
 644                  "B       loc_FF8A4B14\n"
 645  "loc_FF8A495C:\n"
 646                  "B       loc_FF8A4B18\n"
 647  "loc_FF8A4960:\n"
 648                  "B       loc_FF8A4B18\n"
 649  "loc_FF8A4964:\n"
 650                  "B       loc_FF8A4B18\n"
 651  "loc_FF8A4968:\n"
 652                  "B       loc_FF8A4B18\n"
 653  "loc_FF8A496C:\n"
 654                  "B       loc_FF8A4B18\n"
 655  "loc_FF8A4970:\n"
 656                  "B       loc_FF8A4A10\n"
 657  "loc_FF8A4974:\n"
 658                  "B       loc_FF8A4A18\n"
 659  "loc_FF8A4978:\n"
 660                  "B       loc_FF8A4A18\n"
 661  "loc_FF8A497C:\n"
 662                  "B       loc_FF8A4A2C\n"
 663  "loc_FF8A4980:\n"
 664                  "B       loc_FF8A4A2C\n"
 665  "loc_FF8A4984:\n"
 666                  "B       loc_FF8A4A34\n"
 667  "loc_FF8A4988:\n"
 668                  "B       loc_FF8A4A64\n"
 669  "loc_FF8A498C:\n"
 670                  "B       loc_FF8A4A94\n"
 671  "loc_FF8A4990:\n"
 672                  "B       loc_FF8A4AC4\n"
 673  "loc_FF8A4994:\n"
 674                  "B       loc_FF8A4AF4\n"
 675  "loc_FF8A4998:\n"
 676                  "B       loc_FF8A4AF4\n"
 677  "loc_FF8A499C:\n"
 678                  "B       loc_FF8A4B18\n"
 679  "loc_FF8A49A0:\n"
 680                  "B       loc_FF8A4B18\n"
 681  "loc_FF8A49A4:\n"
 682                  "B       loc_FF8A4AFC\n"
 683  "loc_FF8A49A8:\n"
 684                  "B       loc_FF8A4B04\n"
 685  "loc_FF8A49AC:\n"
 686                  "BL      sub_FF8A1544\n"
 687                  "B       loc_FF8A4B18\n"
 688  "loc_FF8A4A00:\n"
 689                  "BL      sub_FF8A17CC\n"
 690                  "B       loc_FF8A4B18\n"
 691  "loc_FF8A4A08:\n"
 692                  "BL      sub_FF8A19D0\n"
 693                  "B       loc_FF8A4B18\n"
 694  "loc_FF8A4A10:\n"
 695                  "BL      sub_FF8A1C38\n"
 696                  "B       loc_FF8A4B18\n"
 697  "loc_FF8A4A18:\n"
 698                  "BL      sub_FF8A1E2C\n"
 699                  "B       loc_FF8A4B18\n"
 700  "loc_FF8A4A20:\n"
 701                  "BL      sub_FF8A2094_my\n"  //------------>
 702                  "MOV     R4, #0\n"
 703                  "B       loc_FF8A4B18\n"
 704  "loc_FF8A4A2C:\n"
 705                  "BL      sub_FF8A21D0\n"
 706                  "B       loc_FF8A4B18\n"
 707  "loc_FF8A4A34:\n"
 708                  "LDRH    R1, [R0,#4]\n"
 709                  "STRH    R1, [SP,#0x10]\n"
 710                  "LDRH    R1, [R5,#2]\n"
 711                  "STRH    R1, [SP,#0x12]\n"
 712                  "LDRH    R1, [R5,#4]\n"
 713                  "STRH    R1, [SP,#0x14]\n"
 714                  "LDRH    R1, [R5,#6]\n"
 715                  "STRH    R1, [SP,#0x16]\n"
 716                  "LDRH    R1, [R0,#0xC]\n"
 717                  "STRH    R1, [SP,#0x18]\n"
 718                  "BL      sub_FF8A58EC\n"
 719                  "B       loc_FF8A4B18\n"
 720  "loc_FF8A4A64:\n"
 721                  "LDRH    R1, [R0,#4]\n"
 722                  "STRH    R1, [SP,#0x10]\n"
 723                  "LDRH    R1, [R5,#2]\n"
 724                  "STRH    R1, [SP,#0x12]\n"
 725                  "LDRH    R1, [R5,#4]\n"
 726                  "STRH    R1, [SP,#0x14]\n"
 727                  "LDRH    R1, [R5,#6]\n"
 728                  "STRH    R1, [SP,#0x16]\n"
 729                  "LDRH    R1, [R5,#8]\n"
 730                  "STRH    R1, [SP,#0x18]\n"
 731                  "BL      sub_FF8A5A68\n"
 732                  "B       loc_FF8A4B18\n"
 733  "loc_FF8A4A94:\n"
 734                  "LDRH    R1, [R5]\n"
 735                  "STRH    R1, [SP,#0x10]\n"
 736                  "LDRH    R1, [R0,#6]\n"
 737                  "STRH    R1, [SP,#0x12]\n"
 738                  "LDRH    R1, [R5,#4]\n"
 739                  "STRH    R1, [SP,#0x14]\n"
 740                  "LDRH    R1, [R5,#6]\n"
 741                  "STRH    R1, [SP,#0x16]\n"
 742                  "LDRH    R1, [R5,#8]\n"
 743                  "STRH    R1, [SP,#0x18]\n"
 744                  "BL      sub_FF8A5B14\n"
 745                  "B       loc_FF8A4B18\n"
 746  "loc_FF8A4AC4:\n"
 747                  "LDRH    R1, [R5]\n"
 748                  "STRH    R1, [SP,#0x10]\n"
 749                  "LDRH    R1, [R5,#2]\n"
 750                  "STRH    R1, [SP,#0x12]\n"
 751                  "LDRH    R1, [R5,#4]\n"
 752                  "STRH    R1, [SP,#0x14]\n"
 753                  "LDRH    R1, [R5,#6]\n"
 754                  "STRH    R1, [SP,#0x16]\n"
 755                  "LDRH    R1, [R0,#0xC]\n"
 756                  "STRH    R1, [SP,#0x18]\n"
 757                  "BL      sub_FF8A5BB4\n"
 758                  "B       loc_FF8A4B18\n"
 759  "loc_FF8A4AF4:\n"
 760                  "BL      sub_FF8A2444\n"
 761                  "B       loc_FF8A4B18\n"
 762  "loc_FF8A4AFC:\n"
 763                  "BL      sub_FF8A2A58\n"
 764                  "B       loc_FF8A4B18\n"
 765  "loc_FF8A4B04:\n"
 766                  "BL      sub_FF8A2C90\n"
 767                  "B       loc_FF8A4B18\n"
 768  "loc_FF8A4B0C:\n"
 769                  "BL      sub_FF8A2E08\n"
 770                  "B       loc_FF8A4B18\n"
 771  "loc_FF8A4B14:\n"
 772                  "BL      sub_FF8A2FA0\n"
 773  "loc_FF8A4B18:\n"
 774                  "LDR     R0, [SP,#0x1C]\n"
 775                  "LDR     R1, [R0,#0x7C]\n"
 776                  "LDR     R3, [R0,#0x88]\n"
 777                  "LDR     R2, [R0,#0x8C]\n"
 778                  "ADD     R0, R0, #4\n"
 779                  "BLX     R3\n"
 780                  "CMP     R4, #1\n"
 781                  "BNE     loc_FF8A4B80\n"
 782  "loc_FF8A4B38:\n"
 783                  "LDR     R0, [SP,#0x1C]\n"
 784                  "MOV     R2, #0xC\n"
 785                  "LDR     R1, [R0,#0x7C]\n"
 786                  "ADD     R1, R1, R1,LSL#1\n"
 787                  "ADD     R0, R0, R1,LSL#2\n"
 788                  "SUB     R4, R0, #8\n"
 789                  "LDR     R0, =0x1FFC4\n"
 790                  "ADD     R1, SP, #0x10\n"
 791                  "BL      sub_FFAD1868\n"
 792                  "LDR     R0, =0x1FFD0\n"
 793                  "MOV     R2, #0xC\n"
 794                  "ADD     R1, SP, #0x10\n"
 795                  "BL      sub_FFAD1868\n"
 796                  "LDR     R0, =0x1FFDC\n"
 797                  "MOV     R2, #0xC\n"
 798                  "MOV     R1, R4\n"
 799                  "BL      sub_FFAD1868\n"
 800                  "B       loc_FF8A4BF8\n"
 801  "loc_FF8A4B80:\n"
 802                  "LDR     R0, [SP,#0x1C]\n"
 803                  "LDR     R0, [R0]\n"
 804                  "CMP     R0, #0xB\n"
 805                  "BNE     loc_FF8A4BC8\n"
 806                  "MOV     R3, #0\n"
 807                  "STR     R3, [SP]\n"
 808                  "MOV     R3, #1\n"
 809                  "MOV     R2, #1\n"
 810                  "MOV     R1, #1\n"
 811                  "MOV     R0, #0\n"
 812                  "BL      sub_FF8A134C\n"
 813                  "MOV     R3, #0\n"
 814                  "STR     R3, [SP]\n"
 815                  "MOV     R3, #1\n"
 816                  "MOV     R2, #1\n"
 817                  "MOV     R1, #1\n"
 818                  "MOV     R0, #0\n"
 819                  "B       loc_FF8A4BF4\n"
 820  "loc_FF8A4BC8:\n"
 821                  "MOV     R3, #1\n"
 822                  "MOV     R2, #1\n"
 823                  "MOV     R1, #1\n"
 824                  "MOV     R0, #1\n"
 825                  "STR     R3, [SP]\n"
 826                  "BL      sub_FF8A134C\n"
 827                  "MOV     R3, #1\n"
 828                  "MOV     R2, #1\n"
 829                  "MOV     R1, #1\n"
 830                  "MOV     R0, #1\n"
 831                  "STR     R3, [SP]\n"
 832  "loc_FF8A4BF4:\n"
 833                  "BL      sub_FF8A148C\n"
 834  "loc_FF8A4BF8:\n"
 835                  "LDR     R0, [SP,#0x1C]\n"
 836                  "BL      sub_FF8A5878\n"
 837                  "B       loc_FF8A4628\n"
 838  );
 839 }
 840 
 841 void __attribute__((naked,noinline)) sub_FF8A2094_my(){ // 
 842  asm volatile(
 843                  "STMFD   SP!, {R4-R8,LR}\n"
 844                  "LDR     R7, =0x69C8\n"
 845                  "MOV     R4, R0\n"
 846                  "LDR     R0, [R7,#0x1C]\n"
 847                  "MOV     R1, #0x3E\n"
 848                  "BL      sub_FF869508\n"
 849                  "LDRSH   R0, [R4,#4]\n"
 850                  "MOV     R2, #0\n"
 851                  "MOV     R1, #0\n"
 852                  "BL      sub_FF8A10DC\n"
 853                  "MOV     R6, R0\n"
 854                  "LDRSH   R0, [R4,#6]\n"
 855                  "BL      sub_FF8A11EC\n"
 856                  "LDRSH   R0, [R4,#8]\n"
 857                  "BL      sub_FF8A1244\n"
 858                  "LDRSH   R0, [R4,#0xA]\n"
 859                  "BL      sub_FF8A129C\n"
 860                  "LDRSH   R0, [R4,#0xC]\n"
 861                  "BL      sub_FF8A12F4\n"
 862                  "MOV     R5, R0\n"
 863                  "LDR     R0, [R4]\n"
 864                  "LDR     R8, =0x1FFDC\n"
 865                  "CMP     R0, #0xB\n"
 866                  "MOVEQ   R6, #0\n"
 867                  "MOVEQ   R5, #0\n"
 868                  "BEQ     loc_FF8A2124\n"
 869                  "CMP     R6, #1\n"
 870                  "BNE     loc_FF8A2124\n"
 871                  "LDRSH   R0, [R4,#4]\n"
 872                  "LDR     R1, =0xFF8A1048\n"
 873                  "MOV     R2, #2\n"
 874                  "BL      sub_FF9280CC\n"
 875                  "STRH    R0, [R4,#4]\n"
 876                  "MOV     R0, #0\n"
 877                  "STR     R0, [R7,#0x28]\n"
 878                  "B       loc_FF8A212C\n"
 879  "loc_FF8A2124:\n"
 880                  "LDRH    R0, [R8]\n"
 881                  "STRH    R0, [R4,#4]\n"
 882  "loc_FF8A212C:\n"
 883                  "CMP     R5, #1\n"
 884                  "LDRNEH  R0, [R8,#8]\n"
 885                  "BNE     loc_FF8A2148\n"
 886                  "LDRSH   R0, [R4,#0xC]\n"
 887                  "LDR     R1, =0xFF8A10CC\n"
 888                  "MOV     R2, #0x20\n"
 889                  "BL      sub_FF8A58A8\n"
 890  "loc_FF8A2148:\n"
 891                  "STRH    R0, [R4,#0xC]\n"
 892                  "LDRSH   R0, [R4,#6]\n"
 893                  "BL      sub_FF893F18_my\n"   //------------>
 894                  "LDRSH   R0, [R4,#8]\n"
 895                  "MOV     R1, #1\n"
 896                  "BL      sub_FF894664\n"
 897                  "MOV     R1, #0\n"
 898                  "ADD     R0, R4, #8\n"
 899                  "BL      sub_FF8946EC\n"
 900                  "LDRSH   R0, [R4,#0xE]\n"
 901                  "BL      sub_FF89CD74\n"
 902                  "LDR     R4, =0xBB8\n"
 903                  "CMP     R6, #1\n"
 904                  "BNE     loc_FF8A21A0\n"
 905                  "LDR     R0, [R7,#0x1C]\n"
 906                  "MOV     R2, R4\n"
 907                  "MOV     R1, #2\n"
 908                  "BL      sub_FF869414\n"
 909                  "TST     R0, #1\n"
 910                  "LDRNE   R1, =0x54D\n"
 911                  "LDRNE   R0, =0xFF8A1758\n"
 912                  "BLNE    sub_FF81B1CC\n"
 913  "loc_FF8A21A0:\n"
 914                  "CMP     R5, #1\n"
 915                  "LDMNEFD SP!, {R4-R8,PC}\n"
 916                  "LDR     R0, [R7,#0x1C]\n"
 917                  "MOV     R2, R4\n"
 918                  "MOV     R1, #0x20\n"
 919                  "BL      sub_FF869414\n"
 920                  "TST     R0, #1\n"
 921                  "LDRNE   R1, =0x552\n"
 922                  "LDRNE   R0, =0xFF8A1758\n"
 923                  "LDMNEFD SP!, {R4-R8,LR}\n"
 924                  "BNE     sub_FF81B1CC\n"
 925                  "LDMFD   SP!, {R4-R8,PC}\n"
 926  );
 927 }
 928 
 929 void __attribute__((naked,noinline)) sub_FF893F18_my(){
 930  asm volatile(
 931 
 932                  "STMFD   SP!, {R4-R6,LR}\n"
 933                  "LDR     R5, =0x66F8\n"
 934                  "MOV     R4, R0\n"
 935                  "LDR     R0, [R5,#4]\n"
 936                  "CMP     R0, #1\n"
 937                  "MOVNE   R1, #0x140\n"
 938                  "LDRNE   R0, =0xFF893D1C\n"
 939                  "BLNE    sub_FF81B1CC\n"
 940                  "CMN     R4, #0xC00\n"
 941                  "LDREQSH R4, [R5,#2]\n"
 942                  "CMN     R4, #0xC00\n"
 943                  "LDREQ   R1, =0x146\n"
 944                  "LDREQ   R0, =0xFF893D1C\n"
 945                  "STRH    R4, [R5,#2]\n"
 946                  "BLEQ    sub_FF81B1CC\n"
 947                  "MOV     R0, R4\n"
 948 //                 "BL      sub_FF9B943C\n"  // -
 949                  "BL      apex2us\n"         // +
 950                  "MOV     R4, R0\n"
 951 //                 "BL      nullsub_70\n"  // why not?
 952                  "MOV     R0, R4\n"
 953                  "BL      sub_FF8C5190\n"
 954                  "TST     R0, #1\n"
 955                  "LDRNE   R1, =0x14B\n"
 956                  "LDMNEFD SP!, {R4-R6,LR}\n"
 957                  "LDRNE   R0, =0xFF893D1C\n"
 958                  "BNE     sub_FF81B1CC\n"
 959                  "LDMFD   SP!, {R4-R6,PC}\n"
 960  );
 961 }

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