root/platform/s90/sub/100c/capt_seq.c

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

DEFINITIONS

This source file includes following definitions.
  1. capt_seq_task
  2. sub_FF879B58_my
  3. sub_FF9668B0_my
  4. exp_drv_task
  5. sub_FF8BE66C_my
  6. sub_FF8B0770_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 
   5 static long *nrflag = (long*)0x7FD0; /* S90 above "aShuttersoundta" usage @FF966918 @101a */
   6 
   7 #include "../../../generic/capt_seq.c"
   8 
   9 void __attribute__((naked,noinline)) capt_seq_task() {
  10  asm volatile (
  11         "STMFD   SP!, {R3-R9,LR}\n"
  12         "LDR     R6, =0x2C58\n"
  13         "LDR     R4, =0x39F60\n"
  14         "MOV     R9, #1\n"
  15         "MOV     R7, #0\n"
  16 "loc_FF87A21C:\n"
  17         "LDR     R0, [R6,#4]\n"
  18         "MOV     R2, #0\n"
  19         "MOV     R1, SP\n"
  20         "BL      sub_FF8382FC\n"
  21         "TST     R0, #1\n"
  22         "BEQ     loc_FF87A248\n"
  23         "LDR     R1, =0x5B3\n"
  24         "LDR     R0, =0xFF879A2C\n"
  25         "BL      sub_FF81E88C\n"
  26         "BL      sub_FF81E844\n"
  27         "LDMFD   SP!, {R3-R9,PC}\n"
  28 "loc_FF87A248:\n"
  29         "LDR     R0, [SP]\n"
  30         "LDR     R1, [R0]\n"
  31         "CMP     R1, #0x21\n"
  32         "ADDLS   PC, PC, R1,LSL#2\n"
  33         "B       loc_FF87A50C\n"
  34 "loc_FF87A25C:\n"
  35         "B       loc_FF87A2E4\n"
  36 "loc_FF87A260:\n"
  37         "B       loc_FF87A350\n"
  38 "loc_FF87A264:\n"
  39         "B       loc_FF87A38C\n"
  40 "loc_FF87A268:\n"
  41         "B       loc_FF87A3A0\n"
  42 "loc_FF87A26C:\n"
  43         "B       loc_FF87A398\n"
  44 "loc_FF87A270:\n"
  45         "B       loc_FF87A3A8\n"
  46 "loc_FF87A274:\n"
  47         "B       loc_FF87A3B0\n"
  48 "loc_FF87A278:\n"
  49         "B       loc_FF87A3B8\n"
  50 "loc_FF87A27C:\n"
  51         "B       loc_FF87A410\n"
  52 "loc_FF87A280:\n"
  53         "B       loc_FF87A438\n"
  54 "loc_FF87A284:\n"
  55         "B       loc_FF87A41C\n"
  56 "loc_FF87A288:\n"
  57         "B       loc_FF87A428\n"
  58 "loc_FF87A28C:\n"
  59         "B       loc_FF87A430\n"
  60 "loc_FF87A290:\n"
  61         "B       loc_FF87A440\n"
  62 "loc_FF87A294:\n"
  63         "B       loc_FF87A448\n"
  64 "loc_FF87A298:\n"
  65         "B       loc_FF87A450\n"
  66 "loc_FF87A29C:\n"
  67         "B       loc_FF87A458\n"
  68 "loc_FF87A2A0:\n"
  69         "B       loc_FF87A460\n"
  70 "loc_FF87A2A4:\n"
  71         "B       loc_FF87A468\n"
  72 "loc_FF87A2A8:\n"
  73         "B       loc_FF87A470\n"
  74 "loc_FF87A2AC:\n"
  75         "B       loc_FF87A478\n"
  76 "loc_FF87A2B0:\n"
  77         "B       loc_FF87A480\n"
  78 "loc_FF87A2B4:\n"
  79         "B       loc_FF87A488\n"
  80 "loc_FF87A2B8:\n"
  81         "B       loc_FF87A494\n"
  82 "loc_FF87A2BC:\n"
  83         "B       loc_FF87A49C\n"
  84 "loc_FF87A2C0:\n"
  85         "B       loc_FF87A4A8\n"
  86 "loc_FF87A2C4:\n"
  87         "B       loc_FF87A4B0\n"
  88 "loc_FF87A2C8:\n"
  89         "B       loc_FF87A4B8\n"
  90 "loc_FF87A2CC:\n"
  91         "B       loc_FF87A4C0\n"
  92 "loc_FF87A2D0:\n"
  93         "B       loc_FF87A4C8\n"
  94 "loc_FF87A2D4:\n"
  95         "B       loc_FF87A4D0\n"
  96 "loc_FF87A2D8:\n"
  97         "B       loc_FF87A4D8\n"
  98 "loc_FF87A2DC:\n"
  99         "B       loc_FF87A4E4\n"
 100 "loc_FF87A2E0:\n"
 101         "B       loc_FF87A518\n"
 102 "loc_FF87A2E4:\n"
 103         "BL      sub_FF87AB20\n"
 104                 "BL      shooting_expo_param_override\n"  // + 
 105         "BL      sub_FF877B70\n"
 106 
 107 // copied over from SX10 don't know if we need it yet
 108 //  this code added to avoid some incorrect behavior if overrides are used.
 109 //  but it can cause some unexpected side effects. In this case, remove this code!
 110                  "MOV     R0, #0\n"
 111                  "STR     R0, [R4,#0x24]\n"  // fixes overrides  behavior at short shutter press
 112  //  end of my code
 113 
 114         "LDR     R0, [R4,#0x24]\n"
 115         "CMP     R0, #0\n"
 116         "BEQ     loc_FF87A518\n"
 117         "BL      sub_FF879700\n"
 118         "MOV     R5, R0\n"
 119         "LDR     R0, [R4,#0x24]\n"
 120         "CMP     R0, #0\n"
 121         "BEQ     loc_FF87A32C\n"
 122         "MOV     R0, #0xC\n"
 123         "BL      sub_FF87F92C\n"
 124         "TST     R0, #1\n"
 125         "STRNE   R9, [R6,#0x10]\n"
 126         "LDRNE   R0, [R5,#8]\n"
 127         "ORRNE   R0, R0, #0x40000000\n"
 128         "STRNE   R0, [R5,#8]\n"
 129         "BNE     loc_FF87A518\n"
 130 "loc_FF87A32C:\n"
 131         "MOV     R0, R5\n"
 132         "BL      sub_FF966014\n"
 133         "MOV     R0, R5\n"
 134         "BL      sub_FF879AE0\n"
 135         "MOV     R0, R5\n"
 136         //"BL      sub_FF9668B0\n"
 137                 "BL      sub_FF9668B0_my\n" // -------------->
 138                 "BL      capt_seq_hook_raw_here\n"      // +
 139         "TST     R0, #1\n"
 140         "STRNE   R9, [R6,#0x10]\n"
 141         "B       loc_FF87A518\n"
 142 "loc_FF87A350:\n"
 143         "LDR     R0, [R4,#0x24]\n"
 144         "CMP     R0, #0\n"
 145         "BNE     loc_FF87A37C\n"
 146         "MOV     R0, #0xC\n"
 147         "BL      sub_FF87F92C\n"
 148         "TST     R0, #1\n"
 149         "LDRNE   R0, [SP]\n"
 150         "MOVNE   R1, #1\n"
 151         "LDRNE   R2, [R0,#0xC]\n"
 152         "MOVNE   R0, #1\n"
 153         "BNE     loc_FF87A408\n"
 154 "loc_FF87A37C:\n"
 155         "LDR     R0, [SP]\n"
 156         //"BL      sub_FF879B58\n" // - capt_seq_hook ist called in this subroutine
 157                 "BL      sub_FF879B58_my\n" // ------------------->
 158 "loc_FF87A384:\n"
 159         "STR     R7, [R4,#0x24]\n"
 160         "B       loc_FF87A518\n"
 161 "loc_FF87A38C:\n"
 162         "MOV     R0, #1\n"
 163         "BL      sub_FF87AD74\n"
 164         "B       loc_FF87A518\n"
 165 "loc_FF87A398:\n"
 166         "BL      sub_FF87A7D0\n"
 167         "B       loc_FF87A384\n"
 168 "loc_FF87A3A0:\n"
 169         "BL      sub_FF87AB00\n"
 170         "B       loc_FF87A384\n"
 171 "loc_FF87A3A8:\n"
 172         "BL      sub_FF87AB08\n"
 173         "B       loc_FF87A518\n"
 174 "loc_FF87A3B0:\n"
 175         "BL      sub_FF87AC94\n"
 176         "B       loc_FF87A414\n"
 177 "loc_FF87A3B8:\n"
 178         "LDR     R5, [R0,#0xC]\n"
 179         "BL      sub_FF87AB10\n"
 180         "MOV     R0, R5\n"
 181         "BL      sub_FF9654A0\n"
 182         "TST     R0, #1\n"
 183         "MOV     R8, R0\n"
 184         "BNE     loc_FF87A3F8\n"
 185         "BL      sub_FF88CBF4\n"
 186         "STR     R0, [R5,#0x18]\n"
 187         "MOV     R0, R5\n"
 188         "BL      sub_FF9667C8\n"
 189         "MOV     R0, R5\n"
 190         "BL      sub_FF966BC8\n"
 191         "MOV     R8, R0\n"
 192         "LDR     R0, [R5,#0x18]\n"
 193         "BL      sub_FF88CE08\n"
 194 "loc_FF87A3F8:\n"
 195         "BL      sub_FF87AB00\n"
 196         "MOV     R2, R5\n"
 197         "MOV     R1, #9\n"
 198         "MOV     R0, R8\n"
 199 "loc_FF87A408:\n"
 200         "BL      sub_FF8780D8\n"
 201         "B       loc_FF87A518\n"
 202 "loc_FF87A410:\n"
 203         "BL      sub_FF87ACF4\n"
 204 "loc_FF87A414:\n"
 205         "BL      sub_FF877B70\n"
 206         "B       loc_FF87A518\n"
 207 "loc_FF87A41C:\n"
 208         "LDR     R0, [R4,#0x54]\n"
 209         "BL      sub_FF87B5D4\n"
 210         "B       loc_FF87A518\n"
 211 "loc_FF87A428:\n"
 212         "BL      sub_FF87B888\n"
 213         "B       loc_FF87A518\n"
 214 "loc_FF87A430:\n"
 215         "BL      sub_FF87B91C\n"
 216         "B       loc_FF87A518\n"
 217 "loc_FF87A438:\n"
 218         "BL      sub_FF87AB00\n"
 219         "B       loc_FF87A518\n"
 220 "loc_FF87A440:\n"
 221         "BL      sub_FF9656BC\n"
 222         "B       loc_FF87A518\n"
 223 "loc_FF87A448:\n"
 224         "BL      sub_FF9658D0\n"
 225         "B       loc_FF87A518\n"
 226 "loc_FF87A450:\n"
 227         "BL      sub_FF965958\n"
 228         "B       loc_FF87A518\n"
 229 "loc_FF87A458:\n"
 230         "BL      sub_FF965A48\n"
 231         "B       loc_FF87A518\n"
 232 "loc_FF87A460:\n"
 233         "BL      sub_FF965B3C\n"
 234         "B       loc_FF87A518\n"
 235 "loc_FF87A468:\n"
 236         "MOV     R0, #0\n"
 237         "B       loc_FF87A48C\n"
 238 "loc_FF87A470:\n"
 239         "BL      sub_FF965D58\n"
 240         "B       loc_FF87A518\n"
 241 "loc_FF87A478:\n"
 242         "BL      sub_FF965DE8\n"
 243         "B       loc_FF87A518\n"
 244 "loc_FF87A480:\n"
 245         "BL      sub_FF965EA8\n"
 246         "B       loc_FF87A518\n"
 247 "loc_FF87A488:\n"
 248         "MOV     R0, #1\n"
 249 "loc_FF87A48C:\n"
 250         "BL      sub_FF965C08\n"
 251         "B       loc_FF87A518\n"
 252 "loc_FF87A494:\n"
 253         "BL      sub_FF87AF5C\n"
 254         "B       loc_FF87A518\n"
 255 "loc_FF87A49C:\n"
 256         "BL      sub_FF87AFFC\n"
 257         "BL      sub_FF87A640\n"
 258         "B       loc_FF87A518\n"
 259 "loc_FF87A4A8:\n"
 260         "BL      sub_FF87B370\n"
 261         "B       loc_FF87A518\n"
 262 "loc_FF87A4B0:\n"
 263         "BL      sub_FF87B48C\n"
 264         "B       loc_FF87A518\n"
 265 "loc_FF87A4B8:\n"
 266         "BL      sub_FF8799B8\n"
 267         "B       loc_FF87A518\n"
 268 "loc_FF87A4C0:\n"
 269         "BL      sub_FF835FDC\n"
 270         "B       loc_FF87A518\n"
 271 "loc_FF87A4C8:\n"
 272         "BL      sub_FF87DCDC\n"
 273         "B       loc_FF87A518\n"
 274 "loc_FF87A4D0:\n"
 275         "BL      sub_FF87DD44\n"
 276         "B       loc_FF87A518\n"
 277 "loc_FF87A4D8:\n"
 278         "BL      sub_FF87DDA0\n"
 279         "BL      sub_FF87DD60\n"
 280         "B       loc_FF87A518\n"
 281 "loc_FF87A4E4:\n"
 282         "MOV     R0, #1\n"
 283         "BL      sub_FF967430\n"
 284         "MOV     R0, #1\n"
 285         "BL      sub_FF967540\n"
 286         "LDRH    R0, [R4,#0xA0]\n"
 287         "CMP     R0, #4\n"
 288         "BNE     loc_FF87A518\n"
 289         "BL      sub_FF87DD44\n"
 290         "BL      sub_FF87E18C\n"
 291         "B       loc_FF87A518\n"
 292 "loc_FF87A50C:\n"
 293         "LDR     R1, =0x708\n"
 294         "LDR     R0, =0xFF879A2C\n"
 295         "BL      sub_FF81E88C\n"
 296 "loc_FF87A518:\n"
 297         "LDR     R0, [SP]\n"
 298         "LDR     R1, [R0,#4]\n"
 299         "LDR     R0, [R6]\n"
 300         "BL      sub_FF8848E0\n"
 301         "LDR     R5, [SP]\n"
 302         "LDR     R0, [R5,#8]\n"
 303         "CMP     R0, #0\n"
 304         "LDREQ   R1, =0x131\n"
 305         "LDREQ   R0, =0xFF879A2C\n"
 306         "BLEQ    sub_FF81E88C\n"
 307         "STR     R7, [R5,#8]\n"
 308         "B       loc_FF87A21C\n"
 309  );
 310 }
 311 
 312 
 313 void __attribute__((naked,noinline)) sub_FF879B58_my() {
 314  asm volatile (
 315 "STMFD   SP!, {R3-R9,LR}\n"
 316         "LDR     R4, [R0,#0xC]\n"
 317         "LDR     R5, =0x39F60\n"
 318         "LDR     R0, [R4,#8]\n"
 319         "LDR     R6, =0x420A\n"
 320         "ORR     R0, R0, #1\n"
 321         "STR     R0, [R4,#8]\n"
 322         "LDRH    R0, [R5]\n"
 323         "LDR     R8, =0x2C58\n"
 324         "MOV     R7, #0\n"
 325         "CMP     R0, R6\n"
 326         "BEQ     loc_FF879BFC\n"
 327         "LDRH    R0, [R5,#0x9E]\n"
 328         "CMP     R0, #3\n"
 329         "BEQ     loc_FF879C5C\n"
 330         "LDR     R0, [R4,#0xC]\n"
 331         "CMP     R0, #1\n"
 332         "BLS     loc_FF879C08\n"
 333         "LDRH    R0, [R5,#0x9C]\n"
 334         "CMP     R0, #0\n"
 335         "BNE     loc_FF879C5C\n"
 336         "LDRH    R0, [R5,#0x98]\n"
 337         "CMP     R0, #2\n"
 338         "BNE     loc_FF879C14\n"
 339         "BL      sub_FF87B0AC\n"
 340         "LDRH    R0, [R5]\n"
 341         "CMP     R0, R6\n"
 342         "BEQ     loc_FF879BFC\n"
 343         "LDRH    R0, [R5,#0x9E]\n"
 344         "CMP     R0, #3\n"
 345         "BEQ     loc_FF879C5C\n"
 346         "LDR     R0, [R4,#0xC]\n"
 347         "CMP     R0, #1\n"
 348         "BLS     loc_FF879C08\n"
 349         "LDRH    R0, [R5,#0x9C]\n"
 350         "CMP     R0, #0\n"
 351         "BNE     loc_FF879C5C\n"
 352         "LDRH    R0, [R5,#0x98]\n"
 353         "CMP     R0, #2\n"
 354         "BEQ     loc_FF879C40\n"
 355         "B       loc_FF879C14\n"
 356 "loc_FF879BFC:\n"
 357         "LDRH    R0, [R5,#0x9E]\n"
 358         "CMP     R0, #3\n"
 359         "BEQ     loc_FF879C5C\n"
 360 "loc_FF879C08:\n"
 361         "LDRH    R0, [R5,#0x9C]\n"
 362         "CMP     R0, #0\n"
 363         "BNE     loc_FF879C5C\n"
 364 "loc_FF879C14:\n"
 365         "LDRH    R0, [R5,#0x98]\n"
 366         "CMP     R0, #1\n"
 367         "BNE     loc_FF879C5C\n"
 368         "LDRH    R0, [R5]\n"
 369         "CMP     R0, R6\n"
 370         "LDRNE   R0, [R4,#0xC]\n"
 371         "CMPNE   R0, #1\n"
 372         "BLS     loc_FF879C5C\n"
 373         "LDR     R0, [R4,#0x10]\n"
 374         "CMP     R0, #1\n"
 375         "BNE     loc_FF879C5C\n"
 376 "loc_FF879C40:\n"
 377         "MOV     R3, #0x268\n"
 378         "STR     R3, [SP]\n"
 379         "LDR     R0, [R8]\n"
 380         "LDR     R2, =0xEA60\n"
 381         //"ADR     R3, 0xFF879A2C\n"
 382                 "LDR     R3, =0xFF879A2C\n"
 383         "MOV     R1, #0x40000000\n"
 384         "BL      sub_FF87FC8C\n"
 385 "loc_FF879C5C:\n"
 386         "BL      sub_FF8799B8\n"
 387         "LDR     R0, [R5,#0x24]\n"
 388         "CMP     R0, #0\n"
 389         "MOVEQ   R0, #2\n"
 390         "BLEQ    sub_FF8762DC\n"
 391         "BL      sub_FF87AB10\n"
 392         "LDR     R0, [R5,#0x24]\n"
 393         "CMP     R0, #0\n"
 394         "BNE     loc_FF879D14\n"
 395         "MOV     R0, #0\n"
 396         "BL      sub_FF967430\n"
 397         "MOV     R0, #0\n"
 398         "BL      sub_FF967540\n"
 399         "MOV     R0, R4\n"
 400         "BL      sub_FF966014\n"
 401         "MOV     R0, R4\n"
 402         "BL      sub_FF87AED8\n"
 403         "MOV     R0, R4\n"
 404         "BL      sub_FF965090\n"
 405         "CMP     R0, #0\n"
 406         "BEQ     loc_FF879CDC\n"
 407         "BL      sub_FF967470\n"
 408         "BL      sub_FF967584\n"
 409         "BL      sub_FF9675D4\n"
 410         "MOV     R0, R4\n"
 411         "BL      sub_FF9651D4\n"
 412         "TST     R0, #1\n"
 413         "MOVNE   R2, R4\n"
 414         "LDMNEFD SP!, {R3-R9,LR}\n"
 415         "MOVNE   R1, #1\n"
 416         "BNE     sub_FF8780D8\n"
 417         "B       loc_FF879CF0\n"
 418 "loc_FF879CDC:\n"
 419         "MOV     R0, R4\n"
 420         "BL      sub_FF965140\n"
 421         "BL      sub_FF967470\n"
 422         "BL      sub_FF967584\n"
 423         "BL      sub_FF9675D4\n"
 424 "loc_FF879CF0:\n"
 425         "MOV     R0, R4\n"
 426         "BL      sub_FF879AE0\n"
 427         "MOV     R0, R4\n"
 428         "BL      sub_FF9667C8\n"
 429         "BL      sub_FF967248\n"
 430         "MOV     R0, R4\n"
 431         //"BL      sub_FF9668B0\n"
 432                 "BL      sub_FF9668B0_my\n" // ------------->
 433         "MOV     R7, R0\n"
 434                 "BL      capt_seq_hook_raw_here\n"      // +
 435         "B       loc_FF879D20\n"
 436 "loc_FF879D14:\n"
 437         "LDR     R0, [R8,#0x10]\n"
 438         "CMP     R0, #0\n"
 439         "MOVNE   R7, #0x1D\n"
 440 "loc_FF879D20:\n"
 441         "BL      sub_FF87DD44\n"
 442         "BL      sub_FF87DD8C\n"
 443         "BL      sub_FF87DDCC\n"
 444         "MOV     R2, R4\n"
 445         "MOV     R1, #1\n"
 446         "MOV     R0, R7\n"
 447         "BL      sub_FF8780D8\n"
 448         "BL      sub_FF966B6C\n"
 449         "CMP     R0, #0\n"
 450         "LDRNE   R0, [R4,#8]\n"
 451         "ORRNE   R0, R0, #0x2000\n"
 452         "STRNE   R0, [R4,#8]\n"
 453         "LDRH    R0, [R5,#0x9E]\n"
 454         "CMP     R0, #3\n"
 455         "BEQ     locret_FF879D78\n"
 456         "LDRH    R0, [R5,#0x9C]\n"
 457         "CMP     R0, #0\n"
 458         "LDREQH  R0, [R5,#0x98]\n"
 459         "CMPEQ   R0, #2\n"
 460         "MOVEQ   R0, R4\n"
 461         "LDMEQFD SP!, {R3-R9,LR}\n"
 462         "BEQ     sub_FF87B100\n"
 463 "locret_FF879D78:\n"
 464         "LDMFD   SP!, {R3-R9,PC}\n"
 465  );
 466 }
 467 
 468 void __attribute__((naked,noinline)) sub_FF9668B0_my() {
 469  asm volatile (
 470         "STMFD   SP!, {R0-R8,LR}\n"
 471         "MOV     R4, R0\n"
 472         "BL      sub_FF96772C\n"
 473         "MVN     R1, #0\n"
 474         "BL      sub_FF884914\n"
 475         "LDR     R5, =0x7FD0\n"
 476         "LDR     R0, [R5,#0xC]\n"
 477         "CMP     R0, #0\n"
 478         "BNE     loc_FF966900\n"
 479         "MOV     R1, #1\n"
 480         "MOV     R0, #0\n"
 481         "BL      sub_FF838B44\n"
 482         "STR     R0, [R5,#0xC]\n"
 483         "MOV     R3, #0\n"
 484         "STR     R3, [SP]\n"
 485         "LDR     R3, =0xFF96623C\n"
 486         //"ADR     R0, 0xFF966B30\n"
 487                 "LDR     R0, =0xFF966B30\n"
 488         "MOV     R2, #0x400\n"
 489         "MOV     R1, #0x17\n"
 490         "BL      sub_FF838B10\n"
 491 "loc_FF966900:\n"
 492         "MOV     R2, #4\n"
 493         "ADD     R1, SP, #8\n"
 494         "MOV     R0, #0x8A\n"
 495         "BL      sub_FF88CA64\n"
 496         "TST     R0, #1\n"
 497         "LDRNE   R1, =0x3C5\n"
 498         "LDRNE   R0, =0xFF9664D4\n"
 499         "BLNE    sub_FF81E88C\n"
 500         "LDR     R6, =0x3A02C\n"
 501         "LDR     R8, =0x39F60\n"
 502         "LDR     R3, [R6]\n"
 503         "LDRSH   R2, [R6,#0xC]\n"
 504         "LDRSH   R1, [R6,#0xE]\n"
 505         "LDR     R0, [R8,#0x94]\n"
 506         "BL      sub_FF92E118\n"
 507         "BL      sub_FF86157C\n"
 508         "LDR     R3, =0x7FD8\n"
 509         "STRH    R0, [R4,#0xA4]\n"
 510         "SUB     R2, R3, #4\n"
 511         "STRD    R2, [SP]\n"
 512         "MOV     R1, R0\n"
 513         "LDRH    R0, [R8,#0x5C]\n"
 514         "LDRSH   R2, [R6,#0xC]\n"
 515         "SUB     R3, R3, #8\n"
 516         "BL      sub_FF96944C\n"
 517         "BL      wait_until_remote_button_is_released\n"  // +
 518         "BL      capt_seq_hook_set_nr\n"                  // +   
 519         "B       sub_FF966964\n" // +  Jump back to original FW code
 520  );
 521 }
 522 
 523 void __attribute__((naked,noinline)) exp_drv_task(){
 524  asm volatile(
 525         "STMFD   SP!, {R4-R8,LR}\n"
 526         "SUB     SP, SP, #0x20\n"
 527         "LDR     R8, =0xBB8\n"
 528         "LDR     R7, =0x4440\n"
 529         "LDR     R5, =0x4372C\n"
 530         "MOV     R0, #0\n"
 531         "ADD     R6, SP, #0x10\n"
 532         "STR     R0, [SP,#0xC]\n"
 533 "loc_FF8C0E74:\n"
 534         "LDR     R0, [R7,#0x20]\n"
 535         "MOV     R2, #0\n"
 536         "ADD     R1, SP, #0x1C\n"
 537         "BL      sub_FF8382FC\n"
 538         "LDR     R0, [SP,#0xC]\n"
 539         "CMP     R0, #1\n"
 540         "BNE     loc_FF8C0EC0\n"
 541         "LDR     R0, [SP,#0x1C]\n"
 542         "LDR     R0, [R0]\n"
 543         "CMP     R0, #0x13\n"
 544         "CMPNE   R0, #0x14\n"
 545         "CMPNE   R0, #0x15\n"
 546         "CMPNE   R0, #0x16\n"
 547         "BEQ     loc_FF8C1024\n"
 548         "CMP     R0, #0x28\n"
 549         "BEQ     loc_FF8C0FAC\n"
 550         "ADD     R1, SP, #0xC\n"
 551         "MOV     R0, #0\n"
 552         "BL      sub_FF8C0E04\n"
 553 "loc_FF8C0EC0:\n"
 554         "LDR     R0, [SP,#0x1C]\n"
 555         "LDR     R1, [R0]\n"
 556         "CMP     R1, #0x2E\n"
 557         "BNE     loc_FF8C0EF0\n"
 558         "LDR     R0, [SP,#0x1C]\n"
 559         "BL      sub_FF8C215C\n"
 560         "LDR     R0, [R7,#0x1C]\n"
 561         "MOV     R1, #1\n"
 562         "BL      sub_FF8848E0\n"
 563         "BL      sub_FF81E844\n"
 564         "ADD     SP, SP, #0x20\n"
 565         "LDMFD   SP!, {R4-R8,PC}\n"
 566 "loc_FF8C0EF0:\n"
 567         "CMP     R1, #0x2D\n"
 568         "BNE     loc_FF8C0F0C\n"
 569         "LDR     R2, [R0,#0x8C]!\n"
 570         "LDR     R1, [R0,#4]\n"
 571         "MOV     R0, R1\n"
 572         "BLX     R2\n"
 573         "B       loc_FF8C144C\n"
 574 "loc_FF8C0F0C:\n"
 575         "CMP     R1, #0x26\n"
 576         "BNE     loc_FF8C0F5C\n"
 577         "LDR     R0, [R7,#0x1C]\n"
 578         "MOV     R1, #0x80\n"
 579         "BL      sub_FF884914\n"
 580         "LDR     R0, =0xFF8BD59C\n"
 581         "MOV     R1, #0x80\n"
 582         "BL      sub_FF959524\n"
 583         "LDR     R0, [R7,#0x1C]\n"
 584         "MOV     R2, R8\n"
 585         "MOV     R1, #0x80\n"
 586         "BL      sub_FF884820\n"
 587         "TST     R0, #1\n"
 588         "LDRNE   R1, =0xE5F\n"
 589         "BNE     loc_FF8C1018\n"
 590 "loc_FF8C0F48:\n"
 591         "LDR     R1, [SP,#0x1C]\n"
 592         "LDR     R0, [R1,#0x90]\n"
 593         "LDR     R1, [R1,#0x8C]\n"
 594         "BLX     R1\n"
 595         "B       loc_FF8C144C\n"
 596 "loc_FF8C0F5C:\n"
 597         "CMP     R1, #0x27\n"
 598         "BNE     loc_FF8C0FA4\n"
 599         "ADD     R1, SP, #0xC\n"
 600         "BL      sub_FF8C0E04\n"
 601         "LDR     R0, [R7,#0x1C]\n"
 602         "MOV     R1, #0x100\n"
 603         "BL      sub_FF884914\n"
 604         "LDR     R0, =0xFF8BD5AC\n"
 605         "MOV     R1, #0x100\n"
 606         "BL      sub_FF959EB4\n"
 607         "LDR     R0, [R7,#0x1C]\n"
 608         "MOV     R2, R8\n"
 609         "MOV     R1, #0x100\n"
 610         "BL      sub_FF884820\n"
 611         "TST     R0, #1\n"
 612         "BEQ     loc_FF8C0F48\n"
 613         "LDR     R1, =0xE69\n"
 614         "B       loc_FF8C1018\n"
 615 "loc_FF8C0FA4:\n"
 616         "CMP     R1, #0x28\n"
 617         "BNE     loc_FF8C0FBC\n"
 618 "loc_FF8C0FAC:\n"
 619         "LDR     R0, [SP,#0x1C]\n"
 620         "ADD     R1, SP, #0xC\n"
 621         "BL      sub_FF8C0E04\n"
 622         "B       loc_FF8C0F48\n"
 623 "loc_FF8C0FBC:\n"
 624         "CMP     R1, #0x2B\n"
 625         "BNE     loc_FF8C0FD4\n"
 626         "BL      sub_FF8B0A00\n"
 627         "BL      sub_FF8B1624\n"
 628         "BL      sub_FF8B1178\n"
 629         "B       loc_FF8C0F48\n"
 630 "loc_FF8C0FD4:\n"
 631         "CMP     R1, #0x2C\n"
 632         "BNE     loc_FF8C1024\n"
 633         "LDR     R0, [R7,#0x1C]\n"
 634         "MOV     R1, #4\n"
 635         "BL      sub_FF884914\n"
 636         "LDR     R1, =0xFF8BD5CC\n"
 637         "LDR     R0, =0xFFFFF400\n"
 638         "MOV     R2, #4\n"
 639         "BL      sub_FF8B047C\n"
 640         "BL      sub_FF8B0704\n"
 641         "LDR     R0, [R7,#0x1C]\n"
 642         "MOV     R2, R8\n"
 643         "MOV     R1, #4\n"
 644         "BL      sub_FF88473C\n"
 645         "TST     R0, #1\n"
 646         "BEQ     loc_FF8C0F48\n"
 647         "LDR     R1, =0xE91\n"
 648 "loc_FF8C1018:\n"
 649         "LDR     R0, =0xFF8BDC0C\n"
 650         "BL      sub_FF81E88C\n"
 651         "B       loc_FF8C0F48\n"
 652 "loc_FF8C1024:\n"
 653         "LDR     R0, [SP,#0x1C]\n"
 654         "MOV     R4, #1\n"
 655         "LDR     R1, [R0]\n"
 656         "CMP     R1, #0x11\n"
 657         "CMPNE   R1, #0x12\n"
 658         "BNE     loc_FF8C1094\n"
 659         "LDR     R1, [R0,#0x7C]\n"
 660         "ADD     R1, R1, R1,LSL#1\n"
 661         "ADD     R1, R0, R1,LSL#2\n"
 662         "SUB     R1, R1, #8\n"
 663         "LDMIA   R1, {R2-R4}\n"
 664         "STMIA   R6, {R2-R4}\n"
 665         //"BL      loc_FF8BF784\n"
 666                 "BL      sub_FF8BF784\n"
 667         "LDR     R0, [SP,#0x1C]\n"
 668         "LDR     R1, [R0,#0x7C]\n"
 669         "LDR     R3, [R0,#0x8C]\n"
 670         "LDR     R2, [R0,#0x90]\n"
 671         "ADD     R0, R0, #4\n"
 672         "BLX     R3\n"
 673         "LDR     R0, [SP,#0x1C]\n"
 674         "BL      sub_FF8C2524\n"
 675         "LDR     R0, [SP,#0x1C]\n"
 676         "LDR     R1, [R0,#0x7C]\n"
 677         "LDR     R3, [R0,#0x94]\n"
 678         "LDR     R2, [R0,#0x98]\n"
 679         "ADD     R0, R0, #4\n"
 680         "BLX     R3\n"
 681         "B       loc_FF8C138C\n"
 682 "loc_FF8C1094:\n"
 683         "CMP     R1, #0x13\n"
 684         "CMPNE   R1, #0x14\n"
 685         "CMPNE   R1, #0x15\n"
 686         "CMPNE   R1, #0x16\n"
 687         "BNE     loc_FF8C114C\n"
 688         "ADD     R3, SP, #0xC\n"
 689         "MOV     R2, SP\n"
 690         "ADD     R1, SP, #0x10\n"
 691         "BL      sub_FF8BFA60\n"
 692         "CMP     R0, #1\n"
 693         "MOV     R4, R0\n"
 694         "CMPNE   R4, #5\n"
 695         "BNE     loc_FF8C10E8\n"
 696         "LDR     R0, [SP,#0x1C]\n"
 697         "MOV     R2, R4\n"
 698         "LDR     R1, [R0,#0x7C]!\n"
 699         "LDR     R12, [R0,#0x10]!\n"
 700         "LDR     R3, [R0,#4]\n"
 701         "MOV     R0, SP\n"
 702         "BLX     R12\n"
 703         "B       loc_FF8C1120\n"
 704 "loc_FF8C10E8:\n"
 705         "LDR     R0, [SP,#0x1C]\n"
 706         "CMP     R4, #2\n"
 707         "LDR     R3, [R0,#0x90]\n"
 708         "CMPNE   R4, #6\n"
 709         "BNE     loc_FF8C1134\n"
 710         "LDR     R12, [R0,#0x8C]\n"
 711         "MOV     R0, SP\n"
 712         "MOV     R2, R4\n"
 713         "MOV     R1, #1\n"
 714         "BLX     R12\n"
 715         "LDR     R0, [SP,#0x1C]\n"
 716         "MOV     R2, SP\n"
 717         "ADD     R1, SP, #0x10\n"
 718         "BL      sub_FF8C0B0C\n"
 719 "loc_FF8C1120:\n"
 720         "LDR     R0, [SP,#0x1C]\n"
 721         "LDR     R2, [SP,#0xC]\n"
 722         "MOV     R1, R4\n"
 723         "BL      sub_FF8C0DA4\n"
 724         "B       loc_FF8C138C\n"
 725 "loc_FF8C1134:\n"
 726         "LDR     R1, [R0,#0x7C]\n"
 727         "LDR     R12, [R0,#0x8C]\n"
 728         "ADD     R0, R0, #4\n"
 729         "MOV     R2, R4\n"
 730         "BLX     R12\n"
 731         "B       loc_FF8C138C\n"
 732 "loc_FF8C114C:\n"
 733         "CMP     R1, #0x22\n"
 734         "CMPNE   R1, #0x23\n"
 735         "BNE     loc_FF8C1198\n"
 736         "LDR     R1, [R0,#0x7C]\n"
 737         "ADD     R1, R1, R1,LSL#1\n"
 738         "ADD     R1, R0, R1,LSL#2\n"
 739         "SUB     R1, R1, #8\n"
 740         "LDMIA   R1, {R2-R4}\n"
 741         "STMIA   R6, {R2-R4}\n"
 742         "BL      sub_FF8BECC8\n"
 743         "LDR     R0, [SP,#0x1C]\n"
 744         "LDR     R1, [R0,#0x7C]\n"
 745         "LDR     R3, [R0,#0x8C]\n"
 746         "LDR     R2, [R0,#0x90]\n"
 747         "ADD     R0, R0, #4\n"
 748         "BLX     R3\n"
 749         "LDR     R0, [SP,#0x1C]\n"
 750         "BL      sub_FF8BEFC8\n"
 751         "B       loc_FF8C138C\n"
 752 "loc_FF8C1198:\n"
 753         "ADD     R1, R0, #4\n"
 754         "LDMIA   R1, {R2,R3,R12}\n"
 755         "STMIA   R6, {R2,R3,R12}\n"
 756         "LDR     R1, [R0]\n"
 757         "CMP     R1, #0x25\n"
 758         "ADDLS   PC, PC, R1,LSL#2\n"
 759         "B       loc_FF8C136C\n"
 760 "loc_FF8C11B4:\n"
 761         "B       loc_FF8C124C\n"
 762 "loc_FF8C11B8:\n"
 763         "B       loc_FF8C124C\n"
 764 "loc_FF8C11BC:\n"
 765         "B       loc_FF8C1254\n"
 766 "loc_FF8C11C0:\n"
 767         "B       loc_FF8C125C\n"
 768 "loc_FF8C11C4:\n"
 769         "B       loc_FF8C125C\n"
 770 "loc_FF8C11C8:\n"
 771         "B       loc_FF8C125C\n"
 772 "loc_FF8C11CC:\n"
 773         "B       loc_FF8C124C\n"
 774 "loc_FF8C11D0:\n"
 775         "B       loc_FF8C1254\n"
 776 "loc_FF8C11D4:\n"
 777         "B       loc_FF8C125C\n"
 778 "loc_FF8C11D8:\n"
 779         "B       loc_FF8C125C\n"
 780 "loc_FF8C11DC:\n"
 781         "B       loc_FF8C1274\n"
 782 "loc_FF8C11E0:\n"
 783         "B       loc_FF8C1274\n"
 784 "loc_FF8C11E4:\n"
 785         "B       loc_FF8C1360\n"
 786 "loc_FF8C11E8:\n"
 787         "B       loc_FF8C1368\n"
 788 "loc_FF8C11EC:\n"
 789         "B       loc_FF8C1368\n"
 790 "loc_FF8C11F0:\n"
 791         "B       loc_FF8C1368\n"
 792 "loc_FF8C11F4:\n"
 793         "B       loc_FF8C1368\n"
 794 "loc_FF8C11F8:\n"
 795         "B       loc_FF8C136C\n"
 796 "loc_FF8C11FC:\n"
 797         "B       loc_FF8C136C\n"
 798 "loc_FF8C1200:\n"
 799         "B       loc_FF8C136C\n"
 800 "loc_FF8C1204:\n"
 801         "B       loc_FF8C136C\n"
 802 "loc_FF8C1208:\n"
 803         "B       loc_FF8C136C\n"
 804 "loc_FF8C120C:\n"
 805         "B       loc_FF8C136C\n"
 806 "loc_FF8C1210:\n"
 807         "B       loc_FF8C1264\n"
 808 "loc_FF8C1214:\n"
 809         "B       loc_FF8C126C\n"
 810 "loc_FF8C1218:\n"
 811         "B       loc_FF8C126C\n"
 812 "loc_FF8C121C:\n"
 813         "B       loc_FF8C1280\n"
 814 "loc_FF8C1220:\n"
 815         "B       loc_FF8C1280\n"
 816 "loc_FF8C1224:\n"
 817         "B       loc_FF8C1288\n"
 818 "loc_FF8C1228:\n"
 819         "B       loc_FF8C12B8\n"
 820 "loc_FF8C122C:\n"
 821         "B       loc_FF8C12E8\n"
 822 "loc_FF8C1230:\n"
 823         "B       loc_FF8C1318\n"
 824 "loc_FF8C1234:\n"
 825         "B       loc_FF8C1348\n"
 826 "loc_FF8C1238:\n"
 827         "B       loc_FF8C1348\n"
 828 "loc_FF8C123C:\n"
 829         "B       loc_FF8C136C\n"
 830 "loc_FF8C1240:\n"
 831         "B       loc_FF8C136C\n"
 832 "loc_FF8C1244:\n"
 833         "B       loc_FF8C1350\n"
 834 "loc_FF8C1248:\n"
 835         "B       loc_FF8C1358\n"
 836 "loc_FF8C124C:\n"
 837         "BL      sub_FF8BDAB4\n"
 838         "B       loc_FF8C136C\n"
 839 "loc_FF8C1254:\n"
 840         "BL      sub_FF8BDD38\n"
 841         "B       loc_FF8C136C\n"
 842 "loc_FF8C125C:\n"
 843         "BL      sub_FF8BDF40\n"
 844         "B       loc_FF8C136C\n"
 845 "loc_FF8C1264:\n"
 846         "BL      sub_FF8BE1B8\n"
 847         "B       loc_FF8C136C\n"
 848 "loc_FF8C126C:\n" // ; jumptable FF8C11AC entries 24,25
 849         "BL      sub_FF8BE3B0\n"
 850         "B       loc_FF8C136C\n"
 851 "loc_FF8C1274:\n" //; jumptable FF8C11AC entries 10,11
 852         //"BL      sub_FF8BE66C\n"
 853                 "BL      sub_FF8BE66C_my\n" // ------------------->
 854         "MOV     R4, #0\n"
 855         "B       loc_FF8C136C\n"
 856 "loc_FF8C1280:\n" // ; jumptable FF8C11AC entries 26,27
 857         "BL      sub_FF8BE7AC\n"
 858         "B       loc_FF8C136C\n"
 859 "loc_FF8C1288:\n"
 860         "LDRH    R1, [R0,#4]\n"
 861         "STRH    R1, [SP,#0x10]\n"
 862         "LDRH    R1, [R5,#2]\n"
 863         "STRH    R1, [SP,#0x12]\n"
 864         "LDRH    R1, [R5,#4]\n"
 865         "STRH    R1, [SP,#0x14]\n"
 866         "LDRH    R1, [R5,#6]\n"
 867         "STRH    R1, [SP,#0x16]\n"
 868         "LDRH    R1, [R0,#0xC]\n"
 869         "STRH    R1, [SP,#0x18]\n"
 870         "BL      sub_FF8C21D0\n"
 871         "B       loc_FF8C136C\n"
 872 "loc_FF8C12B8:\n"
 873         "LDRH    R1, [R0,#4]\n"
 874         "STRH    R1, [SP,#0x10]\n"
 875         "LDRH    R1, [R5,#2]\n"
 876         "STRH    R1, [SP,#0x12]\n"
 877         "LDRH    R1, [R5,#4]\n"
 878         "STRH    R1, [SP,#0x14]\n"
 879         "LDRH    R1, [R5,#6]\n"
 880         "STRH    R1, [SP,#0x16]\n"
 881         "LDRH    R1, [R5,#8]\n"
 882         "STRH    R1, [SP,#0x18]\n"
 883         "BL      sub_FF8C233C\n"
 884         "B       loc_FF8C136C\n"
 885 "loc_FF8C12E8:\n"
 886         "LDRH    R1, [R5]\n"
 887         "STRH    R1, [SP,#0x10]\n"
 888         "LDRH    R1, [R0,#6]\n"
 889         "STRH    R1, [SP,#0x12]\n"
 890         "LDRH    R1, [R5,#4]\n"
 891         "STRH    R1, [SP,#0x14]\n"
 892         "LDRH    R1, [R5,#6]\n"
 893         "STRH    R1, [SP,#0x16]\n"
 894         "LDRH    R1, [R5,#8]\n"
 895         "STRH    R1, [SP,#0x18]\n"
 896         "BL      sub_FF8C23E8\n"
 897         "B       loc_FF8C136C\n"
 898 "loc_FF8C1318:\n"
 899         "LDRH    R1, [R5]\n"
 900         "STRH    R1, [SP,#0x10]\n"
 901         "LDRH    R1, [R5,#2]\n"
 902         "STRH    R1, [SP,#0x12]\n"
 903         "LDRH    R1, [R5,#4]\n"
 904         "STRH    R1, [SP,#0x14]\n"
 905         "LDRH    R1, [R5,#6]\n"
 906         "STRH    R1, [SP,#0x16]\n"
 907         "LDRH    R1, [R0,#0xC]\n"
 908         "STRH    R1, [SP,#0x18]\n"
 909         "BL      sub_FF8C2488\n"
 910         "B       loc_FF8C136C\n"
 911 "loc_FF8C1348:\n"
 912         "BL      sub_FF8BEB04\n"
 913         "B       loc_FF8C136C\n"
 914 "loc_FF8C1350:\n"
 915         "BL      sub_FF8BF0CC\n"
 916         "B       loc_FF8C136C\n"
 917 "loc_FF8C1358:\n"
 918         "BL      sub_FF8BF308\n"
 919         "B       loc_FF8C136C\n"
 920 "loc_FF8C1360:\n"
 921         "BL      sub_FF8BF484\n"
 922         "B       loc_FF8C136C\n"
 923 "loc_FF8C1368:\n"
 924         "BL      sub_FF8BF620\n"
 925 "loc_FF8C136C:\n"
 926         "LDR     R0, [SP,#0x1C]\n"
 927         "LDR     R1, [R0,#0x7C]\n"
 928         "LDR     R3, [R0,#0x8C]\n"
 929         "LDR     R2, [R0,#0x90]\n"
 930         "ADD     R0, R0, #4\n"
 931         "BLX     R3\n"
 932         "CMP     R4, #1\n"
 933         "BNE     loc_FF8C13D4\n"
 934 "loc_FF8C138C:\n"
 935         "LDR     R0, [SP,#0x1C]\n"
 936         "MOV     R2, #0xC\n"
 937         "LDR     R1, [R0,#0x7C]\n"
 938         "ADD     R1, R1, R1,LSL#1\n"
 939         "ADD     R0, R0, R1,LSL#2\n"
 940         "SUB     R4, R0, #8\n"
 941         "LDR     R0, =0x4372C\n"
 942         "ADD     R1, SP, #0x10\n"
 943         "BL      sub_FFB34BC8\n"
 944         "LDR     R0, =0x43738\n"
 945         "MOV     R2, #0xC\n"
 946         "ADD     R1, SP, #0x10\n"
 947         "BL      sub_FFB34BC8\n"
 948         "LDR     R0, =0x43744\n"
 949         "MOV     R2, #0xC\n"
 950         "MOV     R1, R4\n"
 951         "BL      sub_FFB34BC8\n"
 952         "B       loc_FF8C144C\n"
 953 "loc_FF8C13D4:\n"
 954         "LDR     R0, [SP,#0x1C]\n"
 955         "LDR     R0, [R0]\n"
 956         "CMP     R0, #0xB\n"
 957         "BNE     loc_FF8C141C\n"
 958         "MOV     R3, #0\n"
 959         "STR     R3, [SP]\n"
 960         "MOV     R3, #1\n"
 961         "MOV     R2, #1\n"
 962         "MOV     R1, #1\n"
 963         "MOV     R0, #0\n"
 964         "BL      sub_FF8BD8BC\n"
 965         "MOV     R3, #0\n"
 966         "STR     R3, [SP]\n"
 967         "MOV     R3, #1\n"
 968         "MOV     R2, #1\n"
 969         "MOV     R1, #1\n"
 970         "MOV     R0, #0\n"
 971         "B       loc_FF8C1448\n"
 972 "loc_FF8C141C:\n"
 973         "MOV     R3, #1\n"
 974         "MOV     R2, #1\n"
 975         "MOV     R1, #1\n"
 976         "MOV     R0, #1\n"
 977         "STR     R3, [SP]\n"
 978         "BL      sub_FF8BD8BC\n"
 979         "MOV     R3, #1\n"
 980         "MOV     R2, #1\n"
 981         "MOV     R1, #1\n"
 982         "MOV     R0, #1\n"
 983         "STR     R3, [SP]\n"
 984 "loc_FF8C1448:\n"
 985         "BL      sub_FF8BD9FC\n"
 986 "loc_FF8C144C:\n"
 987         "LDR     R0, [SP,#0x1C]\n"
 988         "BL      sub_FF8C215C\n"
 989         "B       loc_FF8C0E74\n"
 990 );
 991 };
 992 
 993 void __attribute__((naked,noinline)) sub_FF8BE66C_my(){
 994  asm volatile(
 995 "sub_FF8BE66C:\n"
 996         "STMFD   SP!, {R4-R8,LR}\n"
 997         "LDR     R7, =0x4440\n"
 998         "MOV     R4, R0\n"
 999         "LDR     R0, [R7,#0x1C]\n"
1000         "MOV     R1, #0x3E\n"
1001         "BL      sub_FF884914\n"
1002         "LDRSH   R0, [R4,#4]\n"
1003         "MOV     R2, #0\n"
1004         "MOV     R1, #0\n"
1005         "BL      sub_FF8BD620\n"
1006         "MOV     R6, R0\n"
1007         "LDRSH   R0, [R4,#6]\n"
1008         "BL      sub_FF8BD730\n"
1009         "LDRSH   R0, [R4,#8]\n"
1010         "BL      sub_FF8BD788\n"
1011         "LDRSH   R0, [R4,#0xA]\n"
1012         "BL      sub_FF8BD7E0\n"
1013         "LDRSH   R0, [R4,#0xC]\n"
1014         "MOV     R1, #0\n"
1015         "BL      sub_FF8BD838\n"
1016         "MOV     R5, R0\n"
1017         "LDR     R0, [R4]\n"
1018         "LDR     R8, =0x43744\n"
1019         "CMP     R0, #0xB\n"
1020         "MOVEQ   R6, #0\n"
1021         "MOVEQ   R5, #0\n"
1022         "BEQ     loc_FF8BE700\n"
1023         "CMP     R6, #1\n"
1024         "BNE     loc_FF8BE700\n"
1025         "LDRSH   R0, [R4,#4]\n"
1026         "LDR     R1, =0xFF8BD58C\n"
1027         "MOV     R2, #2\n"
1028         "BL      sub_FF959870\n"
1029         "STRH    R0, [R4,#4]\n"
1030         "MOV     R0, #0\n"
1031         "STR     R0, [R7,#0x28]\n"
1032         "B       loc_FF8BE708\n"
1033 "loc_FF8BE700:\n"
1034         "LDRH    R0, [R8]\n"
1035         "STRH    R0, [R4,#4]\n"
1036 "loc_FF8BE708:\n"
1037         "CMP     R5, #1\n"
1038         "LDRNEH  R0, [R8,#8]\n"
1039         "BNE     loc_FF8BE724\n"
1040         "LDRSH   R0, [R4,#0xC]\n"
1041         "LDR     R1, =0xFF8BD610\n"
1042         "MOV     R2, #0x20\n"
1043         "BL      sub_FF8C218C\n"
1044 "loc_FF8BE724:\n"
1045         "STRH    R0, [R4,#0xC]\n"
1046         "LDRSH   R0, [R4,#6]\n"
1047         //"BL      sub_FF8B0770\n"
1048                 "BL      sub_FF8B0770_my\n" // -------------------->
1049 
1050         "LDRSH   R0, [R4,#8]\n"
1051         "MOV     R1, #1\n"
1052         "BL      sub_FF8B0EC0\n"
1053         "MOV     R1, #0\n"
1054         "ADD     R0, R4, #8\n"
1055         "BL      sub_FF8B0F48\n"
1056         "LDRSH   R0, [R4,#0xE]\n"
1057         "BL      sub_FF8B8A2C\n"
1058         "LDR     R4, =0xBB8\n"
1059         "CMP     R6, #1\n"
1060         "BNE     loc_FF8BE77C\n"
1061         "LDR     R0, [R7,#0x1C]\n"
1062         "MOV     R2, R4\n"
1063         "MOV     R1, #2\n"
1064         "BL      sub_FF884820\n"
1065         "TST     R0, #1\n"
1066         "LDRNE   R1, =0x5A3\n"
1067         "LDRNE   R0, =0xFF8BDC0C\n"
1068         "BLNE    sub_FF81E88C\n"
1069 "loc_FF8BE77C:\n"
1070         "CMP     R5, #1\n"
1071         "LDMNEFD SP!, {R4-R8,PC}\n"
1072         "LDR     R0, [R7,#0x1C]\n"
1073         "MOV     R2, R4\n"
1074         "MOV     R1, #0x20\n"
1075         "BL      sub_FF884820\n"
1076         "TST     R0, #1\n"
1077         "LDRNE   R1, =0x5A8\n"
1078         "LDRNE   R0, =0xFF8BDC0C\n"
1079         "LDMNEFD SP!, {R4-R8,LR}\n"
1080         "BNE     sub_FF81E88C\n"
1081         "LDMFD   SP!, {R4-R8,PC}\n"
1082  );
1083 };
1084 void __attribute__((naked,noinline)) sub_FF8B0770_my()
1085 {  
1086  asm volatile(
1087         "STMFD   SP!, {R4-R6,LR}\n"
1088         "LDR     R5, =0x4150\n"
1089         "MOV     R4, R0\n"
1090         "LDR     R0, [R5,#4]\n"
1091         "CMP     R0, #1\n"
1092         "LDRNE   R1, =0x146\n"
1093         "LDRNE   R0, =0xFF8B0574\n"
1094         "BLNE    sub_FF81E88C\n"
1095         "CMN     R4, #0xC00\n"
1096         "LDREQSH R4, [R5,#2]\n"
1097         "CMN     R4, #0xC00\n"
1098         "MOVEQ   R1, #0x14C\n"
1099         //"ADREQ   R0, 0xFF8B0574\n"
1100                 "LDREQ   R0, =0xFF8B0574\n"
1101         "STRH    R4, [R5,#2]\n"
1102         "BLEQ    sub_FF81E88C\n"
1103         "MOV     R0, R4\n"
1104 
1105         //"BL      sub_FFA0D7A8\n" // -
1106                 "BL      apex2us\n"  // +
1107 
1108         "MOV     R4, R0\n"
1109         "BL      sub_FF8F5240\n"
1110         "MOV     R0, R4\n"
1111         "BL      sub_FF8FE10C\n"
1112         "TST     R0, #1\n"
1113         "LDRNE   R1, =0x151\n"
1114         "LDMNEFD SP!, {R4-R6,LR}\n"
1115         "LDRNE   R0, =0xFF8B0574\n"
1116         "BNE     sub_FF81E88C\n"
1117         "LDMFD   SP!, {R4-R6,PC}\n"
1118         ".ltorg"
1119      );
1120 };

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