root/platform/sx20/sub/102b/capt_seq.c

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

DEFINITIONS

This source file includes following definitions.
  1. hangdebug
  2. blinko
  3. capt_seq_task
  4. sub_FF962364_my
  5. sub_FF87C648_my
  6. exp_drv_task
  7. sub_FF8BEC40_my
  8. sub_FF8B152C_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 #include "conf.h"
   5 
   6 static long *nrflag = (long*)0x7910;
   7 
   8 #include "../../../generic/capt_seq.c"
   9 
  10 void __attribute__((naked,noinline)) hangdebug() {
  11         debug_led(1);
  12         while(1);
  13 }
  14 
  15 void __attribute__((naked,noinline)) blinko(void) {
  16         int i;
  17         //while(1) {
  18                 *((volatile int *) 0xC02200B6) = 0x46; // Turn on LED
  19                 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); }
  20 
  21                 *((volatile int *) 0xC02200B6) = 0x44; // Turn off LED
  22                 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); }
  23 
  24                 *((volatile int *) 0xC02200B6) = 0x46; // Turn on LED
  25                 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); }
  26 
  27                 *((volatile int *) 0xC02200B6) = 0x44; // Turn off LED
  28                 for (i=0; i<0x900000; i++) { asm volatile ( "nop\n" ); }
  29         //}
  30 }
  31 
  32 void __attribute__((naked,noinline)) capt_seq_task() {
  33 
  34  asm volatile (
  35 
  36 "STMFD SP!, {R3-R9,LR}\n"
  37 "LDR R6, =0x2D50\n"
  38 "LDR R4, =0x3894C\n"
  39 "MOV R9, #1\n"
  40 "MOV R7, #0\n"
  41 
  42 "loc_FF87CD54:\n"
  43         "LDR R0, [R6,#4]\n"
  44         "MOV R2, #0\n"
  45         "MOV R1, SP\n"
  46         "BL sub_FF838318\n"
  47         "TST R0, #1\n"
  48         "BEQ loc_FF87CD80\n"
  49         "LDR R1, =0x5B4\n"
  50         "LDR R0, =0xFF87C518\n"
  51         "BL sub_FF81E88C\n"
  52         "BL sub_FF81E844\n"
  53         "LDMFD SP!, {R3-R9,PC}\n"
  54 
  55 
  56 "loc_FF87CD80:\n"
  57         "LDR R0, [SP]\n" // change here
  58         "LDR R1, [R0]\n"
  59         "CMP R1, #0x22\n"
  60         "ADDLS   PC, PC, R1,LSL#2\n" // change here
  61         "B loc_FF87D084\n"
  62 
  63 "loc_FF87CD94: B  loc_FF87CE20\n"
  64 "loc_FF87CD98: B  loc_FF87CE8C\n"
  65 "loc_FF87CD9C: B  loc_FF87CEC8\n"
  66 "loc_FF87CDA0: B  loc_FF87CEE8\n"
  67 "loc_FF87CDA4: B  loc_FF87CEE0\n"
  68 "loc_FF87CDA8: B  loc_FF87CEF0\n"
  69 "loc_FF87CDAC: B  loc_FF87CEF8\n"
  70 "loc_FF87CDB0: B  loc_FF87CF00\n"
  71 "loc_FF87CDB4: B  loc_FF87CF58\n"
  72 "loc_FF87CDB8: B  loc_FF87CF80\n"
  73 "loc_FF87CDBC: B  loc_FF87CF64\n"
  74 "loc_FF87CDC0: B  loc_FF87CF70\n"
  75 "loc_FF87CDC4: B  loc_FF87CF78\n"
  76 "loc_FF87CDC8: B  loc_FF87CF88\n"
  77 "loc_FF87CDCC: B  loc_FF87CF90\n"
  78 "loc_FF87CDD0: B  loc_FF87CF98\n"
  79 "loc_FF87CDD4: B  loc_FF87CFA0\n"
  80 "loc_FF87CDD8: B  loc_FF87CFA8\n"
  81 "loc_FF87CDDC: B  loc_FF87CFB0\n"
  82 "loc_FF87CDE0: B  loc_FF87CFB8\n"
  83 "loc_FF87CDE4: B  loc_FF87CFC0\n"
  84 "loc_FF87CDE8: B  loc_FF87CFC8\n"
  85 "loc_FF87CDEC: B  loc_FF87CFD0\n"
  86 "loc_FF87CDF0: B  loc_FF87CFDC\n"
  87 "loc_FF87CDF4: B  loc_FF87CFE4\n"
  88 "loc_FF87CDF8: B  loc_FF87CFF0\n"
  89 "loc_FF87CDFC: B  loc_FF87CFF8\n"
  90 "loc_FF87CE00: B  loc_FF87D028\n"
  91 "loc_FF87CE04: B  loc_FF87D030\n"
  92 "loc_FF87CE08: B  loc_FF87D038\n"
  93 "loc_FF87CE0C: B  loc_FF87D040\n"
  94 "loc_FF87CE10: B  loc_FF87D048\n"
  95 "loc_FF87CE14: B  loc_FF87D050\n"
  96 "loc_FF87CE18: B  loc_FF87D05C\n"
  97 "loc_FF87CE1C: B  loc_FF87D090\n"
  98 
  99 "loc_FF87CE20:\n"
 100         "BL sub_FF87D6A8\n"
 101                                         "BL      shooting_expo_param_override\n"  // +
 102         "BL sub_FF87A4E0\n"
 103  //  this code added to avoid some incorrect behavior if overrides are used.
 104  //  but it can cause some unexpected side effects. In this case, remove this code!
 105                                         "MOV     R0, #0\n"
 106                                         "STR     R0, [R4,#0x24]\n"  // fixes overrides  behavior at short shutter press
 107  //  end of my code
 108         "LDR R0, [R4,#0x24]\n"
 109         "CMP R0, #0\n"
 110         "BEQ loc_FF87D090\n"
 111         "BL sub_FF87C1F0\n"
 112         "MOV R5, R0\n"
 113         "LDR R0, [R4,#0x24]\n"
 114         "CMP R0, #0\n"
 115         "BEQ loc_FF87CE68\n"
 116         "MOV R0, #0xC\n"
 117         "BL sub_FF882154\n"
 118         "TST R0, #1\n"
 119         "STRNE R9, [R6,#0x10]\n"
 120         "LDRNE R0, [R5,#8]\n"
 121         "ORRNE R0, R0, #0x40000000\n" //
 122         "STRNE R0, [R5,#8]\n"
 123         "BNE loc_FF87D090\n"
 124 "loc_FF87CE68:\n"
 125         "MOV R0, R5\n"
 126         "BL sub_FF961AC8\n"
 127         "MOV R0, R5\n"
 128         "BL sub_FF87C5D0\n"
 129         "MOV R0, R5\n"
 130                                         "BL sub_FF962364_my\n" // was sub_FF962364_my
 131                                         //"BL sub_FF962364\n" // was sub_FF962364_my
 132                                         "BL capt_seq_hook_raw_here\n"      // +
 133         "TST R0, #1\n"
 134         "STRNE R9, [R6,#0x10]\n"
 135         "B loc_FF87D090\n"
 136 "loc_FF87CE8C:\n"
 137         "LDR R0, [R4,#0x24]\n"
 138         "CMP R0, #0\n"
 139         "BNE loc_FF87CEB8\n"
 140         "MOV R0, #0xC\n"
 141         "BL sub_FF882154\n"
 142         "TST R0, #1\n"
 143         "LDRNE  R0, [SP]\n"
 144         "MOVNE R1, #1\n"
 145         "LDRNE R2, [R0,#0xC]\n"
 146         "MOVNE R0, #1\n"
 147         "BNE loc_FF87CF50\n"
 148 "loc_FF87CEB8:\n"
 149         "LDR    R0, [SP]\n"
 150 //      "BL     sub_FF87C648\n"
 151                                         "BL     sub_FF87C648_my\n"
 152 "loc_FF87CEC0:\n"
 153                 "STR    R7, [R4,#0x24]\n"
 154                 "B      loc_FF87D090\n"
 155 "loc_FF87CEC8:\n"
 156                 "MOV    R0, #1\n"
 157                 "BL     sub_FF87D958\n"
 158                 "LDR    R0, [R4,#0xC]\n"
 159                 "CMP    R0, #0\n"
 160                 "BLNE   sub_FF87E444\n"
 161                 "B      loc_FF87D090\n"
 162 "loc_FF87CEE0:\n"
 163                 "BL     sub_FF87D358\n"
 164                 "B      loc_FF87CEC0\n"
 165 "loc_FF87CEE8:\n"
 166                 "BL     sub_FF87D688\n"
 167                 "B      loc_FF87CEC0\n"
 168 "loc_FF87CEF0:\n"
 169                 "BL     sub_FF87D690\n"
 170                 "B      loc_FF87D090\n"
 171 "loc_FF87CEF8:\n"
 172                 "BL     sub_FF87D848\n"
 173                 "B      loc_FF87CF5C\n"
 174 "loc_FF87CF00:\n"
 175                 "LDR    R5, [R0,#0xC]\n"
 176                 "BL     sub_FF87D698\n"
 177                 "MOV    R0, R5\n"
 178                 "BL     sub_FF960B0C\n"
 179                 "TST    R0, #1\n"
 180                 "MOV    R8, R0\n"
 181                 "BNE    loc_FF87CF40\n"
 182                 "BL     sub_FF88F46C\n"
 183                 "STR    R0, [R5,#0x18]\n"
 184                 "MOV    R0, R5\n"
 185                 "BL     sub_FF96227C\n"
 186                 "MOV    R0, R5\n"
 187                 "BL     sub_FF962674\n"
 188                 "MOV    R8, R0\n"
 189                 "LDR    R0, [R5,#0x18]\n"
 190                 "BL     sub_FF88F670\n"
 191 "loc_FF87CF40:\n"
 192                 "BL     sub_FF87D688\n"
 193                 "MOV    R2, R5\n"
 194                 "MOV    R1, #9\n"
 195                 "MOV    R0, R8\n"
 196 "loc_FF87CF50:\n"
 197                 "BL     sub_FF87AA74\n"
 198                 "B      loc_FF87D090\n"
 199 "loc_FF87CF58:\n"
 200                 "BL     sub_FF87D8D8\n"
 201 "loc_FF87CF5C:\n"
 202                 "BL     sub_FF87A4E0\n"
 203                 "B      loc_FF87D090\n"
 204 "loc_FF87CF64:\n"
 205                 "LDR    R0, [R4,#0x54]\n"
 206                 "BL     sub_FF87DF5C\n"
 207                 "B      loc_FF87D090\n"
 208 "loc_FF87CF70:\n"
 209                 "BL     sub_FF87E204\n"
 210                 "B      loc_FF87D090\n"
 211 "loc_FF87CF78:\n"
 212                 "BL     sub_FF87E294\n"
 213                 "B      loc_FF87D090\n"
 214 "loc_FF87CF80:\n"
 215                 "BL     sub_FF87D688\n"
 216                 "B      loc_FF87D090\n"
 217 "loc_FF87CF88:\n"
 218                 "BL     sub_FF960D38\n"
 219                 "B      loc_FF87D090\n"
 220 "loc_FF87CF90:\n"
 221                 "BL     sub_FF960F90\n"
 222                 "B      loc_FF87D090\n"
 223 "loc_FF87CF98:\n"
 224                 "BL     sub_FF961030\n"
 225                 "B      loc_FF87D090\n"
 226 "loc_FF87CFA0:\n"
 227                 "BL     sub_FF961164\n"
 228                 "B      loc_FF87D090\n"
 229 "loc_FF87CFA8:\n"
 230                 "BL     sub_FF961234\n"
 231                 "B      loc_FF87D090\n"
 232 "loc_FF87CFB0:\n"
 233                 "MOV    R0, #0\n"
 234                 "B      loc_FF87CFD4\n"
 235 "loc_FF87CFB8:\n"
 236                 "BL     sub_FF96180C\n"
 237                 "B      loc_FF87D090\n"
 238 "loc_FF87CFC0:\n"
 239                 "BL     sub_FF96189C\n"
 240                 "B      loc_FF87D090\n"
 241 "loc_FF87CFC8:\n"
 242                 "BL     sub_FF96195C\n"
 243                 "B      loc_FF87D090\n"
 244 "loc_FF87CFD0:\n"
 245                 "MOV    R0, #1\n"
 246 "loc_FF87CFD4:\n"
 247                 "BL     sub_FF9616CC\n"
 248                 "B      loc_FF87D090\n"
 249 "loc_FF87CFDC:\n"
 250                 "BL     sub_FF87DB74\n"
 251                 "B      loc_FF87D090\n"
 252 "loc_FF87CFE4:\n"
 253                 "BL     sub_FF87DC14\n"
 254                 "BL     sub_FF87D1B8\n"
 255                 "B      loc_FF87D090\n"
 256 "loc_FF87CFF0:\n"
 257                 "BL     sub_FF9614F4\n"
 258                 "B      loc_FF87D090\n"
 259 "loc_FF87CFF8:\n"
 260                 "MOV    R2, #2\n"
 261                 "ADD    R1, R4, #0x6A\n"
 262                 "MOV    R0, #0x6F\n"
 263                 "BL     sub_FF88F2DC\n"
 264                 "TST    R0, #1\n"
 265                 "LDRNE  R1, =0x6AB\n"
 266                 "LDRNE  R0, =0xFF87C518\n"
 267                 "BLNE   sub_FF81E88C\n"
 268                 "LDRH   R0, [R4,#0x6A]\n"
 269                 "CMP    R0, #1\n"
 270                 "BLEQ   sub_FF9614E8\n"
 271                 "B      loc_FF87D090\n"
 272 "loc_FF87D028:\n"
 273                 "BL     sub_FF961620\n"
 274                 "B      loc_FF87D090\n"
 275 "loc_FF87D030:\n"
 276                 "BL     sub_FF87C4A8\n"
 277                 "B      loc_FF87D090\n"
 278 "loc_FF87D038:\n"
 279                 "BL     sub_FF835E64\n"
 280                 "B      loc_FF87D090\n"
 281 "loc_FF87D040:\n"
 282                 "BL     sub_FF880584\n"
 283                 "B      loc_FF87D090\n"
 284 "loc_FF87D048:\n"
 285                 "BL     sub_FF8805EC\n"
 286                 "B      loc_FF87D090\n"
 287 "loc_FF87D050:\n"
 288                 "BL     sub_FF880648\n"
 289                 "BL     sub_FF880608\n"
 290                 "B      loc_FF87D090\n"
 291 "loc_FF87D05C:\n"
 292                 "MOV    R0, #1\n"
 293                 "BL     sub_FF962EBC\n"
 294                 "MOV    R0, #1\n"
 295                 "BL     sub_FF962FCC\n"
 296                 "LDRH   R0, [R4,#0xA8]\n"
 297                 "CMP    R0, #4\n"
 298                 "BNE    loc_FF87D090\n"
 299                 "BL     sub_FF8805EC\n"
 300                 "BL     sub_FF880A34\n"
 301                 "B      loc_FF87D090\n"
 302 "loc_FF87D084:\n"
 303                 "LDR    R1, =0x709\n"
 304                 "LDR    R0, =0xFF87C518\n"
 305                 "BL     sub_FF81E88C\n"
 306 "loc_FF87D090:\n"
 307                 "LDR    R0, [SP]\n"
 308                 "LDR    R1, [R0,#4]\n"
 309                 "LDR    R0, [R6]\n"
 310                 "BL     sub_FF88712C\n"
 311                 "LDR    R5, [SP]\n"
 312                 "LDR    R0, [R5,#8]\n"
 313                 "CMP    R0, #0\n"
 314                 "LDREQ  R1, =0x132\n"
 315                 "LDREQ  R0, =0xFF87C518\n"
 316                 "BLEQ   sub_FF81E88C\n"
 317                 "STR    R7, [R5,#8]\n"
 318                 "B      loc_FF87CD54\n"
 319 
 320 // End of function capt_seq_task
 321  );
 322 } 
 323 
 324 
 325 // correct upto here
 326 
 327 
 328 void __attribute__((naked,noinline)) sub_FF962364_my(){
 329 
 330  asm volatile(
 331                 "STMFD  SP!, {R0-R8,LR}\n"
 332                 "MOV    R4, R0\n"
 333                 "BL     sub_FF9631B8\n"
 334                 "LDR    R1, =0xFFFFFFFF\n"
 335                 "BL     sub_FF887160\n"
 336                 "LDR    R5, =0x7910\n"
 337                 "LDR    R0, [R5,#0xC]\n"
 338                 "CMP    R0, #0\n"
 339                 "BNE    loc_FF9623B4\n"
 340                 "MOV    R1, #1\n"
 341                 "MOV    R0, #0\n"
 342                 "BL     sub_FF838B60\n"
 343                 "STR    R0, [R5,#0xC]\n"
 344                 "MOV    R3, #0\n"
 345                 "STR    R3, [SP]\n"  // STR     R3, [SP,#0x28+var_28]
 346                 "LDR    R3, =0xFF961CF0\n"
 347                 "LDR    R0, =0xFF9625DC\n" // prev LDR
 348                 "MOV    R2, #0x400\n"
 349                 "MOV    R1, #0x17\n"
 350                 "BL     sub_FF838B2C\n"
 351 "loc_FF9623B4:\n" //                            ; CODE XREF: _sub_FF962390__SsCaptureSeq.c__0+20j\n" get here
 352                 "MOV    R2, #4\n"
 353                 "ADD    R1, SP, #8\n"
 354                 "MOV    R0, #0x8A\n"
 355                 "BL     sub_FF88F2DC\n"
 356                 "TST    R0, #1\n"
 357                 "LDRNE  R1, =0x3C5\n"
 358                 "LDRNE  R0, =0xFF961F88\n"
 359                 "BLNE   sub_FF81E88C\n"
 360                 "LDR    R8, =0x38A20\n"
 361                 "LDR    R7, =0x3894C\n"
 362                 "LDRSH  R1, [R8,#0xE]\n"
 363                 "LDR    R0, [R7,#0x9C]\n"
 364                 "BL     sub_FF925240\n"
 365                 "BL     sub_FF8626D0\n"
 366                 "LDR    R3, =0x7918\n"
 367                 "STRH   R0, [R4,#0xA4]\n"
 368                 "SUB    R2, R3, #4\n"
 369                 "STRD   R2, [SP]\n" // this ok? STRD    R2, [SP,#0x28+var_28]
 370                 "MOV    R1, R0\n"
 371                 "LDRH   R0, [R7,#0x64]\n"
 372                 "LDRSH  R2, [R8,#0xC]\n"
 373                 "SUB    R3, R3, #8\n"
 374                 "BL     sub_FF96481C\n"
 375                  "BL      wait_until_remote_button_is_released\n"
 376                  "BL      capt_seq_hook_set_nr\n"                     // +
 377                  "B       sub_FF962410\n"                             // continue function in firmware
 378 //              "LDR    R0, [R4,#0x1C]\n"
 379 //              "CMP    R0, #0\n" // get here!
 380 //              "MOVNE  R0, #1\n"
 381 //              "STRNE  R0, [R5]\n"
 382 //              "LDR    R0, [R5,#4]\n"
 383 //              "BL     sub_FF9254CC\n"
 384 //              "LDR    R0, [R5,#8]\n"
 385 //              "BL     sub_FF8C83DC\n"
 386 //              "MOV    R0, #1\n"
 387 //              "BL     sub_FF8C83E8\n" // BX LR
 388 //              "LDR    R0, =0xFF961D60\n"
 389 //              "MOV    R1, R4\n"
 390 //              "BL     sub_FF8C83B8\n"
 391 //              "LDR    R0, [R5]\n"
 392 //              "CMP    R0, #5\n" // get here!
 393 //              "ADDLS  PC, PC, R0,LSL#2\n" // badly wrong setting pc here
 394 //                "BL     wait_until_remote_button_is_released\n"
 395 //                "BL     capt_seq_hook_set_nr\n"                     // +
 396 //              "B      sub_FF96251C\n"                             // continue function in firmware
 397  );
 398 
 399 }
 400 
 401 
 402 
 403 
 404 
 405 void __attribute__((naked,noinline)) sub_FF87C648_my(){
 406  asm volatile(
 407                 "STMFD  SP!, {R3-R9,LR}\n"
 408                 "LDR    R4, [R0,#0xC]\n"
 409                 "LDR    R5, =0x3894C\n"
 410                 "LDR    R0, [R4,#8]\n"
 411                 "LDR    R6, =0x820A\n"
 412                 "ORR    R0, R0, #1\n"
 413                 "STR    R0, [R4,#8]\n"
 414                 "LDRH   R0, [R5]\n"
 415                 "LDR    R8, =0x2D50\n"
 416                 "MOV    R7, #0\n"
 417                 "CMP    R0, R6\n"
 418                 "BEQ    loc_FF87C6EC\n"
 419                 "LDRH   R0, [R5,#0xA6]\n"
 420                 "CMP    R0, #3\n"
 421                 "BEQ    loc_FF87C74C\n" //
 422                 "LDR    R0, [R4,#0xC]\n"
 423                 "CMP    R0, #1\n"
 424                 "BLS    loc_FF87C6F8\n"
 425                 "LDRH   R0, [R5,#0xA4]\n"
 426                 "CMP    R0, #0\n"
 427                 "BNE    loc_FF87C74C\n"
 428                 "LDRH   R0, [R5,#0xA0]\n"
 429                 "CMP    R0, #2\n"
 430                 "BNE    loc_FF87C704\n"
 431                 "BL     sub_FF87DCC4\n"
 432                 "LDRH   R0, [R5]\n"
 433                 "CMP    R0, R6\n"
 434                 "BEQ    loc_FF87C6EC\n"
 435                 "LDRH   R0, [R5,#0xA6]\n"
 436                 "CMP    R0, #3\n"
 437                 "BEQ    loc_FF87C74C\n"
 438                 "LDR    R0, [R4,#0xC]\n"
 439                 "CMP    R0, #1\n"
 440                 "BLS    loc_FF87C6F8\n"
 441                 "LDRH   R0, [R5,#0xA4]\n"
 442                 "CMP    R0, #0\n"
 443                 "BNE    loc_FF87C74C\n"
 444                 "LDRH   R0, [R5,#0xA0]\n"
 445                 "CMP    R0, #2\n"
 446                 "BEQ    loc_FF87C730\n"
 447                 "B      loc_FF87C704\n"
 448 "loc_FF87C6EC:\n" //                            ; CODE XREF: sub_FF87C648+2Cj\n"
 449                 "LDRH   R0, [R5,#0xA6]\n"
 450                 "CMP    R0, #3\n"
 451                 "BEQ    loc_FF87C74C\n"
 452 "loc_FF87C6F8:\n" //                            ; CODE XREF: sub_FF87C648+44j\n"
 453                 "LDRH   R0, [R5,#0xA4]\n"
 454                 "CMP    R0, #0\n"
 455                 "BNE    loc_FF87C74C\n"
 456 "loc_FF87C704:\n" //                            ; CODE XREF: sub_FF87C648+5Cj\n"
 457                 "LDRH   R0, [R5,#0xA0]\n"
 458                 "CMP    R0, #1\n"
 459                 "BNE    loc_FF87C74C\n"
 460                 "LDRH   R0, [R5]\n"
 461                 "CMP    R0, R6\n"
 462                 "LDRNE  R0, [R4,#0xC]\n"
 463                 "CMPNE  R0, #1\n"
 464                 "BLS    loc_FF87C74C\n"
 465                 "LDR    R0, [R4,#0x10]\n"
 466                 "CMP    R0, #1\n"
 467                 "BNE    loc_FF87C74C\n"
 468 "loc_FF87C730:\n" //                            ; CODE XREF: sub_FF87C648+9Cj\n"
 469                 "LDR    R3, =0x269\n"
 470                 "LDR    R2, =0xEA60\n"
 471                 "STR    R3, [SP]\n"
 472                 "LDR    R0, [R8]\n"
 473                 "LDR    R3, =0xFF87C518\n" // copied from above ; "SsShootTask.c"\n" // adr
 474                 "MOV    R1, #0x40000000\n"
 475                 "BL     sub_FF8824D4\n"
 476 "loc_FF87C74C:\n" //                            ; CODE XREF: sub_FF87C648+38j\n"
 477                 "BL     sub_FF87C4A8\n"
 478                 "LDR    R0, [R5,#0x24]\n"
 479                 "CMP    R0, #0\n"
 480                 "MOVEQ  R0, #2\n"
 481                 "BLEQ   sub_FF876154\n"
 482                 "BL     sub_FF87D698\n"
 483                 "LDR    R0, [R5,#0x24]\n"
 484                 "CMP    R0, #0\n"
 485                 "BNE    loc_FF87C818\n"
 486                 "MOV    R0, #0\n"
 487                 "BL     sub_FF962EBC\n"
 488                 "MOV    R0, #0\n"
 489                 "BL     sub_FF962FCC\n"
 490                 "MOV    R0, R4\n"
 491                 "BL     sub_FF961AC8\n"
 492                 "MOV    R0, R4\n"
 493                 "BL     sub_FF87DAF0\n"
 494                 "MOV    R0, R4\n"
 495                 "BL     sub_FF9606C0\n"
 496                 "CMP    R0, #0\n"
 497                 "BEQ    loc_FF87C7CC\n" //changed
 498                 "BL     sub_FF962EFC\n"
 499                 "BL     sub_FF963010\n"
 500                 "BL     sub_FF963060\n"
 501                 "MOV    R0, R4\n"
 502                 "BL     sub_FF960838\n"
 503                 "TST    R0, #1\n"
 504                 "MOVNE  R2, R4\n"
 505                 "LDMNEFD        SP!, {R3-R9,LR}\n"
 506                 "MOVNE  R1, #1\n"
 507                 "BNE    sub_FF87AA74\n"
 508                 "B      loc_FF87C7F4\n"
 509 "loc_FF87C7CC:\n" //                            ; CODE XREF: sub_FF87C648+154j\n"
 510                 "LDR    R0, [R5,#0xC]\n"
 511                 "CMP    R0, #0\n"
 512                 "BEQ    loc_FF87C7E0\n"
 513                 "BL     sub_FF87E3C8\n"
 514                 "BL     sub_FF877A24\n"
 515 "loc_FF87C7E0:\n" //                            ; CODE XREF: sub_FF87C648+18Cj\n"
 516                 "MOV    R0, R4\n"
 517                 "BL     sub_FF9607A4\n"
 518                 "BL     sub_FF962EFC\n" //changed
 519                 "BL     sub_FF963010\n" // changed
 520                 "BL     sub_FF963060\n" // changed
 521 "loc_FF87C7F4:\n" //                            ; CODE XREF: sub_FF87C648+180j\n"
 522                 "MOV    R0, R4\n"
 523                 "BL     sub_FF87C5D0\n"
 524                 "MOV    R0, R4\n"
 525                 "BL     sub_FF96227C\n" //changed
 526                 "BL     sub_FF962CF4\n" // changed
 527                 "MOV    R0, R4\n"
 528                                         "BL     sub_FF962364_my\n"
 529                 "MOV    R7, R0\n"
 530                                         "BL      capt_seq_hook_raw_here\n"      // +
 531                 "B      loc_FF87C824\n"
 532 "loc_FF87C818:\n" //                            ; CODE XREF: sub_FF87C648+124j\n"
 533                 "LDR    R0, [R8,#0x10]\n"
 534                 "CMP    R0, #0\n"
 535                 "MOVNE  R7, #0x1D\n"
 536 "loc_FF87C824:\n" //                            ; CODE XREF: sub_FF87C648+1CCj\n"
 537                 "BL     sub_FF8805EC\n"
 538                 "BL     sub_FF880634\n"
 539                 "BL     sub_FF880674\n"
 540                 "MOV    R2, R4\n"
 541                 "MOV    R1, #1\n"
 542                 "MOV    R0, R7\n"
 543                 "BL     sub_FF87AA74\n"
 544                 "BL     sub_FF962618\n" //changed
 545                 "CMP    R0, #0\n"
 546                 "LDRNE  R0, [R4,#8]\n"
 547                 "ORRNE  R0, R0, #0x2000\n"
 548                 "STRNE  R0, [R4,#8]\n"
 549                 "LDR    R0, [R4,#0x1C]\n"
 550                 "CMP    R0, #0\n"
 551                 "BLNE   sub_FF877A3C\n"
 552                 "LDRH   R0, [R5,#0xA6]\n"
 553                 "CMP    R0, #3\n"
 554                 "BEQ    locret_FF87C888\n"
 555                 "LDRH   R0, [R5,#0xA4]\n"
 556                 "CMP    R0, #0\n"
 557                 "LDREQH R0, [R5,#0xA0]\n"
 558                 "CMPEQ  R0, #2\n"
 559                 "MOVEQ  R0, R4\n"
 560                 "LDMEQFD        SP!, {R3-R9,LR}\n"
 561                 "BEQ    sub_FF87DD18\n"
 562 "locret_FF87C888:\n" //                         ; CODE XREF: sub_FF87C648+220j\n"
 563                 "LDMFD  SP!, {R3-R9,PC}\n"
 564 
 565  );
 566 }
 567 
 568 
 569 
 570 
 571 /*************************************************************/
 572 void __attribute__((naked,noinline)) exp_drv_task(){
 573 
 574 //blinko();
 575 
 576  asm volatile(
 577                 "STMFD  SP!, {R4-R8,LR}\n"
 578                 "SUB    SP, SP, #0x20\n"
 579                 "LDR    R8, =0xBB8\n"
 580                 "LDR    R7, =0x4658\n"
 581                 "LDR    R5, =0x3D90C\n" // changed from 0x3D8EC
 582                 "MOV    R0, #0\n"
 583                 "ADD    R6, SP, #0x10\n"
 584                 "STR    R0, [SP,#0xC]\n"
 585 "loc_FF8C1450:\n" //                            ; CODE XREF: task_ExpDrvTask+5B8j\n"
 586                 "LDR    R0, [R7,#0x20]\n"
 587                 "MOV    R2, #0\n"
 588                 "ADD    R1, SP, #0x1C\n"
 589                 "BL     sub_FF838318\n"
 590                 "LDR    R0, [SP,#0xC]\n"
 591                 "CMP    R0, #1\n"
 592                 "BNE    loc_FF8C149C\n"
 593                 "LDR    R0, [SP,#0x1C]\n"
 594                 "LDR    R0, [R0]\n"
 595                 "CMP    R0, #0x13\n"
 596                 "CMPNE  R0, #0x14\n"
 597                 "CMPNE  R0, #0x15\n"
 598                 "CMPNE  R0, #0x16\n"
 599                 "BEQ    loc_FF8C15B8\n"
 600                 "CMP    R0, #0x28\n"
 601                 "BEQ    loc_FF8C1590\n"
 602                 "ADD    R1, SP, #0xC\n"
 603                 "MOV    R0, #0\n"
 604                 "BL     sub_FF8C13E0\n"
 605 "loc_FF8C149C:\n" //                            ; CODE XREF: task_ExpDrvTask+38j\n"
 606                 "LDR    R0, [SP,#0x1C]\n"
 607                 "LDR    R1, [R0]\n"
 608                 "CMP    R1, #0x2D\n"
 609                 "BNE    loc_FF8C14CC\n"
 610                 "LDR    R0, [SP,#0x1C]\n"
 611                 "BL     sub_FF8C2698\n"
 612                 "LDR    R0, [R7,#0x1C]\n"
 613                 "MOV    R1, #1\n"
 614                 "BL     sub_FF88712C\n"
 615                 "BL     sub_FF81E844\n"
 616                 "ADD    SP, SP, #0x20\n"
 617                 "LDMFD  SP!, {R4-R8,PC}\n"
 618 "loc_FF8C14CC:\n" //                            ; CODE XREF: task_ExpDrvTask+78j\n"
 619                 "CMP    R1, #0x2C\n"
 620                 "BNE    loc_FF8C14E8\n"
 621                 "LDR    R2, [R0,#0x8C]!\n"
 622                 "LDR    R1, [R0,#4]\n"
 623                 "MOV    R0, R1\n"
 624                 "BLX    R2\n"
 625                 "B      loc_FF8C19E0\n"
 626 "loc_FF8C14E8:\n" //                            ; CODE XREF: task_ExpDrvTask+A0j\n"
 627                 "CMP    R1, #0x26\n"
 628                 "BNE    loc_FF8C1538\n"
 629                 "LDR    R0, [R7,#0x1C]\n"
 630                 "MOV    R1, #0x80\n"
 631                 "BL     sub_FF887160\n"
 632                 "LDR    R0, =0xFF8BDB6C\n"
 633                 "MOV    R1, #0x80\n"
 634                 "BL     sub_FF9516F0\n"
 635                 "LDR    R0, [R7,#0x1C]\n"
 636                 "MOV    R2, R8\n"
 637                 "MOV    R1, #0x80\n"
 638                 "BL     sub_FF88706C\n"
 639                 "TST    R0, #1\n"
 640                 "LDRNE  R1, =0xE54\n"
 641                 "BNE    loc_FF8C157C\n"
 642 "loc_FF8C1524:\n" //                            ; CODE XREF: task_ExpDrvTask+144j\n"
 643                 "LDR    R1, [SP,#0x1C]\n"
 644                 "LDR    R0, [R1,#0x90]\n"
 645                 "LDR    R1, [R1,#0x8C]\n"
 646                 "BLX    R1\n"
 647                 "B      loc_FF8C19E0\n"
 648 "loc_FF8C1538:\n" //                            ; CODE XREF: task_ExpDrvTask+BCj\n"
 649                 "CMP    R1, #0x27\n"
 650                 "BNE    loc_FF8C1588\n"
 651                 "ADD    R1, SP, #0xC\n"
 652                 "BL     sub_FF8C13E0\n"
 653                 "LDR    R0, [R7,#0x1C]\n"
 654                 "MOV    R1, #0x100\n"
 655                 "BL     sub_FF887160\n"
 656                 "LDR    R0, =0xFF8BDB7C\n"
 657                 "MOV    R1, #0x100\n"
 658                 "BL     sub_FF95207C\n"
 659                 "LDR    R0, [R7,#0x1C]\n"
 660                 "MOV    R2, R8\n"
 661                 "MOV    R1, #0x100\n"
 662                 "BL     sub_FF88706C\n"
 663                 "TST    R0, #1\n"
 664                 "BEQ    loc_FF8C1524\n"
 665                 "LDR    R1, =0xE5E\n"
 666 "loc_FF8C157C:\n" //                            ; CODE XREF: task_ExpDrvTask+F0j\n"
 667                 "LDR    R0, =0xFF8BE1E0\n"
 668                 "BL     sub_FF81E88C\n"
 669                 "B      loc_FF8C1524\n"
 670 "loc_FF8C1588:\n" //                            ; CODE XREF: task_ExpDrvTask+10Cj\n"
 671                 "CMP    R1, #0x28\n"
 672                 "BNE    loc_FF8C15A0\n"
 673 "loc_FF8C1590:\n" //                            ; CODE XREF: task_ExpDrvTask+5Cj\n"
 674                 "LDR    R0, [SP,#0x1C]\n"
 675                 "ADD    R1, SP, #0xC\n"
 676                 "BL     sub_FF8C13E0\n"
 677                 "B      loc_FF8C1524\n"
 678 "loc_FF8C15A0:\n" //                            ; CODE XREF: task_ExpDrvTask+15Cj\n"
 679                 "CMP    R1, #0x2B\n"
 680                 "BNE    loc_FF8C15B8\n"
 681                 "BL     sub_FF8B17BC\n"
 682                 "BL     sub_FF8B23E0\n"
 683                 "BL     sub_FF8B1F34\n"
 684                 "B      loc_FF8C1524\n"
 685 "loc_FF8C15B8:\n" //                            ; CODE XREF: task_ExpDrvTask+54j\n"
 686                 "LDR    R0, [SP,#0x1C]\n"
 687                 "MOV    R4, #1\n"
 688                 "LDR    R1, [R0]\n"
 689                 "CMP    R1, #0x11\n"
 690                 "CMPNE  R1, #0x12\n"
 691                 "BNE    loc_FF8C1628\n"
 692                 "LDR    R1, [R0,#0x7C]\n"
 693                 "ADD    R1, R1, R1,LSL#1\n"
 694                 "ADD    R1, R0, R1,LSL#2\n"
 695                 "SUB    R1, R1, #8\n"
 696                 "LDMIA  R1, {R2-R4}\n"
 697                 "STMIA  R6, {R2-R4}\n"
 698                 "BL     sub_FF8BFD48\n" // loc -> sub
 699                 "LDR    R0, [SP,#0x1C]\n"
 700                 "LDR    R1, [R0,#0x7C]\n"
 701                 "LDR    R3, [R0,#0x8C]\n"
 702                 "LDR    R2, [R0,#0x90]\n"
 703                 "ADD    R0, R0, #4\n"
 704                 "BLX    R3\n"
 705                 "LDR    R0, [SP,#0x1C]\n"
 706                 "BL     sub_FF8C2A5C\n"
 707                 "LDR    R0, [SP,#0x1C]\n"
 708                 "LDR    R1, [R0,#0x7C]\n"
 709                 "LDR    R3, [R0,#0x94]\n"
 710                 "LDR    R2, [R0,#0x98]\n"
 711                 "ADD    R0, R0, #4\n"
 712                 "BLX    R3\n"
 713                 "B      loc_FF8C1920\n"
 714 "loc_FF8C1628:\n" //                            ; CODE XREF: task_ExpDrvTask+19Cj\n"
 715                 "CMP    R1, #0x13\n"
 716                 "CMPNE  R1, #0x14\n"
 717                 "CMPNE  R1, #0x15\n"
 718                 "CMPNE  R1, #0x16\n"
 719                 "BNE    loc_FF8C16E0\n"
 720                 "ADD    R3, SP, #0xC\n"
 721                 "MOV    R2, SP\n"
 722                 "ADD    R1, SP, #0x10\n"
 723                 "BL     sub_FF8C0030\n"
 724                 "CMP    R0, #1\n"
 725                 "MOV    R4, R0\n"
 726                 "CMPNE  R4, #5\n"
 727                 "BNE    loc_FF8C167C\n"
 728                 "LDR    R0, [SP,#0x1C]\n"
 729                 "MOV    R2, R4\n"
 730                 "LDR    R1, [R0,#0x7C]!\n"
 731                 "LDR    R12, [R0,#0x10]!\n"
 732                 "LDR    R3, [R0,#4]\n"
 733                 "MOV    R0, SP\n"
 734                 "BLX    R12\n"
 735                 "B      loc_FF8C16B4\n"
 736 "loc_FF8C167C:\n" //                            ; CODE XREF: task_ExpDrvTask+228j\n"
 737                 "LDR    R0, [SP,#0x1C]\n"
 738                 "CMP    R4, #2\n"
 739                 "LDR    R3, [R0,#0x90]\n"
 740                 "CMPNE  R4, #6\n"
 741                 "BNE    loc_FF8C16C8\n"
 742                 "LDR    R12, [R0,#0x8C]\n"
 743                 "MOV    R0, SP\n"
 744                 "MOV    R2, R4\n"
 745                 "MOV    R1, #1\n"
 746                 "BLX    R12\n"
 747                 "LDR    R0, [SP,#0x1C]\n"
 748                 "MOV    R2, SP\n"
 749                 "ADD    R1, SP, #0x10\n"
 750                 "BL     sub_FF8C10E8\n"
 751 "loc_FF8C16B4:\n" //                            ; CODE XREF: task_ExpDrvTask+248j\n"
 752                 "LDR    R0, [SP,#0x1C]\n"
 753                 "LDR    R2, [SP,#0xC]\n"
 754                 "MOV    R1, R4\n"
 755                 "BL     sub_FF8C1380\n"
 756                 "B      loc_FF8C1920\n"
 757 "loc_FF8C16C8:\n" //                            ; CODE XREF: task_ExpDrvTask+25Cj\n"
 758                 "LDR    R1, [R0,#0x7C]\n"
 759                 "LDR    R12, [R0,#0x8C]\n"
 760                 "ADD    R0, R0, #4\n"
 761                 "MOV    R2, R4\n"
 762                 "BLX    R12\n"
 763                 "B      loc_FF8C1920\n"
 764 "loc_FF8C16E0:\n" //                            ; CODE XREF: task_ExpDrvTask+208j\n"
 765                 "CMP    R1, #0x22\n"
 766                 "CMPNE  R1, #0x23\n"
 767                 "BNE    loc_FF8C172C\n"
 768                 "LDR    R1, [R0,#0x7C]\n"
 769                 "ADD    R1, R1, R1,LSL#1\n"
 770                 "ADD    R1, R0, R1,LSL#2\n"
 771                 "SUB    R1, R1, #8\n"
 772                 "LDMIA  R1, {R2-R4}\n"
 773                 "STMIA  R6, {R2-R4}\n"
 774                 "BL     sub_FF8BF28C\n"
 775                 "LDR    R0, [SP,#0x1C]\n"
 776                 "LDR    R1, [R0,#0x7C]\n"
 777                 "LDR    R3, [R0,#0x8C]\n"
 778                 "LDR    R2, [R0,#0x90]\n"
 779                 "ADD    R0, R0, #4\n"
 780                 "BLX    R3\n"
 781                 "LDR    R0, [SP,#0x1C]\n"
 782                 "BL     sub_FF8BF58C\n"
 783                 "B      loc_FF8C1920\n"
 784 "loc_FF8C172C:\n" //                            ; CODE XREF: task_ExpDrvTask+2B8j\n"
 785                 "ADD    R1, R0, #4\n"
 786                 "LDMIA  R1, {R2,R3,R12}\n"
 787                 "STMIA  R6, {R2,R3,R12}\n"
 788                 "LDR    R1, [R0]\n"
 789                 "CMP    R1, #0x25\n"
 790                 "ADDLS  PC, PC, R1,LSL#2\n"
 791                 "B      loc_FF8C1900\n" 
 792 
 793 
 794 "loc_FF8C1748:  B       loc_FF8C17E0\n"
 795 "loc_FF8C174C:  B       loc_FF8C17E0\n"
 796 "loc_FF8C1750:  B       loc_FF8C17E8\n"
 797 "loc_FF8C1754:  B       loc_FF8C17F0\n"
 798 "loc_FF8C1758:  B       loc_FF8C17F0\n"
 799 "loc_FF8C175C:  B       loc_FF8C17F0\n"
 800 "loc_FF8C1760:  B       loc_FF8C17E0\n"
 801 "loc_FF8C1764:  B       loc_FF8C17E8\n"
 802 "loc_FF8C1768:  B       loc_FF8C17F0\n"
 803 "loc_FF8C176C:  B       loc_FF8C17F0\n"
 804 "loc_FF8C1770:  B       loc_FF8C1808\n"
 805 "loc_FF8C1774:  B       loc_FF8C1808\n"
 806 "loc_FF8C1778:  B       loc_FF8C18F4\n"
 807 "loc_FF8C177C:  B       loc_FF8C18FC\n"
 808 "loc_FF8C1780:  B       loc_FF8C18FC\n"
 809 "loc_FF8C1784:  B       loc_FF8C18FC\n"
 810 "loc_FF8C1788:  B       loc_FF8C18FC\n"
 811 "loc_FF8C178C:  B       loc_FF8C1900\n"
 812 
 813 
 814 "loc_FF8C1790:  B       loc_FF8C1900\n"
 815 "loc_FF8C1794:  B       loc_FF8C1900\n"
 816 "loc_FF8C1798:  B       loc_FF8C1900\n"
 817 "loc_FF8C179C:  B       loc_FF8C1900\n"
 818 "loc_FF8C17A0:  B       loc_FF8C1900\n"
 819 "loc_FF8C17A4:  B       loc_FF8C17F8\n"
 820 "loc_FF8C17A8:  B       loc_FF8C1800\n"
 821 "loc_FF8C17AC:  B       loc_FF8C1800\n"
 822 "loc_FF8C17B0:  B       loc_FF8C1814\n"
 823 "loc_FF8C17B4:  B       loc_FF8C1814\n"
 824 "loc_FF8C17B8:  B       loc_FF8C181C\n"
 825 "loc_FF8C17BC:  B       loc_FF8C181C\n"
 826 "loc_FF8C17C0:  B       loc_FF8C187C\n"
 827 "loc_FF8C17C4:  B       loc_FF8C18AC\n"
 828 "loc_FF8C17C8:  B       loc_FF8C18DC\n"
 829 "loc_FF8C17CC:  B       loc_FF8C18DC\n"
 830 "loc_FF8C17D0:  B       loc_FF8C1900\n"
 831 "loc_FF8C17D4:  B       loc_FF8C1900\n"
 832 "loc_FF8C17D8:  B       loc_FF8C18E4\n"
 833 "loc_FF8C17DC:  B       loc_FF8C18EC\n"
 834 
 835 "loc_FF8C17E0:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 836                 "BL     sub_FF8BE084\n"
 837                 "B      loc_FF8C1900\n"
 838 "loc_FF8C17E8:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 839                 "BL     sub_FF8BE30C\n"
 840                 "B      loc_FF8C1900\n"
 841 "loc_FF8C17F0:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 842                 "BL     sub_FF8BE514\n"
 843                 "B      loc_FF8C1900\n"
 844 "loc_FF8C17F8:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 845                 "BL     sub_FF8BE78C\n"
 846                 "B      loc_FF8C1900\n"
 847 "loc_FF8C1800:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 848                 "BL     sub_FF8BE984\n"
 849                 "B      loc_FF8C1900\n"
 850 "loc_FF8C1808:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 851 //              "BL     sub_FF8BEC50\n"
 852                 "BL     sub_FF8BEC40_my\n" // ---->
 853                 "MOV    R4, #0\n"
 854                 "B      loc_FF8C1900\n"
 855 "loc_FF8C1814:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 856                 "BL     sub_FF8BED80\n"
 857                 "B      loc_FF8C1900\n"
 858 "loc_FF8C181C:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 859                 "LDRH   R1, [R0,#4]\n"
 860                 "STRH   R1, [SP,#0x10]\n"
 861                 "LDRH   R1, [R5,#2]\n"
 862                 "STRH   R1, [SP,#0x12]\n"
 863                 "LDRH   R1, [R5,#4]\n"
 864                 "STRH   R1, [SP,#0x14]\n"
 865                 "LDRH   R1, [R5,#6]\n"
 866                 "STRH   R1, [SP,#0x16]\n"
 867                 "LDRH   R1, [R0,#0xC]\n"
 868                 "STRH   R1, [SP,#0x18]\n"
 869                 "BL     sub_FF8C270C\n"
 870                 "B      loc_FF8C1900\n"
 871 "loc_FF8C184C:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 872                 "LDRH   R1, [R0,#4]\n"
 873                 "STRH   R1, [SP,#0x10]\n"
 874                 "LDRH   R1, [R5,#2]\n"
 875                 "STRH   R1, [SP,#0x12]\n"
 876                 "LDRH   R1, [R5,#4]\n"
 877                 "STRH   R1, [SP,#0x14]\n"
 878                 "LDRH   R1, [R5,#6]\n"
 879                 "STRH   R1, [SP,#0x16]\n"
 880                 "LDRH   R1, [R5,#8]\n"
 881                 "STRH   R1, [SP,#0x18]\n"
 882                 "BL     sub_FF8C2874\n"
 883                 "B      loc_FF8C1900\n"
 884 "loc_FF8C187C:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 885                 "LDRH   R1, [R5]\n"
 886                 "STRH   R1, [SP,#0x10]\n"
 887                 "LDRH   R1, [R0,#6]\n"
 888                 "STRH   R1, [SP,#0x12]\n"
 889                 "LDRH   R1, [R5,#4]\n"
 890                 "STRH   R1, [SP,#0x14]\n"
 891                 "LDRH   R1, [R5,#6]\n"
 892                 "STRH   R1, [SP,#0x16]\n"
 893                 "LDRH   R1, [R5,#8]\n"
 894                 "STRH   R1, [SP,#0x18]\n"
 895                 "BL     sub_FF8C2920\n"
 896                 "B      loc_FF8C1900\n"
 897 "loc_FF8C18AC:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 898                 "LDRH   R1, [R5]\n"
 899                 "STRH   R1, [SP,#0x10]\n"
 900                 "LDRH   R1, [R5,#2]\n"
 901                 "STRH   R1, [SP,#0x12]\n"
 902                 "LDRH   R1, [R5,#4]\n"
 903                 "STRH   R1, [SP,#0x14]\n"
 904                 "LDRH   R1, [R5,#6]\n"
 905                 "STRH   R1, [SP,#0x16]\n"
 906                 "LDRH   R1, [R0,#0xC]\n"
 907                 "STRH   R1, [SP,#0x18]\n"
 908                 "BL     sub_FF8C29C0\n"
 909                 "B      loc_FF8C1900\n"
 910 "loc_FF8C18DC:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 911                 "BL     sub_FF8BF0C8\n"
 912                 "B      loc_FF8C1900\n"
 913 "loc_FF8C18E4:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 914                 "BL     sub_FF8BF690\n"
 915                 "B      loc_FF8C1900\n"
 916 "loc_FF8C18EC:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 917                 "BL     sub_FF8BF8CC\n"
 918                 "B      loc_FF8C1900\n"
 919 "loc_FF8C18F4:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 920                 "BL     sub_FF8BFA48\n"
 921                 "B      loc_FF8C1900\n"
 922 "loc_FF8C18FC:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 923                 "BL     sub_FF8BFBE4\n"
 924 "loc_FF8C1900:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 925                 "LDR    R0, [SP,#0x1C]\n"
 926                 "LDR    R1, [R0,#0x7C]\n"
 927                 "LDR    R3, [R0,#0x8C]\n"
 928                 "LDR    R2, [R0,#0x90]\n"
 929                 "ADD    R0, R0, #4\n"
 930                 "BLX    R3\n"
 931                 "CMP    R4, #1\n"
 932                 "BNE    loc_FF8C1968\n"
 933 "loc_FF8C1920:\n" //                            ; CODE XREF: task_ExpDrvTask+1F4j\n"
 934                 "LDR    R0, [SP,#0x1C]\n"
 935                 "MOV    R2, #0xC\n"
 936                 "LDR    R1, [R0,#0x7C]\n"
 937                 "ADD    R1, R1, R1,LSL#1\n"
 938                 "ADD    R0, R0, R1,LSL#2\n"
 939                 "SUB    R4, R0, #8\n"
 940                 "LDR    R0, =0x3D90C\n" // changed from 3D8EC
 941                 "ADD    R1, SP, #0x10\n"
 942                 "BL     sub_FFB366B4\n"
 943                 "LDR    R0, =0x3D918\n" // changed from 3D8F8
 944                 "MOV    R2, #0xC\n"
 945                 "ADD    R1, SP, #0x10\n"
 946                 "BL     sub_FFB366B4\n"
 947                 "LDR    R0, =0x3D924\n" // changed from 3D904
 948                 "MOV    R2, #0xC\n"
 949                 "MOV    R1, R4\n"
 950                 "BL     sub_FFB366B4\n"
 951                 "B      loc_FF8C19E0\n"
 952 "loc_FF8C1968:\n" //                            ; CODE XREF: task_ExpDrvTask+4ECj\n"
 953                 "LDR    R0, [SP,#0x1C]\n"
 954                 "LDR    R0, [R0]\n"
 955                 "CMP    R0, #0xB\n"
 956                 "BNE    loc_FF8C19B0\n"
 957                 "MOV    R3, #0\n"
 958                 "STR    R3, [SP]\n"
 959                 "MOV    R3, #1\n"
 960                 "MOV    R2, #1\n"
 961                 "MOV    R1, #1\n"
 962                 "MOV    R0, #0\n"
 963                 "BL     sub_FF8BDE8C\n"
 964                 "MOV    R3, #0\n"
 965                 "STR    R3, [SP]\n"
 966                 "MOV    R3, #1\n"
 967                 "MOV    R2, #1\n"
 968                 "MOV    R1, #1\n"
 969                 "MOV    R0, #0\n"
 970                 "B      loc_FF8C19CC\n"
 971 "loc_FF8C19B0:\n" //                            ; CODE XREF: task_ExpDrvTask+544j\n"
 972                 "MOV    R3, #1\n"
 973                 "MOV    R2, #1\n"
 974                 "MOV    R1, #1\n"
 975                 "MOV    R0, #1\n"
 976                 "STR    R3, [SP]\n"
 977                 "BL     sub_FF8BDE8C\n"
 978                 "MOV    R3, #1\n"
 979                 "MOV    R2, #1\n"
 980                 "MOV    R1, #1\n"
 981                 "MOV    R0, #1\n"
 982                 "STR    R3, [SP]\n"
 983 "loc_FF8C19CC:\n" //                            ; CODE XREF: task_ExpDrvTask+57Cj\n"
 984                 "BL     sub_FF8BDFCC\n"
 985 "loc_FF8C19E0:\n" //                            ; CODE XREF: task_ExpDrvTask+B4j\n"
 986                 "LDR    R0, [SP,#0x1C]\n"
 987                 "BL     sub_FF8C2698\n"
 988                 "B      loc_FF8C1450\n"
 989 //; End of function task_ExpDrvTask\n"
 990 
 991  );
 992 }
 993 
 994 
 995 void __attribute__((naked,noinline)) sub_FF8BEC40_my(){
 996 
 997  asm volatile(
 998                 "STMFD  SP!, {R4-R8,LR}\n"
 999                 "LDR    R7, =0x4658\n"
1000                 "MOV    R4, R0\n"
1001                 "LDR    R0, [R7,#0x1C]\n"
1002                 "MOV    R1, #0x3E\n"
1003                 "BL     sub_FF887160\n"
1004                 "LDRSH  R0, [R4,#4]\n"
1005                 "MOV    R2, #0\n"
1006                 "MOV    R1, #0\n"
1007                 "BL     sub_FF8BDBF0\n"
1008                 "MOV    R6, R0\n"
1009                 "LDRSH  R0, [R4,#6]\n"
1010                 "BL     sub_FF8BDD00\n"
1011                 "LDRSH  R0, [R4,#8]\n"
1012                 "BL     sub_FF8BDD58\n"
1013                 "LDRSH  R0, [R4,#0xA]\n"
1014                 "BL     sub_FF8BDDB0\n"
1015                 "LDRSH  R0, [R4,#0xC]\n"
1016                 "MOV    R1, #0\n"
1017                 "BL     sub_FF8BDE08\n"
1018                 "MOV    R5, R0\n"
1019                 "LDR    R0, [R4]\n"
1020                 "LDR    R8, =0x3D924\n" // changed from 3D904
1021                 "CMP    R0, #0xB\n"
1022                 "MOVEQ  R6, #0\n"
1023                 "MOVEQ  R5, #0\n"
1024                 "BEQ    loc_FF8BECD4\n"
1025                 "CMP    R6, #1\n"
1026                 "BNE    loc_FF8BECD4\n"
1027                 "LDRSH  R0, [R4,#4]\n"
1028                 "LDR    R1, =0xFF8BDB5C\n"
1029                 "MOV    R2, #2\n"
1030                 "BL     sub_FF951A38\n"
1031                 "STRH   R0, [R4,#4]\n"
1032                 "MOV    R0, #0\n"
1033                 "STR    R0, [R7,#0x28]\n"
1034                 "B      loc_FF8BECDC\n" 
1035 
1036 "loc_FF8BECD4:\n" //                            ; CODE XREF: _sub_FF8BEC50__ExpDrv.c__2+68j\n"
1037                 "LDRH   R0, [R8]\n"
1038                 "STRH   R0, [R4,#4]\n"
1039 "loc_FF8BECDC:\n" //                            ; CODE XREF: _sub_FF8BEC50__ExpDrv.c__2+90j\n"
1040                 "CMP    R5, #1\n"
1041                 "LDRNEH R0, [R8,#8]\n"
1042                 "BNE    loc_FF8BECF8\n"
1043                 "LDRSH  R0, [R4,#0xC]\n"
1044                 "LDR    R1, =0xFF8BDBE0\n"
1045                 "MOV    R2, #0x20\n"
1046                 "BL     sub_FF8C26C8\n"
1047 "loc_FF8BECF8:\n" //                            ; CODE XREF: _sub_FF8BEC50__ExpDrv.c__2+A4j\n"
1048                 "STRH   R0, [R4,#0xC]\n"
1049                 "LDRSH  R0, [R4,#6]\n"
1050 //              "BL     sub_FF8B153C\n"
1051                 "BL     sub_FF8B152C_my\n"
1052                 "LDRSH  R0, [R4,#8]\n"
1053                 "MOV    R1, #1\n"
1054                 "BL     sub_FF8B1C7C\n"
1055                 "MOV    R1, #0\n"
1056                 "ADD    R0, R4, #8\n"
1057                 "BL     sub_FF8B1D04\n"
1058                 "LDRSH  R0, [R4,#0xE]\n"
1059                 "BL     sub_FF8B96A8\n"
1060                 "LDR    R4, =0xBB8\n"
1061                 "CMP    R6, #1\n"
1062                 "BNE    loc_FF8BED50\n"
1063                 "LDR    R0, [R7,#0x1C]\n"
1064                 "MOV    R2, R4\n"
1065                 "MOV    R1, #2\n"
1066                 "BL     sub_FF88706C\n"
1067                 "TST    R0, #1\n"
1068                 "SUBNE  R1, R4, #0x620\n"
1069                 "LDRNE  R0, =0xFF8BE1E0\n"
1070                 "BLNE   sub_FF81E88C\n"
1071 "loc_FF8BED50:\n" //                            ; CODE XREF: _sub_FF8BEC50__ExpDrv.c__2+ECj\n"
1072                 "CMP    R5, #1\n"
1073                 "LDMNEFD        SP!, {R4-R8,PC}\n"
1074                 "LDR    R0, [R7,#0x1C]\n"
1075                 "MOV    R2, R4\n"
1076                 "MOV    R1, #0x20\n"
1077                 "BL     sub_FF88706C\n"
1078                 "TST    R0, #1\n"
1079                 "LDRNE  R1, =0x59D\n"
1080                 "LDRNE  R0, =0xFF8BE1E0\n"
1081                 "LDMNEFD        SP!, {R4-R8,LR}\n"
1082                 "BNE    sub_FF81E88C\n"
1083                 "LDMFD  SP!, {R4-R8,PC}\n"
1084 //; End of function _sub_FF8BEC50__ExpDrv.c__2\n" 
1085  );
1086 }
1087 
1088 void __attribute__((naked,noinline)) sub_FF8B152C_my(){
1089 
1090  asm volatile(
1091                 "STMFD  SP!, {R4-R6,LR}\n"
1092                 "LDR    R5, =0x4370\n"
1093                 "MOV    R4, R0\n"
1094                 "LDR    R0, [R5,#4]\n"
1095                 "CMP    R0, #1\n"
1096                 "LDRNE  R1, =0x146\n"
1097                 "LDRNE  R0, =0xFF8B1330\n"
1098                 "BLNE   sub_FF81E88C\n"
1099                 "CMN    R4, #0xC00\n"
1100                 "LDREQSH        R4, [R5,#2]\n"
1101                 "CMN    R4, #0xC00\n"
1102                 "MOVEQ  R1, #0x14C\n"
1103                 "LDREQ  R0, =0xFF8B1330\n"
1104                 "STRH   R4, [R5,#2]\n"
1105                 "BLEQ   sub_FF81E88C\n"
1106                 "MOV    R0, R4\n"
1107 //              "BL     sub_FFA080B8\n"
1108                 "BL     apex2us\n"
1109                 "MOV    R4, R0\n"
1110 //              "BL     nullsub_59\n"
1111                 "MOV    R0, R4\n"
1112                 "BL     sub_FF8F3308\n"
1113                 "TST    R0, #1\n"
1114                 "LDRNE  R1, =0x151\n"
1115                 "LDMNEFD        SP!, {R4-R6,LR}\n"
1116                 "LDRNE  R0, =0xFF8B1330\n"
1117                 "BNE    sub_FF81E88C\n"
1118                 "LDMFD  SP!, {R4-R6,PC}\n" 
1119 // End of function sub_FF89D14C
1120  );
1121 }

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