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

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

DEFINITIONS

This source file includes following definitions.
  1. capt_seq_task
  2. sub_FF87AAB4_my
  3. sub_FF968948_my
  4. exp_drv_task
  5. sub_FF8BD408_my
  6. sub_FF8AF50C_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 
   5 static long *nrflag = (long*)0x7290; /* G11 above "aShuttersoundta" usage @FF96895C */
   6 
   7 #include "../../../generic/capt_seq.c"
   8 
   9 void __attribute__((naked,noinline)) capt_seq_task() {
  10  asm volatile (
  11                 "STMFD   SP!, {R3-R9,LR}\n"
  12                 "LDR     R6, =0x2C64\n"
  13                 "LDR     R4, =0x38A78\n"
  14                 "MOV     R9, #1\n"
  15                 "MOV     R7, #0\n"
  16 
  17  "loc_FF87B1A0:\n"
  18                 "LDR     R0, [R6,#4]\n"
  19                 "MOV     R2, #0\n"
  20                 "MOV     R1, SP\n"
  21                 "BL      sub_FF83894C\n"
  22                 "TST     R0, #1\n"
  23                 "BEQ     loc_FF87B1CC\n"
  24                 "LDR     R1, =0x5B3\n"
  25                 "LDR     R0, =0xFF87A988\n"
  26                 "BL      sub_FF81E88C\n"
  27                 "BL      sub_FF81E844\n"
  28                 "LDMFD   SP!, {R3-R9,PC}\n"
  29 "loc_FF87B1CC:\n"
  30                 "LDR     R0, [SP]\n"
  31                 "LDR     R1, [R0]\n"
  32                 "CMP     R1, #0x22\n"
  33                 "ADDLS   PC, PC, R1,LSL#2\n"
  34                 "B       loc_FF87B4C4\n"
  35 "loc_FF87B1E0:\n"
  36                 "B       loc_FF87B26C\n"
  37 "loc_FF87B1E4:\n"
  38                 "B       loc_FF87B2D8\n"
  39 "loc_FF87B1E8:\n"
  40                 "B       loc_FF87B314\n"
  41 "loc_FF87B1EC:\n"
  42                 "B       loc_FF87B328\n"
  43 "loc_FF87B1F0:\n"
  44                 "B       loc_FF87B320\n"
  45 "loc_FF87B1F4:\n"
  46                 "B       loc_FF87B330\n"
  47 "loc_FF87B1F8:\n"
  48                 "B       loc_FF87B338\n"
  49 "loc_FF87B1FC:\n"
  50                 "B       loc_FF87B340\n"
  51 "loc_FF87B200:\n"
  52                 "B       loc_FF87B398\n"
  53 "loc_FF87B204:\n"
  54                 "B       loc_FF87B3C0\n"
  55 "loc_FF87B208:\n"
  56                 "B       loc_FF87B3A4\n"
  57 "loc_FF87B20C:\n"
  58                 "B       loc_FF87B3B0\n"
  59 "loc_FF87B210:\n"
  60                 "B       loc_FF87B3B8\n"
  61 "loc_FF87B214:\n"
  62                 "B       loc_FF87B3C8\n"
  63 "loc_FF87B218:\n"
  64                 "B       loc_FF87B3D0\n"
  65 "loc_FF87B21C:\n"
  66                 "B       loc_FF87B3D8\n"
  67 "loc_FF87B220:\n"
  68                 "B       loc_FF87B3E0\n"
  69 "loc_FF87B224:\n"
  70                 "B       loc_FF87B3E8\n"
  71 "loc_FF87B228:\n"
  72                 "B       loc_FF87B3F0\n"
  73 "loc_FF87B22C:\n"
  74                 "B       loc_FF87B3F8\n"
  75 "loc_FF87B230:\n"
  76                 "B       loc_FF87B400\n"
  77 "loc_FF87B234:\n"
  78                 "B       loc_FF87B408\n"
  79 "loc_FF87B238:\n"
  80                 "B       loc_FF87B410\n"
  81 "loc_FF87B23C:\n"
  82                 "B       loc_FF87B41C\n"
  83 "loc_FF87B240:\n"
  84                 "B       loc_FF87B424\n"
  85 "loc_FF87B244:\n"
  86                 "B       loc_FF87B430\n"
  87 "loc_FF87B248:\n"
  88                 "B       loc_FF87B438\n"
  89 "loc_FF87B24C:\n"
  90                 "B       loc_FF87B468\n"
  91 "loc_FF87B250:\n"
  92                 "B       loc_FF87B470\n"
  93 "loc_FF87B254:\n"
  94                 "B       loc_FF87B478\n"
  95 "loc_FF87B258:\n"
  96                 "B       loc_FF87B480\n"
  97 "loc_FF87B25C:\n"
  98                 "B       loc_FF87B488\n"
  99 "loc_FF87B260:\n"
 100                 "B       loc_FF87B490\n"
 101 "loc_FF87B264:\n"
 102                 "B       loc_FF87B49C\n"
 103 "loc_FF87B268:\n"
 104                 "B       loc_FF87B4D0\n"
 105 "loc_FF87B26C:\n"
 106 // ; jumptable FF8"B1D8 entry 0            ; LOCATION: SsPrepareSeq.c:0
 107 
 108                 "BL      sub_FF87BADC\n"
 109                 "BL      shooting_expo_param_override\n"  // + 
 110                 "BL      sub_FF878B68\n"
 111 
 112 // copied over from SX10 don't know if we need it yet
 113 //  this code added to avoid some incorrect behavior if overrides are used.
 114 //  but it can cause some unexpected side effects. In this case, remove this code!
 115                  "MOV     R0, #0\n"
 116                  "STR     R0, [R4,#0x24]\n"  // fixes overrides  behavior at short shutter press
 117 //  end of my code
 118 
 119                 "LDR     R0, [R4,#0x24]\n"
 120                 "CMP     R0, #0\n"
 121                 "BEQ     loc_FF87B4D0\n"
 122                 "BL      sub_FF87A65C\n"
 123                 "MOV     R5, R0\n"
 124                 "LDR     R0, [R4,#0x24]\n"
 125                 "CMP     R0, #0\n"
 126                 "BEQ     loc_FF87B2B4\n"
 127                 "MOV     R0, #0xC\n"
 128                 "BL      sub_FF8804D8\n"
 129                 "TST     R0, #1\n"
 130                 "STRNE   R9, [R6,#0x10]\n"
 131                 "LDRNE   R0, [R5,#8]\n"
 132                 "ORRNE   R0, R0, #0x40000000\n"
 133                 "STRNE   R0, [R5,#8]\n"
 134                 "BNE     loc_FF87B4D0\n"
 135 
 136 "loc_FF87B2B4:\n"
 137                 "MOV     R0, R5\n"
 138                 "BL      sub_FF9680AC\n"
 139                 "MOV     R0, R5\n"
 140                 "BL      sub_FF87AA3C\n"
 141                 "MOV     R0, R5\n"
 142 
 143                 //"BL      sub_FF968948\n"
 144                 "BL      sub_FF968948_my\n" //-------->
 145                  "BL      capt_seq_hook_raw_here\n"      // +                           
 146                                 
 147                 "TST     R0, #1\n"
 148                 "STRNE   R9, [R6,#0x10]\n"
 149                 "B       loc_FF87B4D0\n"
 150  
 151 "loc_FF87B2D8:\n"
 152 // ; jumptable FF8"B1D8 entry 1
 153                 "LDR     R0, [R4,#0x24]\n"
 154                 "CMP     R0, #0\n"
 155                 "BNE     loc_FF87B304\n"
 156                 "MOV     R0, #0xC\n"
 157                 "BL      sub_FF8804D8\n"
 158                 "TST     R0, #1\n"
 159                 "LDRNE   R0, [SP]\n"
 160                 "MOVNE   R1, #1\n"
 161                 "LDRNE   R2, [R0,#0xC]\n"
 162                 "MOVNE   R0, #1\n"
 163                 "BNE     loc_FF87B390\n"
 164 
 165 "loc_FF87B304:\n"
 166                 "LDR     R0, [SP]\n"
 167               // "BL      sub_FF87AAB4\n"  // - capt_seq_hook ist called in this subroutine     
 168                 "BL      sub_FF87AAB4_my\n"
 169 "loc_FF87B30C:\n"
 170                 "STR     R7, [R4,#0x24]\n"
 171                 "B       loc_FF87B4D0\n"
 172 "loc_FF87B314:\n"
 173 // ; jumptable FF8"B1D8 entry 2
 174                 "MOV     R0, #1\n"
 175                 "BL      sub_FF87BD8C\n"
 176                 "B       loc_FF87B4D0\n"
 177 "loc_FF87B320:\n"
 178  //; jumptable FF8"B1D8 entry 4
 179                 "BL      sub_FF87B78C\n"
 180                 "B       loc_FF87B30C\n"
 181  "loc_FF87B328:\n"
 182  //; jumptable FF8"B1D8 entry 3
 183                 "BL      sub_FF87BABC\n"
 184                 "B       loc_FF87B30C\n"
 185 "loc_FF87B330:\n"
 186  //; jumptable FF8"B1D8 entry 5
 187                 "BL      sub_FF87BAC4\n"
 188                 "B       loc_FF87B4D0\n"
 189 "loc_FF87B338:\n"
 190  //; jumptable FF8"B1D8 entry 6            ; LOCATION: SsPrepareSeq.c:984
 191                 "BL      sub_FF87BC7C\n"
 192                 "B       loc_FF87B39C\n"
 193 "loc_FF87B340:\n"
 194  //; jumptable FF8"B1D8 entry 7
 195                 "LDR     R5, [R0,#0xC]\n"
 196                 "BL      sub_FF87BACC\n"
 197                 "MOV     R0, R5\n"
 198                 "BL      sub_FF967128\n"
 199                 "TST     R0, #1\n"
 200                 "MOV     R8, R0\n"
 201                 "BNE     loc_FF87B380\n"
 202                 "BL      sub_FF88D890\n"
 203                 "STR     R0, [R5,#0x18]\n"
 204                 "MOV     R0, R5\n"
 205                 "BL      sub_FF968860\n"
 206                 "MOV     R0, R5\n"
 207                 "BL      sub_FF968C60\n"
 208                 "MOV     R8, R0\n"
 209                 "LDR     R0, [R5,#0x18]\n"
 210                 "BL      sub_FF88DAA4\n"
 211 
 212 "loc_FF87B380:\n"
 213                 "BL      sub_FF87BABC\n"
 214                 "MOV     R2, R5\n"
 215                 "MOV     R1, #9\n"
 216                 "MOV     R0, R8\n"
 217 
 218 "loc_FF87B390:\n"
 219                 "BL      sub_FF879094\n"
 220                 "B       loc_FF87B4D0\n"
 221 "loc_FF87B398:\n"
 222  //; jumptable FF8"B1D8 entry 8            ; LOCATION: SsPrepareSeq.c:1056
 223                 "BL      sub_FF87BD0C\n"
 224 
 225 "loc_FF87B39C:\n"
 226                 "BL      sub_FF878B68\n"
 227                 "B       loc_FF87B4D0\n"
 228 "loc_FF87B3A4:\n"
 229  //; jumptable FF8"B1D8 entry 10
 230                 "LDR     R0, [R4,#0x54]\n"
 231                 "BL      sub_FF87C390\n"
 232                 "B       loc_FF87B4D0\n"
 233 "loc_FF87B3B0:\n"
 234  //; jumptable FF8"B1D8 entry 11           ; LOCATION: SsMovieRec.c:2
 235                 "BL      sub_FF87C638\n"
 236                 "B       loc_FF87B4D0\n"
 237 "loc_FF87B3B8:\n"
 238  //; jumptable FF8"B1D8 entry 12           ; LOCATION: SsMovieRec.c:43
 239                 "BL      sub_FF87C6CC\n"
 240                 "B       loc_FF87B4D0\n"
 241 "loc_FF87B3C0:\n"
 242  //; jumptable FF8"B1D8 entry 9
 243                 "BL      sub_FF87BABC\n"
 244                 "B       loc_FF87B4D0\n"
 245 "loc_FF87B3C8:\n"
 246  //; jumptable FF8"B1D8 entry 13           ; LOCATION: SsAELockSeq.c:195
 247                 "BL      sub_FF967354\n"
 248                 "B       loc_FF87B4D0\n"
 249 "loc_FF87B3D0:\n"
 250  //; jumptable FF8"B1D8 entry 14
 251                 "BL      sub_FF9675AC\n"
 252                 "B       loc_FF87B4D0\n"
 253 "loc_FF87B3D8:\n"
 254  //; jumptable FF8"B1D8 entry 15
 255                 "BL      sub_FF96764C\n"
 256                 "B       loc_FF87B4D0\n"
 257 "loc_FF87B3E0:\n"
 258  //; jumptable FF8"B1D8 entry 16           ; LOCATION: SsExpCompSeq.c:113
 259                 "BL      sub_FF967780\n"
 260                 "B       loc_FF87B4D0\n"
 261 "loc_FF87B3E8:\n"
 262  //; jumptable FF8"B1D8 entry 17
 263                 "BL      sub_FF967874\n"
 264                 "B       loc_FF87B4D0\n"
 265 "loc_FF87B3F0:\n"
 266  //; jumptable FF8"B1D8 entry 18
 267                 "MOV     R0, #0\n"
 268                 "B       loc_FF87B414\n"
 269 "loc_FF87B3F8:\n"
 270  //; jumptable FF8"B1D8 entry 19
 271                 "BL      sub_FF967DF0\n"
 272                 "B       loc_FF87B4D0\n"
 273 "loc_FF87B400:\n"
 274  //; jumptable FF8"B1D8 entry 20           ; LOCATION: SsMFSeq.c:110
 275                 "BL      sub_FF967E80\n"
 276                 "B       loc_FF87B4D0\n"
 277 "loc_FF87B408:\n"
 278  //; jumptable FF8"B1D8 entry 21           ; LOCATION: SsMFSeq.c:177
 279                 "BL      sub_FF967F40\n"
 280                 "B       loc_FF87B4D0\n"
 281 "loc_FF87B410:\n"
 282  //; jumptable FF8"B1D8 entry 22
 283                 "MOV     R0, #1\n"
 284 
 285 "loc_FF87B414:\n"
 286                 "BL      sub_FF967CA0\n"
 287                 "B       loc_FF87B4D0\n"
 288 "loc_FF87B41C:\n"
 289  //; jumptable FF8"B1D8 entry 23
 290                 "BL      sub_FF87BFA8\n"
 291                 "B       loc_FF87B4D0\n"
 292 "loc_FF87B424:\n"
 293  //; jumptable FF8"B1D8 entry 24
 294                 "BL      sub_FF87C048\n"
 295                 "BL      sub_FF87B5F8\n"
 296                 "B       loc_FF87B4D0\n"
 297 "loc_FF87B430:\n"
 298  //; jumptable FF8"B1D8 entry 25           ; LOCATION: SsChgExpSeq.c:0
 299                 "BL      sub_FF967B2C\n"
 300                 "B       loc_FF87B4D0\n"
 301 "loc_FF87B438:\n"
 302  //; jumptable FF8"B1D8 entry 26
 303                 "MOV     R2, #2\n"
 304                 "ADD     R1, R4, #0x62\n"
 305                 "MOV     R0, #0x6F\n"
 306                 "BL      sub_FF88D700\n"
 307                 "TST     R0, #1\n"
 308                 "LDRNE   R1, =0x6AA\n"
 309                 "LDRNE   R0, =0xFF87A988\n"
 310                 "BLNE    sub_FF81E88C\n"
 311                 "LDRH    R0, [R4,#0x62]\n"
 312                 "CMP     R0, #1\n"
 313                 "BLEQ    sub_FF967B20\n"
 314                 "B       loc_FF87B4D0\n"
 315 "loc_FF87B468:\n"
 316  //; jumptable FF8"B1D8 entry 27           ; LOCATION: SsChgExpSeq.c:0
 317                 "BL      sub_FF967BD0\n"
 318                 "B       loc_FF87B4D0\n"
 319 "loc_FF87B470:\n"
 320  //; jumptable FF8"B1D8 entry 28
 321                 "BL      sub_FF87A914\n"
 322                 "B       loc_FF87B4D0\n"
 323 "loc_FF87B478:\n"
 324  //; jumptable FF8"B1D8 entry 29
 325                 "BL      sub_FF83657C\n"
 326                 "B       loc_FF87B4D0\n"
 327 "loc_FF87B480:\n"
 328  //; jumptable FF8"B1D8 entry 30
 329                 "BL      sub_FF87EA84\n"
 330                 "B       loc_FF87B4D0\n"
 331 "loc_FF87B488:\n"
 332  //; jumptable FF8"B1D8 entry 31
 333                 "BL      sub_FF87EAEC\n"
 334                 "B       loc_FF87B4D0\n"
 335 "loc_FF87B490:\n"
 336  //; jumptable FF8"B1D8 entry 32
 337                 "BL      sub_FF87EB48\n"
 338                 "BL      sub_FF87EB08\n"
 339                 "B       loc_FF87B4D0\n"
 340 "loc_FF87B49C:\n"
 341  //; jumptable FF8"B1D8 entry 33
 342                 "MOV     R0, #1\n"
 343                 "BL      sub_FF9694C8\n"
 344                 "MOV     R0, #1\n"
 345                 "BL      sub_FF9695D8\n"
 346                 "LDRH    R0, [R4,#0xA0]\n"
 347                 "CMP     R0, #4\n"
 348                 "BNE     loc_FF87B4D0\n"
 349                 "BL      sub_FF87EAEC\n"
 350                 "BL      sub_FF87EF34\n"
 351                 "B       loc_FF87B4D0\n"
 352 "loc_FF87B4C4:\n"
 353  //; jumptable FF8"B1D8 default entry
 354                 "LDR     R1, =0x708\n"
 355                 "LDR     R0, =0xFF87A988\n"
 356                 "BL      sub_FF81E88C\n"
 357 
 358 "loc_FF87B4D0:\n"
 359  //; jumptable FF8"B1D8 entry 34
 360                 "LDR     R0, [SP]\n"
 361                 "LDR     R1, [R0,#4]\n"
 362                 "LDR     R0, [R6]\n"
 363                 "BL      sub_FF885538\n"
 364                 "LDR     R5, [SP]\n"
 365                 "LDR     R0, [R5,#8]\n"
 366                 "CMP     R0, #0\n"
 367                 "LDREQ   R1, =0x131\n"
 368                 "LDREQ   R0, =0xFF87A988\n"
 369                 "BLEQ    sub_FF81E88C\n"
 370                 "STR     R7, [R5,#8]\n"
 371                 "B       loc_FF87B1A0\n"
 372  );
 373 }
 374 
 375 
 376 void __attribute__((naked,noinline)) sub_FF87AAB4_my() {
 377  asm volatile (
 378                "STMFD   SP!, {R3-R9,LR}\n"
 379                "LDR     R4, [R0,#0xC]\n"
 380                "LDR     R5, =0x38A78\n"
 381                "LDR     R0, [R4,#8]\n"
 382                "LDR     R6, =0x420A\n"
 383                "ORR     R0, R0, #1\n"
 384                "STR     R0, [R4,#8]\n"
 385                "LDRH    R0, [R5]\n"
 386                "LDR     R8, =0x2C64\n"
 387                "MOV     R7, #0\n"
 388                "CMP     R0, R6\n"
 389                "BEQ     loc_FF87AB58\n"
 390                "LDRH    R0, [R5,#0x9E]\n"
 391                "CMP     R0, #3\n"
 392                "BEQ     loc_FF87ABB8\n"
 393                "LDR     R0, [R4,#0xC]\n"
 394                "CMP     R0, #1\n"
 395                "BLS     loc_FF87AB64\n"
 396                "LDRH    R0, [R5,#0x9C]\n"
 397                "CMP     R0, #0\n"
 398                "BNE     loc_FF87ABB8\n"
 399                "LDRH    R0, [R5,#0x98]\n"
 400                "CMP     R0, #2\n"
 401                "BNE     loc_FF87AB70\n"
 402                "BL      sub_FF87C0F8\n"
 403                "LDRH    R0, [R5]\n"
 404                "CMP     R0, R6\n"
 405                "BEQ     loc_FF87AB58\n"
 406                "LDRH    R0, [R5,#0x9E]\n"
 407                "CMP     R0, #3\n"
 408                "BEQ     loc_FF87ABB8\n"
 409                "LDR     R0, [R4,#0xC]\n"
 410                "CMP     R0, #1\n"
 411                "BLS     loc_FF87AB64\n"
 412                "LDRH    R0, [R5,#0x9C]\n"
 413                "CMP     R0, #0\n"
 414                "BNE     loc_FF87ABB8\n"
 415                "LDRH    R0, [R5,#0x98]\n"
 416                "CMP     R0, #2\n"
 417                "BEQ     loc_FF87AB9C\n"
 418                "B       loc_FF87AB70\n"
 419 "loc_FF87AB58:\n"
 420                "LDRH    R0, [R5,#0x9E]\n"
 421                "CMP     R0, #3\n"
 422                "BEQ     loc_FF87ABB8\n"
 423 "loc_FF87AB64:\n"
 424                "LDRH    R0, [R5,#0x9C]\n"
 425                "CMP     R0, #0\n"
 426                "BNE     loc_FF87ABB8\n"
 427 "loc_FF87AB70:\n"
 428                "LDRH    R0, [R5,#0x98]\n"
 429                "CMP     R0, #1\n"
 430                "BNE     loc_FF87ABB8\n"
 431                "LDRH    R0, [R5]\n"
 432                "CMP     R0, R6\n"
 433                "LDRNE   R0, [R4,#0xC]\n"
 434                "CMPNE   R0, #1\n"
 435                "BLS     loc_FF87ABB8\n"
 436                "LDR     R0, [R4,#0x10]\n"
 437                "CMP     R0, #1\n"
 438                "BNE     loc_FF87ABB8\n"
 439 "loc_FF87AB9C:\n"
 440                 "MOV     R3, #0x268\n"
 441                 "STR     R3, [SP]\n"
 442                 "LDR     R0, [R8]\n"
 443                 "LDR     R2, =0xEA60\n"
 444                 "LDR     R3, =0xFF87A988\n"
 445                 "MOV     R1, #0x40000000\n"
 446                 "BL      sub_FF880840\n"
 447 
 448 "loc_FF87ABB8:\n"
 449                 "BL      sub_FF87A914\n"
 450                 "LDR     R0, [R5,#0x24]\n"
 451                 "CMP     R0, #0\n"
 452                 "MOVEQ   R0, #2\n"
 453                 "BLEQ    sub_FF876CF8\n"
 454                 "BL      sub_FF87BACC\n"
 455                 "LDR     R0, [R5,#0x24]\n"
 456                 "CMP     R0, #0\n"
 457                 "BNE     loc_FF87AC70\n"
 458                 "MOV     R0, #0\n"
 459                 "BL      sub_FF9694C8\n"
 460                 "MOV     R0, #0\n"
 461                 "BL      sub_FF9695D8\n"
 462                 "MOV     R0, R4\n"
 463                 "BL      sub_FF9680AC\n"
 464                 "MOV     R0, R4\n"
 465                 "BL      sub_FF87BF24\n"
 466                 "MOV     R0, R4\n"
 467                 "BL      sub_FF966CDC\n"
 468                 "CMP     R0, #0\n"
 469                 "BEQ     loc_FF87AC38\n"
 470                 "BL      sub_FF969508\n"
 471                 "BL      sub_FF96961C\n"
 472                 "BL      sub_FF96966C\n"
 473                 "MOV     R0, R4\n"
 474                 "BL      sub_FF966E54\n"
 475                 "TST     R0, #1\n"
 476                 "MOVNE   R2, R4\n"
 477                 "LDMNEFD SP!, {R3-R9,LR}\n"
 478                 "MOVNE   R1, #1\n"
 479                 "BNE     sub_FF879094\n"
 480                 "B       loc_FF87AC4C\n"
 481 "loc_FF87AC38:\n"
 482                 "MOV     R0, R4\n"
 483                 "BL      sub_FF966DC0\n"
 484                 "BL      sub_FF969508\n"
 485                 "BL      sub_FF96961C\n"
 486                 "BL      sub_FF96966C\n"
 487 "loc_FF87AC4C:\n"
 488                 "MOV     R0, R4\n"
 489                 "BL      sub_FF87AA3C\n"
 490                 "MOV     R0, R4\n"
 491                 "BL      sub_FF968860\n"
 492                 "BL      sub_FF9692E0\n"
 493                 "MOV     R0, R4\n"
 494                 //"BL      sub_FF968948\n"
 495                 "BL      sub_FF968948_my\n"
 496                 "MOV     R7, R0\n"
 497                 "BL      capt_seq_hook_raw_here\n"      // +
 498                 "B       loc_FF87AC7C\n"
 499 "loc_FF87AC70:\n"
 500                 "LDR     R0, [R8,#0x10]\n"
 501                 "CMP     R0, #0\n"
 502                 "MOVNE   R7, #0x1D\n"
 503 
 504 "loc_FF87AC7C:\n"
 505                 "BL      sub_FF87EAEC\n"
 506                 "BL      sub_FF87EB34\n"
 507                 "BL      sub_FF87EB74\n"
 508                 "MOV     R2, R4\n"
 509                 "MOV     R1, #1\n"
 510                 "MOV     R0, R7\n"
 511                 "BL      sub_FF879094\n"
 512                 "BL      sub_FF968C04\n"
 513                 "CMP     R0, #0\n"
 514                 "LDRNE   R0, [R4,#8]\n"
 515                 "ORRNE   R0, R0, #0x2000\n"
 516                 "STRNE   R0, [R4,#8]\n"
 517                 "LDRH    R0, [R5,#0x9E]\n"
 518                 "CMP     R0, #3\n"
 519                 "BEQ     locret_FF87ACD4\n"
 520                 "LDRH    R0, [R5,#0x9C]\n"
 521                 "CMP     R0, #0\n"
 522                 "LDREQH  R0, [R5,#0x98]\n"
 523                 "CMPEQ   R0, #2\n"
 524                 "MOVEQ   R0, R4\n"
 525                 "LDMEQFD SP!, {R3-R9,LR}\n"
 526                 "BEQ     sub_FF87C14C\n"
 527 "locret_FF87ACD4:\n"
 528                 "LDMFD   SP!, {R3-R9,PC}\n"
 529  );
 530 }
 531 
 532 void __attribute__((naked,noinline)) sub_FF968948_my() {
 533  asm volatile (
 534                 "STMFD   SP!, {R0-R8,LR}\n"
 535                 "MOV     R4, R0\n"
 536                 "BL      sub_FF9697C4\n"
 537                 //"MOV     R1, 0xFFFFFFFF\n"
 538                 "LDR    R1,=0xFFFFFFFF\n"
 539                 "BL      sub_FF88556C\n"
 540                 "LDR     R5, =0x7290\n"
 541                 "LDR     R0, [R5,#0xC]\n"
 542                 "CMP     R0, #0\n"
 543                 "BNE     loc_FF968998\n"
 544                 "MOV     R1, #1\n"
 545                 "MOV     R0, #0\n"
 546                 "BL      sub_FF839194\n"
 547                 "STR     R0, [R5,#0xC]\n"
 548                 "MOV     R3, #0\n"
 549                 "STR     R3, [SP]\n"
 550                 "LDR     R3, =0xFF9682D4\n"
 551                 "LDR     R0, =0xFF968BC8\n"
 552                 "MOV     R2, #0x400\n"
 553                 "MOV     R1, #0x17\n"
 554                 "BL      sub_FF839160\n"
 555 "loc_FF968998:\n"
 556                 "MOV     R2, #4\n"
 557                 "ADD     R1, SP, #8\n"
 558                 "MOV     R0, #0x8A\n"
 559                 "BL      sub_FF88D700\n"
 560                 "TST     R0, #1\n"
 561                 "LDRNE   R1, =0x3C5\n"
 562                 "LDRNE   R0, =0xFF96856C\n"
 563                 "BLNE    sub_FF81E88C\n"
 564                 "LDR     R6, =0x38B44\n"
 565                 "LDR     R8, =0x38A78\n"
 566                 "LDR     R3, [R6]\n"
 567                 "LDRSH   R2, [R6,#0xC]\n"
 568                 "LDRSH   R1, [R6,#0xE]\n"
 569                 "LDR     R0, [R8,#0x94]\n"
 570                 "BL      sub_FF92FC80\n"
 571                 "BL      sub_FF863564\n"
 572                 "LDR     R3, =0x7298\n"
 573                 "STRH    R0, [R4,#0xA4]\n"
 574                 "SUB     R2, R3, #4\n"
 575                 "STRD    R2, [SP]\n"
 576                 "MOV     R1, R0\n"
 577                 "LDRH    R0, [R8,#0x5C]\n"
 578                 "LDRSH   R2, [R6,#0xC]\n"
 579                 "SUB     R3, R3, #8\n"
 580                 "BL      sub_FF96B44C\n"
 581                 "BL      wait_until_remote_button_is_released\n"  // +
 582                 "BL      capt_seq_hook_set_nr\n"                  // +   
 583                 "B       sub_FF9689FC\n" // +  Jump back to original FW code
 584  );
 585 }
 586 
 587 void __attribute__((naked,noinline)) exp_drv_task(){
 588  asm volatile(
 589  
 590                "STMFD   SP!, {R4-R8,LR}\n"
 591                "SUB     SP, SP, #0x20\n"
 592                "LDR     R8, =0xBB8\n"
 593                "LDR     R7, =0x4530\n"
 594                "LDR     R5, =0x42240\n"
 595                "MOV     R0, #0\n"
 596                "ADD     R6, SP, #0x10\n"
 597                "STR     R0, [SP,#0xC]\n"
 598 
 599 "loc_FF8BFC18:\n"
 600                "LDR     R0, [R7,#0x20]\n"
 601                "MOV     R2, #0\n"
 602                "ADD     R1, SP, #0x1C\n"
 603                "BL      sub_FF83894C\n"
 604                "LDR     R0, [SP,#0xC]\n"
 605                "CMP     R0, #1\n"
 606                "BNE     loc_FF8BFC64\n"
 607                "LDR     R0, [SP,#0x1C]\n"
 608                "LDR     R0, [R0]\n"
 609                "CMP     R0, #0x13\n"
 610                "CMPNE   R0, #0x14\n"
 611                "CMPNE   R0, #0x15\n"
 612                "CMPNE   R0, #0x16\n"
 613                "BEQ     loc_FF8BFDC8\n"
 614                "CMP     R0, #0x28\n"
 615                "BEQ     loc_FF8BFD50\n"
 616                "ADD     R1, SP, #0xC\n"
 617                "MOV     R0, #0\n"
 618                "BL      sub_FF8BFBA8\n"
 619 "loc_FF8BFC64:\n"
 620                "LDR     R0, [SP,#0x1C]\n"
 621                "LDR     R1, [R0]\n"
 622                "CMP     R1, #0x2E\n"
 623                "BNE     loc_FF8BFC94\n"
 624                "LDR     R0, [SP,#0x1C]\n"
 625                "BL      sub_FF8C0EFC\n"
 626                "LDR     R0, [R7,#0x1C]\n"
 627                "MOV     R1, #1\n"
 628                "BL      sub_FF885538\n"
 629                "BL      sub_FF81E844\n"
 630                "ADD     SP, SP, #0x20\n"
 631                "LDMFD   SP!, {R4-R8,PC}\n"
 632 "loc_FF8BFC94:\n"
 633                "CMP     R1, #0x2D\n"
 634                "BNE     loc_FF8BFCB0\n"
 635                "LDR     R2, [R0,#0x8C]!\n"
 636                "LDR     R1, [R0,#4]\n"
 637                "MOV     R0, R1\n"
 638                "BLX     R2\n"
 639                "B       loc_FF8C01F0\n"
 640 "loc_FF8BFCB0:\n"
 641                "CMP     R1, #0x26\n"
 642                "BNE     loc_FF8BFD00\n"
 643                "LDR     R0, [R7,#0x1C]\n"
 644                "MOV     R1, #0x80\n"
 645                "BL      sub_FF88556C\n"
 646                "LDR     R0, =0xFF8BC338\n"
 647                "MOV     R1, #0x80\n"
 648                "BL      sub_FF95B5BC\n"
 649                "LDR     R0, [R7,#0x1C]\n"
 650                "MOV     R2, R8\n"
 651                "MOV     R1, #0x80\n"
 652                "BL      sub_FF885478\n"
 653                "TST     R0, #1\n"
 654                "LDRNE   R1, =0xE5F\n"
 655                "BNE     loc_FF8BFDBC\n"
 656 "loc_FF8BFCEC:\n"
 657                "LDR     R1, [SP,#0x1C]\n"
 658                "LDR     R0, [R1,#0x90]\n"
 659                "LDR     R1, [R1,#0x8C]\n"
 660                "BLX     R1\n"
 661                "B       loc_FF8C01F0\n"
 662 "loc_FF8BFD00:\n"
 663                "CMP     R1, #0x27\n"
 664                "BNE     loc_FF8BFD48\n"
 665                "ADD     R1, SP, #0xC\n"
 666                "BL      sub_FF8BFBA8\n"
 667                "LDR     R0, [R7,#0x1C]\n"
 668                "MOV     R1, #0x100\n"
 669                "BL      sub_FF88556C\n"
 670                "LDR     R0, =0xFF8BC348\n"
 671                "MOV     R1, #0x100\n"
 672                "BL      sub_FF95BF4C\n"
 673                "LDR     R0, [R7,#0x1C]\n"
 674                "MOV     R2, R8\n"
 675                "MOV     R1, #0x100\n"
 676                "BL      sub_FF885478\n"
 677                "TST     R0, #1\n"
 678                "BEQ     loc_FF8BFCEC\n"
 679                "LDR     R1, =0xE69\n"
 680                "B       loc_FF8BFDBC\n"
 681 "loc_FF8BFD48:\n"
 682                "CMP     R1, #0x28\n"
 683                "BNE     loc_FF8BFD60\n"
 684 
 685 "loc_FF8BFD50:\n"
 686                "LDR     R0, [SP,#0x1C]\n"
 687                "ADD     R1, SP, #0xC\n"
 688                "BL      sub_FF8BFBA8\n"
 689                "B       loc_FF8BFCEC\n"
 690 "loc_FF8BFD60:\n"
 691                "CMP     R1, #0x2B\n"
 692                "BNE     loc_FF8BFD78\n"
 693                "BL      sub_FF8AF79C\n"
 694                "BL      sub_FF8B03C0\n"
 695                "BL      sub_FF8AFF14\n"
 696                "B       loc_FF8BFCEC\n"
 697 "loc_FF8BFD78:\n"
 698                "CMP     R1, #0x2C\n"
 699                "BNE     loc_FF8BFDC8\n"
 700                "LDR     R0, [R7,#0x1C]\n"
 701                "MOV     R1, #4\n"
 702                "BL      sub_FF88556C\n"
 703                "LDR     R1, =0xFF8BC368\n"
 704                "LDR     R0, =0xFFFFF400\n"
 705                "MOV     R2, #4\n"
 706                "BL      sub_FF8AF218\n"
 707                "BL      sub_FF8AF4A0\n"
 708                "LDR     R0, [R7,#0x1C]\n"
 709                "MOV     R2, R8\n"
 710                "MOV     R1, #4\n"
 711                "BL      sub_FF885394\n"
 712                "TST     R0, #1\n"
 713                "BEQ     loc_FF8BFCEC\n"
 714                "LDR     R1, =0xE91\n"
 715 "loc_FF8BFDBC:\n"
 716                "LDR     R0, =0xFF8BC9A8\n"
 717                "BL      sub_FF81E88C\n"
 718                "B       loc_FF8BFCEC\n"
 719 "loc_FF8BFDC8:\n"
 720                "LDR     R0, [SP,#0x1C]\n"
 721                "MOV     R4, #1\n"
 722                "LDR     R1, [R0]\n"
 723                "CMP     R1, #0x11\n"
 724                "CMPNE   R1, #0x12\n"
 725                "BNE     loc_FF8BFE38\n"
 726                "LDR     R1, [R0,#0x7C]\n"
 727                "ADD     R1, R1, R1,LSL#1\n"
 728                "ADD     R1, R0, R1,LSL#2\n"
 729                "SUB     R1, R1, #8\n"
 730                "LDMIA   R1, {R2-R4}\n"
 731                "STMIA   R6, {R2-R4}\n"
 732                "BL      sub_FF8BE520\n"
 733                "LDR     R0, [SP,#0x1C]\n"
 734                "LDR     R1, [R0,#0x7C]\n"
 735                "LDR     R3, [R0,#0x8C]\n"
 736                "LDR     R2, [R0,#0x90]\n"
 737                "ADD     R0, R0, #4\n"
 738                "BLX     R3\n"
 739                "LDR     R0, [SP,#0x1C]\n"
 740                "BL      sub_FF8C12C4\n"
 741                "LDR     R0, [SP,#0x1C]\n"
 742                "LDR     R1, [R0,#0x7C]\n"
 743                "LDR     R3, [R0,#0x94]\n"
 744                "LDR     R2, [R0,#0x98]\n"
 745                "ADD     R0, R0, #4\n"
 746                "BLX     R3\n"
 747                "B       loc_FF8C0130\n"
 748 "loc_FF8BFE38:\n"
 749                "CMP     R1, #0x13\n"
 750                "CMPNE   R1, #0x14\n"
 751                "CMPNE   R1, #0x15\n"
 752                "CMPNE   R1, #0x16\n"
 753                "BNE     loc_FF8BFEF0\n"
 754                "ADD     R3, SP, #0xC\n"
 755                "MOV     R2, SP\n"
 756                "ADD     R1, SP, #0x10\n"
 757                "BL      sub_FF8BE7FC\n"
 758                "CMP     R0, #1\n"
 759                "MOV     R4, R0\n"
 760                "CMPNE   R4, #5\n"
 761                "BNE     loc_FF8BFE8C\n"
 762                "LDR     R0, [SP,#0x1C]\n"
 763                "MOV     R2, R4\n"
 764                "LDR     R1, [R0,#0x7C]!\n"
 765                "LDR     R12, [R0,#0x10]!\n"
 766                "LDR     R3, [R0,#4]\n"
 767                "MOV     R0, SP\n"
 768                "BLX     R12\n"
 769                "B       loc_FF8BFEC4\n"
 770 "loc_FF8BFE8C:\n"
 771                "LDR     R0, [SP,#0x1C]\n"
 772                "CMP     R4, #2\n"
 773                "LDR     R3, [R0,#0x90]\n"
 774                "CMPNE   R4, #6\n"
 775                "BNE     loc_FF8BFED8\n"
 776                "LDR     R12, [R0,#0x8C]\n"
 777                "MOV     R0, SP\n"
 778                "MOV     R2, R4\n"
 779                "MOV     R1, #1\n"
 780                "BLX     R12\n"
 781                "LDR     R0, [SP,#0x1C]\n"
 782                "MOV     R2, SP\n"
 783                "ADD     R1, SP, #0x10\n"
 784                "BL      sub_FF8BF8B4\n"
 785 
 786 "loc_FF8BFEC4:\n"
 787                "LDR     R0, [SP,#0x1C]\n"
 788                "LDR     R2, [SP,#0xC]\n"
 789                "MOV     R1, R4\n"
 790                "BL      sub_FF8BFB48\n"
 791                "B       loc_FF8C0130\n"
 792 "loc_FF8BFED8:\n"
 793                "LDR     R1, [R0,#0x7C]\n"
 794                "LDR     R12, [R0,#0x8C]\n"
 795                "ADD     R0, R0, #4\n"
 796                "MOV     R2, R4\n"
 797                "BLX     R12\n"
 798                "B       loc_FF8C0130\n"
 799 "loc_FF8BFEF0:\n"
 800                "CMP     R1, #0x22\n"
 801                "CMPNE   R1, #0x23\n"
 802                "BNE     loc_FF8BFF3C\n"
 803                "LDR     R1, [R0,#0x7C]\n"
 804                "ADD     R1, R1, R1,LSL#1\n"
 805                "ADD     R1, R0, R1,LSL#2\n"
 806                "SUB     R1, R1, #8\n"
 807                "LDMIA   R1, {R2-R4}\n"
 808                "STMIA   R6, {R2-R4}\n"
 809                "BL      sub_FF8BDA64\n"
 810                "LDR     R0, [SP,#0x1C]\n"
 811                "LDR     R1, [R0,#0x7C]\n"
 812                "LDR     R3, [R0,#0x8C]\n"
 813                "LDR     R2, [R0,#0x90]\n"
 814                "ADD     R0, R0, #4\n"
 815                "BLX     R3\n"
 816                "LDR     R0, [SP,#0x1C]\n"
 817                "BL      sub_FF8BDD64\n"
 818                "B       loc_FF8C0130\n"
 819 "loc_FF8BFF3C:\n"
 820                "ADD     R1, R0, #4\n"
 821                "LDMIA   R1, {R2,R3,R12}\n"
 822                "STMIA   R6, {R2,R3,R12}\n"
 823                "LDR     R1, [R0]\n"
 824                "CMP     R1, #0x25\n"
 825                "ADDLS   PC, PC, R1,LSL#2\n"
 826                "B       loc_FF8C0110\n"
 827 "loc_FF8BFF58:\n"
 828                "B       loc_FF8BFFF0\n"
 829 "loc_FF8BFF5C:\n"
 830                "B       loc_FF8BFFF0\n"
 831 "loc_FF8BFF60:\n"
 832                "B       loc_FF8BFFF8\n"
 833 "loc_FF8BFF64:\n"
 834                "B       loc_FF8C0000\n"
 835 "loc_FF8BFF68:\n"
 836                "B       loc_FF8C0000\n"
 837 "loc_FF8BFF6C:\n"
 838                "B       loc_FF8C0000\n"
 839 "loc_FF8BFF70:\n"
 840                "B       loc_FF8BFFF0\n"
 841 "loc_FF8BFF74:\n"
 842                "B       loc_FF8BFFF8\n"
 843 "loc_FF8BFF78:\n"
 844                "B       loc_FF8C0000\n"
 845 "loc_FF8BFF7C:\n"
 846                "B       loc_FF8C0000\n"
 847 "loc_FF8BFF80:\n"
 848                "B       loc_FF8C0018\n"
 849 "loc_FF8BFF84:\n"
 850                "B       loc_FF8C0018\n"
 851 "loc_FF8BFF88:\n"
 852                "B       loc_FF8C0104\n"
 853 "loc_FF8BFF8C:\n"
 854                "B       loc_FF8C010C\n"
 855 "loc_FF8BFF90:\n"
 856                "B       loc_FF8C010C\n"
 857 "loc_FF8BFF94:\n"
 858                "B       loc_FF8C010C\n"
 859 "loc_FF8BFF98:\n"
 860                "B       loc_FF8C010C\n"
 861 "loc_FF8BFF9C:\n"
 862                "B       loc_FF8C0110\n"
 863 "loc_FF8BFFA0:\n"
 864                "B       loc_FF8C0110\n"
 865 "loc_FF8BFFA4:\n"
 866                "B       loc_FF8C0110\n"
 867 "loc_FF8BFFA8:\n"
 868                "B       loc_FF8C0110\n"
 869 "loc_FF8BFFAC:\n"
 870                "B       loc_FF8C0110\n"
 871 "loc_FF8BFFB0:\n"
 872                "B       loc_FF8C0110\n"
 873 "loc_FF8BFFB4:\n"
 874                "B       loc_FF8C0008\n"
 875 "loc_FF8BFFB8:\n"
 876                "B       loc_FF8C0010\n"
 877 "loc_FF8BFFBC:\n"
 878                "B       loc_FF8C0010\n"
 879 "loc_FF8BFFC0:\n"
 880                "B       loc_FF8C0024\n"
 881 "loc_FF8BFFC4:\n"
 882                "B       loc_FF8C0024\n"
 883 "loc_FF8BFFC8:\n"
 884                "B       loc_FF8C002C\n"
 885 "loc_FF8BFFCC:\n"
 886                "B       loc_FF8C005C\n"
 887 "loc_FF8BFFD0:\n"
 888                "B       loc_FF8C008C\n"
 889 "loc_FF8BFFD4:\n"
 890                "B       loc_FF8C00BC\n"
 891 "loc_FF8BFFD8:\n"
 892                "B       loc_FF8C00EC\n"
 893 "loc_FF8BFFDC:\n"
 894                "B       loc_FF8C00EC\n"
 895 "loc_FF8BFFE0:\n"
 896                "B       loc_FF8C0110\n"
 897 "loc_FF8BFFE4:\n"
 898                "B       loc_FF8C0110\n"
 899 "loc_FF8BFFE8:\n"
 900                "B       loc_FF8C00F4\n"
 901 "loc_FF8BFFEC:\n"
 902                "B       loc_FF8C00FC\n"
 903 "loc_FF8BFFF0:\n"
 904 //; jumptable FF8"FF50 entries 0,1,6      ; LOCATION: ExpDrv.c:2
 905                "BL      sub_FF8BC850\n"
 906                "B       loc_FF8C0110\n"
 907 "loc_FF8BFFF8:\n"
 908 //; jumptable FF8"FF50 entries 2,7        ; LOCATION: ExpDrv.c:0
 909                "BL      sub_FF8BCAD4\n"
 910                "B       loc_FF8C0110\n"
 911 "loc_FF8C0000:\n"
 912 //; jumptable FF8"FF50 entries 3-5,8,9    ; LOCATION: ExpDrv.c:0
 913                "BL      sub_FF8BCCDC\n"
 914                "B       loc_FF8C0110\n"
 915 "loc_FF8C0008:\n"
 916 //; jumptable FF8"FF50 entry 23           ; LOCATION: ExpDrv.c:2
 917                "BL      sub_FF8BCF54\n"
 918                "B       loc_FF8C0110\n"
 919 "loc_FF8C0010:\n"
 920 //; jumptable FF8"FF50 entries 24,25      ; LOCATION: ExpDrv.c:0
 921                "BL      sub_FF8BD14C\n"
 922                "B       loc_FF8C0110\n"
 923 "loc_FF8C0018:\n"
 924 //; jumptable FF8"FF50 entries 10,11      ; LOCATION: ExpDrv.c:2
 925                //"BL      sub_FF8BD408\n"
 926                            "BL      sub_FF8BD408_my\n" // +-------------------->
 927                "MOV     R4, #0\n"
 928                "B       loc_FF8C0110\n"
 929 "loc_FF8C0024:\n"
 930 //; jumptable FF8"FF50 entries 26,27      ; LOCATION: ExpDrv.c:0
 931                "BL      sub_FF8BD548\n"
 932                "B       loc_FF8C0110\n"
 933 "loc_FF8C002C:\n"
 934 //jumptable FF8"FF50 entry 28
 935                "LDRH    R1, [R0,#4]\n"
 936                "STRH    R1, [SP,#0x10]\n"
 937                "LDRH    R1, [R5,#2]\n"
 938                "STRH    R1, [SP,#0x12]\n"
 939                "LDRH    R1, [R5,#4]\n"
 940                "STRH    R1, [SP,#0x14]\n"
 941                "LDRH    R1, [R5,#6]\n"
 942                "STRH    R1, [SP,#0x16]\n"
 943                "LDRH    R1, [R0,#0xC]\n"
 944                "STRH    R1, [SP,#0x18]\n"
 945                "BL      sub_FF8C0F70\n"
 946                "B       loc_FF8C0110\n"
 947 "loc_FF8C005C:\n"
 948 //; jumptable FF8"FF50 entry 29
 949                "LDRH    R1, [R0,#4]\n"
 950                "STRH    R1, [SP,#0x10]\n"
 951                "LDRH    R1, [R5,#2]\n"
 952                "STRH    R1, [SP,#0x12]\n"
 953                "LDRH    R1, [R5,#4]\n"
 954                "STRH    R1, [SP,#0x14]\n"
 955                "LDRH    R1, [R5,#6]\n"
 956                "STRH    R1, [SP,#0x16]\n"
 957                "LDRH    R1, [R5,#8]\n"
 958                "STRH    R1, [SP,#0x18]\n"
 959                "BL      sub_FF8C10DC\n"
 960                "B       loc_FF8C0110\n"
 961 "loc_FF8C008C:\n"
 962 //; jumptable FF8"FF50 entry 30
 963                "LDRH    R1, [R5]\n"
 964                "STRH    R1, [SP,#0x10]\n"
 965                "LDRH    R1, [R0,#6]\n"
 966                "STRH    R1, [SP,#0x12]\n"
 967                "LDRH    R1, [R5,#4]\n"
 968                "STRH    R1, [SP,#0x14]\n"
 969                "LDRH    R1, [R5,#6]\n"
 970                "STRH    R1, [SP,#0x16]\n"
 971                "LDRH    R1, [R5,#8]\n"
 972                "STRH    R1, [SP,#0x18]\n"
 973                "BL      sub_FF8C1188\n"
 974                "B       loc_FF8C0110\n"
 975 "loc_FF8C00BC:\n"
 976 //; jumptable FF8"FF50 entry 31
 977                "LDRH    R1, [R5]\n"
 978                "STRH    R1, [SP,#0x10]\n"
 979                "LDRH    R1, [R5,#2]\n"
 980                "STRH    R1, [SP,#0x12]\n"
 981                "LDRH    R1, [R5,#4]\n"
 982                "STRH    R1, [SP,#0x14]\n"
 983                "LDRH    R1, [R5,#6]\n"
 984                "STRH    R1, [SP,#0x16]\n"
 985                "LDRH    R1, [R0,#0xC]\n"
 986                "STRH    R1, [SP,#0x18]\n"
 987                "BL      sub_FF8C1228\n"
 988                "B       loc_FF8C0110\n"
 989 "loc_FF8C00EC:\n"
 990 //; jumptable FF8"FF50 entries 32,33      ; LOCATION: ExpDrv.c:0
 991                "BL      sub_FF8BD8A0\n"
 992                "B       loc_FF8C0110\n"
 993 "loc_FF8C00F4:\n"
 994 //; jumptable FF8"FF50 entry 36           ; LOCATION: ExpDrv.c:10
 995                "BL      sub_FF8BDE68\n"
 996                "B       loc_FF8C0110\n"
 997 "loc_FF8C00FC:\n"
 998 //; jumptable FF8"FF50 entry 37           ; LOCATION: ExpDrv.c:0
 999                "BL      sub_FF8BE0A4\n"
1000                "B       loc_FF8C0110\n"
1001 "loc_FF8C0104:\n"
1002 //; jumptable FF8"FF50 entry 12           ; LOCATION: ExpDrv.c:2
1003                "BL      sub_FF8BE220\n"
1004                "B       loc_FF8C0110\n"
1005 "loc_FF8C010C:\n"
1006 //; jumptable FF8"FF50 entries 13-16      ; LOCATION: ExpDrv.c:128
1007                "BL      sub_FF8BE3BC\n"
1008 
1009 "loc_FF8C0110:\n"
1010 //; jumptable FF8"FF50 default entry
1011 //; jumptable FF8"FF50 entries 17-22,34,35
1012                "LDR     R0, [SP,#0x1C]\n"
1013                "LDR     R1, [R0,#0x7C]\n"
1014                "LDR     R3, [R0,#0x8C]\n"
1015                "LDR     R2, [R0,#0x90]\n"
1016                "ADD     R0, R0, #4\n"
1017                "BLX     R3\n"
1018                "CMP     R4, #1\n"
1019                "BNE     loc_FF8C0178\n"
1020 
1021 "loc_FF8C0130:\n"
1022                "LDR     R0, [SP,#0x1C]\n"
1023                "MOV     R2, #0xC\n"
1024                "LDR     R1, [R0,#0x7C]\n"
1025                "ADD     R1, R1, R1,LSL#1\n"
1026                "ADD     R0, R0, R1,LSL#2\n"
1027                "SUB     R4, R0, #8\n"
1028                "LDR     R0, =0x42240\n"
1029                "ADD     R1, SP, #0x10\n"
1030                "BL      sub_FFB3C9E0\n"
1031                "LDR     R0, =0x4224C\n"
1032                "MOV     R2, #0xC\n"
1033                "ADD     R1, SP, #0x10\n"
1034                "BL      sub_FFB3C9E0\n"
1035                "LDR     R0, =0x42258\n"
1036                "MOV     R2, #0xC\n"
1037                "MOV     R1, R4\n"
1038                "BL      sub_FFB3C9E0\n"
1039                "B       loc_FF8C01F0\n"
1040 "loc_FF8C0178:\n"
1041                "LDR     R0, [SP,#0x1C]\n"
1042                "LDR     R0, [R0]\n"
1043                "CMP     R0, #0xB\n"
1044                "BNE     loc_FF8C01C0\n"
1045                "MOV     R3, #0\n"
1046                "STR     R3, [SP]\n"
1047                "MOV     R3, #1\n"
1048                "MOV     R2, #1\n"
1049                "MOV     R1, #1\n"
1050                "MOV     R0, #0\n"
1051                "BL      sub_FF8BC658\n"
1052                "MOV     R3, #0\n"
1053                "STR     R3, [SP]\n"
1054                "MOV     R3, #1\n"
1055                "MOV     R2, #1\n"
1056                "MOV     R1, #1\n"
1057                "MOV     R0, #0\n"
1058                "B       loc_FF8C01EC\n"
1059 "loc_FF8C01C0:\n"
1060                "MOV     R3, #1\n"
1061                "MOV     R2, #1\n"
1062                "MOV     R1, #1\n"
1063                "MOV     R0, #1\n"
1064                "STR     R3, [SP]\n"
1065                "BL      sub_FF8BC658\n"
1066                "MOV     R3, #1\n"
1067                "MOV     R2, #1\n"
1068                "MOV     R1, #1\n"
1069                "MOV     R0, #1\n"
1070                "STR     R3, [SP]\n"
1071 
1072 "loc_FF8C01EC:\n"
1073                "BL      sub_FF8BC798\n"
1074 
1075 "loc_FF8C01F0:\n"
1076                "LDR     R0, [SP,#0x1C]\n"
1077                "BL      sub_FF8C0EFC\n"
1078                "B       loc_FF8BFC18\n"
1079 );
1080 };
1081 
1082 void __attribute__((naked,noinline)) sub_FF8BD408_my(){
1083  asm volatile(
1084                "STMFD   SP!, {R4-R8,LR}\n"
1085                "LDR     R7, =0x4530\n"
1086                "MOV     R4, R0\n"
1087                "LDR     R0, [R7,#0x1C]\n"
1088                "MOV     R1, #0x3E\n"
1089                "BL      sub_FF88556C\n"
1090                "LDRSH   R0, [R4,#4]\n"
1091                "MOV     R2, #0\n"
1092                "MOV     R1, #0\n"
1093                "BL      sub_FF8BC3BC\n"
1094                "MOV     R6, R0\n"
1095                "LDRSH   R0, [R4,#6]\n"
1096                "BL      sub_FF8BC4CC\n"
1097                "LDRSH   R0, [R4,#8]\n"
1098                "BL      sub_FF8BC524\n"
1099                "LDRSH   R0, [R4,#0xA]\n"
1100                "BL      sub_FF8BC57C\n"
1101                "LDRSH   R0, [R4,#0xC]\n"
1102                "MOV     R1, #0\n"
1103                "BL      sub_FF8BC5D4\n"
1104                "MOV     R5, R0\n"
1105                "LDR     R0, [R4]\n"
1106                "LDR     R8, =0x42258\n"
1107                "CMP     R0, #0xB\n"
1108                "MOVEQ   R6, #0\n"
1109                "MOVEQ   R5, #0\n"
1110                "BEQ     loc_FF8BD49C\n"
1111                "CMP     R6, #1\n"
1112                "BNE     loc_FF8BD49C\n"
1113                "LDRSH   R0, [R4,#4]\n"
1114                "LDR     R1, =0xFF8BC328\n"
1115                "MOV     R2, #2\n"
1116                "BL      sub_FF95B908\n"
1117                "STRH    R0, [R4,#4]\n"
1118                "MOV     R0, #0\n"
1119                "STR     R0, [R7,#0x28]\n"
1120                "B       loc_FF8BD4A4\n"
1121 "loc_FF8BD49C:\n"
1122                "LDRH    R0, [R8]\n"
1123                "STRH    R0, [R4,#4]\n"
1124 
1125 "loc_FF8BD4A4:\n"
1126                "CMP     R5, #1\n"
1127                "LDRNEH  R0, [R8,#8]\n"
1128                "BNE     loc_FF8BD4C0\n"
1129                "LDRSH   R0, [R4,#0xC]\n"
1130                "LDR     R1, =0xFF8BC3AC\n"
1131                "MOV     R2, #0x20\n"
1132                "BL      sub_FF8C0F2C\n"
1133 "loc_FF8BD4C0:\n"
1134                "STRH    R0, [R4,#0xC]\n"
1135                "LDRSH   R0, [R4,#6]\n"
1136                //"BL      sub_FF8AF50C"
1137                            "BL      sub_FF8AF50C_my\n" // + ------------------>
1138                "LDRSH   R0, [R4,#8]\n"
1139                "MOV     R1, #1\n"
1140                "BL      sub_FF8AFC5C\n"
1141                "MOV     R1, #0\n"
1142                "ADD     R0, R4, #8\n"
1143                "BL      sub_FF8AFCE4\n"
1144                "LDRSH   R0, [R4,#0xE]\n"
1145                "BL      sub_FF8B77C8\n"
1146                "LDR     R4, =0xBB8\n"
1147                "CMP     R6, #1\n"
1148                "BNE     loc_FF8BD518\n"
1149                "LDR     R0, [R7,#0x1C]\n"
1150                "MOV     R2, R4\n"
1151                "MOV     R1, #2\n"
1152                "BL      sub_FF885478\n"
1153                "TST     R0, #1\n"
1154                "LDRNE   R1, =0x5A3\n"
1155                "LDRNE   R0, =0xFF8BC9A8\n"
1156                "BLNE    sub_FF81E88C\n"
1157 
1158 "loc_FF8BD518:\n"
1159                "CMP     R5, #1\n"
1160                "LDMNEFD SP!, {R4-R8,PC}\n"
1161                "LDR     R0, [R7,#0x1C]\n"
1162                "MOV     R2, R4\n"
1163                "MOV     R1, #0x20\n"
1164                "BL      sub_FF885478\n"
1165                "TST     R0, #1\n"
1166                "LDRNE   R1, =0x5A8\n"
1167                "LDRNE   R0, =0xFF8BC9A8\n"
1168                "LDMNEFD SP!, {R4-R8,LR}\n"
1169                "BNE     sub_FF81E88C\n"
1170                "LDMFD   SP!, {R4-R8,PC}\n"
1171  );
1172 };
1173 void __attribute__((naked,noinline)) sub_FF8AF50C_my()
1174 {  
1175  asm volatile(
1176                 "STMFD   SP!, {R4-R6,LR}\n"
1177                 "LDR     R5, =0x4240\n"
1178                 "MOV     R4, R0\n"
1179                 "LDR     R0, [R5,#4]\n"
1180                 "CMP     R0, #1\n"
1181                 "LDRNE   R1, =0x146\n"
1182                 "LDRNE   R0, =0xFF8AF310\n"
1183                 "BLNE    sub_FF81E88C\n"
1184                 "CMN     R4, #0xC00\n"
1185                 "LDREQSH R4, [R5,#2]\n"
1186                 "CMN     R4, #0xC00\n"
1187                 "MOVEQ   R1, #0x14C\n"
1188                 "LDREQ   R0, =0xFF8AF310\n"
1189                 "STRH    R4, [R5,#2]\n"
1190                 "BLEQ    sub_FF81E88C\n"
1191                 "MOV     R0, R4\n"
1192                 //"BL      sub_FFA14A7C\n"
1193                                 "BL      apex2us\n"  // +
1194                 "MOV     R4, R0\n"
1195                 "BL      sub_FF8F901C\n"
1196                 "MOV     R0, R4\n"
1197                 "BL      sub_FF8FF29C\n"
1198                 "TST     R0, #1\n"
1199                 "LDRNE   R1, =0x151\n"
1200                 "LDMNEFD SP!, {R4-R6,LR}\n"
1201                 "LDRNE   R0, =0xFF8AF310\n"
1202                 "BNE     sub_FF81E88C\n"
1203                 "LDMFD   SP!, {R4-R6,PC}\n"
1204      );
1205 };

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