root/platform/a3000/sub/100b/capt_seq.c

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

DEFINITIONS

This source file includes following definitions.
  1. sub_FFD17E50_my
  2. sub_FFC5C588_my
  3. task_CaptSeqTask_my
  4. exp_drv_task
  5. sub_FFC92844_my
  6. sub_FFC8483C_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 
   5 static long *nrflag = (long*)0x5A80;
   6 
   7 #include "../../../generic/capt_seq.c"
   8 
   9 
  10 void __attribute__((naked,noinline)) sub_FFD17E50_my() {
  11  asm volatile (
  12 
  13         "STMFD   SP!, {R0-R8,LR}\n"
  14         "MOV     R4, R0\n"
  15         "BL      sub_FFD18948    \n"
  16                 "MOV     R1, #0xFFFFFFFF\n"
  17         "BL      sub_FFC28C18\n"
  18         "LDR     R5, =0x5A80\n"
  19         "LDR     R0, [R5,#0xC]\n"
  20         "CMP     R0, #0\n"
  21         "BNE     loc_FFD17EA0\n"
  22         "MOV     R1, #1\n"
  23         "MOV     R0, #0\n"
  24         "BL      sub_FFC0F41C    \n"
  25         "STR     R0, [R5,#0xC]\n"
  26         "MOV     R3, #0\n"
  27         "STR     R3, [SP]\n"
  28         "LDR     R3, =0xFFD1788C \n"
  29         "LDR     R0, =0xFFD180B4\n"
  30         "MOV     R2, #0x400\n"
  31         "MOV     R1, #0x17\n"
  32         "BL      sub_FFC0F3E8    \n"
  33 "loc_FFD17EA0:\n"
  34         "MOV     R2, #4\n"
  35         "ADD     R1, SP, #8\n"
  36         "MOV     R0, #0x8A\n"
  37         "BL      sub_FFC6C614    \n"
  38         "TST     R0, #1\n"
  39         "LDRNE   R1, =0x3BA\n"
  40         "LDRNE   R0, =0xFFD17B10\n"
  41         "BLNE    sub_FFC0F5E8\n"
  42         "LDR     R6, =0x34720\n"
  43         "LDR     R7, =0x3465C\n"
  44         "LDR     R3, [R6]\n"
  45         "LDRSH   R2, [R6,#0xC]\n"
  46         "LDRSH   R1, [R6,#0xE]\n"
  47         "LDR     R0, [R7,#0x88]\n"
  48         "BL      sub_FFCE9E0C\n"
  49         "BL      sub_FFC4660C    \n"
  50         "LDR     R3, =0x5A88\n"
  51         "STRH    R0, [R4,#0xA4]\n"
  52         "SUB     R2, R3, #4\n"
  53         "STRD    R2, [SP]\n"
  54         "MOV     R1, R0\n"
  55         "LDRH    R0, [R7,#0x5C]\n"
  56         "LDRSH   R2, [R6,#0xC]\n"
  57         "SUB     R3, R3, #8\n"
  58         "BL      sub_FFD18FAC\n"
  59                 "BL      wait_until_remote_button_is_released\n" // untested!
  60                 "BL      capt_seq_hook_set_nr\n"
  61                 "B       sub_FFD17F04\n" // -> continue in firmware
  62  );
  63 }
  64 void __attribute__((naked,noinline)) sub_FFC5C588_my() {
  65  asm volatile (
  66         "STMFD   SP!, {R4-R6,LR}\n"
  67         "LDR     R4, [R0,#0xC]\n"
  68         "LDR     R6, =0x3465C\n"
  69         "LDR     R0, [R4,#8]\n"
  70         "MOV     R5, #0\n"
  71         "ORR     R0, R0, #1\n"
  72         "STR     R0, [R4,#8]\n"
  73         "LDR     R0, [R6,#0x24]\n"
  74         "CMP     R0, #0\n"
  75         "MOVEQ   R0, #2\n"
  76         "BLEQ    sub_FFC58A9C\n"
  77         "BL      sub_FFC5CA84\n"
  78         "LDR     R0, [R6,#0x24]\n"
  79         "CMP     R0, #0\n"
  80         "BNE     loc_FFC5C624\n"
  81         "MOV     R0, R4\n"
  82         "BL      sub_FFC5CE24\n"
  83         "MOV     R0, R4\n"
  84         "BL      sub_FFD169F8\n"
  85         "CMP     R0, #0\n"
  86         "MOV     R0, R4\n"
  87         "BEQ     loc_FFC5C5FC\n"
  88         "BL      sub_FFD16A84    \n"
  89         "TST     R0, #1\n"
  90         "MOVNE   R2, R4\n"
  91         "LDMNEFD SP!, {R4-R6,LR}\n"
  92         "MOVNE   R1, #1\n"
  93         "BNE     sub_FFC5A71C    \n"
  94         "B       loc_FFC5C600\n"
  95 "loc_FFC5C5FC:\n"
  96         "BL      sub_FFD16A48\n"
  97 "loc_FFC5C600:\n"
  98         "MOV     R0, R4\n"
  99         "BL      sub_FFC5BCD4\n"
 100         "MOV     R0, R4\n"
 101         "BL      sub_FFD17D88    \n"
 102         "BL      sub_FFD187B4    \n"
 103         "MOV     R0, R4\n"
 104         //"BL      sub_FFD17E50    \n"
 105                 "BL      sub_FFD17E50_my    \n"   // ---> nr setup
 106         "MOV     R5, R0\n"
 107         "B       loc_FFC5C634\n"
 108 "loc_FFC5C624:\n"
 109         "LDR     R0, =0x27FC\n"
 110         "LDR     R0, [R0,#0x10]\n"
 111         "CMP     R0, #0\n"
 112         "MOVNE   R5, #0x1D\n"
 113 "loc_FFC5C634:\n"
 114                 "BL      capt_seq_hook_raw_here\n" // ++++->
 115         "BL      sub_FFC5F0F4\n"
 116         "BL      sub_FFC5F13C\n"
 117         "BL      sub_FFC5F17C\n"
 118         "MOV     R2, R4\n"
 119         "MOV     R1, #1\n"
 120         "MOV     R0, R5\n"
 121         "BL      sub_FFC5A71C    \n"
 122         "BL      sub_FFD180E8\n"
 123         "CMP     R0, #0\n"
 124         "LDRNE   R0, [R4,#8]\n"
 125         "ORRNE   R0, R0, #0x2000\n"
 126         "STRNE   R0, [R4,#8]\n"
 127         "LDMFD   SP!, {R4-R6,PC}\n"
 128   );
 129 }
 130 
 131 void __attribute__((naked,noinline)) task_CaptSeqTask_my() {
 132         asm volatile (
 133         "STMFD   SP!, {R3-R9,LR}\n"
 134         "LDR     R6, =0x27FC\n"
 135         "LDR     R4, =0x3465C\n"
 136         "MOV     R9, #1\n"
 137         "MOV     R7, #0\n"
 138 "loc_FFC5C1AC:\n"
 139         "LDR     R0, [R6,#4]\n"
 140         "MOV     R2, #0\n"
 141         "MOV     R1, SP\n"
 142         "BL      sub_FFC28E74    \n"
 143         "TST     R0, #1\n"
 144         "BEQ     loc_FFC5C1D8\n"
 145         "LDR     R1, =0x5B4\n"
 146         "LDR     R0, =0xFFC5BD50\n"
 147         "BL      sub_FFC0F5E8\n"
 148         "BL      sub_FFC0F3A0    \n"
 149         "LDMFD   SP!, {R3-R9,PC}\n"
 150 "loc_FFC5C1D8:\n"
 151         "LDR     R0, [SP]\n"
 152         "LDR     R1, [R0]\n"
 153         "CMP     R1, #0x1D\n"
 154         "ADDLS   PC, PC, R1,LSL#2\n"
 155         "B       loc_FFC5C460\n"
 156 "loc_FFC5C1EC:\n"
 157         "B       loc_FFC5C264\n"
 158 "loc_FFC5C1F0:\n"
 159         "B       loc_FFC5C2C8\n"
 160 "loc_FFC5C1F4:\n"
 161         "B       loc_FFC5C304\n"
 162 "loc_FFC5C1F8:\n"
 163         "B       loc_FFC5C318\n"
 164 "loc_FFC5C1FC:\n"
 165         "B       loc_FFC5C310\n"
 166 "loc_FFC5C200:\n"
 167         "B       loc_FFC5C320\n"
 168 "loc_FFC5C204:\n"
 169         "B       loc_FFC5C328\n"
 170 "loc_FFC5C208:\n"
 171         "B       loc_FFC5C330\n"
 172 "loc_FFC5C20C:\n"
 173         "B       loc_FFC5C388\n"
 174 "loc_FFC5C210:\n"
 175         "B       loc_FFC5C3B0\n"
 176 "loc_FFC5C214:\n"
 177         "B       loc_FFC5C394\n"
 178 "loc_FFC5C218:\n"
 179         "B       loc_FFC5C3A0\n"
 180 "loc_FFC5C21C:\n"
 181         "B       loc_FFC5C3A8\n"
 182 "loc_FFC5C220:\n"
 183         "B       loc_FFC5C3B8\n"
 184 "loc_FFC5C224:\n"
 185         "B       loc_FFC5C3C0\n"
 186 "loc_FFC5C228:\n"
 187         "B       loc_FFC5C3C8\n"
 188 "loc_FFC5C22C:\n"
 189         "B       loc_FFC5C3D0\n"
 190 "loc_FFC5C230:\n"
 191         "B       loc_FFC5C3D8\n"
 192 "loc_FFC5C234:\n"
 193         "B       loc_FFC5C3E4\n"
 194 "loc_FFC5C238:\n"
 195         "B       loc_FFC5C3EC\n"
 196 "loc_FFC5C23C:\n"
 197         "B       loc_FFC5C3F4\n"
 198 "loc_FFC5C240:\n"
 199         "B       loc_FFC5C3FC\n"
 200 "loc_FFC5C244:\n"
 201         "B       loc_FFC5C404\n"
 202 "loc_FFC5C248:\n"
 203         "B       loc_FFC5C410\n"
 204 "loc_FFC5C24C:\n"
 205         "B       loc_FFC5C418\n"
 206 "loc_FFC5C250:\n"
 207         "B       loc_FFC5C420\n"
 208 "loc_FFC5C254:\n"
 209         "B       loc_FFC5C428\n"
 210 "loc_FFC5C258:\n"
 211         "B       loc_FFC5C430\n"
 212 "loc_FFC5C25C:\n"
 213         "B       loc_FFC5C43C\n"
 214 "loc_FFC5C260:\n"
 215         "B       loc_FFC5C46C\n"
 216 "loc_FFC5C264:\n"
 217         "BL      sub_FFC5CA94\n"
 218                 // TODO do we need the short press hack ?
 219                 "BL      shooting_expo_param_override\n"  // +
 220         "BL      sub_FFC5A2A8\n"
 221         "LDR     R0, [R4,#0x24]\n"
 222         "CMP     R0, #0\n"
 223         "BEQ     loc_FFC5C46C\n"
 224         "BL      sub_FFC5BA30\n"
 225         "MOV     R5, R0\n"
 226         "LDR     R0, [R4,#0x24]\n"
 227         "CMP     R0, #0\n"
 228         "BEQ     loc_FFC5C2AC\n"
 229         "MOV     R0, #0xC\n"
 230         "BL      sub_FFC60824\n"
 231         "TST     R0, #1\n"
 232         "STRNE   R9, [R6,#0x10]\n"
 233         "LDRNE   R0, [R5,#8]\n"
 234         "ORRNE   R0, R0, #0x40000000\n"
 235         "STRNE   R0, [R5,#8]\n"
 236         "BNE     loc_FFC5C46C\n"
 237 "loc_FFC5C2AC:\n"
 238         "MOV     R0, R5\n"
 239         "BL      sub_FFC5BCD4\n"
 240         "MOV     R0, R5\n"
 241                 // "BL      sub_FFD17E50\n"
 242         "BL      sub_FFD17E50_my\n" // -> nr setup (quick press)
 243         "TST     R0, #1\n"
 244         "STRNE   R9, [R6,#0x10]\n"
 245         "B       loc_FFC5C46C\n"
 246 "loc_FFC5C2C8:\n"
 247         "LDR     R0, [R4,#0x24]\n"
 248         "CMP     R0, #0\n"
 249         "BNE     loc_FFC5C2F4\n"
 250         "MOV     R0, #0xC\n"
 251         "BL      sub_FFC60824\n"
 252         "TST     R0, #1\n"
 253         "LDRNE   R0, [SP]\n"
 254         "MOVNE   R1, #1\n"
 255         "LDRNE   R2, [R0,#0xC]\n"
 256         "MOVNE   R0, #1\n"
 257         "BNE     loc_FFC5C380\n"
 258 "loc_FFC5C2F4:\n"
 259         "LDR     R0, [SP]\n"
 260         //"BL      sub_FFC5C588\n"
 261                 "BL      sub_FFC5C588_my\n" // ---->
 262 "loc_FFC5C2FC:\n"
 263         "STR     R7, [R4,#0x24]\n"
 264         "B       loc_FFC5C46C\n"
 265 "loc_FFC5C304:\n"
 266         "MOV     R0, #1\n"
 267         "BL      sub_FFC5CD1C    \n"
 268         "B       loc_FFC5C46C\n"
 269 "loc_FFC5C310:\n"
 270         "BL      sub_FFC5C700\n"
 271         "B       loc_FFC5C2FC\n"
 272 "loc_FFC5C318:\n"
 273         "BL      sub_FFC5CA74\n"
 274         "B       loc_FFC5C2FC\n"
 275 "loc_FFC5C320:\n"
 276         "BL      sub_FFC5CA7C\n"
 277         "B       loc_FFC5C46C\n"
 278 "loc_FFC5C328:\n"
 279         "BL      sub_FFC5CC2C\n"
 280         "B       loc_FFC5C38C\n"
 281 "loc_FFC5C330:\n"
 282         "LDR     R5, [R0,#0xC]\n"
 283         "BL      sub_FFC5CA84\n"
 284         "MOV     R0, R5\n"
 285         "BL      sub_FFD16D8C    \n"
 286         "TST     R0, #1\n"
 287         "MOV     R8, R0\n"
 288         "BNE     loc_FFC5C370\n"
 289         "BL      sub_FFC6C7A4    \n"
 290         "STR     R0, [R5,#0x18]\n"
 291         "MOV     R0, R5\n"
 292         "BL      sub_FFD17D88    \n"
 293         "MOV     R0, R5\n"
 294         "BL      sub_FFD18134    \n"
 295         "MOV     R8, R0\n"
 296         "LDR     R0, [R5,#0x18]\n"
 297         "BL      sub_FFC6C9DC    \n"
 298 "loc_FFC5C370:\n"
 299         "BL      sub_FFC5CA74\n"
 300         "MOV     R2, R5\n"
 301         "MOV     R1, #9\n"
 302         "MOV     R0, R8\n"
 303 "loc_FFC5C380:\n"
 304         "BL      sub_FFC5A71C    \n"
 305         "B       loc_FFC5C46C\n"
 306 "loc_FFC5C388:\n"
 307         "BL      sub_FFC5CC94\n"
 308 "loc_FFC5C38C:\n"
 309         "BL      sub_FFC5A2A8\n"
 310         "B       loc_FFC5C46C\n"
 311 "loc_FFC5C394:\n"
 312         "LDR     R0, [R4,#0x54]\n"
 313         "BL      sub_FFC5D07C    \n"
 314         "B       loc_FFC5C46C\n"
 315 "loc_FFC5C3A0:\n"
 316         "BL      sub_FFC5D32C\n"
 317         "B       loc_FFC5C46C\n"
 318 "loc_FFC5C3A8:\n"
 319         "BL      sub_FFC5D3C0\n"
 320         "B       loc_FFC5C46C\n"
 321 "loc_FFC5C3B0:\n"
 322         "BL      sub_FFC5CA74\n"
 323         "B       loc_FFC5C46C\n"
 324 "loc_FFC5C3B8:\n"
 325         "BL      sub_FFD16FB8\n"
 326         "B       loc_FFC5C46C\n"
 327 "loc_FFC5C3C0:\n"
 328         "BL      sub_FFD171B0\n"
 329         "B       loc_FFC5C46C\n"
 330 "loc_FFC5C3C8:\n"
 331         "BL      sub_FFD17244\n"
 332         "B       loc_FFC5C46C\n"
 333 "loc_FFC5C3D0:\n"
 334         "BL      sub_FFD17304\n"
 335         "B       loc_FFC5C46C\n"
 336 "loc_FFC5C3D8:\n"
 337         "MOV     R0, #0\n"
 338         "BL      sub_FFD174FC\n"
 339         "B       loc_FFC5C46C\n"
 340 "loc_FFC5C3E4:\n"
 341         "BL      sub_FFD1764C\n"
 342         "B       loc_FFC5C46C\n"
 343 "loc_FFC5C3EC:\n"
 344         "BL      sub_FFD176DC\n"
 345         "B       loc_FFC5C46C\n"
 346 "loc_FFC5C3F4:\n"
 347         "BL      sub_FFD1779C\n"
 348         "B       loc_FFC5C46C\n"
 349 "loc_FFC5C3FC:\n"
 350         "BL      sub_FFC5CE70\n"
 351         "B       loc_FFC5C46C\n"
 352 "loc_FFC5C404:\n"
 353         "BL      sub_FFC5CF04\n"
 354         "BL      sub_FFC26E20\n"
 355         "B       loc_FFC5C46C\n"
 356 "loc_FFC5C410:\n"
 357         "BL      sub_FFD173D0\n"
 358         "B       loc_FFC5C46C\n"
 359 "loc_FFC5C418:\n"
 360         "BL      sub_FFD17414\n"
 361         "B       loc_FFC5C46C\n"
 362 "loc_FFC5C420:\n"
 363         "BL      sub_FFC5F074\n"
 364         "B       loc_FFC5C46C\n"
 365 "loc_FFC5C428:\n"
 366         "BL      sub_FFC5F0F4\n"
 367         "B       loc_FFC5C46C\n"
 368 "loc_FFC5C430:\n"
 369         "BL      sub_FFC5F150\n"
 370         "BL      sub_FFC5F110\n"
 371         "B       loc_FFC5C46C\n"
 372 "loc_FFC5C43C:\n"
 373         "LDRH    R0, [R4,#0x94]\n"
 374         "CMP     R0, #4\n"
 375         "LDRNEH  R0, [R4]\n"
 376         "SUBNE   R12, R0, #0x8200\n"
 377         "SUBNES  R12, R12, #0x2A\n"
 378         "BNE     loc_FFC5C46C\n"
 379         "BL      sub_FFC5F0F4\n"
 380         "BL      sub_FFC5F494\n"
 381         "B       loc_FFC5C46C\n"
 382 "loc_FFC5C460:\n"
 383         "LDR     R1, =0x70B\n"
 384         "LDR     R0, =0xFFC5BD50\n"
 385         "BL      sub_FFC0F5E8\n"
 386 "loc_FFC5C46C:\n"
 387         "LDR     R0, [SP]\n"
 388         "LDR     R1, [R0,#4]\n"
 389         "LDR     R0, [R6]\n"
 390         "BL      sub_FFC28BE4\n"
 391         "LDR     R5, [SP]\n"
 392         "LDR     R0, [R5,#8]\n"
 393         "CMP     R0, #0\n"
 394         "LDREQ   R1, =0x132\n"
 395         "LDREQ   R0, =0xFFC5BD50\n"
 396         "BLEQ    sub_FFC0F5E8\n"
 397         "STR     R7, [R5,#8]\n"
 398         "B       loc_FFC5C1AC\n"
 399     );
 400 }
 401 void __attribute__((naked,noinline)) exp_drv_task(){
 402  asm volatile(
 403         "STMFD   SP!, {R4-R8,LR}\n"
 404         "SUB     SP, SP, #0x20\n"
 405         "LDR     R8, =0xBB8\n"
 406         "LDR     R7, =0x3A24\n"
 407         "LDR     R5, =0x3DA50\n"
 408         "MOV     R0, #0\n"
 409         "ADD     R6, SP, #0x10\n"
 410         "STR     R0, [SP,#0xC]\n"
 411 "loc_FFC95018:\n"
 412         "LDR     R0, [R7,#0x20]\n"
 413         "MOV     R2, #0\n"
 414         "ADD     R1, SP, #0x1C\n"
 415         "BL      sub_FFC28E74    \n"
 416         "LDR     R0, [SP,#0xC]\n"
 417         "CMP     R0, #1\n"
 418         "BNE     loc_FFC95064\n"
 419         "LDR     R0, [SP,#0x1C]\n"
 420         "LDR     R0, [R0]\n"
 421         "CMP     R0, #0x13\n"
 422         "CMPNE   R0, #0x14\n"
 423         "CMPNE   R0, #0x15\n"
 424         "CMPNE   R0, #0x16\n"
 425         "BEQ     loc_FFC951C8\n"
 426         "CMP     R0, #0x28\n"
 427         "BEQ     loc_FFC95150\n"
 428         "ADD     R1, SP, #0xC\n"
 429         "MOV     R0, #0\n"
 430         "BL      sub_FFC94FA8    \n"
 431 "loc_FFC95064:\n"
 432         "LDR     R0, [SP,#0x1C]\n"
 433         "LDR     R1, [R0]\n"
 434         "CMP     R1, #0x2E\n"
 435         "BNE     loc_FFC95094\n"
 436         "LDR     R0, [SP,#0x1C]\n"
 437         "BL      sub_FFC96300    \n"
 438         "LDR     R0, [R7,#0x1C]\n"
 439         "MOV     R1, #1\n"
 440         "BL      sub_FFC28BE4\n"
 441         "BL      sub_FFC0F3A0    \n"
 442         "ADD     SP, SP, #0x20\n"
 443         "LDMFD   SP!, {R4-R8,PC}\n"
 444 "loc_FFC95094:\n"
 445         "CMP     R1, #0x2D\n"
 446         "BNE     loc_FFC950B0\n"
 447         "LDR     R2, [R0,#0x8C]!\n"
 448         "LDR     R1, [R0,#4]\n"
 449         "MOV     R0, R1\n"
 450         "BLX     R2\n"
 451         "B       loc_FFC955F0\n"
 452 "loc_FFC950B0:\n"
 453         "CMP     R1, #0x26\n"
 454         "BNE     loc_FFC95100\n"
 455         "LDR     R0, [R7,#0x1C]\n"
 456         "MOV     R1, #0x80\n"
 457         "BL      sub_FFC28C18\n"
 458         "LDR     R0, =0xFFC91774\n"
 459         "MOV     R1, #0x80\n"
 460         "BL      sub_FFD0C67C    \n"
 461         "LDR     R0, [R7,#0x1C]\n"
 462         "MOV     R2, R8\n"
 463         "MOV     R1, #0x80\n"
 464         "BL      sub_FFC28B24    \n"
 465         "TST     R0, #1\n"
 466         "LDRNE   R1, =0xE5F\n"
 467         "BNE     loc_FFC951BC\n"
 468 "loc_FFC950EC:\n"
 469         "LDR     R1, [SP,#0x1C]\n"
 470         "LDR     R0, [R1,#0x90]\n"
 471         "LDR     R1, [R1,#0x8C]\n"
 472         "BLX     R1\n"
 473         "B       loc_FFC955F0\n"
 474 "loc_FFC95100:\n"
 475         "CMP     R1, #0x27\n"
 476         "BNE     loc_FFC95148\n"
 477         "ADD     R1, SP, #0xC\n"
 478         "BL      sub_FFC94FA8    \n"
 479         "LDR     R0, [R7,#0x1C]\n"
 480         "MOV     R1, #0x100\n"
 481         "BL      sub_FFC28C18\n"
 482         "LDR     R0, =0xFFC91784\n"
 483         "MOV     R1, #0x100\n"
 484         "BL      sub_FFD0C904    \n"
 485         "LDR     R0, [R7,#0x1C]\n"
 486         "MOV     R2, R8\n"
 487         "MOV     R1, #0x100\n"
 488         "BL      sub_FFC28B24    \n"
 489         "TST     R0, #1\n"
 490         "BEQ     loc_FFC950EC\n"
 491         "LDR     R1, =0xE69\n"
 492         "B       loc_FFC951BC\n"
 493 "loc_FFC95148:\n"
 494         "CMP     R1, #0x28\n"
 495         "BNE     loc_FFC95160\n"
 496 "loc_FFC95150:\n"
 497         "LDR     R0, [SP,#0x1C]\n"
 498         "ADD     R1, SP, #0xC\n"
 499         "BL      sub_FFC94FA8    \n"
 500         "B       loc_FFC950EC\n"
 501 "loc_FFC95160:\n"
 502         "CMP     R1, #0x2B\n"
 503         "BNE     loc_FFC95178\n"
 504         "BL      sub_FFC84ACC    \n"
 505         "BL      sub_FFC85710    \n"
 506         "BL      sub_FFC85260    \n"
 507         "B       loc_FFC950EC\n"
 508 "loc_FFC95178:\n"
 509         "CMP     R1, #0x2C\n"
 510         "BNE     loc_FFC951C8\n"
 511         "LDR     R0, [R7,#0x1C]\n"
 512         "MOV     R1, #4\n"
 513         "BL      sub_FFC28C18\n"
 514         "LDR     R1, =0xFFC917A4\n"
 515         "LDR     R0, =0xFFFFF400\n"
 516         "MOV     R2, #4\n"
 517         "BL      sub_FFC84548\n"
 518         "BL      sub_FFC847D0    \n"
 519         "LDR     R0, [R7,#0x1C]\n"
 520         "MOV     R2, R8\n"
 521         "MOV     R1, #4\n"
 522         "BL      sub_FFC28A40    \n"
 523         "TST     R0, #1\n"
 524         "BEQ     loc_FFC950EC\n"
 525         "LDR     R1, =0xE91\n"
 526 "loc_FFC951BC:\n"
 527         "LDR     R0, =0xFFC91DE4\n"
 528         "BL      sub_FFC0F5E8\n"
 529         "B       loc_FFC950EC\n"
 530 "loc_FFC951C8:\n"
 531         "LDR     R0, [SP,#0x1C]\n"
 532         "MOV     R4, #1\n"
 533         "LDR     R1, [R0]\n"
 534         "CMP     R1, #0x11\n"
 535         "CMPNE   R1, #0x12\n"
 536         "BNE     loc_FFC95238\n"
 537         "LDR     R1, [R0,#0x7C]\n"
 538         "ADD     R1, R1, R1,LSL#1\n"
 539         "ADD     R1, R0, R1,LSL#2\n"
 540         "SUB     R1, R1, #8\n"
 541         "LDMIA   R1, {R2-R4}\n"
 542         "STMIA   R6, {R2-R4}\n"
 543         "BL      sub_FFC93934\n"
 544         "LDR     R0, [SP,#0x1C]\n"
 545         "LDR     R1, [R0,#0x7C]\n"
 546         "LDR     R3, [R0,#0x8C]\n"
 547         "LDR     R2, [R0,#0x90]\n"
 548         "ADD     R0, R0, #4\n"
 549         "BLX     R3\n"
 550         "LDR     R0, [SP,#0x1C]\n"
 551         "BL      sub_FFC966C8    \n"
 552         "LDR     R0, [SP,#0x1C]\n"
 553         "LDR     R1, [R0,#0x7C]\n"
 554         "LDR     R3, [R0,#0x94]\n"
 555         "LDR     R2, [R0,#0x98]\n"
 556         "ADD     R0, R0, #4\n"
 557         "BLX     R3\n"
 558         "B       loc_FFC95530\n"
 559 "loc_FFC95238:\n"
 560         "CMP     R1, #0x13\n"
 561         "CMPNE   R1, #0x14\n"
 562         "CMPNE   R1, #0x15\n"
 563         "CMPNE   R1, #0x16\n"
 564         "BNE     loc_FFC952F0\n"
 565         "ADD     R3, SP, #0xC\n"
 566         "MOV     R2, SP\n"
 567         "ADD     R1, SP, #0x10\n"
 568         "BL      sub_FFC93C10    \n"
 569         "CMP     R0, #1\n"
 570         "MOV     R4, R0\n"
 571         "CMPNE   R4, #5\n"
 572         "BNE     loc_FFC9528C\n"
 573         "LDR     R0, [SP,#0x1C]\n"
 574         "MOV     R2, R4\n"
 575         "LDR     R1, [R0,#0x7C]!\n"
 576         "LDR     R12, [R0,#0x10]!\n"
 577         "LDR     R3, [R0,#4]\n"
 578         "MOV     R0, SP\n"
 579         "BLX     R12\n"
 580         "B       loc_FFC952C4\n"
 581 "loc_FFC9528C:\n"
 582         "LDR     R0, [SP,#0x1C]\n"
 583         "CMP     R4, #2\n"
 584         "LDR     R3, [R0,#0x90]\n"
 585         "CMPNE   R4, #6\n"
 586         "BNE     loc_FFC952D8\n"
 587         "LDR     R12, [R0,#0x8C]\n"
 588         "MOV     R0, SP\n"
 589         "MOV     R2, R4\n"
 590         "MOV     R1, #1\n"
 591         "BLX     R12\n"
 592         "LDR     R0, [SP,#0x1C]\n"
 593         "MOV     R2, SP\n"
 594         "ADD     R1, SP, #0x10\n"
 595         "BL      sub_FFC94CB0    \n"
 596 "loc_FFC952C4:\n"
 597         "LDR     R0, [SP,#0x1C]\n"
 598         "LDR     R2, [SP,#0xC]\n"
 599         "MOV     R1, R4\n"
 600         "BL      sub_FFC94F48    \n"
 601         "B       loc_FFC95530\n"
 602 "loc_FFC952D8:\n"
 603         "LDR     R1, [R0,#0x7C]\n"
 604         "LDR     R12, [R0,#0x8C]\n"
 605         "ADD     R0, R0, #4\n"
 606         "MOV     R2, R4\n"
 607         "BLX     R12\n"
 608         "B       loc_FFC95530\n"
 609 "loc_FFC952F0:\n"
 610         "CMP     R1, #0x22\n"
 611         "CMPNE   R1, #0x23\n"
 612         "BNE     loc_FFC9533C\n"
 613         "LDR     R1, [R0,#0x7C]\n"
 614         "ADD     R1, R1, R1,LSL#1\n"
 615         "ADD     R1, R0, R1,LSL#2\n"
 616         "SUB     R1, R1, #8\n"
 617         "LDMIA   R1, {R2-R4}\n"
 618         "STMIA   R6, {R2-R4}\n"
 619         "BL      sub_FFC92E84    \n"
 620         "LDR     R0, [SP,#0x1C]\n"
 621         "LDR     R1, [R0,#0x7C]\n"
 622         "LDR     R3, [R0,#0x8C]\n"
 623         "LDR     R2, [R0,#0x90]\n"
 624         "ADD     R0, R0, #4\n"
 625         "BLX     R3\n"
 626         "LDR     R0, [SP,#0x1C]\n"
 627         "BL      sub_FFC93178    \n"
 628         "B       loc_FFC95530\n"
 629 "loc_FFC9533C:\n"
 630         "ADD     R1, R0, #4\n"
 631         "LDMIA   R1, {R2,R3,R12}\n"
 632         "STMIA   R6, {R2,R3,R12}\n"
 633         "LDR     R1, [R0]\n"
 634         "CMP     R1, #0x25\n"
 635         "ADDLS   PC, PC, R1,LSL#2\n"
 636         "B       loc_FFC95510\n"
 637 "loc_FFC95358:\n"
 638         "B       loc_FFC953F0\n"
 639 "loc_FFC9535C:\n"
 640         "B       loc_FFC953F0\n"
 641 "loc_FFC95360:\n"
 642         "B       loc_FFC953F8\n"
 643 "loc_FFC95364:\n"
 644         "B       loc_FFC95400\n"
 645 "loc_FFC95368:\n"
 646         "B       loc_FFC95400\n"
 647 "loc_FFC9536C:\n"
 648         "B       loc_FFC95400\n"
 649 "loc_FFC95370:\n"
 650         "B       loc_FFC953F0\n"
 651 "loc_FFC95374:\n"
 652         "B       loc_FFC953F8\n"
 653 "loc_FFC95378:\n"
 654         "B       loc_FFC95400\n"
 655 "loc_FFC9537C:\n"
 656         "B       loc_FFC95400\n"
 657 "loc_FFC95380:\n"
 658         "B       loc_FFC95418\n"
 659 "loc_FFC95384:\n"
 660         "B       loc_FFC95418\n"
 661 "loc_FFC95388:\n"
 662         "B       loc_FFC95504\n"
 663 "loc_FFC9538C:\n"
 664         "B       loc_FFC9550C\n"
 665 "loc_FFC95390:\n"
 666         "B       loc_FFC9550C\n"
 667 "loc_FFC95394:\n"
 668         "B       loc_FFC9550C\n"
 669 "loc_FFC95398:\n"
 670         "B       loc_FFC9550C\n"
 671 "loc_FFC9539C:\n"
 672         "B       loc_FFC95510\n"
 673 "loc_FFC953A0:\n"
 674         "B       loc_FFC95510\n"
 675 "loc_FFC953A4:\n"
 676         "B       loc_FFC95510\n"
 677 "loc_FFC953A8:\n"
 678         "B       loc_FFC95510\n"
 679 "loc_FFC953AC:\n"
 680         "B       loc_FFC95510\n"
 681 "loc_FFC953B0:\n"
 682         "B       loc_FFC95510\n"
 683 "loc_FFC953B4:\n"
 684         "B       loc_FFC95408\n"
 685 "loc_FFC953B8:\n"
 686         "B       loc_FFC95410\n"
 687 "loc_FFC953BC:\n"
 688         "B       loc_FFC95410\n"
 689 "loc_FFC953C0:\n"
 690         "B       loc_FFC95424\n"
 691 "loc_FFC953C4:\n"
 692         "B       loc_FFC95424\n"
 693 "loc_FFC953C8:\n"
 694         "B       loc_FFC9542C\n"
 695 "loc_FFC953CC:\n"
 696         "B       loc_FFC9545C\n"
 697 "loc_FFC953D0:\n"
 698         "B       loc_FFC9548C\n"
 699 "loc_FFC953D4:\n"
 700         "B       loc_FFC954BC\n"
 701 "loc_FFC953D8:\n"
 702         "B       loc_FFC954EC\n"
 703 "loc_FFC953DC:\n"
 704         "B       loc_FFC954EC\n"
 705 "loc_FFC953E0:\n"
 706         "B       loc_FFC95510\n"
 707 "loc_FFC953E4:\n"
 708         "B       loc_FFC95510\n"
 709 "loc_FFC953E8:\n"
 710         "B       loc_FFC954F4\n"
 711 "loc_FFC953EC:\n"
 712         "B       loc_FFC954FC\n"
 713 "loc_FFC953F0:\n"
 714         "BL      sub_FFC91C8C\n"
 715         "B       loc_FFC95510\n"
 716 "loc_FFC953F8:\n"
 717         "BL      sub_FFC91F10\n"
 718         "B       loc_FFC95510\n"
 719 "loc_FFC95400:\n"
 720         "BL      sub_FFC92118\n"
 721         "B       loc_FFC95510\n"
 722 "loc_FFC95408:\n"
 723         "BL      sub_FFC92390\n"
 724         "B       loc_FFC95510\n"
 725 "loc_FFC95410:\n"
 726         "BL      sub_FFC92588\n"
 727         "B       loc_FFC95510\n"
 728 "loc_FFC95418:\n"
 729                 //; jumptable FFC953A0 entries 10,11
 730         //"BL      sub_FFC92844\n"
 731                 "BL      sub_FFC92844_my\n"  //----------------------->
 732         "MOV     R4, #0\n"
 733         "B       loc_FFC95510\n"
 734 "loc_FFC95424:\n"
 735         "BL      sub_FFC92984\n"
 736         "B       loc_FFC95510\n"
 737 "loc_FFC9542C:\n"
 738         "LDRH    R1, [R0,#4]\n"
 739         "STRH    R1, [SP,#0x10]\n"
 740         "LDRH    R1, [R5,#2]\n"
 741         "STRH    R1, [SP,#0x12]\n"
 742         "LDRH    R1, [R5,#4]\n"
 743         "STRH    R1, [SP,#0x14]\n"
 744         "LDRH    R1, [R5,#6]\n"
 745         "STRH    R1, [SP,#0x16]\n"
 746         "LDRH    R1, [R0,#0xC]\n"
 747         "STRH    R1, [SP,#0x18]\n"
 748         "BL      sub_FFC96374    \n"
 749         "B       loc_FFC95510\n"
 750 "loc_FFC9545C:\n"
 751         "LDRH    R1, [R0,#4]\n"
 752         "STRH    R1, [SP,#0x10]\n"
 753         "LDRH    R1, [R5,#2]\n"
 754         "STRH    R1, [SP,#0x12]\n"
 755         "LDRH    R1, [R5,#4]\n"
 756         "STRH    R1, [SP,#0x14]\n"
 757         "LDRH    R1, [R5,#6]\n"
 758         "STRH    R1, [SP,#0x16]\n"
 759         "LDRH    R1, [R5,#8]\n"
 760         "STRH    R1, [SP,#0x18]\n"
 761         "BL      sub_FFC964E0    \n"
 762         "B       loc_FFC95510\n"
 763 "loc_FFC9548C:\n"
 764         "LDRH    R1, [R5]\n"
 765         "STRH    R1, [SP,#0x10]\n"
 766         "LDRH    R1, [R0,#6]\n"
 767         "STRH    R1, [SP,#0x12]\n"
 768         "LDRH    R1, [R5,#4]\n"
 769         "STRH    R1, [SP,#0x14]\n"
 770         "LDRH    R1, [R5,#6]\n"
 771         "STRH    R1, [SP,#0x16]\n"
 772         "LDRH    R1, [R5,#8]\n"
 773         "STRH    R1, [SP,#0x18]\n"
 774         "BL      sub_FFC9658C    \n"
 775         "B       loc_FFC95510\n"
 776 "loc_FFC954BC:\n"
 777         "LDRH    R1, [R5]\n"
 778         "STRH    R1, [SP,#0x10]\n"
 779         "LDRH    R1, [R5,#2]\n"
 780         "STRH    R1, [SP,#0x12]\n"
 781         "LDRH    R1, [R5,#4]\n"
 782         "STRH    R1, [SP,#0x14]\n"
 783         "LDRH    R1, [R5,#6]\n"
 784         "STRH    R1, [SP,#0x16]\n"
 785         "LDRH    R1, [R0,#0xC]\n"
 786         "STRH    R1, [SP,#0x18]\n"
 787         "BL      sub_FFC9662C    \n"
 788         "B       loc_FFC95510\n"
 789 "loc_FFC954EC:\n"
 790         "BL      sub_FFC92CDC\n"
 791         "B       loc_FFC95510\n"
 792 "loc_FFC954F4:\n"
 793         "BL      sub_FFC9327C\n"
 794         "B       loc_FFC95510\n"
 795 "loc_FFC954FC:\n"
 796         "BL      sub_FFC934B8\n"
 797         "B       loc_FFC95510\n"
 798 "loc_FFC95504:\n"
 799         "BL      sub_FFC93634\n"
 800         "B       loc_FFC95510\n"
 801 "loc_FFC9550C:\n"
 802         "BL      sub_FFC937D0\n"
 803 "loc_FFC95510:\n"
 804         "LDR     R0, [SP,#0x1C]\n"
 805         "LDR     R1, [R0,#0x7C]\n"
 806         "LDR     R3, [R0,#0x8C]\n"
 807         "LDR     R2, [R0,#0x90]\n"
 808         "ADD     R0, R0, #4\n"
 809         "BLX     R3\n"
 810         "CMP     R4, #1\n"
 811         "BNE     loc_FFC95578\n"
 812 "loc_FFC95530:\n"
 813         "LDR     R0, [SP,#0x1C]\n"
 814         "MOV     R2, #0xC\n"
 815         "LDR     R1, [R0,#0x7C]\n"
 816         "ADD     R1, R1, R1,LSL#1\n"
 817         "ADD     R0, R0, R1,LSL#2\n"
 818         "SUB     R4, R0, #8\n"
 819         "LDR     R0, =0x3DA50\n"
 820         "ADD     R1, SP, #0x10\n"
 821         "BL      sub_FFE8D51C\n"
 822         "LDR     R0, =0x3DA5C\n"
 823         "MOV     R2, #0xC\n"
 824         "ADD     R1, SP, #0x10\n"
 825         "BL      sub_FFE8D51C\n"
 826         "LDR     R0, =0x3DA68\n"
 827         "MOV     R2, #0xC\n"
 828         "MOV     R1, R4\n"
 829         "BL      sub_FFE8D51C\n"
 830         "B       loc_FFC955F0\n"
 831 "loc_FFC95578:\n"
 832         "LDR     R0, [SP,#0x1C]\n"
 833         "LDR     R0, [R0]\n"
 834         "CMP     R0, #0xB\n"
 835         "BNE     loc_FFC955C0\n"
 836         "MOV     R3, #0\n"
 837         "STR     R3, [SP]\n"
 838         "MOV     R3, #1\n"
 839         "MOV     R2, #1\n"
 840         "MOV     R1, #1\n"
 841         "MOV     R0, #0\n"
 842         "BL      sub_FFC91A94\n"
 843         "MOV     R3, #0\n"
 844         "STR     R3, [SP]\n"
 845         "MOV     R3, #1\n"
 846         "MOV     R2, #1\n"
 847         "MOV     R1, #1\n"
 848         "MOV     R0, #0\n"
 849         "B       loc_FFC955EC\n"
 850 "loc_FFC955C0:\n"
 851         "MOV     R3, #1\n"
 852         "MOV     R2, #1\n"
 853         "MOV     R1, #1\n"
 854         "MOV     R0, #1\n"
 855         "STR     R3, [SP]\n"
 856         "BL      sub_FFC91A94\n"
 857         "MOV     R3, #1\n"
 858         "MOV     R2, #1\n"
 859         "MOV     R1, #1\n"
 860         "MOV     R0, #1\n"
 861         "STR     R3, [SP]\n"
 862 "loc_FFC955EC:\n"
 863         "BL      sub_FFC91BD4\n"
 864 "loc_FFC955F0:\n"
 865         "LDR     R0, [SP,#0x1C]\n"
 866         "BL      sub_FFC96300    \n"
 867         "B       loc_FFC95018\n"
 868 
 869   );
 870 }
 871 
 872 void __attribute__((naked,noinline)) sub_FFC92844_my(){
 873  asm volatile(
 874         "STMFD   SP!, {R4-R8,LR}\n"
 875         "LDR     R7, =0x3A24\n"
 876         "MOV     R4, R0\n"
 877         "LDR     R0, [R7,#0x1C]\n"
 878         "MOV     R1, #0x3E\n"
 879         "BL      sub_FFC28C18\n"
 880         "LDRSH   R0, [R4,#4]\n"
 881         "MOV     R2, #0\n"
 882         "MOV     R1, #0\n"
 883         "BL      sub_FFC917F8\n"
 884         "MOV     R6, R0\n"
 885         "LDRSH   R0, [R4,#6]\n"
 886         "BL      sub_FFC91908\n"
 887         "LDRSH   R0, [R4,#8]\n"
 888         "BL      sub_FFC91960\n"
 889         "LDRSH   R0, [R4,#0xA]\n"
 890         "BL      sub_FFC919B8\n"
 891         "LDRSH   R0, [R4,#0xC]\n"
 892         "MOV     R1, #0\n"
 893         "BL      sub_FFC91A10\n"
 894         "MOV     R5, R0\n"
 895         "LDR     R0, [R4]\n"
 896         "LDR     R8, =0x3DA68\n"
 897         "CMP     R0, #0xB\n"
 898         "MOVEQ   R6, #0\n"
 899         "MOVEQ   R5, #0\n"
 900         "BEQ     loc_FFC928D8\n"
 901         "CMP     R6, #1\n"
 902         "BNE     loc_FFC928D8\n"
 903         "LDRSH   R0, [R4,#4]\n"
 904         "LDR     R1, =0xFFC91764\n"
 905         "MOV     R2, #2\n"
 906         "BL      sub_FFD0C7D0    \n"
 907         "STRH    R0, [R4,#4]\n"
 908         "MOV     R0, #0\n"
 909         "STR     R0, [R7,#0x28]\n"
 910         "B       loc_FFC928E0\n"
 911 "loc_FFC928D8:\n"
 912         "LDRH    R0, [R8]\n"
 913         "STRH    R0, [R4,#4]\n"
 914 "loc_FFC928E0:\n"
 915         "CMP     R5, #1\n"
 916         "LDRNEH  R0, [R8,#8]\n"
 917         "BNE     loc_FFC928FC\n"
 918         "LDRSH   R0, [R4,#0xC]\n"
 919         "LDR     R1, =0xFFC917E8\n"
 920         "MOV     R2, #0x20\n"
 921         "BL      sub_FFC96330\n"
 922 "loc_FFC928FC:\n"
 923         "STRH    R0, [R4,#0xC]\n"
 924         "LDRSH   R0, [R4,#6]\n"
 925         //"BL      sub_FFC8483C    \n"
 926                 "BL      sub_FFC8483C_my    \n"
 927         "LDRSH   R0, [R4,#8]\n"
 928         "MOV     R1, #1\n"
 929         "BL      sub_FFC84FA8    \n"
 930         "MOV     R1, #0\n"
 931         "ADD     R0, R4, #8\n"
 932         "BL      sub_FFC85030    \n"
 933         "LDRSH   R0, [R4,#0xE]\n"
 934         "BL      sub_FFC8CAF0    \n"
 935         "LDR     R4, =0xBB8\n"
 936         "CMP     R6, #1\n"
 937         "BNE     loc_FFC92954\n"
 938         "LDR     R0, [R7,#0x1C]\n"
 939         "MOV     R2, R4\n"
 940         "MOV     R1, #2\n"
 941         "BL      sub_FFC28B24    \n"
 942         "TST     R0, #1\n"
 943         "LDRNE   R1, =0x5A3\n"
 944         "LDRNE   R0, =0xFFC91DE4\n"
 945         "BLNE    sub_FFC0F5E8\n"
 946 "loc_FFC92954:\n"
 947         "CMP     R5, #1\n"
 948         "LDMNEFD SP!, {R4-R8,PC}\n"
 949         "LDR     R0, [R7,#0x1C]\n"
 950         "MOV     R2, R4\n"
 951         "MOV     R1, #0x20\n"
 952         "BL      sub_FFC28B24    \n"
 953         "TST     R0, #1\n"
 954         "LDRNE   R1, =0x5A8\n"
 955         "LDRNE   R0, =0xFFC91DE4\n"
 956         "LDMNEFD SP!, {R4-R8,LR}\n"
 957         "BNE     sub_FFC0F5E8\n"
 958         "LDMFD   SP!, {R4-R8,PC}\n"
 959   );
 960 }
 961 
 962 void __attribute__((naked,noinline)) sub_FFC8483C_my(){
 963  asm volatile(
 964         "STMFD   SP!, {R4-R6,LR}\n"
 965         "LDR     R5, =0x3718\n"
 966         "MOV     R4, R0\n"
 967         "LDR     R0, [R5,#4]\n"
 968         "CMP     R0, #1\n"
 969         "LDRNE   R1, =0x146\n"
 970         "LDRNE   R0, =0xFFC84640\n"
 971         "BLNE    sub_FFC0F5E8\n"
 972         "CMN     R4, #0xC00\n"
 973         "LDREQSH R4, [R5,#2]\n"
 974         "CMN     R4, #0xC00\n"
 975         "MOVEQ   R1, #0x14C\n"
 976         "LDREQ   R0, =0xFFC84640\n"
 977         "STRH    R4, [R5,#2]\n"
 978         "BLEQ    sub_FFC0F5E8\n"
 979         "MOV     R0, R4\n"
 980         //"BL      sub_FFD8803C\n"
 981                  "BL      apex2us\n"  // +
 982 
 983         "MOV     R4, R0\n"
 984         "BL      sub_FFCB7520\n"
 985         "MOV     R0, R4\n"
 986         "BL      sub_FFCBBBB0\n"
 987         "TST     R0, #1\n"
 988         "LDRNE   R1, =0x151\n"
 989         "LDMNEFD SP!, {R4-R6,LR}\n"
 990         "LDRNE   R0, =0xFFC84640\n"
 991         "BNE     sub_FFC0F5E8\n"
 992         "LDMFD   SP!, {R4-R6,PC}\n"
 993   );
 994 }
 995 

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