root/platform/sx20/sub/102d/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_FF962520_my
  5. sub_FF87C698_my
  6. exp_drv_task
  7. sub_FF8BEC90_my
  8. sub_FF8B157C_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_FF87CDA4:\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_FF87CDD0\n"
  49         "LDR R1, =0x5B4\n"
  50         "LDR R0, =0xFF87C568\n"
  51         "BL sub_FF81E88C\n"
  52         "BL sub_FF81E844\n"
  53         "LDMFD SP!, {R3-R9,PC}\n"
  54 
  55 
  56 "loc_FF87CDD0:\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_FF87D0D4\n"
  62 
  63 "loc_FF87CDE4: B  loc_FF87CE70\n"
  64 "loc_FF87CDE8: B  loc_FF87CEDC\n"
  65 "loc_FF87CDEC: B  loc_FF87CF18\n"
  66 "loc_FF87CDF0: B  loc_FF87CF38\n"
  67 "loc_FF87CDF4: B  loc_FF87CF30\n"
  68 "loc_FF87CDF8: B  loc_FF87CF40\n"
  69 "loc_FF87CDFC: B  loc_FF87CF48\n"
  70 "loc_FF87CE00: B  loc_FF87CF50\n"
  71 "loc_FF87CE04: B  loc_FF87CFA8\n"
  72 "loc_FF87CE08: B  loc_FF87CFD0\n"
  73 "loc_FF87CE0C: B  loc_FF87CFB4\n"
  74 "loc_FF87CE10: B  loc_FF87CFC0\n"
  75 "loc_FF87CE14: B  loc_FF87CFC8\n"
  76 "loc_FF87CE18: B  loc_FF87CFD8\n"
  77 "loc_FF87CE1C: B  loc_FF87CFE0\n"
  78 "loc_FF87CE20: B  loc_FF87CFE8\n"
  79 "loc_FF87CE24: B  loc_FF87CFF0\n"
  80 "loc_FF87CE28: B  loc_FF87CFF8\n"
  81 "loc_FF87CE2C: B  loc_FF87D000\n"
  82 "loc_FF87CE30: B  loc_FF87D008\n"
  83 "loc_FF87CE34: B  loc_FF87D010\n"
  84 "loc_FF87CE38: B  loc_FF87D018\n"
  85 "loc_FF87CE3C: B  loc_FF87D020\n"
  86 "loc_FF87CE40: B  loc_FF87D02C\n"
  87 "loc_FF87CE44: B  loc_FF87D034\n"
  88 "loc_FF87CE48: B  loc_FF87D040\n"
  89 "loc_FF87CE4C: B  loc_FF87D048\n"
  90 "loc_FF87CE50: B  loc_FF87D078\n"
  91 "loc_FF87CE54: B  loc_FF87D080\n"
  92 "loc_FF87CE58: B  loc_FF87D088\n"
  93 "loc_FF87CE5C: B  loc_FF87D090\n"
  94 "loc_FF87CE60: B  loc_FF87D098\n"
  95 "loc_FF87CE64: B  loc_FF87D0A0\n"
  96 "loc_FF87CE68: B  loc_FF87D0AC\n"
  97 "loc_FF87CE6C: B  loc_FF87D0E0\n"
  98 
  99 "loc_FF87CE70:\n"
 100         "BL sub_FF87D6F8\n"
 101                                         "BL      shooting_expo_param_override\n"  // +
 102         "BL sub_FF87A530\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_FF87D0E0\n"
 111         "BL sub_FF87C240\n"
 112         "MOV R5, R0\n"
 113         "LDR R0, [R4,#0x24]\n"
 114         "CMP R0, #0\n"
 115         "BEQ loc_FF87CEB8\n"
 116         "MOV R0, #0xC\n"
 117         "BL sub_FF8821A4\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_FF87D0E0\n"
 124 "loc_FF87CEB8:\n"
 125         "MOV R0, R5\n"
 126         "BL sub_FF961C84\n"
 127         "MOV R0, R5\n"
 128         "BL sub_FF87C620\n"
 129         "MOV R0, R5\n"
 130                                         "BL sub_FF962520_my\n"
 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_FF87D0E0\n"
 136 "loc_FF87CEDC:\n"
 137         "LDR R0, [R4,#0x24]\n"
 138         "CMP R0, #0\n"
 139         "BNE loc_FF87CF08\n"
 140         "MOV R0, #0xC\n"
 141         "BL sub_FF8821A4\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_FF87CFA0\n"
 148 "loc_FF87CF08:\n"
 149         "LDR    R0, [SP]\n"
 150 //      "BL     sub_FF87C648\n"
 151                                         "BL     sub_FF87C698_my\n"
 152 "loc_FF87CF10:\n"
 153                 "STR    R7, [R4,#0x24]\n"
 154                 "B      loc_FF87D0E0\n"
 155 "loc_FF87CF18:\n"
 156                 "MOV    R0, #1\n"
 157                 "BL     sub_FF87D9A8\n"
 158                 "LDR    R0, [R4,#0xC]\n"
 159                 "CMP    R0, #0\n"
 160                 "BLNE   sub_FF87E494\n"
 161                 "B      loc_FF87D0E0\n"
 162 "loc_FF87CF30:\n"
 163                 "BL     sub_FF87D3A8\n"
 164                 "B      loc_FF87CF10\n"
 165 "loc_FF87CF38:\n"
 166                 "BL     sub_FF87D6D8\n"
 167                 "B      loc_FF87CF10\n"
 168 "loc_FF87CF40:\n"
 169                 "BL     sub_FF87D6E0\n"
 170                 "B      loc_FF87D0E0\n"
 171 "loc_FF87CF48:\n"
 172                 "BL     sub_FF87D898\n"
 173                 "B      loc_FF87CFAC\n"
 174 "loc_FF87CF50:\n"
 175                 "LDR    R5, [R0,#0xC]\n"
 176                 "BL     sub_FF87D6E8\n"
 177                 "MOV    R0, R5\n"
 178                 "BL     sub_FF960CC8\n"
 179                 "TST    R0, #1\n"
 180                 "MOV    R8, R0\n"
 181                 "BNE    loc_FF87CF90\n"
 182                 "BL     sub_FF88F4BC\n"
 183                 "STR    R0, [R5,#0x18]\n"
 184                 "MOV    R0, R5\n"
 185                 "BL     sub_FF962438\n"
 186                 "MOV    R0, R5\n"
 187                 "BL     sub_FF962830\n"
 188                 "MOV    R8, R0\n"
 189                 "LDR    R0, [R5,#0x18]\n"
 190                 "BL     sub_FF88F6C0\n"
 191 "loc_FF87CF90:\n"
 192                 "BL     sub_FF87D6D8\n"
 193                 "MOV    R2, R5\n"
 194                 "MOV    R1, #9\n"
 195                 "MOV    R0, R8\n"
 196 "loc_FF87CFA0:\n"
 197                 "BL     sub_FF87AAC4\n"
 198                 "B      loc_FF87D0E0\n"
 199 "loc_FF87CFA8:\n"
 200                 "BL     sub_FF87D928\n"
 201 "loc_FF87CFAC:\n"
 202                 "BL     sub_FF87A530\n"
 203                 "B      loc_FF87D0E0\n"
 204 "loc_FF87CFB4:\n"
 205                 "LDR    R0, [R4,#0x54]\n"
 206                 "BL     sub_FF87DFAC\n"
 207                 "B      loc_FF87D0E0\n"
 208 "loc_FF87CFC0:\n"
 209                 "BL     sub_FF87E254\n"
 210                 "B      loc_FF87D0E0\n"
 211 "loc_FF87CFC8:\n"
 212                 "BL     sub_FF87E2E4\n"
 213                 "B      loc_FF87D0E0\n"
 214 "loc_FF87CFD0:\n"
 215                 "BL     sub_FF87D6D8\n"
 216                 "B      loc_FF87D0E0\n"
 217 "loc_FF87CFD8:\n"
 218                 "BL     sub_FF960EF4\n"
 219                 "B      loc_FF87D0E0\n"
 220 "loc_FF87CFE0:\n"
 221                 "BL     sub_FF96114C\n"
 222                 "B      loc_FF87D0E0\n"
 223 "loc_FF87CFE8:\n"
 224                 "BL     sub_FF9611EC\n"
 225                 "B      loc_FF87D0E0\n"
 226 "loc_FF87CFF0:\n"
 227                 "BL     sub_FF961320\n"
 228                 "B      loc_FF87D0E0\n"
 229 "loc_FF87CFF8:\n"
 230                 "BL     sub_FF9613F0\n"
 231                 "B      loc_FF87D0E0\n"
 232 "loc_FF87D000:\n"
 233                 "MOV    R0, #0\n"
 234                 "B      loc_FF87D024\n"
 235 "loc_FF87D008:\n"
 236                 "BL     sub_FF9619C8\n"
 237                 "B      loc_FF87D0E0\n"
 238 "loc_FF87D010:\n"
 239                 "BL     sub_FF961A58\n"
 240                 "B      loc_FF87D0E0\n"
 241 "loc_FF87D018:\n"
 242                 "BL     sub_FF961B18\n"
 243                 "B      loc_FF87D0E0\n"
 244 "loc_FF87D020:\n"
 245                 "MOV    R0, #1\n"
 246 "loc_FF87D024:\n"
 247                 "BL     sub_FF961888\n"
 248                 "B      loc_FF87D0E0\n"
 249 "loc_FF87D02C:\n"
 250                 "BL     sub_FF87DBC4\n"
 251                 "B      loc_FF87D0E0\n"
 252 "loc_FF87D034:\n"
 253                 "BL     sub_FF87DC64\n"
 254                 "BL     sub_FF87D208\n"
 255                 "B      loc_FF87D0E0\n"
 256 "loc_FF87D040:\n"
 257                 "BL     sub_FF9616B0\n"
 258                 "B      loc_FF87D0E0\n"
 259 "loc_FF87D048:\n"
 260                 "MOV    R2, #2\n"
 261                 "ADD    R1, R4, #0x6A\n"
 262                 "MOV    R0, #0x6F\n"
 263                 "BL     sub_FF88F32C\n"
 264                 "TST    R0, #1\n"
 265                 "LDRNE  R1, =0x6AB\n"
 266                 "LDRNE  R0, =0xFF87C568\n"
 267                 "BLNE   sub_FF81E88C\n"
 268                 "LDRH   R0, [R4,#0x6A]\n"
 269                 "CMP    R0, #1\n"
 270                 "BLEQ   sub_FF9616A4\n"
 271                 "B      loc_FF87D0E0\n"
 272 "loc_FF87D078:\n"
 273                 "BL     sub_FF9617DC\n"
 274                 "B      loc_FF87D0E0\n"
 275 "loc_FF87D080:\n"
 276                 "BL     sub_FF87C4F8\n"
 277                 "B      loc_FF87D0E0\n"
 278 "loc_FF87D088:\n"
 279                 "BL     sub_FF835E64\n"
 280                 "B      loc_FF87D0E0\n"
 281 "loc_FF87D090:\n"
 282                 "BL     sub_FF8805D4\n"
 283                 "B      loc_FF87D0E0\n"
 284 "loc_FF87D098:\n"
 285                 "BL     sub_FF88063C\n"
 286                 "B      loc_FF87D0E0\n"
 287 "loc_FF87D0A0:\n"
 288                 "BL     sub_FF880698\n"
 289                 "BL     sub_FF880658\n"
 290                 "B      loc_FF87D0E0\n"
 291 "loc_FF87D0AC:\n"
 292                 "MOV    R0, #1\n"
 293                 "BL     sub_FF963078\n"
 294                 "MOV    R0, #1\n"
 295                 "BL     sub_FF963188\n"
 296                 "LDRH   R0, [R4,#0xA8]\n"
 297                 "CMP    R0, #4\n"
 298                 "BNE    loc_FF87D0E0\n"
 299                 "BL     sub_FF88063C\n"
 300                 "BL     sub_FF880A84\n"
 301                 "B      loc_FF87D0E0\n"
 302 "loc_FF87D0D4:\n"
 303                 "LDR    R1, =0x709\n"
 304                 "LDR    R0, =0xFF87C568\n"
 305                 "BL     sub_FF81E88C\n"
 306 "loc_FF87D0E0:\n"
 307                 "LDR    R0, [SP]\n"
 308                 "LDR    R1, [R0,#4]\n"
 309                 "LDR    R0, [R6]\n"
 310                 "BL     sub_FF88717C\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, =0xFF87C568\n"
 316                 "BLEQ   sub_FF81E88C\n"
 317                 "STR    R7, [R5,#8]\n"
 318                 "B      loc_FF87CDA4\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_FF962520_my(){
 329 
 330  asm volatile(
 331                 "STMFD  SP!, {R0-R8,LR}\n"
 332                 "MOV    R4, R0\n"
 333                 //"BL   sub_FF9631B8\n" - WTF?
 334                 "BL     sub_FF963374\n"
 335                 "LDR    R1, =0xFFFFFFFF\n"  // "MVN     R1, #0\n"
 336                 "BL     sub_FF8871B0\n"
 337                 "LDR    R5, =0x7910\n"
 338                 "LDR    R0, [R5,#0xC]\n"
 339                 "CMP    R0, #0\n"
 340                 "BNE    loc_FF962570\n"
 341                 "MOV    R1, #1\n"
 342                 "MOV    R0, #0\n"
 343                 "BL     sub_FF838B60\n"
 344                 "STR    R0, [R5,#0xC]\n"
 345                 "MOV    R3, #0\n"
 346                 "STR    R3, [SP]\n"  // STR     R3, [SP,#0x28+var_28]
 347                 "LDR    R3, =0xFF961EAC\n"
 348                 "LDR    R0, =0xFF962798\n" // prev LDR
 349                 "MOV    R2, #0x400\n"
 350                 "MOV    R1, #0x17\n"
 351                 "BL     sub_FF838B2C\n"
 352 "loc_FF962570:\n" //                            ; CODE XREF: _sub_FF962390__SsCaptureSeq.c__0+20j\n" get here
 353                 "MOV    R2, #4\n"
 354                 "ADD    R1, SP, #8\n"
 355                 "MOV    R0, #0x8A\n"
 356                 "BL     sub_FF88F32C\n"
 357                 "TST    R0, #1\n"
 358                 "LDRNE  R1, =0x3C5\n"
 359                 "LDRNE  R0, =0xFF962144\n"
 360                 "BLNE   sub_FF81E88C\n"
 361                 "LDR    R8, =0x38A20\n"
 362                 "LDR    R7, =0x3894C\n"
 363                 "LDRSH  R1, [R8,#0xE]\n"
 364                 "LDR    R0, [R7,#0x9C]\n"
 365                 "BL     sub_FF925290\n"
 366                 "BL     sub_FF8626D0\n"
 367                 "LDR    R3, =0x7918\n"
 368                 "STRH   R0, [R4,#0xA4]\n"
 369                 "SUB    R2, R3, #4\n"
 370                 "STRD   R2, [SP]\n" // this ok? STRD    R2, [SP,#0x28+var_28]
 371                 "MOV    R1, R0\n"
 372                 "LDRH   R0, [R7,#0x64]\n"
 373                 "LDRSH  R2, [R8,#0xC]\n"
 374                 "SUB    R3, R3, #8\n"
 375                 "BL     sub_FF9649D8\n"
 376                  "BL      wait_until_remote_button_is_released\n"
 377                  "BL      capt_seq_hook_set_nr\n"                     // +
 378                  "B       sub_FF9625CC\n"                             // continue function in firmware
 379 //              "LDR    R0, [R4,#0x1C]\n"
 380 //              "CMP    R0, #0\n" // get here!
 381 //              "MOVNE  R0, #1\n"
 382 //              "STRNE  R0, [R5]\n"
 383 //              "LDR    R0, [R5,#4]\n"
 384 //              "BL     sub_FF92551C\n"
 385 //              "LDR    R0, [R5,#8]\n"
 386 //              "BL     sub_FF8C842C\n"
 387 //              "MOV    R0, #1\n"
 388 //              "BL     sub_FF8C8438\n" // BX LR
 389 //              "LDR    R0, =0xFF961F1C\n"
 390 //              "MOV    R1, R4\n"
 391 //              "BL     sub_FF8C8408\n"
 392 //              "LDR    R0, [R5]\n"
 393 //              "CMP    R0, #5\n" // get here!
 394 //              "ADDLS  PC, PC, R0,LSL#2\n" // badly wrong setting pc here
 395 //                "BL     wait_until_remote_button_is_released\n"
 396 //                "BL     capt_seq_hook_set_nr\n"                     // +
 397 //              "B      sub_FF9626D8\n"                             // continue function in firmware , loc -> sub
 398  );
 399 
 400 }
 401 
 402 
 403 
 404 
 405 
 406 void __attribute__((naked,noinline)) sub_FF87C698_my(){
 407  asm volatile(
 408                 "STMFD  SP!, {R3-R9,LR}\n"
 409                 "LDR    R4, [R0,#0xC]\n"
 410                 "LDR    R5, =0x3894C\n"
 411                 "LDR    R0, [R4,#8]\n"
 412                 "LDR    R6, =0x820A\n"
 413                 "ORR    R0, R0, #1\n"
 414                 "STR    R0, [R4,#8]\n"
 415                 "LDRH   R0, [R5]\n"
 416                 "LDR    R8, =0x2D50\n"
 417                 "MOV    R7, #0\n"
 418                 "CMP    R0, R6\n"
 419                 "BEQ    loc_FF87C73C\n"
 420                 "LDRH   R0, [R5,#0xA6]\n"
 421                 "CMP    R0, #3\n"
 422                 "BEQ    loc_FF87C79C\n" //
 423                 "LDR    R0, [R4,#0xC]\n"
 424                 "CMP    R0, #1\n"
 425                 "BLS    loc_FF87C748\n"
 426                 "LDRH   R0, [R5,#0xA4]\n"
 427                 "CMP    R0, #0\n"
 428                 "BNE    loc_FF87C79C\n"
 429                 "LDRH   R0, [R5,#0xA0]\n"
 430                 "CMP    R0, #2\n"
 431                 "BNE    loc_FF87C754\n"
 432                 "BL     sub_FF87DD14\n"
 433                 "LDRH   R0, [R5]\n"
 434                 "CMP    R0, R6\n"
 435                 "BEQ    loc_FF87C73C\n"
 436                 "LDRH   R0, [R5,#0xA6]\n"
 437                 "CMP    R0, #3\n"
 438                 "BEQ    loc_FF87C79C\n"
 439                 "LDR    R0, [R4,#0xC]\n"
 440                 "CMP    R0, #1\n"
 441                 "BLS    loc_FF87C748\n"
 442                 "LDRH   R0, [R5,#0xA4]\n"
 443                 "CMP    R0, #0\n"
 444                 "BNE    loc_FF87C79C\n"
 445                 "LDRH   R0, [R5,#0xA0]\n"
 446                 "CMP    R0, #2\n"
 447                 "BEQ    loc_FF87C780\n"
 448                 "B      loc_FF87C754\n"
 449 "loc_FF87C73C:\n" //                            ; CODE XREF: sub_FF87C648+2Cj\n"
 450                 "LDRH   R0, [R5,#0xA6]\n"
 451                 "CMP    R0, #3\n"
 452                 "BEQ    loc_FF87C79C\n"
 453 "loc_FF87C748:\n" //                            ; CODE XREF: sub_FF87C648+44j\n"
 454                 "LDRH   R0, [R5,#0xA4]\n"
 455                 "CMP    R0, #0\n"
 456                 "BNE    loc_FF87C79C\n"
 457 "loc_FF87C754:\n" //                            ; CODE XREF: sub_FF87C648+5Cj\n"
 458                 "LDRH   R0, [R5,#0xA0]\n"
 459                 "CMP    R0, #1\n"
 460                 "BNE    loc_FF87C79C\n"
 461                 "LDRH   R0, [R5]\n"
 462                 "CMP    R0, R6\n"
 463                 "LDRNE  R0, [R4,#0xC]\n"
 464                 "CMPNE  R0, #1\n"
 465                 "BLS    loc_FF87C79C\n"
 466                 "LDR    R0, [R4,#0x10]\n"
 467                 "CMP    R0, #1\n"
 468                 "BNE    loc_FF87C79C\n"
 469 "loc_FF87C780:\n" //                            ; CODE XREF: sub_FF87C648+9Cj\n"
 470                 "LDR    R3, =0x269\n"
 471                 "LDR    R2, =0xEA60\n"
 472                 "STR    R3, [SP]\n"
 473                 "LDR    R0, [R8]\n"
 474                 "LDR    R3, =0xFF87C568\n" // copied from above ; "SsShootTask.c"\n" // adr
 475                 "MOV    R1, #0x40000000\n"
 476                 "BL     sub_FF882524\n"
 477 "loc_FF87C79C:\n" //                            ; CODE XREF: sub_FF87C648+38j\n"
 478                 "BL     sub_FF87C4F8\n"
 479                 "LDR    R0, [R5,#0x24]\n"
 480                 "CMP    R0, #0\n"
 481                 "MOVEQ  R0, #2\n"
 482                 "BLEQ   sub_FF8761A4\n"
 483                 "BL     sub_FF87D6E8\n"
 484                 "LDR    R0, [R5,#0x24]\n"
 485                 "CMP    R0, #0\n"
 486                 "BNE    loc_FF87C868\n"
 487                 "MOV    R0, #0\n"
 488                 "BL     sub_FF963078\n"
 489                 "MOV    R0, #0\n"
 490                 "BL     sub_FF963188\n"
 491                 "MOV    R0, R4\n"
 492                 "BL     sub_FF961C84\n"
 493                 "MOV    R0, R4\n"
 494                 "BL     sub_FF87DB40\n"
 495                 "MOV    R0, R4\n"
 496                 "BL     sub_FF96087C\n"
 497                 "CMP    R0, #0\n"
 498                 "BEQ    loc_FF87C81C\n" //changed
 499                 "BL     sub_FF9630B8\n"
 500                 "BL     sub_FF9631CC\n"
 501                 "BL     sub_FF96321C\n"
 502                 "MOV    R0, R4\n"
 503                 "BL     sub_FF9609F4\n"
 504                 "TST    R0, #1\n"
 505                 "MOVNE  R2, R4\n"
 506                 "LDMNEFD        SP!, {R3-R9,LR}\n"
 507                 "MOVNE  R1, #1\n"
 508                 "BNE    sub_FF87AAC4\n"
 509                 "B      loc_FF87C844\n"
 510 "loc_FF87C81C:\n" //                            ; CODE XREF: sub_FF87C648+154j\n"
 511                 "LDR    R0, [R5,#0xC]\n"
 512                 "CMP    R0, #0\n"
 513                 "BEQ    loc_FF87C830\n"
 514                 "BL     sub_FF87E418\n"
 515                 "BL     sub_FF877A74\n"
 516 "loc_FF87C830:\n" //                            ; CODE XREF: sub_FF87C648+18Cj\n"
 517                 "MOV    R0, R4\n"
 518                 "BL     sub_FF960960\n"
 519                 "BL     sub_FF9630B8\n" //changed
 520                 "BL     sub_FF9631CC\n" // changed
 521                 "BL     sub_FF96321C\n" // changed
 522 "loc_FF87C844:\n" //                            ; CODE XREF: sub_FF87C648+180j\n"
 523                 "MOV    R0, R4\n"
 524                 "BL     sub_FF87C620\n"
 525                 "MOV    R0, R4\n"
 526                 "BL     sub_FF962438\n" //changed
 527                 "BL     sub_FF962EB0\n" // changed
 528                 "MOV    R0, R4\n"
 529                                         "BL     sub_FF962520_my\n" //changed
 530                 "MOV    R7, R0\n"
 531                                         "BL      capt_seq_hook_raw_here\n"      // +
 532                 "B      loc_FF87C874\n"
 533 "loc_FF87C868:\n" //                            ; CODE XREF: sub_FF87C648+124j\n"
 534                 "LDR    R0, [R8,#0x10]\n"
 535                 "CMP    R0, #0\n"
 536                 "MOVNE  R7, #0x1D\n"
 537 "loc_FF87C874:\n" //                            ; CODE XREF: sub_FF87C648+1CCj\n"
 538                 "BL     sub_FF88063C\n"
 539                 "BL     sub_FF880684\n"
 540                 "BL     sub_FF8806C4\n"
 541                 "MOV    R2, R4\n"
 542                 "MOV    R1, #1\n"
 543                 "MOV    R0, R7\n"
 544                 "BL     sub_FF87AAC4\n"
 545                 "BL     sub_FF9627D4\n" //changed
 546                 "CMP    R0, #0\n"
 547                 "LDRNE  R0, [R4,#8]\n"
 548                 "ORRNE  R0, R0, #0x2000\n"
 549                 "STRNE  R0, [R4,#8]\n"
 550                 "LDR    R0, [R4,#0x1C]\n"
 551                 "CMP    R0, #0\n"
 552                 "BLNE   sub_FF877A8C\n"
 553                 "LDRH   R0, [R5,#0xA6]\n"
 554                 "CMP    R0, #3\n"
 555                 "BEQ    LOCRET_FF87C8D8\n"
 556                 "LDRH   R0, [R5,#0xA4]\n"
 557                 "CMP    R0, #0\n"
 558                 "LDREQH R0, [R5,#0xA0]\n"
 559                 "CMPEQ  R0, #2\n"
 560                 "MOVEQ  R0, R4\n"
 561                 "LDMEQFD        SP!, {R3-R9,LR}\n"
 562                 "BEQ    sub_FF87DD68\n"
 563 "LOCRET_FF87C8D8:\n" //                         ; CODE XREF: sub_FF87C648+220j\n"
 564                 "LDMFD  SP!, {R3-R9,PC}\n"
 565 
 566  );
 567 }
 568 
 569 
 570 
 571 
 572 /*************************************************************/
 573 void __attribute__((naked,noinline)) exp_drv_task(){
 574 
 575 //blinko();
 576 
 577  asm volatile(
 578                 "STMFD  SP!, {R4-R8,LR}\n"
 579                 "SUB    SP, SP, #0x20\n"
 580                 "LDR    R8, =0xBB8\n"
 581                 "LDR    R7, =0x4658\n"
 582                 "LDR    R5, =0x3D90C\n"
 583                 "MOV    R0, #0\n"
 584                 "ADD    R6, SP, #0x10\n"
 585                 "STR    R0, [SP,#0xC]\n"
 586 "loc_FF8C14A0:\n" //                            ; CODE XREF: task_ExpDrvTask+5B8j\n"
 587                 "LDR    R0, [R7,#0x20]\n"
 588                 "MOV    R2, #0\n"
 589                 "ADD    R1, SP, #0x1C\n"
 590                 "BL     sub_FF838318\n"
 591                 "LDR    R0, [SP,#0xC]\n"
 592                 "CMP    R0, #1\n"
 593                 "BNE    loc_FF8C14EC\n"
 594                 "LDR    R0, [SP,#0x1C]\n"
 595                 "LDR    R0, [R0]\n"
 596                 "CMP    R0, #0x13\n"
 597                 "CMPNE  R0, #0x14\n"
 598                 "CMPNE  R0, #0x15\n"
 599                 "CMPNE  R0, #0x16\n"
 600                 "BEQ    loc_FF8C1608\n"
 601                 "CMP    R0, #0x28\n"
 602                 "BEQ    loc_FF8C15E0\n"
 603                 "ADD    R1, SP, #0xC\n"
 604                 "MOV    R0, #0\n"
 605                 "BL     sub_FF8C1430\n"
 606 "loc_FF8C14EC:\n" //                            ; CODE XREF: task_ExpDrvTask+38j\n"
 607                 "LDR    R0, [SP,#0x1C]\n"
 608                 "LDR    R1, [R0]\n"
 609                 "CMP    R1, #0x2D\n"
 610                 "BNE    loc_FF8C151C\n"
 611                 "LDR    R0, [SP,#0x1C]\n"
 612                 "BL     sub_FF8C26E8\n"
 613                 "LDR    R0, [R7,#0x1C]\n"
 614                 "MOV    R1, #1\n"
 615                 "BL     sub_FF88717C\n"
 616                 "BL     sub_FF81E844\n"
 617                 "ADD    SP, SP, #0x20\n"
 618                 "LDMFD  SP!, {R4-R8,PC}\n"
 619 "loc_FF8C151C:\n" //                            ; CODE XREF: task_ExpDrvTask+78j\n"
 620                 "CMP    R1, #0x2C\n"
 621                 "BNE    loc_FF8C1538\n"
 622                 "LDR    R2, [R0,#0x8C]!\n"
 623                 "LDR    R1, [R0,#4]\n"
 624                 "MOV    R0, R1\n"
 625                 "BLX    R2\n"
 626                 "B      loc_FF8C1A30\n"
 627 "loc_FF8C1538:\n" //                            ; CODE XREF: task_ExpDrvTask+A0j\n"
 628                 "CMP    R1, #0x26\n"
 629                 "BNE    loc_FF8C1588\n"
 630                 "LDR    R0, [R7,#0x1C]\n"
 631                 "MOV    R1, #0x80\n"
 632                 "BL     sub_FF8871B0\n"
 633                 "LDR    R0, =0xFF8BDBBC\n"
 634                 "MOV    R1, #0x80\n"
 635                 "BL     sub_FF9518AC\n"
 636                 "LDR    R0, [R7,#0x1C]\n"
 637                 "MOV    R2, R8\n"
 638                 "MOV    R1, #0x80\n"
 639                 "BL     sub_FF8870BC\n"
 640                 "TST    R0, #1\n"
 641                 "LDRNE  R1, =0xE54\n"
 642                 "BNE    loc_FF8C15CC\n"
 643 "loc_FF8C1574:\n" //                            ; CODE XREF: task_ExpDrvTask+144j\n"
 644                 "LDR    R1, [SP,#0x1C]\n"
 645                 "LDR    R0, [R1,#0x90]\n"
 646                 "LDR    R1, [R1,#0x8C]\n"
 647                 "BLX    R1\n"
 648                 "B      loc_FF8C1A30\n"
 649 "loc_FF8C1588:\n" //                            ; CODE XREF: task_ExpDrvTask+BCj\n"
 650                 "CMP    R1, #0x27\n"
 651                 "BNE    loc_FF8C15D8\n"
 652                 "ADD    R1, SP, #0xC\n"
 653                 "BL     sub_FF8C1430\n"
 654                 "LDR    R0, [R7,#0x1C]\n"
 655                 "MOV    R1, #0x100\n"
 656                 "BL     sub_FF8871B0\n"
 657                 "LDR    R0, =0xFF8BDBCC\n"
 658                 "MOV    R1, #0x100\n"
 659                 "BL     sub_FF952238\n"
 660                 "LDR    R0, [R7,#0x1C]\n"
 661                 "MOV    R2, R8\n"
 662                 "MOV    R1, #0x100\n"
 663                 "BL     sub_FF8870BC\n"
 664                 "TST    R0, #1\n"
 665                 "BEQ    loc_FF8C1574\n"
 666                 "LDR    R1, =0xE5E\n"
 667 "loc_FF8C15CC:\n" //                            ; CODE XREF: task_ExpDrvTask+F0j\n"
 668                 "LDR    R0, =0xFF8BE1E0\n"
 669                 "BL     sub_FF81E88C\n"
 670                 "B      loc_FF8C1574\n"
 671 "loc_FF8C15D8:\n" //                            ; CODE XREF: task_ExpDrvTask+10Cj\n"
 672                 "CMP    R1, #0x28\n"
 673                 "BNE    loc_FF8C15F0\n"
 674 "loc_FF8C15E0:\n" //                            ; CODE XREF: task_ExpDrvTask+5Cj\n"
 675                 "LDR    R0, [SP,#0x1C]\n"
 676                 "ADD    R1, SP, #0xC\n"
 677                 "BL     sub_FF8C1430\n"
 678                 "B      loc_FF8C1574\n"
 679 "loc_FF8C15F0:\n" //                            ; CODE XREF: task_ExpDrvTask+15Cj\n"
 680                 "CMP    R1, #0x2B\n"
 681                 "BNE    loc_FF8C1608\n"
 682                 "BL     sub_FF8B180C\n"
 683                 "BL     sub_FF8B2430\n"
 684                 "BL     sub_FF8B1F84\n"
 685                 "B      loc_FF8C1574\n"
 686 "loc_FF8C1608:\n" //                            ; CODE XREF: task_ExpDrvTask+54j\n"
 687                 "LDR    R0, [SP,#0x1C]\n"
 688                 "MOV    R4, #1\n"
 689                 "LDR    R1, [R0]\n"
 690                 "CMP    R1, #0x11\n"
 691                 "CMPNE  R1, #0x12\n"
 692                 "BNE    loc_FF8C1678\n"
 693                 "LDR    R1, [R0,#0x7C]\n"
 694                 "ADD    R1, R1, R1,LSL#1\n"
 695                 "ADD    R1, R0, R1,LSL#2\n"
 696                 "SUB    R1, R1, #8\n"
 697                 "LDMIA  R1, {R2-R4}\n"
 698                 "STMIA  R6, {R2-R4}\n"
 699                 "BL     sub_FF8BFD98\n" // loc -> sub
 700                 "LDR    R0, [SP,#0x1C]\n"
 701                 "LDR    R1, [R0,#0x7C]\n"
 702                 "LDR    R3, [R0,#0x8C]\n"
 703                 "LDR    R2, [R0,#0x90]\n"
 704                 "ADD    R0, R0, #4\n"
 705                 "BLX    R3\n"
 706                 "LDR    R0, [SP,#0x1C]\n"
 707                 "BL     sub_FF8C2AAC\n"
 708                 "LDR    R0, [SP,#0x1C]\n"
 709                 "LDR    R1, [R0,#0x7C]\n"
 710                 "LDR    R3, [R0,#0x94]\n"
 711                 "LDR    R2, [R0,#0x98]\n"
 712                 "ADD    R0, R0, #4\n"
 713                 "BLX    R3\n"
 714                 "B      loc_FF8C1970\n"
 715 "loc_FF8C1678:\n" //                            ; CODE XREF: task_ExpDrvTask+19Cj\n"
 716                 "CMP    R1, #0x13\n"
 717                 "CMPNE  R1, #0x14\n"
 718                 "CMPNE  R1, #0x15\n"
 719                 "CMPNE  R1, #0x16\n"
 720                 "BNE    loc_FF8C1730\n"
 721                 "ADD    R3, SP, #0xC\n"
 722                 "MOV    R2, SP\n"
 723                 "ADD    R1, SP, #0x10\n"
 724                 "BL     sub_FF8C0080\n"
 725                 "CMP    R0, #1\n"
 726                 "MOV    R4, R0\n"
 727                 "CMPNE  R4, #5\n"
 728                 "BNE    loc_FF8C16CC\n"
 729                 "LDR    R0, [SP,#0x1C]\n"
 730                 "MOV    R2, R4\n"
 731                 "LDR    R1, [R0,#0x7C]!\n"
 732                 "LDR    R12, [R0,#0x10]!\n"
 733                 "LDR    R3, [R0,#4]\n"
 734                 "MOV    R0, SP\n"
 735                 "BLX    R12\n"
 736                 "B      loc_FF8C1704\n"
 737 "loc_FF8C16CC:\n" //                            ; CODE XREF: task_ExpDrvTask+228j\n"
 738                 "LDR    R0, [SP,#0x1C]\n"
 739                 "CMP    R4, #2\n"
 740                 "LDR    R3, [R0,#0x90]\n"
 741                 "CMPNE  R4, #6\n"
 742                 "BNE    loc_FF8C1718\n"
 743                 "LDR    R12, [R0,#0x8C]\n"
 744                 "MOV    R0, SP\n"
 745                 "MOV    R2, R4\n"
 746                 "MOV    R1, #1\n"
 747                 "BLX    R12\n"
 748                 "LDR    R0, [SP,#0x1C]\n"
 749                 "MOV    R2, SP\n"
 750                 "ADD    R1, SP, #0x10\n"
 751                 "BL     sub_FF8C1138\n"
 752 "loc_FF8C1704:\n" //                            ; CODE XREF: task_ExpDrvTask+248j\n"
 753                 "LDR    R0, [SP,#0x1C]\n"
 754                 "LDR    R2, [SP,#0xC]\n"
 755                 "MOV    R1, R4\n"
 756                 "BL     sub_FF8C13D0\n"
 757                 "B      loc_FF8C1970\n"
 758 "loc_FF8C1718:\n" //                            ; CODE XREF: task_ExpDrvTask+25Cj\n"
 759                 "LDR    R1, [R0,#0x7C]\n"
 760                 "LDR    R12, [R0,#0x8C]\n"
 761                 "ADD    R0, R0, #4\n"
 762                 "MOV    R2, R4\n"
 763                 "BLX    R12\n"
 764                 "B      loc_FF8C1970\n"
 765 "loc_FF8C1730:\n" //                            ; CODE XREF: task_ExpDrvTask+208j\n"
 766                 "CMP    R1, #0x22\n"
 767                 "CMPNE  R1, #0x23\n"
 768                 "BNE    loc_FF8C177C\n"
 769                 "LDR    R1, [R0,#0x7C]\n"
 770                 "ADD    R1, R1, R1,LSL#1\n"
 771                 "ADD    R1, R0, R1,LSL#2\n"
 772                 "SUB    R1, R1, #8\n"
 773                 "LDMIA  R1, {R2-R4}\n"
 774                 "STMIA  R6, {R2-R4}\n"
 775                 "BL     sub_FF8BF2DC\n"
 776                 "LDR    R0, [SP,#0x1C]\n"
 777                 "LDR    R1, [R0,#0x7C]\n"
 778                 "LDR    R3, [R0,#0x8C]\n"
 779                 "LDR    R2, [R0,#0x90]\n"
 780                 "ADD    R0, R0, #4\n"
 781                 "BLX    R3\n"
 782                 "LDR    R0, [SP,#0x1C]\n"
 783                 "BL     sub_FF8BF5DC\n"
 784                 "B      loc_FF8C1970\n"
 785 "loc_FF8C177C:\n" //                            ; CODE XREF: task_ExpDrvTask+2B8j\n"
 786                 "ADD    R1, R0, #4\n"
 787                 "LDMIA  R1, {R2,R3,R12}\n"
 788                 "STMIA  R6, {R2,R3,R12}\n"
 789                 "LDR    R1, [R0]\n"
 790                 "CMP    R1, #0x25\n"
 791                 "ADDLS  PC, PC, R1,LSL#2\n"
 792                 "B      loc_FF8C1950\n" 
 793 
 794 
 795 "loc_FF8C1798:\n"
 796 "B      loc_FF8C1830\n"
 797 "loc_FF8C179C:\n"
 798 "B      loc_FF8C1830\n"
 799 "loc_FF8C17A0:\n"
 800 "B      loc_FF8C1838\n"
 801 "loc_FF8C17A4:\n"
 802 "B      loc_FF8C1840\n"
 803 "loc_FF8C17A8:\n"
 804 "B      loc_FF8C1840\n"
 805 "loc_FF8C17AC:\n"
 806 "B      loc_FF8C1840\n"
 807 "loc_FF8C17B0:\n"
 808 "B      loc_FF8C1830\n"
 809 "loc_FF8C17B4:\n"
 810 "B      loc_FF8C1838\n"
 811 "loc_FF8C17B8:\n"
 812 "B      loc_FF8C1840\n"
 813 "loc_FF8C17BC:\n"
 814 "B      loc_FF8C1840\n"
 815 "loc_FF8C17C0:\n"
 816 "B      loc_FF8C1858\n"
 817 "loc_FF8C17C4:\n"
 818 "B      loc_FF8C1858\n"
 819 "loc_FF8C17C8:\n"
 820 "B      loc_FF8C1944\n"
 821 "loc_FF8C17CC:\n"
 822 "B      loc_FF8C194C\n"
 823 "loc_FF8C17D0:\n"
 824 "B      loc_FF8C194C\n"
 825 "loc_FF8C17D4:\n"
 826 "B      loc_FF8C194C\n"
 827 "loc_FF8C17D8:\n"
 828 "B      loc_FF8C194C\n"
 829 "loc_FF8C17DC:\n"
 830 "B      loc_FF8C1950\n"
 831 "loc_FF8C17E0:\n"
 832 "B      loc_FF8C1950\n"
 833 "loc_FF8C17E4:\n"
 834 "B      loc_FF8C1950\n"
 835 "loc_FF8C17E8:\n"
 836 "B      loc_FF8C1950\n"
 837 "loc_FF8C17EC:\n"
 838 "B      loc_FF8C1950\n"
 839 "loc_FF8C17F0:\n"
 840 "B      loc_FF8C1950\n"
 841 "loc_FF8C17F4:\n"
 842 "B      loc_FF8C1848\n"
 843 "loc_FF8C17F8:\n"
 844 "B      loc_FF8C1850\n"
 845 "loc_FF8C17FC:\n"
 846 "B      loc_FF8C1850\n"
 847 "loc_FF8C1800:\n"
 848 "B      loc_FF8C1864\n"
 849 "loc_FF8C1804:\n"
 850 "B      loc_FF8C1864\n"
 851 "loc_FF8C1808:\n"
 852 "B      loc_FF8C186C\n"
 853 "loc_FF8C180C:\n"
 854 "B      loc_FF8C189C\n"
 855 "loc_FF8C1810:\n"
 856 "B      loc_FF8C18CC\n"
 857 "loc_FF8C1814:\n"
 858 "B      loc_FF8C18FC\n"
 859 "loc_FF8C1818:\n"
 860 "B      loc_FF8C192C\n"
 861 "loc_FF8C181C:\n"
 862 "B      loc_FF8C192C\n"
 863 "loc_FF8C1820:\n"
 864 "B      loc_FF8C1950\n"
 865 "loc_FF8C1824:\n"
 866 "B      loc_FF8C1950\n"
 867 "loc_FF8C1828:\n"
 868 "B      loc_FF8C1934\n"
 869 "loc_FF8C182C:\n"
 870 "B      loc_FF8C193C\n"
 871 
 872 
 873 "loc_FF8C1830:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 874                 "BL     sub_FF8BE0D4\n"
 875                 "B      loc_FF8C1950\n"
 876 "loc_FF8C1838:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 877                 "BL     sub_FF8BE35C\n"
 878                 "B      loc_FF8C1950\n"
 879 "loc_FF8C1840:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 880                 "BL     sub_FF8BE564\n"
 881                 "B      loc_FF8C1950\n"
 882 "loc_FF8C1848:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 883                 "BL     sub_FF8BE7DC\n"
 884                 "B      loc_FF8C1950\n"
 885 "loc_FF8C1850:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 886                 "BL     sub_FF8BE9D4\n"
 887                 "B      loc_FF8C1950\n"
 888 "loc_FF8C1858:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 889 //              "BL     sub_FF8BEC90\n"
 890                 "BL     sub_FF8BEC90_my\n" // ---->
 891                 "MOV    R4, #0\n"
 892                 "B      loc_FF8C1950\n"
 893 "loc_FF8C1864:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 894                 "BL     sub_FF8BEDD0\n"
 895                 "B      loc_FF8C1950\n"
 896 "loc_FF8C186C:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 897                 "LDRH   R1, [R0,#4]\n"
 898                 "STRH   R1, [SP,#0x10]\n"
 899                 "LDRH   R1, [R5,#2]\n"
 900                 "STRH   R1, [SP,#0x12]\n"
 901                 "LDRH   R1, [R5,#4]\n"
 902                 "STRH   R1, [SP,#0x14]\n"
 903                 "LDRH   R1, [R5,#6]\n"
 904                 "STRH   R1, [SP,#0x16]\n"
 905                 "LDRH   R1, [R0,#0xC]\n"
 906                 "STRH   R1, [SP,#0x18]\n"
 907                 "BL     sub_FF8C275C\n"
 908                 "B      loc_FF8C1950\n"
 909 "loc_FF8C189C:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 910                 "LDRH   R1, [R0,#4]\n"
 911                 "STRH   R1, [SP,#0x10]\n"
 912                 "LDRH   R1, [R5,#2]\n"
 913                 "STRH   R1, [SP,#0x12]\n"
 914                 "LDRH   R1, [R5,#4]\n"
 915                 "STRH   R1, [SP,#0x14]\n"
 916                 "LDRH   R1, [R5,#6]\n"
 917                 "STRH   R1, [SP,#0x16]\n"
 918                 "LDRH   R1, [R5,#8]\n"
 919                 "STRH   R1, [SP,#0x18]\n"
 920                 "BL     sub_FF8C28C4\n"
 921                 "B      loc_FF8C1950\n"
 922 "loc_FF8C18CC:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 923                 "LDRH   R1, [R5]\n"
 924                 "STRH   R1, [SP,#0x10]\n"
 925                 "LDRH   R1, [R0,#6]\n"
 926                 "STRH   R1, [SP,#0x12]\n"
 927                 "LDRH   R1, [R5,#4]\n"
 928                 "STRH   R1, [SP,#0x14]\n"
 929                 "LDRH   R1, [R5,#6]\n"
 930                 "STRH   R1, [SP,#0x16]\n"
 931                 "LDRH   R1, [R5,#8]\n"
 932                 "STRH   R1, [SP,#0x18]\n"
 933                 "BL     sub_FF8C2970\n"
 934                 "B      loc_FF8C1950\n"
 935 "loc_FF8C18FC:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 936                 "LDRH   R1, [R5]\n"
 937                 "STRH   R1, [SP,#0x10]\n"
 938                 "LDRH   R1, [R5,#2]\n"
 939                 "STRH   R1, [SP,#0x12]\n"
 940                 "LDRH   R1, [R5,#4]\n"
 941                 "STRH   R1, [SP,#0x14]\n"
 942                 "LDRH   R1, [R5,#6]\n"
 943                 "STRH   R1, [SP,#0x16]\n"
 944                 "LDRH   R1, [R0,#0xC]\n"
 945                 "STRH   R1, [SP,#0x18]\n"
 946                 "BL     sub_FF8C2A10\n"
 947                 "B      loc_FF8C1950\n"
 948 "loc_FF8C192C:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 949                 "BL     sub_FF8BF118\n"
 950                 "B      loc_FF8C1950\n"
 951 "loc_FF8C1934:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 952                 "BL     sub_FF8BF6E0\n"
 953                 "B      loc_FF8C1950\n"
 954 "loc_FF8C193C:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 955                 "BL     sub_FF8BF91C\n"
 956                 "B      loc_FF8C1950\n"
 957 "loc_FF8C1944:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 958                 "BL     sub_FF8BFA98\n"
 959                 "B      loc_FF8C1950\n"
 960 "loc_FF8C194C:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 961                 "BL     sub_FF8BFC34\n"
 962 "loc_FF8C1950:\n" //                            ; CODE XREF: task_ExpDrvTask+310j\n"
 963                 "LDR    R0, [SP,#0x1C]\n"
 964                 "LDR    R1, [R0,#0x7C]\n"
 965                 "LDR    R3, [R0,#0x8C]\n"
 966                 "LDR    R2, [R0,#0x90]\n"
 967                 "ADD    R0, R0, #4\n"
 968                 "BLX    R3\n"
 969                 "CMP    R4, #1\n"
 970                 "BNE    loc_FF8C19B8\n"
 971 "loc_FF8C1970:\n" //                            ; CODE XREF: task_ExpDrvTask+1F4j\n"
 972                 "LDR    R0, [SP,#0x1C]\n"
 973                 "MOV    R2, #0xC\n"
 974                 "LDR    R1, [R0,#0x7C]\n"
 975                 "ADD    R1, R1, R1,LSL#1\n"
 976                 "ADD    R0, R0, R1,LSL#2\n"
 977                 "SUB    R4, R0, #8\n"
 978                 "LDR    R0, =0x3D90C\n" // changed from 3D8EC
 979                 "ADD    R1, SP, #0x10\n"
 980                 "BL     sub_FFB36870\n"
 981                 "LDR    R0, =0x3D918\n" // changed from 3D8F8
 982                 "MOV    R2, #0xC\n"
 983                 "ADD    R1, SP, #0x10\n"
 984                 "BL     sub_FFB36870\n"
 985                 "LDR    R0, =0x3D924\n" // changed from 3D904
 986                 "MOV    R2, #0xC\n"
 987                 "MOV    R1, R4\n"
 988                 "BL     sub_FFB36870\n"
 989                 "B      loc_FF8C1A30\n"
 990 "loc_FF8C19B8:\n" //                            ; CODE XREF: task_ExpDrvTask+4ECj\n"
 991                 "LDR    R0, [SP,#0x1C]\n"
 992                 "LDR    R0, [R0]\n"
 993                 "CMP    R0, #0xB\n"
 994                 "BNE    loc_FF8C1A00\n"
 995                 "MOV    R3, #0\n"
 996                 "STR    R3, [SP]\n"
 997                 "MOV    R3, #1\n"
 998                 "MOV    R2, #1\n"
 999                 "MOV    R1, #1\n"
1000                 "MOV    R0, #0\n"
1001                 "BL     sub_FF8BDEDC\n"
1002                 "MOV    R3, #0\n"
1003                 "STR    R3, [SP]\n"
1004                 "MOV    R3, #1\n"
1005                 "MOV    R2, #1\n"
1006                 "MOV    R1, #1\n"
1007                 "MOV    R0, #0\n"
1008                 "B      loc_FF8C1A2C\n"
1009 "loc_FF8C1A00:\n" //                            ; CODE XREF: task_ExpDrvTask+544j\n"
1010                 "MOV    R3, #1\n"
1011                 "MOV    R2, #1\n"
1012                 "MOV    R1, #1\n"
1013                 "MOV    R0, #1\n"
1014                 "STR    R3, [SP]\n"
1015                 "BL     sub_FF8BDEDC\n"
1016                 "MOV    R3, #1\n"
1017                 "MOV    R2, #1\n"
1018                 "MOV    R1, #1\n"
1019                 "MOV    R0, #1\n"
1020                 "STR    R3, [SP]\n"
1021 "loc_FF8C1A2C:\n" //                            ; CODE XREF: task_ExpDrvTask+57Cj\n"
1022                 "BL     sub_FF8BE01C\n"
1023 "loc_FF8C1A30:\n" //                            ; CODE XREF: task_ExpDrvTask+B4j\n"
1024                 "LDR    R0, [SP,#0x1C]\n"
1025                 "BL     sub_FF8C26E8\n"
1026                 "B      loc_FF8C14A0\n"
1027 //; End of function task_ExpDrvTask\n"
1028 
1029  );
1030 }
1031 
1032 
1033 void __attribute__((naked,noinline)) sub_FF8BEC90_my(){
1034 
1035  asm volatile(
1036                 "STMFD  SP!, {R4-R8,LR}\n"
1037                 "LDR    R7, =0x4658\n"
1038                 "MOV    R4, R0\n"
1039                 "LDR    R0, [R7,#0x1C]\n"
1040                 "MOV    R1, #0x3E\n"
1041                 "BL     sub_FF8871B0\n"
1042                 "LDRSH  R0, [R4,#4]\n"
1043                 "MOV    R2, #0\n"
1044                 "MOV    R1, #0\n"
1045                 "BL     sub_FF8BDC40\n"
1046                 "MOV    R6, R0\n"
1047                 "LDRSH  R0, [R4,#6]\n"
1048                 "BL     sub_FF8BDD50\n"
1049                 "LDRSH  R0, [R4,#8]\n"
1050                 "BL     sub_FF8BDDA8\n"
1051                 "LDRSH  R0, [R4,#0xA]\n"
1052                 "BL     sub_FF8BDE00\n"
1053                 "LDRSH  R0, [R4,#0xC]\n"
1054                 "MOV    R1, #0\n"
1055                 "BL     sub_FF8BDE58\n"
1056                 "MOV    R5, R0\n"
1057                 "LDR    R0, [R4]\n"
1058                 "LDR    R8, =0x3D924\n" // changed from 3D904
1059                 "CMP    R0, #0xB\n"
1060                 "MOVEQ  R6, #0\n"
1061                 "MOVEQ  R5, #0\n"
1062                 "BEQ    loc_FF8BED24\n"
1063                 "CMP    R6, #1\n"
1064                 "BNE    loc_FF8BED24\n"
1065                 "LDRSH  R0, [R4,#4]\n"
1066                 "LDR    R1, =0xFF8BDBAC\n"
1067                 "MOV    R2, #2\n"
1068                 "BL     sub_FF951BF4\n"
1069                 "STRH   R0, [R4,#4]\n"
1070                 "MOV    R0, #0\n"
1071                 "STR    R0, [R7,#0x28]\n"
1072                 "B      loc_FF8BED2C\n" 
1073 
1074 "loc_FF8BED24:\n" //                            ; CODE XREF: _sub_FF8BEC50__ExpDrv.c__2+68j\n"
1075                 "LDRH   R0, [R8]\n"
1076                 "STRH   R0, [R4,#4]\n"
1077 "loc_FF8BED2C:\n" //                            ; CODE XREF: _sub_FF8BEC50__ExpDrv.c__2+90j\n"
1078                 "CMP    R5, #1\n"
1079                 "LDRNEH R0, [R8,#8]\n"
1080                 "BNE    loc_FF8BED48\n"
1081                 "LDRSH  R0, [R4,#0xC]\n"
1082                 "LDR    R1, =0xFF8BDC30\n"
1083                 "MOV    R2, #0x20\n"
1084                 "BL     sub_FF8C2718\n"
1085 "loc_FF8BED48:\n" //                            ; CODE XREF: _sub_FF8BEC50__ExpDrv.c__2+A4j\n"
1086                 "STRH   R0, [R4,#0xC]\n"
1087                 "LDRSH  R0, [R4,#6]\n"
1088                 "BL     sub_FF8B157C_my\n"
1089                 "LDRSH  R0, [R4,#8]\n"
1090                 "MOV    R1, #1\n"
1091                 "BL     sub_FF8B1CCC\n"
1092                 "MOV    R1, #0\n"
1093                 "ADD    R0, R4, #8\n"
1094                 "BL     sub_FF8B1D54\n"
1095                 "LDRSH  R0, [R4,#0xE]\n"
1096                 "BL     sub_FF8B96F8\n"
1097                 "LDR    R4, =0xBB8\n"
1098                 "CMP    R6, #1\n"
1099                 "BNE    loc_FF8BEDA0\n"
1100                 "LDR    R0, [R7,#0x1C]\n"
1101                 "MOV    R2, R4\n"
1102                 "MOV    R1, #2\n"
1103                 "BL     sub_FF8870BC\n"
1104                 "TST    R0, #1\n"
1105                 "SUBNE  R1, R4, #0x620\n"
1106                 "LDRNE  R0, =0xFF8BE230\n"
1107                 "BLNE   sub_FF81E88C\n"
1108 "loc_FF8BEDA0:\n" //                            ; CODE XREF: _sub_FF8BEC50__ExpDrv.c__2+ECj\n"
1109                 "CMP    R5, #1\n"
1110                 "LDMNEFD        SP!, {R4-R8,PC}\n"
1111                 "LDR    R0, [R7,#0x1C]\n"
1112                 "MOV    R2, R4\n"
1113                 "MOV    R1, #0x20\n"
1114                 "BL     sub_FF8870BC\n"
1115                 "TST    R0, #1\n"
1116                 "LDRNE  R1, =0x59D\n"
1117                 "LDRNE  R0, =0xFF8BE230\n"
1118                 "LDMNEFD        SP!, {R4-R8,LR}\n"
1119                 "BNE    sub_FF81E88C\n"
1120                 "LDMFD  SP!, {R4-R8,PC}\n"
1121 //; End of function _sub_FF8BEC50__ExpDrv.c__2\n" 
1122  );
1123 }
1124 
1125 void __attribute__((naked,noinline)) sub_FF8B157C_my(){
1126 
1127  asm volatile(
1128                 "STMFD  SP!, {R4-R6,LR}\n"
1129                 "LDR    R5, =0x4370\n"
1130                 "MOV    R4, R0\n"
1131                 "LDR    R0, [R5,#4]\n"
1132                 "CMP    R0, #1\n"
1133                 "LDRNE  R1, =0x146\n"
1134                 "LDRNE  R0, =0xFF8B1380\n"
1135                 "BLNE   sub_FF81E88C\n"
1136                 "CMN    R4, #0xC00\n"
1137                 "LDREQSH        R4, [R5,#2]\n"
1138                 "CMN    R4, #0xC00\n"
1139                 "MOVEQ  R1, #0x14C\n"
1140                 "LDREQ  R0, =0xFF8B1380\n"
1141                 "STRH   R4, [R5,#2]\n"
1142                 "BLEQ   sub_FF81E88C\n"
1143                 "MOV    R0, R4\n"
1144 //              "BL     sub_FFA080B8\n"
1145                 "BL     apex2us\n"
1146                 "MOV    R4, R0\n"
1147 //              "BL     nullsub_59\n"
1148                 "MOV    R0, R4\n"
1149                 "BL     sub_FF8F3358\n"
1150                 "TST    R0, #1\n"
1151                 "LDRNE  R1, =0x151\n"
1152                 "LDMNEFD        SP!, {R4-R6,LR}\n"
1153                 "LDRNE  R0, =0xFF8B1380\n"
1154                 "BNE    sub_FF81E88C\n"
1155                 "LDMFD  SP!, {R4-R6,PC}\n" 
1156 // End of function sub_FF89D14C
1157  );
1158 }

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